Организация программ разветвляющейся структуры. Условный оператор.
Для записи на языке Турбо-Паскаль разветвляющихся алгоритмов используется условный оператор
Полная (расширенная)форма оператора IF
If логическое выражение Then
оператор 1
Else
оператор 2;
Пример:
If 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 (‘ Введите ответ и нажмите ’)
Readln (otv);
If otv=p Then Writeln (‘ Правильно ’);
Else Writeln (‘ Вы ошиблись ’, m1, ‘ x ’, m2,’ =’, p);
Readln; End.
Вторая серия команд в условном операторе может отсутствовать. При этом признак ее начала – служебное слово Else – опускается.
Неполная команда ветвления выглядит так:
If условие Then действие; Здесь при справедливости условия выполняется действие, а если условие нарушено, то сразу переходим к оператору, который следует за условным оператором.
5 Then а : = а*2; WriteLn (‘а =', а); End. Решение Если а 5, то значение а надо заменить на 2а. В противном случае (а
Пример 2
Program Pr2;
Var а : Integer;
Begin
WriteLn (‘Введите число’);
ReadLn (а);
If а 5 Then а : = а*2;
WriteLn (‘а =', а);
End.
Решение
Если а 5, то значение а надо заменить на 2а. В противном случае (а
Использование нескольких команд после слов Then и Else
Выполнив эту программу, вы заметите, что подчеркнутые строки выполняются вне зависимости от того, какие числа вы ввели. Такая ошибка связана с тем, что после ключевого слова Then в условном операторе If выполняется только одна команда, стоящая после него. Остальные же строки выполняются вне зависимости от условных операторов, стоящих перед ними.
Чтобы после ключевых слов Then или Else могла выполняться последовательность операторов, они должны быть заключены в операторные скобки – ключевые слова Begin и End . Операторные скобки охватывают фрагмент исходного текста программы, который необходимо считать одним оператором. В качестве операторов, используемых в составном операторе, могут использоваться любые операторы, допустимые в Турбо-Паскале, в том числе условные операторы, а также составные операторы.
Составной оператор:
Begin
оператор 1;
оператор 2 ;
…… .
оператор n ;
End;
Способы ветвления алгоритма на несколько рукавов.
Один из способов реализации ветвления на несколько рукавов – использование вложенных операторов IF
Рассмотрим этот способ на примере:
Программа для нашего примера
примет вид:
Program P r4 ;
Var a,x : integer ;
Begin
Writeln('Введите x')
Read (x);
If x
Else
I f x
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 pthen p:=y;
If pthen p:=z;
WriteLn (‘ Наибольшее значение = ’, p:6);
ReadLn;
End.
Пример 6.
Составить программу, проверяющую правильность пароля
Предположим, что пароль – это слово «груша». Программа запрашивает у пользователя пароль, сравнивает его с нашим паролем. Если пользователь ввел правильный пароль, то для него доступ открыт, а если пароль не правильный, то доступ закрыт.
Program Pr6;
Var parol :string;
Begin
WriteLn (‘ Какой пароль? ’);
ReadLn (parol);
If parol=‘ груша ’
then
writeLn (‘ Доступ для Вас открыт ’)
Else
writeLn (‘ Доступ закрыт!!! ’);
ReadLn;
End .
Пример 7.
Составить программу, которая предлагает Ивану-Царевичу выбрать правильное направление пути.
У Ивана-Царевича есть три варианта дальнейшего пути:
Program Pr 7 ;
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-код, и при сравнении строк сравниваются коды составляющих их символов.
- Написать программу, которая проверяет, делится ли на 3 целое число, введенное с клавиатуры.
- Написать программу, которая вычисляет оптимальный вес пользователя, сравнивает его с реальным и выдает рекомендации о необходимости поправиться или похудеть. Оптимальный вес вычисляется по формуле: рост (в сантиметрах) – 100.
- Из трех данных чисел выбрать наибольшее.