Advertisement
Guest User

Untitled

a guest
May 23rd, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.64 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cmath>
  4. #include <string>
  5.  
  6.  
  7. //4глава: 6ые номера; 5 глава: 8ые; 6.1 глава: !3!,18, 6.2 глава: 6,14; 7 глава: 5ые
  8. using namespace std;
  9.  
  10.  
  11. void G4_III_6()
  12. {
  13. cout << "4 глава III_6: Создать файл, состоящий из n целых чисел. Вывести на экран все отрицательные числа данного файла." << endl;
  14. fstream inputG4_III_6 ("inputG4_III_6.txt");
  15. int n;
  16. int a;
  17. cout << "Введите n. Затем введите n чисел." << endl;
  18. cin >> n;
  19. for ( int i = 0; i < n; i++ )
  20. {
  21. cin >> a;
  22. inputG4_III_6 << a << ' ';
  23. }
  24.  
  25. inputG4_III_6.seekg(0);
  26. for ( int i = 0; i < n; i++ )
  27. {
  28. inputG4_III_6 >> a;
  29. if ( a < 0 )
  30. cout << a << ' ';
  31. }
  32.  
  33. inputG4_III_6.close();
  34. }
  35.  
  36. //G5_I_8:
  37. struct point { int x,y; };
  38. double dlina( int a1, int a2, int b1, int b2 ) { return sqrt( double( (a1-b1)*(a1-b1)+(a2-b2)*(a2-b2) ) ); }
  39. void G5_I_8()
  40. {
  41. cout << "5 глава I_8: Дано множество точек на плоскости (inputG5_I_8.txt). Найти две наиболее близко расположенных друг к другу точки, используя структуры." << endl;
  42. ifstream in ("inputG5_I_8.txt");
  43. int n;
  44. in >> n;
  45. double min_dlina;
  46. int ans_1(0), ans_2(1); //искомые номера точек в массиве a
  47. point *a=new point[n];
  48. for ( int i(0); i < n; i++ )
  49. in >> a[i].x >> a[i].y;
  50. min_dlina=dlina( a[0].x, a[0].y, a[1].x, a[1].y );
  51. for (int i=0; i<(n-1); i++)
  52. for (int j=i+1; j<n; j++)
  53. {
  54. //cout << dlina ( a[i].x, a[i].y, a[j].x, a[j].y ) << endl;;
  55. if ( dlina ( a[i].x, a[i].y, a[j].x, a[j].y ) < dlina ( a[ans_1].x, a[ans_1].y, a[ans_2].x, a[ans_2].y ) )
  56. {
  57. min_dlina = dlina ( a[i].x, a[i].y, a[j].x, a[j].y );
  58. ans_1 = i;
  59. ans_2 = j;
  60. }
  61. };
  62. cout << "Расстояние минимально между точками под номерами " << ans_1 << " и номерами " << ans_2 << endl;
  63. in.close();
  64. }
  65.  
  66. //G5_II_8:
  67. struct avto
  68. {
  69. string marka;
  70. string Familia;
  71. int god;
  72. int probeg;
  73. void print();
  74. void show();
  75. };
  76. void avto::print(ofstream &out)
  77. {
  78. out << marka << " " << Familia << " " << god << " " << probeg << endl;
  79. }
  80. void avto::show()
  81. {
  82. cout << marka << " " << Familia << " " << god << " " << probeg << endl;
  83. }
  84. void G5_II_8()
  85. {
  86. cout << "5 глава II_8: Решить задачу, используя структуру, содержащую члены-данные и члены-функции."
  87. << "На основе входного файла inputG5_II_8.txt составить автомобильную ведомость, включив следущие данные: марка автомобиля, фамилия его владельца, год приобретения, пробег."
  88. << "Вывести в новый файл автомобильную ведомость, удалив из нее информацию об автомобилях, пробег которых менее заданного значения." << endl;
  89. ifstream in ("inputG5_II_8.txt");
  90. ofstream out ("outputG5_II_8.txt");
  91.  
  92. int n;
  93. in >> n;
  94. int p;
  95. cout << "Введите необходимый пробег";
  96. cin >> p;
  97. avto *a=new avto[n];
  98. for ( int i(0); i<n; i++ )
  99. {
  100. in >> a[i].marka;
  101. in >> a[i].Familia;
  102. in >> a[i].god;
  103. in >> a[i].probeg;
  104. if ( a[i].probeg >= p )
  105. {
  106. a[i].print(out);
  107. a[i].show();
  108. }
  109. }
  110.  
  111. in.close();
  112. out.close();
  113.  
  114. }
  115. void G6_I_3()
  116. {
  117. cout << "6 глава I_3: В файле inputG6_I.txt содержатся сведения о группе студентов в формате: номер группы; о каждом студенте содержит ФИО, год рождения, оценки по пяти предметам."
  118. << " Отсортировать их в outputG6_I_3.txt, отсортировав их по убыванию средней оценки алгоритмом Шелла (ср оценку вывести в новый файл для каждого студента)." << endl;
  119. }
  120. void G6_I_18()
  121. {
  122. cout << "6 глава I_3: В файле inputG6_I.txt содержатся сведения о группе студентов в формате: номер группы; о каждом студенте содержит ФИО, год рождения, оценки по пяти предметам."
  123. << " Остортировать их в outputG6_I_18.txt, отсортировав их в алфавитном порядке по фамилии, имени, отчеству методом выбора." << endl;
  124. }
  125. void G6_II_6()
  126. {
  127. cout << "Дана матрица nxn, содержащая целые числа (inputG6_II). Отсортировать "
  128. << " каждый столбец матрицы по возрастанию элементов методом пузырька." << endl;
  129. }
  130. void G6_II_14()
  131. {
  132. cout << "Дана матрица nxn, содержащая целые числа (inputG6_II). Отсортировать "
  133. << " диагонали матрицы, параллельные побочной, по возрастанию элементов методом вставки." << endl;
  134. }
  135. void G7_I_5()
  136. {
  137. cout << "Дана последовательность целых чисел. Заменить все двухзначные числа на x." << endl;
  138. }
  139. void G7_II_5()
  140. {
  141. cout << "Дана последовательность целых чисел. Удалить из массива элементы с номера k1 по k2." << endl;
  142. }
  143. int main()
  144. {
  145.  
  146. setlocale(LC_ALL, "Russian");
  147. int button(1);
  148. cout << "Русский язык работает." << endl;
  149. while (button!=0)
  150. {
  151. cout << endl
  152. << "4 глава III_6: 1" << endl
  153. << "5 глава I_8: 2" << endl
  154. << "5 глава II_8: 3" << endl
  155. << "6 глава I_3: 4" << endl
  156. << "6 глава I_18: 5" << endl
  157. << "6 глава II_6: 6" << endl
  158. << "6 глава II_14: 7" << endl
  159. << "7 глава I_5: 8" << endl
  160. << "7 глава II_5: 9" << endl
  161. << "Выход: 0" << endl;
  162.  
  163. cin >> button;
  164. switch (button)
  165. {
  166. case 1: G4_III_6(); break;
  167. case 2: G5_I_8(); break;
  168. case 3: G5_II_8(); break;
  169. case 4: G6_I_3(); break;
  170. case 5: G6_I_18(); break;
  171. case 6: G6_II_6(); break;
  172. case 7: G6_II_14(); break;
  173. case 8: G7_I_5(); break;
  174. case 9: G7_II_5(); break;
  175. case 0: break;
  176. default: cout << "неверный ввод данных"; break;
  177. }
  178. }
  179.  
  180. return 0;
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement