Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cmath>
- #include <string>
- //4глава: 6ые номера; 5 глава: 8ые; 6.1 глава: !3!,18, 6.2 глава: 6,14; 7 глава: 5ые
- using namespace std;
- void G4_III_6()
- {
- cout << "4 глава III_6: Создать файл, состоящий из n целых чисел. Вывести на экран все отрицательные числа данного файла." << endl;
- fstream inputG4_III_6 ("inputG4_III_6.txt");
- int n;
- int a;
- cout << "Введите n. Затем введите n чисел." << endl;
- cin >> n;
- for ( int i = 0; i < n; i++ )
- {
- cin >> a;
- inputG4_III_6 << a << ' ';
- }
- inputG4_III_6.seekg(0);
- for ( int i = 0; i < n; i++ )
- {
- inputG4_III_6 >> a;
- if ( a < 0 )
- cout << a << ' ';
- }
- inputG4_III_6.close();
- }
- //G5_I_8:
- struct point { int x,y; };
- double dlina( int a1, int a2, int b1, int b2 ) { return sqrt( double( (a1-b1)*(a1-b1)+(a2-b2)*(a2-b2) ) ); }
- void G5_I_8()
- {
- cout << "5 глава I_8: Дано множество точек на плоскости (inputG5_I_8.txt). Найти две наиболее близко расположенных друг к другу точки, используя структуры." << endl;
- ifstream in ("inputG5_I_8.txt");
- int n;
- in >> n;
- double min_dlina;
- int ans_1(0), ans_2(1); //искомые номера точек в массиве a
- point *a=new point[n];
- for ( int i(0); i < n; i++ )
- in >> a[i].x >> a[i].y;
- min_dlina=dlina( a[0].x, a[0].y, a[1].x, a[1].y );
- for (int i=0; i<(n-1); i++)
- for (int j=i+1; j<n; j++)
- {
- //cout << dlina ( a[i].x, a[i].y, a[j].x, a[j].y ) << endl;;
- 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 ) )
- {
- min_dlina = dlina ( a[i].x, a[i].y, a[j].x, a[j].y );
- ans_1 = i;
- ans_2 = j;
- }
- };
- cout << "Расстояние минимально между точками под номерами " << ans_1 << " и номерами " << ans_2 << endl;
- in.close();
- }
- //G5_II_8:
- struct avto
- {
- string marka;
- string Familia;
- int god;
- int probeg;
- void print();
- void show();
- };
- void avto::print(ofstream &out)
- {
- out << marka << " " << Familia << " " << god << " " << probeg << endl;
- }
- void avto::show()
- {
- cout << marka << " " << Familia << " " << god << " " << probeg << endl;
- }
- void G5_II_8()
- {
- cout << "5 глава II_8: Решить задачу, используя структуру, содержащую члены-данные и члены-функции."
- << "На основе входного файла inputG5_II_8.txt составить автомобильную ведомость, включив следущие данные: марка автомобиля, фамилия его владельца, год приобретения, пробег."
- << "Вывести в новый файл автомобильную ведомость, удалив из нее информацию об автомобилях, пробег которых менее заданного значения." << endl;
- ifstream in ("inputG5_II_8.txt");
- ofstream out ("outputG5_II_8.txt");
- int n;
- in >> n;
- int p;
- cout << "Введите необходимый пробег";
- cin >> p;
- avto *a=new avto[n];
- for ( int i(0); i<n; i++ )
- {
- in >> a[i].marka;
- in >> a[i].Familia;
- in >> a[i].god;
- in >> a[i].probeg;
- if ( a[i].probeg >= p )
- {
- a[i].print(out);
- a[i].show();
- }
- }
- in.close();
- out.close();
- }
- void G6_I_3()
- {
- cout << "6 глава I_3: В файле inputG6_I.txt содержатся сведения о группе студентов в формате: номер группы; о каждом студенте содержит ФИО, год рождения, оценки по пяти предметам."
- << " Отсортировать их в outputG6_I_3.txt, отсортировав их по убыванию средней оценки алгоритмом Шелла (ср оценку вывести в новый файл для каждого студента)." << endl;
- }
- void G6_I_18()
- {
- cout << "6 глава I_3: В файле inputG6_I.txt содержатся сведения о группе студентов в формате: номер группы; о каждом студенте содержит ФИО, год рождения, оценки по пяти предметам."
- << " Остортировать их в outputG6_I_18.txt, отсортировав их в алфавитном порядке по фамилии, имени, отчеству методом выбора." << endl;
- }
- void G6_II_6()
- {
- cout << "Дана матрица nxn, содержащая целые числа (inputG6_II). Отсортировать "
- << " каждый столбец матрицы по возрастанию элементов методом пузырька." << endl;
- }
- void G6_II_14()
- {
- cout << "Дана матрица nxn, содержащая целые числа (inputG6_II). Отсортировать "
- << " диагонали матрицы, параллельные побочной, по возрастанию элементов методом вставки." << endl;
- }
- void G7_I_5()
- {
- cout << "Дана последовательность целых чисел. Заменить все двухзначные числа на x." << endl;
- }
- void G7_II_5()
- {
- cout << "Дана последовательность целых чисел. Удалить из массива элементы с номера k1 по k2." << endl;
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- int button(1);
- cout << "Русский язык работает." << endl;
- while (button!=0)
- {
- cout << endl
- << "4 глава III_6: 1" << endl
- << "5 глава I_8: 2" << endl
- << "5 глава II_8: 3" << endl
- << "6 глава I_3: 4" << endl
- << "6 глава I_18: 5" << endl
- << "6 глава II_6: 6" << endl
- << "6 глава II_14: 7" << endl
- << "7 глава I_5: 8" << endl
- << "7 глава II_5: 9" << endl
- << "Выход: 0" << endl;
- cin >> button;
- switch (button)
- {
- case 1: G4_III_6(); break;
- case 2: G5_I_8(); break;
- case 3: G5_II_8(); break;
- case 4: G6_I_3(); break;
- case 5: G6_I_18(); break;
- case 6: G6_II_6(); break;
- case 7: G6_II_14(); break;
- case 8: G7_I_5(); break;
- case 9: G7_II_5(); break;
- case 0: break;
- default: cout << "неверный ввод данных"; break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement