Языка программирования Delphi. Разработка практических заданий

СОДЕРЖАНИЕ



ВВЕДЕНИЕ

1. ОБЩАЯ СТРУКТУРА ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI

1.1 Структура среды программирования

1.1.1 Главные составные части среды программирования

1.1.2 Дополнительные элементы

1.1.3 Стандартные компоненты

1.2 Структура проекта Delphi

2. СИНТАКСИС И СЕМАНТИКА ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI

2.1 Алфавит языка

2.2 Элементарные конструкции

2.3 Переменные, константы и операторы

3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

3.1 Анализ языка программирования Delphi

3.1.1 Достоинства языка программирования

3.1.2 Недостатки языка программирования

3.2 Анализ языка программирования Visual Basic

3.2.1 Достоинства языка программирования

3.2.2 Недостатки языка программирования

4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI

4.1 Задача 1. Примитивный калькулятор

4.2 Задача 2. Решение квадратного уравнения

4.3 Задача 3. Преобразование десятичных чисел в двоичные

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ




ВВЕДЕНИЕ



Целью курсовой работы является изучение языка объектно-ориентированного программирования Borland Delphi и разработка практических заданий. При выполнении курсовой работы предстоит:

	изучить теорию и технологию работы со средой программирования Delphi;

	изучить и проанализировать соответствующую литературу;

	провести сравнительный анализ языков программирования этого класса, выявить достоинства и недостатки;

	привести элементы методической работы в виде разработки вариантов заданий (из прикладных областей) для учащихся старших классов школ изучающих Delphi на уроках информатики. 

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

Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время. Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ. 

Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования: C++, Smalltalk, Delphi и др. 

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

Delphi – чрезвычайно быстро развивающаяся система. Первая версия – Delphi 1. 0 была выпущена в феврале 1995 г. А затем новые версии выпускались ежегодно. 

Каждая последующая версия Delphi дополняла предыдущую. 

Большинство версий Delphi выпускается в нескольких вариантах: Standart – стандартном, Professional – профессиональном, Client/Server – клиент/сервер, Enterprise – разработка баз данных предметных областей. Различаются варианты в основном разным уровнем доступа к системам управления базами данных. Последние варианты - Client/Server и Enterprise, в этом отношении наиболее мощные. 




1. ОБЩАЯ СТРУКТУРА ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI



Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5. 5, добавил в Паскаль объектно-ориентированные свойства, а Delphi — объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией [5, С. 22]. 

Язык Pascal предназначен для описания вычислительного процесса решения задачи, в состав которой могут входить величины. 





Схема 1 – Используемые величины



Константы - данные, значения которых не изменяются в программе. 

Переменные - данные, могущие изменяться при выполнении программы. 

Для обозначения имен констант, переменных, функций, процедур и модулей используются буквы и цифры, входящие в алфавит языка, и знак подчеркивания " _ ". Имена начинаются с буквы или знака подчеркивания " _ "и содержат до 63 значащих символов. Символ пробела в имени не допускается. Эти имена принято называть идентификаторами. 

Выражения - константы, переменные и обращения к функциям, соединенные знаками операций. Операторы - специальные символы и слова, выполняющие действия. 

Функции, процедуры и модули - отдельные программные блоки, имеющие имена и подключаемые к основной программе [2, С. 8]. 

Классы и объекты Delphi. Для реализации интерфейса Delphi использует библиотеку классов, которая содержит большое количество разнообразных классов, поддерживающих форму и различные компоненты формы (командные кнопки, поля редактирования и т. д. ). 

Во время проектирования формы приложения Delphi автоматически добавляет в текст программы необходимые объекты. Если сразу после запуска Delphi просмотреть содержимое окна редактора кода, то там можно обнаружить следующие строки:





type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: Tform1





Это описание класса исходной, пустой формы приложения и объявление объекта — формы приложения. 

Когда программист, добавляя необходимые компоненты, создает форму, Delphi формирует описание класса формы. Когда программист создает функцию обработки события формы или ее компонента, Delphi добавляет объявление метода в описание класса формы приложения. 

Помимо классов визуальных компонентов в библиотеку классов входят и классы так называемых невизуальных (невидимых) компонентов, которые обеспечивают создание соответствующих объектов и доступ к их методам и свойствам. Типичным примером невизуального компонента является таймер (тип TTimer) и компоненты доступа и управления базами данных. 



1.1 Структура среды программирования



Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. К примеру, Borland Pascal for Windows 7. 0, Borland C++ 4. 0, Word for Windows, Program Manager - это все MDI приложения и выглядят по-другому, чем Delphi. MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон внутри одного большого окна. 

Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Это было сделано из-за того, что SDI близок к той модели приложений, что используется в Windows 95. 

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



1.1.1 Главные составные части среды программирования

Ниже перечислены основные составные части Delphi:

	Дизайнер Форм (Form Designer)

	Окно Редактора Исходного Текста (Editor Window)

	Палитра Компонент (Component Palette)

	Инспектор Объектов (Object Inspector)

	Обозреватель дерева объектов (Object TreeView)

Есть, конечно, и другие важные составляющие Delphi, вроде линейки инструментов, системного меню и многие другие, нужные Вам для точной настройки программы и среды программирования. 

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





Рисунок 1 – Дизайнер форм





Рисунок 2 – Окно редактора



Дизайнер Форм в Delphi столь интуитивно понятен и прост в использовании, что создание визуального интерфейса превращается в детскую игру. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонент [1, С. 10]. 

Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время является Редактор. Логика является движущей силой программы и Редактор - то место, где Вы ее "кодируете". 

Палитра Компонент (см. рис. 3) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши. 

Палитра Компонент использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Win32 и т. д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. (На странице Additional есть компоненты для организации страниц с закладками сверху и снизу). 





Рисунок 3 – Палитра Компонентов



Предположим, Вы помещаете компонент TEdit на форму; Вы можете двигать его с места на место. Вы также можете использовать границу, прорисованную вокруг объекта для изменения его размеров. Большинством других компонент можно манипулировать тем же образом. Однако, невидимые во время выполнения программы компоненты (типа TMenu или TDataBase) не меняют своей формы [1, С. 20]. 

Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов (рис. 4). Заметьте, что информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. Важно понять, что каждый компонент является настоящим объектом и Вы можете менять его вид и поведение с помощью Инспектора Объектов. 

Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. К примеру, Вы можете изменить имя и размер компонента TLabel изменяя свойства Caption, Left, Top, Height, и Width. 

Вы можете использовать закладки внизу Инспектора Объектов для переключения между страницами свойств и событий [1, С. 21]. 





Рисунок 4 – Инспектор Объектов



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

Обозреватель дерева объектов (см. рис. 3). Эта панель появилась в Delphi 7, и, на мой взгляд, она является лучшим новшеством этой версии. С помощью дерева компонентов легко находить компоненты, потому что они расположены в виде дерева. Если у вас какой-то компонент будет полностью перекрывать другой, то вы можете выделить верхний компонент, а потом, в дереве компонентов, легко найти тот, который находится снизу. 





Рисунок 5 – Окно Обозревателя дерева объектов. 



1.1.2 Дополнительные элементы

В данном разделе внимание фокусируется на двух инструментах, которые можно воспринимать как вспомогательные для среды программирования:

	Меню (Menu System)

	Панель с кнопками для быстрого доступа (SpeedBar)

Меню предоставляет быстрый и гибкий интерфейс к среде Delphi, потому что может управляться по набору "горячих клавиш". Это удобно еще и потому, что здесь используются слова или короткие фразы, более точные и понятные, нежели иконки или пиктограммы. Вы можете использовать меню для выполнения широкого круга задач; скорее всего, для наиболее общих задач вроде открытия и закрытия файлов, управления отладчиком или настройкой среды программирования. 

SpeedBar находится непосредственно под меню, слева от Палитры Компонент (рис. 6). SpeedBar выполняет много из того, что можно сделать через меню. Если задержать мышь над любой из иконок на SpeedBar, то Вы увидите что появится подсказка, объясняющая назначение данной иконки. 






Рисунок 6 – SpeedBar



1.1.3 Стандартные компоненты

Для дальнейшего знакомства со средой программирования Delphi потребуется рассказать о составе первой страницы Палитры Компонент. 

На первой странице Палитры Компонент размещены от 14 до 16 объектов (рис. 7), в зависимости от версии, в качестве примера используется Delphi 7. Мало кто обойдется длительное время без кнопок, списков, окон ввода и т. д. Все эти объекты такая же часть Windows, как мышь или окно. 

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





Рисунок 7 – Компоненты, расположенные на первой странице Палитры



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

Frames - позволяет разместить на форме так называемый "фрейм". Фрейм из себя представляет другое окно. Чтобы создать окно-фрейм, следует выбрать пункт меню File -> New -> Frame, либо выделить значок Frame в окне File -> New -> Other на вкладке New. До тех пор, пока в приложении не будет ни одного фрейма, использовать данный объект не удастся. Фреймы удобны в том случае, когда какие-либо настройки запрашиваются во время работы программы в виде отдельной формы, а также, например, на одной из вкладок основной формы. 

MainMenu - основное меню окна. Связать его с формой можно через свойство Menu формы. При двойном щелчке по значку MenuMenu появляется дизайнер меню, в котором можно добавлять и удалять пункты. В Caption задаётся текст пунта меню. Чтобы создать черту-разделитель, следует в свойство Caption прописать знак "минус" ("-", без кавычек). 





Рисунок 8 – MainMenu - основное меню окна



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

Label - текстовая метка (надпись) на форме. Используется для отображения любого текста в окне. Текст задаётся в свойстве Caption. Свойство Font позволяет настроить шрифт текста. 

Edit - поле ввода. Используется для ввода любых данных (текста, числа и т. д.), представленных одной строкой. Свойство ReadOnly позволяет запретить редактирование текста в поле. Текст хранится свойством Text. Свойство MaxLength позволяет задать максимальное число символов, которое может быть введено в поле. Значение 0 означает, что ограничение не установлено. 

Memo - многострочный Edit. Используется для ввода больших объёмов текста. Свойство ScrollBars позволяет указать полосы прокрутки, которые будут отображаться у поля при недостатке места для всего текста:

•ssNone - без полос прокрутки;

•ssHorizontal - горизонтальная полоса прокрутки;

•ssVertical - вертикальная;

•ssBoth - обе: и горизонтальная, и вертикальная. 

Button - кнопка, самая что ни есть обыкновенная. Caption - текст на кнопке. 

CheckBox - флажок-переключатель. Состояние хранится в свойстве Style:

•cbUnchecked - не отмечен;

•cbChecked - отмечен;

•cbGrayed - затемнён. 

Само состояние следует изменять с помощью свойства Checked. Таких флажков может быть несколько и каждый может быть отмечен независимо от остальных. 

RadioButton - радио-переключатель. Аналогичен CheckBox, но при наличии нескольких переключателей может быть выбран только один из них. Свойство Checked позволяет изменить состояние переключателя. 

ListBox - список текстовых строк. Используется для выбора одного из вариантов. Строки задаются в свойстве Items. Чтобы изменить исходные значения, следует щёлкнуть по кнопке с тремя точкам (". . . ") в строке свойства Items и в открывшемся редакторе ввести требуемые значения. Свойство MultiSelect позволяет включить/выключить одновременный выбор нескольких строк из списка. 

ComboBox - ещё один список для выбора, но выпадающий - на экране видна всего одна строка, а сам список появляется при нажатии на кнопку со стрелкой. Установив свойство Style в csDropDownList можно запретить ввод произвольного значения в ComboBox. Текст выбранной строки доступен в свойстве Text. 

ScrollBar - полоса прокрутки. Свойство Kind определяет ориентацию полосы на форме: sbHorizontal - горизонтально, sbVertical - вертикально. 

GroupBox - "контейнер" для компонент. Используется для объединения элементов в отдельные области. При перемещении GroupBox'а все компоненты, расположенные на нём, также перемещаются. Для размещения компонент в этом контейнере следует после выбора их на Палитры компонент щёлкнуть по самому контейнеру (а не по форме, как обычно). У GroupBox можно задать текст заголовка (свойство Caption). 

RadioGroup - группа из нескольких RadioButton'ов. Тексты строк задаются в свойстве Items. Номер выбранной строки - свойство ItemIndex (нумерация строк начинается с нуля!). 

Panel - практически такой же контейнер, что и GroupBox, однако без заголовка и с возможностью отключения рельефных границ. 

ActionList - позволяет управлять действиями (Actions), которые привязываются к пунктам меню, кнопкам и т. д. 



1.2 Структура проекта Delphi



Программа Delphi - это несколько связанных между собой файлов. 

Главный файл проекта, изначально называется PROJECT1. DPR. Если необходимо переименовать название проекта, нужно перезаписать этот файл, выбрав в меню File команду Save Project As… При задании имени следует придерживаться правил задания имен в Object Pascal. Имя не должно содержать пробелов (используйте в таком случае знак подчеркивания), должно начинаться с буквы (цифры допустимы, но со второй позиции), не должно содержать других символов, кроме букв и цифр. Под каким именем вы сохраняете проект, под таким именем и будет создаваться исполняемый EXE файл, который вы всегда сможете самостоятельно переименовать [7, С. 32]. 

Модуль программы, который автоматически появляется в начале работы Unit1. Файл называется UNIT1. PAS по умолчанию, но его можно назвать любым другим именем, вроде MAIN. PAS. Это делается аналогично переименованию названия проекта. Необходимо выбрать в меню File команду Save As… Сохраняется активный модуль в редакторе кода. Файл главной формы, который по умолчанию называется UNIT1. DFM, используется для сохранения информации о внешнем виде формы (окна разрабатываемого приложения). При переименовании названия модуля автоматически меняет свое название. 

Файл PROJECT1. RES изначально содержит иконку для проекта. Создается автоматически. Имеет одноименное название с названием проекта. Файл PROJECT1. DSK содержит информацию о состоянии рабочего пространства. Состояние окон во время разработки приложения. Исполняемый EXE файл, который создается в процессе компиляции проекта. Разумеется, если сохранить проект под другим именем, то изменят название и файлы с расширением RES и DSK. После компиляции программы получаются файлы с расширениями: DCU - скомпилированные модули PAS для последующей быстрой компиляции некоторые файлы не перезаписываются. EXE исполняемый файл, ~PA, ~DP - backup файлы редактора. Автоматически создаются и содержат информацию, перед последним сохранением. 

И так, любая программа всегда состоит из уже знакомого нам файла проекта (такой файл имеет расширение . dpr) и одного или нескольких модулей (файлы с расширением . pas) Файл проекта не предназначен для редактирования пользователем и создаётся автоматически самой системой программирования Delphi [7, С. 35]. . 

Для того, чтобы увидеть содержимое файла проекта, необходимо выполнить команду Project View Source. Содержимое файла проекта может быть, например, следующим:





program Project1;

uses

Forms, 

Unit1 in 'Unit1. pas' {Form1};

{$R *. res}

begin

Application. Initialize;

Application. CreateForm(TForm1, Form1);

Application. Run;

end. 



Файл проекта(главный модуль) начинается словом program, за которым следует имя программы, совпадающее с именем проекта. Далее за словом uses следуют имена используемых модулей: стандартного модуля Forms и модуля формы Unit1. 

Похожая на комментарий директива {$R *. RES} указывает компилятору, что нужно использовать файл ресурсов, который содержит описание ресурсов приложения, например, пиктограммы. Звездочка указывает, что имя файла ресурсов такое же, как и у файла проекта, но с расширением . res. 

Исполняемая часть главного модуля находится между операторными скобками begin…end. Операторы исполняемой части обеспечивают инициализацию приложения и вывод на экран стартового окна. Помимо главного модуля каждая программа включает как минимум один модуль формы, который содержит описание стартовой формы приложения и поддерживающих ее работу процедур. В Delphi каждой форме соответствует свой модуль. Для переключения между формой и окном редактора кода, содержащего соответствующий модуль, следует нажать на клавишу F12. Модули - это программные единицы, служащие для размещения фрагментов программ. При помощи содержащихся в них текстов программ и реализуется решаемая пользователем задача. 




2. СИНТАКСИС И СЕМАНТИКА ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI



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



2.1 Алфавит языка



Алфавит - это совокупность допустимых в языке символов [2, С. 15]. Алфавит Турбо Паскаль включает следующий набор основных символов:

	строчные и прописные латинские буквы:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

a b c d e f g h i j k l m n o p q r s t u v w x y z

	пробел

	подчеркивание: _

	арабские цифры:

0 1 2 3 4 5 6 7 8 9

	знаки операций:

+ - * / = <> < > <= >= := @

	ограничители:

. , ' ( ) [ ] (. . ) { } (* *) . . : ;

	спецификаторы:

^ # $

	служебные (зарезервированные) слова:



																ABSOLUTE

																EXPORTS

																LIBRARY

																SET

																ASSEMBLER

																EXTERNAL

																MOD

																SHL

																AND

																FAR

																NAME

																SHR

																ARRAY

																FILE

																NIL

																STRING

																ASM

																FOR

																NEAR

																THEN

																ASSEMBLER

																FORWARD

																NOT

																TO

																BEGIN

																FUNCTION

																OBJECT

																TYPE

																CASE

																GOTO

																OF

																UNIT

																CONST

																IF

																OR

																UNTIL

																CONSTRUCTOR

																IMPLEMENTATION

																PACKED

																USES

																DESTRUCTOR

																IN

																PRIVATE

																VAR

																DIV

																INDEX

																PROCEDURE

																VIRTUAL

																DO

																INHERITED

																PROGRAM

																WHILE

																DOWNTO

																INLINE

																PUBLIC

																WITH

																ELSE

																INTERFACE

																RECORD

																XOR

																END

																INTERRUPT

																REPEAT

																

																EXPORT

																LABEL

																RESIDENT

																



2.2 Элементарные конструкции



Элементарные конструкции языка Паскаль включают в себя имена, числа и строки. 

Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты. Идентификатор в Турбо Паскале может включать в себя:

- буквы латинского алфавита, 

- цифры

- символ подчеркивания. 

Строчные и прописные буквы не различаются (например, NAME, Name и name будет означать одно и то же). Цифра не может стоять на первом месте в идентификаторе, а символ подчеркивания может находиться в любой позиции (например, name1 и name2item являются допустимыми идентификаторами, а 5name - нет; _name, name_, name_item - тоже допустимые названия). Длина идентификатора может быть любой, но значимыми являются только первые 63 символа. В качестве имен не допускается использовать служебные слова. 

Для отделения друг от друга идентификаторов, чисел, зарезервированных слов используются разделители. В качестве них можно использовать: 

- пробел и табуляцию;

- перевод строки;

- комментарий. 

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

Комментарии заключаются либо в скобки { . . . }, либо в скобки вида (* . . . *) и могут занимать любое число строк. Так же для записи комментария используется //… , после // может записать только одну строку. 

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

217 -45 8954 +483

Действительные числа записываются в форме с десятичной точкой:

28. 6 0. 65 -0. 018 4. 0

Возможна также запись с использованием десятичного порядка, который изображается буквой Е:

5Е12 -1. 72Е9 73. 1Е-16

В "переводе" такую запись следует понимать соответственно как:

5x1012 -1. 72x109 73. 1x10-16

Паскаль допускает запись целых чисел и фрагментов действительных чисел в форме с порядком в шестнадцатиричной системе счисления:

$7F $40 $ABC0

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



2.3 Переменные, константы и операторы



Переменная - это область памяти, содержащая значение определённого типа и позволяющая изменить текущее значение на новое. При определении переменной должен указываться тип данных. Переменная определяется в разделе var. Пример:





var

i: Integer;

s: String;



Если есть несколько переменных одного типа, то их можно перечислить через запятую, а в конце указать тип данных. Пример:





var

s, a, t: String; //в стиле с++



Константа - это область памяти содержащая определённое значение, но значение остаётся на весь период существования константы. При определении константы тип данных не указывается. Константа определяется в разделе const. Пример:





const

name: 'vasya';



VAR и CONST определяются до тела проги или процедуры!


Пример:





Procedure Name;

var

name: String;

begin

name:='Vasya';

end;



Операторы используются для того чтобы присвоить значение переменной. 

:= Единственный оператор присвоения в Delphi/Паскаль

Арифметические операторы. 

+ - сложение

- - вычитание

* - умножение

/ - деление

DIV - целочисленное деление

MOD - деление по модулю

Операторы сравнения. 

= - равно

<> - не равно

< - меньше

> - больше

<= - меньше либо равно

>= - больше либо равно

Условные операторы IF. . THEN - позволяет определить выполняются ли некоторые условия и в зависимости выполнить тот или иной код. 

IF -> выражение -> THEN -> оператор -> ELSE -> оператор -> END;

Это читается так:

ЕСЛИ -> выражение -> ТО -> оператор -> ИНАЧЕ -> оператор -> END;


Пример:





IF i=0 THEN i:=1 ELSE i:=i+1;



Выражение - это условие содержащее один или более операторов сравнения. Операторы сравнения перечисляются следующим образом:

IF (a=0) AND (b=1) AND (c=0) THEN. . . - проверяется чтобы a=0 И b=1 И c=0

IF (a=0) OR (b=1) OR (c=0) THEN. . . - проверяется ИЛИ a=0 ИЛИ b=1 ИЛИ c=0

ELSE - не обязательный оператор, его можно не писать. 



Пример:



IF i=0 THEN i:=1;



Операторов может быть несколько, их только надо взять в begin и end. 

Пример:





IF i=0 THEN

begin

i:=1;

b:=2;

c:=3;

end;



Когда после END стоит ELSE, то знак «;» ставить не надо. 

Пример:





IF i=0 THEN

begin

i:=1;

b:=2;

c:=3;

end ELSE

c:=5;




3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ



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

В данной работе предпринимается попытка провести сравнительный анализ конкретных реализаций этих новых подходов к программированию. 



3.1 Анализ языка программирования Delphi



Последняя на сегодняшний день версия - 2009. Delphi является мощным и универсальным средством разработки приложений, RAD-оболочкой. Ее вместе с библиотекой VCL, на которой оболочка основана и написана, можно назвать действительно революционной. Сравнение с C++ Builder 4 показывает, что производительность Pascal-кода, сгенерированного Delphi, всего на 4-5% меньше, чем кода C++. 

Возможности языка практически не ограничены. Конечно, Object Pascal накладывает определенные ограничения, но для тех вещей, для которых ее писали, Delphi подходит практически оптимально. Из понравившихся (но, разумеется, нестандартных) "улучшений", внесенных Borland в Object Pascal, хотелось бы выделить свойства (properties) и перегружаемость процедур и функций (overloading). Определенные неудобства при работе с низкоуровневыми функциями API может вызвать то, что стандартным языком для API все же является С, и именно на нем пишутся все новые Software Development Kit (SDK) и заголовочные файлы к ним. Это ни в коем случае не означает, что вы не сможете работать с новыми SDK, просто вам придется написать несложный (но, возможно, объемный) код на Pascal, в котором определить интерфейсы данного SDK. Не поленитесь, однако, поискать на серверах, посвященных Delphi. Очень может быть, что эту работу кто-то уже сделал. 



3.1.1 Достоинства языка программирования

Простота, скорость и эффективность Delphi объясняют ее популярность. Delphi имеет один из самых быстрых компиляторов, порождающий, тем не менее, весьма и весьма неплохой объектный код. Есть и другие достоинства: простота изучения Object Pascal; облегчающие жизнь нововведения - вроде свойств (properties); программы, написанные на Delphi, не требуется снабжать дополнительными библиотеками (в отличие от связки C++/MFC). В самом деле, VCL предоставляет удобный, легко расширяемый объектно-ориентированный интерфейс к Windows, что ни в коей мере не мешает программисту опускаться в самые глубины Windows API. Создателям оригинальных компонентов это приходится делать довольно часто, в отличие от "просто программистов". Как было сказано выше, модель программирования в Delphi - компонентная, что позволяет пользоваться компонентами, написанными другими разработчиками, даже не имея их исходного кода и уж подавно не изучая его. В Интернете есть огромное количество компонентов, значительная часть которых распространяется бесплатно. Применение компонентной модели приводит к тому, что довольно многое в поведении объектов программировать не нужно вообще, и многое, на что в других средах ушли бы недели, можно сделать за часы или даже минуты. Оно и понятно - это ведь RAD-среда. К достоинствам можно отнести очень быстрый браузер классов и мгновенный вывод подсказки автозавершения кода (code completion). Если кратко - может все. Конечно, Object Pascal накладывает определенные ограничения, но для тех вещей, для которых ее писали, Delphi подходит практически оптимально. Из понравившихся (но, разумеется, нестандартных) "улучшений", внесенных Borland в Object Pascal, хотелось бы выделить свойства (properties) и перегружаемость процедур и функций (overloading). Определенные неудобства при работе с низкоуровневыми функциями API может вызвать то, что стандартным языком для API все же является С, и именно на нем пишутся все новые Software Development Kit (SDK) и заголовочные файлы к ним. Это ни в коем случае не означает, что вы не сможете работать с новыми SDK, просто вам придется написать несложный (но, возможно, объемный) код на Pascal, в котором определить интерфейсы данного SDK. Не поленитесь, однако, поискать на серверах, посвященных Delphi. Очень может быть, что эту работу кто-то уже сделал. 



3.1.2 Недостатки языка программирования

Их мало, но они есть. Главный, на мой взгляд, недостаток (и одновременно достоинство) - статическое присоединение (linking) библиотеки VCL и компонентов к исполняемому файлу. Справедливости ради надо сказать, что VCL можно линковать и динамически, но тогда с каждым своим приложением вам придется распространять еще и VCL, а это более 3 Мбайт. Однако если не увлекаться интерфейсными "наворотами" и использовать в программе минимально необходимое число компонентов, то исполняемый файл будет невелик. Другой недостаток (и опять же достоинство) состоит в том, что в используемой в Delphi парадигме форм (Forms) вся информация о форме, включая свойства, настройки компонентов, значения по умолчанию, хранится в exe-файле, причем не оптимальным образом. Анализ исходного кода VCL показывает, что при создании формы фактически происходит чуть ли не синтаксический разбор данных инициализации, что не может ее не замедлять. Третий недостаток, который кто-нибудь тоже может назвать достоинством, - это Object Pascal. Несмотря на простоту, эффективность и легкость в изучении, ему не хватает очень многих мощных средств C++. Мне, например, не достает шаблонов, перегрузки операторов и объектной модели, похожей на объектную модель C++ . Разочаровала Delphi и малым числом параметров оптимизации кода. Кроме того, заметна тенденция к "разрастанию" exe-файлов, генерируемых Delphi. Так, большинство небольших проектов, разработанных в Delphi 4, при перекомпиляции в Delphi 5 "растолстели" на 40-70 Кбайт, при этом, разумеется, не обретя новой функциональности. 



3.2 Анализ языка программирования Visual Basic



В 1991 г. фирмой Microsoft был разработан и выпущен Visual Basic. Microsoft Visual Basic — средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки. Язык Visual Basic унаследовал дух, стиль и отчасти синтаксис своего предка — языка Бэйсик, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Среда разработки VB включает инструменты для визуального конструирования пользовательского интерфейса. 

Visual Basic считается хорошим средством быстрой разработки прототипов программы, для разработки приложений баз данных и вообще для компонентного способа создания программ, работающих под управлением операционных систем семейства Microsoft Windows. 

Первое признание серьёзными разработчиками Visual Basic получил после выхода версии 3 — VB3. Окончательное признание как полноценного средства программирования для Windows — при выходе версии 5 — VB5. Версию VB6, входящую в состав Microsoft Visual Studio 6. 0, стала по-настоящему зрелым и функционально богатым продуктом. 



3.2.1 Достоинства языка программирования

Высокая скорость создания приложений с графическим интерфейсом для MS Windows. Простой синтаксис, позволяющий очень быстро освоить язык. Возможность как компиляции в машинный код, так и интерпретации во время отладки. 



3.2.2 Недостатки языка программирования

Поддержка операционных систем только семейства Windows (Исключение — VB1 for DOS). Отсутствие механизма наследования объектов. Существующие в языке наследование, позволяет наследовать только интерфейсы объектов, а не их самих. Таким образом, в унаследованом классе должны быть явно переписаны все функции базового класса. Также в унаследованном классе невозможно добавление каких-либо методов, присущих только даннному классу, то есть если абстрактный базовый класс содержит только два метода, то и производный класс содержит только два метода, не более и не менее того. Требует установленных DLL для работы программы. 

Часто критике подвергаются такие аспекты Visual Basic, как возможность отключить средства слежения за объявленными переменными, возможность неявного преобразования переменных, наличие типа данных «Variant». По мнению критиков, это даёт возможность писать крайне плохой код. С другой стороны, это можно рассматривать как плюс, так как VB не навязывает «хороший стиль», а даёт больше свободы программисту. 

Отсутствие указателей, низкоуровневого доступа к памяти, ASM-вставок. Несморя на то, что парадигма Visual Basic позволяет среднему VB-программисту обходиться без всего этого, перечисленные вещи также нередко становятся объектами критики. И хотя, используя недокументированные возможности и определённые ухищрения, всё это можно реализовать и на VB; пользоваться этими трюками гораздо сложнее, чем, например, на Delphi. 




4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI



4.1 Задача 1. Примитивный калькулятор



1. Войдите в среду Delphi, дважды щелкнув мышью на пиктограмму Delphi или через меню “Пуск”. 

2. Выберите команду File/Save Project As…

3. В появившемся диалоге перейдите к корневому каталогу диска C, выбрав соответствующий пункт в выпадающем списке вверху окна. 

4. Откройте папку, соответствующую названию вашей группы (например, Р-123). Если такой нет, то создайте её, щелкнув правой кнопкой мыши на свободном месте, выбрав из появившегося контекстного меню пункт Создать/папку и введя нужное название (после чего не забудьте её открыть). 

5. Создайте (как описано в предыдущем пункте) папку "Ваша_фамилия Lab1". 

6. Сохраните Unit1. pas под новым именем Main. pas, а Project1. dpr под новым именем Lab1. dpr. 

7. Выберите из политры Standard визуальных компонентов и поместите в форму следующие компоненты:

8. Окно редактирования со связанной с ним меткой Operand 1. В этом окне вводится первый операнд. 

9. Окно редактирования со связанной с ним меткой Operator. В этом окне вводится операция. В программе следует предусмотреть операции +, -, / и * . 

10. Окно редактирования со связанной с ним меткой Operand 2. В этом окне вводится второй операнд. 

11. Окно редактирования со связанной с ним меткой Result. В этом окне отображается результат запрошенной вами операции. 

12. В событиях OnClick каждой кнопки опишите соответствующие действия, например, для кнопки код события должен выглядеть следующим образом:





If Edit2. Text='0' Then ShowMessage('Знаменатель равен "0"!')

Else

Edit3. Text:=FloatToStr(StrToFloat(Edit1. Text)/StrToFloat(Edit2. Text));





Обратите внимание, что в данном действии осуществляется проверка деления на ноль. Оператор ShowMessage выдает сообщение, представленное на рис. 10 в случае, когда Y равен "0". 





Рисунок 9 – Пример формы калькулятора





Рисунок 10 – Сообщение об ошибке



Процедуры FloatToStr и StrToFloat выполняют преобразования из числовой переменной в строковую и из строковой в числовую соответственно. 

Остальные клавиши должны быть описаны соответственно. 




4.2 Задача 2. Решение квадратного уравнения



Определите корни квадратного уравнения . Алгоритм решения этой задачи состоит в вычислении детерминанта. Если D  0, то корни действительные, в противном случае – комплексные. 



unit SqRoot_;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 

Dialogs, StdCtrls, OleCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Button1: TButton;

Label5: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

// решает квадратное уравнение

procedure SqRoot(a, b, c: real; var x1, x2: real; var ok: boolean);

{ a, b, c - коэффициенты уравнения

x1, x2 - корни уравнения

ok = True - решение есть

ok = False - решения нет }

var

d: real; // дискриминант

begin

d := Sqr(b) - 4 * a * c;

if d < 0

then

ok := False // уравнение не имеет решения

else

begin

ok := True;

x1 := (-b + Sqrt(d)) / (2 * a);

x2 := (b + Sqrt(d)) / (2 * a);

end;

end;

{$R *. dfm}

procedure TForm1. Button1Click(Sender: TObject);

var

k1, k2: real; // корни уравнения

rez: boolean; // True - решение есть, False - решения нет

mes: string; // сообщение

begin

SqRoot(StrToFloat(Edit1. Text), StrToFloat(Edit2. Text), 

StrToFloat(Edit3. Text), k1, k2, rez);

if rez then

mes := 'Корни уравнения' + #13 +

'x1=' + FloatToStrF(k1, ffGeneral, 4, 2) + #13 +

'x2=' + FloatToStrF(k2, ffGeneral, 4, 2) + #13

else

mes := 'Уравнение не имеет решения';

label5. Caption := mes;

end.



4.3 Задача 3. Преобразование десятичных чисел в двоичные



Разработка программы преобразования десятичных чисел в двоичные. 





Рисунок 11 – Пример формы приложения




Рисунок 12 – Результат выполнения программы






unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *. dfm}

procedure TForm1. Button1Click(Sender: TObject);

var

sDv: string;

iMod, iDch :integer; // iDch - наше десятичное число, sDv - двоичное. 

begin

iDch := StrToInt(Edit1. text); // Присваиваем переменной значение поля Edit1. 

{ Получаем остаток от деления десятичного числа на 2. Делим десятичное число на два без остатка. Добавляем в начало нашего двоичного числа остаток от деления. Если поделенное на 2 без остатка десятичное число меньше двух, то цикл завершает работу, так как если десятичное число меньше 2, оно равно либо 1, либо 0, а эти цифры переводить уже не надо, так как они сами собой и останутся. }

while iDch >= 2 do

begin

iMod := iDch mod 2;

iDch := iDch div 2;

sDv := IntToStr(iMod) + sDv;

end;

Edit2. Text := IntToStr(iDch) + sDv; // Ставим в начало нашего двоичного числа оставшееся после цикла десятичное число(1 или 0) и выводим в Edit2. 

end;

end. 




ЗАКЛЮЧЕНИЕ



Система Delphi позволяет решать множество задач, в частности:

•Создавать законченные приложения для Windows самой различной направленности: от чисто вычислительных и логических, до графических и мультимедиа. 

•Быстро создавать (даже начинающим программистам) профессионально выглядящий оконный интерфейс для любых приложений. 

•Создавать мощные системы работы с локальными и удаленными базами данных

•Создавать справочные системы (файлы . hlp) для своих приложений и мн. др. 

Delphi - это комбинация нескольких важнейших технологий:

•Высокопроизводительный компилятор в машинный код

•Объектно-ориентированная модель компонент

•Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов

•Масштабируемые средства для построения баз данных. 

В процессе выполнения курсового проекта я усвоил некоторые возможности Delphi. Но даже этот небольшой объем материала позволил мне убедиться в колоссальности данной среды. 

Целью курсовой работы было изучение языка программирования DELPHI и разработка практических заданий. 

При выполнении курсовой работы:

	была изучена теория и технология работы с средой программирования Borland Delphi7;

	была изучена и проанализирована соответствующая литература;

	был проведён сравнительный анализ языков этого класса и показаны преимущества и недостатки языка Delphi;

	были приведены элементы методической работы в виде разработки вариантов заданий (из прикладных областей) для учащихся старших классов школ изучающих Delphi на уроках информатики. 




СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ



	Гофман, В. Э. Delphi. Быстрый старт / В. Э. Гофман, А. Д. Хомоненко. – СПб. : БХВ-Петербург, 2003. – 288 с. 

	Мизрохи, С. В. Turbo Pascal и объектно-ориентированное программирование / С. В. Мизрохи. – М. : Финансы и статистика, 1992. – 193 с. 

	Пестриков, В. М. Delphi на примерах / В. М. Пестриков, А. Н. Маслобоев. — СПб. : БХВ-Петербург, 2005. — 496 с. 

	Стивене, Р. Delphi. Готовые алгоритмы / Род Стивене; Пер. с англ. Мерещука П. А. - 2-е изд. , стер. - М. : ДМК Пресс ; СПб. : Питер, 2004. - 384 с. 

	Фаронов В. В. Deiphi 6. Учебный курс / В. В. Фараонов. – СПб. : Питер, 2002. – 260с. 

	Федоров А. Г. Создание Windows-приложений в среде Delphi / А. Г. Федоров. – М. : ТОО «Компьютер Пресс», 1999. – 347 с. 

	Фленов М. Е. Библия Delphi / М. Е. Фленов. — 2-е изд. , перераб. и доп. – СПб. : БХВ-Петербург, 2008. — 800 с. 





3