Показать сообщение отдельно
Старый 15.12.2012, 20:03   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Серёга_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.

А вот результат, полюбуйтесь:
Название: FP01.jpg
Просмотров: 136

Размер: 7.0 Кб
И что, это, по-Вашему ПЕРВЫЙ положительный и ПОСЛЕДНИЙ отрицательный элементы? А по-моему, всё с точностью до наоборот. Что я Вам и пытался объяснить. Но, впрочем, если Вы обладаете магическим даром заставить компьютер считать не так, как предписано программой, а так, как хочется Вам - в добрый час!

P.S. Прошу прощения, изначально не тот рисунок вставил. Исправлено.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070