Написать программу (в Pascal) и составить блок-схему по задаче:
В двумерном массиве произвольной размеренности подсчитать количество элементов, равных наибольшему элементу в этом массиве. Вывести значение наибольшего элемента.
Алгоритм Ввод массива A[n,m] Max := A[1,1]; k := 1; p := 1; s := 0; Алгоритм Ввод массива A[n,m] Max := A[1,1]; k := 1; p := 1; c := 0; Цикл по i от 1 до n (по строкам) Цикл по j от 1 до m (по столбцам) Если (A(i, j) = Max) and ((i<>k) or (j<>p)) То c := c+1; Если (A(i, j) > Max) То k := i; p := j; c := 1; Max: = A(i, j); Конец Если Конец цикла по столбцам Конец цикла по строкам Вывод "Элемент ", Max, " встречается ", c, " раз" Конец.
Программа var A: array of array of integer var i,j,m,n,k,p,s,Max: integer BEGIN uses crt; clrscr; write ('Vvedite kol-vo strok: '); readln (n); write ('Vvedite kol-vo stolbtsov: '); readln (m); setlength(A,n,m); for i=1 to n do begin for j=1 to m do begin write ('Vvedite element vassiva: '); readln (A[i,j]); end; end; Max := A[1,1]; k := 1; p := 1; c := 0; for i=1 to n do begin for j=1 to m do begin if (A(i, j) = Max) and ((i<>k) or (j<>p)) then c := c+1; if (A(i, j) > Max) then begin k := i; p := j; c := 1; Max: = A(i, j); end; end; end; write ('Element ', Max, ' vstrechaetsya ', c, ' raz'); END.
Из алгоритма видно, что сначала сравнивают, четно или нет число d. Если четно, то берут остаток от деления числа на 10, т.е крайнюю правую цифру числа и суммируют ее с a, если не четно, то суммируют c b. Затем прибавляют 1 к d, и получают целую часть от деления x на 10. Т.к изначально d = 0, то можно сделать вывод о том, что в переменной a хранится сумма всех цифр x, которые стоят на нечетных местах, а в переменной b - сумма цифр, стоящих на четных местах(Считая справа, т.к алгоритм работает справа налево). 17 можно получить, если сложить 9 и 8. Таким образом, мы выставляем 9 и 8 на четные позиции, а 4 ставит крайней справа, и тогда между 8 и 9 окажется 0. Так мы получим число 8094
Program chik2; var a,i,h,l:integer; begin l:=0; h:=0; for i:=1 to 10 do begin read(a); if(a>0)then l:=l+1; if(a<0)then h:=h+1; end; write(l,' ',h); end. l-кол-во полож h-кол-во отрицательных