Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Лаба задание два.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. Программа была написана в Visual Studio 2017, на языке программирования c++ */
- #include "pch.h"
- #include <iostream>
- #include <ctime>
- #include <algorithm>
- #include <locale.h>
- #include <fstream>
- using namespace std;
- void MENY();
- void NewMasint(int* &a, int size);//выделение памяти для массива.
- void Clear(int a[]);//подчищаем память в массиве.
- int Value(int a);//задаёт рандомные числа.
- void InputInFile(int a[], int size);//ввод рандомного массива в файл
- void OutputInConsole(int a[], int size);//чтение рандомного массива из файла
- void PushBack(int *&a, int &size, const int value);//функция, которая добавляет единичку в конец массива.
- void PushBackRand(int *&a, int &size);//рандомные элементы.
- void ShowArray(int a[], int size);//функция выводит массив на экран 1-я программа.
- void pop_back(int *&a, int &size);//Удаляет последний элемент массива 2-я программа.
- void AheadBack(int *&a, int &size, const int value);//3 программа, добавление в начале массива.
- void AheadBackRand(int *&a, int &size);
- void pop_ahead(int *&a, int &size);//4 программа, удаление элемента в начале массива.
- void AddAfterAGivenNumber(int *&a, int &size, const int value);//5) добавить элемент после элемента массива с заданным номером;
- void AddAfterAGivenNumberRandom(int *&a, int &size);
- void DelAfterAGivenNumber(int *&a, int &size);//6) удалить элемент массива, стоящий после элемента с заданным номером;
- void AddAfterAGivenvalue(int *&a, int &size, const int value);// 7) добавить элемент массива после элемента с заданным значением, если такого значения нет, то выдать предупреждающее сообщение
- void AddAfterAGivenvalueRandom(int *&a, int &size, int value);
- void DelAfterAGivenvalue(int *&a, int &size);//8) удалить элемент массива, находящийся после элемента с заданным значением, если такого значения нет, то выдать предупреждающее сообщение.
- void DelAfterAGivenvalueRand(int *&a, int &size, int value1);
- int main()
- {
- setlocale(LC_ALL, "Ru");
- int p;//p-programm(Для меню программы)
- MENY();
- cout « "\nWhat program do you want to use?\nEnter a number between 1 and 8:"; cin » p;
- if (p <= 0 || p > 8) { cout « "Error!"; return 0; }
- int size,value;
- int* a; int* b;
- double* a2;//array 2 (double) - вещественный.
- do {
- cout « "Enter (int) the size of the array:"; cin » size;
- } while (size <= 0);
- NewMasint(a, size);
- void SaveArray(int *a[], int size);
- if (p == 1)
- {
- InputInFile(a, size);
- OutputInConsole(a, size);
- cout « "\nEnter the number you want to add:"; cin » value;
- PushBack(a, size, value);
- ShowArray(a, size);
- pop_back(a, size);
- PushBackRand(a, size);
- ShowArray(a, size);
- Clear(a);
- }
- if (p == 2)
- {
- InputInFile(a, size);
- OutputInConsole(a, size);
- pop_back(a, size);
- cout « endl;
- ShowArray(a, size);
- Clear(a);
- }
- if (p == 3)
- {
- InputInFile(a, size);
- OutputInConsole(a, size);
- cout « "\nEnter the number you want to add:"; cin » value;
- AheadBack(a, size, value);
- ShowArray(a, size);
- cout « endl;
- pop_ahead(a, size);
- AheadBackRand(a, size);
- ShowArray(a, size);
- Clear(a);
- }
- if (p == 4)
- {
- InputInFile(a, size);
- OutputInConsole(a, size);
- pop_ahead(a, size);
- cout « endl;
- ShowArray(a, size);
- Clear(a);
- }
- if (p == 5)
- {
- int p1 = 0; cout « "Enter enter(0) or rand(1):"; cin » p1;
- InputInFile(a, size);
- OutputInConsole(a, size);
- if (p1 == 0)
- {
- cout « "\nEnter the number you want to add:"; cin » value;
- AddAfterAGivenNumber(a, size, value);
- ShowArray(a, size);
- return 0;
- }
- if(p1 == 1)
- cout « endl;
- {
- AddAfterAGivenNumberRandom(a, size);
- ShowArray(a, size);
- return 0;
- }
- Clear(a);
- }
- if (p == 6)
- {
- InputInFile(a, size);
- OutputInConsole(a, size);
- DelAfterAGivenNumber(a, size);
- ShowArray(a, size);
- Clear(a);
- }
- if (p == 7)
- {
- int p1 = 0,value1=0; cout « "Enter enter(0) or rand(1):"; cin » p1;
- InputInFile(a, size);
- OutputInConsole(a, size);
- if (p1 == 0)
- {
- cout « "\nEnter the number you want to add:"; cin » value;
- AddAfterAGivenvalue(a, size, value);
- ShowArray(a, size);
- return 0;
- }
- if (p1 == 1)
- {
- value1 = Value(value1);
- AddAfterAGivenvalueRandom(a, size, value1);
- ShowArray(a, size);
- return 0;
- }
- Clear(a);
- }
- if (p == 8)
- {
- int p1 = 0, value1 = 0; cout « "Enter enter(0) or rand(1):"; cin » p1;
- InputInFile(a, size);
- OutputInConsole(a, size);
- if (p1 == 0)
- {
- DelAfterAGivenvalue(a, size);
- ShowArray(a, size);
- Clear(a);
- return 0;
- }
- if (p1 == 1)
- {
- value1 = Value(value1);
- DelAfterAGivenvalueRand(a, size, value1);
- ShowArray(a, size);
- return 0;
- }
- }
- return 0;
- }
- void MENY()
- {
- cout « " 1) добавить элемент в конец массива";
- cout «"\n 2) удалить последний элемент массива";
- cout «"\n 3) добавить элемент в начало массива";
- cout «"\n 4) удалить первый элемент массива";
- cout «"\n 5) добавить элемент после элемента массива с заданным номером";
- cout «"\n 6) удалить элемент массива, стоящий после элемента с заданным номером";
- cout «"\n 7) добавить элемент массива после элемента с заданным значением, если такого значения нет, то выдать предупреждающее сообщение";
- cout «"\n 8) удалить элемент массива, находящийся после элемента с заданным значением, если такого значения нет, то выдать предупреждающее сообщение.";
- }
- void NewMasint(int* &a, int size)
- {
- a = new int[size];
- }
- void Clear(int a[])
- {
- delete[]a; a = NULL;
- }
- void InputInFile(int a[], int size)
- {
- fstream f("Array 1.txt", ios::in);//f-file, ios::out(Для того чтобы записывать в файл информацию 1 раз.
- {
- srand(time(0));
- for (int count=0; count < size; count++)
- {
- a[count] = rand() % 200 - 100;
- f « a[count] « " ";
- }
- f « "\nThe end of the array.";
- f.close();
- }
- }
- void OutputInConsole(int a[], int size)
- {
- fstream f("Array 1.txt", ios::out);
- {
- for (int count=0; count < size; count++)cout « a[count] « " ";
- f.close();
- }
- }
- void PushBack(int *&a, int &size, const int value)
- {
- int *NewArray = new int[size + 1];
- for (int count = 0; count < size; count++)
- {
- NewArray[count] = a[count];
- }
- NewArray[size++] = value;
- delete[]a;
- a = NewArray;
- }
- void PushBackRand(int *&a, int &size)
- {
- int random;
- random = rand() % 200 - 100;
- int *NewArray = new int[size + 1];
- for (int count = 0; count < size; count++)
- {
- NewArray[count] = a[count];
- }
- NewArray[size++] = random;
- delete[]a;
- a = NewArray;
- cout « "\n";
- }
- void ShowArray(int a[], int size)
- {
- for (int count = 0; count < size; count++)cout « a[count] « " ";
- }
- void pop_back(int *&a, int &size)
- {
- size--;
- int *NewArray = new int[size];
- for (int count = 0; count < size; count++)
- {
- NewArray[count] = a[count];
- }
- delete[] a;
- a = NewArray;
- }
- void AheadBack(int *&a, int &size, const int value)
- {
- int *NewArray = new int[size+1];
- for (int count = 0; count < size; count++)
- {
- NewArray[count+1] = a[count];
- }
- NewArray[0] = value;
- size++;
- delete[]a;
- a = NewArray;
- }
- void AheadBackRand(int *&a, int &size)
- {
- int random;
- random = rand() % 200 - 100;
- int *NewArray = new int[size + 1];
- for (int count = 0; count < size; count++)
- {
- NewArray[count + 1] = a[count];
- }
- NewArray[0] = random;
- size++;
- delete[]a;
- a = NewArray;
- }
- void pop_ahead(int *&a, int &size)
- {
- size--;
- int *NewArray = new int[size];
- for (int count = 0; count < size; count++)
- {
- NewArray[count] = a[count+1];
- }
- delete[] a;
- a = NewArray;
- }
- void AddAfterAGivenNumber(int *&a, int &size, const int value)
- {
- int value1;//вспомогательная перменная для функции.
- cout « "Add the array element number from 0 to " « size « ":"; cin » value1;
- if (value1 > 0 && value1 < size+1)
- {
- int temp = 0;
- int *NewArray = new int[size + 1];
- for (int count = 0; count < size; count++)
- {
- if (size - 1 == count)
- NewArray[count + 1] = value;
- temp = a[count];
- NewArray[count] = a[count];
- if (count == value1)
- {
- NewArray[count + 1] = temp;
- NewArray[count] = value;
- break;
- }
- }
- for (int count = value1 + 1; count < size; count++)
- {
- NewArray[count + 1] = a[count];
- }
- size++;
- delete[]a;
- a = NewArray;
- }
- else
- {
- cout « "Error! Try again! ^.^ —> ";
- }
- }
- void AddAfterAGivenNumberRandom(int *&a, int &size)
- {
- int random;
- random = rand() % 200 - 100;
- int value1;//вспомогательная перменная для функции.
- cout « "Add the array element number from 0 to " « size « ":"; cin » value1;
- if (value1 > 0 && value1 < size + 1)
- {
- int temp = 0;
- int *NewArray = new int[size + 1];
- for (int count = 0; count < size; count++)
- {
- if (size - 1 == count)
- NewArray[count + 1] = random;
- temp = a[count];
- NewArray[count] = a[count];
- if (count == value1)
- {
- NewArray[count + 1] = temp;
- NewArray[count] = random;
- break;
- }
- }
- for (int count = value1 + 1; count < size; count++)
- {
- NewArray[count + 1] = a[count];
- }
- size++;
- delete[]a;
- a = NewArray;
- }
- else
- {
- cout « "Error! Try again! ^.^ —> ";
- }
- }
- void DelAfterAGivenNumber(int *&a, int &size)
- {
- size--;
- int value1;
- cout « "\nEnter the array element after which you want to delete the element from 0 to " « size + 1 « ":"; cin » value1;
- if (value1 > 0 && value1 < size + 1)
- {
- int *NewArray = new int[size];
- for (int count = 0; count < size; count++)
- {
- NewArray[count] = a[count];
- if (count == value1)
- {
- NewArray[count] = a[count + 1];
- break;
- }
- }
- for (int count = value1 + 1; count < size; count++)
- {
- NewArray[count] = a[count + 1];
- }
- delete[] a;
- a = NewArray;
- }
- else { cout « "Error 404! Not found\n"; return; }
- }
- void AddAfterAGivenvalue(int *&a, int &size, const int value)
- {
- int value1,q=0;//вспомогательная перменная для функции.
- cout « "Add the array element: "; cin » value1;
- int temp = 0;
- int count2 = 0;
- int *NewArray = new int[size + 1];
- for (int count = 0; count < size; count++)
- {
- if (a[count] == value1)q++;
- if (size - 1 == count)
- NewArray[count + 1] = value;
- temp = a[count];
- NewArray[count] = a[count];
- if (a[count] == value1)
- {
- NewArray[count] = temp;
- NewArray[count + 1] = value;
- count2 = count;
- break;
- }
- }
- for (int count = count2+1; count < size; count++)
- {
- NewArray[count+1] = a[count];
- }
- if (q == 0)
- {
- cout « "Error 502! Not found!\n"; return;
- }
- size++;
- delete[]a;
- a = NewArray;
- }
- void AddAfterAGivenvalueRandom(int *&a, int &size, int value)
- {
- int random = rand() % 20 - 10,q=0;//вспомогательная перменная для функции.
- cout « "\nAdd the array element:" « random; cout « endl;
- int temp = 0;
- int count2 = 0;
- int *NewArray = new int[size + 1];
- for (int count = 0; count < size; count++)
- {
- if (a[count] == random)q++;
- if (size - 1 == count)
- NewArray[count + 1] = random;
- temp = a[count];
- NewArray[count] = a[count];
- if (a[count] == random)
- {
- NewArray[count] = temp;
- NewArray[count + 1] = random;
- count2 = count;
- break;
- }
- }
- for (int count = count2 + 1; count < size; count++)
- {
- NewArray[count + 1] = a[count];
- }
- if (q == 0)
- {
- cout « "Error 502! Not found!\n"; return;
- }
- size++;
- delete[]a;
- a = NewArray;
- }
- void DelAfterAGivenvalue(int *&a, int &size)
- {
- size--;
- int value1,q=0;//вспомогательная перменная для функции.
- int count2 = 0;
- cout « "\nEnter the array element: "; cin » value1;
- int *NewArray = new int[size];
- for (int count = 0; count < size; count++)
- {
- if (a[count] == value1)q++;
- NewArray[count] = a[count];
- if (a[count] == value1)
- {
- NewArray[count] = a[count + 1];
- count2 = count;
- break;
- }
- }
- for (int count = count2 + 1; count < size; count++)
- {
- NewArray[count] = a[count + 1];
- }
- if (q == 0)
- {
- cout « "Error 502! Not found!\n"; return;
- }
- delete[] a;
- a = NewArray;
- }
- void
- DelAfterAGivenvalueRand(int *&a, int &size, int value1)
- {
- size--;
- int q = 0;;//вспомогательная перменная для функции.
- int count2 = 0;
- cout « "\nYour random the array element: " « value1 « endl;
- int *NewArray = new int[size];
- for (int count = 0; count < size; count++)
- {
- if (a[count] == value1)q++;
- NewArray[count] = a[count];
- if (a[count] == value1)
- {
- NewArray[count+1] = a[count + 1];
- count2 = count;
- break;
- }
- }
- for (int count = count2 + 1; count < size; count++)
- {
- NewArray[count] = a[count + 1];
- }
- if (q == 0)
- {
- cout « "\nError 502! Not found!\n"; return;
- }
- delete[] a;
- a = NewArray;
- }
- int Value(int a)
- {
- return a = rand() % 200 - 100;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement