From 2527bdf6a75afd80e597619084c555b8077934be Mon Sep 17 00:00:00 2001 From: nikit Date: Sun, 10 Nov 2024 18:32:57 +0300 Subject: [PATCH] commit 1 --- WindowsProject2.cpp | 181 --------------- laba.cpp | 551 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 551 insertions(+), 181 deletions(-) delete mode 100644 WindowsProject2.cpp create mode 100644 laba.cpp diff --git a/WindowsProject2.cpp b/WindowsProject2.cpp deleted file mode 100644 index 178107b..0000000 --- a/WindowsProject2.cpp +++ /dev/null @@ -1,181 +0,0 @@ -// WindowsProject2.cpp : Определяет точку входа для приложения. -// - -#include "framework.h" -#include "WindowsProject2.h" - -#define MAX_LOADSTRING 10 - -// Глобальные переменные: -HINSTANCE hInst; // текущий экземпляр -WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка -WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна - -// Отправить объявления функций, включенных в этот модуль кода: -ATOM MyRegisterClass(HINSTANCE hInstance); -BOOL InitInstance(HINSTANCE, int); -LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); -INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); - -int APIENTRY wWinMain(_In_ HINSTANCE hInstance, - _In_opt_ HINSTANCE hPrevInstance, - _In_ LPWSTR lpCmdLine, - _In_ int nCmdShow) -{ - UNREFERENCED_PARAMETER(hPrevInstance); - UNREFERENCED_PARAMETER(lpCmdLine); - - // TODO: Разместите код здесь. - - // Инициализация глобальных строк - LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); - LoadStringW(hInstance, IDC_WINDOWSPROJECT2, szWindowClass, MAX_LOADSTRING); - MyRegisterClass(hInstance); - - // Выполнить инициализацию приложения: - if (!InitInstance (hInstance, nCmdShow)) - { - return FALSE; - } - - HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT2)); - - MSG msg; - - // Цикл основного сообщения: - while (GetMessage(&msg, nullptr, 0, 0)) - { - if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - - return (int) msg.wParam; -} - - - -// -// ФУНКЦИЯ: MyRegisterClass() -// -// ЦЕЛЬ: Регистрирует класс окна. -// -ATOM MyRegisterClass(HINSTANCE hInstance) -{ - WNDCLASSEXW wcex; - - wcex.cbSize = sizeof(WNDCLASSEX); - - wcex.style = CS_HREDRAW | CS_VREDRAW; - wcex.lpfnWndProc = WndProc; - wcex.cbClsExtra = 0; - wcex.cbWndExtra = 0; - wcex.hInstance = hInstance; - wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT2)); - wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); - wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); - wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT2); - wcex.lpszClassName = szWindowClass; - wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); - - return RegisterClassExW(&wcex); -} - -// -// ФУНКЦИЯ: InitInstance(HINSTANCE, int) -// -// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно -// -// КОММЕНТАРИИ: -// -// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также -// создается и выводится главное окно программы. -// -BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) -{ - hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной - - HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); - - if (!hWnd) - { - return FALSE; - } - - ShowWindow(hWnd, nCmdShow); - UpdateWindow(hWnd); - - return TRUE; -} - -// -// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) -// -// ЦЕЛЬ: Обрабатывает сообщения в главном окне. -// -// WM_COMMAND - обработать меню приложения -// WM_PAINT - Отрисовка главного окна -// WM_DESTROY - отправить сообщение о выходе и вернуться -// -// -LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - switch (message) - { - case WM_COMMAND: - { - int wmId = LOWORD(wParam); - // Разобрать выбор в меню: - switch (wmId) - { - case IDM_ABOUT: - DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); - break; - case IDM_EXIT: - DestroyWindow(hWnd); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - } - break; - case WM_PAINT: - { - PAINTSTRUCT ps; - HDC hdc = BeginPaint(hWnd, &ps); - // TODO: Добавьте сюда любой код прорисовки, использующий HDC... - LineTo(hdc, 100, 100); - EndPaint(hWnd, &ps); - } - break; - case WM_DESTROY: - PostQuitMessage(0); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - return 0; -} - -// Обработчик сообщений для окна "О программе". -INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - UNREFERENCED_PARAMETER(lParam); - switch (message) - { - case WM_INITDIALOG: - return (INT_PTR)TRUE; - - case WM_COMMAND: - if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) - { - EndDialog(hDlg, LOWORD(wParam)); - return (INT_PTR)TRUE; - } - break; - } - return (INT_PTR)FALSE; -} diff --git a/laba.cpp b/laba.cpp new file mode 100644 index 0000000..d297d18 --- /dev/null +++ b/laba.cpp @@ -0,0 +1,551 @@ +//#include +//#include +// +//#define NUM_ELEMENTS 10 +// +//int arr[NUM_ELEMENTS]; +//int n = 0; +// +// +//void printElements(); +//void keyboardInput(); +//void oddsX10(); +//int findMin(); +//int more10(); +//int findLastEven(); +//int findIndexMin(); +//void chetnaminus(); +//int findmenshe4(); +//int variant1(); +//void deletElement(int delIndex); +//void insertElement(int insIndex, int value); +//int deletfindMin(); +//void variant_5(); +//int Findnechet(); +// +//void main() { +// SetConsoleCP(1251); +// SetConsoleOutputCP(1251); +// int item; +// do { +// printf("\n"); +// printf("------------------------------\n"); +// printf(" :"); +// printElements(); +// printf(" :\n"); +// printf("1: \n"); +// printf("2: x10 \n"); +// printf("3: \n"); +// printf("4: > 10\n"); +// printf("5: 2 \n"); +// printf("6: \n"); +// printf("7: -1\n"); +// printf("8: , < 4, 4\n"); +// printf("9: \n"); +// printf("11: \n"); +// printf("12: \n"); +// printf("13: \n"); +// printf("14: 0\n"); +// printf("15: \n"); +// printf("\n"); +// printf("0: \n"); +// printf(" >>>>>> "); +// +// scanf_s("%d", &item); +// +// switch (item) { +// case 1: +// keyboardInput(); +// break; +// +// case 2: +// oddsX10(); +// break; +// +// case 3: +// { +// int min = findMin(); +// printf("min = %d\n", min); +// } +// break; +// +// case 4: +// { +// int i1 = more10(); +// printf(" %d > 10\n", i1); +// } +// break; +// +// case 5: +// { +// int index = findLastEven(); +// if (index >= 0) { +// arr[index] *= 2; +// } +// } +// break; +// +// case 6: +// { +// int index = findIndexMin(); +// printf(" = %d\n", index); +// +// int cnt = 0; +// for (int i = 0; i < index; i++) { +// if (arr[i] % 2 == 0) { +// cnt++; +// } +// } +// printf(" %d \n", cnt); +// } +// break; +// +// case 7: +// chetnaminus(); +// break; +// +// case 8: +// findmenshe4(); +// break; +// +// case 9: +// variant1(); +// break; +// +// case 11: +// { +// printf(" = "); +// int index; +// scanf_s("%d", &index); +// +// deletElement(index); +// } +// break; +// +// case 12: +// { +// printf(" ? = "); +// int index; +// scanf_s("%d", &index); +// +// printf(", = "); +// int value; +// scanf_s("%d", &value); +// +// insertElement(index, value); +// } +// break; +// +// case 13: { +// int min = deletfindMin(); +// deletElement(min); +// break; +// } +// case 14: +// { +// int indexMin = findIndexMin(); +// printf(" = %d\n", indexMin); +// +// insertElement(indexMin, 0); +// } +// break; +// +// case 15: +// int nechet = Findnechet(); +// +// deletElement(nechet); +// break; +// } +// } while (item != 0); +//} +// +// +// +//void keyboardInput() { +// printf("n = "); +// scanf_s("%d", &n); +// +// printf("input %d values: ", n); +// for (int i = 0; i < n; i++) { +// scanf_s("%d", &arr[i]); +// } +//} +// +//void oddsX10() { +// for (int i = 0; i < n; i++) { +// if (arr[i] % 2 == 1) { +// arr[i] *= 10; +// } +// } +//} +// +//void printElements() { +// printf("< "); +// for (int i = 0; i < n; i++) { +// printf("%d ", arr[i]); +// } +// printf(">\n"); +//} +// +//int findMin() { +// int min = arr[0]; +// for (int i = 0; i < n; i++) { +// if (arr[i] < min) { +// min = arr[i]; +// } +// } +// return min; +//} +// +// +// +//int more10() { +// int i1 = 0; +// for (int i = 0; i < n; i++) { +// if (arr[i] > 10) { +// i1 += 1; +// } +// } +// return i1; +//} +// +//int findLastEven() { +// for (int i = n - 1; i < n; i--) { +// if (arr[i] % 2 == 0) { +// return i; +// } +// } +// return -1; +//} +// +//int findIndexMin() { +// int min = arr[0]; +// int indexMin = 0; +// for (int i = 1; i < n; i++) { +// if (arr[i] < min) { +// min = arr[i]; +// indexMin = i; +// } +// } +// return indexMin; +//} +// +//void chetnaminus() { +// for (int i = 0; i < n; i++) { +// if (arr[i] % 2 == 0) { +// arr[i] = arr[i] * (-1); +// } +// } +//} +// +//int findmenshe4() { +// for (int i = 0; i < n; i++) { +// if (arr[i] < 4) { +// arr[i] = 4; +// } +// } +// return 4; +//} +// +//int variant1() { +// for (int i = 0; i < n; i++) { +// if (arr[i] % 2 == 0) { +// arr[i] = 0; +// } +// } +// return 0; +//} +// +//void deletElement(int delIndex) { +// for (int i = delIndex; i < n - 1; i++) { +// arr[i] = arr[i + 1]; +// } +// n--; +//} +// +//void insertElement(int insIndex, int value) { +// for (int i = n; i > insIndex; i--) { +// arr[i] = arr[i - 1]; +// } +// n++; +// arr[insIndex] = value; +//} +// +//int deletfindMin() { +// int minNum1 = arr[0]; +// int saveNum = 0; +// for (int i = 0; i < n; i++) { +// if (arr[i] < minNum1) { +// minNum1 = arr[i]; +// saveNum = i; +// } +// } +// return saveNum; +//} +// +// +// +//int Findnechet() { +// for (int i = 0; i < n; i++) { +// if (arr[i] % 2 != 0) { +// return i; +// } +// } +// return -1; +//} +// + + + + + +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include + +#define max_n 10 +#define max_m 10 + + + + + +int arr[max_n][max_m] = { + { 1, 5, 3, 4}, + { 76, 88, 89 }, + { 9, 8, 3, 8 } + +}; + +int n = 3; +int m = 4; + +void print() { + printf("!!!! print() !!!!\n"); + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + printf("%4d", arr[i][j]); + } + printf("\n"); + } +} + +void fillix10() { + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + arr[i][j] = i * 10 + j; + } + } +} + +void fillzero() { + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + arr[i][j] = 0; + } + } +} + +void random() { + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + arr[i][j] = rand() % 10; + } + } +} + +void odd_numbers() { + 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 multiples_10() { + 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 enterinf_array() { + printf("\n = "); + scanf_s("%d", &n); + + printf("\n = "); + scanf_s("%d", &m); + + for (int i = 0; i < n; i++) { + printf(" %d ", i + 1); + for (int j = 0; j < m; j++) { + scanf_s("%d", &arr[i][j]); + } + } +} + +// +void save() { + // + FILE* fout = fopen("c:\\fist\\\\\\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("c:\\fist\\\\\\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 deletrow(int 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 duplicatecolumn(int dupcol) { + for (int i = 0; i < n; i++) { + for (int j = m; j > dupcol; j--) { + arr[i][j] = arr[i][j - 1]; + } + } + for (int i = 0, j = 0; i < n; i++, j++) { + if (j = dupcol) + arr[i][j + 1] = arr[i][j]; + } + m++; +} + +int null_column() { + int zerocolumns[max_m] = { 0 }; + for (int j = 0; j < m; j++) { + for (int i = 0; i < n; i++) { + if (arr[i][j] % 2 == 0) { + zerocolumns[j] = 1; // + break; + } + } + } + for (int j = 0; j < m; j++) { + if (zerocolumns[j] == 0) { // + for (int i = 0; i < n; i++) { + arr[i][j] = 0; + } + } + } + + return 0; +} + +void main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + int item; + do { + printf("\n"); + print(); + printf("==============================\n"); + printf(" :\n"); + printf("1: i * 10 + j\n"); + printf("2: 0\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("-1: \n"); + printf(" >>>>>> "); + scanf_s("%d", &item); + + switch (item) { + case 1: + fillix10(); + break; + case 2: + fillzero(); + break; + case 3: + random(); + break; + case 4: + odd_numbers(); + break; + case 5: + multiples_10(); + break; + case 6: + enterinf_array(); + break; + case 7: + save(); + break; + case 8: + load(); + break; + case 9: + { + int num; + printf(" , : "); + scanf_s("%d", &num); + deletrow(num); + break; + } + case 10: + { + int num; + printf(" , = "); + scanf_s("%d", &num); + duplicatecolumn(num); + break; + } + case 11: + null_column(); + break; + } + + } while (item != -1); +} \ No newline at end of file