Слайд 2
Цель урока:
Повторить условный оператор IF;
Вспомнить блок- схему
оператора цикла со счетчиком;
Научиться решать задачи со счетчиком с
помощью языка программирования.
Слайд 3
I. Актуализация знаний
Написать программу, в которой нужно проверить,
лежит ли число x на числовой оси между числами
a и b (случай x=a или x=b недопустим). Числа x, a, b являются натуральными, и известно, что a отлично от b (но неизвестно: a>b или b>a). Входная информация вводится с клавиатуры, а на выходе должно быть сообщение вида "x между a и b" (если это действительно так), в противном случае никакой выходной информации не выдается.
Слайд 4
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.
Слайд 5
Последовательно выполните три
задания:
1).Приведите пример таких чисел a, x, b
при которых программа работает
неправильно.
I. Актуализация знаний
Слайд 6
I. Актуализация знаний
2).Укажите, как нужно доработать
программу, чтобы не было случаев ее
неправильной
работы.
(Это можно сделать несколькими
способами).
Слайд 7
I. Актуализация знаний
3).Укажите, как можно доработать
программу, соблюдая дополнительное
условие: доработанная программа не
должна использовать логических
операций AND или OR.
Слайд 8
I. Актуализация знаний
Что называется циклическим алгоритмом?
Вспомним фрагмент блок-схемы
циклического алгоритма со счетчиком.
Слайд 9
I. Актуализация знаний
нет
да
тело цикла
счётчик
Слайд 10
II. Новый материал
Когда заранее известно, какое число повторений
тела цикла необходимо выполнить, можно воспользоваться циклической инструкцией
Слайд 11
ОПЕРАТОР ЦИКЛА ПО СЧЕТЧИКУ
FOR < параметр цикла >:=
ТО DO
Слайд 12
Рассмотрим, как выполняется оператор цикла с параметром вида
FOR < параметр цикла >:=
А ТО
В DO <тело цикла>
значения равные А,А+1…В-1,В и для каждого из этих значений
выполняется <тело цикла>.
Если А >В, то < тело цикла > не будет выполнен ни разу и выполнение цикла с параметром сразу же закончится.
Слайд 14
УМЕНЬШЕНИЕ ЦИКЛА НА 1
FOR < параметр
цикла >:=
DOWNTO
DO
<оператор>
Слайд 15
Надо знать:
В качестве параметра цикла может быть переменная
целого или литерного типа. Не допускается переменная вещественного типа.
Начальное и конечное значение – выражение того же типа, что и параметр цикла.
Слайд 16
Надо знать:
2. Значение параметра цикла в теле
цикла, т.е. внутри оператора, стоящего
после DO, не должен изменяться.
3. При выходе из цикла значение
параметра цикла не определено.
Слайд 17
III.Закрепление темы
Подсчитать сумму 10 чисел, введенных с клавиатуры.
Блок-схема
Решение
Слайд 18
Задача
Подсчитать произведение 10 чисел введенных с клавиатуры.
Блок-схема
Решение
Слайд 19
Задача
Подсчитать сумму положительных чисел среди 10 чисел введенных
с клавиатуры.
Блок-схема
Решение
Слайд 20
Задача
Подсчитать количество положительных чисел среди 10 чисел введенных
с клавиатуры.
Блок-схема
Решение
Слайд 21
Задача
Подсчитать сумму 20 слагаемых 1+2+3…+20
Блок-схема
Решение
Слайд 22
Задача
Подсчитать сумму 20 слагаемых
1-1/2+1/3…-1/20
Блок-схема
Решение
Слайд 23
IV.Домашнее задание:
1.Составьте программу вычисления квадратов чисел от
1 до 20.
Слайд 24
2.Напечатать все двухзначные числа, сумма которых равна
Слайд 26
ОТВЕТ
Циклический алгоритм - это описание действий, которые должны
повторяться указанное число раз или пока не выполнено заданное
условие.
Слайд 28
ОТВЕТ
2) Возможные доработки:
a) if a
a:=b; b:=p end;
if (a>x) and (x>b) then
writeln(' x между a,b');
b) if (a>x) and (x>b) оr (a
Слайд 29
ОТВЕТ
3) p:=(x-a)*(x-b); if p
x между a,b');
(могут быть и другие правильные
способы доработки).
Слайд 30
БЛОК - СХЕМА
нач
кон
S:=S+А
I:=1 to10
S:=0
Ввести
А
S
да
нет
Слайд 31
РЕШЕНИЕ
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.
Слайд 32
БЛОК - СХЕМА
нач
кон
S:=S*А
I:=1 to10
S:=1
Ввести
А
S
да
нет
Слайд 33
РЕШЕНИЕ
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.
Слайд 34
БЛОК - СХЕМА
нач
кон
S:=S+A
I:=1 to10
S :=0
A>0
Ввести А
да
да
нет
нет
S
Слайд 35
РЕШЕНИЕ
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.
Слайд 36
БЛОК - СХЕМА
нач
кон
k:=k+1
I:=1 to10
k:=0
A>0
Ввести А
да
да
нет
нет
k
Слайд 37
РЕШЕНИЕ
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.
Слайд 38
БЛОК - СХЕМА
нач
кон
S:=S+I
I:=1 to20
S:=0
S
да
нет
Слайд 39
РЕШЕНИЕ
Program my;
Var I,S: integer;
Begin
S:=0;
FOR I:=1 to 20 DO
Begin
S:=S+I;
End;
WRITELN (S);
End.
Слайд 40
БЛОК - СХЕМА
нач
кон
P:=-P
I:=1 to20
S:=0
S
P:=1
S:=S+P/I
да
нет