Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma hdrstop
- #include <math.h>
- #include <cstdio> //FILE fopen fclose fprintf, fscanf, printf, scanf
- #include <windows.h> //SetConsoleOutputCP, SetConsoleCP
- void rusification() { //установка русского языка
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- }
- void check_files(FILE* fin, FILE* fout) { //проверка наличия входного и выходного файлов
- if (fin == NULL) {
- fprintf(fout,"Errror: Ошибка при открытии файла для чтения\nPress any key\n");
- exit(1); //выход не из функции, а из программы
- }
- if (fout == NULL) {
- fprintf(fout,"Errror: Ошибка при открытии файла для записи\nPress any key\n");
- fclose(fin);
- exit(1);
- }
- }
- void check_nm(FILE* fin,FILE* fout , int &n, int &m, int &T) { //ввод размера матрицы и T(числа для сравнения)
- fscanf_s(fin, "%d", &n); //считывание размера матрицы (строки)
- if (n < 1 || n>10) {
- fprintf(fout,"\nНекорректная размерность матрицы...\nНажмите любую клавишу...");
- exit(1);
- }
- fscanf_s(fin, "%d", &m); //считывание размера матрицы (столбцы)
- if (m < 1 || m>10) {
- fprintf(fout,"\nНекорректная размерность матрицы...\nНажмите любую клавишу...");
- exit(1);
- }
- fprintf(fout,"Размерность матрицы %d x %d\n",n,m);
- fscanf_s(fin, "%d", &T); //считывание числа для сравнения
- fprintf(fout,"T = %d\n",T);
- }
- void new_matrix(const int n, const int m, int*** b) { //выделение памяти для матрицы
- *b = new int* [n,m];
- for (int i = 0; i < n; i++)
- {
- (*b)[i] = new int[n,m];
- }
- }
- void input_matrix(FILE* fin,const int n, const int m, int** b) { //ввод матрицы
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- fscanf_s(fin,"%d", &(b[i][j]));
- }
- fscanf_s(fin,"\n");
- }
- }
- void output_matrix(FILE* fout,const int n, const int m, int** b) { //вывод матрицы
- fprintf(fout,"\nВведенная матрица:\n");
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- fprintf(fout,"%d\t", b[i][j]);
- }
- fprintf(fout,"\n");
- }
- }
- void average(FILE* fout,const int n, const int m, const int T, int sum, double avrg, int** b) { //Сравнение среднего арифметического каждого столбца с T
- sum = 0;
- avrg = 0;
- for (int j = 0; j < m; j++) {
- for (int i = 0; i < n; i++) {
- sum += b[i][j];
- }
- avrg = ((double)sum) / n;
- if (avrg > T || avrg == T) {
- fprintf(fout,"\n\nСреднее арифметическое %dго столбца матрицы = %f",j+1,avrg);
- fprintf(fout,"\nЭто значение не меньше заданного T = %d, следовательно", T);
- fprintf(fout,"\nзначения элементов матрицы изменены не были.");
- exit(1);
- }
- fprintf(fout,"\nСреднее арифметическое %d столбца = %f",j+1,avrg);
- sum = 0;
- }
- }
- void final_matrix(FILE* fout,const int n, const int m, const int T, int** b){
- fprintf(fout,"\n\nТак как среднее арифметическое каждого столбца матрицы меньше T = %d", T);
- fprintf(fout,"\nЗаменяем значение каждого элемента матрицы B квадратом этого значения.\n");
- fprintf(fout,"\nНовая матрица:\n");
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- b[i][j] = pow(b[i][j],2);
- fprintf(fout,"%d\t", b[i][j]);
- }
- fprintf(fout,"\n");
- }
- }
- void free_matrix(const int n, int*** b) { //освобождение памяти для матрицы
- for (int i = 0; i < n; i++) {
- delete [] (*b)[i];
- }
- delete [] *b;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement