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

1.

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

2.

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

3.

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

4.

Условный оператор
program n_9;
var x, a, b: real;
begin
writeln ('Определение принадлежности
точки отрезку');
write ('Введите а, b>>');
a, b, x
да
readln (a, b);
write ('Введите x>>');
ДА
readln (x);
if (x>=a) and (x<=b) then
writeln ('Точка принадлежит отрезку')
else writeln ('Точка не принадлежит отрезку')
еnd.
(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.

Блок-схема решения КВУР
Начало
Введите коэффициенты 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
да
x:=-b/a
a<>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.
нет
нет
b<>0
Любое число

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;
ветвление?
которая
из5точек находится
ближе
к началу
координат.
else
c:=3
K,
L>>-1
Точка
лежит
под
прямой
chislo:=
chislo
mod
7
if x<y
then
x:=0
else
5 самого
x100).
= 5 read (y)
направо
иа)
справа
налево.
возраст
младшего
призёра.
(аx ->>
случайное
число,
меньшее
Пример
входных
данных
Пример
выходных
данных
Какое
значение
имеет
переменная
а
,
если
в
результате
если
chislo=3
то
у:='…‘
xa,
ya
>>1
2
1 при
if a>b
thenyx>0
d:=2;
проверяется
yОтвет
>> 6 пользователя
= 6и комментируется.
б)
if–x>=y
then
x:=0;
y:=0
else
write данных
(z)
Пример
входных
данных
Пример
выходных
данных
выполнения
условного
оператора
переменной
с
если
chislo=4
то
у:='…‘
Координаты
1
го
поля
>>
2
2
Поля
одного
цвета
Пример
Пример
Пример
входных
входных
входных
данных
данных
данных
Пример
Пример
Пример
выходных
выходных
выходных
данных
данных
K,
L>>-1
5
Точка
лежит
над
прямой
x >> 6
x =c:=3;
5
if
a<=b
then
если
chislo=5
то у:='…‘
присваивается
значение
3?
Пример
входных
данных
Пример
выходных данных
Координаты
2

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

го
поля
>>
2
7
Поля
если chislo=2
222
222
Перевёртыш
Дато у:='…‘
Координаты
5a b c>> 3 4 25– го поля >> 5 4 yРазносторонний
=1

13.

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