
- •Язык программирования паскаль
- •I. Общая характеристика языков программирования
- •1.1. Языки программирования
- •1.2. Трансляторы
- •1.3. История создания языков
- •1.4. Базовые структуры языков программирования
- •II. Описание языка паскаль
- •2.1. Основные объекты языка
- •Лексемы
- •Разделители
- •2.2. Структура Паскаль - программы
- •Синтаксическая диаграмма паскаль – программы
- •2.3. Типизация данных
- •Синтаксическая диаграмма
- •2.4. Объявление данных
- •Синтаксическая диаграмма:
- •Синтаксическая диаграмма
- •III. Простые операторы. Ввод/вывод данных
- •3.1. Оператор присваивания и выражения
- •3.2. Операторы процедур. Ввод/вывод информации
- •3.2.1. Процедуры ввода read и readln
- •Общая форма записи
- •3.2.2. Процедуры вывода write и writeln
- •Синтаксическая диаграмма оператора write
- •Синтаксическая диаграмма формата вывода
- •IV. Структурные операторы. Организация ветвлений и циклов
- •4.1. Составной и пустой операторы
- •Синтаксическая диаграмма
- •Синтаксическая диаграмма
- •4.2. Организация ветвлений. Операторы выбора
- •4.2.1. Оператор ветвления if
- •4.2.2. Оператор варианта case
- •4.3. Организация циклов. Операторы повторения
- •4.3.1. Оператор while
- •Синтаксическая диаграмма
- •4.3.2. Оператор repeat
- •Синтаксическая диаграмма
- •4.3.3. Оператор for
- •Синтаксическая диаграмма
- •V. Организация подпрограмм. Процедуры и функции
- •5.1. Процедуры и их типизация
- •5.1.1. Встроенные процедуры
- •5.1.2. Процедуры пользователя
- •Общий вид паскаль-программы
- •5.1.3. Процедуры без параметров
- •5.1.4. Фактические и формальные параметры
- •5.1.5. Локальные и глобальные переменные
- •5.1.6. Процедуры с параметрами-значениями
- •5.1.7. Процедуры с параметрами-переменными
- •5.1.8. Комбинированные процедуры
- •Диаграмма заголовка
- •5.2. Функции пользователя. Рекурсивные функции
- •5.2.1. Определение функции
- •Синтаксическая диаграмма
- •5.2.2. Функции пользователя
- •5.2.3. Рекурсивные функции
- •5.3 Модульное программирование
- •VI. Массивы. Данные типа array
- •Синтаксическая диаграмма
- •6.1 Одномерные массивы
- •6.2. Многомерные массивы
- •6.3. Способы работы с массивами
- •VII. Обработка литерных величин. Данные типа char и string
- •7.1. Тип данных char
- •7.2. Массивы литер
- •7.3. Тип данных string
- •Синтаксическая диаграмма
- •7.4. Строковые функции и процедуры
- •IIX. Комбинированный тип - записи. Данные типа record
- •8.1. Определение типа record
- •Синтаксическая диаграмма
- •8.2. Оператор with
- •Синтаксическая диаграмма
- •IX. Файловый тип
- •9.1. Определение и описание файла
- •9.2. Типы файлов. Процедуры работы с файлами
- •9.3. Буферная переменная
- •9.4. Основные приемы работы с файлами
- •9.5. Текстовые файлы
- •Литература
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
ГОУ ВПО «ЧЕРЕПОВЕЦКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Институт информационных технологий
________________________________________________________________________
Кафедра прикладной информатики
Язык программирования паскаль
Учебное пособие для студентов I курса ИЭИ
ЧЕРЕПОВЕЦ
2009
Рассмотрено на заседании кафедры прикладной информатики, протокол № 2 от 6 октября 2009 г.
Одобрено редакционно-издательской комиссией Института информационных технологий ГОУ ВПО ЧГУ, протокол № от
Составители: А.Ф.Касторнов, канд. пед. наук, профессор, Г.А. Евстратова.
Рецензенты: Е. И. Зайцева, канд. физмат наук, доцент ЧФ УРАО,
О. Л. Селяничев, канд. техн. наук, доцент кафедры ПО ЧГУ.
I. Общая характеристика языков программирования
ЭВМ - это устройство для автоматической обработки информации (данных). ЭВМ может выполнять только специальные, присущие ей команды. Чтобы машина сделала что-либо полезное, необходимо задать последовательность команд на том языке, который она понимает. Такая последовательность называется программой.
Известно, что центральный процессор (ЦП) каждого типа ЭВМ имеет свою систему команд и каждая команда внутри ЭВМ (в ее оперативной памяти) представляется в виде последовательности нулей и единиц - машинного кода. На этапе становления программирования программы для ЭВМ составлялись именно в машинных кодах, что стало довольно затруднительным при решении более сложных задач. Поэтому были разработаны языки программирования.
1.1. Языки программирования
Языки программирования - это формальные языки, применяемые для описания информации (данных) и алгоритма ее обработки на ЭВМ. Они подразделяются на языки низкого и высокого уровней.
Язык низкого уровня представляет собой систему двоичных или шестнадцатиричных команд, написанных в машинных кодах. Программист общается с машиной на "ее языке" – языке системы команд процессора. К таким языкам можно отнести АССЕМБЛЕР. Этот язык используется, в основном, программистами профессионалами и обладает существенным недостатком - машинной зависимостью, т.е. невозможностью переноса программы на другой тип машин (процессора).
Работа с языками высокого уровня в компьютере происходит более сложно. Специальная программа (транслятор) вначале преобразует команды (операторы) языка высокого уровня в шестнадцатиричные коды, затем расшифровывает их (ставит в соответствие каждому оператору одну или несколько своих команд) и только после этого выполняет программу. Примерами языков высокого уровня являются Паскаль, Бейсик, Си и другие языки. В отличие от языков низкого уровня, на языках высокого уровня легче программировать, т.е. общаться с машиной. Однако часто с простотой общения теряются некоторые «тонкости программирования», поэтому практически в каждом языке высокого уровня есть возможность писать команды непосредственно на машинном языке (программировать в "кодах").
1.2. Трансляторы
Процесс перевода программы с языка программирования высокого уровня на машинный язык называется трансляцией. Трансляция осуществляется с помощью специальной программы, называемой транслятором. Различают два вида трансляции: интерпретация и компиляция, а соотвествующие им программы - интерпретаторы и компиляторы. Трансляторы с языков являются составной частью самой системы программирования, поэтому запуск программы предполагает, сначала ее трансляцию, а потом собственно выполнение.
Рассмотрим процесс выполнения программы, написанной на языках интерпретаторах, а затем компиляторах.
I. ИНТЕРПРЕТАТОР
1. Машина считывает очередной оператор программы.
2. Переводит оператор в свои, ей понятные команды.
3. При обнаружении ошибки интерпретация прерывается, и машина указывает на это.
4. Выполняет переведенные команды.
5. "Забывает" считанный оператор.
6. Продолжает данный процесс, пока не выполнятся все операторы, т.е. пока не дойдет до указателя конца программы.
7. "Забывает" выполненную программу.
II. КОМПИЛЯТОР
1. Машина считывает очередной оператор, написанный на языке.
2. Переводит оператор в свои, ей понятные команды.
3. При попадании на ошибку процесс перевода прерывается, и машина указывает на это.
4. Продолжает данный процесс, пока не иссякнут все строки программы, т.е. пока не дойдет до указателя конца программы.
5. Выполняет переведенную программу целиком.
Из указанного выше процесса выполнения программы следует, что интерпретаторы работают медленнее, при запуске не "вылавливают" всех ошибок (лишь при попадании на них машина указывает на ошибку). Компиляторы работают быстрее, однако расходуют больше оперативной памяти.