Добавлен: 05.04.2023
Просмотров: 284
Скачиваний: 2
Введение
Не много об истории языка Паскаль. Язык Паскаль получил свое название в честь великого французского ученого, физика-математика Блеза Паскаля, который в 1642 г. изобрел счетную машину для арифметических операций – Паскалево колесо. История создания языка Паскаль начинается с 1965 года, когда международная федерация по обработке информации IFIP предложила нескольким специалистам в области информатики принять участие в разработке нового языка программирования – приемника АЛГОЛА-60. Среди них был швейцарский ученый, работавший доцентом информатики Стенфордского университета Николаус Вирт. В конце 1968 года Вирт и сотоварищи из швейцарского федерального института технологии в Цюрихе разработали первую версию Паскаля, а спустя 2 года – 1- й вариант компилятора. В 1971 году Вирт выпустил описание своего языка. Создавая Паскаль, Вирт преследовал 2 цели: во-первых, разработать язык, пригодный для обучения программированию как систематической дисциплине; во-вторых, реализация языка должна быть эффективной и надежной на существующих вычислительных машинах.
Одним из достоинств языка Паскаль является то, что он воплотил в себе идею структурного программирования, суть которой заключается в том, что с помощью нескольких конструкций можно выразить в принципе любые алгоритмы: линейные, ветвление, циклические конструкции.
При создании и совершенствовании языка Вирт ввел много новшеств, в частности, изобрел синтаксические диаграммы, с помощью которых удобно представлять конструкции языка, первый ввел в алфавит квадратные скобки, высказал идею решения проблемы переносимости программ в виде
Пи-системы, которая заключается в том, что написанная на Паскале программа транслируется в Пи-код, в машинный язык некоторой идеальной машины, а затем интерпретируется на реальных машинных языках.
Он выявил и ряд недостатков: отсутствие операции возведения в степень, понятие отдельно транслируемого модуля, затрудняющее тем самым создание больших программ и др.
Кроме авторской версии, стали появляться различные его расширения и диалекты. Например: УКСД Паскаль, Паскаль-80, ЭППЛ-Паскаль, ТУРБО-Паскаль, Квик-Паскаль. Особую популярность на микроЭВМ и ПЭВМ в настоящее время получило семейство Паскаль-систем, названное ТУРБО-Паскаль и разработанное BORLAND. Данное семейство, работающее с CP/M, MSXDOS, имеет высокую производительность, т. к. используется ускоренная однопроходная процедура компиляции. Последняя версия ТУРБО-Паскаль 7.0 Паскаль стала прародителем более поздних языков программирования.
Через 10 лет после Паскаля Вирт создал язык МОДУЛА-2, в котором особое внимание уделяется построению программ как набора независимых модулей. На Паскаль опирались все 4 языка , принятые в начале 70-х годов Министерством обороны США для разработки своего универсального высокоуровневого языка, который в дальнейшем получил название АДА.
1. Основы языка Паскаль
Первая часть пособия предназначена для изучения базовых приемов программирования. Она последовательно знакомит Вас с азами программистского искусства, начиная с простейших расчетов, состоящих из нескольких формул, и заканчивая применением циклов и массивов.
1.1. Алгоритм
Алгоритм – это однозначно определенная последовательность действий, записанная на понятном исполнителю алгоритмическом языке и определяющая процесс перехода от исходных данных к результату.
В этом определении уже указаны основные свойства алгоритма. Во-первых, алгоритм состоит из конечного набора инструкций или шагов, во-вторых, каждый шаг трактуется исполнителем единственным образом, что позволяет гарантированно получить решение для некоторого набора входных данных, в-третьих, алгоритм всегда сводится к некоторому преобразованию исходных данных в результат или результаты. В этом смысле формулы для решения квадратного уравнения или даже четко составленную инструкцию по варке кофе можно считать алгоритмами, выполнимыми исполнителем-человеком. Для машины, разумеется, требуется более четкая формализация задачи, чем для человека, понимать естественный язык компьютеры пока неспособны, отсюда необходимость учета при составлении алгоритма ограниченного набора инструкций ЭВМ.
1.2. Свойства алгоритма
Дискретность – алгоритм состоит из отдельных инструкций (шагов);
Однозначность – каждый шаг понимается исполнителем единственным образом;
Массовость – алгоритм работает при меняющихся в некоторых пределах входных данных;
Результативность – за конечное число шагов достигается некоторый результат.
1.3. Формы записи алгоритма
Принято выделять 2 основных формы.
Графическая (блок-схема) – отдельные шаги алгоритма изображаются геометрическими фигурами, последовательность выполнения шагов – связями между фигурами;
Рис.1
Указанные на рисунке основные фигуры блок-схем интерпретируются так:
Прямоугольник – любая последовательность действий; внутри прямоугольника записываются формулы или словесное описание выполняемых действий;
Ромб – блок проверки условия; так как любое условие может быть только истинно или ложно, у блока 1 вход и 2 выхода, соответствующие действиям, выполняемым в случаях, когда условие истинно и когда оно ложно. Выходы подписывают символами "+" и "-", или "да" и "нет", "1" и "0" и т.п.
Параллелограмм – блок ввода исходных данных. Внутри фигуры обычно пишется, какие именно данные должны быть введены.
Лист с разрывом – блок вывода данных. Внутри фигуры указывается, какие данные или сообщения программа выводит для представления пользователю.
Закругленный прямоугольник – необязательные блоки начала и конца программы, внутри блоков обычно указывается "нач" или "кон" соответственно.
Последняя фигура служит для изображения циклов, как правило, у нее 2 входа (первый и повторный вход в цикл) и 1 выход, соответствующий завершению циклического процесса.
На рисунке слева приведен пример блок-схемы, иллюстрирующей хорошо знакомый нам процесс решения квадратного уравнения.
Язык блок-схем довольно громоздок, как правило, он не применяется профессионалами, однако, на начальном этапе обучения программированию планирование несложных программ в виде блок-схем может оказаться весьма полезным.
Текстовая форма записи алгоритма (псевдокод) – шаги алгоритма и последовательность их выполнения задаются набором ключевых слов. Эта форма ближе к реальным языкам программирования. Существует много различных вариантов псевдокода, например, в русскоязычной литературе распространен следующий набор ключевых слов:
нач начало программы
кон конец программы
если-то-иначе проверка условия
ввод ввод данных
вывод вывод данных
для-от-до-нц-кц цикл со счетчиком (нц – начало цикла, кц – конец)
пока-нц-кц цикл с предусловием
нц-кц-пока цикл с постусловием
Все алгоритмические конструкции, соответствующие этим ключевым словам, будут изучены нами в данном курсе. Как правило, программисты используют элементы псевдокода при планировании частей своей будущей программы.
1.4. Программа и программное обеспечение
Программа - это реализация алгоритма на конкретном языке программирования. Совокупность существующих программ образует программное обеспечение (ПО). ПО принято делить на 2 вида:
Системное ПО обеспечивает работу компьютера и внешних устройств, а также поддержку прикладных программ. Оно разрабатывается квалифицированными специалистами на машинно-ориентированных языках, дающих доступ к аппаратуре компьютера. Примеры системного ПО – сама операционная система Windows (или любая другая), драйверы внешних устройств компьютера, утилиты для его технического обслуживания, системы программирования, предназначенные для разработки собственных приложений.
Прикладное ПО предназначено для решения конкретных задач пользователя. Оно разрабатывается на языках высокого уровня, облегчающих процесс программирования за счет множества готовых решений. К одному из таких языков относится и Паскаль, который мы будем изучать.
1.5 Этапы разработки программы
Разработка любой программы, от несложной учебной задачи до профессионального программного продукта, может быть разбита на ряд этапов. Кратко опишем и охарактеризуем их.
1. Определение входных и выходных данных, требований к программе – что дано и что требуется получить, каков будет способ взаимодействия (интерфейса) программы с пользователем, на каком языке и в какой системе программирования она будет разрабатываться, каковы требования к аппаратному и системному программному обеспечению компьютеров, на которых будет работать программа;
2. Разработка алгоритма – определение последовательности действий, ведущих к решению задачи и запись их в одной из указанных выше форм;
3. Кодирование (программирование) – перевод алгоритма на один из языков программирования и создание исходного текста программы в одной из систем программирования. Программа на любом языке состоит из операторов – так называются отдельные действия, разрешенные в языке. Число операторов в любом языке ограничено и правила их написания жестко заданы;
4. Компиляция и отладка – исходный текст на Паскале не будет непосредственно исполняться компьютером – для работы программы ее требуется откомпилировать, то есть, перевести в машинный код. Эту работу выполняет специальная программа-компилятор или оболочка языка. Оболочка Паскаля, с помощью которой мы будем разрабатывать свои программы, называется Turbo Pascal версии 7.1, она разработана компанией Borland International в 1983-97 гг. В результате преобразования компилятором исходного текста программы в машинный код получается исполняемый файл, который можно запустить (выполнить) в той операционной системе (ОС), для которой разработан компилятор. Наша оболочка Паскаля создавалась для ОС MS-DOS, однако, в современных ОС семейства Windows программа, написанная на Паскале, работать все же будет, правда, без удобных интерфейсных возможностей Windows.
Итак, компиляция – это процесс преобразования программы в машинный код. Программа, которую удалось откомпилировать, не обязательно работает правильно. Она может содержать ошибки, для выявления которых предназначен этап отладки - поиска ошибок в программе. Как правило, компиляция и отладка выполняются программистом в тесной взаимосвязи.
Возможны программные ошибки 3-х видов: синтаксические (ошибки в правилах языка), алгоритмические (ошибки в логике программы) и ошибки времени исполнения, возникающие в процессе работы запущенной программы. Естественно, компилятор способен найти только синтаксические ошибки, для выявления же алгоритмических ошибок служит этап тестирования программы. Ошибки времени исполнения возникают как результат некорректных действий пользователя, некорректных операций над данными (например, попытки извлечь квадратный корень из отрицательного числа, поделить на ноль) или ошибок программного и аппаратного обеспечения ЭВМ. Об их обработке будет подробно рассказано ниже.
5. Тестирование – проверка правильности работы программы на наборах тестовых данных с заранее известным результатом. Конечно же, тестирование "всей программы сразу" возможно лишь для несложных учебных задач. Реальные программы, как правило, тестируются "по частям" – отдельными функциями и модулями.
6. Документирование и поддержка – этот этап включает в себя создание справочной системы и документации к программе, возможно, расширение ее функциональности, выпуск новых версий, исправление ошибок, которые практически неизбежны в любой сложной программной системе. В наших учебных задачах этап поддержки, конечно, будет отсутствовать.
2. Данные в языке Паскаль
Любая программа выполняет над исходными данными некоторые расчеты. При этом, как и переменные или константы в математике, отдельные элементы данных обозначаются даваемыми программистом именами (идентификаторами). Любые идентификаторы в языке Паскаль строятся по следующим правилам:
- имена могут включать латинские буквы, цифры и знак подчеркивания (для простоты опустим некоторые другие символы, разрешенные в именах);
- имя состоит из одного слова; если требуется пробел в имени, он заменяется на подчеркивание: так, My_1 будет правильным идентификатором, а My 1 – нет;
- имя всегда начинается с буквы: допустим объект с именем A1, но не 1A; прописные и строчные буквы в именах не различаются Паскалем: x1 и X1 – это одна и та же величина;
- имена не могут совпадать с зарезервированными в языке служебными словами, обозначающими определенные в языке операции над данными: например, нельзя назвать Begin или BEGIN ни одну величину в программе, так как begin – зарезервированное служебное слово, а прописные и строчные буквы в служебных словах также не различаются. Познакомиться с большинством служебных слов мы сможем в процессе изучения языка.