Тема: Реализация алгоритмов с ветвлением и повторением.
8 класс
Основы алгоритмизации и программирования
Цели урока:
Выработать у учащихся:
Развивать :
Воспитывать:
средня школа №6 г.Лида
Повторение изученного (ветвления)
If условие then оператор_1 else оператор_2;
If условие then оператор;
средня школа №6 г.Лида
Повторение изученного (циклы)
* цикл «для» (заранее известно число повторений );
For i:=N1 to N2 do <оператор>;
For i:=N1 downto N2 do <оператор>;
* цикл «пока» (с неизвестным числом повторений ).
While <условие> do <оператор>;
средня школа №6 г.Лида
Задача 1 (повторение)
Дана блок-схема решения задачи.
Определите:
а) какой тип алгоритма представлен?
б) решение какой задачи представлено на блок-схеме?
в*) напишите программу на языке программирования.
средня школа №6 г.Лида
Задача 2 (повторение)
Дана блок-схема решения задачи. Определите:
а) какой тип алгоритма представлен?
б) решение какой задачи представлено на блок-схеме?
в*) напишите программу на языке программирования.
средня школа №6 г.Лида
Задача 3 (алгоритм с циклом и ветвлением)�новая тема
Условие. Написать программу, вычисляющую сумму всех двухзначных чисел, кратных семи.
Блок-схема и программа решения данной задачи вытекает из двух предыдущих, объединением их в одно целое.
средня школа №6 г.Лида
Программа (в1)
Программа (в2)
Самостоятельная работа за ПК.
Используя фрагмент блок-схемы, составить программу решения задачи 4.
Известен возраст и количество конкурсантов фестиваля. Определить:
средня школа №6 г.Лида
Блок-схема задачи 4
средня школа №6 г.Лида
Задачи для решения на дом.
Среди двухзначных чисел найти те:
средня школа №6 г.Лида
Говорят, что самый короткий путь это тот, который ты знаешь.
…Но иногда стоит поискать другой, возможно он окажется значительно короче.
Удачи!
средня школа №6 г.Лида
Блок-схема задачи 3
средня школа №6 г.Лида
Программа решения Задачи 3.�(вариант1 с использованием цикла For)
Program Z3_1;
var i,s:integer; {i – переменная цикла, в переменной s вычисляем сумму чисел, кратных 7}
begin
s:=0; {начальная сумма равна 0}
for i:=10 to 99 do {переменная i (счетчик цикла) меняется
от 10 до 99 с шагом 1}
If i mod 7 =0 then s:=s+i; {если число кратно 7, то
прибавляем его к сумме}
writeln(' сумма 2-ухзначных чиел, кратных 7,=‘,s); {вывод результата}
end.
средня школа №6 г.Лида
Программа решения Задачи 3.�(вариант2 с использованием цикла While)
Program Z3_2;
var i,s:integer; {i – переменная цикла, в переменной s вычисляем сумму чисел, кратных 7}
begin
s:=0; {начальная сумма равна 0}
i:=14; {I=14 –первое двухзначное число, кратное 7 }
while i<= 98 do {пока переменная I не достигнет последнего двухзначного числа, кратного 7}
begin
s:=s+i; {прибавляем число к сумме}
i:=i+7; {прибавляем к переменной I 7, так как считаем сумму чисел, кратных 7}
end;
writeln(' сумма 2-ухзначных чисел, кратных 7,=‘,s); {вывод результата}
end.
средня школа №6 г.Лида
назад
Задание 3в (страница 116)
Program Summa;
Var i, n : integer; S: real;
Begin
writeln(‘введи n’);
readln(n);
S:=0;
i:=1;
while i<=n do
begin
S:=S+1/i;
i:=i+1;
end;
writeln(S);
readln;
end.
Проверка домашнего задания
Вычислить сумму S=1+1/2+1/3+…+1/n
S:=0;
for i:=1 to n do S:=S+1/i;
Упражнение а) (страница 120)
Program Kv;
Var i, S : integer;
Begin
i:=1;
while i<=50 do
begin
S:=sqr(i);
writeln(S);
i:=i+1;
end;
readln;
end.
Проверка домашнего задания
Вывести на экран квадраты натуральных чисел от 1 до 50
for i:=1 to 50 do writeln(sqr(i));
Задание 1. Дано целое положительное число. Распечатать все цифры данного числа
Program tsifra;
Var …
Begin
writeln(‘введи A’);
readln(A);
while A<>0 do
begin
p:=A mod 10;
writeln(p);
A:=A div 10;
end;
readln;
end.
Как найти последнюю цифру (р) каждого из данных чисел?
А=51234
А=3452
А=567
А=98
А=9
p:=A mod 10
Блоки для записи алгоритма вв виде блок-схемы
Блок начала и конца
Блок ввода и вывода данных
Блок проверки условия
Блок действия
Блок-схема алгоритма
Program summa;
Var …
Begin
writeln(‘введи A’);
readln(A);
while A<>0 do
begin
p:=A mod 10;
writeln(p);
A:=A div 10;
end;
readln;
end.
Начало
Ввод А
A<>0
p:=A mod 10;
Вывод р
A:=A div 10;
Конец
Задание 2. Подсчитать количество цифр в введённом числе
Program kol;
Var A,p,k …
Begin
writeln(‘введи A’);
readln(A);
k:=0;
while A<>0 do
begin
p:=A mod 10;
k:=k+1;
A:=A div 10;
end;
writeln(k);
readln;
end.
Как найти последнюю цифру (р) каждого из данных чисел?
А=51234
Как изменить число А, отбросив последнюю цифру?
А=5123
p:=A mod 10
А:=A div 10
k:=k+1;
количество
k:=k+р;
сумму
Задание 3. Поменять порядок цифр в числе А на обратный и занести его в В.
Program chislo;
Var …
Begin
writeln(‘введи A’);
readln(A);
B:=0;
while A<>0 do
begin
А:=А mod 10;
B:=B*10+p;
A:=A div 10;
end;
writeln(B);
readln;
end.
Порядок получения числа В
А=1234
В=4
В=43=40+3
В=432=430+2
В=4321=4320+1
В:=B*10+p
Задание 4. Найти количество чётных цифр числа
Program kol;
Var …
Begin
writeln(‘введи A’);
readln(A);
К:=0;
while A<>0 do
begin
p:=A mod 10;
if p mod 2 =0
then К:=К+1;
A:=A div 10;
end;
writeln(К);
readln;
end.
Как найти последнюю цифру (р) каждого из данных чисел?
А=51234
А=29
Как определить чётность цифры?
А=51234
А=29
p:=A mod 10
р mod 2=0
Задание (устно). 1. Найти сумму чётных цифр числа�2. Найти количество нечётных цифр числа.�3. Найти количество нулей в записи числа.
Домашнее задание
ИСПОЛНЕНИЕ ФРАГМЕНТА АЛГОРИТМА, ПРЕДСТАВЛЕННОГО БЛОК-СХЕМОЙ
Задача:
Определите значение переменной А после выполнения фрагмента алгоритма, представленного блок-схемой:
А:=0, В:=12
В > 4
В:=В / 2
А:= В - А
В ответе укажите одно число – значение переменной А.
Решение:
Составим трассировочную таблицу:
№ | Оператор или условие (логическое выражение) | Вычисление выражения | А | В |
1 | Ввод А, В | | 0 | 12 |
2 | В>4 | (12>4) = да | | |
3 | В:=В / 2 | 12 /2 = 6 | | 6 |
4 | А: = В - А | 6 – 0 = 6 | 6 | |
5 | В>4 | (12>4) = да | | |
6 | В:=В / 2 | 6 /2 = 3 | | 3 |
7 | А: = В - А | 3 – 6 = - 3 | - 3 | |
8 | В>4 | (3>4) = нет | | |
Ответ: 3.
Решите самостоятельно:
2.
Решите самостоятельно:
3.
Решите самостоятельно:
4.
Решите самостоятельно:
5.
Решите самостоятельно:
6.
Решите самостоятельно:
7.
Решите самостоятельно:
8.
Решите самостоятельно:
9.
Решите самостоятельно:
10.
Ответы:
2. Ответ: 7
3. Ответ: 15
4. Ответ: 3
5. Ответ: 2
6. Ответ: 2
7. Ответ: 85
8. Ответ: 30
9. Ответ: 1
10. Ответ: 2
Программирование линейных,�разветвляющихся, циклических алгоритмов на языке Паскаль
Цели урока:
Ответьте на вопросы
1. В каких алгоритмах все действия выполняются один раз строго друг за другом?
2. В каких алгоритмах происходит выбор действия в зависимости от выполнения условия?
3. В каких алгоритмах есть повторяющиеся действия, пока выполняется заданное условие?
Какая структура изображена на рисунке?
+
-
Структура полного ветвления
Какая структура изображена на рисунке?
Структура следования
Какая структура изображена на рисунке?
+
-
Неполное ветвление
Какая структура изображена на рисунке?
+
-
Цикл с предусловием
Какая структура изображена на рисунке?
-
+
Цикл с постусловием
Какая структура изображена на рисунке?
Цикл с параметром
Поясните каждый фрагмент программы. �Какой алгоритм используется в каждой из программ?
1) Begin
A:=5;
B:=10;
S:=A+B;
Writeln (‘S=‘,S);
2) Begin
S:=0;
For i:=0 to 124 do
S:=S+ i * i;
Writeln (‘S=‘,S);
3) Begin
Readln (x);
f x<=10 then y:=3 else y:=x * x;
Writeln (‘y=‘,y);
4) Begin
i:=0;
S:=0;
Repeat
i:=i+2;
S:=S+I;
Until i >100;
Writeln (‘S=‘,S);
Линейный алгоритм
Вычисление суммы чисел
Цикл с параметром
Вычисление суммы квадратов чисел от 0 до 124
Разветвляющийся алгоритм вычисление у
в зависимости от х: если х
меньше или равен 10 то у=3, иначе у=х2
Цикл с постусловием
Вычисление суммы четных чисел от 0 до 100
Страничка ЕГЭ�
x:=5;
y:=7;
t:=x;
x:=y mod x; (mod- вычисление остатка от деления нацело первого аргумента на второй)
y:=t;
Ответы:
1) x=2 2) x=7 3) x=2 4) x=5
y=5 y=5 y=2 y=5
t=5 t=5 t=2 t=5
Правильный ответ 1
Страничка ЕГЭ
А:=5;
A:=A+6;
B:=-A;
C:= A-2*B;
Ответы: 1) -11 2) 15 3) 27 4) 33
Правильный ответ -4
Работа в группах
Задание для группы 1�Составьте блок схему и допишите программу нахождения наибольшего их двух чисел.
Program A1;
Var
a, : ;
Begin
Writeln(‘ введите числа а и b’);
Readln( );
If a>b then max: else
Writeln( );
Readln;
End.
�Задание для группы 2�Составьте блок схему и допишите программу вычисление гипотенузы с прямоугольного треугольника с катетами а и b
Program A2;
Var
;
Begin
Writeln(‘ ’);
Readln( );
C:=
Writeln( ‘гипотенуза равна’ );
Readln;
End.
Задание для группы 3�Составьте блок схему и напишите программу вычисления суммы целых чисел от 5 до 50, используя цикл с параметром.
Program A3;
Var
i, s : ;
Begin
S:= ;
For i:= to do
S:= s + i;
Writeln( ‘S=‘, );
Readln;
End.
Задание для группы 4�Составьте блок-схему и напишите программу вычисления суммы целых чисел от 0 до 100, используя цикл с предусловием.
Program A4;
Var
i, : ;
Begin
i:=0;
S:= ;
While i < do s:= ;
Writeln( ‘S=‘,S );
Readln;
End.
Проверка:�Программа группы 1
Program A1;
Var
a, b,max : integer ;
Begin
Writeln(‘ введите числа а и b’);
Readln( a,b );
If a>b then max:=a else max:=b;
Writeln( ‘наибольшее число=‘,max);
Readln;
End.
Проверка�Программа группы 2
Program A2;
Var
a,b,c:real;
Begin
Writeln(‘ введите катеты а и b’);
Readln( a,b );
C:=sqrt(a*a +b*b);
Writeln( ‘гипотенуза равна’,c :2:2);
Readln;
End.
Проверка:�Программа группы 3
Program A3;
Var
i, s : integer ;
Begin
S:= 0 ;
For i:= 5 to 50 do
S:= s + i;
Writeln( ‘S=‘, S );
Readln;
End.
Проверка:�Программа группы 4
Program A4;
Var
i, s : integer ;
Begin
i:=0;
S:= 0;
While i < 100 do s:= s+i ;
Writeln( ‘S=‘,S );
Readln;
End.
Итоги урока
Как показал урок лучше всего отработаны навыки решения задач предполагающие нахождение ………………………….., наибольшее количество вопросов и, соответственно, ошибок вызвали задачи на………………………………………
«5» - получили группы
«4» - получили группы
«3» - получила группы
Рефлексия
Урок понравился, было интересно, узнал новое, повторил
Урок не понравился, не интересно, материал не понял.