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

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

 

 

Бей­сикPython

DIM S, N AS INTEGER

S = 100

N = 300

WHILE S + N <= 500

S = S + 30

N = N − 20

WEND

PRINT S

s = 100

n = 300

while s + n <= 500:

    s = s + 30

    n = n − 20

print(s)

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

var s, n: integer;

begin

    s := 100;

    n := 300;

    while s + n <= 500 do

    begin

        s := s + 30;

        n := n − 20;

    end;

    writeln(s)

end.

алг

нач

    цел s, n

    s := 100

    n := 300

    нц пока s + n <= 500

        s := s + 30

        n := n − 20

    кц

    вывод s

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int s = 100, n = 300;

    while (s + n <= 500) {

        s = s + 30;

        n = n − 20;

    }

    cout << s;

    return 0;

}

 

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

Ре­ше­ние.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие s + n <= 500, т. е. сумма s и n опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл.

За­ме­тим, что два дей­ствия s := s + 30 и n := n − 20 можно объ­еди­нить, так как цикл за­ви­сит от двух пе­ре­мен­ных. Таким об­ра­зом, на каж­дой ите­ра­ции до­бав­ля­ет­ся 10.

Решим урав­не­ние: 400 + x > 500. Цикл оста­но­вит­ся, когда x будет боль­ше 100. По­сколь­ку каж­дый раз до­бав­ля­ет­ся по 10, будет 11 ите­ра­ций (при s+n=400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 500).

Найдём, что по­лу­чит­ся на 11-ой ите­ра­ции: 100 + 30 * 11 = 430.

 

Ответ: 430.

Раздел кодификатора ФИПИ: 1.7.2 Ос­нов­ные кон­струк­ции языка про­грам­ми­ро­ва­ния. Си­сте­ма про­грам­ми­ро­ва­ния