Цель: Познакомиться с разветвляющимися алгоритмами.
Задачи:
Образовательная:
ввести понятия о разветвляющихся алгоритмах.
познакомить с условным оператором If..then.
научить применять условный оператор при решении задач.
Развивающая: развитие алгоритмического мышления, внимательности, памяти.
Воспитательная: развитие познавательного интереса, логического мышления.
Средства обучения:
технические средства: компьютер с операционной системой MS Windows; мультимедийный проектор;
программные средства: презентация, подготовленная в PowerPoint, Turbo Pascal 7.0.
раздаточный материал: карточки с пословицами, карточки с домашним заданием.
8-3-4.ppt
Программирование разветвляющихся алгоритмов
ПРОГРАММИРОВАНИЕ
ПРОГРАММИРОВАНИЕ
РАЗВЕТВЛЯЮЩИХСЯ
РАЗВЕТВЛЯЮЩИХСЯ
АЛГОРИТМОВ
АЛГОРИТМОВ
НАЧАЛА ПРОГРАММИРОВАНИЯ
Программирование разветвляющихся алгоритмов
Ключевые слова
• условный оператор
• неполный условный оператор
• составной оператор
• вложенные ветвления
Программирование разветвляющихся алгоритмов
Общий вид условного
оператора
then <оператор_1> else
else <оператор_2>
Полная форма условного оператора:
ifif <условие> then
Неполная форма условного оператора:
ifif <условие> then
then <оператор>
!
Перед else
else знак «;» не ставится.
Условия логические выражения
Простые
Сложные
Операции
отношений
Логические
операции
Операции отношенийЛогическиеоперацииПростыеСложные Условия логические выражения
Программирование разветвляющихся алгоритмов
Условный оператор
program n_9;
var x, a, b: real;
begin
writeln ('Определение принадлежности
точки отрезку');
write ('Введите а, b>>');
readln (a, b);
write ('Введите x>>');
readln (x);
if (x>=a) and (x<=b) then
writeln ('Точка принадлежит отрезку')
else writeln ('Точка не принадлежит отрезку')
еnd.
ДА
да
a, b, x
(x>=a) and (x<=b)
нет
НЕТ
Программирование разветвляющихся алгоритмов
Неполный условный оператор
program n_10;
var y, a, b, c: integer;
begin
writeln ('Нахождение наибольшей из трёх величин');
write ('Введите а, b, с>>');
readln (a, b, c);
y:=a;
if (b>y) then y:=b;
if (c>y) then y:=c;
writeln ('y=', y)
end.
Y:=B
да
Y:=A
B>Y
нет
да
C>Y
нет
Y:=C
Программирование разветвляющихся алгоритмов
Составной оператор
В условном операторе и после then
можно использовать только один оператор.
then, и после else
else
Если в условном операторе после then
нужно выполнить несколько операторов, то
используют составной оператор – конструкцию вида:
begin <последовательность операторов> endend
begin
then или после else
else
Программирование разветвляющихся алгоритмов
Блоксхема решения КВУР
Вывод
«Корней нет»
Начало
Введите коэффициенты a, b, c
d:=b*b4*a*c
да
d < 0
не
т
да
x:=b/2/a
Вывод
«Корень уравнения х=», х
Конец
d:= 0
не
т
х1:=(b+sqrt(d))/2/a
х2:=(bsqrt(d))/2/a
Вывод
«Корни уравнения:
х1=», х1, «х2=», х2
Программирование разветвляющихся алгоритмов
program n_11;
var a, b, c: real;
var d: real;
var x, x1, x2: real;
begin
writeln ('Решение квадратного уравнения');
write ('Введите коэффициенты a, b, c >>');
readln (a, b, c);
d:=b*b-4*a*c;
if d<0 then writeln ('Корней нет')
else
if d=0 then
begin
x:=-b/2/a;
writeln ('Корень уравнения x=', x:9:3)
end
else
begin
x1:=(-b+sqrt(d))/2/a;
x2:=(-b-sqrt(d))/2/a;
writeln ('Корни уравнения:');
writeln ('x1=', x1:9:3);
writeln ('x2=', x2:9:3)
end
end.
begin x1:=(-b+sqrt(d))/2/a; x2:=(-b-sqrt(d))/2/a; writeln ('Корни уравнения:'); writeln ('x1=', x1:9:3); writeln ('x2=', x2:9:3) end begin x:=-b/2/a; writeln ('Корень уравнения x=', x:9:3) end
Программирование разветвляющихся алгоритмов
Вложенные ветвления
ifif <условие1> then
then
if if <условие2> then
elseelse <оператор2>
elseelse <оператор3>
then <оператор1>
!
else всегда относится к ближайшему оператору ifif
else
Программирование разветвляющихся алгоритмов
Решение линейного
уравнения
Список данных
a, b, x вещ
a, b
a<>0
да
да
x:=b/a
нет
b<>0
нет
Любое число
Корней нет
program n_12;
var a, b, x: real;
begin
writeln ('Решение линейного уравнения');
write ('Введите коэффициенты a , b>>');
readln (a, b);
if a<>0 then
begin
x:=-b/a;
writeln ('Корень уравнения x=', x:9:3)
end
else if b<>0 then writeln ('Корней нет')
else writeln ('x – любое число');
end.
Программирование разветвляющихся алгоритмов
Самое главное
При записи на языке Паскаль разветвляющихся
алгоритмов используют условный оператор:
if <условие> then <оператор_1> else <оператор_2>
Для
ветвлений используется
неполных
неполный условный оператор:
записи
if <условие> then <оператор>
Если при некотором условии требуется выполнить
определённую последовательных операторов, то их
объединяют в один составной оператор, имеющий вид:
begin <последовательность операторов> end
Программирование разветвляющихся алгоритмов
Вопросы и задания
If a<5 then c:=1
длинами сторон.
Что такое составной оператор?
8.
А(ха, ya):
функции:
Дано трёхзначное число.
Дан условный оператор:
Поле шахматной доски определяется парой
Напишите программу, определяющую, лежит ли точка
Напишите программу, вычисляющую значение
Даны три натуральных числа. Напишите программу,
Составьте программу для решения задачи:
Напишите программу, которая производит обмен
натуральных чисел, каждое из которых не превосходит
Напишите программу, которая определяет:
Известно, что 31 января 2011 года приходится на
определяющую, существует ли треугольник с такими
значений переменных x и y, если x больше y.
а) на прямой y = kx + l, над ней или под ней;
Используя составной оператор, упростите следующий
понедельник. Какие значения должны быть присвоены
Имеются данные о количестве полных лет трёх
Является ли условным оператором
есть ли среди цифр заданного целого трёхзначного
Даны две точки в плоской прямоугольной системе
1 при x<0
Напишите программу, которая по введённым
фрагмент программы:
Напишите программу, в которой пользователю
Если такой треугольник существует, то определите
литерной переменной y в алгоритме, определяющем
является ли число «перевёртышем», т. е. числом,
призёров спартакиады.
else if a>5 then c:=2
Пример выходных данных
Пример входных данных
Для чего он используется в условном операторе?
последовательность символов?
Пример выходных данных
Пример входных данных
Как на языке Паскаль записывается полное и неполное
числа одинаковые;
координат. Напишите программу, определяющую,
координатам двух полей (k, l) и (m, n) определяет,
предлагается дополнить до 100 некоторое целое число
день недели для любого числа (chislo) января 2011
его тип (равносторонний, равнобедренный,
десятичная запись которого читается одинаково слева
Напишите программу, выбирающую и выводящую
0 при x=0
y =
if a>b then c:=1;
ветвление?
которая из точек находится ближе к началу координат.
else c:=3
являются ли эти поля полями одного цвета.
Точка лежит под прямой
K, L>>1 5
а (а случайное число, меньшее 100).
а) if x> 5
x = 5
разносторонний).
года?
направо и справа налево.
возраст самого младшего призёра.
Пример входных данных
Пример выходных данных
Какое значение имеет переменная а, если в
xa, ya >>1 2
1 при x>0
chislo:= chislo mod 7
Ответ пользователя проверяется и комментируется.
if a>b then d:=2;
y = 6
y >> 6
б) if x>=y then x:=0; y:=0 else write (z)
Пример выходных данных
Пример входных данных
результате выполнения условного оператора
если chislo=3 то у:='…‘
Поля одного цвета
Координаты 1 – го поля >> 2 2
Пример входных данных
Пример выходных данных
Пример выходных данных
Пример выходных данных
Пример входных данных
Пример входных данных
K, L>>1 5
Точка лежит над прямой
x = 5
x >> 6
переменной с присваивается значение 3?
if a<=b then c:=3;
если chislo=4 то у:='…‘
Пример входных данных
Пример выходных данных
Координаты 2 – го поля >> 3 3
Не существует
a b c>> 1 2 1
xa, ya >>1 10
y = 6
y >> 5
Первая точка ближе
Координаты 1й точки>>1, 2
123
Нет
123
Нет
если chislo=5 то у:='…‘
Поля разного цвета
Координаты 1 – го поля >> 2 3
if a<=b then d:=4
Точка лежит на прямой
K, L>>1 5
y = 1
5
Координаты 2й точки>>3, 4
Равносторонний
a b c>> 2 2 2
если chislo=6 то у:='…‘
121
Да
121
Перевёртыш
Координаты 2 – го поля >> 3 3
xa, ya >>1 4
если chislo=0 то у:='…‘
y = 0
0
Равнобедренный
a b c>> 20 20 30
Поля одного цвета
Координаты 1 – го поля >> 2 7
222
Да
222
Перевёртыш
если chislo=1 то у:='…‘
Координаты 2 – го поля >> 5 4
y = 1
5
если chislo=2 то у:='…‘
Разносторонний
a b c>> 3 4 5
в) if x
Программирование разветвляющихся алгоритмов
Опорный конспект
Условный оператор
Полная форма
if <условие> then <оператор_1> else <оператор_2>
Неполная форма
if <условие> then <оператор>
Составной оператор
begin <последовательность операторов> end
Условный операторПолная формаНеполная формаСоставной оператор
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.