Тема урока : «Программирование циклических алгоритмов»

Download Report

Transcript Тема урока : «Программирование циклических алгоритмов»

«Программирование циклических
алгоритмов»
Учитель информатики гимназии №12
г. Тюмени
Бугаева Елена Викторовна 
Циклические алгоритмы
Циклический алгоритмэто алгоритм составленный с
использованием многократных
повторений одних и тех же
действий.
Блок-схемы циклического алгоритма
2) Цикл с постусловием
1) Цикл с предусловием
оператор
да
3) Цикл с параметром
i=1,(к),n
действия
Условие
цикла
Циклический алгоритм
(на примере поиска Золушки)
Циклы
В том случае когда число
повторений цикла заранее
известно, такие циклы
называют определёнными.
Сумма денег S положена
в банк под процент Т.
Надо установить, во что
превратиться эта сумма
через 1, 2, 3, 4 и 5 лет.
Когда заранее неизвестно,
сколько раз придётся
повторить одно и то же
действие, такие циклы
называют неопределёнными.
Сумма денег S
положена в банк под
процент Т, но нужно
узнать, через сколько
лет эта сумма удвоится.
Оператор цикла с предусловием
Здесь <оператор> выполняется только в
том случае и до тех пор, пока истинно
<условие>. Если с самого начала условие
имеет значение ЛОЖЬ, оператор цикла
не выполнится ни разу.
while <условие> do <оператор>;
Здесь while (пока), do (делать) зарезервированные слова
Пример.
Вычисление суммы 1 +2 +3 +4 + ... + п
Program SUM_1;
Const n=100;
Var i: Integer; {Переменная-контейнер для всех
чисел}
s: Real;
Begin
S:=0; i:=l;
While i<=n do {заголовок цикла}
begin {начало цикла}
S:=s + i;
i:= i + 1 {увеличение значения i}
end; {конец цикла}
Writeln ('сумма', n, 'элементов = ', s:10:5);
End.
Оператор цикла с постусловием
в этом цикле условие
проверяется всегда после выполнения
оператора, если оно ЛОЖНО - оператор
снова
выполняется, иначе - цикл прекращается.
оператор
да
Repeat
<оператор1>;
<оператор2>;
Until <условие>;
Здесь Repeat (повторять до тех пор), Until
(пока не будет
выполнено условие) - зарезервированные слова.
Пример. Вычисление суммы 1 +2 +3 +4 + ... + п
Program SUM_2;
Var i: Integer;
Как изменится программа если
s: Real;
i=2?
Begin
s:=0; i:=l;
Как изменится
Repeat {начало цикла} программа если к I
s:=s + i; i:=i + 1;
мы прибавим 2?
Until i>100; {конец цикла}
Writeln ('сумма 100-а элементов = ' , s:10:5) ;
End.
Оператор цикла с параметром
Этот оператор используют, когда
количество повторений цикла известно
заранее.
Условие состоит из параметров:
i-переменный параметр
1 -Начальное значение цикла;
n-конечное значение цикла;
Условие
цикла
i=1,n
действия
For <параметр> := <начальное значение> То
<конечное значение> Do <оператор>;
Здесь For (для), То (до), Do (выполнить) зарезервированные слова. Служебное слово То
указывает направление изменения параметра
увеличение на 1. Если необходимо, чтобы параметр
уменьшался на 1, то используют слово Downto.
Пример. Вычисление суммы 1 +2 +3 +4 + ... + п
Program SUM_3;
Var i:integer;
s:real;
Begin
S:=0;
for i:=l to 100 do
S:=s + i;
WriteLn (‘сумма 100-а элементов =', s:10:5);
End.
Д.З.
1. Лекционный материал.
Повторение
Определите значение переменной А после
выполнения следующего алгоритма:
3)
1)
2)
3)
4)
5
11
23
47
Ответ 3
1)Определите значение переменной
следующего фрагмента алгоритма:
В
после
выполнения
1)6 2)5 3)3 4)4
а
b
c b=a+b C=c+1 C<4
2
Часто используемые операции
Генератор случайных чисел:
Randomize -вызов датчика случайных
чисел ; random(n) -функция возвращает
целое случайное число, не превосходящее
n.
Например: Х:= random(100) –
переменная cможет получить любое
значение от 0 до 99 .
Случайные числами из заданном
интервале:
Дан интервал [А, В]
Формула:
RANDOM (B-A)+A
Примеры:
random(60)-20
random(10)+70
0
а
случайные числа от -20 до 40
случайные числа от 70 до 80
b
Программа для игры «Угадайка». По условиям игры программа «загадывает»
некоторое целое число X. После ввода очередного числа (Y) программа
сообщает о том, что X больше или меньше введенного числа
Program Ugadaika;
Var x,y,n: word;{целые положительные}
Begin
randomize; {инициализация датчика случайных чисел}
х:=random(100);
n:=0;
repeat
writeln ('Введите число');
read(у);
n: =n+1 ;
if x>y then writeln(‘больше’);
if x<y then writeln(‘меньше’);
until x=y ;
writeln(‘Вы угадали число за ‘, n , ‘ попыток') ;
End.
Программа «таблица
умножения»
Таблица умножения
Введите целое число от 2 до 9 ___
2
Таблица умножения на (на то число которое ввели)
2*2=4
2*3=6
..
2*9=18
2
Алгоритм Табл_ум
Описание переменных i, n
Ввод ‘Введите целое число от 2 до 9 ‘, n
Печать ‘Таблица умножения на ‘, n
цикл i=2 до 9
печать I, ‘*’, n , ‘=‘, i*n;
конец
Задание (средний уровень)
№1. Вычислить сумму первых N –целых чисел.
Количество чисел(N) вводится клавиатуры.
№2 Программа «угадайка».
№3 С клавиатуры запрашивается любая цифра
от 2 до 9, а затем компьютер печатает
таблицу умножения на эту цифру.
Задание (высокий уровень)
1. Составить программу, которая проверяет
2.
3.
a)
b)
c)
знание таблицы умножения из 10-и
случайны целых чисел и выводит
количество правильных ответов.
Программа «Угадайка».
Дано натуральное число N. Вычислить
произведение(сумму) первых N
сомножителей.
P=2/3*4/5*6/7*…*2n/(2n+1)
P=1*3*5*…*(2n-1)
S=2/1+3/2+4/3+…+(n+1)/n
№1.Алгоритм (таблица умножения):
1. Определить переменные: P, m1, m2, P1,n;
2. Начало цикла. Запустить генератор случайных чисел
для m1, m2;
3. Вычислить P= m1* m2 и вывести на экран
произведение:
M1, ‘*’ , m2, ‘=‘;
4. Ввести значение произведения P1 и сравнить его с
результатом вычисления компьютера, если ответ
правильный то n=n+1;
5. Конец цикла;
6. Вывести количество правильных ответов (балл
ученика).