diff --git a/15 Лаба.cpp b/15 Лаба.cpp new file mode 100644 index 0000000..aac884e --- /dev/null +++ b/15 Лаба.cpp @@ -0,0 +1,247 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include + +#define MAX_N 8 +#define MAX_M 10 + +int arr[MAX_N][MAX_M] = { + { 0, 1, 222, 3}, + {10, 11, 12, 13}, + {20, 21, 22, 23} +}; +int n = 3; +int m = 4; + +void print(); +void fillIx10(); +void fillZero(); +void randFill0_9(); +void oddsX10(); +void oddsx1(); +void printElements(); +void deleteRow(int delRow); +void save(); +void load(); +void save(); +void load(); +void addColumn(int addColumn0); + +void main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + int item; + do { + printf("\n"); + printf("------------------------------\n"); + printf("Ñîäåðæèìîå ìàññèâà:"); + printf("\n"); + printf("Âûáåðèòå íóæíóþ âàì îïåðàöèþ:\n"); + printf("1: Çàïîëíèòü çíà÷åíèÿìè i * 10 + j\n"); + printf("2: Çàïîëíèòü íóëÿìè\n"); + printf("3: Çàïîëíèòü ñëó÷àéíûìè çíà÷åíèÿìè\n"); + printf("4: Âñå íå÷¸òíûå óâåëè÷èòü â 10 ðàç\n"); + printf("5: Âñå êðàòíûå 10 óìåíüøèòü â 10 ðàç\n"); + printf("6: Ââåäèòå ìàññèâ ñ êëàâèàòóðû\n"); + printf("7: Óäàëèòü çàäàííóþ ñòðîêó èç ìàññèâà\n"); + printf("8: Ñîõðàíèòü â ôàéë\n"); + printf("9: Çàãðóçèòü ôàéë\n"); + printf("10: Ïðîäóáëèðîâàòü çàäàííûé ñòîëáåö ìàññèâà\n"); + printf("\n"); + printf("-1: Âûéòè èç ïðîãðàììû\n"); + printf("Âûáðàííàÿ îïåðàöèÿ >>>>>> "); + + scanf_s("%d", &item); + switch (item) { + case 1: + fillIx10(); + print(); + break; + case 2: + fillZero(); + print(); + break; + case 3: + randFill0_9(); + print(); + break; + + case 4: + oddsX10(); + print(); + break; + case 5: + oddsx1(); + print(); + break; + case 6: + printElements(); + print(); + break; + case 7: + { + int num; + printf("Íîìåð ñòðîêè, êîòîðóþ íóæíî óäàëèòü= "); + scanf_s("%d", &num); + deleteRow(num); + print(); + } + break; + case 8: + save(); + print(); + break; + case 9: + load(); + print(); + break; + case 10: + { + print(); + int num; + printf("Íîìåð ñòîëáöà, êîòîðûé íóæíî ïðîäóáëèðîâàòü= "); + scanf_s("%d", &num); + addColumn(num); + print(); + } + break; + } + } while (item != 0); +} + + +void print() { + printf("!!!! Ìàññèâ !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + printf("%3d ", arr[i][j]); + } + printf("\n"); + } +} + +void fillIx10() { + printf("!!!! fillIx10() !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + arr[i][j] = i * 10 + j; + } + } +} + +void fillZero() { + printf("!!!! fillZero() !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + arr[i][j] = 0; + } + } +} + +void randFill0_9() { + printf("!!!! randFill0_9() !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + arr[i][j] = rand() % 10; + } + } +} + +void oddsX10() { + printf("!!!! oddsX10() !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + if (arr[i][j] % 2 != 0) { + arr[i][j] = arr[i][j] * 10; + } + } + } +} + +void oddsx1() { + printf("!!!! oddsX1() !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + if (arr[i][j] % 10 == 0) { + arr[i][j] = arr[i][j] / 10; + } + } + } +} + + +void printElements() { + printf("n = "); + scanf_s("%d", &n); + printf("m = "); + scanf_s("%d", &m); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + scanf_s(" %d", &arr[i][j]); + } + } + printf("\n"); +} + + +void deleteRow(int delRow) { + printf("!!!! deleteRow(%d) !!!!\n", delRow); + for (int i = delRow; i < n - 1; i++) { + for (int j = 0; j < m; j++) { + arr[i][j] = arr[i + 1][j]; + } + } + n--; +} + +// Ñîõðàíåíèå ñîñòîÿíèÿ +void save() { + // Âûõîäíîé ôàéë + FILE* fout = fopen("arr1.txt", "wt"); + if (fout == NULL) { + printf("Âûõîäíîé ôàéë íå ñîçäàëñÿ"); + return; + } + + fprintf(fout, "%d ", n); + fprintf(fout, "%d\n", m); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + fprintf(fout, "%d ", arr[i][j]); + } + fprintf(fout, "\n"); + } + + fclose(fout); +} + +// Çàãðóçêà ñîñòîÿíèÿ +void load() { + + FILE* fin = fopen("arr1.txt", "rt"); + if (fin == NULL) { + printf("Âõîäíîé ôàéë íå íàéäåí"); + return; + } + + fscanf(fin, "%d", &n); + fscanf(fin, "%d", &m); + + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + fscanf(fin, "%d", &arr[i][j]); + } + } + + fclose(fin); +} + +void addColumn(int addColumn0) { + printf("!!!! addColumn0(%d) !!!!\n", addColumn0); + for (int i = 0; i < n; i++) { + for (int j = addColumn0; j < m + 1; j++) { + arr[i][j] = arr[i][j - 1]; + } + } + m++; +} \ No newline at end of file