Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <sstream>
- #include <cmath>
- #include<iomanip>
- using namespace std;
- const unsigned M = 10, N = 10;
- int OutArr1(int A[M], unsigned b, fstream& f) {
- for (int i = 0; i < b; i++) {
- f << A[i] << ' ';
- }
- return A[M];
- }
- void OutArr2(int B[N][M], unsigned a, unsigned b, fstream& f) {
- for (int i = 0; i < a; i++) {
- OutArr1(B[i], b, f);
- f << '\n';
- }
- }
- void sizeArr(unsigned* pa, unsigned* pb, unsigned* pc, fstream& g) {
- fstream f;
- int Q, nb, nc;
- int k=1;
- f.open("in.txt", ios::in);
- int i = 1;
- f >> Q >> *pb;
- f >> *pc;
- nc = *pc;
- *pc = *pc - 1;
- int Q1 = Q;
- nb = *pb;
- if (*pa and *pb) {}
- int size = 100000;
- char s;
- f.unsetf(std::ios_base::skipws);
- while (!f.eof()) {
- while (1) {
- f >> s;
- if (f.eof()) {
- size = i;
- (*pa)++;
- break;
- }
- if (s == '\n' and i == 1) { size = 10 * 100; i = 1; break; }
- else if (s == '\n') { size = i; (*pa)++; i = 1; break; }
- else if (s == ' ') { i++; break; }
- else {
- f.seekg(0, ios::cur);
- break;
- }
- }
- if (*pb > size) *pb = size;
- }
- f.close();
- if (*pa > Q) {
- *pa = Q;
- }
- *pb = *pa = min(*pb, *pa);
- if (Q1 != *pa and nb != *pb) {
- g << "Размер матрицы был изменен с " << Q << ' ' << nb << " на " << *pb << ' ' << *pa << endl;
- }
- if (*pc >= *pa) {
- *pc = *pa-1;
- g << "Коэффицент k был изменен с " << nc << " на " << *pc + 1 << endl;
- }
- }
- void inArr(unsigned a, unsigned b, int A[N][M]) {
- fstream f;
- char s;
- int s1, s2, s3;
- f.open("in.txt", ios::in);
- f >> s1 >> s2;
- f >> s3;
- for (int i = 0; i < a; i++) {
- f.setf(std::ios_base::skipws);
- for (int j = 0; j < b; j++) {
- if (j == 0 and A[i][j] == '\n'){ }
- else { f >> A[i][j]; }
- }
- f.unsetf(std::ios_base::skipws);
- while (1) {
- f >> s;
- if (s == '\n') break;
- if (f.eof()) break;
- }
- }
- f.close();
- }
- void Process(int A[N][M], int a, int b, int c, int valve, fstream& f) {
- valve = 0;
- //int c = a / 2-1;
- int q = 0, i = 0;
- for (q = c; q < b; q++) {
- if (valve < A[c][q]) { valve = A[c][q]; }
- }
- for (i = 0; i < c; i++) {
- if (valve < A[i][i]) { valve = A[i][i]; }
- }
- for (int j = 1; j <= i; i++) {
- if (valve < A[c + j][c - j]) { valve= A[c + j][c - j]; }
- }
- q = q - 1;
- for (int k = 1; k < a-c; k++) {
- if (valve < A[c + k][q - k]) { valve = A[c + k][q - k]; };
- }
- f << "Наибольший элемент заштрихованной области: " << valve;
- }
- int main() {
- unsigned a = 0, b = 0, c = 0; int value = 0;
- int W[N][M];
- fstream f;
- f.open("out.txt", ios::out);
- sizeArr(&a, &b, &c, f);
- inArr(a, b, W);
- OutArr2(W, a, b, f);
- Process(W, a, b, c, value, f);
- //outResult(value, f);*/
- f.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement