Advertisement
Sanlover

Untitled

Nov 15th, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.37 KB | None | 0 0
  1. #include <iostream>
  2. #include <Windows.h>
  3.  
  4. using std::endl;
  5. using std::cout;
  6. using std::swap;
  7. using std::cin;
  8.  
  9. const size_t CALENDAR_SIZE = 31;
  10. const float ABSOLUTE_ZERO = -273.15;
  11. const size_t DECADE_LEFT_BORDER = 12;
  12. const size_t DECADE_RIGHT_BORDER = 21;
  13.  
  14. int main()
  15. {
  16. // set russian
  17. SetConsoleOutputCP(1251);
  18. SetConsoleCP(1251);
  19.  
  20. float calendar[CALENDAR_SIZE];
  21. float averageTemp = 0;
  22.  
  23. cout << "Заполните календарь температур в декабре: " << endl;
  24. for (size_t i = 0; i < CALENDAR_SIZE; i++)
  25. {
  26. float tmp;
  27. cout << "[" << i + 1 << "] день, температура = ";
  28. cin >> tmp;
  29. while (tmp <= ABSOLUTE_ZERO)
  30. {
  31. cout << endl << "Температура не может быть меньше абсолютного нуля(-273.15°C), введите ещё раз = ";
  32. cin >> tmp;
  33. }
  34. calendar[i] = tmp;
  35. averageTemp += tmp;
  36. }
  37. averageTemp /= CALENDAR_SIZE;
  38.  
  39. //A part
  40. cout << endl << "Exercise A:" << endl;
  41. cout << "Среднемесячная температура составила = " << averageTemp << "°C" << endl;
  42.  
  43. //B part
  44. cout << endl << "Exercise B:" << endl;
  45. size_t nTimes = 0;
  46. for (size_t i = 0; i < CALENDAR_SIZE; i++)
  47. if (calendar[i] > 0)
  48. nTimes++;
  49. cout << "За декабрь температура превысила 0°C " << nTimes << " раз" << endl;
  50.  
  51. //С part
  52. size_t maxId = 0, minId = 0;
  53. cout << endl << "Exercise С:" << endl;
  54. for (size_t i = 1; i < CALENDAR_SIZE; i++)
  55. {
  56. if (calendar[i] <= calendar[minId])
  57. minId = i;
  58. if (calendar[i] >= calendar[maxId])
  59. maxId = i;
  60. }
  61. cout << "Наибольшая температура была в " << maxId + 1 << " день и составляля " << calendar[maxId] << "°C" << endl;
  62.  
  63. //D part
  64. cout << endl << "Exercise D:" << endl;
  65. bool isFind = false;
  66. for (size_t i = 0; i < CALENDAR_SIZE; i++)
  67. if (calendar[i] > 0)
  68. {
  69. isFind = true;
  70. cout << "Температура первый раз поднялась выше нуля в " << i + 1 << " день и составила = " << calendar[i] << "°C" << endl;
  71. calendar[i]++;
  72. break;
  73. }
  74. if (!isFind)
  75. cout << "Температура ни разу не превысила 0°C" << endl;
  76.  
  77. //E part
  78. cout << endl << "Exercise E:" << endl;
  79. cout << "Самая холодная температура встретилась в " << minId + 1 << " день и составила = " << calendar[minId] << "°C" << endl;
  80.  
  81. //F part
  82. cout << endl << "Exercise F:" << endl;
  83. nTimes = 0;
  84. for (size_t i = 0; i < CALENDAR_SIZE; i++)
  85. if (calendar[i] > averageTemp)
  86. nTimes++;
  87. cout << "Температура превысила среднюю(" << averageTemp << "°C) " << nTimes << " раз" << endl;
  88.  
  89. //G part
  90. cout << endl << "Exercise G" << endl;
  91. size_t closeId = 0;
  92. for (size_t i = 1; i < CALENDAR_SIZE; i++)
  93. if (abs(averageTemp - calendar[closeId]) > abs(calendar[i] - calendar[closeId]))
  94. closeId = i;
  95. cout << "День, когда температура была ближе всего к средней(" << averageTemp << "°C) - " << closeId + 1 << " день и составила " << calendar[closeId] << "°C" << endl;
  96.  
  97. //H part
  98. cout << endl << "Exercise H:" << endl;
  99. size_t minTempId = DECADE_LEFT_BORDER;
  100. for (size_t i = DECADE_LEFT_BORDER + 1; i < DECADE_RIGHT_BORDER + 1; i++)
  101. if (calendar[i] < calendar[minTempId])
  102. minTempId = i;
  103. cout << "Самая холодная температура во второй декаде встретилась в " << minTempId + 1 << " день и составила = " << calendar[minTempId] << "°C" << endl;
  104.  
  105. //I part
  106. cout << endl << "Exercise I:" << endl;
  107. minTempId = maxId;
  108. for (size_t i = maxId + 1; i < CALENDAR_SIZE; i++)
  109. if (calendar[i] < calendar[minTempId])
  110. minTempId = i;
  111. cout << "Самая холодная температура,встречавшаяся после самой тёплой за весь месяц(" << calendar[maxId]
  112. << ") встретилась в " << minTempId + 1 << " день и составила = " << calendar[minTempId] << "°C" << endl;
  113.  
  114. //J part
  115. cout << endl << "Exercise J:" << endl;
  116. cout << "Самая холодная температура = " << calendar[minId] << "°C ,а самая тёплая = " << calendar[maxId] << "°C" << endl;
  117. swap(calendar[maxId], calendar[minId]);
  118. swap(maxId, minId);
  119. cout << "Календарь изменился, теперь он выглядит так:" << endl;
  120. for (size_t i = 0; i < CALENDAR_SIZE; i++)
  121. cout << "[" << i + 1 << "] день, температура = " << calendar[i] << endl;
  122.  
  123. //K part
  124. cout << endl << "Exercise K:" << endl;
  125. minId = 0;
  126. for (size_t i = 0; i < CALENDAR_SIZE; i++)
  127. if (calendar[minId] > calendar[i])
  128. minId = i;
  129.  
  130. averageTemp = 0;
  131. for (size_t i = 0; i < minId; i++)
  132. averageTemp += calendar[i];
  133. averageTemp /= minId;
  134. cout << "Средняя температура дней, до самого холодного, равна " << averageTemp << "°C" << endl;
  135.  
  136. //L part
  137. cout << endl << "Exercise L:" << endl;
  138. nTimes = 1;
  139. for (size_t i = 0; i < CALENDAR_SIZE && nTimes < 3; i++)
  140. if (calendar[minId] == calendar[i])
  141. cout << nTimes++ << "-м самым холодным днём был " << i + 1 << " день" << endl;
  142.  
  143. //M part
  144. cout << endl << "Exercise M:" << endl;
  145. nTimes = 0;
  146. bool isNegative = calendar[0] < 0;
  147. for (size_t i = 1; i < CALENDAR_SIZE; i++)
  148. if (isNegative && calendar[i] > 0)
  149. {
  150. nTimes++;
  151. isNegative = false;
  152. }
  153. else if (!isNegative && calendar[i] < 0)
  154. {
  155. nTimes++;
  156. isNegative = true;
  157. }
  158. cout << "Температура поменя свой знак " << nTimes << " раз" << endl;
  159.  
  160. //N part
  161. cout << endl << "Exercise N:" << endl;
  162. nTimes = 0;
  163. cout << "Первая минимальная температура равнялась " << calendar[minId] << "°C и встретилась в " << minId + 1 << " день" << endl;
  164.  
  165. float temp = calendar[minId];
  166. for (size_t i = minId + 1; i < CALENDAR_SIZE; i++)
  167. calendar[i - 1] = calendar[i];
  168. calendar[CALENDAR_SIZE - 1] = temp;
  169.  
  170. cout << "Календарь изменился, теперь он выглядит так:" << endl;
  171. for (size_t i = 0; i < CALENDAR_SIZE; i++)
  172. cout << "[" << i + 1 << "] день, температура = " << calendar[i] << endl;
  173.  
  174. return 0;
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement