Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

kulakov-prog-pascal

.pdf
Скачиваний:
21
Добавлен:
13.02.2015
Размер:
540.49 Кб
Скачать

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Московский государственный институт электроники и математики (технический университет)

Кафедра «Управление и информатика в технических системах»

Алгоритмический язык Паскаль

Учебное пособие по дисциплине «Программирование и основы алгоритмизации»

Москва 2010 г.

Составитель ст. преп. В.Г. Кулаков

Учебное пособие по дисциплине «Программирование и основы алгоритмизации» предназначено для студентов первого курса дневного отделения. Основной целью пособия является освоение студентами правил элементарного программирования на языке Паскаль.

Учебное пособие составлено в соответствии с программой и планом для специальности «Управление и информатика в технических системах» - 220100.

УДК 004.451.9

Алгоритмический язык Паскаль. Учебное пособие по дисциплине «Программирование и основы алгоритмизации» / Моск. гос. ин-т электроники и математики; Сост. В.Г. Кулаков. М., 2010, 41 с.

Библиогр.: 6 назв.

2

Содержание

Стр.

1.

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

4

2.

Описание языка

4

3.

Основные символы

5

4.

Элементарные конструкции

5

5.

Концепция типа данных

6

6.

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

7

7.

Константы

9

8.

Перечисляемый тип данных

10

9.

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

10

10.

Переменные

11

11.

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

11

12.

Выражения

12

13.

Операторы

12

14.

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

18

15.

Процедуры и функции

21

16.

Стандартные математические функции

23

17.

Рекурсия

25

18.

Операторы выхода

25

19.

Модули

26

20.

Множества

27

21. Записи

28

22.

Файлы

29

23.

Последовательный и прямой доступ к данным

33

24.

Указатели

35

25.

Динамические переменные

35

26.

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

37

Список использованной литературы

40

3

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

Язык Паскаль разработан Никлаусом Виртом в 1970 году как язык для обучения процедурному программированию. Название языку дано в честь выдающегося французского ученого и философа Блеза Паскаля, а в качестве прототипа был использован алгоритмический язык Алгол-68.

Огромную роль в массовом распространении языка Паскаль сыграла компания Borland International, которая создала Turbo-среду для разработки программного обеспечения на персональных компьютерах. Turbo Pascal работал под управлением операционных систем CP/M и MS-DOS на компьютерах с процессорами Intel серии x86. Первая версия языка Turbo Pascal была выпущена в 1983 г.

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

Windows, Unix и Linux.

2. Описание языка

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

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

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

Символы языка – это основные неделимые знаки, в терминах которых пишутся все тексты на языке.

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

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

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

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

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

4

3. Основные символы

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

1)латинские буквы;

2)арабские цифры;

3)пробел;

4)подчеркивание;

5)знаки операций;

6)ограничители;

7)спецификаторы;

8)служебные слова.

4. Элементарные конструкции

Элементарные конструкции языка Паскаль включают в себя имена, числа и строки.

Имена (идентификаторы) присваивают называния элементам программы – константам, меткам, типам, переменным, процедурам, функциям, модулям и объектам.

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

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

Примеры имен:

b12 SIGMA gamma I80_86

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

217 -45

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

38.7 -0.019

5Е12

73.1Е-16

5

Паскаль допускает запись целых чисел в шестнадцатеричной системе счисления: $40

$ABC0

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

'STRING'

'ПРОГРАММА'

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

5.Концепция типа данных

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

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

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

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

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

Транслятор использует информацию о типах для проверки вычислимости и

правильности различных конструкций. Тип определяет:

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

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

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

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

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

6

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

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

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

Стандартные типы включают целые, действительные, символьный, логические

иадресный типы.

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

записи и файлы.

В языке Паскаль введены понятия эквивалентности и совместимости типов. Два типа Т1 и Т2 являются эквивалентными, если Т1 и Т2 представляют собой одно и то же имя типа или тип Т2 описан с использованием типа Т1 с помощью равенства.

Менее строгие ограничения определены совместимостью типов. Например, типы являются совместимыми, если:

-они эквивалентны;

-являются оба либо целыми, либо действительными;

-один тип – интервальный, другой – его базовый;

-оба интервальные с общим базовым;

-один тип – строковый, другой – символьный.

Ограничения на совместимость типов можно обойти с помощью приведения

типов. Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным типам. Для этого используется конструкция

Имя_Типа(переменная или значение).

Например, Integer('Z') преобразует код символа Z в целое число.

6.Стандартные типы данных

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

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

Таблица 1. Целые типы данных

Тип

Диапазон значений

Требуемая память,

 

 

 

байт

Shortint

-128

… 127

1

Integer

-32768

… 32767

2

Longint

-2147483648

… 2147483647

4

Byte

0 … 255

1

Word

0 … 65535

2

7

Над целыми операндами можно выполнять следующие арифметические операции:

+ – сложение, - – вычитание, * – умножение, div – деление,

mod – получение остатка от деления.

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

Операции отношения, примененные к целым операндам, дают результат логического типа TRUE (истина) или FALSE (ложь).

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

=– равенство,

<> – неравенство, >= – больше или равно,

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

<– меньше.

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

Таблица 2. Действительные типы данных

Тип

Диапазон значений

Количество цифр

Требуемая

 

 

 

мантиссы

память, байт

Real

2.9e-39

… 1.7e+38

11

6

Single

1.5e-45

… 3.4e+38

7

4

Double

5.0e-324

… 1.7e+308

15

8

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

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

Логический тип (Boolean) определяет данные, которые могут принимать логические значения TRUE и FALSE. К булевским операндам применимы логические операции not, and, or и xor.

Логический тип определен таким образом, что FALSE < TRUE. Это позволяет применять к булевским операндам все операции отношения.

Символьный тип (Char) определяет упорядоченную совокупность символов, допустимых в данной ЭВМ. Значение символьной переменной или константы – это один символ из допустимого набора.

8

Символьная константа может записываться в тексте программы тремя способами:

-как один символ, заключенный в апострофы (например, 'A');

-с помощью конструкции вида #K, где K – код соответствующего символа, при этом значение K должно находиться в пределах 0 … 255;

-с помощью конструкции вида ^C, где C – код соответствующего управляющего символа, при этом значение C должно быть на 64 больше кода управляющего символа.

К величинам символьного типа применимы все операции отношения. Адресный тип (Pointer) определяет переменные, которые могут содержать

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

7. Константы

Константа – это идентификатор, отмечающий значение, которое не может изменяться.

Тип констант в языке Паскаль определяется по их виду. Константы целого типа

– это целые числа; константы действительного типа – действительные числа; логические константы – логические значения TRUE и FALSE; символьные константы – строки длиной в один символ.

Язык Паскаль допускает использовать синонимы для обозначения констант. В этом случае текст программы содержит раздел описания констант, который размещается в программе или подпрограмме перед первым словом begin и начинается с зарезервированного слова const. Объявления констант имеют следующий формат:

идентификатор = значение;

В стандартном Паскале допускается использовать только простые константы, например 100 или 'A'. Турбо Паскаль позволяет использовать выражения-константы. Выражение-константа представляет собой выражение, которое может вычисляться компилятором без необходимости выполнения программы. Приведем примеры выражений-констант:

256 - 1

(2.5 + 1) / (2.5 - 1) 'Borland' + ' ' + 'Pascal'

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

const Min = 0;

Max = 100;

Center = (Max - Min) div 2; Message = 'Out of memory';

ErrStr = 'Error:' + Message + '.';

9

8. Перечисляемый тип данных

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

Программист объединяет в одну группу в соответствии с каким-либо признаком совокупность значений, составляющих перечисляемый тип. Например, перечисляемый тип Rainbow (радуга) объединяет скалярные значения RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, BLUE, VIOLET. Перечисляемый тип

Traffic_Light (светофор) объединяет значения RED, YELLOW, GREEN.

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

type Rainbow = (RED,ORANGE,YELLOW,GREEN,LIGHT_BLUE,BLUE,VIOLET);

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

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

type Traffic_Light = (RED, YELLOW, GREEN); var Section: Traffic_Light;

Это означает, что переменная Section может принимать значения RED, YELLOW

или GREEN.

К переменным перечисляемого типа может быть применим оператор присваивания:

Section:= YELLOW;

9. Интервальный тип данных

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

Пример: type

ABC = ’A’..’Z’; Digits = ’0’..’9’;

Минимальное и максимальное значения называются нижней и верхней границами отрезка. Нижняя граница должна быть меньше верхней.

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

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]