Форум » Алгоритмизация и программирование » А 17. Работа с массивами » Ответить

А 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

Поляков: Здравствуйте, Оксана! Задачи этого типа легко решаются с помощью любой Паскаль-среды с отладчиком. :-) Вот полная программа: [pre2] 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.[/pre2]Хитрость в том, что после того, как мы дошли до середины массива в цикле [pre2] for k:=10 downto 0 do A[k]:= A[10-k];[/pre2]все "старшие" значения второй половины уже "затерты": вместо 11 стоит 1, вместо 10 - 2 и т.д. Они и будут скопированы в первую часть, то есть фактически не изменятся. Получается массив[pre2]1 2 3 4 5 6 5 4 3 2 1[/pre2] Правильный ответ - 4.



полная версия страницы