Логические переменные в паскале. Выражения и операции в языке паскаль. Арифметические выражения и операции


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

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

Операции задают действия над операндами. В языке паскаль бывают операции бинарные и унарные. Унарные операции содержат 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 факторами:

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

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

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

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

Здравствуйте, дорогие читатели нашего сайта! Сегодня, мы поговорим о логических переменных типа Boolean в Паскаль, логических операциях и решим пять задач.

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

Var A: integer; begin A:= 5; write(A > 0); {Будет выведено True.} end.

Список операторов отношения:

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

Для того чтобы записать результат логического выражения, нам требуется специальная переменная. Эта переменная будет иметь тип boolean, она может принимать два значения - true или false. Как создавать простые условие вы уже поняли, но как создавать сложные условия? Для этого используются специальные логические операции: and, or, not и xor. Давайте разберем каждую операцию отдельно и составим таблицы истинности. Примем за 1 - true, а за 0 - false.

And, или конъюнкция.


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

Or, или дизъюнкция.

Истинно, если хотя бы одно простое высказывание истинно.

Xor, или строгая дизъюнкция.


Истинно, если ровно одно из двух простых высказываний истинно.

Not, или инверсия.


Если высказывание истинно, то его отрицание - ложь и наоборот.

Задачи Boolean.

Закрепим полученные знания, решив пару задачек.

. Дано целое число A. Проверить истинность высказывания: «Число A является положительным».

Program Boolean1; var a: integer; begin write("Введите число A: "); read(a); writeln("Число A является положительным - ", a > 0); {Простое высказывание.} end.

. Дано целое число A. Проверить истинность высказывания: «Число A является нечетным».

Для того чтобы узнать, является ли данное число нечетным в Паскале предусмотрена специальная функция Odd, которая возвращает true , если число нечетное и false , если число четное.

Program Boolean2; var a: integer; b: boolean; begin write("Введите число A: "); read(a); b:= Odd(a); writeln("Число A является нечетным - ", b); { Можно обойтись и без b } end.

. Дано целое число A. Проверить истинность высказывания: «Число A является четным».

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

Program Boolean3; var a: integer; b: boolean; begin write("Введите число A: "); { 6 } read(a); b:= Odd(a); { False } writeln("Число A является четным - ", not b); { True } end.

. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Число B находится между числами A и C».

Program Boolean7; var a, b, c: integer; b1, b2: boolean; begin write("Введите число A, B, C: "); read(a, b, c); b1:= (B > A) and (B < C); b2:= (B > C) and (B < A); { Надо учитывать оба варианта } writeln("Число B находится между числами A и C - ", b1 or b2); end.

. Даны два целых числа: A, B. Проверить истинность высказывания: «Ровно одно из чисел A и B нечетное».

Используем xor.

Program Boolean10; var a, b: integer; c:boolean; begin write("Введите число A, B: "); read(a, b); c:= (Odd(a)) xor (Odd(b)); { Сколько скобок 🙂 } writeln("Ровно одно из чисел A и B нечетное - ", c); end.

. Дано четырехзначное число. Проверить истинность высказывания: «Данное число читается одинаково слева направо и справа налево».

Используем знания, полученные в уроке.

Итак, данная задача проверяет является ли введенное четырехзначное число палиндромом. Наверняка, самый известный палиндром - фраза Мальвины: «А роза упала на лапу Азора.» (Попробуйте прочитать это предложение справа налево)

Program Boolean23; var a, b, c, d, e, f: integer; b1, b2: boolean; begin write("Введите число четырехзначное число: "); read(e); a:= e div 1000; b:= e mod 1000 div 100; c:= e mod 100 div 10; d:= e mod 100 mod 10; f:= d * 1000 + c * 100 + b * 10 + a; writeln("Данное число является палиндромом - ", f = e); end.

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

Логические выражения (условия) в языке Паскаль используются в операторах 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.

На занятии рассматривается условный оператор в Паскале (if ). Объясняется, как использовать несколько условий в одной конструкции (AND и OR ). Рассмотриваются примеры работы с оператором

Напоминаем, что данный сайт не претендует на полное изложение информации по теме. Целью портала является предоставление возможности усваивания материала на основе готовых решенных примеров по теме «Язык программирования Pascal» с практическими заданиями для закрепления материала. Представленные на сайте сайт задания по Паскалю выстроены последовательно по мере увеличения их сложности. Сайт сайт может быть использован учителями и преподавателями в качестве вспомогательного наглядного пособия.

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

Блок-схема условного оператора:

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

Сокращенный вариант:

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

Полный вариант:

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

Условный оператор в Паскале — if — служит для организации хода задачи таким образом, при котором изменяется последовательность выполнения операторов в зависимости от какого-либо логического условия. Логическое условие может принимать одно из двух значений: либо true (истина), либо false (ложь), соответственно, оно может быть либо истинным, либо ложным.

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

Если при истинном условии необходимо выполнять несколько операторов, то их по правилам языка Pascal необходимо заключать в блок , начинающийся со служебного слова begin и заканчивающегося служебным словом end . Такой блок принято называть операторными скобками , а данную конструкцию — составным оператором :

Операторные скобки и составной оператор в Паскале:

if логическое выражение then begin оператор1; оператор2; end else begin оператор1; оператор2; end;

Перевод с английского оператора условия облегчит понимание его использования:

IF THEN ELSE
ЕСЛИ ТО ИНАЧЕ


В условии (в логическом выражении) используются операторы отношения.
Рассмотрим список операторов отношения Паскаля:

  • больше >
  • меньше
  • больше или равно в Pascal >=
  • меньше либо равно в Pascal
  • сравнение в Pascal =
  • не равно в Pascal

Пример: найти наибольшее из двух чисел

Вариант 1 Вариант 2


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

Пример: вычислить значение переменной у по одной из двух ветвей

Показать решение:

var x,y:real; begin writeln ("введите х"); read(x); if x>0 then y:=ln(x) else y:=exp(x); writeln ("y=", y:6:2) {итоговое число будет занимать 6 позиций, и в нем будет 2 знака после запятой} end.

Обратите внимание на то, как в данном примере выводится y . При выводе переменных типа в pascal, можно использовать так называемый форматированный вывод , или запись с двумя двоеточиями:
y:6:2
- цифра после первого двоеточия (6) указывает на то, сколько знаков будет занимать число при выводе на экран
- цифра после второго двоеточия (2) указывает на то, сколько знаков после запятой вещественного числа будет выводиться

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

Задача 0. Вычислить значение переменной у по одной из двух ветвей:

Задача 1. В компьютер вводятся два числа. Если первое больше второго, то вычислить их сумму, иначе - произведение. После этого компьютер должен напечатать результат и текст ЗАДАЧА РЕШЕНА

Задача 2. Дракон каждый год отращивает по три головы, но после того, как ему исполнится 100 лет - только по две. Сколько голов и глаз у дракона, которому N лет?

Логические операции в Паскале (в логическом выражении)

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

  • Логическая операция AND (И), поставленная между двумя условиями, говорит о том, что должны выполняться сразу оба эти условия (должны быть истинными). Логический смысл операции - "конъюнкция".
  • Поставленный между двумя условиями, знак OR (ИЛИ) говорит о том, что достаточно, если будет выполняться хотя бы одно из них (одно из двух условий истинно). Логический смысл операции - "дизъюнкция".
  • На языке Паскаль XOR - знак логической операции, имеющий смысл "строгая дизъюнкция" и указывающий на то, что необходимо, чтобы одно из двух условий выполнялось (истинно), а другое - не выполнялось (ложно).
  • Логическая операция NOT перед логическим выражением или переменной имеет смысл "отрицание" или "инверсия" и указывает на то, что если данная переменная или выражение истинны, то их отрицание - ложь и наоборот.

Важно: Каждое из простых условий обязательно заключать в скобки.

Пример : Рассмотрим примеры логических операций в логических выражениях в Паскале

1 2 3 4 5 6 7 8 var n: integer ; begin n: = 6 ; if (n>5 ) and (n<10 ) then writeln ("истина" ) ; if (n>7 ) or (n<10 ) then writeln ("истина" ) ; if (n>7 ) xor (n<10 ) then writeln ("истина" ) ; if not (n>7 ) then writeln ("истина" ) ; end .

var n:integer; begin n:=6; if (n>5) and (n<10) then writeln("истина"); if (n>7) or (n<10) then writeln("истина"); if (n>7) xor (n<10) then writeln("истина"); if not(n>7) then writeln("истина"); end.

Пример: Компания набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он для данной компании (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.

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

Определим понятие типа данных . Как уже известно, все объекты программы (переменные, константы и т.д.) должны быть описаны.

Описания информируют транслятор, во-первых, о существовании используемых переменных и других объектов, во-вторых, указывают на свойства этих объектов. Например, описание переменной, значение которой является числом, указывает на свойства чисел. Формально числа могут быть целыми и вещественными (дробными). В Паскале, как и в других языках программирования, числа разделены на два типа: целые (зарезервированное слово integer) и вещественные (зарезервированное слово real).

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

Например, пусть переменная x имеет тип real и ее значение равно единице: x=1 . Соответствующее значение в памяти компьютера может быть и 0.999999999 , и 1.000000001 , и 1.000000000 . Но если переменная x будет объявлена как переменная целого типа, то единица в компьютере будет представлена абсолютно точно и переменная x не сможет принимать вещественные (дробные) значения – ведь она была описана как переменная целого типа.

Таким образом, тип данных определяет:

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

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

Множество типов данных языка Турбо Паскаль можно разделить на две группы:

  • стандартные (предопределенные) типы ;
  • типы, определяемые пользователем (пользовательские типы) .

К стандартным типам Турбо Паскаль относят:

  • целый тип – integer ;
  • вещественный тип – real ;
  • символьный тип – char ;
  • логический тип – boolean ;
  • строковый тип – string ;
  • указательный тип – pointer ;
  • текстовый тип – text .

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

К пользовательским типам относят:

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

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

К простым типам относят: целый тип, вещественный тип, символьный тип, логический тип, перечислимый тип и интервальный тип.

Сложный тип представляет собой различные комбинации простых типов (массивы, записи, множества, файлы и т.д.)

Стандартные типы

Стандартный тип данных определен самим языком Паскаль. При использовании в программе стандартных типов достаточно указать подразделы необходимых типов (const , var) и далее описать используемые в программе константы и переменные. Необходимость использования подраздела Type отсутствует.

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

i,j – integer (целые);

x,y - real (вещественные);

t,s - char (символьные);

a,b – boolean (логические),

то необходим только подраздел переменных – Var . Поэтому в описательной части программы объявления переменных записываются следующим образом:

Целые типы

Данные этого типа могут принимать только значения целых чисел. В компьютере значения целого типа представляются абсолютно точно. Если переменная отрицательная, то перед ней должен стоять знак «–», если переменная положительная, то знак «+» можно опустить. Данный тип необходим в том случае, когда какую-то величину нельзя представить приближенно – вещественным числом. Например, число людей, животных и т.д.

Примеры записи значений целых чисел: 17, 0, 44789, -4, -127.

Диапазон изменения данных целого типа, определяется пятью стандартными типами целых чисел и представлен в таблице:

Тип Диапазон Размер в байтах
Shortint -128...+128 1
Integer -32768...32767 2
Longint -2147483648...2147483647 4
Byte 0...255 1
Word 0...65535 2

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

В тексте программы или при вводе данных целого типа значения записываются без десятичной точки . Фактические значения переменной не должны превышать допустимых значений того типа (Shortint , Integer , Longint , Byte , Word), который был использован при описании переменной. Возможные превышения при вычислениях ни как не контролируются, что приведет к неверной работе программы.

Пример использования переменной целого типа

Var a:integer; b:word; c:byte; Begin a:=300; {a присвоено значение 300} b:=300; {b присвоено значение300} c:=200; {c присвоено значение200} a:=b+c; {a присвоено значение500} c:=b; {Ошибка! Переменная c может принимать значения не более 255. Здесь переменной c присваивается значение 500,что вызовет переполнение результата.} End.

Вещественные типы

Значения вещественных типов в компьютере представляются приближенно. Диапазон изменения данных вещественного типа определяется пятью стандартными типами: вещественный (Real), с одинарной точностью (Single), двойной точностью (Double), с повышенной точностью (Extended), сложный (Comp) и представлен в таблице:

Тип Диапазон Число значащих цифр Размер в байтах
Real 2.9E-39...1.7E+38 11-12 6
Single 1.5E-45...3.4E+38 >7-8 4
Double 5E-324...1.7E+308 15-16 8
Extended 3.4E-4951...1.1E+4932 19-20 10
Comp -2E+63+1...+2E+63-1 19-20 8

Вещественные числа могут быть представлены в двух форматах: с фиксированной и плавающей точкой.

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

34.5, -4.0, 77.001, 100.56

Формат записи с плавающей точкой применяется при записи очень больших или очень малых чисел. В этом формате число, стоящее перед символом «E», умножается на число 10 в степени, указанной после символа «E».

1E-4 1*10-4
3.4574E+3 3.4574*10+3
4.51E+1 4.51*10+1

Примеры чисел с плавающей точкой:

Число Запись на Паскале
0,0001 1E-4
3457,4 34574E-1
45,1 451E-1
40000 4E+4
124 0.124E+3
124 1.24E+2
124 12.4E+1
124 1240E-1
124 12400E-2

В таблице с 5 по 9 строку показана запись одного и того же числа 124. Изменяя положение десятичной точки в мантиссе (точка «плывет», отсюда следует название «запись числа с плавающей точкой») и одновременно изменяя величину порядка, можно выбрать наиболее подходящую запись числа.

Пример описания переменных вещественного типа.

Символьный тип

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

Символьный тип обозначается зарезервированным словом Char и предназначен для хранения одного символа. Данные символьного типа в памяти занимают один байт.

Формат объявления символьной переменной:

<имя переменной>: Char;

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

Пример использования переменных символьного типа:

Var c:char; {c – переменная символьного типа} Begin c:=’A’; {переменной c присваивается символ ’A’} c:=#65; {переменной c также присваивается символ A. Его ASCII код равен 65} c:=’5’; {переменной c присваивается символ 5, End. здесь 5 это уже не число}

Логический тип

Логический тип данных называют булевским по имени английского математика Джорджа Буля, создателя области математики – математической логики.

Формат объявления переменной логического типа:

<имя переменной>: boolean;

Данные этого типа могут принимать только два значения:

  • True – истина;
  • False – ложь.

Логические данные широко используются при проверке правильности некоторых условий и при сравнении величин. Результат может оказаться истинным или ложным.

Для сравнения данных предусмотрены следующие операции отношений:

Пример использования операций отношения:

отношение 5>3 , результат true (истина);

отношение 5=3 , результат false (ложь).

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

Var a,b:boolean; {a,b – переменные логического типа} Begin a:=Тrue; {переменной a присваивается значение «истина»} b:=false; {переменной b присваивается значение «ложь»} End.

Константы

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

Константу необходимо объявить в описательной части с помощью зарезервированного слова const.

Формат объявления константы

Const <имя константы>= <значение>;

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

Const {объявление раздела констант} year=2003; {константа целого типа, т.к. нет в записи десятичной точки} time=14.05; {константа вещественного типа} N=24; {константа целого типа, т.к. нет в записи десятичной точки} P=3.14; {константа вещественного типа} A=true; {константа логического типа} str1=’7’; {константа символьного типа} str2=’A’; {константа символьного типа} str3=’Turbo’; {константа строкового типа} Var {объявление раздела переменных} X,y:integer; {переменные целого типа}

Пользовательские типы

Из совокупности пользовательских типов рассмотрим только

  • перечисляемый тип;
  • интервальный тип.

Эти два типа нам будут необходимы при изучении массивов.

Перечисляемый тип

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

Формат перечисляемого типа:

<имя типа>= (константа1, константа2,..., константаN);

где
константа1 , константа2 ,..., константаN – упорядоченный набор значений идентификаторов, рассматриваемых как константы.

Пример описания перечисляемого типа:

Type ball=(one, two, three, four, five); var t:ball;

Здесь ball – имя перечисляемого типа; one , two , three , four , five – константы; t – переменная, которая может принимать любое значение констант.

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

  • константами числового типа: 1, 2, 3, 4 и т. д;
  • константами символьного типа: "a", "s", "1", "3" и т. д.;
  • константами строкового типа: "first", "second" и т.д.

Кроме того, к значениям этого типа не применимы арифметические операции и стандартные процедуры ввода и вывода Read , Write .

Пример использования переменных перечисляемого типа:

Type days = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday); Var day: days; begin if day = Sunday then writeln(‘Сегодня Воскресенье!’); End.

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

Для программного определения порядкового номера используется функция Ord() .

В нашем примере порядковые номера равны:

Ord(Monday) = 0;

Ord(Saturday) = 5;

Ord(Sunday) = 6.

Интервальный тип

Если какая-то переменная принимает не все значения своего типа, а только значения, содержащиеся в некотором диапазоне, то такой тип данных называется интервальным типом. Часто интервальный тип называют ограниченным типом и типом-диапазоном. Интервальный тип задается границами своих значений:

<минимальное значение>..<максимальное значение>

  • два символа «..» рассматриваются как один символ, поэтому между ними недопустимы пробелы;
  • левая граница диапазона не должна превышать его правую границу.

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

Пример описания интервального типа:

Type digit = 1..10; month = 1..31; lat = ’A’..’Z’;







2024 © uzbek-seks.ru.