Transcript Document

Знание - сокровище,
которое повсюду следует за тем,
кто им обладает.
(китайская пословица)
Для организации выбора действий в
языке Паскаль имеются две
алгоритмические конструкции:
• ВЕТВЛЕНИЕ – условный оператор IF;
• ВЫБОР – условный оператор CASE.
2
Программирование ветвлений
на Паскале
Оператор ветвления IF
3
• В языке Паскаль имеется оператор
ветвления. Другое его название —
условный оператор.
4
Алгоритмы с ветвящейся структурой
Ветвление
является
структурной
командой. Его исполнение происходит в
несколько
шагов:
проверка
условия
(выполнение
логического
выражения)
и
выполнение команд на одной из ветвей «да»
или «нет».
Алгоритмы с ветвящейся структурой могут
быть с полным ветвлением, неполным
ветвлением,
с
последовательным
и
вложенным ветвлениями.
5
Полное ветвление
начало
алг БИД1
вещ А, В, С
нач ввод А, В
если А>B
то C:A
иначе C:B
кв
вывод С
кон
ввод А, В
да
A>В
С := А
нет
С := В
вывод С
конец
БИД – «Больше из двух»
6
Неполное ветвление
алг БИД2
вещ А, В, С
нач ввод А, В
C:A
если B>A
то C:B
вывод С
кон
начало
ввод А, В
С := А
да
B>A
нет
С := В
вывод С
конец
БИД – «Больше из двух»
7
Последовательное ветвление
алг БИТ1
вещ А, В, С, D
нач ввод А, В, C
если A>B
то D:A
иначе D:B
кв
если С>D
то D:C
кв
вывод D
кон
начало
ввод А, В, С
да
A>В
D := А
да
нет
D := В
C>D
нет
D := C
вывод D
конец
БИТ – «Больше из трех»
8
Вложенное ветвление
начало
ввод А, В, С
да
да
D := А
A>C
нет
A>В
нет
да
D := C
D := В
вывод D
конец
9
B>C
нет
D := C
Оператор ветвления IF в общем виде
Оператор IF предназначен для выбора к исполнению одного
из возможных действий (операторов) в зависимости от
некоторого условия.
IF <условие> THEN <действие>;
(неполное ветвление)
IF <условие> THEN <действие 1> ELSE <действие 2>;
(полное ветвление)
Здесь if — «если», then — «то», else — «иначе».
10
Пример 1
Нахождение наибольшего из двух заданных чисел
Program max2;
var A,B: integer;
Begin
writeln(' НАХОЖДЕНИЕ МАКСИМАЛЬНОГО ИЗ ДВУХ
ЦЕЛЫХ ЧИСЕЛ ':50); writeln;
write('Первое число = '); readln(A);
write('Второе число = '); readln(B);
write('Максимальное из двух чисел ');
if A>B then writeln(A)
else writeln(B);
end.
11
Выполнение условного оператора
начинается с вычисления значения
логического выражения,
записанного в условии.
12
Оператор ветвления на Паскале
Формат полного оператора ветвления
следующий:
• if <логическое выражение> then
<оператор1> else <оператор2>
13
Условия записываются, как правило, в виде
логических
выражений.
Простой
формой
логического
выражения
является
операция отношения.
В Паскале допускаются все виды отношений:
- больше;
 < - меньше;
 = - равно;
 <= - меньше или равно;
 >= - больше или равно;
 <> - не равно.
>
14
Условие – логическое выражение
Простое
Сложное
равенство или
неравенство
составляется из
простых с помощью
логических операций
Операции отношения:
Логические операции:
=, <>, >, <, >=, <=, div,
mod
not  and  or
15
Сложные логические выражения
Если идентификация проводится по одному
признаку для нескольких элементов, то несколько
условий связываются служебным словом "or",
например:
If (a > 90) or (b > 90) or (c > 90)
then writeln ( 'Треугольник - тупоугольный' );
16
Сложные логические выражения
Если идентификация проводится по нескольким
признакам, число которых равно числу элементов, то
несколько условий связываются служебным словом
"and", например:
If (a < 90) and (b < 90) and (c < 90)
then writeln('Треугольник - остроугольный');
17
Сложные логические выражения
(вложенный условный оператор)
Если имя объекта составное, то добавляются
признаки для идентификации второй части имени и
применяются вложенные условные операторы,
например, для равнобедренного треугольника:
If (a < 90) and (b < 90) and (c < 90) then
If (a=b) or (b=c) or (a=c)
then writeln('Треугольник - остроугольный и
равнобедренный')
else writeln('Треугольник - остроугольный');
18
Пример 2
Нахождение наибольшего из трех заданных чисел
• Использованы три последовательных неполных
ветвления.
• Условия ветвлений представляют собой сложные
логические выражения, включающие логическую
операцию AND (и).
• ВНИМАНИЕ! Отношения, связываемые логическими
операциями заключаются в скобки
• В Паскале присутствуют три основные логические
операции:
AND –И (конъюнкция);
OR – ИЛИ (дизъюнкция);
NOT – НЕ (отрицание).
19
Пример 2
Нахождение наибольшего из трех заданных чисел
Program max3;
var A,B,C,M :integer;
begin
writeln(' НАХОЖДЕНИЕ МАКСИМАЛЬНОГО ИЗ
ТРЕХ ЦЕЛЫХ ЧИСЕЛ ':50); writeln;
write('Первое число = '); readln(A);
write('Второе число = '); readln(B);
write('Третье число = '); readln(C);
if (A>=B) and (A>=C) then M:=A;
If (B>=A) and (B>=C) then M:=B;
if (C>=A) and (C>=B) then M:=C;
writeln('Максимальное из тpех чисел ',M);
end.
20
• Та же задача с вложенными ветвлениями
21
21
Вложенные условные операторы
IF условие 1 THEN
Оператор 1
ELSE IF условие 2 THEN
Оператор 2;
Надо помнить!!!
Условный оператор можно вставить:
1. После слова else;
2. После слова then;
22
23
Алгоритмы с ветвлением
IF условие THEN оператор
• Простое или составное
логическое выражение
• Логическая переменная
Простой или
составной
24
Пример 4 (оператор ветвления с простым условием)
{
Y
Вычислит ь
AB
A  B2
Блок-схема
Да
Y
AB
Нет
A>B
Y  A  B2
Вывод Y
если
А B
в ост альн. случаях
Язык Паскаль
Var a, b, y: Real;
Begin
Write(‘a=‘);Readln(a);
Write(‘b=‘);Readln(b);
If a > b Then
y := Sqrt(a) + b
Else
y := a + Sqr(b);
Write(‘y=‘, y:6:2);
Readln
End.
25
Составной оператор
Представляет собой последовательность
операторов, выполняемых в том порядке, в
котором они записаны в программе. Его схема:
Begin
Оператор_1;
Оператор_2;
…
Оператор_N
End;
26
Пример 3 (составной оператор)
Вычислить значение функции Y=sinX
для положительных аргументов
Блок-схема
x>0
y:= sin(x)
Вывод y
Язык Паскаль
Var x, y: Real;
Begin
Write(‘x=‘);Readln(x);
If x > 0 Then
Begin
y := Sin(x);
Write(‘y=‘, y:4:2);
End;
End.
27
Пример 5
Решить квадратное уравнение
с заданными коэффициентами А, В, С
ax  bx  c  0
2
28
Var a, b, c, x1, x2, d, x: Real;
Begin
Write(‘a=‘);Readln(a); Write(‘b=‘);Readln(b); Write(‘c=‘); Readln(c);
If a = 0 Then
Write(‘Уравнение не является квадратным’)
Else Begin
d := b*b - 4 * a * c;
If d > 0 Then Begin x1 := (-b - Sqrt(d)) / (2 * a);
x2 := (-b + Sqrt(d)) / (2 * a);
Write(‘х1=‘, x1:5:2, ‘ х2=‘, x2:5:2);
End;
If d = 0 Then Begin
x := -b / (2 * a);
Одно полное ветвление
Write(‘х=’, x);
с составным
End;
оператором и три
if d < 0 Then Write(‘Решений нет’);
вложенных неполных
End;
ветвления
End.
29
Пример 6
Определить, является ли введенное число –
четным?
30
Var a : Integer;
Begin
Write(‘a=‘); Readln(a);
If a Mod 2 = 0 Then
Writeln(‘число четное’)
Else
Writeln(‘число нечетное’);
Readln
End.
31
Пример 7
Определить, является ли введенное число –
трехзначным?
32
Var a: Integer;
Begin
Write(‘a=‘); Readln(a);
If (a >= 100) And (a <= 999) Then
Write(‘число трехзначное’)
Else
Write(‘число трехзначное’);
End.
33
да
1
Я понял предназначение оператора ветвления If
2
Я понял, что такое неполное ветвление
3
Я понял, что такое полное ветвление
4
Я понял, что является простой формой логического выражения
5
Я понял, что является сложной формой логического выражения
6
Я успешно справился с практическим заданием 2 или
я понял, как составить программу к данному заданию 2
7
Я успешно справился с практическим заданием 3 или
я понял, как составить программу к данному заданию 3
8
Я успешно справился с практическим заданием 4 или
я понял, как составить программу к данному заданию 4
В
Ы
В
О
д
Данная тема оказалась для меня сложной
Мне понравилось составлять и запускать программы
У меня получилось составлять программы
Мне надо дополнительно поработать с теорией
Мне надо дополнительно поработать с практикой
Мне потребуется помощь учителя
Мне достаточно помощи одноклассника
нет
Не совсем