Guest User

Untitled

a guest
Jul 17th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <fstream> //for inputting a file
  4. using namespace std;
  5.  
  6. int sumOfDataItems, numberOfDataItems, count, printRows, lastRow, rowCount, colCount, median, mode, timesModeOccurs;
  7. vector<int> v1;
  8. int numbersArray[1300];
  9.  
  10. int readInput(int& totalNum)
  11. {
  12. ifstream inputFile; //File stream object
  13.  
  14. int sum, data; //define variables
  15.  
  16. inputFile.open("C:\\data\\TopicFin.txt"); //open the file
  17. if (!inputFile)//test for errors
  18. cout << "Cannot open TopicFin.txt. Program Ending\n";
  19. else
  20. {
  21.  
  22. //initialize statistics
  23. totalNum = 0;
  24. sum = 0;
  25.  
  26. //loop until the end of the file
  27. while (inputFile >> data)
  28. {
  29. v1.push_back(data);
  30. //compute statistics
  31. sum += data; //update sum
  32.  
  33. totalNum++;
  34. }
  35.  
  36. inputFile.close(); //close the input file
  37.  
  38. return (sum);
  39. }
  40. }
  41.  
  42. int calcMedian(int array[], int size)
  43. {
  44.  
  45. if ((size%2) == 1) //odd number of values
  46. return (array[size/2]);
  47. else
  48. return ( (array[size/2] + array[size/2 + 1]) / 2 );
  49. }
  50.  
  51. void sort(int array[], int size)
  52. {
  53. bool swap;
  54. int temp;
  55.  
  56. do
  57. {
  58. swap = false;
  59. for (int count = 0; count < (size - 1); count++)
  60. {
  61. if (array[count] > array[count +1])
  62. {
  63. temp = array[count];
  64. array[count] = array[count +1];
  65. array[count + 1] = temp;
  66. swap = true;
  67. }
  68. }
  69. } while (swap);
  70. }
  71.  
  72. void calculateMode(int array[], int n, int theMode, int max)
  73. {
  74. int count, i;
  75.  
  76. count = 1;
  77. max = 1;
  78. theMode = array[0];
  79.  
  80. for (int i = 1; i < n; i++)
  81. {
  82. if (array[i] == array[i-1])
  83. {
  84. count++;
  85. }
  86. else
  87. {
  88. if (count > max)
  89. {
  90. max = count;
  91. theMode = array[i-1];
  92. }
  93. count = 0;
  94. }
  95. }
  96. return mode;
  97. }
  98.  
  99. int main()
  100. {
  101. sumOfDataItems = readInput(numberOfDataItems);
  102. if (sumOfDataItems == 0) //check for no data
  103. {
  104. cout << "Error - no input file data" << endl;
  105. }
  106. else
  107. {
  108. printRows = numberOfDataItems / 15;
  109. lastRow = numberOfDataItems % 15;
  110. cout << "The values read are:" << endl;
  111. for (rowCount = 0; rowCount < printRows; rowCount++)
  112. {
  113. for (colCount=0; colCount<15; colCount++)
  114. {
  115. cout << v1[count] << " ";
  116. count++;
  117. }
  118. cout << endl;
  119. }
  120. for (colCount=0; colCount<lastRow; colCount++)
  121. {
  122. cout << v1[count] << " ";
  123. count++;
  124. }
  125. cout << endl;
  126. for (count=0; count<numberOfDataItems; count++)
  127. numbersArray[count] = v1[count];
  128. sort( numbersArray, numberOfDataItems );
  129. cout << "\n\nThe average of values is " << (sumOfDataItems / numberOfDataItems) << endl;
  130. cout << numberOfDataItems << " Values were read" << endl << endl << endl;
  131. cout << "The sorted result is\n";
  132. count = 0; //reset count
  133. for (rowCount = 0; rowCount < printRows; rowCount++)
  134. {
  135. for (colCount=0; colCount<15; colCount++)
  136. {
  137. cout << numbersArray[count] << " ";
  138. count++;
  139. }
  140. cout << endl;
  141. }
  142. for (colCount=0; colCount<lastRow; colCount++)
  143. {
  144. cout << numbersArray[count] << " ";
  145. count++;
  146. }
  147. cout << endl;
  148. }
  149. median = calcMedian(numbersArray, numberOfDataItems);
  150. cout << "\nThe median of the values is: " << median << endl;
  151. calculateMode(numbersArray, numberOfDataItems, mode, timesModeOccurs);
  152. cout << "The mode of the values is " << mode << " which occurs " << timesModeOccurs << " times." << endl;
  153.  
  154. return 0;
  155. }
Add Comment
Please, Sign In to add comment