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

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

 

Бей­сикПас­каль

s = 0

n = 10

FOR i = 1 ТО n

    s = s + A(i) - A (i-1)

NEXT i

s: = 0;

n : = 10 ;

for i : = 1 to n do

begin

    s : = s + A[i] - A[i-1];

end

Си++Ал­го­рит­ми­че­ский язык

s = 0;

n = 10;

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

    s = s + A[i] - A[i - 1];

}

s: = 0

n : = 10

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

    s := s + A[i] - A[i - 1]

кц

Python

s = 0

n = 10

for i in range(1, n+1):

    s = s + A[i] - A[i - 1]

 

В на­ча­ле вы­пол­не­ния этого фраг­мен­та в мас­си­ве на­хо­ди­лись числа 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, т. е. А[0]=0, А[1]=2 и т. д. Чему будет равно зна­че­ние пе­ре­мен­ной s после вы­пол­не­ния дан­ной про­грам­мы?

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

Ре­ше­ние.

Из цикла видно, что с каж­дым про­хо­дом число s уве­ли­чи­ва­ет­ся на раз­ни­цу между эле­мен­та­ми мас­си­ва с но­ме­ра­ми, со­от­вет­ству­ю­щи­ми дан­но­му про­хо­ду. Итого, в самом конце s долж­но быть равно сумме всех «рас­сто­я­ний» между эле­мен­та­ми мас­си­ва, то есть, «рас­сто­я­нию» между по­след­ним и пер­вым эле­мен­том, если эле­мен­ты мас­си­ва рас­по­ло­же­ны в по­ряд­ке воз­рас­та­ния. В дан­ном мас­си­ве эта раз­ность равна 20.