729.50K
Категория: ПрограммированиеПрограммирование

Рограммирование разветвляющихся алгоритмов

1.

ПРОГРАММИРОВАНИЕ
РАЗВЕТВЛЯЮЩИХСЯ
АЛГОРИТМОВ
НАЧАЛА ПРОГРАММИРОВАНИЯ

2.

Ключевые слова
условный оператор
неполный условный оператор
составной оператор
вложенные ветвления

3.

Общий вид условного оператора
Полная форма условного оператора:
if <условие> then <оператор_1> else
<оператор_2>
Неполная форма условного оператора:
if <условие> then <оператор>
!
Перед else знак «;» не ставится.
Условия - логические выражения
Простые
Сложные
Операции
отношений
Логические
операции

4.

Условный оператор
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 ('Точка не принадлежит отрезку')
end.
a, b, x
(x>=a) and (x<=b)
нет
НЕТ

5.

Неполная форма условного оператора
program n_10;
var y, a, b, c: integer;
begin
writeln ('Нахождение наибольшей из трёх величин');
да
write ('Введите а, b, с>>');
readln (a, b, c);
Y:=B
y:=a;
if (b>y) then y:=b;
да
if (c>y) then y:=c;
writeln ('y=', y)
Y:=C
end.
Y:=A
B>Y
C>Y
нет
нет

6.

Составной оператор
В условном операторе и после then, и после else
можно использовать только один оператор.
Если в условном операторе после then или после else
нужно выполнить несколько операторов, то
используют составной оператор – конструкцию вида:
begin <последовательность операторов> end

7.

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 thenbegin
writeln ('Корней нет');
if d=0 then x:=-b/2/a;
writeln ('Корень уравнения x=', x:9:3)
end;
if d>0 then
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.

8.

Блок-схема решения КВУР
Начало
Введите коэффициенты a, b, c
d:=b*b-4*a*c
нет
да
d<0
да
Вывод
«Корней нет»
d:= 0
нет
x:=-b/2/a
Вывод
«Корень уравнения х=», х
х1:=(-b+sqrt(d))/2/a
х2:=(-b-sqrt(d))/2/a
Соответствуют ли программа
и блок-схема друг другу?
?
Конец
Вывод
«Корни уравнения:
х1=», х1, «х2=», х2

9.

Вложенные ветвления
Возможна следующая конструкция:
if <условие1> then
if
<условие2>
then
<оператор1>
else <оператор2>
else <оператор3>
!
else всегда относится к ближайшему оператору if

10.

Решение линейного уравнения
Список данных
a, b, x - вещ
a, b
да
x:=-b/a
a<>0
да
нет
нет
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 – любое
число');

11.

Самое главное
При записи на языке Паскаль разветвляющихся
алгоритмов используют условный оператор:
if <условие> then <оператор_1> else <оператор_2>
Для
записи
неполных
ветвлений
сокращённый условный оператор:
используется
if <условие> then <оператор>
Если при некотором условии требуется выполнить
определённую последовательных операторов, то их
объединяют в один составной оператор, имеющий вид:
begin <последовательность операторов> end.

12.

Вопросы и задания
Поле
шахматной
доски
определяется
парой
Напишите
программу,
определяющую,
лежитпрограмму,
ли
точка
Напишите
программу,
Дано
трёхзначное
вычисляющую
число.
значение
Составьте
Даны
три
программу
натуральных
для
числа.
решения
Напишите
задачи:
Дан
условный
оператор:
Напишите
программу,
которая
производит
обмен
натуральных
А(ха,
ya
):
чисел,
каждое
из
которых
не
превосходит
8.
функции:
Напишите
программу,
которая
определяет:
определяющую,
Известно,
что
существует
31
января
ли
2011
треугольник
года
приходится
с
такими
на
значений
переменных
x
и
y
,
если
x
больше
y
.
а)
y = kxзначения
+ оператор,
l, над которая
ней
или
под
ней;введённым
Напишите
программу,
по
If на
a<5прямой
then
c:=1
Используя
составной
упростите
следующий
длинами
понедельник.
сторон.
Какие
должны
быть
присвоены
Имеются
данные
о
количестве
полных
лет
трёх
Является
Что
ли
такое
составной
условным
оператор?
оператором
есть
Даны
ли
две
среди
точки
цифр
в
плоской
заданного
прямоугольной
целого
трёхзначного
системе
-1
при
x
<0
координатам
двух
полей
(вk,валгоритме,
l) которой
и (m,то nопределите
)пользователю
определяет,
фрагмент
программы:
Напишите
программу,
литерной
Если
такой
переменной
треугольник
y
существует,
определяющем
его
является
ли
число
«перевёртышем»,
т.
е.
числом,
призёров
спартакиады.
else
if
a>5
then
c:=2
Пример
входных
данных
Пример
выходных
данных
последовательность
Для
чего
он
используется
символов?
в
условном
операторе?
Как
Пример
наодинаковые
языке
входных
Паскаль
записывается
Пример
полное
выходных
и неполное
данных
числа
координат.
Напишите
; данных
программу,
определяющую,
являются
ли
эти
поля
полями
одного
цвета.
тип
день
(равносторонний,
недели
для
любого
равнобедренный,
числа
(chislo)
января
разносторонний).
2011
года?
предлагается
дополнить
до
100
некоторое
целое
число
а
десятичная
запись
которого
читается
одинаково
слева
Напишите
программу,
выбирающую
и
выводящую
y
=
0
при
x
=0
if
a>b
then
c:=1;
ветвление?
которая
точек находится
ближе
к началу
координат.
elseиз
c:=3
k,
l>>-1
5
Точка
лежит
под
chislo:=
chislo
mod
7
а) число,
ifмладшего
x<y
thenпризёра.
x:=0
5 самого
x100).
=else
5 read (y) прямой
направо
и справа
налево.
возраст
(аx ->>
случайное
меньшее
Какое
значение
имеет
а, выходных
если в результате
Пример
входных
данных
данных
если
chislo=3
то
xa,
2
1переменная
при
>0
if a>b
thenyxПример
d:=2;
пользователя
проверяется
и комментируется.
yОтвет
>>ya6 >>1
= 6у:='…‘
б)входных
ifвходных
x>=y
then
x:=0;
y:=0
else
write (z)
Пример
данных
Пример
выходных
данных
выполнения
условного
оператора
переменной
с
если
chislo=4
то
у:='…‘
Пример
Пример
Пример
входных
входных
данных
данных
данных
Пример
Пример
Пример
выходных
выходных
выходных
данных
данных
данных
k,
l>>-1
5
Точка
лежит
над
прямой
Координаты
1

го
поля
>>
2
2
Поля
одного
цвета
x >> 6
x =c:=3;
5
if
a<=b
then
если
chislo=5
то у:='…‘
присваивается
значение
3? Пример
Пример
входных
данных
выходных данных
a
b
c>>
1
2
1
Не
существует
Координаты
2

го
поля
>>
3
3
xa,
ya
>>1
10
в)
if
x<y
<z
then
a:=a+1
y123
>>
5
y
=
6
Координаты
1-й точки>>1,
2 Нет
Первая
точка ближе
123
Нет
если chislo=6
то у:='…‘
Координаты
го поля
>>chislo=0
2 3then
разного
if a<=b
l>>-1
5 21 2–2-й
Точка
лежит цвета
на прямой
-5k,
yПоля
=то
-d:=4
1у:='…‘
если
a
b
c>>
2
Равносторонний
Координаты
точки>>3,
4
121
121
Перевёртыш
Да
Координаты
2

го
поля
>>
3
3
если chislo=1 то у:='…‘
ya >>1 4
0xa,
y Равнобедренный
=0
a
b
c>>
20
20
30
2
2
2
Координаты
1 – го поля
2= 7r Перевёртыш
Поля
одного
если
то у:='…‘
б) на окружности
x +>>ychislo=2
,Да
над
ней
илицвета
под ней.
222
222
им
5 aПримеры
=1
Координаты
2входных
– го поляданных
>> 5 4иyсоответствующих
b
c>>
3
4
5
Разносторонний
выходных данных разработайте самостоятельно.

13.

Опорный конспект
Условный оператор
Полная форма
if <условие> then <оператор_1> else <оператор_2>
Неполная форма
if <условие> then <оператор>
Составной оператор
begin <последовательность операторов> end
English     Русский Правила