top of page

Задание №1

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

 

var n, s: integer;

begin

    n := 4;

    s := 0;

    while n <= 8 do begin

        s := s + n;

        n := n + 1

    end;

    write(s)

end.

 

 

По­яс­не­ние.

По­сколь­ку из­на­чаль­но n = 4, цикл while n <= 8 вы­пол­нит­ся пять раз. Сле­до­ва­тель­но, s = 4 + 5 + 6 + 7 + 8 = 30.

 

Ответ: 30.

Задание №2

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

var n, s: integer;

begin  

   n := 1;   

  s := 0;  

   while n <= 100 do     begin

        s := s + 30;  

       n := n * 3   

  end;   

  write(s): 

end.

 

По­яс­не­ние.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие n ≤ 100, т. е. пе­ре­мен­ная n опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл. По­сколь­ку из­на­чаль­но n = 1 и на каж­дом шаге n уве­ли­чи­ва­ет­ся в три раза, цикл вы­пол­нить­ся пять раз. Сле­до­ва­тель­но, после вы­пол­не­ния цикла s при­мет зна­че­ние 30 · 5 = 150.

 

Ответ: 150.

Задание №3

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

 

var k, s: integer;

begin

    s:=0;

    k:=0;

    while s < 80 do begin

        s:=s+2*k;

        k:=k+4;

    end;

    write(s);

end.

 

 

По­яс­не­ние.

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

 

Ак­ку­рат­но вы­пи­шем все s и k:

 

s 0 0 8 24 48 80

k 0 4 8 12 16 20

 

(Пом­ни­те, что усло­вие s < 80 про­ве­ря­ет­ся толь­ко после k:=k+4, по­это­му дей­ствие s:=s+2*k по­след­ний раз вы­пол­нит­ся для k=16)

 

Ответ 80.

bottom of page