Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ConsoleApplication3.cpp: определяет точку входа для консольного приложения.
- //
- #include <iostream>
- #include <fstream>
- #include <conio.h>
- using namespace std;
- const char *FNAME1 = "Test_01.txt"; //имя файла с исходными данными
- const char *FNAME2 = "Test_02.txt"; //имя файла с исходными данными
- const char *FNAME_RES = "Result_01.txt"; //имя файла результатов
- const int N1 = 5; //максимальный размер массива
- const int M1 = 8;
- const int N2 = 6;
- const int M2 = 9;
- const int N = 10;
- const int M = 10;
- void InputMatr(int xMatr[][M], int, int, const char*);
- void OutputMatr(int AMatr[][M], int, int);
- int Amount_str(int xMatr[][M], int, int);
- void Search_Max(int xMatr[][M], int, int);
- int main()
- {
- int AMatr[N][M];
- int BMatr[N][M]; //объявление массива
- ifstream fin1(FNAME1); //объявление файловой переменной и открытие файла
- ifstream fin2(FNAME2); //объявление файловой переменной и открытие файла
- ofstream fout(FNAME_RES);
- setlocale(LC_ALL, "RUSSIAN"); //подключение русского языка
- //файл не найден
- if (!fin1)
- {
- cout << "File " << FNAME1 << " not found\n";
- fin1.close(); //закрытьфайл
- system("pause");
- return 1;
- } // endif
- if (!fin2)
- {
- cout << "File " << FNAME2 << " not found\n";
- fin2.close(); //закрытьфайл
- system("pause");
- return 1;
- } // endif //файл существует, можно из него читать
- //fin >> N; //чтение числа элементов массива из файл
- //файл пуст
- if (fin1.eof())
- {
- cout << "File " << FNAME1 << " is empty\n";
- fin1.close(); //закрыть файл
- system("pause");
- return 1;
- } // endif
- if (fin2.eof())
- {
- cout << "File " << FNAME2 << " is empty\n";
- fin2.close(); //закрыть файл
- system("pause");
- return 1;
- } // endif
- //в файле не число
- if (fin1.fail())
- {
- cout << "ERROR! Read File " << FNAME1 << " failure\n";
- fin1.close(); //закрыть файл
- system("pause");
- return 1;
- } // end if
- if (fin2.fail())
- {
- cout << "ERROR! Read File " << FNAME2 << " failure\n";
- fin2.close(); //закрыть файл
- system("pause");
- return 1;
- } // end if
- InputMatr(AMatr, N1, M1, FNAME1);
- OutputMatr(AMatr, N1, M1);
- InputMatr(BMatr, N2, M2, FNAME2);
- OutputMatr(BMatr, N2, M2);
- cout << endl;
- fout << endl;
- // ПЕРВОЕ ЗАДАНИЕ
- cout << Amount_str(AMatr, N1, M1);
- cout << Amount_str(BMatr, N2, M2);
- // ВТОРОЕ ЗАДАНИЕ
- Search_Max(AMatr, N1, M1);
- Search_Max(BMatr, N2, M2);
- system("pause");
- return 0;
- }
- void InputMatr(int xMatr[][M], int xN, int xM, const char* xFNAME)
- {
- ifstream fin(xFNAME); //объявление файловой переменной и открытие файла
- for (int i = 0; i < xN; i++)
- {
- for (int j = 0; j < xM; j++)
- {
- fin >> xMatr[i][j];
- }
- } //end for
- fin.close();
- }
- void OutputMatr(int xMatr[][M], int N, int M)
- {
- ofstream fout(FNAME_RES);
- {
- for (int i = 0; i < M; i++)
- {
- for (int j = 0; j < N; j++)
- {
- cout << xMatr[i][j];
- fout << xMatr[i][j];
- }
- cout << endl;
- } //end for
- fout.close();
- }
- }
- int Amount_str(int xMatr[][M], int xN, int xM)
- {
- int k;
- bool flag;
- for (int i = 0; i < xN; i++)
- {
- for (j = 0; j < xM; j++)
- {
- if (xMatr[xN][xM] % 2 == 0)
- {
- flag = 1;
- }
- if (flag)
- {
- k++;
- }
- flag = 0;
- }
- return k;
- }
- const int M = 10;
- const int r,s = 10;
- void Search_Max(int xMatr[][M], int xN, int xM)
- {
- int b[r], i, j, q, w, s = 0, tmp;
- for (i = 0; i < xN; i++) //цикл который последовательно сравнивает каждый элемент матрицы со всеми остальными
- {
- for (j = 0; j < xM; j++)
- {
- for (q = 0; q < xN; q++)
- {
- for (w = 0; w < M; w++)
- {
- if (xMatr[i][j] == xMatr[q][w] && (i != q || j != w)) //во втором условии исключаем элементы с одинаковыми индексами
- {
- b[s] = xMatr[i][j]; //записываем в массив b найденный элемент
- s++;
- q = n; //прекращаем искать одинаковые элементы, и переходим к следующему
- break; //выходим из этого цикла
- }
- }
- }
- }
- }
- for (i = 0; i < s; i++) //выводим получившийся массив чтобы полюбоваться своим творением
- cout << b[i] << "\t";
- cout << endl;
- tmp = b[0];
- for (i = 0; i < s; i++) //сравниваем соседние числа в поисках наибольшего.
- {
- if (b[i + 1] > tmp)
- tmp = b[i + 1];
- }
- cout << "Максимальное из чисел встречающееся более одного раза равно " << tmp << endl;
- }
- void Error_code(int X)
- {
- switch (X)
- {
- case 1:
- {
- cout << " ";
- break;
- }
- case 2:
- {
- cout << " ";
- break;
- }
- case 3:
- {
- cout << " ";
- break;
- }
- default:
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement