Условный оператор

Download Report

Transcript Условный оператор

Организация
программ
разветвляющейся
структуры.
Условный оператор.
© М.Е.Макарова
http://www.uchinfo.com.ua
• На этом занятии мы познакомимся с
реализацией ветвления алгоритмов с
помощью условного оператора.
• Рассмотрим полное и неполное
ветвление.
• Рассмотрим способы ветвления на три
и более ветки.
• Научимся сравнивать текстовые
величины.
В жизни часто приходится принимать
решения
в
зависимости
от
сложившейся ситуации. Если идет
дождь, мы надеваем плащ, если жарко
и солнечно, идем в легкой одежде.
Встречаются
и
более
сложные
положения, когда нужно сделать тот
или иной выбор в зависимости от того,
выполняется или не выполняется
некоторое условие.
Для записи на языке Турбо-Паскаль
разветвляющихся алгоритмов используется
условный оператор
Полная (расширенная)форма оператора IF
If логическое выражение Then
оператор 1
Else
оператор 2;
Пример:
If A<B Then X:=A
Else X:=b:
Пример 1
Составить программу, которая выводит на экран
компьютера пример на умножение двух однозначных
чисел, запрашивает ответ пользователя, проверяет его
и выводит сообщение «Правильно» или «Вы
ошиблись» и правильный результат.
Program Pr6;
Uses Crt;
Var m1, m2, p, otv: integer;
Begin
Randomize;
M1:=random(9)+1;
M2:=random(9)+1;
P:=m1*m2;
Writeln (‘Сколько будет’, m1, ‘ x ’, m2,’ ?’);
Writeln (‘Введите ответ и нажмите <Enter>’)
Readln (otv);
If otv=p Then Writeln (‘Правильно’);
Else Writeln (‘Вы ошиблись ’, m1, ‘ x ’, m2,’ =’,
p);
Readln; End.
Вторая серия команд в условном операторе может отсутствовать.
При этом признак ее начала – служебное слово Else – опускается.
Неполная команда ветвления выглядит так:
If условие Then действие; Здесь при справедливости условия
выполняется действие, а если условие нарушено, то сразу
переходим к оператору, который следует за условным оператором.
Пример 2
Составьте программу, удваивающую
значение целой переменной а, если а>5.
Решение
Если а > 5, то значение а
надо заменить на 2а. В
противном случае (а <= 5)
никаких действий
производить не нужно.
Program Pr2;
Var а : Integer;
Begin
WriteLn (‘Введите число’);
ReadLn (а);
If а >5 Then а := а*2;
WriteLn (‘а =', а);
End.
Использование нескольких команд после слов Then и Else
Выполнив эту программу, вы заметите, что подчеркнутые строки
выполняются вне зависимости от того, какие числа вы ввели. Такая
ошибка связана с тем, что после ключевого слова Then в условном
операторе If выполняется только одна команда, стоящая после него.
Остальные же строки выполняются вне зависимости от условных
операторов, стоящих перед ними.
Чтобы после ключевых слов Then или Else могла выполняться
последовательность операторов, они должны быть заключены в
операторные скобки – ключевые слова Begin и End.
Операторные скобки охватывают фрагмент исходного текста
программы, который необходимо считать одним оператором. В
качестве операторов, используемых в составном операторе,
могут использоваться любые операторы, допустимые в ТурбоПаскале, в том числе условные операторы, а также составные
операторы.
Составной оператор:
Begin
оператор 1;
оператор 2;
…….
оператор n;
End;
Способы ветвления
алгоритма на
несколько рукавов.
Один из способов реализации ветвления на несколько рукавов –
использование вложенных операторов IF
Рассмотрим этот способ на примере:
Программа для нашего примера
примет вид:
Program Pr4;
Var a,x: integer;
Begin
Writeln('Введите x')
Read (x);
If x<0 then a:=x+1
Else
If x<10
Then a := 2*x
Else a := 0;
Writeln (a);
End.
Второй способ реализации ветвления на несколько рукавов –
использование нескольких неполных операторов IF
Пример 5
Составьте программу, определяющую наибольшее
значение переменных X,Y,Z.
Program Pr5;
Var x, y, z, p: integer;
Begin
WriteLn (‘Задайте значения x, y, z’);
ReadLn (x, y, z);
p:=x;
If p<y then p:=y;
If p<z then p:=z;
WriteLn(‘Наибольшее значение =’, p:6);
ReadLn;
End.
Для
упорядочивания
слов
люди
давно
придумали
замечательный способ – алфавитный. Именно так, например,
упорядочены слова в словарях. Будем считать большим из двух
слов то, которое в словаре стоит дальше.
Если первая буква первого слова стоит в алфавите дальше, чем
первая буква второго слова, то второе слово больше первого. Если у
сравниваемых слов первые буквы совпали, то сравниваются вторые
буквы, и т.д.
Сравнение строк на компьютере основано на том, что каждый символ
имеет свой АSСII-код, и при сравнении строк сравниваются коды
составляющих их символов.
Пример 6.
Составить программу, проверяющую правильность пароля
Предположим, что пароль – это слово «груша». Программа
запрашивает у пользователя пароль, сравнивает его с нашим
паролем. Если пользователь ввел правильный пароль, то для него
доступ открыт, а если пароль не правильный, то доступ закрыт.
Program Pr6;
Var parol :string;
Begin
WriteLn (‘Какой пароль?’);
ReadLn (parol);
If parol=‘груша’
then
writeLn (‘Доступ для Вас открыт’)
Else
writeLn (‘Доступ закрыт!!!’);
ReadLn;
End.
Пример 7.
Составить программу, которая предлагает
выбрать правильное направление пути.
Ивану-Царевичу
У Ивана-Царевича есть три варианта дальнейшего пути:
•направо,
•налево,
• вперед.
Program Pr7;
Var p :string;
Begin
WriteLn (‘Куда путь держишь?’);
ReadLn (p);
If p=‘направо’ then writeLn (‘Коня потеряешь’);
If p=‘налево’ then writeLn (‘Голову сложишь’);
If p=‘прямо’ then writeLn (‘Невесту найдешь’);
ReadLn;
End.
Сегодня мы узнали:
Ветвление на три и более
рукава можно
организовывать с помощью
вложенных команд IF,
нескольких неполных команд
IF, а также, комбинируя обе
возможности.
Сравнение строк на компьютере основано на
том, что каждый символ имеет свой АSСII-код,
и при сравнении строк сравниваются коды
составляющих их символов.
Домашние задание
1. Выучить теорию
2. Написать программу, которая проверяет,
делится ли на 3 целое число, введенное с
клавиатуры.
3. Из трех данных чисел выбрать наибольшее.