Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2012, 13:11   #1
Lesnaja
Новичок
Джуниор
 
Регистрация: 06.02.2012
Сообщений: 1
Вопрос Элементарно просто, Pasсal (одномерный массив)

Здравствуйте, дорогие гении, вопросы у меня возникают глупые, один из них:
"В программе описан одномерный целочисленный массив А с индексами от 1 до 10. Ниже представлен фрагмент одной и той же программы, записанной на разных языках программирования, в котором значения элементов сначала задаются, а затем меняются.
(напишу только паскаль)
for i:= 1 to 10 do
A:= i-1;
for i:= 1 to 10 do
A:= A[11-i];

1) 9 8 7 6 5 4 3 2 1 0
2) 1 2 3 4 5 5 4 3 2 1
3) 11 10 9 8 7 6 5 4 3 2
4) 9 8 7 6 5 5 6 7 8 9 "

Решение уже есть, даже с объяснением:
После заполнения массива он, очевидно, будет иметь вид : 0 1 2 3 4 5 6 7 8 9 (это понятно мне)
А при выполнении второго цикла до середины массива (11-i) элементы изменяются следующим образом: 9 8 7 6 5 (почему до середины?)
а потом, ведь мы будем работать с уже с измененными первыми значениями и получим остаток массива: 5 6 7 8 9 (почему записывается остаток массива?)
в итоге правильный ответ №4
можете объяснить как для дурачка =) хотя почему как, даже обидно

Последний раз редактировалось Lesnaja; 06.02.2012 в 13:19.
Lesnaja вне форума Ответить с цитированием
Старый 06.02.2012, 13:26   #2
Firstchar
Пользователь
 
Регистрация: 29.09.2011
Сообщений: 23
По умолчанию

просто подумай как работает 2-й цикл.
допустим у нас массив
1 2 3 4
по формуле a[1]:=a[5-1] получим
4234
далее a[2]:=a[5-2]
4 3 3 4
далее a[3]:=a[5-3]
4 3 3 4
ну и a[4]:=a[5-4]
4 3 3 4
все просто и понятно


ну и так, для справки:
если хочешь записать в массив числа в обратном порядке как вариант вот такой цикл (вместо твоего второго)
Код:
for i:=1 to 5 do
begin
x:=a[i];
a[i]:=a[10-i+1];
a[10-i+1]:=x;
end;

Последний раз редактировалось Firstchar; 06.02.2012 в 13:36.
Firstchar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно прям сейчас ( элементарно ) ll0nl1ne Общие вопросы C/C++ 12 20.12.2011 17:22
элементарно, но не могу догнать Наточка Visual C++ 2 22.09.2011 01:34
Бэйсик элементарно... pro100gosu Помощь студентам 5 27.08.2011 11:21
просто delfin07 БД в Delphi 0 24.05.2011 10:29
Вроде бы элементарно, но... aleks_grey Помощь студентам 7 15.07.2007 11:14