Тема урока: Операторы цикла. Решение задач со счетчиком. Выполнила: Троегубова Татьяна Сергеевна учитель МОУ «СОШ 87»
Цель урока: Повторить условный оператор IF; Вспомнить блок- схему оператора цикла со счетчиком; Научиться решать задачи со счетчиком с помощью языка программирования.
I. Актуализация знаний Написать программу, в которой нужно проверить, лежит ли число x на числовой оси между числами a и b (случай x=a или x=b недопустим). Числа x, a, b являются натуральными, и известно, что a отлично от b (но неизвестно: a>b или b>a). Входная информация вводится с клавиатуры, а на выходе должно быть сообщение вида "x между a и b" (если это действительно так), в противном случае никакой выходной информации не выдается.
I. Актуализация знаний Программист торопился и написал программу некорректно. ПРОГРАММА НА ПАСКАЛЕ VAR a,b,x: integer; p: integer; BEGIN readln(a,b,x); if (a>x) AND (x>b) then writeln('x между a,b'); END.
Последовательно выполните три задания: 1).Приведите пример таких чисел a, x, bПриведите пример при которых программа работает неправильно. I. Актуализация знаний
2).Укажите, как нужно доработатьУкажите программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами).
I. Актуализация знаний 3).Укажите, как можно доработатьУкажите программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций AND или OR.
I. Актуализация знаний Что называется циклическим алгоритмом?циклическим алгоритмом? Вспомним фрагмент блок-схемы циклического алгоритма со счетчиком.
I. Актуализация знаний нет да тело цикла счётчик
II. Новый материал Когда заранее известно, какое число повторений тела цикла необходимо выполнить, можно воспользоваться циклической инструкцией
ОПЕРАТОР ЦИКЛА ПО СЧЕТЧИКУ FOR := ТО DO
Рассмотрим, как выполняется оператор цикла с параметром вида FOR := А ТО В DO
Если А последовательно принимает значения равные А,А+1…В-1,В и для каждого из этих значений выполняется. Если А >В, то не будет выполнен ни разу и выполнение цикла с параметром сразу же закончится.
УМЕНЬШЕНИЕ ЦИКЛА НА 1 FOR := DOWNTO DO
Надо знать: 1.В качестве параметра цикла может быть переменная целого или литерного типа. Не допускается переменная вещественного типа. Начальное и конечное значение – выражение того же типа, что и параметр цикла.
Надо знать: 2. Значение параметра цикла в теле цикла, т.е. внутри оператора, стоящего после DO, не должен изменяться. 3. При выходе из цикла значение параметра цикла не определено.
III.Закрепление темы Подсчитать сумму 10 чисел, введенных с клавиатуры. Блок-схема Решение
Задача Подсчитать произведение 10 чисел введенных с клавиатуры. Блок-схема Решение
Задача Подсчитать сумму положительных чисел среди 10 чисел введенных с клавиатуры. Блок-схема Решение
Задача Подсчитать количество положительных чисел среди 10 чисел введенных с клавиатуры. Блок-схема Решение
Задача Подсчитать сумму 20 слагаемых 1+2+3…+20 Блок-схема Решение
Задача Подсчитать сумму 20 слагаемых 1-1/2+1/3…-1/20 Блок-схема Решение
IV.Домашнее задание: 1.Составьте программу вычисления квадратов чисел от 1 до 20.
2.Напечатать все двухзначные числа, сумма которых равна 12.
ОТВЕТ Циклический алгоритм - это описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие.
ОТВЕТ 1) Например: a=1 x=2 b=3
ОТВЕТ 2) Возможные доработки: a) if ax) and (x>b) then writeln(' x между a,b'); b) if (a>x) and (x>b) оr (a
ОТВЕТ 3) p:=(x-a)*(x-b); if p
БЛОК - СХЕМА нач кон S:=S+А I:=1 to10 S:=0 Ввести А S да нет
РЕШЕНИЕ Program my; Var I,S,A: integer; Begin S:=0; FOR I:=1 TO 10 DO Begin WRITELN ( Введите число); READLN (A); S:=S+A; End; WRITELN (S); End.
БЛОК - СХЕМА нач кон S:=S*А I:=1 to10 S:=1 Ввести А S да нет
РЕШЕНИЕ Program my; Var I,S,A: integer; Begin S:=1; FOR I:=1 TO 10 DO Begin WRITELN ( Введите число); READLN (A); S:=S*A; End; WRITELN (S); End.
БЛОК - СХЕМА нач кон S:=S+A I:=1 to10 S :=0 A>0 Ввести А да нет S
РЕШЕНИЕ Program my; Var I,S,A: integer; Begin S:=0; FOR I:=1 TO 10 DO Begin WRITELN ( Введите число); READLN (A); IF A>0 THEN S:=S+A; End; WRITELN (S); End.
БЛОК - СХЕМА нач кон k:=k+1 I:=1 to10 k:=0 A>0 Ввести А да нет k
РЕШЕНИЕ Program my; Var I,K,A: integer; Begin K:=0; FOR I:=1 TO 10 DO Begin WRITELN ( Введите число); READLN (A); IF A>0 THEN K:=K+1; End; WRITELN (K); End.
БЛОК - СХЕМА нач кон S:=S+I I:=1 to20 S:=0 S да нет
РЕШЕНИЕ Program my; Var I,S: integer; Begin S:=0; FOR I:=1 to 20 DO Begin S:=S+I; End; WRITELN (S); End.
БЛОК - СХЕМА нач кон P:=-P I:=1 to20 S:=0 S P:=1 S:=S+P/I да нет
РЕШЕНИЕ Program my; Var I,Р: integer; S: real; Begin S:=0; P:=1; FOR I:=1 TO 20 DO Begin S:=S+P/I; P:=-P; End; WRITELN (S); End.