Тема урока: Операторы цикла. Решение задач со счетчиком. Выполнила: Троегубова Татьяна Сергеевна учитель МОУ «СОШ №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. Актуализация знаний
I. Актуализация знаний 2).Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами).
I. Актуализация знаний 3).Укажите, как можно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций AND или OR.
I. Актуализация знаний Что называется циклическим алгоритмом? Вспомним фрагмент блок-схемы циклического алгоритма со счетчиком.
I. Актуализация знаний нет да тело цикла счётчик
II. Новый материал Когда заранее известно, какое число повторений тела цикла необходимо выполнить, можно воспользоваться циклической инструкцией
ОПЕРАТОР ЦИКЛА ПО СЧЕТЧИКУ FOR < параметр цикла >:= ТО DO
Рассмотрим, как выполняется оператор цикла с параметром вида FOR < параметр цикла >:= А ТО В DO
Если А В, то < тело цикла > не будет выполнен ни разу и выполнение цикла с параметром сразу же закончится.
УМЕНЬШЕНИЕ ЦИКЛА НА 1 FOR < параметр цикла >:= DOWNTO DO
Надо знать: В качестве параметра цикла может быть переменная целого или литерного типа. Не допускается переменная вещественного типа. Начальное и конечное значение – выражение того же типа, что и параметр цикла.
Надо знать: 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:=0 I:=1 to10 Ввести А S:=S+А
Program my;Var I,S,A: integer; Begin S:=0; FOR I:=1 TO 10 DO Begin WRITELN ( ‘Введите число’); READLN (A) S:=S WRITELN (S) End.
Program my;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.
Program my;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.
Program my;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.
Program my;Program my;Var I,S: integer; Begin S:=0; FOR I:=1 to 20 DO Begin S:=S+I; End; WRITELN (S); End.
Program my;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.