Задания
Версия для печати и копирования в MS Word
Тип Д19 № 4930
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, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, т. е. A[0] = 0, A[1] = 10 и т. д. Чему будет равно зна­че­ние пе­ре­мен­ной s после вы­пол­не­ния дан­ной про­грам­мы?

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

Ре­ше­ние.

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

 

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

i=1: A[9] − A[1] = 90 − 10 > A[1], s:=0 + 10 = 10;

i=2: A[8] − A[2] = 80 − 20 > A[2], s:=10 + 20 = 30;

i=3: A[7] − A[3] = 70 − 30 > A[3], s:=30 + 30 = 60.

 

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


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