Задание 1
Блок-схема
#include "stdafx.h" #include<iostream> //подключение к библиотеке ввода/вывода в стиле С++ using namespace std; //подключение стандартного пространства имён
int main() //главная функция { //Создание матрицы int i, j, N1, N2, A[10][20];//А-матрица, i-номер строки, j-номер столбца, N1- кол-во строк, N2- кол-во столбцов; cout << "N1= "; cin >> N1;//ввод количества строк cout << "N2= "; cin >> N2;//ввод количества столбцов cout << "Input matrix A \n"; //цикл по переменной i, в котором перебирием строки матрицы for (i = 0; i < N1; i++) { //цикл по переменной j, в котором перебираем элементы внутри строки for (j = 0; j < N2; j++) { cin >> A[i][j];//ввод очередного элемента матрицы } } cout << "matrix A \n";//вывод на экран всей матрицы //цикл по переменной i, в котором перебираем строки матрицы for (i = 0; i < N1; i++) { for (j = 0; j < N2; j++) cout << A[i][j]<<"\t";//вывод очередного элемента матрицы cout << endl;//переход на новую строку после вывода всех элементов строки }
//ищем минимальный элемент матрицы int i0, j0, Min1;//Min1-минимальный элемент матрицы, i0- номер сроки минимального элемента, j0- номер столбца минимального элемента; i0 = 0; j0 = 0; Min1 = A[i0][j0]; for (i = 0; i < N1; i++)//цикл по переменной i, в котором перебираем все строки { for (j = 0; j < N2; j++)//цикл по переменной j, в котором перебираем элемента внутри строки { if (A[i][j] < Min1)//если текущий элемент меньше предыдущего минимального элемента { i0 = i; //то j0 = j; //текущий элемент становится минимальным в матрице Min1 = A[i0][j0]; } } } cout << "Min number of matrix= " << Min1<< " i0= " << i0 << " j0= "<< j0<< endl;//вывод на экран минимального элемента и его координат
//ищем максимальный элемент в определённой области матрицы, указанной на рисунке в лабе №7, 2 семестр int Max1, i1, j1; Max1 = Min1; i1 = i0; j1 = j0; for (i = 0; i < N1; i++) //цикл по переменной i, в котором перебираем все строки { for (j = 0; j < N2; j++) //цикл по переменной j, в котором перебираем элемента внутри строки { if (i <= -j + i0 + j0 && i <= j + i0 - j0 && Max1 < A[i][j])//если координаты текущего элемента располагаются выше прямых i = -j + i0 + j0, i = j + i0 - j0 и текущий элемент больше предыдущего максимального { i1 = i;//то j1 = j;//текущий элемент становится максимальным в указанной области матрицы Max1 = A[i][j]; } } } cout << "Max number of matrix's part= " << Max1 << " i1= " << i1 << " j1= " << j1 << endl;//вывод на экран максимального элемента и его координат в указанной области матрицы
system("pause"); return 0; }
|