У вас вопросы?
У нас ответы:) SamZan.net

Тема- Анализ программы

Работа добавлена на сайт samzan.net: 2016-06-09

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 3.2.2025

 К. Поляков, 2009-2013

B5 (базовый уровень, время – 2 мин)

Тема:  Анализ программы.

Что нужно знать:

  •  основные конструкции языка программирования:
    •  объявление переменных
    •  оператор присваивания
    •  оператор вывода
    •  циклы
  •  уметь выполнять ручную прокрутку программы
  •  уметь выделять переменную цикла, от изменения которой зависит количество шагов цикла
  •  уметь определять количество шагов цикла
  •  уметь определять переменную, которая выводится на экран
  •  формулу для вычисления -ого элемента арифметической прогрессии:

  •  формулу для вычисления суммы первых  членов арифметической прогрессии:

где  – -ый элемент последовательности,  – шаг (разность) последовательности

Пример задания:

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

var k, s: integer;

begin

 s:=0;

 k:=0;

 while s < 1024 do begin

   s:=s+10;

   k:=k+1;

 end;

 write(k);

end.

Решение:

  1.  из программы видно, что начальные значения переменных k и s равны нулю
  2.  цикл заканчивается, когда нарушается условие s < 1024, то есть количество шагов цикла определяется изменением переменной s
  3.  после окончания цикла выводится значение переменной k 
  4.  таким образом, задача сводится к тому, чтобы определить число шагов цикла, необходимое для того, чтобы значение s стало не меньше 1024
  5.  с каждым шагом цикла значение s увеличивается на 10, а значение k – на единицу, так что фактически k – это счётчик шагов цикла
  6.  поскольку s увеличивается на 10, конечное значение s должно быть кратно 10, то есть это 1030 > 1024
  7.  для достижения этого значения переменную s нужно 103 раза увеличить на 10, поэтому цикл выполнится 103 раза
  8.  так как k – это счётчик шагов цикла, конечное значение k будет равно 103
  9.  Ответ:  103.

Возможные ловушки и проблемы:

  •  можно перепутать переменную, которая выводится на экран (внимательно смотрим на оператор вывода)

Ещё пример задания:

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

var k, s: integer;

begin

 k:=5;

 s:=2;

 while k < 120 do begin

   s:=s+k;

   k:=k+2;

 end;

 write(s);

end.

Решение:

  1.  начальные значения переменных k и s равны соответственно 5 и 2
  2.  цикл заканчивается, когда нарушается условие k < 120, то есть количество шагов цикла определяется изменением переменной k
  3.  после окончания цикла выводится значение переменной s 
  4.  с каждым шагом цикла значение s увеличивается на k, а затем значение k – на 2, так что к начальному  значению s добавляется сумма членов арифметической  прогрессии с начальным значением  и разностью
  5.  поскольку начальное значение k равно 5 и с каждым шагом оно увеличивается на 2, переменная k принимает последовательно нечётные значения: 5, 7, 9, …
  6.  цикл заканчивается, когда значение k становится не меньше 120; поскольку k всегда нечётное, конечное значение k равно 121
  7.  поскольку значение k увеличивается после того, как увеличивается значение s, значение 121 уже не входит в сумму, то есть последний элемент последовательности :

  1.  количество  членов последовательности, которые входят в сумму, можно вычислить: чтобы из 5 получить 119 нужно 57 раз добавить шаг 2, поэтому общее число элементов последовательности равно (на один больше)
  2.  теперь используем формулу для вычисления суммы членов арифметической прогрессии:

  1.  к этой сумме нужно добавить начальное значение переменной s, равное 2:

  1.  Ответ:  3598.

Возможные ловушки и проблемы:

  •  попытка делать ручную трассировку, скорее всего, приведет к вычислительной ошибке, потому что число шагов слишком велико
  •  легко забыть, что начальные значения переменных s и k не равны нулю
  •  нужно помнить, что количество членов арифметической прогрессии на 1 больше, чем количество шагов, которые необходимы для перехода от первого значения к последнему


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

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

var k, s: integer;

begin

 s:=0;

 k:=1;

 while k < 11 do begin

   s:=s+k;

   k:=k+1;

 end;

 write(s);

end.

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

var k, s: integer;

begin

 s:=0;

 k:=0;

 while k < 30 do begin

   k:=k+3;

   s:=s+k;

 end;

 write(s);

end.

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

var k, s: integer;

begin

 s:=3;

 k:=1;

 while k < 25 do begin

   s:=s+k;

   k:=k+2;

 end;

 write(s);

end.

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

var k, s: integer;

begin

 s:=2;

 k:=2;

 while s < 50 do begin

   s:=s+k;

   k:=k+2;

 end;

 write(k);

end.

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

var k, s: integer;

begin

 s:=0;

 k:=0;

 while s < 100 do begin

   s:=s+k;

   k:=k+4;

 end;

 write(k);

end.

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

var k, s: integer;

begin

 s:=0;

 k:=1;

 while s < 66 do begin

   k:=k+3;

   s:=s+k;

 end;

 write(k);

end.

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

var k, s: integer;

begin

 s:=5;

 k:=0;

 while k < 15 do begin

   k:=k+2;

   s:=s+k;

 end;

 write(s);

end.

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

var k, s: integer;

begin

 s:=0;

 k:=0;

 while k < 12 do begin

   s:=s+2*k;

   k:=k+3;

 end;

 write(s);

end.

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

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.

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

var k, s: integer;

begin

 s:=1;

 k:=0;

 while k < 13 do begin

   s:=s+2*k;

   k:=k+4;

 end;

 write(s+k);

end.

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

var n, s: integer;

begin

 n := 3;

 s := 0;

 while n <= 7 do begin

   s := s + n;

   n := n + 1

 end;  

 write(s)

end.

  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.

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

var n, s: integer;

begin

n := 4;

s := 0;

while n <= 13 do begin

 s := s + 15;

 n := n + 1

end;

write(s)

end.

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

var n, s: integer;

begin

n := 1;

s := 0;

while n <= 20 do begin

 s := s + 33;

 n := n + 1

end;

write(s)

end.

  1.  (http://ege.yandex.ru) Определите, что будет напечатано в результате работы следующего фрагмента программы:

var n, s: integer;

begin

 n := 1;

 s := 0;

 while n <= 101 do begin

   s := s + 7;

   n := n + 1

 end;

 write(s)

end.

  1.  (http://ege.yandex.ru) Определите, что будет напечатано в результате работы следующего фрагмента программы:

var n, s: integer;

begin

 n := 0;

 s := 512;

 while s >= 0 do begin

   s := s - 20;

   n := n + 1

 end;

 write(n)

end.

  1.  (http://ege.yandex.ru) Определите, что будет напечатано в результате работы следующего фрагмента программы:

var n, s: integer;

begin

 n := 24;

 s := 0;

 while n <= 28 do begin

   s := s + 20;

   n := n + 2

 end;

 write(s)

end.

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

var n, s: integer;

begin

 n := 12;

 s := 5;

 while n <= 25 do begin

   s := s + 12;

   n := n + 2

 end;

 write(s)

end.

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

var n, s: integer;

begin

 n := 2;

 s := 35;

 while n <= 25 do begin

   s := s + 20;

   n := n + 5

 end;

 write(s)

end.

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

var n, s: integer;

begin

 n := 4;

 s := 15;

 while s <= 250 do begin

   s := s + 12;

   n := n + 2

 end;

 write(n)

end.

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

var n, s: integer;

begin

 n := 0;

 s := 0;

 while s <= 35 do begin

   n := n + 1;

   s := s + 4

 end;

 write(n)

end.

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

var n, s: integer;

begin

n := 0;

s := 0;

while s <= 256 do begin

 s := s + 25;

 n := n + 1

end;

write(n)

end.

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

var n, s: integer;

begin

n:= 0;

s:= 0;

while s <= 365 do begin

 s:= s + 33;

 n:= n + 5

end;

write(n)

end.

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

var n, s: integer;

begin

n:= 0;

s:= 0;

while s <= 365 do begin

 s:= s + 36;

 n:= n + 10

end;

write(n)

end.

1 Источники заданий:


Демо-варианты ЕГЭ 2012-2013 гг.


Тренировочные и диагностические работы МИОО.

 12 http://kpolyakov.spb.ru




1. Модуль 1 Змістовий модуль 6 Диференційна діагностика найбільш по
2.  Предмет і завдання педагогіки вищої школи категоріальний апарат Педагогіка вищої школи галузь педагог
3. Народ и общество Австралии
4. Основное назначение отчета о прибылях и убытках состоит в том что он должен характеризовать финансовые
5. Тема 13. Правові основи біржової діяльності в Україні Мета- познайомити з торговельнобіржовою діяльністю
6. 400- 500 Баллы Вопрос 1 из 25 2
7. е изд перераб и доп
8. Курсовая работа- Экономика Литвы
9. Бюджетное прогнозирование в Российской Федерации
10. Реферат- Ущемляющие капканы