III. Практикум. Реализация на компьютере

Задача о сумме: s = 1 + 2+ 3 + … + n. Исполнить при n = 1; 2; 10; 100; 200. Цикл с предусловием Цикл с постусловием Цикл с параметром program summa1; {нахождение суммы чисел} var n,s,i: integer; begin writeln ('введите натуральное число n'); readln (n); s:=0; i:=1; while i<=n do begin    s:=s+i;    i:=i+1; end; writeln ('cумма ' ,n, ' чисел равна ',s) end. program summa2; {нахождение суммы чисел} var n,s,i: integer; begin writeln ('введите натуральное число n'); readln (n); begin s:=0; i:=1;    repeat    s:=s+i;    i:=i+1    until i>n end; writeln ('cумма ' ,n, ' чисел равна ',s) end. program summa3; {нахождение суммы чисел} var n,s,i: integer; begin writeln ('введите натуральное число n'); readln (n); s:=0; for i:=1 to n do    s:=s+i;    writeln ('cумма ' ,n, ' чисел равна ',s) end.   Вычисление факториала числа n: n! = 1∙2∙3∙…∙n.Исполнить при n = 1; 2; 10; 50. program factoriall; {нахождение факториала числа п} var n, i: integer; f: real; begin writeln ('введите натуральное число n'); readln (n); f:=1;i:=1; while i<=n do begin f:=f*i; i:=i+1 end; writeln ('факториал числа ',n,' равен ',f) end. program factorial2; {нахождение факториала числа п} var n, i: integer; f: real; begin writeln ('введите натуральное число n'); readln (n); f:=1;i:=1; repeat f:=f*i; i:=i+1 until i>n; writeln ('факториал числа ',n,' равен ',f) end. program factorial3; {нахождение факториала числа п} var n, i: integer; f: real; begin writeln ('введите натуральное число n'); readln (n); f:=1;i:=1; for i:=1 to n do f:=f*i; writeln ('факториал числа ',n,' равен ',f) end. Рассмотрим задачу на вычисление большого числа слагаемых: Вычислить сумму: s = 1 + 2 + 3 + ... + п, если значение п задано, не применяя формулу суммы членов арифметической прогрессии. (Слайд 5) Если число слагаемых велико, то считать даже на калькуляторе долго, поэтому постараемся составить программу для быстрого вычисления при любом значении n. Постарайтесь заметить, каким образом накапливается сумма, есть ли здесь повторяющиеся действия. При вычислении суммы повторяются два действия: Прибавляем очередное слагаемое к ранее полученной сумме. Увеличиваем на единицуслагаемое. Какие варианты решения задачи вы предлагаете? Начать сумму с нуля, то есть переменной s присвоить 0 (s :=0). Переменной i присвоить значение 1 (i :=1). Добавить к сумме значение i (s := s + i). Увеличить i на 1 (i:= i + 1). Повторять пункты 3 и 4, пока не дойдем до слагаемого n. Рассмотрели пример алгоритмической конструкции «цикл». В языке Паскаль существует три вида операторов цикла. Каждый из них имеет свои особенности и у каждого есть свои задачи. (На слайдах блок-схемамы циклических алгоритмов. Слайды 6, 7) 1) Цикл с предусловием (цикл «пока» – while) Синтаксис оператора: while <условие> do <оператор>; где while (пока) do (делать) — зарезервированные слова, <условие> – логическое выражение, <оператор> – тело цикла. Телом цикла может быть и группа операторов, заключенная в операторные скобки begin ... end, так называемый составной оператор. Выполняется этот оператор так: сначала проверяется условие на истинность и, если оно истинно, выполняется оператор, затем условие проверяется вновь и т. д. Как только на очередном шаге условие оператора не выполняется, то выполнение оператора цикла прекращается. Переменным присваиваются определенные значения до входа в цикл. В теле цикла должны быть операторы, которые в какой-то момент сделают условие ложным, иначе цикл будет бесконечным. 2) Цикл с постусловием(цикл «до тех пор, пока» repeat...until) Синтаксис оператора: repeat <группа операторов> until<условие>; где repeat (повторять), until(пока не). Вначале выполняется группа операторов, а затем проверяется условие, и, если условие ложно, то выполнение цикла повторяется, а иначе цикл прекращается. 3) Цикл с параметром(со счетчиком) (цикл «для» – for.. .to/downto). В среде программирования Qbasic мы встречались с оператором цикла с параметром. Сегодня вы увидите сходство и различие цикла с параметром в языках программирования Qbasic и Pascal ABC. Оператор цикла с параметром служит для описания повторяющихся действий. Для того, чтобы записать оператор цикла, надо: определить повторяющиеся действия и записать их с помощью операторов языка программирования; определить параметр цикла, (изменяющуюся величину, связанную с повторяющимися действиями) и дать ей имя; определить начальное и конечное значения параметра цикла. Синтаксис оператора цикла с параметром в Qbasic: FORi = a TOb STEPh Синтаксис оператора цикла с параметром в Pascal ABC: for<параметр цикла> := <начальное значение параметра цикла> to<конечное значение параметра цикла > do begin <операторы (тело цикла)> end; for(для), to(до), do(делать), begin(начало), end(конец) – зарезервированные слова; <параметр цикла> – переменная целого типа; <начальное значение параметра цикла> – выражение целого типа; <конечное значение параметра цикла> – выражение целого типа; <операторы> – любые операторы Паскаля; begin<операторы> end;– составной оператор, который используется, если в программе больше одного повторяющегося действия. Если повторяющееся действие одно, то beginи endможно опустить и после doбудет идти только один оператор Паскаля. Оператор цикла с параметром следует применять, если заранее известно, сколько раз нужно выполнять некоторый оператор. Параметр цикла может являться просто счетчиком, контролирующим количество повторений оператора, а может и использоваться в самом операторе (с учетом того факта, что на каждом шаге цикла параметр цикла на 1 отличается от предыдущего своего значения).

Работа оператора цикла

Сначала параметру цикла присваивается начальное значение, затем проверяется выполнение условия: значение параметра цикла меньше или равно конечному значению. Если условие истинно, выполняются операторы, идущие после do. Этот процесс продолжается до тех пор, пока условие не станет ложным. В случае, когда условие является ложным на первом шаге, оператор вообще не выполняется ни разу.

III. Практикум. Реализация на компьютере

а) Вернемся к задаче о сумме:s = l + 2 + 3 + … + n и решим ее с использованием трех видов цикла. (Приложение 1)

Исполните программы при n =1; 2; 10; 100; 200.
(У всех на столах таблицы с программами). Учащиеся делятся на 3 группы по номерам компьютеров: № 1-4; № 5-8; № 9-12. После набора и запуска на исполнение проводится разбор работы циклов всех типов.

Предполагаемые ответы: 1 группа. Цикл с предусловием.

После ввода значения числа n (например, 100) цикл в первой программе работает так:

  • вначале s = 0 и i = 1;
  • условие i <= 100 в операторе while (пока) истинно, поэтому начинается выполнение цикла;
  • сумма увеличивается на единицу: s = 0 + 1; значение i увеличивается на 1, получаем i = 2;
  • условие i <= 100 вновь истинно, поэтому тело цикла повторяется снова; значение суммы s = 0 + 1 + 2, а переменной i = 3;
  • после выполнения этой последовательности действий необходимое число раз получаем: s = 1 + 2.... + 100, i = 101;
  • условие i <= 100 ложно, на этом цикл завершается.

Далее следует вывод результата: сумма 100 чисел равна 5050.

2 группа. Цикл с постусловием

Введем n = 10.
• вначале s = 0 и i = 1;
• после оператора repeat, s = 0 + 1, i увеличивается на 1 и станет i = 2;
• условие i > 10 ложно, поэтому выполнение цикла продолжается;
• значение суммы изменяется: s = 1 + 2, i увеличивается на 1 : i = 3;
• условие i > 10 ложно, цикл повторяется;
• цикл повторяется, пока условие не станет i = 10 + 1, а значение суммы s = 1 + 2 ... + 100;
• условие i > 10 истинно, цикл завершается.
Идет вывод результата: сумма 100 чисел равна 55.

3 группа. Цикл с параметром

Введем n = 200.
• вначале s = 0;
• при первом выполнении цикла i = 1, к сумме добавляется i, то есть 1;
• затем i = 2, к сумме добавляется 2;
• затем i = 3, к сумме добавляется 3;
• и так продолжается до i = 200;
Идет вывод результата: сумма 200 чисел равна 20100.

Памятка для выбора типа оператора цикла(Слайд 13)

  • Цикл с предусловием (цикл while)применяйте, если необходимо, чтобы проверка была прежде, чем выполнение тела цикла.
  • Цикл с постусловием (цикл repeat)применяйте, если необходимо, чтобы тело цикла выполнялось хотя бы один раз.
  • Цикл для (цикл for)применяйте, если точно знаете, сколько раз должно быть выполнено тело цикла.

 


Дата добавления: 2018-04-05; просмотров: 265; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!