Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

Формат оператора:

begin

Оператор 1;

Оператор N;

еnd;

5. Условные операторы обеспечивают выполнение или невыполнение некоторого оператора, группы операторов или блока в зависимости от заданных условий. В Паскале используются два условных оператор: If и Case.

Оператор условия If. Может принимать одну из форм:

If условие then оператор_1

else оператор_2; {полная условная конструкция}

If условие then оператор; {неполная условная конструкция}

В первом случае говорят о полном операторе If, а во втором – о неполном операторе If. Условие – это выражение булевского типа. Оно может быть простым или сложным. Сложные условия образуются с помощью логических операций. При записи условия могут использоваться все возможные операции отношения.



В первом случае если условие истинно, то выполняется оператор_1, если условие ложно – оператор_2. Во втором случае если условие истинно, выполняется оператор, если ложно – оператор, следующий за оператором If.

Оператор If может входить в состав другого оператора If. В этом случае говорят о вложенности операторов:

If условие then

If условие then оператор1

else оператор2;

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

Пример:

If ((A> B) and (C< D)) then

If (Z> =X) then Writeln ('Норма')

else Writeln ('Превышение нормы')

else WriteLn ('Недобор');

Оператор выбора Case является обобщением оператора If и позволяет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором, и списка параметров, каждому их которых предшествует список констант выбора (список может состоять и из одной константы). Как и в операторе If, здесь может присутствовать слово Else, имеющее тот же смысл. Формат оператора:

Сase выражение-селектор of

Список_1: оператор_1;

Список_2: оператор_2;

...

Список_N: оператор_N

else оператор

end;

Оператор Case передает управление тому оператору, с одним из значений списка которого совпало значение выражения-селектора. Если ни одно из значений списков не совпадает со значением селектора, то либо такой оператор Case эквивалентен пустому оператору и затем выполняется оператор, следующий за словом Еnd, либо выполняется оператор, следующий за словом Else.

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

Примеры:

Case X of {выражение-селектор целого типа}

1, 2, 3: A: =B+C;

4: A: =B-C;

5..9: A: =B*C

else A: =B/C

end;

Case CH of {выражение-селектор литерного типа}

'A'.. 'z': WriteLn ('Введена латинская буква');

'0'.. '9': WriteLn ('Введена цифра')

end;

Program example1;

{Программирование ветвящихся вычислительных процессов}

{использование вещественных значений }

Uses Crt;

Var

x, y, f, g: Real;

Begin

Clrscr; {Очистка экрана}

WriteLn('Введите значения x, y');

ReadLn (x, y);

WriteLn ('При x=', x: 5: 2, ' y=', y: 5: 2);

If x+y< 0 then

begin

WriteLn ('x+y=', x+y: 5: 2, '< 0');

f: =1/sqrt(x*x+y*y);

g: =x-y;

end

else

If x+y< =5 then

begin

WriteLn ('0< =x+y=', x+y: 5: 2, '< =5');

f: =2*x*y;

g: =2*x+3;

end

else

begin

WriteLn ('x+y=', x+y: 5: 2, '> 5');

f: =1/(x+y);

g: =1/sqrt(x*x+1);

end;

WriteLn ('f=', f: 6: 4);

WriteLn ('g=', g: 6: 4);

ReadLn; {Задержка экрана}

End.

Program example2;

{Программирование ветвящихся вычислительных процессов}

{использование целочисленной арифметики }

Uses Crt;

Var

x, y, f, g: Integer;

Begin

Clrscr; {Очистка экрана}

WriteLn('Введите значения x, y');

ReadLn (x, y);

WriteLn ('При x=', x, ' y=', y);

Case x+y of

-Maxint..-1: begin

WriteLn ('x+y=', x+y, '< 0');

f: =1 div round(sqrt(x*x+y*y));

g: =x-y;

end;

0..5: begin

WriteLn ('0< =x+y=', x+y, '< =5');

f: =2*x*y;

g: =2*x+3;

end;

6..Maxint: begin

WriteLn ('x+y=', x+y, '> 5');

f: =1 div (x+y);

g: =1 div round (sqrt(x*x+1));

end

end;

WriteLn ('f=', f);

WriteLn ('g=', g);

ReadLn; {Задержка экрана}

End.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.