Rep/laba.cpp
2024-11-11 12:41:37 +03:00

551 lines
9.5 KiB
C++

//#include <stdio.h>
//#include <Windows.h>
//
//#define NUM_ELEMENTS 10
//
//int arr[NUM_ELEMENTS];
//int n = 0;
//
//
//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 <stdio.h>
#include <windows.h>
#include <time.h>
#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);
}