Двумерный массив в Паскале.

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
hohol
Сообщения: 4
Зарегистрирован: 02 дек 2009, 04:54

Помогите, очень нужно...

Двумерные массивы.

Дан массив A[5,5]. Найти минимальную сумму положительных элементов диагоналей, параллельных побочной.
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

[syntax="pascal"]
uses crt;
const n=5;
k=n+n-1;
type mas=array[1..n,1..n] of integer;
var a:mas;
i,j:byte;
sum:array[1..k] of integer;
min_sum:integer;
begin
textmode(259);
clrscr;

for i:=1 to k do sum:=0;

randomize;
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(50);
if a[i,j] div 10 > 0 then write(a[i,j],' ')
else write(a[i,j],' ');
if (a[i,j]>0) and (i+j-1<>n) then sum[i+j-1]:=sum[i+j-1]+a[i,j];
end;
writeln;
end;

{если не брать крайние элементы}
min_sum:=sum[1]; {min_sum:=sum[2];}
for i:=1 to k do {for i:=2 to k-1 do}
{необходимо заменить соотв. строки закомментированными}
begin
if i<>n then
if sum<=min_sum then
begin
min_sum:=sum;
j:=i;
end;
end;

writeln;
writeln('Minimalnaia summa: ',min_sum);
write('Nomer diagonali: ',j);

write(' (',abs(n-j),'-ia');
if (j-n)<0 then write(' vverh') else write(' vniz');
writeln(' ot pobochnoi)');

readkey;
end.
[/syntax]
Нет религии выше истины
Ответить