Advertisement
SeriousVenom

Untitled

Mar 7th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 13.93 KB | None | 0 0
  1. /* Лаба задание два.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. Программа была написана в Visual Studio 2017, на языке программирования c++ */
  2.  
  3. #include "pch.h"
  4. #include <iostream>
  5. #include <ctime>
  6. #include <algorithm>
  7. #include <locale.h>
  8. #include <fstream>
  9. using namespace std;
  10. void MENY();
  11. void NewMasint(int* &a, int size);//выделение памяти для массива.
  12. void Clear(int a[]);//подчищаем память в массиве.
  13. int Value(int a);//задаёт рандомные числа.
  14. void InputInFile(int a[], int size);//ввод рандомного массива в файл
  15. void OutputInConsole(int a[], int size);//чтение рандомного массива из файла
  16. void PushBack(int *&a, int &size, const int value);//функция, которая добавляет единичку в конец массива.
  17. void PushBackRand(int *&a, int &size);//рандомные элементы.
  18. void ShowArray(int a[], int size);//функция выводит массив на экран 1-я программа.
  19. void pop_back(int *&a, int &size);//Удаляет последний элемент массива 2-я программа.
  20. void AheadBack(int *&a, int &size, const int value);//3 программа, добавление в начале массива.
  21. void AheadBackRand(int *&a, int &size);
  22. void pop_ahead(int *&a, int &size);//4 программа, удаление элемента в начале массива.
  23. void AddAfterAGivenNumber(int *&a, int &size, const int value);//5) добавить элемент после элемента массива с заданным номером;
  24. void AddAfterAGivenNumberRandom(int *&a, int &size);
  25. void DelAfterAGivenNumber(int *&a, int &size);//6) удалить элемент массива, стоящий после элемента с заданным номером;
  26. void AddAfterAGivenvalue(int *&a, int &size, const int value);// 7) добавить элемент массива после элемента с заданным значением, если такого значения нет, то выдать предупреждающее сообщение
  27. void AddAfterAGivenvalueRandom(int *&a, int &size, int value);
  28. void DelAfterAGivenvalue(int *&a, int &size);//8) удалить элемент массива, находящийся после элемента с заданным значением, если такого значения нет, то выдать предупреждающее сообщение.
  29. void DelAfterAGivenvalueRand(int *&a, int &size, int value1);
  30. int main()
  31. {
  32. setlocale(LC_ALL, "Ru");
  33. int p;//p-programm(Для меню программы)
  34. MENY();
  35. cout « "\nWhat program do you want to use?\nEnter a number between 1 and 8:"; cin » p;
  36. if (p <= 0 || p > 8) { cout « "Error!"; return 0; }
  37. int size,value;
  38. int* a; int* b;
  39. double* a2;//array 2 (double) - вещественный.
  40. do {
  41. cout « "Enter (int) the size of the array:"; cin » size;
  42. } while (size <= 0);
  43. NewMasint(a, size);
  44. void SaveArray(int *a[], int size);
  45. if (p == 1)
  46. {
  47. InputInFile(a, size);
  48. OutputInConsole(a, size);
  49. cout « "\nEnter the number you want to add:"; cin » value;
  50. PushBack(a, size, value);
  51. ShowArray(a, size);
  52. pop_back(a, size);
  53. PushBackRand(a, size);
  54. ShowArray(a, size);
  55. Clear(a);
  56. }
  57. if (p == 2)
  58. {
  59. InputInFile(a, size);
  60. OutputInConsole(a, size);
  61. pop_back(a, size);
  62. cout « endl;
  63. ShowArray(a, size);
  64. Clear(a);
  65. }
  66. if (p == 3)
  67. {
  68. InputInFile(a, size);
  69. OutputInConsole(a, size);
  70. cout « "\nEnter the number you want to add:"; cin » value;
  71. AheadBack(a, size, value);
  72. ShowArray(a, size);
  73. cout « endl;
  74. pop_ahead(a, size);
  75. AheadBackRand(a, size);
  76. ShowArray(a, size);
  77. Clear(a);
  78. }
  79. if (p == 4)
  80. {
  81. InputInFile(a, size);
  82. OutputInConsole(a, size);
  83. pop_ahead(a, size);
  84. cout « endl;
  85. ShowArray(a, size);
  86. Clear(a);
  87. }
  88. if (p == 5)
  89. {
  90. int p1 = 0; cout « "Enter enter(0) or rand(1):"; cin » p1;
  91. InputInFile(a, size);
  92. OutputInConsole(a, size);
  93. if (p1 == 0)
  94. {
  95. cout « "\nEnter the number you want to add:"; cin » value;
  96. AddAfterAGivenNumber(a, size, value);
  97. ShowArray(a, size);
  98. return 0;
  99. }
  100. if(p1 == 1)
  101. cout « endl;
  102. {
  103. AddAfterAGivenNumberRandom(a, size);
  104. ShowArray(a, size);
  105. return 0;
  106. }
  107. Clear(a);
  108. }
  109. if (p == 6)
  110. {
  111. InputInFile(a, size);
  112. OutputInConsole(a, size);
  113. DelAfterAGivenNumber(a, size);
  114. ShowArray(a, size);
  115. Clear(a);
  116. }
  117. if (p == 7)
  118. {
  119. int p1 = 0,value1=0; cout « "Enter enter(0) or rand(1):"; cin » p1;
  120. InputInFile(a, size);
  121.  
  122. OutputInConsole(a, size);
  123. if (p1 == 0)
  124. {
  125. cout « "\nEnter the number you want to add:"; cin » value;
  126. AddAfterAGivenvalue(a, size, value);
  127. ShowArray(a, size);
  128. return 0;
  129. }
  130. if (p1 == 1)
  131. {
  132. value1 = Value(value1);
  133. AddAfterAGivenvalueRandom(a, size, value1);
  134. ShowArray(a, size);
  135. return 0;
  136. }
  137. Clear(a);
  138. }
  139. if (p == 8)
  140. {
  141. int p1 = 0, value1 = 0; cout « "Enter enter(0) or rand(1):"; cin » p1;
  142. InputInFile(a, size);
  143. OutputInConsole(a, size);
  144. if (p1 == 0)
  145. {
  146. DelAfterAGivenvalue(a, size);
  147. ShowArray(a, size);
  148. Clear(a);
  149. return 0;
  150. }
  151. if (p1 == 1)
  152. {
  153. value1 = Value(value1);
  154. DelAfterAGivenvalueRand(a, size, value1);
  155. ShowArray(a, size);
  156. return 0;
  157. }
  158. }
  159. return 0;
  160. }
  161. void MENY()
  162. {
  163. cout « " 1) добавить элемент в конец массива";
  164.  
  165. cout «"\n 2) удалить последний элемент массива";
  166.  
  167. cout «"\n 3) добавить элемент в начало массива";
  168.  
  169. cout «"\n 4) удалить первый элемент массива";
  170.  
  171. cout «"\n 5) добавить элемент после элемента массива с заданным номером";
  172.  
  173. cout «"\n 6) удалить элемент массива, стоящий после элемента с заданным номером";
  174.  
  175. cout «"\n 7) добавить элемент массива после элемента с заданным значением, если такого значения нет, то выдать предупреждающее сообщение";
  176.  
  177. cout «"\n 8) удалить элемент массива, находящийся после элемента с заданным значением, если такого значения нет, то выдать предупреждающее сообщение.";
  178.  
  179. }
  180. void NewMasint(int* &a, int size)
  181. {
  182. a = new int[size];
  183. }
  184. void Clear(int a[])
  185. {
  186. delete[]a; a = NULL;
  187. }
  188. void InputInFile(int a[], int size)
  189. {
  190.  
  191. fstream f("Array 1.txt", ios::in);//f-file, ios::out(Для того чтобы записывать в файл информацию 1 раз.
  192. {
  193. srand(time(0));
  194. for (int count=0; count < size; count++)
  195. {
  196. a[count] = rand() % 200 - 100;
  197. f « a[count] « " ";
  198. }
  199. f « "\nThe end of the array.";
  200. f.close();
  201. }
  202. }
  203. void OutputInConsole(int a[], int size)
  204. {
  205. fstream f("Array 1.txt", ios::out);
  206. {
  207. for (int count=0; count < size; count++)cout « a[count] « " ";
  208. f.close();
  209. }
  210. }
  211. void PushBack(int *&a, int &size, const int value)
  212. {
  213. int *NewArray = new int[size + 1];
  214. for (int count = 0; count < size; count++)
  215. {
  216. NewArray[count] = a[count];
  217. }
  218. NewArray[size++] = value;
  219. delete[]a;
  220. a = NewArray;
  221. }
  222. void PushBackRand(int *&a, int &size)
  223. {
  224. int random;
  225. random = rand() % 200 - 100;
  226. int *NewArray = new int[size + 1];
  227. for (int count = 0; count < size; count++)
  228. {
  229. NewArray[count] = a[count];
  230. }
  231. NewArray[size++] = random;
  232. delete[]a;
  233. a = NewArray;
  234. cout « "\n";
  235. }
  236. void ShowArray(int a[], int size)
  237. {
  238. for (int count = 0; count < size; count++)cout « a[count] « " ";
  239. }
  240. void pop_back(int *&a, int &size)
  241. {
  242. size--;
  243. int *NewArray = new int[size];
  244. for (int count = 0; count < size; count++)
  245. {
  246. NewArray[count] = a[count];
  247. }
  248. delete[] a;
  249. a = NewArray;
  250. }
  251. void AheadBack(int *&a, int &size, const int value)
  252. {
  253. int *NewArray = new int[size+1];
  254. for (int count = 0; count < size; count++)
  255. {
  256. NewArray[count+1] = a[count];
  257. }
  258. NewArray[0] = value;
  259. size++;
  260. delete[]a;
  261. a = NewArray;
  262. }
  263. void AheadBackRand(int *&a, int &size)
  264. {
  265. int random;
  266. random = rand() % 200 - 100;
  267. int *NewArray = new int[size + 1];
  268. for (int count = 0; count < size; count++)
  269. {
  270. NewArray[count + 1] = a[count];
  271. }
  272. NewArray[0] = random;
  273. size++;
  274. delete[]a;
  275. a = NewArray;
  276. }
  277. void pop_ahead(int *&a, int &size)
  278. {
  279. size--;
  280. int *NewArray = new int[size];
  281. for (int count = 0; count < size; count++)
  282. {
  283. NewArray[count] = a[count+1];
  284. }
  285. delete[] a;
  286. a = NewArray;
  287. }
  288. void AddAfterAGivenNumber(int *&a, int &size, const int value)
  289. {
  290. int value1;//вспомогательная перменная для функции.
  291. cout « "Add the array element number from 0 to " « size « ":"; cin » value1;
  292. if (value1 > 0 && value1 < size+1)
  293. {
  294. int temp = 0;
  295. int *NewArray = new int[size + 1];
  296. for (int count = 0; count < size; count++)
  297. {
  298. if (size - 1 == count)
  299. NewArray[count + 1] = value;
  300. temp = a[count];
  301.  
  302. NewArray[count] = a[count];
  303. if (count == value1)
  304. {
  305. NewArray[count + 1] = temp;
  306. NewArray[count] = value;
  307. break;
  308. }
  309. }
  310. for (int count = value1 + 1; count < size; count++)
  311. {
  312. NewArray[count + 1] = a[count];
  313. }
  314. size++;
  315. delete[]a;
  316. a = NewArray;
  317. }
  318. else
  319. {
  320. cout « "Error! Try again! ^.^ —> ";
  321. }
  322.  
  323. }
  324. void AddAfterAGivenNumberRandom(int *&a, int &size)
  325. {
  326. int random;
  327. random = rand() % 200 - 100;
  328. int value1;//вспомогательная перменная для функции.
  329. cout « "Add the array element number from 0 to " « size « ":"; cin » value1;
  330. if (value1 > 0 && value1 < size + 1)
  331. {
  332. int temp = 0;
  333. int *NewArray = new int[size + 1];
  334. for (int count = 0; count < size; count++)
  335. {
  336. if (size - 1 == count)
  337. NewArray[count + 1] = random;
  338. temp = a[count];
  339. NewArray[count] = a[count];
  340. if (count == value1)
  341. {
  342. NewArray[count + 1] = temp;
  343. NewArray[count] = random;
  344. break;
  345. }
  346. }
  347. for (int count = value1 + 1; count < size; count++)
  348. {
  349. NewArray[count + 1] = a[count];
  350. }
  351. size++;
  352. delete[]a;
  353. a = NewArray;
  354. }
  355. else
  356. {
  357. cout « "Error! Try again! ^.^ —> ";
  358. }
  359. }
  360. void DelAfterAGivenNumber(int *&a, int &size)
  361. {
  362. size--;
  363. int value1;
  364. cout « "\nEnter the array element after which you want to delete the element from 0 to " « size + 1 « ":"; cin » value1;
  365. if (value1 > 0 && value1 < size + 1)
  366. {
  367. int *NewArray = new int[size];
  368. for (int count = 0; count < size; count++)
  369. {
  370. NewArray[count] = a[count];
  371. if (count == value1)
  372. {
  373. NewArray[count] = a[count + 1];
  374. break;
  375. }
  376. }
  377. for (int count = value1 + 1; count < size; count++)
  378. {
  379. NewArray[count] = a[count + 1];
  380. }
  381. delete[] a;
  382. a = NewArray;
  383. }
  384. else { cout « "Error 404! Not found\n"; return; }
  385.  
  386. }
  387. void AddAfterAGivenvalue(int *&a, int &size, const int value)
  388. {
  389. int value1,q=0;//вспомогательная перменная для функции.
  390. cout « "Add the array element: "; cin » value1;
  391. int temp = 0;
  392. int count2 = 0;
  393. int *NewArray = new int[size + 1];
  394. for (int count = 0; count < size; count++)
  395. {
  396. if (a[count] == value1)q++;
  397. if (size - 1 == count)
  398. NewArray[count + 1] = value;
  399. temp = a[count];
  400. NewArray[count] = a[count];
  401. if (a[count] == value1)
  402. {
  403. NewArray[count] = temp;
  404. NewArray[count + 1] = value;
  405. count2 = count;
  406. break;
  407. }
  408. }
  409. for (int count = count2+1; count < size; count++)
  410. {
  411. NewArray[count+1] = a[count];
  412. }
  413. if (q == 0)
  414. {
  415. cout « "Error 502! Not found!\n"; return;
  416. }
  417. size++;
  418. delete[]a;
  419. a = NewArray;
  420. }
  421. void AddAfterAGivenvalueRandom(int *&a, int &size, int value)
  422. {
  423. int random = rand() % 20 - 10,q=0;//вспомогательная перменная для функции.
  424. cout « "\nAdd the array element:" « random; cout « endl;
  425. int temp = 0;
  426. int count2 = 0;
  427. int *NewArray = new int[size + 1];
  428. for (int count = 0; count < size; count++)
  429. {
  430. if (a[count] == random)q++;
  431. if (size - 1 == count)
  432. NewArray[count + 1] = random;
  433. temp = a[count];
  434. NewArray[count] = a[count];
  435. if (a[count] == random)
  436. {
  437. NewArray[count] = temp;
  438. NewArray[count + 1] = random;
  439. count2 = count;
  440. break;
  441. }
  442. }
  443. for (int count = count2 + 1; count < size; count++)
  444. {
  445. NewArray[count + 1] = a[count];
  446. }
  447. if (q == 0)
  448. {
  449. cout « "Error 502! Not found!\n"; return;
  450. }
  451. size++;
  452. delete[]a;
  453. a = NewArray;
  454. }
  455. void DelAfterAGivenvalue(int *&a, int &size)
  456. {
  457. size--;
  458. int value1,q=0;//вспомогательная перменная для функции.
  459. int count2 = 0;
  460. cout « "\nEnter the array element: "; cin » value1;
  461. int *NewArray = new int[size];
  462. for (int count = 0; count < size; count++)
  463. {
  464. if (a[count] == value1)q++;
  465. NewArray[count] = a[count];
  466. if (a[count] == value1)
  467. {
  468. NewArray[count] = a[count + 1];
  469. count2 = count;
  470. break;
  471. }
  472. }
  473. for (int count = count2 + 1; count < size; count++)
  474. {
  475. NewArray[count] = a[count + 1];
  476. }
  477. if (q == 0)
  478. {
  479. cout « "Error 502! Not found!\n"; return;
  480. }
  481. delete[] a;
  482. a = NewArray;
  483. }
  484. void
  485.  
  486. DelAfterAGivenvalueRand(int *&a, int &size, int value1)
  487. {
  488. size--;
  489. int q = 0;;//вспомогательная перменная для функции.
  490. int count2 = 0;
  491. cout « "\nYour random the array element: " « value1 « endl;
  492. int *NewArray = new int[size];
  493. for (int count = 0; count < size; count++)
  494. {
  495. if (a[count] == value1)q++;
  496. NewArray[count] = a[count];
  497. if (a[count] == value1)
  498. {
  499. NewArray[count+1] = a[count + 1];
  500. count2 = count;
  501. break;
  502. }
  503. }
  504. for (int count = count2 + 1; count < size; count++)
  505. {
  506. NewArray[count] = a[count + 1];
  507. }
  508. if (q == 0)
  509. {
  510. cout « "\nError 502! Not found!\n"; return;
  511. }
  512. delete[] a;
  513. a = NewArray;
  514. }
  515. int Value(int a)
  516. {
  517. return a = rand() % 200 - 100;
  518. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement