Вход

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

Курсовая работа* по программированию
Дата добавления: 07 января 2008
Язык курсовой: Русский
Word, rtf, 539 кб (архив zip, 63 кб)
Курсовую можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.
Очень похожие работы

Министерство Образования и науки Республики Казахстан

Прикаспийский Современный Колледж




3707002

«Информационные системы»






Курсовая работа


Тема: «Условный оператор»

Предмет: «Программирование»



Выполнил:

Каунов Константин

студент 3 курса группы

«Информационные системы»55.34.



Руководитель:

Научный руководитель

Старший преподватель кафедры КИВТ АГУ

Им. Х.Досмухамедова Ишутина И. Р.



Атырау 2007





Введение……………………………………………………………………3

Глава 1. Условный оператор и его виды ……………………………..

1.1 Блок схема и запись на алгоритмическом языке условного

оператора (примеры)………………………………………….

    1. Пример программирования с использованием условным

оператора ………………………………………………………

Глава 2 Создание программы диалога с использованием условного

оператора…………………………………………………………..































Введение

Паскаль – язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан в 1968–1971 гг. Николаусом Виртом, для обучения студентов методам разработки программ, таким как "программирование сверху вниз", "структурное программирование" и т. д. Вирту не понравился не один из существующих на тот момент языков, и в 1968 году он приступил к разработке своего собственного. Первая версия языка была создана для компьютера CDC 6000.Благодаря своей четкости, логичности и другим особенностям Паскаль надолго занял свою нишу, являясь прекрасным языком для обучения программированию. Паскаль использовался и для разработки серьезных программ- приложений. Шутили, что Вирт разработал игрушку, но многие отнеслись к ней слишком серьезно

Впоследствии появились различные версии языка и его расширения. Наиболее известным расширением стал пакет Турбо Паскаль фирмы Borland, появившийся в 1983 году и сразу ставший событием в мире компьютерных технологий.

Турбо Паскаль – это система программирования, созданная для повышения качества и скорости разработки программ (80-е гг.). Слово Турбо в названии системы программирования – это отражение торговой марки фирмы-разработчика Borland International (США).

Систему программирования Турбо Паскаль называют интегрированной (integration – объединение отдельных элементов в единое целое) средой программирования, т.к. она включает в себя редактор, компилятор, отладчик, имеет сервисные возможности.

Первое упоминание о нем содержалось в рекламе опубликованной в журнале Byte, а сам пакет предназначен для операционной системы CP/M. В начале 1984 года он был перенесен в среду MS-DOS и приобрел огромную популярность. С тех пор появилось несколько версий Турбо Паскаля, последняя- седьмая.

Программы на языке Паскаль имеют блочную структуру:

1) Блок типа PROGRAM – имеет имя, состоящее только из латинских букв и цифр. Его присутствие не обязательно, но рекомендуется записывать для быстрого распознавания нужной программы среди других листингов.

2) Программный блок, состоящий в общем случае из 7 разделов:

•раздел описания модулей (uses);

•раздел описания меток (label);

•раздел описания констант (const);

•раздел описания типов данных (type);

•раздел описания переменных (var);

•раздел описания процедур и функций;

•раздел описания операторов.

Общая структура программы на языке Паскаль следующая:

Рrogram ИМЯ..; {заголовок программы}

Uses ...; {раздел описания модулей}

Var ..; {раздел объявления переменных}

...

Begin {начало исполнительной части программы}

... {последовательность

... операторов}

End. {конец программы}


Глава 1

Условный оператор полная и неполная развилка оператор выбора.



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

               IF <логическое> THEN серия1 ELSE серия2;

Если логическое выражение, выступающее в качестве условия, принимает значение False, то выполняются операторы, расположенные после else (серия2), если True,— операторы, следующие за then. При записи логического выражения следует избегать знака = (равно) для действительных переменных, так как они представляются неточно, а поэтому может не произойти совпадений значений выражений, стоящих слева и справа от знака равно. Для устранения указанного недостатка следует требовать выполнения условия с заданной точностью, т.е. вместо отношения X = Y рекомендуется, например,

                            Abs(X - Y) < 1E-8.

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

               IF <логическое> THEN серия;

Условный оператор реализует разветвление вычислительного процесса по двум направлениям, одно из которых осуществляется при выполнении условия, другое— в противном случае. Для реализации разветвлений более чем по двум направлениям необходимо использовать несколько условных операторов. Рассмотрим примеры.

Задача 1. Даны действительные числа x, y. Если x и y отрицательны, то каждое значение заменить модулем; если отрицательно только одно из них, то оба значения увеличить на 0,5; если оба значения неотрицательны и ни одно из них не принадлежит отрезку [0,5; 2,0], то оба значения уменьшить в 10 раз; в остальных случаях x и y оставить без изменения.

Разработаем алгоритм решения задачи, после чего напишем программу.

Алгоритм запишем словесно:

1) ввести значения x, y;

2) если x<0 и y<0, найти их модули и перейти к п. 5, иначе перейти к следующему пункту;

3) если x<0 или y<0, увеличить каждую величину на 0,5 и перейти к п. 5,

   иначе перейти к следующему пункту;

4) если ни x, ни y не принадлежат отрезку [0,5; 2,0], уменьшить их в 10 раз;

5) вывести значения x и y;

6) конец.

Program Usl;

 Var X, Y : Real;

 Begin

   Write('Введите два действительных числа '); ReadLn(X, Y);

   If (X < 0) AND (Y < 0) THEN

   Begin

     X = ABS(X);

     Y = ABS(Y)

   End

                     ELSE

                      IF (X < 0) OR (Y < 0) THEN

                       Begin

                        X = X + 0.5;

                        Y = Y + 0.5

                       End

                                   ELSE

                                    IF NOT (((X >= 0.5) AND (X <= 2))

                                           OR ((Y >= 0.5) AND (Y <= 2)))

                                         THEN

                                          Begin

                                                 X = X / 10;

                                                 Y = Y / 10

                                          End;

 WriteLn('Результат:'); WriteLn('X= ', X:10:6); WriteLn('Y= ', Y:10:6)

END.

Задача 2. Дано действительное число a. Вычислить f(a), если

 

Program Usl1;

 Var A, F : Real;

 Begin

  WriteLn('Введите действительное число: ');  ReadLn(A);

   IF A <= 0 THEN

      F = 0

             ELSE

              IF A <= 1 THEN

                 F = Sqr(A) - A

                        ELSE

                 F = Sqr(A) - SIN(Pi * Sqr(A));

 WriteLn('Значение функции F(x) при x = ',  A:10:6,  ' равно ', F:10:6);

END.

Кроме условного оператора в качестве управляющей структуры довольно часто используется оператор выбора CASE. Эта структура позволяет переходить на одну из ветвей в зависимости от значения заданного выражения (селектора выбора). Ее особенность состоит в том, что выбор решения здесь осуществляется не в зависимости от истинности или ложности условия, а является вычислимым. Оператор выбора позволяет заменить несколько операторов развилки (в силу этого его ещё называют оператором множественного ветвления).

В конструкции CASE вычисляется выражение K и выбирается ветвь, значение метки которой совпадает со значением K. После выполнения выбранной ветви происходит выход из конструкции CASE. Если в последовательности нет метки со значением, равным K, то управление передается внешнему оператору, следующему за конструкцией CASE (в случае отсутствия альтернативы ELSE; если она есть, то выполняется следующий за ней оператор, а уже затем управление передается внешнему оператору).

Запись оператора выбора

CASE K OF

   A1 : серия 1;

   A2 : серия 2;

     ...

   AN : серия N

  ELSE  серия N + 1

  END;

Любая из указанных серий операторов может состоять как из единственного оператора, так и нескольких (в этом случае, как обычно, операторы, относящиеся к одной метке, должны быть заключены в операторные скобки begin..end).

Выражение K здесь может быть любого порядкового типа (напомним, что к таким типам относятся все целые типы, Boolean, Char, перечисляемый тип, диапазонный тип, базирующийся на любом из указанных выше типов).

Задача 1. В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старояпонскому календарю. Справка: 1996г.— год крысы— начало очередного цикла.

Поскольку цикл является двенадцатилетним, поставим название года в соответствие остатку от деления номера этого года на 12.

Program Goroskop;

Var Year : Integer;

Begin

 Write('Введите год '); ReadLn(Year);

   CASE Year MOD 12 OF

    0 : WriteLn('Год Обезьяны');

    1 : WriteLn('Год Петуха');

    2 : WriteLn('Год Собаки');

    3 : WriteLn('Год Свиньи');

    4 : WriteLn('Год Крысы');

    5 : WriteLn('Год Коровы');

    6 : WriteLn('Год Тигра');

    7 : WriteLn('Год Зайца');

    8 : WriteLn('Год Дракона');

    9 : WriteLn('Год Змеи');

   10 : WriteLn('Год Лошади');

   11 : WriteLn('Год Овцы')

  END;

END.

Задача 2. Найти наибольшее из двух действительных чисел, используя условный оператор.

Program Maximum;

Var Max, X, Y : Real;

Begin

  Write('Введите два неравных числа:');

  ReadLn(X, Y);

if X > Y then

Max := X

else Max := Y;

  End;

  WriteLn('Максимальное из двух есть ', Max : 12 : 6)

End.

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

Так как в альтернативной системе кодировки ASCII строчные русские буквы идут не подряд, а с некоторым разрывом, то в данном случае, в зависимости от того, в какую часть таблицы попадает введенная буква, используется та или иная формула. Если введённый символ не является строчной русской буквой, он выводится без изменения.

Program UpCase;

Var C : Char;

Begin

   Write('Введите символ:');

   ReadLn(C);

   Case C Of

   'а'..'п' : C := Chr(Ord(C) - 32);

   'р'..'я' : C := Chr(Ord(C) - 80)

   End;

   WriteLn(C);

End.

Как видно из примера, в качестве метки может выступать не только отдельное значение, но и диапазон значений. Кроме того, в качестве метки может выступать перечень значений выражения (значения перечисляются через запятую).

Контрольные вопросы и задания

Когда возникает необходимость в организации развилки?

Какая развилка называется полной? неполной?

Выражение какого типа может выступать в качестве условия при организации развилки? Какие значения принимают такие выражения?

Могут ли в полной развилке не выполниться операторы ни по одной из ветвей? выполниться по обеим ветвям?

Записать примеры 1-3 по теме "Оператор выбора" с помощью условного оператора. Сколько развилок понадобилось в каждом из случаев?

В каком случае целесообразно использовать оператор выбора?

Какого типа может быть выражение, являющееся селектором выбора? Приведите примеры.

Используя оператор выбора решить задачу: "Определить знак заданного целого числа".

Приведите пример оператора выбора, где выражение-селектор выбора имеет перечислимый тип


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

Начало формы


например, forex

Конец формы











Вернемся к рассмотрению нашего первого советника и расскажу об условном операторе if-else, который я использовал в функции init().

int init()
{
//----
if (iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0) > Close[0])
CurrentState = STATE_SHORT;
else CurrentState = STATE_LONG;

MyOrderTicket = 0;
//----
return(0);
}

Формат условного оператора if-else:

if (выражение)
первый_оператор
else
второй_оператор

Принцип работы оператора: вычисляется значение выражения в скобках; если оно равно true, то выполняется «первый_оператор», в противном случае — «второй_оператор».

В нашем первом эксперте в функции init() есть такая строчка:

if (iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0) > Close[0])
CurrentState = STATE_SHORT;
else CurrentState = STATE_LONG;

В этой строчке вычисляется выражение iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0) > Close[0]. Забегая вперед, скажу, что в этом выражении сравнивается значение экспоненциальной скользящей средней по цене закрытия с периодом, определенным внешней переменной MAPeriod, и цена закрытия текущего бара ( Close[0] ).

Если значение скользяйшей средней больше цены закрытия, то выполняется первый оператор:

CurrentState = STATE_SHORT;

Если — меньше, то второй:

CurrentState = STATE_LONG;

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

Пример использования составного оператора можно найти и в нашем эксперте:

if (!IsTesting())
return(MarketInfo(s, MODE_LOTSIZE)*MarketInfo(StringSubstr(s, 0, 3)+"USD",
MODE_BID)/AccountLeverage());
else
{
p = iClose(StringSubstr(s, 0, 3)+"USD", Period(),
iBarShift(StringSubstr(s, 0, 3)+"USD", Period(), CurTime(), true));
return(MarketInfo(s, MODE_LOTSIZE)*p/AccountLeverage());
}

Если у нас нет необходимости в выполнении второго оператора (в случае, если выражение в круглых скобках не равно true), то часть else можно опустить:

if (выражение)
первый_оператор

Пример из нашего эксперта:

if (s == "CHFJPY")
{
p = iClose("USDCHF", Period(), iBarShift("USDCHF", Period(), CurTime(), true));
return(MarketInfo(s, MODE_LOTSIZE)/(AccountLeverage()*p));
}

Если несколько операторов if-else вложены друг в друга, а часть операторов имеет пропущенную часть else, то else всегда связывается с ближайшим предыдущим оператором if в том же блоке, не имеющим части else.

Обычно операторы в коде эксперта выполняются последовательно — один за другим. Однако часто требуется изменить последовательность их выполнения в зависимости от каких-то условий. В этом выпуске я рассмотрел один из способов изменения этой последовательности: условный оператор if-else.











Условный оператор в стандартной форме состоит из условия (логического выражения) и двух последовательностей операторов, размещенных после символа then и после символа else. Действие всего такого условного оператора совпадает (если при вычислении условия не возникают побочные эффекты, или ,что тоже, самое изменения в состоянии памяти) с действием одной из двух составляющих его последовательностей операторов, выбор которой для исполнения осуществляется по значению условия, вычисление которого начинает выполнение условного оператора. Условный оператор назначает к исполнению первую последовательность операторов (он стоит непосредственно после символа then), если на текущем состоянии памяти ВМ условие принимает истинное значение, либо вторую последовательность операторов (она находится за символом else), если условие ложно.



Рис. Пример блок-схемы


Например, условный оператор if X  Y then Z := X else Z := Y end присваивает переменной  максимальное из значений переменных  и  и описывается блок-схемой

Рассмотрим задачу вычисления корней уравнения , заданного коэффициентами ,  и . Предположим, что a и что корни действительны. Тогда возможным решением является следующая программа, использующая правила Виета:

module Корни3;
    var A,B,C,X1,X2,D,E : Real;
begin
    read(A,B,C);
    D := sqrt(Sqr(B) - 4AC);
    if B>= 0 then X1 := -(B+D)/(2A) else X1 := (-B+D)/(2A) end ;
    X2 := C/(X1A);
    write(X1,X2)
end Корни3.

Предусматривается возможность сокращенной записи вложенности одного условного оператора в другой. Например, оператор

if E1 then S1 else if E2 then S2 else S3 end end,

где E1, E2, E3 - произвольные последовательности операторов, можно записать в виде

if E1 then S1 elsif E2 then S2 else S3 end.

В этом случает говорят, что условный оператор содержит не одну, а две охраняемые последовательности операторов (E1и E2), первая из которых охраняется выражением E1, а вторая - выражением  E2. Действие всего такого условного оператора совпадает (если при вычислении условия не возникают побочные эффекты, или ,что тоже, самое изменения в состоянии памяти -- см. п. 6.1.5) с действием одной из трех составляющих его последовательностей операторов, выбор которой для исполнения осуществляется по значению условий E1и E2, вычисление которых  происходит, начиная с E1. Условный оператор назначает к исполнению первую последовательность операторов S1, если на текущем состоянии памяти ВМ условие E1 принимает истинное значение, вторую последовательность операторов S2, если условие E1 ложно, а E2 истинно, и третью последовательность S3, если условия E1и E2 ложны.

Например, программа распознавания -- равно ли данное натуральное число некоторому нечетному числу, умноженному на два (печатает "ДА", если ответ положительный, и "НЕТ" -- в противном случае) -- может иметь следующий вид:

ModuleПроверка;
    var N : integer;
begin read(N);
    if odd(N) then write('НЕТ')
    elsif N mod 4# 0 then write ('ДА')
    else write ('НЕТ')
    end
end Проверка.





Глава 1.1: Запись на алгоритме языка условного оператора (Примеры).



Рассмотрим примеры.

Задача 1. Даны действительные числа x, y. Если x и y отрицательны, то каждое значение заменить модулем; если отрицательно только одно из них, то оба значения увеличить на 0,5; если оба значения неотрицательны и ни одно из них не принадлежит отрезку [0,5; 2,0], то оба значения уменьшить в 10 раз; в остальных случаях x и y оставить без изменения.

Разработаем алгоритм решения задачи, после чего напишем программу.

Алгоритм запишем словесно:

1) ввести значения x, y;

2) если x<0 и y<0, найти их модули и перейти к п. 5, иначе перейти к следующему пункту;

3) если x<0 или y<0, увеличить каждую величину на 0,5 и перейти к п. 5,

иначе перейти к следующему пункту;

4) если ни x, ни y не принадлежат отрезку [0,5; 2,0], уменьшить их в 10 раз;

5) вывести значения x и y;

6) конец.



Program Usl;

Var X, Y : Real;

Begin

Write('Введите два действительных числа '); ReadLn(X, Y);

If (X < 0) AND (Y < 0) THEN

Begin

X = ABS(X);

Y = ABS(Y)

End

ELSE

IF (X < 0) OR (Y < 0) THEN

Begin

X = X + 0.5;

Y = Y + 0.5

End

ELSE

IF NOT (((X >= 0.5) AND (X <= 2))

OR ((Y >= 0.5) AND (Y <= 2)))

THEN

Begin

X = X / 10;

Y = Y / 10

End;

WriteLn('Результат:'); WriteLn('X= ', X:10:6); WriteLn('Y= ', Y:10:6)

END.



Задача 2. Дано действительное число a. Вычислить f(a), если 


Program Usl1;

Var A, F : Real;

Begin

WriteLn('Введите действительное число: '); ReadLn(A);

IF A <= 0 THEN

F = 0

ELSE

IF A <= 1 THEN

F = Sqr(A) - A

ELSE

F = Sqr(A) - SIN(Pi * Sqr(A));

WriteLn('Значение функции F(x) при x = ', A:10:6, ' равно ', F:10:6);

END.

Кроме условного оператора в качестве управляющей структуры довольно часто используется оператор выбора CASE. Эта структура позволяет переходить на одну из ветвей в зависимости от значения заданного выражения (селектора выбора). Ее особенность состоит в том, что выбор решения здесь осуществляется не в зависимости от истинности или ложности условия, а является вычислимым. Оператор выбора позволяет заменить несколько операторов развилки (в силу этого его ещё называют оператором множественного ветвления).

В конструкции CASE вычисляется выражение K и выбирается ветвь, значение метки которой совпадает со значением K. После выполнения выбранной ветви происходит выход из конструкции CASE. Если в последовательности нет метки со значением, равным K, то управление передается внешнему оператору, следующему за конструкцией CASE (в случае отсутствия альтернативы ELSE; если она есть, то выполняется следующий за ней оператор, а уже затем управление передается внешнему оператору).

Запись оператора выбора

CASE K OF

A1 : серия 1;

A2 : серия 2;

...

AN : серия N

ELSE серия N + 1

END;

Любая из указанных серий операторов может состоять как из единственного оператора, так и нескольких (в этом случае, как обычно, операторы, относящиеся к одной метке, должны быть заключены в операторные скобки begin..end).

Выражение K здесь может быть любого порядкового типа (напомним, что к таким типам относятся все целые типы, Boolean, Char, перечисляемый тип, диапазонный тип, базирующийся на любом из указанных выше типов).

Задача 1. В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старояпонскому календарю. Справка: 1996 г. — год крысы — начало очередного цикла.

Поскольку цикл является двенадцатилетним, поставим название года в соответствие остатку от деления номера этого года на 12.

Program Goroskop;

Var Year : Integer;

Begin

Write('Введите год '); ReadLn(Year);

CASE Year MOD 12 OF

0 : WriteLn('Год Обезьяны');

1 : WriteLn('Год Петуха');

2 : WriteLn('Год Собаки');

3 : WriteLn('Год Свиньи');

4 : WriteLn('Год Крысы');

5 : WriteLn('Год Коровы');

6 : WriteLn('Год Тигра');

7 : WriteLn('Год Зайца');

8 : WriteLn('Год Дракона');

9 : WriteLn('Год Змеи');

10 : WriteLn('Год Лошади');

11 : WriteLn('Год Овцы')

END;

END.

Задача 2. Найти наибольшее из двух действительных чисел, используя оператор выбора.

Program Maximum;

Var Max, X, Y : Real;

Begin

Write('Введите два неравных числа:');

ReadLn(X, Y);

Case X > Y Of

TRUE : Max := X;

FALSE : Max := Y

End;

WriteLn('Максимальное из двух есть ', Max : 12 : 6)

End.

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

Так как в альтернативной системе кодировки ASCII строчные русские буквы идут не подряд, а с некоторым разрывом, то в данном случае, в зависимости от того, в какую часть таблицы попадает введенная буква, используется та или иная формула. Если введённый символ не является строчной русской буквой, он выводится без изменения.

Program UpCase;

Var C : Char;

Begin

Write('Введите символ:');

ReadLn(C);

Case C Of

'а'..'п' : C := Chr(Ord(C) - 32);

'р'..'я' : C := Chr(Ord(C) - 80)

End;

WriteLn(C);

End.

Как видно из примера, в качестве метки может выступать не только отдельное значение, но и диапазон значений. Кроме того, в качестве метки может выступать перечень значений выражения (значения перечисляются через запятую).

Глав1.2: Пример программы с использованием условного оператора.

Операторы отношений сравнивают два значения, возвращая в результате булевское значение True или False. В Паскале реализуются операторы:

> –больше , чем; 
>= –больше, или равно; 
< – меньше,
= – равно;
<= – меньше, чем или равно; 
<> – не равно; 
in – является элементом.

Общий формат условного оператора:

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

где <условие> – любое булевское выражение (вырабатывающее в результате True или False); <оператор1> и <оператор2> – операторы Паскаля. Если выражение принимает значение True, то выполняется <оператор1>; в противном случае – <оператор2>.

Например:

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

Два важных момента, на которые следует обратить внимание при использовании if/then/else. Во-первых, оператор else не является обязательным, другими словами, допустимо использовать оператор if в следующем виде:

if выражение then оператор 1

В этом случае оператор 1 выполняется только тогда, когда выражение имеет значение True. В противном случае пропускается оператор 1 и выполняется следующий оператор. Во-вторых, если необходимо выполнить более одного оператора, в случае, когда выражение принимает значение, True или False, то следует использовать составной оператор. Составной оператор – это последовательность произвольных операторов программы, заключённая в операторные скобки – зарезервированные слова begin ... end.

Например:

if B = 0 then 
Writeln('Деление на нуль невозможно.')
else begin
   Ratio := A div B;
   Writeln('Отношение =', Ratio)
end;

В Паскале есть четыре логических оператора – and, xor, or, not. Эти логические операторы работают с логическими значениями (True и False), позволяя комбинировать выражения отношений, булевские переменные и булевские выражения. Например:

if (a > b) and (a = 0) then writeln('a = ", a);
if (a > b) and (a = 0) then writeln('a = ", a);

Глава 2:Создать программу диалога с использованием условного оператора.


Программа 1



Программа 2

Вычислить:


Алгоритм в виде диаграммы действий



Текст программы

Program prg2;
var
{ http://nataliya.kiev.ua }
  x,z:real;
begin
  write('x=');
  readln(x);
  if x<=0
  then
    z:=sqr(x)*x
  else
    if x<4>    then
      z:=4-sqr(x)
    else
      z:=1;
  writeln('z=',z:0:3);
  readln;
end.

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

x=2
z=0.000

x=3
z=-5.000

x=9
z=1.000

x=0
z=0.000

x=-3
z=-27.000

Теория к программе

Условные операторы
  Оператор IF
  Общий вид:
    IF <выражение> THEN <оператор> [ELSE <оператор>];
      Где: V - выражение логического типа (условие, за которым выполняется оператор S1 или S2). S1,S2 - один простой оператор (может быть составным).
  Вложенный оператор IF
  Условный оператор if может содержать в свою очередь также оператор if, например:
      IF V1 THEN IF V2 THEN S1 ELSE S2
        Для избежания ошибки лучше использовать операторные скобки:
    IF V1 THEN BEGIN
      IF V2 THEN S1
        ELSE S2
      END;
  Оператор выбора CASE
    Используется в том случае, если переменная может принимать ряд дискретных значений. Общий вид оператора:
      CASE OF
        <значение K1 или список значений K1>: S1
        <значение K2 или список значений K2>: S2
        .
        .
        <значение KN или список значений N>: SN
        [ELSE SN+1]
      END;
        Где: K - выражение или переменная перечислимого типа;
        S1 .. SN+1 - операторы, которые используются в том случае, если выражение или переменная K приобретает соответствующее значение. Они могут быть составными.


© Рефератбанк, 2002 - 2024