Программирование на языке Pascal
6cac1dc9

Программирование на языке Pascal

Наш курс посвящен изучению не только языка Pascal, но и некоторых алгоритмов, решающих наиболее известные задачи программирования, поэтому начнем мы со знакомства с некоторыми основополагающими понятиями.
Алгоритм - это последовательность действий, которые необходимо выполнить, чтобы решить поставленную задачу.
Программа же представляет собой набор команд на языке, понятном исполнителю, реализующий некоторый алгоритм. В нашем случае исполнителем является компьютер, а языком программирования будет язык высокого уровня Pascal. К сожалению, любой язык высокого уровня удобен только человеку, пишущему или отлаживающему программу, но совершенно непонятен компьютеру. Программа на таком языке называется исходным текстом и хранится во внешнем файле с расширением .pas.

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

Типы данных языка Pascal
Компиляторы языка Pascal требуют, чтобы сведения об объеме памяти, необходимой для работы программы, были предоставлены до начала ее работы. Для этого в разделе описания переменных (var) нужно перечислить все переменные, используемые в программе. Кроме того, необходимо также сообщить компилятору, сколько памяти каждая из этих переменных будет занимать. А еще было бы неплохо заранее условиться о различных операциях, применимых к тем или иным переменным

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

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

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

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

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

Подпрограммы
Весьма поэтичное объяснение понятия подпрограмма дал В.Ф. Очков: "Подпрограмма - это припев песни, который поют несколько раз, а в текстах песен печатают только один раз"1). В самом деле, если есть необходимость многократно совершать одни и те же действия, то вполне логично описать их единожды, а потом лишь ставить на них ссылку. Именно такой смысл имеет использование подпрограмм.

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

Статически выделяемая память
Для того, чтобы лучше понять специфику динамически выделяемой памяти, рассмотрим сначала ее "антипод" - память, распределяемую статически. Такое выделение памяти используется всякий раз при объявлении "обычных" переменных в разделе var. Каждая переменная обладает двумя атрибутами: именем и описанием.

Чуть-чуть истории
Теория графов - довольно молодая наука (по сравнению, скажем, с геометрией). В 1736 году Санкт-Петербургская академия наук опубликовала труд Леонарда Эйлера, где рассматривалась задача о кенигсбергских мостах ("Можно ли, пройдя все городские мосты ровно по одному разу, вернуться в исходную точку?"). Это была первая работа по будущей теории графов.

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

Модульность программ
Простейшая модульность программы может достигаться за счет применения процедур и функций, однако этого не всегда достаточно. Если все подпрограммы содержатся в одном файле, то исправление единственной ошибки в какой-либо подпрограмме приведет к неизбежной перекомпиляции всего кода. А при современных размерах программ компиляция может длиться даже не минуты, а часы.

Текстовый режим
В текстовом режиме единицей вывода информации служит символ. На экране каждый символ занимает одно знакоместо - прямоугольный участок размером 8х8 пикселей (зерен экрана). Во весь экран помещается 80х25 знакомест.

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



Borland Pascal. Руководство пользователя

Borland Pascal with Objects (Паскаль с объектами фирмы Borland) предназначен для всех тех пользователей, которые хотят разрабатывать прикладные программы для операционной системы DOS или операционной среды Windows. Вы можете создавать прикладные программы, работающие в реальном режиме DOS, Windows или прикладные программы для защищенного режима DOS или Windows. Borland Pascal предлагает богатую среду программирования, которая делает разработку программного обеспечения более производительной и более приятной. Используя структурированный язык высокого уровня Паскаль, вы можете писать программы для приложений любого типа и размера.
Borland Pascal 7.0, оставаясь совместимым с программным кодом, написанным для Turbo Pascal или Turbo Pascal for Windows, предоставляет вам новые возможности. Исследуя эти возможности следует учитывать, что этот компилятор Паскаля является быстрым и эффективным компилятором и принят в качестве общемирового стандарта.

Введение
Borland Pascal поставляется с одиннадцатью руководствами, каждое из которых имеет свое назначение. Если раньше вы никогда не работали с прог- раммным продуктом Turbo Pascal, прочтите руководство пользователя.

Установка и запуск Borland Pascal
Borland Pascal поставляется с автоматической программой ус- тановки, которая называется INSTALL. Из-за использования методов упаковки файлов вы должны воспользоваться данной программой, а не просто скопировать на свой жесткий диск файлы Borland Pascal. Программа INSTALL автоматически копирует и распаковывает файлы Borland Pascal и Borland Pascal for Windows.

Что нового в Borland Pascal
Два средства просмотра объектов ObjectBrowser - одно в IDE для DOS защищенного режима, другое в IDE для Windows. С помощью ObjectBrowser вы можете просматривать в своей программе объекты и модули, проверять свой исходный код, получать полные перекрестные ссылки на каждый используемый в программе идентификатор и видеть свою программу с новой позиции. Об ObjectBrowser для DOS и Windows в данной книге рассказывается ниже.

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

Программирование в интегрированной интерактивной среде для DOS
Если вы укажете параметр /D, IDE сможет одновременно работать с двумя мониторами. IDE проверяет, имеется ли на вашем компьютере соответствующее оборудование, например, монохромная и цветная плата. Если это не так, то IDE игнорирует данный параметр. Режим с двумя мониторами полезно использовать при отладке программы. Один монитор вы можете использовать как экран выводимых программой данных, а другой - для работы с отладчиком.

Программирование в интегрированной интерактивной среде для Windows
Командные кнопки в оперативной полосе представляют команды. Это оперативные кнопки для "мыши", аналогично тому, как определенные комбинации клавиш на клавиатуре являются оперативными клавишами. Чтобы выбрать команду, щелкните на соответствующей командной кнопке "мышью". Например, если вы щелкните "мышью" на командной кнопке Open a File (Открыть файл), то реакция IDE будет такой же, как при выборе команды Open меню File

Отладка в интегрированной среде
Интегрированная интерактивная среда разработки программ Borland Pascal (IDE) включает в себя ряд средств, облегчающих разработку программ: автоматическое управление проектами, средств обеспечения модульной структуры программы, быструю компиляцию и простые в использовании оверлеи. Но несмотря на все это ваша программа все равно может содержать ошибки, что не позволит ей корректно работать.

Модули Borland Pascal
Borland Pascal обеспечивает вам доступ к большому числу встроенных констант, типов данных, переменных, процедур и функ- ций. Некоторые из них специфичны для Borland Pascal, другие специфичны для приложений Windows. Их количество велико, однако, в своей программе вы редко используете их все сразу. Поэтому они разделены на связанные группы, называемые модулями.

Использование указателей
По мере того как программы становятся более сложными, и требуются работа с большим количеством данных, область объемом в 64К, зарезервированная в Borland Pascal для данных, может оказаться недостаточной, чтобы содержать все необходимые программе данные. Указатели позволяют вам обойти эту проблему.

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

Взгляд на Windows
В данной главе содержится обзор программирования для Microsoft Windows с использованием Borland Pascal (с акцентом на объектно-ориентированное программирование). В представленном здесь примере используется поставляемая с Borland Pascal библиотека ObjectWindows. Вы узнаете о поведении прикладной программы Windows и о том, как с помощью ObjectWindows автоматизировать од- ни задачи и упростить другие.

Изучение принципов алгоритмического программирования на Pascal

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

Идентификаторы