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

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

 

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

s = 0

n = 10

FOR i = 0 TO n

    IF A(n − i)-A(i) > A(i) THEN

        s = s + A(i)

    END IF

NEXT i

s := 0;

n := 10;

for i:=0 to n do begin

    if A[n - i] - A[i] > A[i] then

        s := s + A[i];

end;

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

s = 0;

n = 10;

for (i = 0; i <= n; i++ )

    if(A[n - i]-A[i] > A[i])

        s = s+ A[i];

s := 0

n:=10

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

    если A[n - i] - A[i] > A[i]

        то s := s + A[i]

все

кц

Python

s = 0

n = 10

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

    if A[n - i]-A[i] > A[i]:

        s = s+ A[i]

 

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

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

Ре­ше­ние.

Цикл вы­пол­ня­ет­ся, пока раз­ность A[n − i] − A[i] боль­ше, чем A[i]. При i=0, 1, 2, 3, 4 по­лу­ча­ем:

 

i=0: A[10] − A[0] = 20 − 0 > A[0], s:=0 + 0 = 0;

i=1: A[9] − A[1] = 18 − 2 > A[1], s:=0 + 2 = 2;

i=2: A[8] − A[2] = 16 − 4 > A[1], s:=2 + 4 = 6;

i=3: A[7] − A[3] = 14 − 6 > A[1], s:=6 + 6 = 12.

 

Усло­вие A[n − i] − A[i] > A[i] пе­ре­ста­нет вы­пол­нять­ся на пятом шаге, когда 12 − 8 > 8  — не­вер­но. Таким об­ра­зом, при­сва­и­ва­ние s := s + A[i] вы­пол­нит­ся для пер­вых че­ты­рех эле­мен­тов. После вы­пол­не­ния про­грам­мы по­лу­чим s = 12.


Аналоги к заданию № 4930: 4971 Все