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

Дан фраг­мент про­грам­мы, об­ра­ба­ты­ва­ю­щий мас­сив А из 10 эле­мен­тов:

 

Бей­сик Python

j = 1

FOR i = 1 TO 10

    IF A(i) = A(j) THEN

        j = i

    ENDIF

NEXT i

s = j

j = 1

for i in range(1, 11):

    if A[i] == A[j]:

        j = i

s = j

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

j := 1

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

    если A[i] = A[j] то

        j := i

    все

кц

s := j

j := 1;

for i := 1 to 10 do

    if A[i] = A[j] then j := i;

s := j;

Си++

j = 1;

for (i = 1; i <= 10; i++)

    if (A[i] == A[j])

    {

        j = i;

    }

s = j;

 

Чему будет равно зна­че­ние пе­ре­мен­ной s после вы­пол­не­ния этого ал­го­рит­ма?

 

1)  1

2)  10

3)  ин­дек­су эле­мен­та, рав­но­го пер­во­му, и име­ю­ще­му наи­боль­ший ин­декс

4)  ин­дек­су эле­мен­та, рав­но­го по­след­не­му, и име­ю­ще­му наи­мень­ший ин­декс

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

Ре­ше­ние.

Из­на­чаль­но эле­мент a[j]=a[1]. Усло­вие цикла го­во­рит нам о том, что если какой-то эле­мент а[i] мас­си­ва А сов­па­да­ет с пер­вым эле­мен­том этого мас­си­ва, то ин­дек­су j при­сва­и­ва­ет­ся зна­че­ние ин­дек­са i. Т. к. цикл про­бе­га­ет все зна­че­ния i в по­ряд­ке уве­ли­че­ния, то по­след­ним зна­че­ни­ем j ста­нет наи­боль­шее зна­че­ние ин­дек­са i такое, что a[i]=a[1]. Это зна­че­ние сов­падёт со зна­че­ни­ем пе­ре­мен­ной s после вы­пол­не­ния ал­го­рит­ма.

 

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