ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
II. Условные операторыI. Оператор присваивания Он предназначен для вычисления нового значения некоторой величины. Имя переменной и результат вычисления выражения должны быть одного типа или совместимыми по присваиванию. Формат записи: <имя переменной> := <выражение>;
Например, x := x + 1; y := 25.789E+3; II. Оператор перехода Он предназначен для изменения порядка выполнения операторов программы. Формат записи: goto <Метка>;
В качестве меток можно использовать: - целые числа 0..9999, - любые идентификаторы. Примеры меток: 34, m1, metka2, out.
Метка должна быть предварительно объявлена в разделе объявлений. Метка должна быть уникальной. Метки используются в операторах безусловного перехода для передачи управления помеченным операторам. Переход допускается только в пределах блока (программа, подпрограмма). Например: label m; //раздел объявлений метки -------------------------------------------- //раздел исполнения goto m; // обращение к метке -------------------------------------------- m: <Оператор>; // действия, предусмотренные алгоритмом Структурированные операторы – конструкции, построенные по определенным правилам из других операторов. I. Составной оператор Последовательность операторов, отделенных друг от друга точкой с запятой и заключенных в операторные скобки: Begin P1; //оператор 1 ....... Pn; //оператор n end; Отдельные операторы внутри составного, отделяются друг от друга точкой с запятой ;. Используется для превращения группы операторов в один там, где по правилам языка может применяться только один оператор, а действий несколько. Наиболее часто используется в условных операторах и операторах цикла. II. Условные операторы В программе условие – это выражение логического типа (Boolean), которое может принимать одно из двух значений True (истина) или False (ложь). Примеры простых условий: sqr(x)-10*x>=5 // выражение x2 -10·x³5? summa<1000 // значение переменной Summa < 1000? x mod 2 = 0 // остаток от деления x на 2 равен 0? Примеры сложных условий: (day=6) or (day=7) // день суббота или воскресенье (sum>100) and (day=7) //скидка на товар стоимостью более 100у.е. в воскресный день (m=1) and (d>=1) and (d<=10) //дни с 1 по 10 в первом месяце. Логические операторы имеют более высокий приоритет, чем операторы сравнения, и поэтому простые условия следует заключать в скобки.
Условный оператор if...then...else Позволяет выбрать один из двух возможных вариантов, предназначен для организации разветвления программы. Обеспечивает выполнение или невыполнение некоторых операторов в зависимости от соблюдения определенных условий.
I. Полная форма оператора if...then...else if <логическое выражение> then <оператор1> else <оператор2>; if - если, then - то, else - иначе, В общем виде, когда надо выполнить несколько действий, оператор if… записывается следующим образом: if <условие> then begin //инструкции1, которые надо выполнить, //если условие истинно. End Else Begin //инструкции2, которые надо выполнить, //если условие ложно. End;
Выполняется оператор if следующим образом: 1. Вычисляется значение условия (правда или ложь?); 2. Если условие истинно (true), то выполняются инструкции, следующие за словом then. На этомвыполнение операции if завершается, инструкции, следующие за словом else, не будут выполнены. Если условие ложно (false), то выполняются инструкции, следующие за словом else. Задача. Поиск максимального числа из двух чисел x и y. // 1-й вариант решения if x>y then max:=x else max:=y;
II. Сокращенная форма оператора – if...then Сокращенная форма используется для усеченного алгоритма, когда альтернатива отсутствует. if <выражение> then <оператор>;
// 2-й вариант решения max:=x; if x<y then max:=y;
III. Вложенные операторы if...then...else… if <Условие1> then <op1> Else if <Условие2> then <op2> else <op3>;
Рекомендуется части then и else одного условного оператора начинать с одного и того же столбца. Задача. Вычислить значение функции:
Правило: так как условный оператор if является единым предложением, то ни перед then, ни перед else точку с запятой ставить нельзя.
При помощи логических операций AND (логическое «И») и OR (логическое «ИЛИ») из простых условий можно строить сложные. Например:
1) 2)
Примеры записи условия: 1) if (x<=b) and (x>=a) then <выражение C1> else <выражение C2>; 2) if (x<a) or (x>b) then <выражение C2> else <выражение C1>; Условный оператор case … of… end Применяется для множественного ветвления на произвольное число направлений. С его помощью можно выбрать вариант из любого количества вариантов. Оператор состоит из выражения, называемого селектором, списка вариантов и необязательной ветви else. Формат записи: case <селектор> of <список n1>: p1; <список n2>: p2; .....…………....; <список nn>: pn; [ else p] End;
case of - выбор из, n1, n2,..nn - константы, p1, p2,.. pn - операторы. Селектор - выражение порядкового типа, значение которого определяет дальнейший ход выполнения программы. Список состоит из перечня констант: Например: 1, 3, 7. или часть констант списка представляет собой интервал: Например: ’ A ’ .. ’ Z ’ или 1 .. 12 Все константы списка должны быть разными, дискретного типа и иметь порядковый тип, совместимый с типом селектора. Например: Можно использовать селекторы целого (integer, byte) или символьного (char) типа. Нельзя использовать селекторы Longint и строкового типа. Пример оператора варианта: case Color of Red: X := Y+3; Yellow: X := Y-2; Green: X := Y; end; Задача. Программа принимает с клавиатуры код клавиши и в зависимости от ее номера выводит на дисплей текстовый комментарий. Var Symbol: Char; Begin Readln(Symbol); case Symbol of ' A ' .. ' Z ': Writeln ('Zaglavnay bukva ', Symbol); ' a ' .. ' z ': Writeln ('Strochnay bukva ', Symbol); еlse Writeln ('Cod ASCII ', Symbol); end; Readln end. В общем виде, когда надо выполнить несколько действий, оператор Case записывается следующим образом: case <селектор> of <список n1>: begin //инструкции1 End; <список n2>: begin //инструкции2 End; <список nn>: begin //инструкции nn End; Else Begin //инструкции End; End;
Выполняется инструкция следующим образом:
1. Сначала вычисляется значение выражения-селектора. 2. Значение выражения-селектора последовательно сравнивается с константами из списка констант. 3. Если значение выражения совпадает с константой из списка, то выполняется соответствующая этому списку группа инструкций. 4. Если значение выражения-селектора не совпадает ни с одной константой из списка, то, выполняется последовательность инструкций, следующая за else. Синтаксис оператора case позволяет не писать else и соответствующую последовательность инструкций. В этом случае, если значение выражения не совпадает ни с одной константой из всех списков, то выполняется следующая за case инструкция программы. Задача. Используя оператор выбора, вычислить значения функции:
program Example; {$APPTYPE CONSOLE} Uses SysUtils; Var A: integer; x,y: real; label 10; Begin writeln('Vvedite x'); readln(x); 10:writeln('Vvedite parameter А'); readln(A); Case A o f 0:y:=cos(x); 1:y:=(x-10)*8; -1:y:=A*7*x; Else Begin writeln('A vvedeno ne verno! Vvedite -1 ili 0 ili +1'); goto 10; end; end; writeln(' А=', А); writeln(' ********************************* '); writeln(' * x= ', х:8:3, ' * y= ', y:8:3, ' *'); writeln(' ********************************* '); readln End.
Не нашли, что искали? Воспользуйтесь поиском:
|