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