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

Помогите разобраться

Olechka: 3)      В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.   for i:=0 to 10 do     A:=i+3;   for i:=10 downto 0 do begin     k:=A;     A:=A[10-i];     A[10-i]:=k;   end; Чему будут равны элементы этого массива?              1) 13 12 11 109 8 7 6 5 4 3              2) 3 4 5 6 7 8 9 10 11 12 13              3) 13 12 11 10 9 8 9 10 11 12 13              4) 3 4 5 6 7 8 7 6 5 4 3

Ответов - 1

Копытова С.А.: Мне кажется, что в программу вкрались ошибки: возле переменной А в некоторых случаях не дописан индекс. Скорее всего строка A:=i+3; должна выглядеть так: A:=i+3; строка k:=A; так -> k:=A; а строка A:=A[10-i]; так -> A:= A[10-i]; Тогда ответ следующий: Первые две строки формируют первоначальный массив: 3,4,5,6,7,8,9,10,11,12,13 Начиная с 3-й строки (и до end) значения элементов массива изменяются: 1 шаг: k:=13; А[10]=3 (А[10] приобретает значение А[0], т.к. [10-i] на этом этапе равно 0 (i=10)); A[0]=13 (т.е. значения A[0] и А[10] меняются местами) 2 шаг: k:=12; А[9]=4; A[1]=12 (т.е. значения A[1] и А[9] меняются местами) и так до шестого шага. На шестом шаге имеем уже такой ряд значений: 13,12,11,10,9,8,7,6,5,4,3 На шестом шаге происходит «замена» А[5] на А[5] (т.е. значение А[5] остается прежним, равным 6). И начиная с седьмого шага элементы вновь меняют свои значения попарно, возвращаясь к первоначальному состоянию: 3,4,5,6,7,8,9,10,11,12,13. Т.е. правильный ответ будет 2



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