- •Язык программирования паскаль
- •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. Текстовые файлы
- •Литература
1.3. История создания языков
Одним из первых языков программирования, созданных специально для учебных целей, был БЕЙСИК, разработанный в 1964 году в Дартмутском колледже (США). Его создание преследовало цель предоставить возможность студентам пользоваться средствами ЭВМ без длительной предварительной подготовки. Предполагалось также, что БЕЙСИК будет использоваться в качестве универсального языка людьми, не имеющими опыта работы на ЭВМ - рядовыми пользователями. Одним из достоинств языка является его удобство для работы в интерактивном режиме, что послужило использованием БЕЙСИКа при разработке диалоговых обучающих программ.
К концу 60-х годов сложилась ситуация, когда для порофессиональных целей использовались языки типа ФОРТРАН, КОБОЛ и пр., а весь учебный мир предпочитал БЕЙСИК. Естественно, что многие считали такую ситуацию неудовлетворительной. По этой причине две группы исследователей приступили к созданию универсального языка программирования, отвечющего современным требованиям. Этот язык должен был включать в себя все достоинства существующих языков, иметь логически обоснованную структуру и быть легким для восприятия. Такие языки были созданы. Одним из них являлся АЛГОЛ-68, другой же был разработан в Институте информатики г. Цюриха (Швейцария) Николасом Виртом в 1971 г. Этот язык получил название ПАСКАЛЬ в честь великого французского ученого XYII века, сумевшего первым в мире изобрести автоматическое устройство для проведения вычислений. Транслятор с языка был разработан в 1973 г.
Так же как и Бейсик, Паскаль довольно просто изучать. Главное, чем обладает Паскаль - он удовлетворяет требованиям обыкновенных ползователей и специалистов по ВТ. Известно, что первым нужен язык, который легко изучать, а вторым - логически правильно построенный язык. Паскаль имеет практически все конструкции языков ПЛ/1 и АЛГОЛ-68, однако он более лаконичен. Грамматические правила языка можно уместить на 4-х страницах.
Хотя Паскаль почти так же прост, как и Бейсик, он имеет перед ним ряд преимуществ. Так, Паскаль способствует внедрению современной технологии программирования, основанной на поэтапном построении программы (принцип "cверху-вниз"), состоящих из небольших, четко определенных процедур (структурный подход). Таким образом, преодолевается главный недостаток, свойственный Бейсику, - неэффективная организация подпрограмм. Разработанный Н. Виртом вариант языка является стандартом. Помимо стандарта языка, в связи с разработкой различных компиляторов, появились версии Паскаля, среди которых наиболее популярной является система Turbo-Pascal, используемая на IBM - совместимых компьютерах.
1.4. Базовые структуры языков программирования
Понятие "структурное программирование" появилось в 1968 году, когда была опубликована статья одного из видных программистов того времени Дейкстры. Он в своей статье констатировал вредность применения оператора безусловного перехода (оператора, позволяющего сделать переход от одного оператора к другому, находящемуся в любом месте программы) и нашел хорошее объяснение причине, по которой он вреден.
Программист Нор четко обосновал, что использование основных базовых конструкций способствует обеспечению ясности и читаемости при написании и дальнейшей доработке программ.
Таким образом, структурным языком назовем тот, у которого блок-схема любой программы состоит только из базовых структур.
Имеется четыре типа управляющих структур: следование, выбор, повторение (цикл) и группирование.
Для реализации следования есть правило: все команды выполняются в порядке их следования.
Для выбора и повторения есть свои специальные инструкции (операторы, команды). Выбор предусматривает проверку условия с последующим выполнением одной или нескольких команд в зависимости от истинности или ложности условия. Выбор (или развилка) бывает полный или неполный, в зависимости от выполняемых команд:
Рисунок 1. Полная развилка
Рисунок 2. Неполная развилка
Таким образом, конструкция работает следующим образом: при истинности условия выполняется Оператор1, в противном случае либо Оператор2, либо управление передается следующей за развилкой конструкции.
Повторение, или цикл, представляет собой конструкцию, которая состоит, как и выбор, из проверки условия и серии команд. Однако, в отличие от выбора, данная серия команд может выполняться неоднократно, в зависимости от проверки условия. Повторения подразделяются на циклы с предусловием (циклы - пока) и циклы с постусловием (циклы-до).
Рисунок 3. Цикл с предусловием
Рисунок 4. Цикл с постусловием
Тело цикла выполняется циклически до тех пор, пока условие истинно в первом случае и ложно - во втором.
Группирование означает объединение одной или нескольких инструкций внутри специальной инструкции. Во всех языках имеются средства для формирования единого блока из группы инструкций (подпрограммы в Бейсике, составные инструкции и процедуры в Паскале). Примером группирования может являться также выполнение в конструкциях циклов следования или выбора и т.д.
