Цитата:
Сообщение от Серёга_IV
Спасибо, я понял. И по моему, всё таки, когда мы просматриваем элементы массива, компьютер находит первый элемент, соответствующий условию и запоминает именно его, а остальные не смотрит. при выполнении программы получилось именно так.
И я не в коем случае не думаю, что вы плохо знаете программирование.
|
Не, ну вот ведь Фома Неверующий!
Ладно. Запустил Вашу программу, исправив лишь присваивание значений o и p и добавив вывод этих параметров и соответствующих им элементов массивов на экран. Вот листинг:
Var g:array[1..10] of integer;
p,o,d,i:integer;
Begin
for i:= 1 to 10 do g[i]:=random (21)-10;
for i:= 1 to 10 do write(g[i]:4);
writeln;
for i:= 1 to 10 do if g[i]>0 then p:=i;
for i:= 10 downto 1 do if g[i]<0 then o:=i;
writeln('p= ',p:2,' g[p]= ',g[p]:3);
writeln('o= ',o:2,' g[o]= ',g[o]:3);
d:=g[p];
g[p]:=g[o];
g[o]:=d;
for i:= 1 to 10 do write (g[i]:4);
End.
А вот результат, полюбуйтесь:
И что, это, по-Вашему ПЕРВЫЙ положительный и ПОСЛЕДНИЙ отрицательный элементы? А по-моему, всё с точностью до наоборот. Что я Вам и пытался объяснить. Но, впрочем, если Вы обладаете магическим даром заставить компьютер считать не так, как предписано программой, а так, как хочется Вам - в добрый час!
P.S. Прошу прощения, изначально не тот рисунок вставил. Исправлено.