Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <string>
  4. using namespace std;
  5. // Первая
  6. void check(int num1, int num2) {
  7. if (num1 > num2) {
  8. cout << num1 << " больше чем " << num2 << endl;
  9. }
  10. if (num1 < num2) {
  11. cout << num2 << " больше чем " << num1 << endl;
  12. }
  13. if (num1 == num2) {
  14. cout << num1 << " равен " << num2 << endl;
  15. }
  16. }
  17. // Вторая
  18. void multiple(string mass) {
  19. // Переменные для преобразования символа в инт, для умножения, для указателя
  20. int num, mult = 1, flag = 0;
  21. // Длина входного массива
  22. int length = mass.length();
  23. // Проверка размера строки
  24. if (length >= 13 && length<=1000){
  25. // Переменная для сортировки пузырьком
  26. int variable;
  27. // Длина массива с результатами
  28. int length_of_results = length - 12;
  29. // Динамический массив чисел из входной строки
  30. int *massive = new int[length];
  31. // Динамический массив результатов
  32. int *results = new int[length_of_results];
  33. // Цикл преобразующий char в int и попутно заполняющий массив числами
  34. for (auto symb:mass) {
  35. num = symb - '0';
  36. *(massive+flag) = num;
  37. cout << *(massive + flag) << " ";
  38. flag++;
  39.  
  40. }
  41. // Цикл выполняющий умножение 13-и подряд идущих элементов
  42. for (int i = 0; i < length_of_results; i++) {
  43. mult = massive[i];
  44. for (int j = i+1; j <= i+12; j++) {
  45. mult *= *(massive + j);
  46. }
  47. results[i] = mult;
  48. }
  49. // Сортировка пузырьком
  50. for (int i = 0; i < length_of_results-1; i++) {
  51. for (int j = 0; j < length_of_results - i - 1; j++) {
  52. if (results[j] > results[j+1]) {
  53. variable = results[j];
  54. results[j] = results[j + 1];
  55. results[j + 1] = variable;
  56. }
  57. }
  58. }
  59. cout <<"Результат: "<< results[length_of_results - 1];
  60. delete[] massive;
  61. delete[] results;
  62. }
  63. else {
  64. cout << "Неправильный размер массива" << endl;
  65. }
  66. }
  67. // Третья
  68. int* equal_elems() {
  69. srand(2);
  70. int i = 1;
  71. int massive[3];
  72. massive[0] = rand() % 2;
  73. while (i!=3) {
  74. int random = rand() % 2;
  75. if (random != massive[0]) {
  76. continue;
  77. }
  78. else {
  79. massive[i] = random;
  80. }
  81. i++;
  82. }
  83. return massive;
  84. }
  85.  
  86. // Четвертая
  87. double step(double a, int n) {
  88. if (n == 1) {
  89. return a;
  90. }
  91. if (n > 1) {
  92. return a * step(a, n - 1);
  93. }
  94. }
  95. // Пятая
  96. struct Chem {
  97. string title = "Химия";
  98. string date = "19.06.2018";
  99. string fio = "Николаев В.А.";
  100. int mark;
  101. };
  102. struct Phys {
  103. string title = "Физика";
  104. string date = "27.06.2018";
  105. string fio = "Стерлядкин В.В.";
  106. int mark;
  107. };
  108. struct Math {
  109. string title = "Математика";
  110. string date = "11.06.2018";
  111. string fio = "Святова Е.Н.";
  112. int mark;
  113. };
  114. struct RecordBook {
  115. Math math;
  116. Phys phys;
  117. Chem chem;
  118. };
  119. struct Student {
  120. string name;
  121. string surname;
  122. string bdate;
  123. RecordBook record_book;
  124. };
  125.  
  126. Student* filling(int num) {
  127. string student_name, student_surname, student_bdate;
  128. int math_mark, phys_mark, chem_mark;
  129. Student *list = new Student[num];
  130. for (int i = 0; i < num; i++) {
  131. cout << "Введите имя: ";
  132. cin >> student_name;
  133. cout << "Введите фамилию: ";
  134. cin >> student_surname;
  135. cout << "Введите дату рождения: ";
  136. cin >> student_bdate;
  137. cout << "Введите оценку по математике: ";
  138. cin >> math_mark;
  139. cout << "Введите оценку по физике: ";
  140. cin >> phys_mark;
  141. cout << "Введите оценку по химии: ";
  142. cin >> chem_mark;
  143. list[i].name = student_name;
  144. list[i].surname = student_surname;
  145. list[i].bdate = student_bdate;
  146. list[i].record_book.math.mark = math_mark;
  147. list[i].record_book.phys.mark = phys_mark;
  148. list[i].record_book.chem.mark = chem_mark;
  149. }
  150. return list;
  151. }
  152. void excellent_show(Student *list, int num) {
  153. for (int i = 0; i < num; i++) {
  154. if (((list + i)->record_book.math.mark == 5)
  155. && (list + i)->record_book.phys.mark == 5
  156. && (list + i)->record_book.chem.mark == 5) {
  157. cout << (list + i)->name << " | " << (list + i)->surname << "|" << (list + i)->bdate << endl;
  158. cout << "---------------------------------\n";
  159. }
  160. }
  161. }
  162.  
  163. int main() {
  164. system("chcp 1251>nul");
  165. // Первая
  166. cout << "Введите первое число: ";
  167. int a, b;
  168. cin >> a;
  169. cout << "Введите второе число: ";
  170. cin >> b;
  171. check(a, b);
  172. // Вторая
  173. cout << "Введите строку чисел длиной от 13 до 1000: ";
  174. string c;
  175. cin >> c;
  176. multiple(c);
  177. // Третья
  178. cout << equal_elems()[0] << endl << equal_elems()[1] << endl << equal_elems()[2] << endl;
  179. // Четвертая
  180. cout << step(2.5, 2) << endl;
  181. // Пятая
  182. int qt;
  183. cout << "Введите количество студентов: ";
  184. cin >> qt;
  185. excellent_show(filling(qt), qt);
  186.  
  187. system("pause>nul");
  188. return 0;
  189. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement