Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ процедуры

Автор: ship 6.04.2008 16:48

привет всем
Посмотрите пож., почему неправильно находится количество положительных элементов в столбцах матрицы и минимальный элемент (из отрицательных всегда выбирает больший, а нужно меньший).

case schet of
1: begin

b[j]:=0;
for j:=1 to m do
begin
for j:=1 to m do
for i:=1 to n do
if Matr1[i,j]>0 then
b[j]:=b[j]+1;
writeln('-------------------------');
writeln;
textcolor(white);
writeln(' обработка...');
writeln;
for j:=1 to m do
writeln('в солбце № ',j,' положительных элементов: ',b[j]:4);
writeln;
end;
end;
:

2: begin
max:=Matr1[1,1]; min:=Matr1[1,1];
for i:=1 to n do
for j:=1 to m do
if Matr1[i,j]>max then max:=Matr1[i,j];
if Matr1[i,j]<min then min:=Matr1[i,j];
pr:=max-min;
z:=pr;
writeln;
writeln ('Минимальный элемент:');
writeln (min:8:2,' ');
writeln;
writeln ('Масимальный элемент:');
writeln (max:8:2,' ');
writeln;
writeln ('Разница между маскимумом и минимумом:');
writeln (pr:8:2,' ');
end;

Автор: volvo 6.04.2008 16:53

Цитата
и минимальный элемент
Ты Begin/End забыла, и у тебя в цикле по J минимум просто НЕ вычисляется... Кстати, что за b[ j ] = 0 в самом начале? J в этом месте чему равно? Вылететь за границы массива и испортить другие данные не боишься?

Автор: ship 6.04.2008 17:28

Цитата(volvo @ 6.04.2008 13:53) *

Ты Begin/End забыла, и у тебя в цикле по J минимум просто НЕ вычисляется... Кстати, что за b[ j ] = 0 в самом начале? J в этом месте чему равно? Вылететь за границы массива и испортить другие данные не боишься?


Минимум работает, спасибо!
А j равно номеру столбца матрицы, в котором считаются положительные элементы

Автор: volvo 6.04.2008 17:36

Перед циклом? Сомневаюсь... Вот так будет надежнее:

1:
begin
for j:=1 to m do begin
b[j] := 0;
for i:=1 to n do
if Matr1[i,j]>0 then b[j]:=b[j]+1;
end; { <--- for j }

writeln('-------------------------');
writeln;
textcolor(white);
writeln(' обработка...');
writeln;
for j:=1 to m do
writeln('в солбце № ',j,' положительных элементов: ',b[j]:4);
writeln;
end; { <--- end 1: }

Автор: ship 6.04.2008 18:13

Огромнейшее спасибо!!! Все работает yahoo!.gif