Помощь - Поиск - Пользователи - Календарь
Полная версия: задача с двумерным массивом(решил, прошу проверить)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
marwell
Пусть дана вещественная квадратная матрица порядка 9. Вычислите сумму тех из ее элементов, расположенных на главной диагонали и выше ее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше ее нет элементов с указанным свойством, то ответом должно служить сообщение об этом.

var A:array [1..9,1..9] of real;
n,i,j:integer;
s,max:real;
begin
repeat
write ('vvedite sposob vvoda(1-ruchnoe, 2-avtomat)');
readln (n);
until (n=1) or (n=2);
if n=1 then
begin
for i:=1 to 9 do
for j:=1 to 9 do
begin
write ('a[',i,',',j,']=');
readln (A[i,j]);
end;
end;
randomize;
if n=2 then
begin
for i:=1 to 9 do
for j:=1 to 9 do
begin
a[i,j]:=random;
end;
end;
for i:=1 to 9 do
for j:=1 to 9 do
write (a[i,j]:3);
writeln;
max:=a[2,1];
for i:=1 to 9 do
for j:=1 to 9 do
if i>j then begin
if a[i,j]>max then
max:=a[i,j]
end;
writeln (max:9:5);
s:=0;
for i:=1 to 9 do
for j:=1 to 9 do
if i<=j then begin
if a[i,j]>max then s:=s+a[i,j]
else writeln ('на главной диагонали и выше ее нет элементов с указанным свойством');
end;
writeln (s:9:5);
readln;
end.


написал, все верно вычисляет, но только почему-то сообщение 'на главной диагонали и выше ее нет элементов с указанным свойством' печатает несколько раз dry.gif хотелось бы исправить
volvo
Цитата
почему-то сообщение 'на главной диагонали и выше ее нет элементов с указанным свойством' печатает несколько раз
Потому что надо ввести флажок, значение которого изначально будет истинным, на как только произошло первое суммирование (а, следовательно, был найден первый же элемент, удовлетворяющий заданным свойствам), флажок перебрасывается в False... И потом, ПОСЛЕ цикла проходящего по всем элементам, проверять, чему равен флажок, и выдавать сообщение в случае, если True...

А то что сделал ты - это выдача сообщения "текущий элемент не удовлетворяет указанным свойствам". Нельзя сразу, не проверив ВСЕ элементы, сказать, есть ли среди них что-то нужное, или нет
marwell
Цитата(volvo @ 1.01.2010 23:20) *

Потому что надо ввести флажок, значение которого изначально будет истинным, на как только произошло первое суммирование (а, следовательно, был найден первый же элемент, удовлетворяющий заданным свойствам), флажок перебрасывается в False... И потом, ПОСЛЕ цикла проходящего по всем элементам, проверять, чему равен флажок, и выдавать сообщение в случае, если True...

А то что сделал ты - это выдача сообщения "текущий элемент не удовлетворяет указанным свойствам". Нельзя сразу, не проверив ВСЕ элементы, сказать, есть ли среди них что-то нужное, или нет

ааа, вот оно что smile.gif спасибо smile.gif
marwell
пожалуйста, помогите! или я туплю, или училка с катушек съехала mad.gif она задала вопрос:"в каком диапазоне расположены элементы этой матрицы?" я ответил, что так как матрица описана типом real, то диапазон 2,3*10^(-39)..1,7*10^38. Она говорит, что это неверно. Это действительно так, или она - дура?
volvo
Цитата
я ответил, что так как матрица описана типом real, то диапазон 2,3*10^(-39)..1,7*10^38.
Ты бы документацию прочел - тогда узнал бы, что Random без параметров вернет значение в интервале 0 <= x < 1

А вот какие значения ты вводишь вручную - это надо смотреть, и тогда уж отвечать на вопрос.
marwell
Цитата(volvo @ 22.01.2010 19:12) *

Ты бы документацию прочел - тогда узнал бы, что Random без параметров вернет значение в интервале 0 <= x < 1

А вот какие значения ты вводишь вручную - это надо смотреть, и тогда уж отвечать на вопрос.

бааалин(( я совсем забыл про Random blink.gif спасибо good.gif придется извиняться mega_chok.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.