diff --git a/ConsoleApplication1/ConsoleApplication1.sln b/ConsoleApplication1/ConsoleApplication1.sln new file mode 100644 index 0000000..33622ac --- /dev/null +++ b/ConsoleApplication1/ConsoleApplication1.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35327.3 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ConsoleApplication1", "ConsoleApplication1\ConsoleApplication1.vcxproj", "{E4876B7D-DB0F-46BF-BFB1-F399276C00C9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E4876B7D-DB0F-46BF-BFB1-F399276C00C9}.Debug|x64.ActiveCfg = Debug|x64 + {E4876B7D-DB0F-46BF-BFB1-F399276C00C9}.Debug|x64.Build.0 = Debug|x64 + {E4876B7D-DB0F-46BF-BFB1-F399276C00C9}.Debug|x86.ActiveCfg = Debug|Win32 + {E4876B7D-DB0F-46BF-BFB1-F399276C00C9}.Debug|x86.Build.0 = Debug|Win32 + {E4876B7D-DB0F-46BF-BFB1-F399276C00C9}.Release|x64.ActiveCfg = Release|x64 + {E4876B7D-DB0F-46BF-BFB1-F399276C00C9}.Release|x64.Build.0 = Release|x64 + {E4876B7D-DB0F-46BF-BFB1-F399276C00C9}.Release|x86.ActiveCfg = Release|Win32 + {E4876B7D-DB0F-46BF-BFB1-F399276C00C9}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CCC01C8F-E23B-40C6-AF90-808581AEBE49} + EndGlobalSection +EndGlobal diff --git a/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.cpp b/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.cpp new file mode 100644 index 0000000..94f6a1f --- /dev/null +++ b/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.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(" %3d", &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 diff --git a/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.vcxproj b/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.vcxproj new file mode 100644 index 0000000..da62fd3 --- /dev/null +++ b/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {e4876b7d-db0f-46bf-bfb1-f399276c00c9} + ConsoleApplication1 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.vcxproj.filters b/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.vcxproj.filters new file mode 100644 index 0000000..51702e6 --- /dev/null +++ b/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Исходные файлы + + + \ No newline at end of file