Контрольное задание №9-3 / 9-3
.docНайдите сумму элементов столбца и строки массива, на пересечении которых находится максимальный элемент.
После слова program пишется название программы: “Massiv”. Далее слово type определяет тип данных - запись (record) и название этого типа - elem. Далее следуют переменные значения, которые будут применяться в данной программе a,i,j : integer (это будут переменные значения). Далее следует задание массива: после слова var задаётся массив с элементом а,: a:array[0..14,0..14] of integer. Состоит он только из целых чисел и имеет 15 строк и 15 столбцов. Затем с помощью строки i,j,s:integer мы задаём указатели массива. Значение k1 будет являться элементом записи: k1:elem. Далее следует команда begin, означающая начало блока Randomize. Здесь мы присваиваем для всех переменных строк i и столбцов j произвольные значения, состоящие из всех чисел от 0 до 100. Затем выводим массив на экран строкой: Write (inttostr(a[i,j])+' '). Строкой end заканчиваем этот блок. Командой k1.a:=a[0,0] берём значение а, строки k1.i:=0; и k1.j:=0; указывают на то, на какой строке и столбце массива будет находиться значение а. Затем строки for i:=0 to 14 do; begin; for j:=0 to 14 do; begin указывают, что подобное действие проводится со всеми элементами и при любых номерах строк и столбцов. Затем проводится проверка найденного максимального элемента if a[i,j]>k1.a then. В случае нахождения подобного неравенства следует следующий блок. Командой: k1.a:=a[i,j] мы сохраняем текущий максимальный элемент, команда k1.i:=i; сохраняет номер строки этого элемента, а k1.j:=j; сохраняет его столбец. Затем закрываются 3 открытых до этого блока командами end. Строки s:=0; for i:=0 to 14 do; begin; s:=s+a[i,k1.j]; end предназначены для нахождения суммы всех элементов столбца. Строки for j:=0 to 14 do; begin; s:=s+a[k1.i,j]; end находят сумму элементов строки и сумму элементов столбца. Затем выводим на экран полученное значение: writeln; Writeln(inttostr(s)). Затем пропускаем строку и заканчиваем программу командой end.
program Massiv;
type elem=record
a,i,j:integer;
end;
var a:array[0..14,0..14] of integer;
i,j,s:integer;
k1:elem;
begin
Randomize;
for i:=0 to 14 do
begin
for j:=0 to 14 do
begin
a[i,j]:=Random(100);
if a[i,j]<10 then Write (inttostr(a[i,j])+' ') else
Write (inttostr(a[i,j])+' ') ;
end;
writeln;
end;
k1.a:=a[0,0];
k1.i:=0;
k1.j:=0;
for i:=0 to 14 do
begin
for j:=0 to 14 do
begin
if a[i,j]>k1.a then
begin
k1.a:=a[i,j];
k1.i:=i;
k1.j:=j;
end;
end;
end;
s:=0;
for i:=0 to 14 do
begin
s:=s+a[i,k1.j];
end;
for j:=0 to 14 do
begin
s:=s+a[k1.i,j];
end;
writeln;
Writeln(inttostr(s));
readln;
end.