Сумму элементов матрицы в тех строках, которые содержат хотя бы один отрицательный элемент - Pascal
Формулировка задачи:
Помогите пожалуйста решить задачку в Паскале. Напишите плиз прогу. Буду очень благодарен!
Дана целочисленная прямоугольная матрица. Определить:
1. Сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
2. Номера строк и столбцов всех седловых точек матрицы.
Матрица А имеет седловую точку Аij, если Аij является минимальным элементом в i-ой строке и максимальным в j-ом столбце.
Решение задачи: «Сумму элементов матрицы в тех строках, которые содержат хотя бы один отрицательный элемент»
textual
Листинг программы
uses crt; const n=3;{ïîðÿäîê Г¬Г*òðèöû} type MyArr=array[1..n,1..n]of integer; var a:MyArr; procedure Sed(var a:MyArr); var i,j,k,tempi,tempj,max,min,countsed:integer; fl:boolean; begin clrscr; {Г§Г*ïîëГ*ГїГҐГ¬ Г¬Г*òðèöó} writeln('ÈñõîäГ*Г*Гї Г¬Г*òðèöГ*:'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(8)-4; write(a[i,j]:2,' ') end; writeln end; writeln('ÐåçóëüòГ*ГІГ»:'); {îòûñêèâГ*ГҐГ¬ ñåäëîâûå òî÷êè} countsed:=0; for i:=1 to n do begin min:=a[i,1]; tempi:=1; tempj:=1; for j:=2 to n do if a[i,j]<min then begin min:=a[i,j]; tempi:=i; tempj:=j end; k:=1; fl:=true; repeat if a[k,tempj]>min then fl:=false; inc(k) until (k>n) or (fl=false); if fl then begin textcolor(2); writeln('ÝëåìåГ*ГІ a[',tempi,',',tempj,'] ÿâëÿåòñÿ ñåäëîâîé òî÷êîé'); inc(countsed) end; end; if countsed=0 then begin textcolor(4); writeln('Г‚ Г§Г*Г¤Г*Г*Г*îé Г¬Г*òðèöå ñåäëîâûõ òî÷åê Г*ГҐГІ...'); end end; {îñГ*îâГ*Г*Гї ïðîãðГ*ììГ*} begin Sed(a) end.
Объяснение кода листинга программы
- Объявлены переменные: n, MyArr, a, i, j, k, tempi, tempj, max, min, countsed, fl.
- Задано значение переменной n равное 3.
- Объявлен тип массива MyArr как array[1..n,1..n] of integer.
- Объявлена переменная a типа MyArr.
- Объявлена процедура Sed с параметром var a:MyArr.
- В первой итерации внешнего цикла выводится строка из матрицы a размером n на n.
- Во второй итерации внутреннего цикла устанавливается значение элемента матрицы a на случайное число от -4 до 4.
- В процедуре Sed инициализируются переменные countsed и fl значением 0.
- В первой итерации внутреннего цикла ищется минимальное значение в строке.
- Во второй итерации внутреннего цикла проверяется значение элемента матрицы a. Если оно меньше минимального значения, то оно становится новым минимальным значением, а i и j обновляются.
- В третьей итерации внутреннего цикла значение k устанавливается равным 1, а fl устанавливается равным true.
- В цикле while проверяется значение fl. Если оно равно true, то выводится сообщение с указанием номера строки и столбца элемента матрицы a со значением min.
- Если значение countsed равно 0, то выводится сообщение
Г‚ Г§Г*Г¤Г*Г*Г*îé Г¬Г*òðèöå ñåäëîâûõ òî÷åê Г*ГҐГІ...
. - В конце подпрограммы вызывается процедура Sed с передачей переменной a в качестве аргумента.
- В конце программы вызывается процедура Sed.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д