Автор | Сообщение |
Плохотникова
|
| |
Сообщение: 1
Зарегистрирован: 30.04.11
Репутация:
0
|
|
Отправлено: 30.04.11 16:00. Заголовок: А 17. Работа с массивами
Здравствуйте, Константин Юрьевич. Объясните пожалуйста решение этой задачи. Когда я решаю у меня получается 2 вариант ответа, а ошибку не вижу! В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется: for i:=0 to 10 do A := i + 1; for i:=10 downto 0 do A:= A[10-i]; Чему будут равны элементы этого массива? 1) 10 9 8 7 6 5 4 3 2 1 0 2) 11 10 9 8 7 6 5 4 3 2 1 3) 11 10 9 8 7 6 7 8 9 10 11 4) 1 2 3 4 5 6 5 4 3 2 1 С уважением, Плохотникова Оксана
|
|
|
Ответов - 1
[только новые]
|
|
Поляков
|
| |
Сообщение: 62
Зарегистрирован: 10.03.11
Откуда: Россия, Санкт-Петербург
Репутация:
0
|
|
Отправлено: 03.05.11 17:58. Заголовок: Здравствуйте, Оксана..
Здравствуйте, Оксана! Задачи этого типа легко решаются с помощью любой Паскаль-среды с отладчиком. :-) Вот полная программа: program qq; var k: integer; A: array[0..10] of integer; begin for k:=0 to 10 do A[k]:= k + 1; for k:=10 downto 0 do A[k]:= A[10-k]; for k:=0 to 10 do write(A[k], ' '); end. Хитрость в том, что после того, как мы дошли до середины массива в цикле for k:=10 downto 0 do A[k]:= A[10-k]; все "старшие" значения второй половины уже "затерты": вместо 11 стоит 1, вместо 10 - 2 и т.д. Они и будут скопированы в первую часть, то есть фактически не изменятся. Получается массив 1 2 3 4 5 6 5 4 3 2 1 Правильный ответ - 4.
|
|
|