From 152063142d59be6dd1384d65231b07a7f348c9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=80=D0=B2=D0=B0=D1=80=D0=B0=20=D0=9A=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D0=B5=D0=B2=D0=B0?= Date: Wed, 6 Nov 2024 09:41:00 +0400 Subject: [PATCH] 1 commit --- Source1.cpp | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 Source1.cpp diff --git a/Source1.cpp b/Source1.cpp new file mode 100644 index 0000000..3cefa12 --- /dev/null +++ b/Source1.cpp @@ -0,0 +1,265 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include + +#define MAX_N 8 +#define MAX_M 10 + +int arr[MAX_N][MAX_M]; +int arr1[MAX_N][MAX_M*2]; +int n = 0; +int m = 0; +int i, j, k, column; + +void keyboardInput(); +void print(); +void fillIx10(); +void fillZero(); +void randFill0_9(); +void NechetX10(); +void Krat10(); +void save(); +void load(); +void deleteRow(int delRow); +void ChetNet(); + + +void main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + int item; + do { + printf("\n"); + print(); + 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("11: обнулить элементы тех столбцов, в которых нет ни одного четного элемента\n"); + printf("\n"); + printf("0: Выйти из программы\n"); + printf("Выбранная операция >>>>>> "); + + scanf_s("%d", &item); + + switch (item) { + case 1: + + fillIx10(); + break; + case 2: + fillZero(); + break; + case 3: + { + randFill0_9(); + break; + } + break; + case 4: + { + NechetX10(); + break; + } + case 5: + { + Krat10(); + }break; + case 6: + { + keyboardInput(); + break; + } + case 7: + { + save(); + break; + } + break; + case 8: + { + load(); + break; + } + case 9: + + int num; + printf("Номер строки, которую нужно удалить: "); + scanf_s("%d", &num); + deleteRow(num); + print(); + break; + case 10: + { + int a = 0; + + printf("Номер дублируемого столбца = "); + scanf_s("%d", &a); + for (int i = 0; i < n; i++) { + for (int j = a; j < (m + 1); j++) { + arr[i][m] = arr[i][a]; + } + } + m++; + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + printf("%d ", arr[i][j]); + } + printf("\n"); + } + }break; + case 11: + { + ChetNet(); + }break; + + } + + } while (item != 0); +} +void keyboardInput() { + printf("n = "); + scanf_s("%d", &n); + + printf("m = "); + scanf_s("%d", &m); + + + printf("input values: "); + + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + scanf_s("%d", &arr[i][j]); + } + + } +} +void print() { + printf("!!!! print() !!!!\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 NechetX10() { + printf("!!!! NechetX10() !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + if (arr[i][j] % 2 != 0) + { + arr[i][j] *= 10; + } + } + } +} +void Krat10() { + printf("!!!! Krat10() !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + if (arr[i][j] % 10 == 0) + { + arr[i][j] /= 10; + } + } + } +} +// Сохранение состояния +void save() { + FILE* fout = fopen("d:\\zagryzka s interneta\\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("d:\\zagryzka s interneta\\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 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 ChetNet() { + printf("!!!! ChetNet() !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + if (arr[i][j] % 2 == 1) { + arr[i][j] = 0; + } + + } + } +} + + + + +