Материал: Основы программирования на языке Паскаль. Основные понятия алгоритмического языка Паскаль. Кононов А.Д., Кононов А.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Пример. Если определены два множества

var p1 : set of ’A’..’F’;

p2 : set of 0..9;

то [ ’B’ , ’F’] + [ ’B’.. ’D’] = [ ’B’, ’C’, ’D’, ’F’ ];

[1,2] + [1,3] = [1,2,3];

[ 0..4 ] * [ 3..7 ] = [ 3,4]; [1,2] * [1,2,3] =[ 1,2]; [ 0..4 ] * [ 5,6 ] = [ ];

[ 1,5,9 ] – [ 2,4,8,9 ] = [ 1,5 ]; [1,2,3] – [1,2] = [3].

Операции отношения применимы также к объектам множественного типа: проверка на равенство ( = ) , неравенство ( < > ), включение ( < = или > =) и принадлежность множеству ( in ) .

Пример. [2,3 ] = [0] результат false;

[1,3 ] = [ 3,1] результат true;

[1,2] < = [1,2,3] результат true ( содержится в );

[2,3] > = [1] результат false ( не содержится в ).

При использовании операции in первый операнд является выражением, задающим значение базового типа множества, а второй – множество. Если значение является элементом множества, то результат отношения есть true.

Например, определение типа

type

days = (mon, tue, wed, thu, sat, sun ) ;

months = ( yan, feb, mar, apr, may, jun, jul, aug,sep,oct, nov, dec);

а отношение feb in days примет значение false.

Проверка на принадлежность множеству используется в программах для исключения сложных условий. Так, выражение с использованием логических операций вида ( ch > = ’0’) and ( ch <=’9’) с использованием операции in имеет вид CH in [ ’0’ ..’9’].

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

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

Файл (File) – именованная область памяти персонального компьютера (ПК), предназначенная для хранения программы или данных.

Понятие файла распространяется также на логические устройства (логические имена, которые связаны со стандартными аппаратными средствами ПК, например, CON – клавиатура, экран дисплея, PRN – печатающее устройство и т. д.), рассматриваемые как потенциальные источники или приемники текстовой информации.

Любой файл имеет следующие характерные особенности:

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

  2. Файл содержит компоненты одного типа. Типом компонентов может быть любой тип Турбо Паскаля (ТП), кроме файлов.

  3. Длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только ёмкостью памяти.

Существует три вида файлов:

  1. типизированные (file of …);

  2. текстовые (text);

  3. нетипизированные (file),

типы которых и связанные с ними файловые переменные описываются соответствующим образом:

type

t1= file of < тип >;

t2 = text;

t3 = file;

Var f1, f2: t1;

f3, f4, f5: t2;

f6: t3;

где t1,t2,t3 – имена типов файлов (t1 – типизированный, t2 – текстовый, t3 – нетипизированный),

f1,f2, f3, f4, f5, f6 – имена файловых переменных,

< тип > – любой тип ТП, кроме файлов.

Вышеприведенное описание может быть представлено в следующей эквивалентной форме:

var f1, f2 : file of < тип >;

f3, f4, f5: text ;

f6: file;

Имя файла состоит из двух слов: имени и расширения, разделяемых точкой.

Пример: gg. pas gg. exe d1. dat.

Текстовый файл в ТР – это совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой.

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

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

Строка. В Турбо Паскале строковый тип STRING – последовательность символов произвольной длины (до 255 символов). У типа-строки в квадратных скобках может быть указан его размер от 1 до 255. Если размер строки не указан, то он считается равным 255.

Пример: Var

FAM: STRING [20];

TEL: STRING[12];

MAXSTR: STRING; {строка в 255 символов}

Строка – последовательность символов, заключенная в апострофы. Последовательность из одного символа называется символьной константой.

Например, ’A’, ’Х’, ’I’ – символьные константы;

’Шевалье д’’Артаньян’ – строка, при этом апостроф внутри строки записывается дважды.

    1. Простейшие конструкции языка Паскаль

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

Константы

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

Константы могут иметь один из рассмотренных типов:

1) Целые содержат лишь знак и цифры (знак + в записи константы может быть опущен);

2) Вещественные содержат в записи десятичную точку и/или показатель степени, следующий за символом Е, который заменяет число 10;

Пример: CONST

x=-0.5;

y=1.0;

z=-1Е-5

w=7.5е15;

Для некоторых констант в программе определены стандартные имена, например, PI (π=3.1415926536….);

3) Логические могут принимать только два значения: TRUE или FALSE;

4) Символьные записываются литерой, заключенной с двух сторон в одиночные кавычки (апострофы), например, ′В′, ′6′, ′ * ′;

5) Текстовые (строковые) записываются последовательностью символов (текстом), заключенной с двух сторон в апострофы, например, ′x=′, ′параметр z′, ′матрица А′.

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

CONST

K=100;

N=15;

G=9.81;

R= -1.0Е19

LMP=′ Р ′;

B=TRUE;

В данном примере константы с именами K и N имеют целый тип и числовые значения соответственно 100 и 15, константы G и R – вещественного типа, константа LMP – символьного типа, соответствует символу P и константа B – логического типа, имеет значение TRUE.

В качестве значения констант допускаются также ранее определенные идентификаторы других констант (возможно с противоположным знаком) и константные выражения.

CONST

a=35.91;

b= -а;

c=2.5+3*а;

Если программа не содержит констант, то раздел CONST в описании не приводится.

Переменные

Переменная используется для записи значений, изменяющихся в процессе выполнения программы. По структуре различают простые переменные и переменные с индексом. Простая переменная записывается в программе своим именем (идентификатором). Напомним, что имя переменной – это последовательность букв и цифр, начинающаяся с буквы, например: XMAX, REZ, K3, SUMMA. В качестве примеров неправильной записи имен переменных можно привести следующие записи: 5М, R34.5, 13К, К 13.

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

VAR KOL, IMAX: INTEGER;

V, Y: REAL;

C, D: CHAR;

F: BOOLEAN;

В данном примере переменные с именами KOL, IMAX описаны как переменные целого типа и могут принимать в программе только целые значения. Переменные с именами V, Y имеют вещественный тип, их возможные значения – числа, имеющие дробную часть. Переменные с именами C, D – символьного типа и могут принимать значение любого символа из набора символов данной ЭВМ. Переменная F имеет логический тип и в программе может иметь значение TRUE или FALSE.

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

Переменные с индексами

Как указывалось выше, переменные с индексами являются элементами массивов. Массивы должны быть описаны до их использования в программе в разделе описания переменных VAR, если элементы массива относятся к любому из перечисленных ранее типов, или в разделе описания типов TYPE, если программист сам задает тип элементов массива, при этом ЭВМ резервирует место в памяти для хранения элементов массива, например

VAR NOR, COP: ARRAY [1..20] OF REAL;

M1: ARRAY [1..4,1..5] OF INTEGER;

C5: ARRAY [1..5] OF CHAR;

При описании задаются имя массива, границы изменения его индексов и тип элементов массива. Описание массива начинается со служебного слова ARRAY (массив), которое отделяется от имени массива символом «:», затем в квадратных скобках указываются нижняя и верхняя границы изменения индексов элементов данного массива, разделенные символом « .. ». После служебного слова OF (из) указывается тип элементов массива. В приведенном примере описаны одинаковые по структуре одномерные массивы NOR и COP, элементы которых являются вещественными переменными, пронумерованными целыми числами от 1 до 20; одномерный массив с именем С5, содержащий 5 элементов символьного типа. Кроме того, описан двумерный массив М1 – матрица целых чисел, имеющая 4 строки и 5 столбцов.

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

CONST N = 5;

VAR C5 : ARRAY [1 . . N] OF CHAR;

Верхняя граница индекса этого массива – описанная в разделе констант целая константа N.

Примеры неправильных описаний массивов:

A: ARRAY [2 . . 1] OF REAL; – нижняя граница индексов больше верхней;

C: ARRAY [2 . . N+1] OF CHAR; – верхняя граница индексов задана выражением, а не константой;

D: ARRAY [2.0 . . 5.0] OF REAL; – вещественные границы индексов недопустимы.

Упражнения к разделу.

Определить тип приведенных ниже констант

  1. ′K′ 6) 2.0

  2. TRUE 7) ′ ′

  3. 2 8) FALSE

  4. ′2′ 9) 0.2222

  5. 2.OE-02 10) ′ ′ ′ ′

3. Операции и выражения

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

- арифметические;

- логические;

- операции отношения;

- операции со строками.

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

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

Арифметические операции применимы только к величинам целых и вещественных типов (табл.3).

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

Пример:

A MOD B {если, например A=10 и B=3, то результат =1}

C DIV D {если, например C=10 и D=3, то результат =3}

13 DIV - 4 = - 3 13 MOD -4 = 1

Всегда А MOD В = А- (А DIV В) * В

Таблица 3

Зависимость типа результата от типа операндов

Знак

Операция

Тип операндов

Тип результата

+

-

*

/

DIV

MOD

сложение

вычитание

умножение

деление

деление целых чисел

вычисление остатка от деления целых чисел

целый

хотя бы один вещественный

целый

хотя бы один вещественный

целый

хотя бы один вещественный

целый или вещественный

целый

целый

целый

вещественный

целый

вещественный

целый

вещественный

вещественный

целый

целый

Источник: https://studfile.net/preview/16567431/