Advertisement
vadim_sharaf

Untitled

Nov 14th, 2022
873
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <sstream>
  4. #include <cmath>
  5. #include<iomanip>
  6. using namespace std;
  7. const unsigned M = 10, N = 10;
  8. int OutArr1(int A[M], unsigned b, fstream& f) {
  9.     for (int i = 0; i < b; i++) {
  10.         f << A[i] << ' ';
  11.     }
  12.     return A[M];
  13. }
  14. void OutArr2(int B[N][M], unsigned a, unsigned b, fstream& f) {
  15.     for (int i = 0; i < a; i++) {
  16.         OutArr1(B[i], b, f);
  17.         f << '\n';
  18.     }
  19. }
  20. void sizeArr(unsigned* pa, unsigned* pb, unsigned* pc, fstream& g) {
  21.     fstream f;
  22.  
  23.     int Q, nb, nc;
  24.     int k=1;
  25.     f.open("in.txt", ios::in);
  26.     int i = 1;
  27.     f >> Q >> *pb;
  28.     f >> *pc;
  29.     nc = *pc;
  30.     *pc = *pc - 1;
  31.     int Q1 = Q;
  32.     nb = *pb;
  33.     if (*pa and *pb) {}
  34.     int size = 100000;
  35.     char s;
  36.     f.unsetf(std::ios_base::skipws);
  37.     while (!f.eof()) {
  38.         while (1) {
  39.             f >> s;
  40.             if (f.eof()) {
  41.                 size = i;
  42.                 (*pa)++;
  43.                 break;
  44.             }
  45.             if (s == '\n' and i == 1) { size = 10 * 100; i = 1;  break; }
  46.             else if (s == '\n') { size = i; (*pa)++;  i = 1;  break; }
  47.             else if (s == ' ') { i++; break; }
  48.             else {
  49.                 f.seekg(0, ios::cur);
  50.                 break;
  51.             }
  52.         }
  53.         if (*pb > size) *pb = size;
  54.     }
  55.     f.close();
  56.     if (*pa > Q) {
  57.         *pa = Q;
  58.     }
  59.     *pb = *pa = min(*pb, *pa);
  60.     if (Q1 != *pa and nb != *pb) {
  61.         g << "Размер матрицы был изменен с " << Q << ' ' << nb << " на " << *pb << ' ' << *pa << endl;
  62.     }
  63.     if (*pc >= *pa) {
  64.         *pc = *pa-1;
  65.         g << "Коэффицент k был изменен с " << nc << " на " << *pc + 1 << endl;
  66.     }
  67. }
  68.  
  69. void inArr(unsigned a, unsigned b, int A[N][M]) {
  70.     fstream f;
  71.     char s;
  72.     int s1, s2, s3;
  73.     f.open("in.txt", ios::in);
  74.     f >> s1 >> s2;
  75.     f >> s3;
  76.     for (int i = 0; i < a; i++) {
  77.         f.setf(std::ios_base::skipws);
  78.         for (int j = 0; j < b; j++) {
  79.             if (j == 0 and A[i][j] == '\n'){ }
  80.             else { f >> A[i][j]; }
  81.         }
  82.         f.unsetf(std::ios_base::skipws);
  83.         while (1) {
  84.             f >> s;
  85.             if (s == '\n') break;
  86.             if (f.eof()) break;
  87.         }
  88.     }
  89.     f.close();
  90. }
  91. void Process(int A[N][M], int a, int b, int c, int valve, fstream& f) {
  92.     valve = 0;
  93.     //int c = a / 2-1;
  94.     int q = 0, i = 0;
  95.     for (q = c; q < b; q++) {
  96.         if (valve < A[c][q]) { valve = A[c][q]; }
  97.     }
  98.     for (i = 0; i < c; i++) {
  99.         if (valve < A[i][i]) { valve = A[i][i]; }
  100.     }
  101.     for (int j = 1; j <= i; i++) {
  102.         if (valve < A[c + j][c - j]) { valve= A[c + j][c - j]; }
  103.     }
  104.     q = q - 1;
  105.     for (int k = 1; k < a-c; k++) {
  106.         if (valve < A[c + k][q - k]) { valve = A[c + k][q - k]; };
  107.     }
  108.     f << "Наибольший элемент заштрихованной области: " << valve;
  109. }
  110. int main() {
  111.     unsigned a = 0, b = 0, c = 0; int value = 0;
  112.     int W[N][M];
  113.     fstream f;
  114.     f.open("out.txt", ios::out);
  115.     sizeArr(&a, &b, &c, f);
  116.     inArr(a, b, W);
  117.     OutArr2(W, a, b, f);
  118.     Process(W, a, b, c, value, f);
  119.     //outResult(value, f);*/
  120.     f.close();
  121.     return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement