Задания
Версия для печати и копирования в MS Word
Тип Д16 № 3356
i

В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив с ин­дек­са­ми от 0 до 10. В при­ве­ден­ном ниже фраг­мен­те про­грам­мы мас­сив сна­ча­ла за­пол­ня­ет­ся, а потом из­ме­ня­ет­ся:

Бей­сикPython

FOR i = 0 TO 10

    A(i) = i

NEXT i

FOR i = 1 TO 11

    A(i - 1) = A(11 - i)

NEXT i

for i in range(0, 11):

    A[i] = i

for i in range(1, 12):

    A[i - 1] = A[11 - i]

Пас­кальАл­го­рит­ми­че­ский язык

for i : = 0 to 10 do

    A[i] : = i;

for i : = 1 to 11 do

    A[i-1] : = A[11-i];

нц для i от 0 до 10

    A[i] : = i

кц

нц для i от 1 до 11

        A[i-1] := A[11-i]

кц

Си++

 

for (i = 0; i <= 10; i++) {

    A[i] = i;

}

for (i = 1; i <= 11; i++) {

     A[i-1] = A[11-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)  10 9 8 7 6 5 6 7 8 9 10

4)  11 10 9 8 7 6 7 8 9 10 11

Спрятать решение

Ре­ше­ние.

Пер­вый цикл, за­пол­ня­ем мас­сив:

i=0: a[0]=0,

i=1: a[1]=1,

i=2: a[2]=2,

...

i=10: a[10]=10.

 

Вто­рой цикл, ме­ня­ем зна­че­ния всех эле­мен­тов: об­ра­ща­ем­ся к зна­че­ни­ям, по­лу­чен­ным при за­пол­не­нии мас­си­ва.

i=1: a[0]=a[10]=10,

i=2: a[1]=a[9]=9,

...

i=6: a[5]=a[5]=5

i=7: a[6]=a[4]=6(На­чи­ная с этого эле­мен­та об­ра­ща­ем­ся к уже изменённым эле­мен­там )

i=11: a[10]=a[0] = 10,

 

По­это­му в ре­зуль­та­те вы­пол­не­ни про­грам­мы эле­мен­ты мас­си­ва будут равны: 10, 9, 8, 7, 6, 5, 6, 7, 8, 9, 10.

 

Пра­виль­ный ответ ука­зан под но­ме­ром 3.

Гость 15.01.2013 14:53

по­че­му мы с 7 эле­мен­та об­ра­ща­ем­ся уже к из­ме­нен­ным?а не про­дол­жа­ем ряд ...4,3,2..?

Гость

По­то­му что на каж­дый эле­мент мас­си­ва от­ве­де­на одна ячей­ка па­мя­ти, со­от­вет­ствен­но, вы­пол­няя дей­ствие A[i-1] : = A[11-i] при i=7, мы при­сва­и­ва­ем ше­сто­му эле­мен­ту зна­че­ние, ко­то­рое на­хо­дит­ся в ячей­ке 4. Оно равно 6 (по­сколь­ку до этого мы при­сво­и­ли чет­вер­то­му эле­мен­ту зна­че­ние 6).