Презентация Программирование ветвлений на Паскале
Виды алгоритмов. Разветвляющийся алгоритм Цель урока: провести проверку, коррекцию и обобщение знаний умений и навыков решения задач по теме«Виды алгоритмов. Разветвляющийся алгоритм» Определение алгоритмаСвойства алгоритмовСпособы записи алгоритмовТипы алгоритмов Содержание: Алгоритм - понятное и точное указаниеисполнителю совершить определеннуюпоследовательность действий для решения поставленной задачиили достижения указанной цели. Алгоритм - Дискретность (пошаговое исполнение) Результативность (конечность) Свойстваалгоритма Понятность (в системе команд исполнителя) Массовость (решение однотипных задач) Точность (определенность) Формальность (не вдумываясь) Свойства алгоритма: СЛОВЕСНЫЙ ПРОГРАММА ГРАФИЧЕСКИЙ – БЛОК-СХЕМА СПОСОБЫ ЗАПИСИ Прочесть значение R.Умножить значение R на себя и на 3,14.Умножить результат второго действия на значение R.Записать полученный в предыдущей команде результат как значение S. Словесный Program primer; var x , y : integer;Begin write ( ‘ введите числo x =’ ); read ( x ); if x < 0 then if x < -5 then y := -10 else y := x else if x < 3 then y := 2*x else y := 6;writeln ( ‘ y = ’ , y );End. Программный ввод исходных данных начало вывод результата конец действие n действие 1 . . . Блок-схема (графический) Типы алгоритмов: Линейный 1 2 3 Ветвящийся Циклический Типы алгоритмов: Линейный алгоритм- Алгоритм называется линейным, если все его действия выполняются последовательно друг за другом от начала и до конца. 1 2 3 4 5 6 … Линейный алгоритм НАЧАЛО ВВОД A,B S := A * B КОНЕЦ ВЫВОД S Найти площадь прямоугольника с заданными длинами сторон. Восстановите условие задачи: Program square; var A, B : integer;Begin writeln ( ‘ введите длины сторон прямоуг-ка ’ ); read ( R ); S = A * B ; readln ( площадь прямоуг-ка = S );End Найдите ошибки в программе: Program square; var A, B, S : integer;Begin writeln ( ‘ введите длины сторон прямоуг-ка ’ ); read ( A , B ); S : = A * B ; writeln ( ‘ площадь прямоуг-ка = ‘ , S );End . Проверьте себя: Разветвляющийся алгоритм- Алгоритм называется ветвящимся, если в зависимости от выполнения условия совершаются те или иные действия. Разветвляющийся алгоритм Виды ветвлений: Полная форма 1 2 3 Неполная форма Выбор Виды ветвлений: Неполная форма УСЛОВИЕ Да Нет одно илинесколькодействий Pascal:if условие then действие;илиif условие thenbegin группа действий; end; Полная форма УСЛОВИЕ Да Нет группадействий2 группадействий1 Pascal:if условие then действие1 else действие2;илиif условие then begin группа действий1; end else begin группа действий2; end; Оператор выбора Pascal:case переменная of список значений 1 : действие 1; список значений 2 : действие 2; список значений 3 : действие 3; ……………………………………………………… список значений n : действие nelse действие n+1;end; Найти большее из трех чисел. НАЧАЛО ВВОД A,B,C КОНЕЦ ВЫВОД M A>B M:=В M:=А Нет Да С>М M:=C Да Нет Восстановите условие задачи: Program Max; var A, B, C : integer;Begin writeln ( ‘ введите 2 числа ’ ); read ( A, B ); if A > B then Max := A ; else Max := B ; if C > Max else Max := C ; writlen ( ‘ большее = ’ , М );End. Найдите ошибки в программе: Program Maximum; var A, B, C, Max : integer;Begin writeln ( ‘ введите 3 числа ’ ); read ( A, B, C ); if A > B then Max := A else Max := B ; if C > Max then Max := C ; writeln ( ‘ большее = ’ , М );End. нет « ; » Проверьте себя: 1)x := 5 ;
if x < 4 then x := 0
else x := x + 2 ;
y := x ;
2)m := 0 ; n := 4;
if (m < n) and (m <> 0)
then k := m
else begin k := m ; k := k - n; end;
3)a := -1 ; b := 2;
if (a > 0) or (b > 0)
then d := b
else begin d := b ; d := d + a; end; y = ……… d = ……… k = ……… 7 - 4 2 Каким будет значение переменных после выполнения фрагмента программы: 1) if x < 0 then y := - x ; if x >= 0 then y := 2+x ;2) if a >= b then c := 1 ; if a < b then c := -1 ;3) if a < b then write ( ‘ a – меньше ’ ); if a > b then write ( ‘ b – меньше ’ ); X 0 Y = - X Y = 2+X Упростите : 1) if x < 0 then y := - x ; if x >= 0 then y := 2+x ;2) if a >= b then c := 1 ; if a < b then c := -1 ;3) if a < b then write ( ‘ a – меньше ’ ); if a > b then write ( ‘ b – меньше ’ ); if x < 0 then y := - x
else y := 2+x ; Упростите : 1) if x < 0 then y := - x ; if x >= 0 then y := 2+x ;2) if a >= b then c := 1 ; if a < b then c := -1 ;3) if a < b then write ( ‘ a – меньше ’ ); if a > b then write ( ‘ b – меньше ’ ); if x < 0 then y := - x
else y := 2+x ; a b a b a b Упростите : 1) if x < 0 then y := - x ; if x >= 0 then y := 2+x ;2) if a >= b then c := 1 ; if a < b then c := -1 ;3) if a < b then write ( ‘ a – меньше ’ ); if a > b then write ( ‘ b – меньше ’ ); if x < 0 then y := - x
else y := 2+x ; if a >= b then c := 1
else c := -1 ; Упростите : 1) if x < 0 then y := - x ; if x >= 0 then y := 2+x ;2) if a >= b then c := 1 ; if a < b then c := -1 ;3) if a < b then write ( ‘ a – меньше ’ ); if a > b then write ( ‘ b – меньше ’ ); if x < 0 then y := - x
else y := 2+x ; if a >= b then c := 1
else c := -1 ; НЕЛЬЗЯ!нет a = b Упростите : Program primer; var x, a, b : integer;Begin writlen ( ‘ введите числo x =’ ); write ( x ); if x > 0 then a := a * 2 ; b := b / 2; if x <= 0 then a := a / 2 ; b := b * 2; writeln ( ‘ a = ’ , a ); writeln ( ‘ b = ’ , b );End. Упростите, если это возможно, и найдите ошибки в программе: Program primer; var x, a, b : real;Begin writeln ( ‘ введите числo x =’ ); read ( x ); if x > 0 then begin a := a * 2 ; b := b / 2; end else begin a := a / 2 ; b := b * 2; end; writeln ( ‘ a = ’ , a ); writeln ( ‘ b = ’ , b );End. Проверьте себя: Напишите программу решения задачи по алгоритму: По представленной на карточке блок-схеме (раздаточный материал на столе) составьте программу вычисления значения переменной y при заданном с клавиатуры значении переменной x. Составьте алгоритм и программу, определяющую четность введенного Вами с клавиатуры числа. Домашнее заданиеРешите задачу: