Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <locale>
- using namespace std;
- // Удалить все элементы из последовательности , равные K
- // Добавить N перед элементами равными K
- // Перевернуть
- // Найти равный среднему арифметическому
- // Отсортировать методом выборки по убыванию
- int Delete(int w){
- ofstream f;
- ifstream F;
- F.open("output.txt", ios::in);
- f.open("Delete.txt");
- int i = 0, k = 0, max = 0,K;
- cout << endl;
- cout << "ФУНКЦИЯ УДАЛЕНИЯ ИЗ МАССИВА :" << endl;
- int* mass = new int[w];
- cout << "Введите K" << endl;
- cin >> K;
- cout << endl;
- while (k < w){
- F >> mass[k];
- if (mass[k] != K){
- cout << "mass[" << i << "] = " << mass[k] << endl;
- f << mass[k] << endl;
- i++;
- }
- k++;
- }
- cout << "Результат операции так же записан в файл Delete.txt" << endl;
- f.close();
- return i; //Возвращаем оставшееся кол-во элементов
- }
- int Dobavka(int k){
- // N Элемент перед элементами , равными K
- int K, a = -1, i = 0,N,j=1;
- ifstream F;
- ofstream f;
- f.open("Add.txt");
- F.open("Delete.txt", ios::in);
- cout << endl;
- cout << "ФУНКЦИЯ ДОБАВЛЕНИЯ ЭЛЕМЕНТОВ В МАССИВ :" << endl;
- int *mass = new int[k];
- while (i < k){
- F >> mass[i];
- i++;
- }
- i = 0;
- cout << "Введите элемент N " << endl;
- cin >> N;
- cout << "Введите элемент , перед которым необходимо вставить N " << endl;
- cin >> K;
- for (i = 0; i<(k - 1); i++)
- {
- if (mass[i] == K)
- {
- k++;
- for (j = (k - 1); j>i; j--){
- mass[j] = mass[j - 1];
- }
- mass[i] = N; // вставка нового элемента
- i++; // обход нового элемента
- }
- }
- i = 0;
- cout << "Массив после добавления К элементов :" << endl;
- while (i < k){
- cout << "mass[" << i << "] = " << mass[i] << endl;
- f << mass[i] << endl;
- i++;
- }
- cout << "Результат операции так же записан в файл Add.txt" << endl;
- f.close();
- F.close();
- return k; //Возращаем новое кол-во элементов
- }
- void Perevorot(int k){
- int a;
- ifstream F;
- ofstream f;
- f.open("Coup.txt");
- F.open("Add.txt", ios::in);
- int *mass = new int[k];
- cout << endl;
- cout << "ФУНКЦИЯ СМЕНЫ МЕСТАМИ ЭЛЕМЕНТОВ МАССИВА :" << endl;
- for (int i = 0; i < k; i++) {
- // Заполнение массива и вывод значений его элементов
- F >> mass[i];
- }
- a = 0;
- while (a < k/ 2){ // Переворачиваем
- int r;
- r = mass[a];
- mass[a] = mass[k - 1 - a];
- mass[k - 1 - a] = r;
- a++;
- }
- cout << endl;
- a = 0;
- while (a < k){ //Выводим
- cout << "mass[" << a << "] = " << mass[a] << endl;
- f << mass[a] << endl;
- a++;
- }
- cout << "Результат операции так же записан в файл Coup.txt" << endl;
- F.close();
- f.close();
- }
- void Find(int k){
- int a = -1, num = 0, b=0,mid=0; // Кол-во сравнений будет равно a+1
- ifstream F;
- ofstream f;
- f.open("Find.txt");
- F.open("Coup.txt", ios::in);
- cout << endl;
- cout << "ФУНКЦИЯ ПОИСКА ЭЛЕМЕНТА РАВНОГО СРЕДНЕМУ АРИФМЕТИЧЕСКОМУ :" << endl;
- while (b < k){
- F >> num;
- mid += num;
- b++;
- }
- mid /= b;
- num = 0;
- cout << "Среднее арифметическое равно : " << mid << endl;
- while (a<k && num == 0){
- F >> b;
- a++;
- if (b == mid){
- num = b;
- }
- }
- F.close();
- if (num != 0){
- cout << "Элемент равный среднему арифметическому : " << num << " Его порядковый номер : " << a << endl;
- cout << endl << "Кол-во сравнений равно порядковому номеру+1 : " << a + 1 << endl;
- f << "Элемент равный среднему арифметическому : " << num << " Его порядковый номер " << a << endl;
- f << "Кол-во сравнений равно порядковому номеру+1 : " << a + 1 << endl;
- }
- else{
- cout << "Элемента , равного среднему арифметическому не найдено";
- f << "Элемента , равного среднему арифметическому не найдено";
- }
- cout << endl << "Результат операции так же записан в файл Find.txt" << endl;
- f.close();
- }
- void Obmen(int k){
- int i=0, min, n_min, j, a = -1;
- ifstream F;
- ofstream f;
- f.open("Obmen.txt");
- F.open("Coup.txt", ios::in);
- cout << endl;
- cout << "ФУНКЦИЯ СОРТИРОВКИ :" << endl;
- int *mass = new int[k];
- while (i < k){
- F >> mass[i];
- i++;
- }
- i = 0;
- for (i = 0; i<k - 1; i++)
- {
- min = mass[i]; n_min = i;//поиск минимального
- for (j = i + 1; j<k; j++)
- if (mass[j]>min)
- {
- min = mass[j];
- n_min = j;
- }
- mass[n_min] = mass[i];//обмен
- mass[i] = min;
- }
- a = 0;
- while (a < k){
- cout << "mass[" << a << "] = " << mass[a] << endl;
- f << mass[a] << endl;
- a++;
- }
- cout << "Результат операции так же записан в файл Obmen.txt" << endl;
- F.close();
- f.close();
- }
- void form_matr(int n)
- {
- ifstream F;
- F.open("output.txt", ios::in);
- int* massive = new int[n]; // Выделение памяти для массива
- for (int i = 0; i < n; i++) {
- // Заполнение массива и вывод значений его элементов
- F >> massive[i];
- cout << "Value of " << i << " element is " << massive[i] << endl;
- }
- F.close();;
- }
- void main()
- {
- setlocale(LC_ALL, "rus");
- int num, max = 0; // num - размер массива
- cout << "Введите кол-во элементов в массиве :" << endl;
- cin >> num;
- form_matr(num);
- num = Delete(num); // Удаляем равные К и получаем новое кол-во элементов
- num = Dobavka(num); // Добавить К элементов в начало массива
- Perevorot(num); // Перевернуть элементы между первым минимальным и последним максимальным
- Find(num); // Найти первый чётный
- Obmen(num); // Простой обмен выбором по убыванию
- }
Advertisement
Add Comment
Please, Sign In to add comment