Advertisement
Pohuyumer

LAB 2.6 HEADER

May 24th, 2020
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.16 KB | None | 0 0
  1. #pragma hdrstop
  2. #include <math.h>
  3. #include <cstdio>    //FILE fopen fclose fprintf, fscanf, printf, scanf
  4. #include <windows.h> //SetConsoleOutputCP, SetConsoleCP
  5.  
  6. void rusification() {                                 //установка русского языка
  7.     SetConsoleCP(1251);
  8.     SetConsoleOutputCP(1251);
  9. }
  10.  
  11. void check_files(FILE* fin, FILE* fout) {             //проверка наличия входного и выходного файлов
  12.  
  13.     if (fin == NULL) {
  14.         fprintf(fout,"Errror: Ошибка при открытии файла для чтения\nPress any key\n");
  15.         exit(1); //выход не из функции, а из программы
  16.     }
  17.  
  18.     if (fout == NULL) {
  19.         fprintf(fout,"Errror: Ошибка при открытии файла для записи\nPress any key\n");
  20.         fclose(fin);
  21.         exit(1);
  22.     }
  23. }
  24.  
  25. void check_nm(FILE* fin,FILE* fout , int &n, int &m, int &T) {         //ввод размера матрицы и T(числа для сравнения)
  26.     fscanf_s(fin, "%d", &n);     //считывание размера матрицы (строки)
  27.     if (n < 1 || n>10) {
  28.         fprintf(fout,"\nНекорректная размерность матрицы...\nНажмите любую клавишу...");
  29.         exit(1);
  30.     }
  31.     fscanf_s(fin, "%d", &m);     //считывание размера матрицы (столбцы)
  32.     if (m < 1 || m>10) {
  33.         fprintf(fout,"\nНекорректная размерность матрицы...\nНажмите любую клавишу...");
  34.         exit(1);
  35.     }
  36.     fprintf(fout,"Размерность матрицы  %d x %d\n",n,m);
  37.  
  38.     fscanf_s(fin, "%d", &T);     //считывание числа для сравнения
  39.     fprintf(fout,"T = %d\n",T);
  40. }
  41.  
  42. void new_matrix(const int n, const int m, int*** b) {              //выделение памяти для матрицы
  43.     *b = new int* [n,m];
  44.     for (int i = 0; i < n; i++)
  45.     {
  46.         (*b)[i] = new int[n,m];
  47.     }
  48. }
  49.  
  50. void input_matrix(FILE* fin,const int n, const int m,  int** b) {  //ввод матрицы
  51.     for (int i = 0; i < n; i++) {
  52.         for (int j = 0; j < m; j++) {
  53.             fscanf_s(fin,"%d", &(b[i][j]));
  54.         }
  55.         fscanf_s(fin,"\n");
  56.     }
  57. }
  58.  
  59. void output_matrix(FILE* fout,const int n, const int m, int** b) { //вывод матрицы
  60.     fprintf(fout,"\nВведенная матрица:\n");
  61.     for (int i = 0; i < n; i++) {
  62.         for (int j = 0; j < m; j++) {
  63.             fprintf(fout,"%d\t", b[i][j]);
  64.         }
  65.         fprintf(fout,"\n");
  66.     }
  67. }
  68.  
  69. void average(FILE* fout,const int n, const int m, const int T, int sum, double avrg, int** b) { //Сравнение среднего арифметического каждого столбца с T
  70.      sum = 0;
  71.      avrg = 0;
  72.      for (int j = 0; j < m; j++) {
  73.          for (int i = 0; i < n; i++) {
  74.               sum += b[i][j];
  75.          }
  76.          avrg = ((double)sum) / n;
  77.               if (avrg > T || avrg == T) {
  78.                   fprintf(fout,"\n\nСреднее арифметическое %dго столбца матрицы = %f",j+1,avrg);
  79.                   fprintf(fout,"\nЭто значение не меньше заданного T = %d, следовательно", T);
  80.                   fprintf(fout,"\nзначения элементов матрицы изменены не были.");
  81.                   exit(1);
  82.               }
  83.           fprintf(fout,"\nСреднее арифметическое %d столбца = %f",j+1,avrg);
  84.           sum = 0;
  85.      }
  86. }
  87.  
  88. void final_matrix(FILE* fout,const int n, const int m, const int T, int** b){
  89.     fprintf(fout,"\n\nТак как среднее арифметическое каждого столбца матрицы меньше T = %d", T);
  90.     fprintf(fout,"\nЗаменяем значение каждого элемента матрицы B квадратом этого значения.\n");
  91.     fprintf(fout,"\nНовая матрица:\n");
  92.     for (int i = 0; i < n; i++) {
  93.         for (int j = 0; j < m; j++) {
  94.             b[i][j] = pow(b[i][j],2);
  95.             fprintf(fout,"%d\t", b[i][j]);
  96.         }
  97.         fprintf(fout,"\n");
  98.     }
  99. }
  100.  
  101. void free_matrix(const int n, int*** b) {             //освобождение памяти для матрицы
  102.     for (int i = 0; i < n; i++) {
  103.           delete [] (*b)[i];
  104.  
  105.     }
  106.     delete [] *b;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement