Элементы языка Pascal. Понятие типа данных. Целые и вещественные типы данных.

 

 

Содержание: 

  1. Элементы языка Pascal
  2. Понятие типа данных
  3. Целые тип данных
  4. Вещественный тип данных
  5. Логический тип данных
  6. Символьный тип данных
  7. Арифметические операции

 

Элементы языка Pascal

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

Буквы: от A до Z – строчные, заглавные.

Цифры: от 0 до 9

16-тиричные цифры: от 0 до 9 и от A до F

Специальные символы: +   —  *  /   = < >  [  ]   .  ,   ( )   :   ;  {}  ^  @  $  #

 :=   знак присвоения;

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

<>  не равно;

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

(*……………*)  скобки комментария.

{……….}

комментарии игнорируются  компилятором.

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

В комментарии могут быть использованы буквы русского алфавита.

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

123

Для именования различных алгоритмических объектов служат языковые конструкции, называемые идентификаторами. Такими объектами являются имена констант, переменных, типов данных, процедур и функций, программ. С помощью синтаксической диаграммы идентификатор можно определить следующим образом:123

Идентификатор – это любая последовательность букв и цифр, начинающаяся с буквы. В Турбо Паскале к буквам приравнивается также знак подчеркивания. Строчные и прописные буквы в идентификаторах и служебных словах не различаются. Длина идентификатора может быть произвольной, но значащими являются только первые 63 символа.

Понятие типа данных

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

  1. форма внутреннего представления;
  2. множество принимаемых значений;
  3. множество допустимых операций.

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

Тип данных называют порядковым, если он состоит из счетного количества значений, которые можно пронумеровать. Отсюда следует, что на этом множестве значений существуют понятия «следующий» и «предыдущий».

Целые тип данных

Целый тип присваивается данным (переменным и константам), которые во время работы программы могут принимать лишь целочисленные значения.

Например, программа вычисления функции факториала для натурального числа N (F=N!) оперирует с целыми числовыми значениями: N и F – натуральные числа.

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

Идентификатор Длина, байт Диапазон (множество) значений Знак числа
Целые типы
Integer 2 от -32768 до 32767 Целое со знаком
Byte 1 от 0 до 255 Целое без знака
Word 2 от 0 до 65535 Целое без знака
Shorting 1 от –128 до 127 Целое со знаком

Например, для переменных X, Y, описанных в разделе объявления переменных, как

Var

      X: byte;

      Y: word;

операторы X := 2000; Y := -2; будут некорректными, так как переменная X не может принимать значение,  больше чем 255, а Y должно быть положительным.

Вещественный тип данных

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

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

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

Идентификатор Длина, байт Диапазон (множество) значений Знак числа
Real 6 от 2,9*10 до 1,7*10 11-12
Single 4 от 1,5*10 до 3,4*10 7-8
Double 8 от  5*10 до 1,7*10 15-16
Extended 10 от  3,4*10 до 1,1*10 19-20
         

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

Название Назначение Примеры
Round(X) Округление вещественного числа до целого Round(3,456) = 3

Round(5,678) = 6

Trunc(X) Выделение целой части Trunc(3,456) = 3

Trunc(5,678) = 5

 

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

Данные логического типа (Boolean) в стандарте языка могут принимать одно из двух значений: True или False. Переменная или константа логического типа занимает 1 байт, в который записывается 1, если переменная или константа имеет значение True, и 0 в противном случае.

В современных реализациях языка добавлено еще три логических типа для совместимости с другими языками программирования и со средой Windows. Основные этих отличия типов от стандартного:

  • в фактическом размере (в байтах);
  • в величине, соответствующей значению True: в случае стандартного типа значению True соответствует только 1, записанная в байт, а в случае других логических типов – любое число, отличное от 1.
Идентификатор Длина, байт Диапазон (множество) значений
Boolean 1 True, False
ByteBool 1 True, False
WordBool 2 True, False
LongBool 4 True, False

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

Данные стандартного символьного типа представляют собой символы раскладки ASCII. Переменная или константа символьного типа занимает 1 байт памяти. В соответствии с синтаксисом языка значение символа заключается в одинарные кавычки: ‘ Р’, ‘ а’ , ‘1’.

Идентификатор Длина, байт Диапазон (множество) значений
Char 1 все символы кода ASCII

Арифметические операции

К арифметическим типам данных относятся группы вещественных и целых типов.  К ним применимы арифметические операции и операции отношений.

Операции над данными бывают унарными (применимые к одному операнду) и бинарными (применимые к двум операндам). Унарная арифметическая операция одна. Это операция изменения знака. Ее формат:     — < величина>

Бинарные арифметические операции стандартного Паскаля описаны в таблице.

ЗНАК ВЫРАЖЕНИЕ ТИП ОПЕРАЦИИ ТИП РЕЗУЛЬТАТА ОПЕРАЦИЯ
 

+

 

A+B

R, R

I, I

I, R; R, I

R

I

R

СЛОЖЕНИЕ
 

_

 

 

A – B

R, R

I, I

I, R; R, I

R

I

R

ВЫЧИТАНИЕ
 

*

 

 

A*B

R, R

I, I

I, R; R, I

R

I

R

УМНОЖЕНИЕ
 

/

 

A/B

R, R

I, I

I, R; R, I

R

R

R

ДЕЛЕНИЕ
DIV A div B I, I I ЦЕЛОЕ ДЕЛЕНИЕ
MOD A mod B I, I I ОСТАТОК ОТ ЦЕЛОГО ДЕЛЕНИЯ

 

К арифметическим величинам могут быть применены стандартные функции Паскаля. Структура обращения к функции:

    123 

Функция выступает как операнд в выражении. Например, в следующем операторе присваивания

 X := 2 * Sin (A) / Ln (3.5) + Cos (C — D)

операндами являются три функции: sin, ln, cos. Их запись такая же, как в математике. Аргументы называются фактическими параметрами и являются в общем случае выражениями фактического типа. Аргументы записываются в круглых скобках. Результат вычисления функции – величина соответствующего типа.

Ниже приведена таблица, которая содержит описания математических стандартных  функций Турбо Паскаля.

Обращение Функция Тип результата
Frac(x Дробная часть х R
Int(x) Целое R
Ln(x) Натуральный логарифм R
Pi Постоянная величина ?  R
Abs(x) Абсолютное значение (модуль числа) R ИЛИ I
Arctan(x) Арктангес х R
Cos(x) Косинус х R
Exp(x) е- экспанента R
Random Случайное число от 0 до 1 R
Random(n) Случайное число от 0 до n I
Odd(x) True , если х – нечетное

False , если х – четное

Sin(x) Синус х –( в радианах) R
Sqr(x) Квадрат аргумента I ИЛИ R
Sqrt(x) Квадратный корень R
Trunc(x) Ближайшее целое, не превышающие аргумент по модулю (отсекание дробной части числа x) I
Round(x) Округление до ближайшего целого аргумента I

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

123

Определенную проблему представляет возведение X в степень n. Если значение степени n – целое положительное число, то можно n  раз перемножить X (что дает более точный результат и при целом n предпочтительнее) или воспользоваться формулой,:

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

  • exp(n*ln(x)) – для положительного X;
  • -exp(n*ln(abs(x))) – для отрицательного X.

Эту же формулу можно использовать для возведения  X в дробную степень n, где n — обыкновенная правильная дробь вида k/l, а знаменатель l нечетный. Если знаменатель l четный, это означает извлечение корня четной степени, следовательно есть ограничения на выполнение операции.

При возведении числа X в отрицательную степень n следует помнить, что

123

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

Для вычисления логарифма с основанием a используем: loga(x) = ln(x)/ln(a)