Скачиваний:
9
Добавлен:
01.05.2014
Размер:
89.6 Кб
Скачать

Найдите сумму элементов столбца и строки массива, на пересечении которых находится максимальный элемент.

После слова 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.