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

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

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

Автор: -Иван- 12.04.2007 1:12

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

Автор: -Иван- 12.04.2007 1:14

Помогите, пожалуйста!!

Автор: Tan 12.04.2007 1:34

Ну можно было бы проще, посмотри что у меня вышло, то ли, что тебе надо :

uses crt;
Const M = 5;
N = 5;
var ms : array [1..N,1..M] of integer;
max,i,j,k : integer;
begin
Clrscr;
randomize;
for i:=1 to N do
begin
writeln;
for j:=1 to M do
begin
ms[i,j]:=random(10);
write (ms[i,j]:2);
end;
end;
max:=ms[1,1];
for i:=1 to N do
for j:=1 to M do if ms[i,j] >= max then max:=ms[i,j];
writeln;
writeln ('MAX ',max);
for i:=1 to N do
for j:=1 to M do if ms[i,j] = max then begin for k:=1 to M do ms[i + 1,k]:=ms[1,k]; break; end;
for i:=1 to N do
begin
writeln;
for j:=1 to M do write (ms[i,j]:2);
end;

Автор: klem4 12.04.2007 11:30

Tan, ты хотябы программу свою запускал ? Если да, она хотя бы раз отработала без ошибки ? Выход за границы массива при любом раскладе ...

я тебя предупреждал ? предупреждал. Вот теперь не обижайся, предупреждение + 1, в следующий раз понижу рейтинг.

Я догадываюсь в чем проблема. Поставь первой строчкой программы {$R+}. Видимо в опциях комипялатора отключено у тебя, в связи с этим амнистия, снимаю предупреждение.

Но программа всеравно делает не то что нужно в задании.

Автор: volvo 12.04.2007 12:52

Цитата
Видимо в опциях комипялатора отключено у тебя, в связи с этим амнистия
Логику амнистии можно объяснить? То, что программа вылетает за пределы массива, означает только одно - программа неверна. Соответственно, результаты ее работы непредсказуемы. А уж то, что у предлагающего решение отключен {$R}, при тестировании (если тесстирование вообще производилось) - это вообще верх неприличия, и поводом для амнистии служить никак не может...

Автор: Tan 13.04.2007 0:30

Полностью согласен с volvo, но я тестил, наверно недовыделил, но это не суть, сам виноват что не так прочитал задание и не поставил ограничение в массиве.