Матрицы любимицы - Pascal
Формулировка задачи:
Вот написал код к этой задаче
Дана вещественная матрица A из N строк и столбов (N<=20 вводиться)
Найти номер первой строки матрицы ,все элементы которой упорядочены по возрастанию.Если такая строка есть ,то найти и вывести максимальный элемент матрицы, в противном случае найти колво отрицательныйх элементов до первого нулевого элемента на побочной диагонали.
Но он не работает помогите пожалуйста исправить/переделать код.
Решение задачи: «Матрицы любимицы»
textual
Листинг программы
Uses crt; var A:array [1..20,1..20] of real; n,i,j,kol,fl,fl1,nomer,imx,jmx:integer; max:real; begin clrscr; repeat writeln('Vvedite razmernostb matrici N ne bolshe 20'); readln(n); If not(n in [1..20]) then writeln('Nevernyj vvod! Povtorite.'); until n in [1..20]; writeln('Vvedite ',n*n,' elementov matricy:'); For i:=1 to n do for j:=1 to n do begin write('A[',i,',',j,']='); readln(a[i,j]); end; clrscr; writeln('Matrica:'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4:1); writeln; end; fl:=0; for i:=1 to n do begin fl1:=0; for j:=2 to n do if a[i,j]>a[i,j-1] then fl1:=fl1+1; if fl1=n-1 then begin fl:=1; nomer:=i; break; end; end; if fl=1 then begin writeln('Takaya stroka estb, ee nomer=',nomer); max:=a[1,1];imx:=1;jmx:=1; for i:=1 to n do for j:=1 to n do if a[i,j]>max then begin max:=a[i,j]; imx:=i; jmx:=j; end; writeln('Max. el-t a[',imx,',',jmx,']=',max:0:1); end else begin writeln('Takoj stroki net!'); for i:=1 to n do if a[i,n-i+1]=0 then begin nomer:=i; break; end; kol:=0; for i:=1 to nomer do if a[i,n-i+1]<0 then kol:=kol+1; writeln('Kol-vo otr. el.=',kol); end; readkey; end.
Объяснение кода листинга программы
- Объявление переменных:
- n - номер строки для ввода размера матрицы (от 1 до 20)
- i, j - индексы для обхода матрицы
- kol - количество отрицательных элементов главной диагонали матрицы
- fl - флаг наличия строки с возрастающими элементами
- fl1 - вспомогательный флаг для проверки элементов главной диагонали
- nomer - номер строки с возрастающими элементами или номер строки с отрицательными элементами
- imx, jmx - индексы максимального элемента матрицы
- max - максимальное значение элемента матрицы
- Ввод размера матрицы и заполнение матрицы:
- Пользователю предлагается ввести размер матрицы (от 1 до 20)
- Если размер некорректен, программа выводит сообщение об ошибке и просит ввести корректный размер
- Затем происходит ввод элементов матрицы
- Поиск строки с возрастающими элементами и вывод сообщения:
- Если найдена строка с возрастающими элементами, программа выводит сообщение об этом и выводит номер такой строки
- В противном случае выводится сообщение о том, что такая строка отсутствует
- Поиск отрицательных элементов главной диагонали и вывод сообщения:
- Если найдены отрицательные элементы главной диагонали, программа выводит количество таких элементов
- В противном случае выводится сообщение о том, что отрицательных элементов нет
- Поиск максимального элемента матрицы и вывод сообщения:
- Находится максимальное значение элемента матрицы
- Выводятся индексы этого элемента
- Выводится сообщение с максимальным значением элемента матрицы
- Ввод с клавиатуры и завершение работы программы:
- Программа ожидает нажатия клавиши для завершения работы