Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль.doc
Скачиваний:
16
Добавлен:
06.05.2019
Размер:
121.86 Кб
Скачать

8

Язык программирования Паскаль.

Язык Паскаль был одним языков, созданных для обучения и получивших популярность, как и новичков, так и в серьёзном программировании. При его создании успешно решена задача сочетания сравнительной простоты языка с потенциальной широтой области его применений. В отличии от своих предшественников (в частности Бейсика) Паскаль допускает разнообразные типы составных объектов: запись - упорядоченный набор про именованных объектов произвольных типов; файл - упорядоченный набор однородных данных, размещаемых во внешней памяти; множество - набор элементов одного типа, кодируемых отрезками натурального ряда или произвольными именами. В Паскале имеется оператор варианта, т. е. выбора одной из нескольких альтернативных последовательностей(ветвей) операторов по вычисляемому номеру ветви.

Самые популярные системы программирования на языке – Object Pascal, Borland Pascal (Turbo Pascal) и TopSpeed Pascal. На основе Паскаля была разработана одна из наиболее популярных систем быстрой разработки программ (Rapid Application Development, RAD) - визуальная система программирования Воrlаnd Delphi.

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

Формат программы.

Программа на Паскаль состоит из строк. Максимальная длина строки – 127 символов. Набор текста программы осуществляется обычно с помощью встроенного редактора текстов системы программирования Turbo Pascal (или другой версии этой системы). Набирая текст программы, программист имеет право произвольно располагать строки на экране. Обязательным является только порядок следования частей программы и правильность их записи.

Структура программы:

Program <имя>(input,output); -заголовок

Uses <имя1,имя2,..>; -список подключаемых библиотечных модулей

Label …; -раздел описания меток

Const …; - раздел описания констант

Type …; - раздел описания типов данных

Var …; - раздел описания переменных

Procedure <имя>; - описание процедур и запись их операторов

<основная часть процедуры>;

Function <имя>; - описание функций

<основная часть функции>;

Begin

<основная часть программы >

End.

Любой раздел, кроме раздела операторов (основная часть программы), может отсутствовать. Раздел операторов в основной программе или подпрограмме всегда начинается зарезервированным словом Begin, далее следуют операторы языка, отделенные “;”. Завершает раздел зарезервированное слово End и точка “.”. В Паскаль конструкция Begin-End называется операторными скобками.

Комментарии помещаются в фигурные скобки { }и могут размещаться в любом месте программы.

Константы и переменные.

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

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

Const

Max=1000; Str1=’Иванов’;

Переменные в отличие от констант могут менять свои значения в процессе выполнения программы. Каждая переменная или константа принадлежат к определенному типу данных. Тип переменных (в отличии от констант) должен быть описан перед тем, как с переменными будут выполняться какие-либо действия. Например,

Var

I,j:integer;

A:array [1..10] of real;

Типы данных в языке Паскаль .

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

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

Простые типы данных:

Целочисленные типы (Shortint, Integer, LongInt, Byte, Word) данных представляют собой значения, которые могут использоваться в арифметических выражениях и занимать память от 1 до 4 байт.

Вещественные типы (Single, Real, Double, Extended, Comp) данных представляют собой вещественные значения, которые могут использоваться в арифметических выражениях и занимать память от 4 до 10 байт.(Самый большой объем памяти – 10 байт - занимают данные вещественного типа повышенной точности : Extended). Паскаль допускает представление вещественных значений в виде как с плавающей, так и с фиксированной точкой.

Символьный (char) тип определяется множеством значений кодовой таблицы ASCII. Для переменной символьного типа требуется 1 байт.

Логический тип (Boolean, ByteBool, WordBool, LongBool) представлен двумя значениями: (истина) и (ложь). Он широко применяется в логических выражениях и выражениях отношения. Типы ByteBool, WordBool, LongBool являются нововведением Turbo Pascal 7.0, они были введены для обеспечения совместимости создаваемых программ в Windows.

Указательный тип (Pointer) – значениями переменных и констант данного типа являются адреса оперативной памяти, состоящие из адреса сегмента и смещения

Пользовательские типы данных.

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

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

    2. Var Season: (winter,spring,summer,autum );

    3. Temp: (23,24,25,26);

    4. Интервальный тип позволяет задавать две константы,определяющие границы диапазона значений для каждой переменной.Обе константы должны принадлежать одному и тому же стандартному типу (кроме real). Например, Var S:1..30;

    5. Сh:’a’..’f’;

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

    7. Type PtStack=^Stack;

    8. Stack=array[1..40] of real;

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

    10. Type Tproc1=procedure (var x,y:real);

    11. Tproc2=function ( x:real):real;

Структурированные типы данных.

Составные типы данных определяют упорядоченную совокупность скалярных переменных и характеризуются типом своих компонентов. К структурированным типам данных в Turbo Pascal относят: тип-массив (array), тип-множество (set), тип-запись (record), файловый тип (file), объектный тип (object), строковый тип (string);

Строковый тип :

Строка- в общем случае это последовательность символов. Строка представляет собой особую форму одномерного массива символов, которая имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании. Строка имеет две разновидности длины:

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

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

Для определения данных строкового типа в Turbo Pascal 7.0 введены стандартные типы String и PChar.

В строках типа String текущая длина строки указывается в нулевом (то есть имеющем индекс 0) элементе строки. Максимальная текущая длина строки может быть не более 255 символов. Например,

Const Adres=’ул.Королева,2’;

Type

FileName=string[150];

Var

St1: FileName;

St2, St3:string[10];

В Паскаль существует ряд встроенных процедур и функций для работы со строками типа String: Delete, Str, Val, Insert, Copy, Concat, Length, Pos, UpCase.

Тип PChar поддерживает формат представления строк, признаком конца строки которых служит символ с кодом 0 (нуль) и которые называются строками с завершающим нулем, или ASCIIZ-строками.

Тип-массив (array):

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

Type Имя =array [тип индекса] of тип компонентов;

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

Например, М=array [1..4] of integer; - массив из четырех целых чисел.

M[1], M[2], M[3], M[4] – элементы массива М.

Тип-множество (set):

Множество – набор взаимосвязанных по какому-либо признаку (или группе признаков) элементов, которые можно рассматривать как единое целое. Элементы множества должны принадлежать к одному и тому же типу данных, которые называют базовым типом множества.

Type Имя =set of “элемент1,..элементN”;

Например, А=set of (3,5,7,11,13) - множество простых чисел.

Тип-запись (record):

Запись- тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается идентификатором record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля:

Type имя = record Например, Mash=record

имя поля1: тип компонента; Nomer:integer;

имя поля2: тип компонента; Marka:string[20];

year:integer;

end; end;

Файловый тип (file):

Файлы классифицируются по двум признакам: по типу (логическая структура) и по методу доступа к элементам файла.

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

К типизированным файлам относятся файлы строго определенного типа (их иногда рассматривают как последовательность записей определенного типа).Стандартное задание в программе такой файловой переменной осуществляется следующим образом:

Type FileRec=record

end;

var F:file of FileRec;

Текстовый файл рассматривается как последовательность символов, разбитая на строки. Каждая строка завершается символом конца строки. На практике это два символа: перевод строки Chr(13) и возврат каретки Chr(10).

Нетипизированный файл рассматривается в Pascal как набор символов или байтов. Представление Char или Byte не играет роли, а важно лишь с точки зрения обьема занимаемого данными. Нетипизированный файл является файлом прямого доступа, что говорит о возможности одновременного использования операций чтения записи. При обьявлении нетипизированного файла указывается только ключевое слово file:

Var F: file;

Объектный тип (object):

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

Type

Coordinate=object обьект с именем Coordinate

X,Y:byte; X,Y - данные, входящие в обьект

Procedure Init(Xinit,Yinit:byte); метод инициализации данных

Function GetX:byte; метод получение значения X

Function GetY:byte; метод получение значения Y

End;

Операции

Для арифметических операций используют обычные знаки +,-,*, /-деление,

^-возведение в степень, div- целочисленное деление, mod- остаток от деления.

Операторы отношений: < - больше,> - меньше,<= - больше или равно,

>= - меньше или равно,<> - неравно

Логические отношения :AND (и), OR (или), NOT, XOR (логическое исключающее или).

Конкатенация – ‘+’ (слияние двух строк)

Операции над множествами: +-обьединение, - разность, * пересечение, in- принадлежность,<= является подмножеством, >= является надмножеством, <> неравно.

Операторы.

Составной оператор. Представляет собой группу из произвольного числа операторов, отделенных друг от друга “;” и ограниченную операторными скобками Begin и End. Например,

Begin

Read (B);

A:=B+0.75;

Write (A);

End;

Оператор присваивания :

Этот оператор предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой расположено в левой части. Например, A:=В+0.5

Оператор безусловного перехода (goto).

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

Процедура ввода-вывода.

Процедура чтения Read и Readln обеспечивает ввод данных (чисел, символов, строк и т.д.) в программу во время её работы.

Процедура записи Write и Writeln обеспечивает вывод данных (чисел, символов, строк и т.д.) из программы на экран, принтер или во внешний файл.

Операторы Readln и Writeln осуществляют соответственно ввод и вывод с пропуском строки.

Условные операторы :

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

1.Оператор условия IF.

Он может принимать одну из следующих форм:

IF условие THEN оператор ; (неполная форма)

Условие задаётся переменной и её соотношением с некоторой константой или значением выражения. Если условие выполняется , то будет выполнен указанный оператор.

IF условие THEN оператор1 ELSE оператор2; (полная форма)

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