670.00K
Category: programmingprogramming

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

1.

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

2.

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

3.

Условный оператор
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)
нет
НЕТ

4.

Неполный условный оператор
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
нет
нет

5.

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

6.

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

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 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.

8.

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

9.

Решение линейного уравнения
Список данных
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
Любое число

10.

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

11.

Вопросы и задания
Поле
шахматной
доски
определяется
парой
Напишите
программу,
определяющую,
лежитпрограмму,
ли
точка
Напишите
программу,
Дано
трёхзначное
вычисляющую
число.
значение
Составьте
Даны
три
программу
натуральных
для
числа.
решения
Напишите
задачи:
Дан
условный
оператор:
Напишите
программу,
которая
производит
обмен
натуральных
А(ха,
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

12.

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