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

Пред­став­лен­ный ниже на пяти язы­ках про­грам­ми­ро­ва­ния фраг­мент про­грам­мы об­ра­ба­ты­ва­ет эле­мен­ты од­но­мер­но­го це­ло­чис­лен­но­го мас­си­ва A с ин­дек­са­ми от 0 до 9. Перед на­ча­лом вы­пол­не­ния дан­но­го фраг­мен­та эти эле­мен­ты мас­си­ва имели зна­че­ния 2, 4, 1, 6, 2, 7, 3, 2, 2, 1 (т. е. A[0] = 2, A[1] = 4, …, A[9] = 1). Опре­де­ли­те зна­че­ние пе­ре­мен­ной s после вы­пол­не­ния фраг­мен­та.

 

Бей­сикPython

N = 10

s = 0

FOR i = 1 TO N − 1

    IF A(i-1) > 2*A(i) THEN

        A(i) = 2*A(i)

        s = s + A(i)

    END IF

NEXT i

 

n = 10

s = 0

for i in range(1,n):

    if A[i-1] > 2*A[i]:

        A[i] = 2*A[i]

        s = s + A[i]

 

 

 

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

N := 10;

s := 0;

for i:=1 to N-1 do begin

    if A[i-1] > 2*A[i] then begin

        A[i] := 2*A[i];

        s := s + A[i];

    end;

end;

 

N := 10

s := 0

нц для i от 1 до N-1

    если A[i-1] > 2*A[i] то

        A[i] := 2*A[i]

        s := s + A[i]

    все

кц

С++

n = 10;

s = 0;

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

    if (A[i-1] > 2*A[i]) {

        A[i] = 2*A[i];

        s = s + A[i];

    }

}

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

Ре­ше­ние.

Дан­ный ал­го­ритм удва­и­ва­ет зна­че­ние те­ку­ще­го элем­не­та, если зна­че­ние преды­ду­ще­го эле­мен­та боль­ше удво­ен­но­го зна­че­ния те­ку­ще­го эле­мен­та.

 

Из­на­чаль­ный по­ря­док зна­че­ний: 2, 4, 1, 6, 2, 7, 3, 2, 2, 1.

Пер­вое из­ме­не­ние эле­мен­тов: 2, 4, 2, 6, 2, 7, 3, 2, 2, 1.

Вто­рое из­ме­не­ние эле­мен­тов: 2, 4, 2, 6, 4, 7, 3, 2, 2, 1.

Тре­тье из­ме­не­ние эле­мен­тов: 2, 4, 2, 6, 4, 7, 6, 2, 2, 1.

По­след­нее из­ме­не­ние эле­мен­тов: 2, 4, 2, 6, 2, 7, 6, 4, 2, 1.

 

Всего из­ме­не­ние эле­мен­тов мас­си­ва про­изо­шло че­ты­ре раза. Те­перь к пе­ре­мен­ной s при­ба­вим зна­че­ния вы­де­лен­ных эле­мен­тов. Сле­до­ва­тель­но, s = 2 + 4 + 6 + 4 = 16.

 

Ответ: 16.