144.20K
Category: programmingprogramming

Программирование разветвляющихся алгоритмов. Начала программирования

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 ('Точка не принадлежит отрезку')
еnd.
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:=a;
if (b>y) then y:=b;
if (c>y) then y:=c;
writeln ('y=', y)
end.
Y:=A
да
B>Y
нет
Y:=B
да
Y:=C
C>Y
нет

6.

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

7.

Блок-схема решения КВУР
Начало
Введите коэффициенты 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

8.

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.

9.

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

10.

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

11.

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

12.

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

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

13.

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