Логические выражения в паскале примеры. Операции языка паскаль. Минимальное и максимальное число в Паскале

Выражения – это конструкции языка, которые задают порядок выполнения действий над элементами данных.

Выражение состоит из операндов (operand – элемент данных, участвующий в операции), объединенных знаками операций. Операндами могут быть константы, переменные и вызовы функций. Тип значения выражения определяется типом его операндов и выполняемыми над ними операциями. Например,

  • выражение: b > a + 10 ;
  • b - левый операнд, a + 10 - правый операнд, > - операция отношения; результат имеет логический тип.

Важно: величины, составляющие выражение, должны быть совместимых типов.

Операции могут быть унарными и бинарными. Унарная операция относится к одному операнду и записывается перед ним (например, -х ), бинарная – выражает отношение между двумя операндами и записывается между ними (например, a + b ). Операции определяют действия над операндами, выполняемыми в соответствии с приоритетами:

  • Унарные -, not, ...
  • Операции типа умножения: *, /, div, mod, and, …
  • Операции типа сложения: +, -, or, …
  • Операции отношения: =, =, …

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

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

Арифметические выражения и операции

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

Результат арифметического выражения может принимать целое или вещественное значение.

К арифметическим операциям относятся:

  • унарные операции: + , - для вещественных и целых чисел;
  • бинарные операции: +, -, *, / для вещественных и целых чисел;
  • бинарные операции: div, mod для целых чисел.

Выражения и операции отношения

Выражение, состоящее из операндов, связанных операцией отношения, называется выражением отношения.

Две операции отношения = и применяются ко всем типам, остальные - к операндам простого типа и к строкам.

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

Логические выражения и операции

Выражение, состоящее из операндов, связанных логическими операциями, называется логическим выражением.

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

К логическим операциям, которые подчиняются стандартным правилам алгебры логики , относятся:

  • унарная операция not ;
  • бинарные операции and, or, xor .

Логические операции и, рассмотренные выше, операции отношения широко применяются для реализации разветвляющихся и циклических алгоритмов.

Понятие типа данных в Турбо Паскаль

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

Тип определяет:

· возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;

· внутреннюю форму представления данных в ЭВМ;

· операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.

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

Иерархия типов в языке Паскаль такая:

· Простые

o Порядковые

§ Логические

§ Символьные

§ Перечисляемые

§ Интервальные

o Вещественные

· Структуированные

o Массивы

o Множества

· Указатели

Логические типы данных

Прямое отношение к программированию имеет дисциплина, которая называется математической логикой. Основу математической логики составляет алгебра логики, или исчисление высказываний. Под высказыванием понимается любое утверждение, в отношении которого можно однозначно сказать, истинно оно или ложно. Например, «Луна - спутник Земли» - истинно; «5>3» - истинно; «Москва- столица Китая» - ложно; «1=0» - ложно. Истина или ложь являются логическими величинами. Логические значения приведенных выше высказываний однозначно определены; другими словами, их значения являются логическими константами. Логическое значение неравенства x < 0, где x – переменная, является переменной величиной. В зависимости от значения x оно может быть либо истиной, либо ложью. В связи с этим возникает понятие логической переменной.

Основы формального аппарата математической логики создал в середине XIX в. английский математик Джордж Буль. В его честь исчисление высказываний называют булевой алгеброй, а логические величины – булевскими.

Одиночные высказывания могут быть объединены в составные логические формулы с помощью логических операций.

Имеются три основные логические операции: отрицание, конъюнкция (логическое умножение) и дизъюнкция (логическое сложение).

Операция отрицания обозначается в математической логике значком и читается как НЕ. Это одноместная операция.

Например, (x = y) читается «не (x равно y)». В результате получится истина если x не равно y, и ложь, если x равно y. Отрицание изменяет значение логической величины на противоположное.

Операция конъюнкции обозначается значком & и читается как И. Это двухместная операция. Например, (x > 0) & (x < 1) читается «x больше 0 и x меньше 1». Данная логическая формула примет значение истина, если x Є (0,1), и ложь – в противном случае. Следовательно, результат конъюнкции – истина, если истинны оба операнда. Знак операции дизъюнкции V читается как ИЛИ. Например, (x = 0) V (x = 1) читается «x равно 0 или x равно 1». Формула дает истину, если x – двоичная цифра (0 или 1). Следовательно, дизъюнкция дает в результате истину, если хотя бы один операнд - истина.

В Турбо Паскале логические значения обозначаются служебными словами True (истина) и False (ложь), а логический тип данных носит название BOOLEAN.

Все реализации языка Pascal, в том числе и Turbo Pascal, вплоть до версии 6.0 содержали только один логический тип данных Boolean, элементы которого могут принимать лишь два вышеуказанных логических значения. В Turbo Pascal версии 7.0 добавлены еще три логических типа данных: ByteBool, WordBool и LongBool.

По аналогии с целыми и символьными типами, подразделяющимися на физические и логические, естественно предположить, что ByteBool, WordBool и LongBool - физические типы, Boolean - логический. Но в данном случае это не совсем так. Все четыре типа различны. Для Turbo Pascal логический тип Boolean более предпочтителен, так как он использует меньшее количество памяти, остальные типы были введены для обеспечения совместимости разрабатываемых программ с Windows, в которой значению False соответствует 0, а значению True – любое, отличное от 0, число.

Данные логического типа занимают один байт памяти. При этом значению false соответствует нулевое значение байта, а значению true соответствует любое ненулевое значение байта. Например: false всегда в машинном представлении: 00000000; true может выглядеть таким образом: 00000001 или 00010001 или 10000000.

Однако следует иметь в виду, что при выполнении операции присваивания переменной логического типа значения true, в соответствующее поле памяти всегда записывается код 00000001. В этих операциях операнды логического типа рассматриваются как единое целое - вне зависимости от битового состава их внутреннего представления. Кроме того, следует помнить, что результаты логического типа получаются при сравнении данных любых типов. Логические константы языка Turbo Pascal TRUE (истина) и FALSE (ложь) можно использовать в явном виде или обозначать именем в разделе CONST, например:

Логическая переменная тоже может принимать два значения TRUE и FALSE. Логические переменные должны быть описаны предложением:

Var <имя_переменной>: boolean; (Variableпеременная).

Например: var L,A,C:boolean;

Следует обратить внимание на то, что в разделе описания переменных необходимо определить тип переменных, используемых в программе. Например,

Var P,Q,R: Integer;

В разделе операторов логическому типу переменной можно присвоить значение логической константы, например:

L1:=true; L2:=false; L3:=L1;

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

Пример переменных с булевым значением

Логические выражения (условия) в языке Паскаль используются в операторах if и при организации повторений, а именно в циклах while и repeat–until.

Примеры логических выражений:

1 . a > 2*b

2 . sin(sqr(a)) <= exp(cos(b))–2.3

3 . (a <= 3) and (b > a/2)

Логические выражения строятся на основе операций отношения

(<, >, <= , >=, =, <>)

и логических операций

and (логическое и),

or (логическое или),

not (логическое отрицание),

xor (исключающее или).

Результатом выполнения логического выражения является логическое значение true (истина) или false (ложь). В сложных логических выражениях в первую очередь выполняются арифметические операции, затем – логические операции, а в последнюю очередь – операции отношения.

24 Pascal. Условный оператор if. Формат и принцип действия.

Структура условного оператора if имеет вид:

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

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

<условие> – логическое выражение;

<оператор1> и <оператор2> – любые операторы языка Паскаль (простые или составные).

Пример : if sin(а)>b then y:= a

Оператор if работает следующим образом:

<условие> (true (истина) или false (ложь)).

Если значение <условие> – true (истина), то выполняется <оператор1>, а <оператор2> игнорируется.

Если значение <условие> – false (ложь), то выполняется <оператор2>, а <оператор1> игнорируется.

Сокращенная конструкция оператора if

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

Примеры : if a< 2*b then y: = a/2 ;

if a< 2*b then begin

B примере 1 оператор y:=a/2; является простым оператором языка Паскаль.

В примере 2 оператор begin y:=2*a; writeln(y) end; является составным оператором языка Паскаль.

Составной оператор – это группа операторов, заключенная в операторные скобки begin end:

begin <операторы>;

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

Оператор if сокращенной конструкции выполняется следующим образом.

Вычисляется значение логического выражения <условие>.

Если результатом является значение true, управление передается на <оператор>.

Если результатом условия является значение false, <оператор> игнорируется, и управление выполнением программы передается на следующий оператор в программе.

25 Pascal. Оператор выбора case…of. Формат и принцип действия. Оператор выбора Case

Если условный оператор if позволяет реализовать одно из двух возможных продолжений программы, то оператор case предоставляет возможность выбрать одно из нескольких продолжений программы.

Данный оператор имеет структуру:

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

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

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

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

else <оператор>

Здесь <выражение-селектор> – выражение или, в частном случае, переменная любого скалярного типа, кроме вещественного (обычно это переменная типа byte, integer, boolean или char);

<список1, список2, ... списокN> – списки констант, значения которых может принимать выражение-селектор. Каждый из списков может представлять собой константу, диапазон констант или несколько констант (диапазонов), разделенных запятой.

Конструкция else в операторе case может отсутствовать.

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

    Анализируется значение выражения-селектора.

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

Программное обеспечение - Паскаль Операции языка Паскаль

Операции языка Паскаль

Операции задают действия над операндами. В языке паскаль бывают операции бинарные и унарные. Унарные операции содержат 1 операнд, перед которым стоит знак операции. Бинарные операции имеют 2 операнда, между которыми ставится знак или символ операции. По характеру выполнения действий операции языка паскаль можно разделить на 7 групп :

  • арифметические;
  • отношения;
  • логические;
  • строковые;
  • разрядные, сдвиговые;
  • операции над множествами;
  • операции взятия адреса.

Арифметические операции. В языке паскаль имеется одна унарная операция называемая присвоением знака минус и вторая присвоение знака плюс. Бинарными являются:

  • сложение (+);
  • вычитание (-);
  • умножение (*);
  • вещественное деление (/);
  • целочисленное деление (div);
  • остаток от целочисленного деления (mod).

В языке паскаль имеются три операции деления, результатом операции деления (/) будет число с дробной частью, результатом операции div - только целое число, а результатом операции mod - остаток от целочисленного деления. Примеры:

В арифметических операциях могут принять участие только операнды числовых типов. Их результатом также будет число. Число может быть целым или вещественным.

Операции отношения. К ним относятся все бинарные операции:

  • больше;
  • меньше;
  • больше или равно;
  • меньше или равно
  • равно
  • неравно.

Результат операций отношений может быть только переменная логического типа, она может принимать либо значение истина (True), либо значение ложь (False). Операндами в операции отношения могут быть числовые типы или типы, сводимые к числовым. Числовые типы:

  • символьный - в операциях отношения сравниваются коды символов в соответствии с кодовой таблицей;
  • логический - используются значения True и False, принимающие значения 1 - истина и 0 - ложь соответственно;
  • строковый - составной тип, состоящий из символьного типа. Поэтому при использовании строк осуществляется сравнение последовательных символов в двух строках.

Например:

5.6 > 7 — False;

‘П’ < ‘Б’ — False;

‘Петров’ > ‘Иванов’ — True;

‘Иванов’ < ‘Иван’ — False.

Результатом логических операций будут логические значения True или False.

Унарные: NOT - отрицание.

Бинарные: AND - умножение (и); OR - сложение (или); XOR - сложение на модуль 2 (исключающее ИЛИ).

Операндами логического выражения могут быть только операции логического типа.

Строковые операции. Конкатенация (сцепление) - бинарная операция. Операндами могут быть только переменные строкового типа. Результат строковый, а действие операции заключается в сцеплении двух строк в одну:

A:=‘Иванов’

B:= ‘Александр’

Результат: Иванов Александр.

Последовательность выполнения операций на языке паскаль определяется 3 факторами:

  • приоритет операций;
  • порядок расположения операций;
  • использование скобок.

Уровни приоритетов выполняемых операций:

  • операции первой приоритетности, выполняются в первую очередь;
  • операции низшей приоритетности, выполняются последнюю очередь;
  • операции с равными приоритетами, выполняются слева направо в порядке их записи.

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

Для того, чтобы программа была не линейной (т.е. в зависимости от ситуации выполнялись разные инструкции) в языках программирования используются логические выражения, результат которых может быть либо правдой (true), либо ложью (false). Результат логических выражений обычно используют для определения пути выполнения программы.

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

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

  • меньше: x < y
  • больше: x > y
  • равно: x = y
  • не равно: x <> y
  • меньше или равно: x <= y
  • больше или равно: x >= y

Булевы типы

Результатом логического выражения всегда является булево (логическое) значение. Булев тип данных (boolean) может принимать только два значения (true или false). Эти величины упорядочены следующим образом: false < true. Это значит, что данные булевого типа являются не только результатом операций отношения, но и могут выступать в роли операндов операции отношения. Также к ним можно применять функции ord, succ, pred, процедуры inc и dec.

Значение типа boolean занимает в памяти 1 байт.

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

Кроме типа boolean в Pascal введены еще три булевых типа - bytebool (занимает 1 байт), wordbool (занимает 2 байта) и longbool (занимает 4 байта).
Для всех булевых типов значению false соответствует 0, а значению true - любое ненулевое значение. Логические переменные, принадлежащие разным булевым типам, ведут себя по-разному при выполнении над ними операций. Ниже приводится пример, реализованный на языке FreePascal (в комментариях отображается результат).

var b: boolean ; wb: wordbool; begin b: = false ; b: = pred (b) ; writeln (b, " " , ord (b) ) ; // TRUE 255 writeln (b= true ) ; // TRUE wb: = false ; wb: = pred (wb) ; writeln (wb, " " , ord (wb) ) ; // TRUE -1 b: = true ; b: = succ (b) ; writeln (b, " " , ord (b) ) ; // TRUE 2 wb: = true ; wb: = succ (wb) ; writeln (wb, " " , ord (wb) ) ; // FALSE 0 end .

Логические операции

С помощью логических операторов можно формировать сложные логические выражения. Логические операторы часто применяются по отношению к простым логическим выражениям.

В языке программирования Pascal предусмотрены следующие логические операции:

true xor true = false
true xor false = true
false xor true = true
false xor false = false

  • Конъюнкция (логическое умножение, пересечение) - and. Выражение a and b дает значение true только в том случае, если a и b имеют значение true. Во всех остальных случаях значения выражения a and b дает false.

    true and true = true true and false = false false and true = false false and false = false

  • Дизъюнкция (логическое сложение, объединение) – or. Выражение a or b дает значение false только в том случае, если a и b имеют значение false. Во всех остальных случаях результат – true.

    true or true = true true or false = true false or true = true false or false = false

  • Отрицание (инверсия) – not. Выражение not a имеет значение, противоположное значению a.

    not true = false not false = true

  • Исключающее ИЛИ – xor. Выражение a xor b дает значение true только в том случае, когда только один из операндов имеет значение true.

Последовательность выполнения логических операторов: not, and, or.

В языке Паскаль сначала выполняются логические операторы (and, or, xor, not), а уже потом операторы отношений (>, >=, <, <=, <>, =), поэтому не нужно забывать расставлять скобки в сложных логических выражениях.

Сложные булевы выражения могут не обрабатываться до конца, если продолжение вычислений не изменит результат. Если булево выражение в обязательном порядке нужно обрабатывать до конца, то это обеспечивается включением директивы компиляции {B+}.

Стандартные булевские функции

  • odd(x) = true, если x нечетный (x целый тип);
  • eoln(x) = true, если встретился конец строки текстового файла x;
  • eof(x) = true, если встретился конец файла x.

В остальных случаях эти функции принимают значение false.

Похожие публикации