1 of 63

Тема: Реализация алгоритмов с ветвлением и повторением.

8 класс

Основы алгоритмизации и программирования

2 of 63

Цели урока:

Выработать у учащихся:

  • представление о совместном использовании базовых алгоритмических структур ветвление и цикл.
  • навыки самостоятельной работы, с презентацией и под руководством учителя.

Развивать :

  • способность анализировать готовые блок-схемы алгоритмов и использовать эти блок-схемы для создания своих программ.
  • интерес к учению, потребность в самоутверждении.

Воспитывать:

  • внимательность, сосредоточенность, аккуратность при составлении алгоритмов;
  • интерес к самостоятельной работе, творчеству;

средня школа №6 г.Лида

3 of 63

Повторение изученного (ветвления)

  • Проверять условия в программе на языке программирования можно с помощью условного оператора If..then.
  • Полная форма условного оператора:

If условие then оператор_1 else оператор_2;

  • Оператор If работает следующим образом: сначала проверяется условие и, если оно выполняется, то исполняется оператор_1, иначе исполняется оператор_2.
  • Сокращенная форма условного оператора:

If условие then оператор;

  • Ветвление – базовая алгоритмическая конструкция.
  • Алгоритмы, содержащие конструкцию ветвления, называют алгоритмами с ветвлением.

средня школа №6 г.Лида

4 of 63

Повторение изученного (циклы)

  • Цикл - одна из базовых алгоритмических конструкций.
  • Цикл представляет собой последовательность действий (команд), которая выполняется неоднократно.
  • Разновидности цикла в языке программирования Pascal:

* цикл «для» (заранее известно число повторений );

For i:=N1 to N2 do <оператор>;

For i:=N1 downto N2 do <оператор>;

* цикл «пока» (с неизвестным числом повторений ).

While <условие> do <оператор>;

средня школа №6 г.Лида

5 of 63

Задача 1 (повторение)

Дана блок-схема решения задачи.

Определите:

а) какой тип алгоритма представлен?

б) решение какой задачи представлено на блок-схеме?

в*) напишите программу на языке программирования.

средня школа №6 г.Лида

6 of 63

Задача 2 (повторение)

Дана блок-схема решения задачи. Определите:

а) какой тип алгоритма представлен?

б) решение какой задачи представлено на блок-схеме?

в*) напишите программу на языке программирования.

средня школа №6 г.Лида

7 of 63

Задача 3 (алгоритм с циклом и ветвлением)�новая тема

Условие. Написать программу, вычисляющую сумму всех двухзначных чисел, кратных семи.

Блок-схема и программа решения данной задачи вытекает из двух предыдущих, объединением их в одно целое.

средня школа №6 г.Лида

Программа (в2)

8 of 63

Самостоятельная работа за ПК.

Используя фрагмент блок-схемы, составить программу решения задачи 4.

Известен возраст и количество конкурсантов фестиваля. Определить:

  1. Сколько среди участников детей, старше 15 лет?
  2. Сколько среди участников детей в возрасте от 5 до 9 лет?
  3. * Возраст самого старшего конкурсанта и средний возраст конкурсантов?

средня школа №6 г.Лида

9 of 63

Блок-схема задачи 4

  • К,i,S,V – переменные целого типа (integer);
  • K – количество всех конкурсантов;
  • V – возраст участника фестиваля;
  • i – параметр цикла, используется для перебора всех участников;
  • S – переменная, в которой считается ответ задачи.

средня школа №6 г.Лида

10 of 63

Задачи для решения на дом.

Среди двухзначных чисел найти те:

  1. Сумма цифр которых равна заданному числу n.
  2. Сумма цифр которых равна заданному числу n, а сами числа делятся на это число n.
  3. *Сумма цифр которых равна заданному числу n, сами числа делятся на это число n и в их записи есть цифра n.

средня школа №6 г.Лида

11 of 63

Говорят, что самый короткий путь это тот, который ты знаешь.

…Но иногда стоит поискать другой, возможно он окажется значительно короче.

Удачи!

средня школа №6 г.Лида

12 of 63

Блок-схема задачи 3

средня школа №6 г.Лида

13 of 63

Программа решения Задачи 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 г.Лида

14 of 63

Программа решения Задачи 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 г.Лида

назад

15 of 63

16 of 63

Задание 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;

17 of 63

Упражнение а) (страница 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));

18 of 63

Задание 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

19 of 63

Блоки для записи алгоритма вв виде блок-схемы

Блок начала и конца

Блок ввода и вывода данных

Блок проверки условия

Блок действия

20 of 63

Блок-схема алгоритма

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;

Конец

21 of 63

Задание 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+р;

сумму

22 of 63

Задание 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

23 of 63

Задание 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. Найти количество нулей в записи числа.

24 of 63

Домашнее задание

  • Параграф 18, п. 3 ,
  • Упражнения 1 (а,б), страница 126
  • Нарисовать блок-схему к задаче 1а
  • Повторить §10-13, 17, 18 (подготовиться к тесту и решению задач)
  • Профиль: Задания 3*- 6* страница 126 по выбору одну задачу

25 of 63

26 of 63

27 of 63

ИСПОЛНЕНИЕ ФРАГМЕНТА АЛГОРИТМА, ПРЕДСТАВЛЕННОГО БЛОК-СХЕМОЙ

28 of 63

Задача:

Определите значение переменной А после выполнения фрагмента алгоритма, представленного блок-схемой:

А:=0, В:=12

В > 4

В:=В / 2

А:= В - А

В ответе укажите одно число – значение переменной А.

29 of 63

Решение:

Составим трассировочную таблицу:

Оператор или условие (логическое выражение)

Вычисление выражения

А

В

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) = нет

30 of 63

Ответ: 3.

31 of 63

Решите самостоятельно:

2.

32 of 63

Решите самостоятельно:

3.

33 of 63

Решите самостоятельно:

4.

34 of 63

Решите самостоятельно:

5.

35 of 63

Решите самостоятельно:

6.

36 of 63

Решите самостоятельно:

7.

37 of 63

Решите самостоятельно:

8.

38 of 63

Решите самостоятельно:

9.

39 of 63

Решите самостоятельно:

10.

40 of 63

Ответы:

2. Ответ: 7

3. Ответ: 15

4. Ответ: 3

5. Ответ: 2

6. Ответ: 2

7. Ответ: 85

8. Ответ: 30

9. Ответ: 1

10. Ответ: 2

41 of 63

Программирование линейных,�разветвляющихся, циклических алгоритмов на языке Паскаль

42 of 63

Цели урока:

  • Обобщить и систематизировать знания по теме «Алгоритмы»
  • Выявить уровень сформированности умений выполнять и строить алгоритмы,а также написания программ на языке Паскаль;
  • Способствовать формированию качеств личности: взаимопомощи, взаимоподдержки, дружелюбия

43 of 63

Ответьте на вопросы

1. В каких алгоритмах все действия выполняются один раз строго друг за другом?

2. В каких алгоритмах происходит выбор действия в зависимости от выполнения условия?

3. В каких алгоритмах есть повторяющиеся действия, пока выполняется заданное условие?

44 of 63

Какая структура изображена на рисунке?

+

-

Структура полного ветвления

45 of 63

Какая структура изображена на рисунке?

Структура следования

46 of 63

Какая структура изображена на рисунке?

+

-

Неполное ветвление

47 of 63

Какая структура изображена на рисунке?

+

-

Цикл с предусловием

48 of 63

Какая структура изображена на рисунке?

-

+

Цикл с постусловием

49 of 63

Какая структура изображена на рисунке?

Цикл с параметром

50 of 63

Поясните каждый фрагмент программы. �Какой алгоритм используется в каждой из программ?

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

51 of 63

Страничка ЕГЭ�

  • Определить значение переменных x,y,t после выполнения фрагмента:

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

52 of 63

Страничка ЕГЭ

  • Определите значение переменной С после выполнение фрагмента программы:

А:=5;

A:=A+6;

B:=-A;

C:= A-2*B;

Ответы: 1) -11 2) 15 3) 27 4) 33

Правильный ответ -4

53 of 63

Работа в группах

  • Задание для группы 1�Составьте блок схему и допишите программу нахождения наибольшего их двух чисел.
  • Задание для группы 2�Составьте блок схему и допишите программу вычисление гипотенузы с прямоугольного треугольника с катетами а и b
  • Задание для группы 3Составьте блок схему и напишите программу вычисления суммы целых чисел от 5 до 50, используя цикл с параметром.
  • Задание для группы 4�Составьте блок-схему и напишите программу вычисления суммы целых чисел от 0 до 100, используя цикл с предусловием

54 of 63

Задание для группы 1�Составьте блок схему и допишите программу нахождения наибольшего их двух чисел.

Program A1;

Var

a, : ;

Begin

Writeln(‘ введите числа а и b’);

Readln( );

If a>b then max: else

Writeln( );

Readln;

End.

55 of 63

�Задание для группы 2�Составьте блок схему и допишите программу вычисление гипотенузы с прямоугольного треугольника с катетами а и b

Program A2;

Var

;

Begin

Writeln(‘ ’);

Readln( );

C:=

Writeln( ‘гипотенуза равна’ );

Readln;

End.

56 of 63

Задание для группы 3Составьте блок схему и напишите программу вычисления суммы целых чисел от 5 до 50, используя цикл с параметром.

Program A3;

Var

i, s : ;

Begin

S:= ;

For i:= to do

S:= s + i;

Writeln( ‘S=‘, );

Readln;

End.

57 of 63

Задание для группы 4�Составьте блок-схему и напишите программу вычисления суммы целых чисел от 0 до 100, используя цикл с предусловием.

Program A4;

Var

i, : ;

Begin

i:=0;

S:= ;

While i < do s:= ;

Writeln( ‘S=‘,S );

Readln;

End.

58 of 63

Проверка:�Программа группы 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.

59 of 63

Проверка�Программа группы 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.

60 of 63

Проверка:�Программа группы 3

Program A3;

Var

i, s : integer ;

Begin

S:= 0 ;

For i:= 5 to 50 do

S:= s + i;

Writeln( ‘S=‘, S );

Readln;

End.

61 of 63

Проверка:�Программа группы 4

Program A4;

Var

i, s : integer ;

Begin

i:=0;

S:= 0;

While i < 100 do s:= s+i ;

Writeln( ‘S=‘,S );

Readln;

End.

62 of 63

Итоги урока

  • Сегодня на уроке мы продолжили отработку навыков решения задач с использованием алгоритмов. Какие базовые задачи мы с вами сегодня решали?

Как показал урок лучше всего отработаны навыки решения задач предполагающие нахождение ………………………….., наибольшее количество вопросов и, соответственно, ошибок вызвали задачи на………………………………………

  • По итогам урока:

«5» - получили группы

«4» - получили группы

«3» - получила группы

63 of 63

Рефлексия

Урок понравился, было интересно, узнал новое, повторил

Урок не понравился, не интересно, материал не понял.