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

Опре­де­ли­те, что будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­ще­го фраг­мен­та про­грам­мы:

 

 

Бей­сикPython

DIM K, S AS INTEGER

S = 2

K = 2

WHILE S < 50

    S = S + K

    K = K + 2

WEND

PRINT K

s = 2

k = 2

while s < 50:

    s += k

    k += 2

print(k)

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

var k, s: integer;

begin

     s:=2;

     k:=2;

    while s < 50 do begin

        s:=s+k;

        k:=k+2;

     end;

    write(k);

end.

алг

нач

    цел k, s

    s := 2

    k := 2

    нц пока s < 50

        s := s + k

        k := k + 2

    кц

    вывод k

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int s, k;

    s = 2, k = 2;

    while (s < 50) {

        s = s + k;

        k = k + 2;

    }

    cout << k << endl;

    return 0;

}

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

Ре­ше­ние.

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

 

Зна­че­ние s есть сумма пер­вых n чле­нов ариф­ме­ти­че­ской про­грес­сии. b= дробь: чис­ли­тель: 2a_1 плюс левая круг­лая скоб­ка n минус 1 пра­вая круг­лая скоб­ка d, зна­ме­на­тель: 2 конец дроби n, b  — сумма пер­вых n чле­нов про­грес­сии, d  — раз­ность про­грес­сии, n  — ко­ли­че­ство чле­нов.

 

Цикл пре­рвет­ся, когда s= дробь: чис­ли­тель: 2s_1 плюс левая круг­лая скоб­ка n минус 1 пра­вая круг­лая скоб­ка d, зна­ме­на­тель: 2 конец дроби n мень­ше 50.

 

Вы­яс­ним n: s= левая круг­лая скоб­ка 2s_1 плюс левая круг­лая скоб­ка n минус 1 пра­вая круг­лая скоб­ка d пра­вая круг­лая скоб­ка n мень­ше 100, s_1=2, d=2 (т. к. k:=k+2). Чтобы ре­шить это не­ра­вен­ство, нам не­об­хо­ди­мо ре­шить квад­рат­ное урав­не­ние: n в квад­ра­те плюс n минус 50=0. Среди его кор­ней нас ин­те­ре­су­ют толь­ко по­ло­жи­тель­ные, сле­до­ва­тель­но, n=6,5

 

Вос­поль­зо­вав­шись ме­то­дом ин­тер­ва­лов, на­хо­дим, что пер­вое на­ту­раль­ное n, при ко­то­ром на­ру­ша­ет­ся усло­вие, есть n=7.

 

Так как опе­ра­ция k:=k+2; идет после s:=s+k; то цикл вы­пол­нит­ся еще раз, сле­до­ва­тель­но, n=8.

 

k_n=k_1 плюс левая круг­лая скоб­ка n минус 1 пра­вая круг­лая скоб­ка d; Под­ста­вив из­вест­ные па­ра­мет­ры, по­лу­ча­ем, что k_8=16.

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