ООП — языками в настоящее время являются C++, Object Pascal, SmallTalk, Java, ADA. Собственно, «самым-самым» ООП языком является SmallTalk, который самый первый реализовал принципы объектно-ориентированного программирования. Но этот язык является интерпретируемым.
К тому же программы, написанные на SmallTalk, выполняются в среде виртуальной SmallTalk-машины, что не подходит для создания эффективных приложений. А вот любимый многими Visual Basic вообще не является ООП-языком, хотя на первый взгляд этого не скажешь. Обилие различных визуальных «объектов», «объектов»-списков, визуальное построение форм и многое другое являются просто встроенными возможностями языка и среды разработки. В VB нет главного — возможности создания своих классов и наследования свойств и методов у уже существующих классов. А расширение возможностей осуществляется только за счет подключения библиотек настоящих объектов, реализованных с помощью других языков программирования, в частности Object Pascal или C++, или создания экземпляров классов, предоставляемых операционной системой (например, создание экземпляра Excel’а).
Урок 8. Операторы ввода readln/read и диалоговые программы. Программирование на Pascal / Паскаль
Описание классов в Object Pascal
Для создания классов в Object Pascal введена конструкция class:
Type TmyClassA = class(имя класса-родителя) End;
TmyClassB = class End;
«Так просто?» — скажете вы. Да, действительно просто — мы создали новый тип данных — класс TmyClassA ( TmyClassB ). И хотя мы еще ничего не сказали о том, что это за класс объектов, как будут вести себя объекты этого класса, какие они будет иметь свойства и многое другое, это все же настоящий класс объектов, который умеет уже очень многое!
Дело в том, что в Object Pascal все классы наследуются от базового класса TObject , который представляет из себя корень всей будущей иерархии классов, эдакий «первокирпичик». Этот «первокирпичик» умеет создавать свои экземпляры, уничтожать их, давать информацию о своем имени, имеет диспетчер сообщений и еще массу полезных функций, без которых не может существовать ни один класс. Если в заголовке класса не указан «родитель», то класс просто наследуется от TObject . Т.е. описание класса TmyClassB в данном случае равносильно следующей конструкции:
Type TmyClassB = class(TObject) End;
Попробуем теперь наш класс в действии. Но для начала следует подготовить плацдарм для боевых действий.
Запускаем Delphi, создаем новый проект (File -> New application). Затем убираем из проекта модуль Unit1 (Project -> Remove from project, выбираем Unit1 и нажимаем OK). В проекте остается только файл project.dpr. Стираем весь текст и оставляем только следующие строки:
Program ClassTest; Uses Windows; Begin End.
Все готово. Обратите внимание на 2-ю строку: < $AppType Console >. Это — команда компилятору собрать консольное приложение, т.е. приложение, работающее в текстовом режиме, подобно старым DOS-программам, написанным на Turbo Pascal. При этом программа остается полноценным Win32-приложением.
Этого же результата можно добиться, открыв Опции проекта (Project -> Options…) и на вкладке Linker поставить галочку в пункте Generate console application. Таким образом мы на время избавили себя от необходимости изучения графического интерфейса Windows и получили простую возможность вывести результаты нашей работы на дисплей.
Pascal | Переменные
Ну а теперь приступим к испытаниям. Описание класса подобно проекту автомобиля, по которому на заводе собирают готовые экземпляры автомобилей. На проекте ездить нельзя :), а вот на автомобиле, собранном по этому проекту — пожалуйста. Точно так же следует поступить и нам:
Type TmyClassA = class(TObject) End; TmyClassB = class End; Var ObjA: TmyClassA; < Описание переменной типа TmyClassA >ObjB: TmyClassB; < Описание переменной типа TmyClassB >Begin ObjA := TmyClassA.Create; ObjB := TmyClassB.Create;
Современные версии Object Pascal
Важным шагом в развитии языка является появление свободных реализаций языка Паскаль Free Pascal и GNU Pascal, которые не только вобрали в себя черты множества других диалектов языка, но и обеспечили чрезвычайно широкую переносимость написанных на нём программ (например GNU Pascal поддерживает более 20 различных платформ, под более чем 10 различными операционными системами, Free Pascal обеспечивает специальные режимы совместимости с различными распространёнными диалектами языка, такими как Turbo Pascal (полная совместимость), Delphi и другими.
В настоящее время, начиная с Delphi 2003, создана реализация языка для платформы Net, хотя разработчики продолжают использовать Delphi более ранних версий.
О коммерческих разработках на Free Pascal, GNU Pascal и TMT Pascal на данный момент известно мало.
Кроме того, в Южном федеральном университете разрабатывается язык и система программирования PascalABC.NET, ориентированная на обучение современному программированию. Язык системы — это Object Pascal для платформы Microsoft .NET, который содержит все основные элементы современных языков программирования: модули, классы, перегрузку операций, интерфейсы, исключения, обобщённые классы, сборку мусора, а также некоторые средства параллельного программирования.
Особенности языка
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.
Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п. Подробный разбор недостатков языка Паскаль того времени был выполнен Брайаном Керниганом в статье «Почему Паскаль не является моим любимым языком программирования» [9] (эта статья вышла в начале 1980-х, когда уже существовал язык Модула-2, потомок Паскаля, избавленный от большинства его пороков, а также более развитые диалекты Паскаля). Некоторые недостатки Паскаля были исправлены в ISO-стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров.
Необходимо заметить, что многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 1970-х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. В начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники академик А. П. Ершов разработал алголо-паскалеподобный «учебный алгоритмический язык».
Наиболее известной реализацией Паскаля, обеспечившая широкое распространение и развитие языка, является Turbo Pascal фирмы Borland, выросшая затем в объектный Паскаль для DOS (начиная с версии 5.5) и Windows и далее в Delphi, в которой были внедрены значительные расширения языка.
Диалекты Паскаля, применяемые в Turbo Pascal для DOS и Delphi для Windows, стали популярны из-за отсутствия других успешных коммерческих реализаций.
Источник: studfile.net
Язык Паскаль и интегрированные среды разработки программ
Хотя язык Паскаль является относительно старым языком программирования, созданным Никлаусом Виртом в 1968-69 годах специально для обучения студентов программированию, но с появлением персональных компьютеров он получил широкое распространение не только в образовательной сфере, но и при решении различных прикладных задач.
В 1986 году фирма Apple разработала объектное расширение языка Паскаль, получив в результате Object Pascal. Он был разработан группой Ларри Теслера, который консультировался с Никлаусом Виртом.
Турбо-Паскаль
В 1983 году появилась первая реализация инструментальной среды Турбо Паскаль, предназначенная для IBM-совместимых компьютеров. Она включала в себя оболочку (интерфейс, с помощью которого происходило общение человека с компьютером: набор и запуск программ, считывание результатов и т.д.), текстовый редактор, транслятор и отладчик. С тех пор система программирования Турбо Паскаль непрерывно совершенствовалась фирмой Borland International. Появилась развитая система подсказки, система сборки всей программы из отдельных модулей (линковщик), богатые библиотеки подпрограмм и многое другое. Комплекс программных средств, используемый программистами для разработки программного обеспечения, стали называть интегрированной инструментальной средой разработки программ (Integrated Development Environment, IDE, иногда именуемая ИСР), или просто средой программирования.
В 1992 году была представлена ИСР уже с использованием языка Object Pascal – Турбо-Паскаль 7.0. На этом развитие Турбо Паскаля закончилось. Окно ИСР Турбо-Паскаль представлено на рис.2.1.
Рис. 2.1. Создание нового окна программы в Турбо-Паскале
Free Pascal
Свободно распространяемые компиляторы системы программирования Free Pascal реализованы во многих дистрибутивах Linux, есть свободные компиляторы и для ОС Windows XP/7/10. На основе Free Pascal создана свободная мультиплатформенная среда Lazarus, аналогичная среде Delphi. Free Pascal внешне очень похож на Турбо Паскаль, хотя и является мультиплатформенным.
Начальная заставка этой ИСР приведена на рис.2.2.
Так как Free Pascal – свободно распространяемое ПО, то его можно скачать с сайта http://freepascal.org/ и бесплатно установить. На этом же сайте и находится вся документация по Free Pascal.
Рис.2.2. Начальная заставка Free Pascal.
Pascal АВС.NET
Эта ИСР наиболее приближена к профессиональной системе Delphi, то есть разработана без оглядки на старую ОС MS DOS. Как следствие, здесь присутствует панель инструментов, закладки для оперативного переключения между программами, 2 окна: ввода и вывода результатов. Учебная система программирования Pascal ABC.NET (автор – С.С. Михалкович) представляет собой диалект стандартного языка Паскаль. Она призвана осуществить постепенный переход от простейших программ к объектно-ориентированному программированию сложных программных продуктов уже на базе Delphi.
Начало работы в этой ИСР представлено на рис.2.3.
Хотя и считается, что интегрированная среда разработки Pascal АВС.NET полностью совместима с языком программирования Object Pascal, но это не так. В Pascal АВС.NET достаточно много изменений, указанных в приложении Б, взятых из языков Basic, C, а главное, с платформы.NET. Поэтому, хотя поначалу кажется, что язык, используемый в Pascal АВС.NET, такой же, что и Object Pascal, но это не так.
Конечно, в некоторых случаях проще написать короткую (учебную) программу в среде Pascal АВС.NET, но все-таки лучше использовать стандартный язык программирования.
В любом случае это так же свободно распространяемое ПО, находящееся на сайте http://pascalabc.net/.
Рис.2.3. Начало работы в Pascal АВС.
Delphi
Delphi является профессиональной средой программирования, хотя в его основе лежит всё тот же язык программирования Object Pascal. ИСР Delphi прошла долгий путь развития, начиная с Borland Delphi (1995 г.) для ОС Windows 3.1, затем для Windows 95 (еще 16-разрядных). Существовали версии Delphi с 2.0 до 8.0 (1996-2003 годы), Delphi 2005-2010 с соответствующими годами выпуска. Начиная с 2010 года стала выпускаются ИСР Delphi ХЕ, затем Delphi ХЕ2 (2011 год) и так далее.
Во введении будет кратко рассмотрена работа со средой Free Pascal. Работа с остальными ИСР очень похожа.
После того, как программа составлена, ее необходимо ввести в компьютер. Здесь мы и сталкиваемся с инструментальными пакетами программ Free Pascal или Pascal АВС. Free Pascal пакет содержит не только транслятор с языка Object Pascal, но и редактор текста, инструментальную оболочку, отладчик, описание ИСР, обширные библиотеки программ и многое другое, например, программы примеров объектно-ориентированного программирования.
Для связи основных из этих программ в единое целое, создания удобного и наглядного интерфейса и предназначена интегрированная инструментальная среда разработки программ, кратко ИСР.
Вызов ИСР осуществляется посредством запуска либо с рабочего стола, либо с помощью кнопки меню «Пуск» файла fp.exe. После запуска файла fp.exe появляется основной экран ИСР, состоящий из трех частей: строки меню, рабочей зоны и строки состояния в соответствии с рис.2.2.
При начальном запуске ИСР в рабочей зоне открыто одно окно с номером 1 в правом верхнем углу и с заголовком noname01.pas. В дальнейшем, после записи программы на диск, стандартный заголовок заменится на имя программы, данное ей при записи. Если рабочая зона пустая, то создается новое окно командой File > New, как представлено на рис. 2.4.
Рис. 2.4. Вид окна ИСР после запуска файла fp.exe в оконном режиме
Мигающий курсор указывает то место на экране, в котором будет появляться очередной символ текста. Ввод каждой новой строки заканчивается нажатием клавиши Enter. Компилятор не различает прописные и строчные буквы, поэтому все равно, в каком регистре набираются латинские буквы. Так, следующие строки будут эквивалентными:
Набирая текст, особое внимание необходимо обращать на точное воспроизведение всех знаков: точек, точек с запятой, апострофов, пробелов, так как компилятор очень чувствителен к мелочам подобного рода.
Строка меню активизируется клавишей F10 (если управление осуществляется с клавиатуры) и состоит из 10 пунктов, которые, в свою очередь, разворачиваются в спускающиеся подменю:
File – позволяет выполнять все основные операции с файлами: создавать новые, загружать имеющиеся, сохранять созданные и отредактированные файлы, выводить на принтер содержимое этих файлов, заканчивать сеанс с ИСР и так далее.
Edit – дает возможность выполнять основные операции редактирования текста.
Search – позволяет осуществлять поиск фрагментов текста и при необходимости производить замену найденного фрагмента новым.
Run – позволяет запускать программу, находящуюся в рабочей зоне, а так же при необходимости пошагово выполнять данную программу или ее часть. Если были внесены изменения в программу, то при запуске она автоматически заново компилируется.
Compile – возможно осуществить компиляцию программы, которая находится в рабочей зоне, без ее выполнения, чтобы проверить на наличие ошибок.
Debug – содержит команды, облегчающие процесс поиска ошибок в программе: расстановка точек остановки, визуализация окна отладки, окна регистров, окна выходных результатов и так далее.
Tools – дает возможность выполнять некоторые программы, не выходя из ИСР.
Options – здесь находятся команды, позволяющие установить необходимые для работы параметры компилятора и ИСР.
Window – позволяет выполнять все основные операции с окнами (хотя их гораздо удобнее выполнять с помощью мыши): открывать, закрывать, перемещать, изменять размер.
Help – позволяет получить имеющуюся в системе справочную информацию.
Система меню позволяет выполнять практически все команды ИСР и интегрированных программ, и выполнена в соответствии со стандартом SAA (Turbo Vision).
Строка состояния, находящаяся в нижней части экрана, в режиме редактирования демонстрирует некоторые из часто используемых операций ИСР и комбинации клавиш для их быстрого вызова, которые позволяют выполнить соответствующие операции, минуя стандартную процедуру их вызова через меню. В некоторых режимах здесь выводятся подсказки или другая справочная информация.
Предусмотрены в этой среде и всплывающие подсказки, например, на рис.2.5 (в рамке серого (зеленого) цвета подсказка служебного слова Program).
Рис. 2.5. Всплывающие подсказки в Free Pascal.
Источник: cyberpedia.su