Главная / Задание 8. Пример

Задание 8. Пример

1.Демо-версия 2012.

Задание с очевидным алгоритмов, выполняющимся большое число раз

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

Бейсик Паскаль
DIM K, S AS INTEGER
K = 0
S = 0
WHILE S < 1024
   S = S + 10
   K = K + 1
WEND
PRINT K
var k, s: integer;
begin
   k := 0; s := 0; 
   while s <= 1024 do begin
      s := s + 10;
      k := k + 1;
   end;
   write(k);
end.
Си Алгоритмический
#include<stdio.h>
void main(){
   int k, s;
   k = 0;  s = 0;
   while (s <= 1024) {
      s = s + 10;
      k = k + 1;
   }  
   printf("%d", k);
}
алг
нач
   цел k, s
   k := 0; s := 0
   нц пока s <= 1024
      s := s + 10
      k := k + 1
   кц
   вывод k
кон


Решение.
 При решении этой задачи не требуется непосредственно выполнять алгоритм. Обозначим Sk значение переменной s после выполнения k-й итерации цикла. Очевидно,

Sk = k∙10.

[Понимание этого и означает, что ученик понимает, как работает цикл] Условие прекращения цикла можно записать в виде Sk ≥ 1024. Найдем минимальное значение k, при котором это условие будет выполнено. Имеем:

k∙10 ≥ 1024 =>  k ≥ 102.4

Учитывая, что k – целое, получим: k=103.

Ответ: 103.

2. Демо-версия 2010 (модицифированная).

Индексная переменная уменьшается в два раза

Чему будет равно значение переменной b после выполнения фрагмента алгоритма?

 

Бейсик Паскаль
DIM A, B AS INTEGER
A = 256
B = 0
WHILE A != 1
   A = A DIV 2
   K = K + 1
WEND
PRINT K
var a, b: integer;
begin
   a := 256; b := 0; 
   while a <> 1 do begin
      a := a div 2;
      k := k + 1;
   end;
   write(k);
end.
Си Алгоритмический
#include<stdio.h>
void main(){
   int a, b;
   a = 256;  b = 0;
   while (a != 1) {
      a= a % 2;
      b = b + 1;
   }  
   printf("%d", b);
}
алг
нач
   цел a, b
   a := 256; b := 0
   нц пока a <> 1
      a:= div(a,2)
      b := b + 1
   кц
   вывод b
кон

 

Решение (набросок). При решении этой задачи не требуется непосредственно выполнять алгоритм. Значение переменной b равно количеству выполнений цикла. Исходное значение переменной a =256=28. При каждом прохождении цикла значение переменной a уменьшается в два раза. Условие выхода из цикла: a = 1 = 20. Это произойдет после 8 выполнений цикла.

Ответ: 8.

 

 
 

0 Comments

Оставьте коммент первым.

 
 

Что думаете?

 




 
 

 
 
Яндекс.Метрика