русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

УСЛОВНЫЕ ОПЕРАТОРЫ


Дата добавления: 2015-06-12; просмотров: 1353; Нарушение авторских прав


Условный оператор позволяет проверить некоторое условие и в зависимости от результата выполнить тот или иной оператор или группу операторов.

С помощью условных операторов программируются алгоритмы разветвляющейся структуры. Язык Паскаль допускает использование двух условных операторов: if и case.

 

 

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

Формат:

if<условие>then< оператор1>else< оператор2>;

где if, then, else – зарезервированные слова (обозначают если, то, иначе соответственно);

<условие> - произвольное выражение логического типа;

<оператор1>, <оператор2> - любые операторы языка Паскаль.

 

Условный оператор работает по следующему алгоритму: вначале вычисляется выражение <условие>. Если результат - true (истина), то выполняется <оператор1>, а <оператор2> пропускается. Если результат - false (ложь), наоборот <оператор1> пропускается, а выполняется <оператор2>. На рисунке 3.1 приведена блок-схема условного оператора.

 
 

 


Рис. 3.1

 

Например, для нахождения наибольшего из двух чисел условный оператор запишется следующим образом:

If a>b then max:= a else max:= b;

 

Если требуется выполнить после then или else несколько операторов, они обрамляются операторными скобками begin и end, образуя тем самым составной оператор.

Например,

If a>=0 then begin а:=sqrt(a); Write(‘а=’,a:4:2); end

else Write(‘Нет решения’);

Часть оператора, стоящая после служебного слова else, может отсутствовать. Тогда при значении true условного выражения выполняется <оператор1>, в противном случае этот оператор пропускается.

Формат:

If< условие >then< оператор>;

 

Один оператор if может входить в состав другого оператора if. В этом случае говорят о вложенности операторов. Рассмотрим следующие возможные варианты.



 

Вариант 1.

IfУсловие1then ifУсловие2 thenОператор1elseОператор2

elseОператорЗ;

Например,

If a>b then if a>=0 then write(sqrt(a)) else write(sqr(a))

else write(‘Первое число не наибольшее’);

 

Вариант 2.

ifУсловие1thenОператор1

else ifУсловие2thenОператор2elseОператорЗ;

Например,

If х<2 then y:= x

else if x<3 then y:=2 else y:=-x+5;

 

Вариант 3.

IfУсловие1then ifУсловие2 thenОператор1elseОператор2

else ifУсловие3thenОператор3elseОператор4;

Например,

if a > b then if a > 100 then a:=a+10 else a:=2*a

else if b > 100 then b:=b+10 else b:=2*b;

Вариант 4.

ifУсловие1then ifУсловие2thenОператор1elseОператор2;

 

Например,

If А <20 then if А>=15 then write(‘А в диапазоне 15 - 20’)

else write(‘А вне диапазона 15 - 20’);

В условном операторе логические выражения могут содержать несколько отношений и/или логических переменных, связанных операциями and, or, not. Каждое простое условие в логическом выражении обязательно заключается в скобки.

Например,

if (a+b>c) and (a+c>b) and (b+c>a)

then write('Треугольник с такими сторонами существует')

else write('Треугольник с такими сторонами не существует');

Следует знать:

· в условных операторах точка с запятой не ставится после then и перед else;

· при вложенности операторов каждое else соответствует тому then, которое непосредственно ему предшествует;

· конструкций со степенью вложенности более 2—3 необходимо избегать из-за сложности их анализа при отладке программы;

· в условных операторах часто используют составной оператор begin … end.

 

Пример. Составить алгоритм нахождения корней квадратного уравнения ax2+bx+c=0 в зависимости от коэффициентов а, b и с.

Данный пример рассмотрен в Главе 1. Он реализован с помощью разветвляющейся структуры. Рядом с блок-схемой приводится текст программы.

В разделе описания переменных описаны переменные a, b, c (исходные данные), D (промежуточная величина), x1, x2 (результат) вещественного типа. Если условие D³0 выполняется, необходимо выполнить несколько операторов, поэтому они заключены в операторные скобки, если условие не выполняется, выводится сообщение об отсутствии корней.

    Program Prim1; uses crt; Var a, b, c, D, x1, x2 :real; BEGIN СlrScr; Write('Введите числа a, b, c'); Readln(a, b, c); D:= sqr(b)-4*a*c; If D>=0 then begin x1:=(-b+sqrt(D))/(2*a); x2:=(-b-sqrt(D))/(2*a); Write('x1=', x1:5:2, 'x2=', x2:5:2,); end else Write('Корней нет'); END.

Пример.Даны три числа. Найти наибольшее из них.

Данный пример реализован с помощью двух разветвляющихся структур, поэтому используем два условных оператора, следующих друг за другом.

Три вводимых числа обозначены переменными a, b и c, переменная max служит для хранения максимального значения этих чисел. После выполнения первого условного оператора переменная max принимает одно из двух значений – значение переменной а или b, в зависимости от выполнения условия a>b.

Не следует записывать a:=max или b:=max, т.к. в данном случае переменные а или b получат значения равные нулю (по умолчанию переменная max =0).

Так как необходимо найти максимальное значение из трех чисел, используется второй условный оператор.

 

  Program Prim2; uses crt; Var a, b, c, max : integer; BEGIN СlrScr; Write('Введите числа а, b и с'); Readln(a, b, с); If a>b then max:=a else max:=b; If c>max then max:=c; Write('Наибольшее число', max); END.

Пример.Пусть значение y зависит от значения х.

Рассчитать

 
 
 

 


В программе каждому логическому блоку соответствует условный оператор.

 

Program Prim3;

uses crt;

Var x, y : real;

BEGIN

СlrScr;

Write('Введите число x');

Readln(x);

If x<0 then y:=sqr(x)

else

If x>0 then y:=sqrt(x) else y:=0 ;

Write('Значение y=', y:3:1);

END.

 

 

Оператор выбора Case

 

Обычно при написании программы не рекомендуется использовать многократно вложенные друг в друга условные операторы if — программа становится громоздкой и ее трудно понимать (число уровней вложения не должно превышать двух-трех).

Оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором (selection – выбор альтернативы), и списка параметров, каждому из которых предшествует список констант выбора (список может состоять и из одной константы).

Формат:

Case<выражение-селектор>of

<список1>: <оператор1>;

<список2>: <оператор2>;

<списокN>: <операторN>

else<оператор>

end;

где case, of, else – зарезервированные слова (обозначают случай, из, иначе соответственно);

<выражение-селектор> - выражение порядкового типа (кроме типов Real и String);

<список1>, < список2> - константы того же типа, что и <выражение-селектор>;

<оператор1>, <оператор2> - любые операторы языка Паскаль.

 

Выполнение оператора case начинается с вычисления выражения-селектора. Операторы между begin и end выполняются в том случае, если значение выражения после слова case совпадает с константой из соответствующего списка. Если это не так, то выполняется оператор, идущий после else. Если else отсутствует, выполняется оператор программы, следующий за case.

Например,

· селектор целочисленного типа:

case k of

1: z:=k+10;

2: z:=k+100;

3: z:=k+1000;

end;

· селектор интервального типа;

case k of

1..15: Writeln(‘Число’, k, ‘в диапазоне 1 - 15 ‘);

16..36: Writeln(‘Число’, k, ‘в диапазоне 16 - 36 ‘);

37..55: Writeln(‘Число’, k, ‘в диапазоне 37 - 55 ‘)

else Writeln(‘Число’, k, ‘вне заданных диапазонов ‘);

end;

Следует знать:

· оператор case является обобщением оператора if;

· выражение-селектор должно иметь порядковый тип: чаще всего — integer, реже — char, boolean или один из пользовательских типов;

· список констант выбора может состоять из произвольного количества значений, отделенных друг от друга запятыми, или диапазонов, границы которых записываются двумя константами через разграничитель "..";

· диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или других альтернативах;

· константы выбора внутри одного оператора выбора должны быть различны, в противном случае выполняется первая "подходящая" ветвь (одинаковые константы выбора разрешается использовать в разных операторах выбора);

· после последнего элемента списка выбора (перед else) точка с запятой не ставится.

 

Пример. По введенному номеру месяца вывести название времени года.

Program God;

uses crt;

var m : integer;

begin Write(‘Введите номер месяца ‘); Readln(m);

case m of

12, 1, 2 : Writeln(‘Зима ‘);

3..5 : Writeln(‘Весна ‘);

6..8 : Writeln(‘Лето‘);

9..11 :Writeln(‘Осень ‘)

else Writeln(‘Введите номер месяца ‘)

end;

end.

Сообщение о названии времени года будет выведено на экран лишь в том случае, если пользователем введен номер месяца, входящий в список констант. В противном случае, запрашивается ввод нового значения месяца.



<== предыдущая лекция | следующая лекция ==>
ПУСТОЙ ОПЕРАТОР | ОПЕРАТОРЫ ПОВТОРА


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.