"Если ты еще не нашел того, что искал, продолжай поиски. Не останавливайся. Поскольку это касается сути вещей, ты не пропустишь момента, когда действительно найдешь это."
Стив Джобс

понедельник, 19 марта 2012 г.

Задания В5

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

Var k, s : integer;
BEGIN
   s := 0;
   k := 0;
   while s<1024 do
      begin
      s := s+10;
      k := k+1;
      end;
  write(k);
END.




Решение:
В программе использован цикл с предусловием, значит операции из тела цикла будут выполняться, пока условие истинно. Из сказанного следует, что выполнение цикла прекратится  при s=1024 или любом большем числе. S каждый раз увеличивается на 10, следовательно ее значение всегда кратно 10. Необходимо определить число кратное 10, следующее после 1024 - это число 1030.
Переменная К считает количество таких чисел.     К=1030/10=103.
Ответ: 103

В3. Определите, что будет напечатано в результате работы следующего
        фрагмента программы:
var k, s: integer;
begin
   s:=0;
   k:=1;
   while k < 11 do begin
      s:=s+k;
      k:=k+1;
     end;
     write(s);

end.

 Решение:
Цикл закончится, когда К станет равна 11 (по условию К должна быть строго меньше 11 и при этом ее значение каждый раз увеличивается ровна на 1). Последнее значение К, участвующее в вычислениях будет = 10 (увеличение К производится после выполнения действия s:=s+k).
S является суммой всех значений К. Мы можем найти их сумму, прибавляя последовательно все числа: 1+2+3+4+5+6+7+8+9+10 = 55, а можем воспользоваться формулой нахождения суммы первых n элементов арифметической прогрессии: s=(a1+an)/2*n.
Тогда s=(1+10)/2*10=55
Ответ: 55


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

var n, s: integer;
begin
   n := 1;
   s := 0;
   while n <= 101 do begin
      s := s + 7;
      n := n + 1
     end;
  write(s)

end.

Решение:
Цикл будет выполнен с последним значением n = 101, т.к. под условие не подходят значения начиная с 102. Переменная n является счетчиком, т.к. определяет, сколько раз будет выполнен цикл (при каждом выполнении тела цикла ее значение увеличивается на 1).
Из сказанного следует, что к начальному значению переменной  S (0) семерка будет прибавлена 101 раз. S=0+7*101=707
Ответ: 707

Задания для тренировки:

Определите, что будет напечатано в результате работы следующих фрагментов программ:
 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.
 2.
 var n, s: integer;
 begin
   n := 0;
   s := 512;
   while s >= 0 do              
    begin
      s := s - 20;
      n := n + 1
      end;
 write(s)
 end.
 3.
 var n, s: integer;
 begin
   n := 24;
   s := 0;
   while n <= 28 do           
   begin
     s := s + 20;
     n := n + 2
     end;
 write(s)
 end.
 4.
 var n, s: integer;
 begin
  n := 4;
  s := 15;
  while s <= 250 do          
  begin
     s := s + 12;
     n := n + 2
   end;
 write(n)
 end.

Комментариев нет:

Отправить комментарий