Задача на Pascal(delphi)

  • Автор темы NemoI3
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

NemoI3

Гость
#1
Написать программу:

В матрице А(5х5) найти и напечатать элементы диагоналей, проведенных через максимальный элемент(сначала побочную, затем главную).


максимальный элемент понимаю как найти...не могу вывести в правильном порядке.
Если сможете, помогите кто-нибудь...мне это к завтрашнему числу к 12-00 ((
буду очень благодарен, если кто поможет!
если требуется оплата за работу, готов оплатить!если до завтра успеете!!!
заранее благодарен!
 
09.11.2009
665
1
#2
Возможно так?:
Код:
max_roz:=max_i-max_j;{max_i-рядок в которм находится макс, а max_j - столбик}
for i:=1 to 5 do
for j:=1 to 5 do
if i-j=max_roz then writeln(a[i,j]);
 
N

NemoI3

Гость
#3
спасибо большое!!!
но это по главной диагонали получается...
а как побочную вычислить?(((
 
09.11.2009
665
1
#4
проверил, всё работает:
Код:
var a: array [1..5,1..5] of integer;
i,j,max,max_i,max_j,max_roz,max_sum:integer;
begin
randomize;
for i:=1 to 5 do {рандомно забиваем масив}
for j:=1 to 5 do
begin
a[i,j]:=random(100);
a[i,j]:=a[i,j]-50;{делаем так что б были и числа меньше нуля, хотя эту строку можно убрать}
end;

for i:=1 to 5 do{красиво выводим масив}
begin
write('|');
for j:=1 to 5 do
write(' ',a[i,j]:3,' |');
writeln;
end;

max:=a[1,1];{ищем макс}
max_i:=1;
max_j:=1;
for i:=1 to 5 do
for j:=1 to 5 do
if a[i,j]>max then 
begin 
max:=a[i,j]; 
max_i:=i; 
max_j:=j; 
end;

writeln;
max_roz:=max_i-max_j;{выводим глав. диагональ}
for i:=1 to 5 do
for j:=1 to 5 do
if i-j=max_roz then write(a[i,j],' ');
writeln;
writeln;

max_sum:=max_i+max_j;{выводим побочную диагональ}
for i:=1 to 5 do
for j:=1 to 5 do
if i+j=max_sum then write(a[i,j],' ');

readln;
end.
 
N

NemoI3

Гость
#5
Dock1100

спасибо тебе огромное!!!
очень благодарен!!!
всегда буду рад помочь!)
 
Статус
Закрыто для дальнейших ответов.