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

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

 

Бей­сикPython

FOR i = 0 TO 10

    A(i) = i

NEXT i

FOR i = 0 TO 4

    k = A(10-i)

    A(10-i) = A(i)

    k = A(i)

NEXT i

 

for i in range(0, 11):

    A[i] = i

for i in range(0, 5):

    k = A[10-i]

    A[10-i] = A[i]

    k = A[i]

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

for i : = 0 to 10 do A[i] : = i;

for i : = 0 to 4 do begin

    k : = A[10-i];

    A[10-i] : = A[i];

    k : = A[i];

end;

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

    A[i] : = i

кц

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

    k : = A[10-i];

        A[10-i] : = A[i];

    k : = A[i];

кц

 

Си++

 

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

    A[i] = i;

}

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

    k = A[10-i];

    A[10-i] = A[i];

    k = A[i];

}

 

Чему будут равны эле­мен­ты этого мас­си­ва?

 

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

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

3)  0 1 2 3 4 5 4 3 2 1 0

4)  10 9 8 7 6 5 6 7 8 9 10

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

Ре­ше­ние.

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

i=0: a[0]=0,

i=1: a[1]=1,

i=2: a[2]=2,

...

i=10: a[10]=10.

 

Вто­рой цикл, не ме­ня­ет ме­ста­ми зна­че­ния пер­вых пяти эле­мен­тов с по­сле­ду­ю­щи­ми, по­то­му что пе­ре­мен­ной k при­сва­и­ва­ет­ся по­очерёдно два раз­ных зна­че­ния, что никак не за­ви­сит от опе­ра­ции

A[10-i]:=A[i] и нигде не учи­ты­ва­ет­ся.

 

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

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

...

i=4: a[6]=a[4] = 4.

 

По­это­му в ре­зуль­та­те вы­пол­не­ни про­грам­мы эле­мен­ты мас­си­ва будут равны: 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0.

 

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