ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ
НАЧАЛА ПРОГРАММИРОВАНИЯ
Ключевые слова
- условный оператор
- сокращённая форма условного оператора
- составной оператор
- вложенные ветвления
Общий вид условного оператора
Полная форма условного оператора:
if then else
Сокращённая форма условного оператора:
if then
!
Перед else знак «;» не ставится.
Условия - логические выражения
Простые
Сложные
Операции
отношений
Логические
операции
'); readln (a, b); write ('Введите x'); readln (x); if (x=a) and (x writeln ('Точка принадлежит отрезку') else writeln ('Точка не принадлежит отрезку') end . a, b, x (x=a) and (xнет да НЕТ ДА " width="640"
Условный оператор
program n_9;
var x, a, b: real;
begin
writeln ('Определение принадлежности
точки отрезку');
write ('Введите а, b');
readln (a, b);
write ('Введите x');
readln (x);
if (x=a) and (x
writeln ('Точка принадлежит отрезку')
else writeln ('Точка не принадлежит отрезку')
end .
a, b, x
(x=a) and (x
нет
да
НЕТ
ДА
'); readln (a, b, c); y:=a; if (by) then y:=b; if (cy) then y:=c; writeln ('y=', y) end. Y:=A нет да BY Y:=B да нет CY Y:=C " width="640"
Сокращённая форма условного оператора
program n_10;
var y, a, b, c: integer;
begin
writeln ('Нахождение наибольшей из трёх величин');
write ('Введите а, b, с');
readln (a, b, c);
y:=a;
if (by) then y:=b;
if (cy) then y:=c;
writeln ('y=', y)
end.
Y:=A
нет
да
BY
Y:=B
да
нет
CY
Y:=C
Составной оператор
В условном операторе и после then , и после else
можно использовать только один оператор .
Если в условном операторе после then или после else
нужно выполнить несколько операторов , то
используют составной оператор – конструкцию вида:
begin end
0 x : =-b/2/a да Вывод «Корень уравнения х=», х х1:= (-b+sqrt(d) ) /2/a х 2 := (-b-sqrt(d) ) /2/a Вывод «Корни уравнения: х1=», х1, «х2=», х2 Конец " width="640"
Блок-схема решения КВУР
Начало
Введите коэффициенты a, b, c
d : =b*b-4*a*c
нет
да
d
да
нет
d : = 0
Вывод
«Корней нет»
d0
x : =-b/2/a
да
Вывод
«Корень уравнения х=», х
х1:= (-b+sqrt(d) ) /2/a
х 2 := (-b-sqrt(d) ) /2/a
Вывод
«Корни уравнения:
х1=», х1, «х2=», х2
Конец
'); readln (a, b, c); d:=b*b-4*a*c; if dthen writeln ('Корней нет'); if d=0 then begin x:=-b/2/a; writeln ('Корень уравнения x =', x :9:3) end; if d0 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. " width="640"
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 dthen writeln ('Корней нет');
if d=0 then
begin
x:=-b/2/a;
writeln ('Корень уравнения x =', x :9:3)
end;
if d0 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.
Вложенные ветвления
Возможна следующая конструкция:
if then
if then
else
else
!
else всегда относится к ближайшему оператору if
'); readln (a, b); if a0 then begin x:=-b/a; writeln ( 'Корень уравнения x=', x:9:3) end else if b0 then writeln ('Корней нет') else writeln ( 'x – любое число'); end . Любое число Корней нет " width="640"
Решение линейного уравнения
Список данных
a, b, x - вещ
a, b
да
нет
a 0
да
нет
b0
x:= - b/a
program n_12;
var a, b, x: real;
begin
writeln ('Решение линейного уравнения');
write ('Введите коэффициенты a , b ');
readln (a, b);
if a0 then
begin
x:=-b/a;
writeln ( 'Корень уравнения x=', x:9:3)
end
else if b0 then writeln ('Корней нет')
else writeln ( 'x – любое число');
end .
Любое число
Корней нет
Самое главное
При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор:
if then else
Для записи неполных ветвлений используется сокращённый условный оператор:
if then
Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид:
begin end .
5 then c:=2 else c:=3 Какое значение имеет переменная а , если в результате выполнения условного оператора переменной с присваивается значение 3? Напишите программу, которая производит обмен значений переменных x и y , если x больше y . Используя составной оператор, упростите следующий фрагмент программы: if ab then c:=1; if ab then d:=2; if aif a Имеются данные о количестве полных лет трёх призёров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призёра. Что такое составной оператор? Для чего он используется в условном операторе? Является ли условным оператором последовательность символов? а) if xб) if x=y then x:=0; y:=0 else write (z) в) if x есть ли среди цифр заданного целого трёхзначного числа одинаковые ; Даны две точки в плоской прямоугольной системе координат. Напишите программу, определяющую, которая из точек находится ближе к началу координат. -1 при x 0 при x =0 1 при x 0 Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а ( а - случайное число, меньшее 100). Ответ пользователя проверяется и комментируется. является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево. Пример входных данных k, 1-1 5 xa, ya 1 2 Пример выходных данных Точка лежит под прямой k, 1-1 5 xa, ya 1 10 k, 1-1 5 xa, ya 1 4 Точка лежит над прямой Точка лежит на прямой Как на языке Паскаль записывается полное и неполное ветвление? Пример входных данных x 5 y 6 Пример выходных данных x = 5 y = 6 x 6 y 5 x = 5 y = 6 y = Пример входных данных Координаты 1 – го поля 2 2 Координаты 2 – го поля 3 3 Пример выходных данных Координаты 1 – го поля 2 3 Координаты 2 – го поля 3 3 Поля одного цвета Координаты 1 – го поля 2 7 Координаты 2 – го поля 5 4 Поля разного цвета Поля одного цвета Пример входных данных a b c 1 2 1 Пример выходных данных a b c 2 2 2 Не существует Равносторонний a b c 20 20 30 a b c 3 4 5 Равнобедренный Разносторонний Пример входных данных Пример входных данных Пример входных данных 123 123 Координаты 1-й точки 1, 2 Координаты 2-й точки 3, 4 Пример выходных данных Пример выходных данных Пример выходных данных 121 121 Нет Первая точка ближе Нет Перевёртыш 222 Да 222 Да Перевёртыш Пример входных данных -5 Пример выходных данных 0 y = - 1 5 y = 0 y = 1 б) на окружности x 2 + y 2 = r 2 , над ней или под ней. Примеры входных данных и соответствующих им выходных данных разработайте самостоятельно. " width="640"
Вопросы и задания
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8.
Напишите программу, которая по введённым координатам двух полей ( k, l ) и ( m, n ) определяет, являются ли эти поля полями одного цвета.
Дано трёхзначное число.
Напишите программу, которая определяет:
Напишите программу, определяющую, лежит ли точка
А(ха, ya ):
а) на прямой y = kx + 1, над ней или под ней;
Напишите программу, вычисляющую значение функции:
Составьте программу для решения задачи:
Известно, что 31 января 2011 года приходится на понедельник. Какие значения должны быть присвоены литерной переменной y в алгоритме, определяющем день недели для любого числа ( chislo ) января 2011 года?
chislo:= chislo mod 7
если chislo=3 то у:='…‘
если chislo=4 то у:='…‘
если chislo=5 то у:='…‘
если chislo=6 то у:='…‘
если chislo=0 то у:='…‘
если chislo=1 то у:='…‘
если chislo=2 то у:='…‘
Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон.
Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний).
Дан условный оператор:
If athen c:=1
else if a5 then c:=2
else c:=3
Какое значение имеет переменная а , если в результате выполнения условного оператора переменной с присваивается значение 3?
Напишите программу, которая производит обмен
значений переменных x и y , если x больше y .
Используя составной оператор, упростите следующий фрагмент программы:
if ab then c:=1;
if ab then d:=2;
if a
if a
Имеются данные о количестве полных лет трёх призёров спартакиады.
Напишите программу, выбирающую и выводящую возраст самого младшего призёра.
Что такое составной оператор?
Для чего он используется в условном операторе?
Является ли условным оператором последовательность символов?
а) if x
б) if x=y then x:=0; y:=0 else write (z)
в) if x
есть ли среди цифр заданного целого трёхзначного числа одинаковые ;
Даны две точки в плоской прямоугольной системе координат. Напишите программу, определяющую, которая из точек находится ближе к началу координат.
-1 при x
0 при x =0
1 при x 0
Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а ( а - случайное число, меньшее 100).
Ответ пользователя проверяется и комментируется.
является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.
Пример входных данных
k, 1-1 5
xa, ya 1 2
Пример выходных данных
Точка лежит под прямой
k, 1-1 5
xa, ya 1 10
k, 1-1 5
xa, ya 1 4
Точка лежит над прямой
Точка лежит на прямой
Как на языке Паскаль записывается полное и неполное
ветвление?
Пример входных данных
x 5
y 6
Пример выходных данных
x = 5
y = 6
x 6
y 5
x = 5
y = 6
y =
Пример входных данных
Координаты 1 – го поля 2 2
Координаты 2 – го поля 3 3
Пример выходных данных
Координаты 1 – го поля 2 3
Координаты 2 – го поля 3 3
Поля одного цвета
Координаты 1 – го поля 2 7
Координаты 2 – го поля 5 4
Поля разного цвета
Поля одного цвета
Пример входных данных
a b c 1 2 1
Пример выходных данных
a b c 2 2 2
Не существует
Равносторонний
a b c 20 20 30
a b c 3 4 5
Равнобедренный
Разносторонний
Пример входных данных
Пример входных данных
Пример входных данных
123
123
Координаты 1-й точки 1, 2
Координаты 2-й точки 3, 4
Пример выходных данных
Пример выходных данных
Пример выходных данных
121
121
Нет
Первая точка ближе
Нет
Перевёртыш
222
Да
222
Да
Перевёртыш
Пример входных данных
-5
Пример выходных данных
0
y = - 1
5
y = 0
y = 1
б) на окружности x 2 + y 2 = r 2 , над ней или под ней.
Примеры входных данных и соответствующих им
выходных данных разработайте самостоятельно.
Опорный конспект
Условный оператор
Полная форма
if then else
Неполная форма
if then
Составной оператор
begin en d