рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Составной оператор

Составной оператор - раздел Программирование, Оглавление Операторы Языка Паскаль. 1 Оператор Присваивания...

Оглавление

Операторы языка Паскаль. 1

Оператор присваивания. 1

Оператор перехода. 1

Пустой оператор. 2

Составной оператор. 2

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

Оператор выбора. 3

Операции отношения и логические операции. 3

Контрольные вопросы.. 4

Примеры алгоритмов линейной и разветвляющейся структур. 4

Комбинированный урок №5

Тема:Условный оператор. Оператор выбора. Логические операции в Паскале, таблица истинности, основные законы алгебры логики.

Цель: формирование знаний о форматах операторов If, Case, навыков применения операторов. Примеры использования операторов.

Операторы языка Паскаль

Оператор присваивания

Наиболее простым и часто используемым оператором языка является оператор присваивания:

<имя переменной> : = <выражение>;

Пример:

Y := Abs(x) -3.5;

Min := M Div N;

Y:=Sqrt(Exp(x)) + 2 * Sqr(x) * Sin(x/2) - Exp(5*Ln(x));

В операторах присваивания переменная и выражение должны иметь один и тот же тип, а для переменных интервального типа - одно и то же подмножество значений. Нельзя присваивать целочисленным переменным выражение типа Real. Однако разрешается присваивать переменной типа Real выражение целочисленного типа.

В логическом операторе присваивания слева от знака присваивания указывается переменная логического типа (boolean), а справа дается логическое выражение, имеющее значение True (правда) или False (ложь):

Пример:

D:=True;

B:=(A>C) AND (D<>0);

В символьном и строковом операторе присваивания слева от знака стоит переменная типа Char или String, а справа - символ, строка символов, либо символьное или строковое выражение:

Пример:

SYM:='A'; Alpha:=SUM;

Str1:='Turbo-'; Str2:='Pascal'; Str:=Str1+Str2.

Оператор перехода

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

GOTO <метка>;

где <метка> - это целое число без знака или идентификатор, обязательно описанный в разделе описания меток (LABEL).

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

< метка> :[<метка>:...] <оператор>;

Оператор GOTO не рекомендуется использовать при программи­ровании, так как это существенно усложняет отладку и тестирование программы, тем более что остальных управляющих операторов языка вполне достаточно для реализации любого алгоритма.

Пример:

Program Primer;

LABEL 25;

VAR N,S:Real;

Begin

Readln(S);

Readln(N);

IF N<0 THEN begin S:=N+2; GOTO 25 end;

25: Writeln('S= ',S:6:2)

End.

Пустой оператор

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

Пример:

.................

GOTO 5;

.................

End.

Составной оператор

При написании программ на Паскале часто требуется, чтобы в определенном месте несколько операторов условно представлялись как один оператор. Для этого используется составной оператор, который объединяет последовательность (цепочку) операторов в единый оператор путем обрамления этой последовательности операторными скобками - словами "begin" и "end". Внутри операторных скобок операторы отделяются друг от друга знаком ";". Выполнение составного оператора сводится к последовательному - в порядке их написания - выполнению входящих в него операторов:

Пример:

begin i:=0; j:=0 end;

Begin

y:=x/2;

x:=x+h;

Begin

Sym:='A';Str:='Строка'

End

end;

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

Условный оператор используется для программирования развил­ки, если условие сформулировано как логическое выражение.

IF <логическое выражение> THEN<оператор 1>

[ ELSE <оператор 2>] ;

<следующий оператор >;

Оператор выполняется таким образом: если результат вычисления логического выражения TRUE, то выполняется <оператор 1>, затем <следующий оператор >; если - FALSE, то выполняется <оператор 2>, затем <следующий оператор>. Операторы 1 и 2 могут быть простым или составным оператором. Если часть оператора, начинающаяся ELSE, от­сутствует, то при логическом выражении равным FALSE, будет выпол­няться <следующий оператор>. При вложенности условных операторов ELSE всегда относится к ближайшему предшествующему IF. Следует избегать большой глубины вложенности условных операторов, так как при этом теряется наглядность и возможно появление ошибок.

Пример: ………….

IF A > 0 THEN P := P + 1

ELSE

IF A < 0 THEN O := O + 1

ELSE N := N + 1 ;

……….

IF A > 0 THEN

BEGIN

S := S+ A ; K := K + 1

END ;

Примеры полных условных операторов:

IFx<0THENi:=i+1ELSEj:=j+1;

IF(x<y)AND(x<>0)THENbegin x:=y/x; y:=y+k endELSEbegin x:=x+0.01; y:=y-k end;

Примеры использования условного оператора в сокращенной форме:

IF x>y THEN Max:=x;

IF x<>0 THEN begin a:=y/x; Writeln('A= ', a:6:2) end;

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

Оператор выбора CASE может быть использован вместо услов­ного оператора, если требуется сделать выбор более, чем из двух воз­можностей.

CASE <селекторное выражение> OF

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

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

…………..

<меткаN> : <операторN>

[ ELSE <оператор>]

END;

Селекторное выражение (селектор, переключатель) и метки-константы (метки варианта, метки выбора) должны иметь один и тот же простой тип (кроме вещественного). Метки-константы в отличие от ме­ток программы не требуется описывать в разделе описания меток. Но на них нельзя ссылаться в операторе GOTO. Метки варианта могут быть перечисляемого и интервального типа.

Оператор выбора выполняется следующим образом. Сначала вы­числяется селекторное выражение; затем выполняется оператор, метка варианта которого равна текущему значению селектора; после этого происходит выход из оператора CASE на следующий оператор. Если значение селектора не совпадает ни с одной из меток варианта, будет выполнен оператор после ELSE. Если ветвь ELSE отсутствует, то управление передается следующему за CASE оператору.

Пример: Вычислено значение К. Если К=0, то Z= ln x, при K=1 Z=ln x , при K=2 Z=sin x, при K=3 Z=cos x, в остальных случаях Z=0.

………..

CASE K OF

0: Z := LN(X) ;

1: Z := EXP(X) ;

2: Z := SIN(X) ;

3: Z := COS(X)

ELSE

Z := 0 END ; ...

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

В следующем примере переменная OTVET получает значение YES или NO в зависимости от введенного значения символьной пере­менной V. Здесь метки варианта задаются перечислением.

VAR V CHAR;

OTVET : STRING;

………….

CASE V OF

'D', 'd', 'Д', 'д' : OTVET := 'YES';

'N', 'n', 'Н', 'н' : OTVET := 'NO'

ELSE

OTVET := ' '

END; .

В следующем примере метки выбора заданы интервалом.

VAR V CHAR;

OTVET : STRING;

………….

CASE V OF

'A' . . 'Z','a' . . 'z' : OTVET := 'буква';

'0' . . '9' : OTVET := 'цифра'

ELSE

OTVET := 'специальный символ'

END;

Операции отношения и логические операции

Операции отношения позволяют сравнивать 2 значения, результатом сравнения являются данные логического (boolean) типа, а именно -правда или ложь (true илиfalse).

В Паскале имеются следующие операции отношения:

Равно

Lt;> не равно

Lt; меньше

Gt; больше

Lt;= меньше или равно

Gt;= больше или равно

Построенные с помощью операций отношения простые пары сравнений типа A>B или С=3.14 могут объединяться в более сложные логические выражения с… Логические операции имеют приоритет (старшинство) над операциями отношения и…

Контрольные вопросы

1. Опишите формат оператора безусловного перехода. Назначение. Примеры.

2. Опишите формат пустого оператора. Назначение. Примеры.

3. Опишите формат составного оператора. Назначение. Примеры.

4. Опишите формат условного оператора. Примеры полной и сокращенной формы применения оператора.

5. Опишите формат оператора выбора. Назначение. Примеры.

6. Перечислите операции отношения. Какое значение принимает результат выполнения операции?

7. Перечислите логические операции. Приведите примеры.

Примеры алгоритмов линейной и разветвляющейся структур

 

Пример 1. Алгоритм, запрашивающий имя и затем приветствующий его обладателя.

 

Данные Результат
Имя = "Тимур" "Привет, Тимур!"

 

Program Hello;Var Name: String; {Описание переменной Name строкового типа}BEGIN Write('Как тебя зовут ? '); {Вывод на экран текста вопроса} ReadLn(Name); {Ввод c клавиатуры имени} WriteLn('Привет, ', Name, '!'); {Вывод на экран приветствия} ReadLnEND.

Здесь последний оператор ReadLn позволяет видеть на экране результаты работы программы, пока не будет нажата клавиша <Enter>.

 

Результаты работы Pascal-программы

 

Как тебя зовут ? Тимур <Enter> Привет, Тимур !

 

Пример 2. Определить объём и площадь боковой поверхности цилиндра с заданными радиусом основания R и высотой H.

 

Данные Результат
R = 1 H = 1 V = 3.14 S = 6.28
       

 

Program Cylinder; Uses Crt; {Подключение библиотеки Crt} Var R, {радиус основания цилиндра} H, {высота цилиндра } V, {объем цилиндра } S: Real; {площадь боковой поверхности цилиндра}BEGIN ClrScr; {Вызов из библиотеки Crt процедуры очистки экрана} Write('Введите высоту цилиндра : '); ReadLn(H); Write('Введите радиус основания : '); ReadLn(R); V := Pi * R * R * H; S := 2 * Pi * R * H; WriteLn; WriteLn('Объем цилиндра = ', V : 5 : 2); {Здесь 5 - общее количество позиций, занимаемых переменной V при выводе, а 2 - количество позиций в дробной части значения V} WriteLn('Площадь боковой поверхности = ', S : 5 : 2); ReadLn END.

Пример 3. Даны три точки на плоскости. Определить, какая из них ближе к началу координат.

Таблица - Система тестов

Номер теста Данные Результат
xA yA xB yB xC yC Otvet
-1 "Это точка A"
-1 "Это точка B"
-1 "Это точка C"/TR>
Program Points; Uses Crt; Var xA, yA, xB, yB, xC, yC, DistA, DistB, DistC : Real;BEGIN ClrScr; WriteLn('Введите координаты точки А:'); Write('x = '); ReadLn(xA); Write('y = '); ReadLn(yA); WriteLn('Введите координаты точки B:'); Write('x = '); ReadLn(xB); Write('y = '); ReadLn(yB); WriteLn('Введите координаты точки C:'); Write('x = '); ReadLn(xC); Write('y = '); ReadLn(yC); DistA := sqrt(sqr(xA) + sqr(yA)); DistB := sqrt(sqr(xB) + sqr(yB)); DistC := sqrt(sqr(xC) + sqr(yC)); WriteLn; Write('Ответ : '); If (DistA < DistB) and (DistA < DistC) then WriteLn( 'Это точка А.') else If (DistB < DistC) then WriteLn('Это точка B.') else WriteLn('Это точка C.'); ReadLnEND.

Пример 4. Найти произведение цифр заданного целого четырехзначного числа.

 

Таблица - Система тестов

Номер теста Проверяемый случай Число Результат
Число положительное P = 24
Число отрицательное -1245 P = 40

 

Program DigitsProduct;Uses Crt;Var Number, {заданное число} i, j, k, l, {цифры числа} P : Integer; {произведение цифр}BEGIN ClrScr; Write( 'Введите четырехзначное число : ' ); ReadLn(Number); Number:=Abs(Number); Write( 'Цифры числа ' , Number , ' : ' ); i := Number div 1000; Write(i:3); {первая цифра} j := Number div 100 mod 10; Write(j:3); {вторая цифра} k := Number div 10 mod 10; Write(k:3); {третья цифра} l := Number mod 10; WriteLn(l:3); {четвертая цифра} P := i * j * k * l ; WriteLn( 'О т в е т : произведение цифр равно ' , P ); ReadLnEND.

Пример 5. Решить квадратное уравнение ax2+ bx + c = 0.

Таблица - Система тестов

Номер теста Проверяемый случай Коэффициенты Результаты
a b c
d >0 -2 x1 = 1, x2 = - 2
d=0 Корни равны: x1 = - 1, x2 = - 1
d < 0 Действительных корней нет
a=0, b=0, c=0 Все коэффициенты равны нулю. х — любое число
a=0, b=0, c<>0 Неправильное уравнение
a=0, b<>0 Линейное уравнение. Один корень: x = - 0,5
a <> 0, b <> 0, с = 0 x1 = 0, x2 = - 0,5
Program QuadraticEquation; Uses Crt; { подключение библиотеки Crt } Var a, b, c : Real; {a, b, c - коэффициенты уравнения} Discr : Real; x1, x2 : Real; {x1, x2 - корни } Test, NTest : Integer; {Ntest - количество тестов }BEGIN ClrScr; Write('Введите количество тестов : '); ReadLn(NTest); For Test := 1 to NTest do {цикл по всем тестам задачи } begin Write('Тест ', Test, '. Введите коэффициенты a, b, c : '); ReadLn(a, b, c); If (a=0) and (b=0) and (c=0) then begin Write('Все коэффициенты равны нулю.'); WriteLn('x - любое число ');end else If (a=0) and (b<>0) then WriteLn('Линейное уравнение. Oдин корень: x =', (-c/b):6:2) else If (a=0) and (b=0) and (c<>0) then WriteLn('Неправильное уравнение.') else begin Discr := b*b - 4*a*c; If Discr > 0 then begin x1:=(-b + Sqrt(Discr)) / (2*a); x2:=(-b - Sqrt(Discr)) / (2*a); WriteLn('x1=' , x1:6:2 , '; x2=' , x2:6:2) end else If Discr = 0 then begin x1 := -b/(2*a); WriteLn('Корни равны: x1=', x1:6:2, ' x2=', x1:6:2); end else WriteLn('Действительных корней нет.'); end; WriteLn end; ReadLnEND.
Тест 1 . Введите коэффициенты a, b, c : ? 1, 1, –2 <Enter> x1 = 1 ; x2 = – 2 Тест 2 . Введите коэффициенты a, b, c : ? 1, 2, 1 <Enter> Корни равны: x1 = – 1 ; x2 = – 1 Тест 3 . Введите коэффициенты a, b, c : ? 2, 1, 2 <Enter> Действительных корней нет.

 

Пример 6. Две прямые описываются уравнениями

a1 x + b1 y + c1 = 0;

A2 x + b2 y + c2 = 0.

Напечатать координаты точки пересечения этих прямых, либо сообщить, что эти прямые совпадают, не пересекаются или вовсе не существуют.

Таблица - Система тестов Номер теста Проверяемый случай Коэффициенты прямых Результаты a1 b1 …   Program Intersection; Uses Crt; {подключение библиотеки Crt } Var… Результаты работы Pascal-программы: Введите количество тестов : 7 Тест 1. Введите a1, b1, c1 : 0 0 1…

Пример 7. Вычисление даты следующего дня. Ввести данные о текущем дне, месяце и годе. Напечатать дату следующего дня. Если это последний день месяца, то напечатать об этом. Если это последний день года, то напечатать поздравление с наступающим годом.

 

Таблица - Система тестов

Номер теста Проверяемый случай Результат
11 12 2009 Завтра 12.12.2009
30 12 2009 C наступающим Новым годом!
31 07 2009 Последний день месяца!
Program primer_data;var
day, month, year integer;
last : boolean; { TRUE, если текущий день последний день месяца } r :integer; { если год високосный, то остаток от деления year на 4 равен нулю }beginwrite('Введите цифрами сегодняшнюю дату (число месяц год) —> ');
readln(day,month,year);
last:=FALSE;
case month of
1,3,5,7,8,10,12 : if day=31 then last:=TRUE;
4,6,9,11 : if day=30 then last:=TRUE;
2 : if day = 28 then begin r:=year mod 4; if r <> 0 then last:=TRUE; end; end; { case } if last thenbegin writeln('Последний день месяца!'); day:=1; if month=12 then begin month:=1; year:=year + 1; writeln('C наступающим Новым годом!'); endelse month:=month + 1; endelse day:=day + 1; writeln('Завтра ',day,'.',month,'.' ,year ); readln; end.

 

Результаты работы Pascal-программы:

Тест 1 . Введите цифрами сегодняшнюю дату (число месяц год) —> 11 12 2009 <Enter>
Завтра 12.12.2009

Тест 2 . Введите цифрами сегодняшнюю дату (число месяц год) —> 30 12 2009 <Enter>
C наступающим Новым годом!

Тест 3 . Введите цифрами сегодняшнюю дату (число месяц год) —> 31 07 2009<Enter>
Последний день месяца!

Пример 8. Вычисление результата арифметической операции. Ввести два числа в первой строке и один из знаков +, -, *, / - во второй и вывести на экран результат соответствующего арифметического действия.

 

Таблица - Система тестов

Номер теста X Y Проверяемый случай Результат
+
-
/
*
Program Calc; var operation : Char; {Знак операции} х, у, z : Real; {Операнды и результат} stop : Boolean; {Признак ошибочной операции и останова} begin stop := false; repeat WriteLn; {Пустая строка-разделитель} Write('x,y= ' ) ; ReadLn(x,y); Write('операция: ') ; ReadLn(operation); case operation of ' + ' : z : = x + y;' - ' : z : = x - y;' * ' : z : = x * y;' / ' : z : = x / y;else stop := true;end; if not stop then WriteLn('результат=',z) until stop end.

Результаты работы Pascal-программы:

Тест 1 . x,y= 23 4 <Enter>
операция: +<Enter>
результат=27

Тест 2 . x,y= 12 11 <Enter>
операция: -<Enter>
результат=11

Тест 3 . x,y= 45 15 <Enter>
операция: /<Enter>
результат=3

Тест 4 . x,y= 2 33 <Enter>
операция: *<Enter>
результат=66

– Конец работы –

Используемые теги: составной, Оператор0.048

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Составной оператор

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Блок –это составной оператор, внутри которого имеются определения переменных
Составной оператор это несколько операторов заключенных в фигурные скобки... a d res a d... Блок это составной оператор внутри которого имеются определения переменных...

Тц - один простой или составной оператор
Оператор цикла с параметром... Часто параметр цикла целого типа и его надо изменять с шагом в сторону... Форма записи цикла с параметром имеет вид...

Правила использования операторов цикла
Оператор цикла с предусловием While... Оператор цикла с постусловием Repeat... Правила использования операторов цикла...

Операторы цикла
Оператор while это оператор цикла с предусловием проверя ется условие и пока условие истинно повторяется тело цикла... Пример Вычисляем сумму четных чисел пока сумма меньше... include lt stdio h gt...

Интерпретация составных описателей
Интерпретация составных описателей При объявлении переменных массивов указателей или функций кроме...

Основы программирования в среде Турбо Паскаля Оператор присваивания процедуры ввода вывода
Лабораторная работа Основы программирования в среде Турбо Паскаля Оператор присваивания процедуры ввода вывода... Теоретический обзор... Схема алгоритма...

УСЛОВНЫЕ ОПЕРАТОРЫ
УСЛОВНЫЕ ОПЕРАТОРЫ... Цель работы ознакомление с задачами c разветвляющимся алгоритмом изучение принципа действия условных операторов if и...

Определение и использование операторов BUY и SELL
На сайте allrefs.net читайте: "Определение и использование операторов BUY и SELL"

Операторы физических частиц
Операторы физических частиц... Линейные операторы Собственные функции и...

МАТРИЦЫ ОПЕРАТОРОВ МОМЕНТА ИМПУЛЬСА
МАТРИЦЫ ОПЕРАТОРОВ МОМЕНТА ИМПУЛЬСА... Мы хотим найти матрицы спиновых операторов в явном виде Для этого решим сначала более общую задачу найдем матрицы...

0.03
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам