Разработка электронного учебника "Практическое решение задач в Delphi"
Знакомство с объектно-ориентированным языком программирования Borland Delphi. Главные составные части среды Delphi. Интерактивные обучающие программы - тьюторы. Построение пользовательского интерфейса, создание приложений, работающих с базами данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 16.05.2013 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Пункт меню "Run". Можно использовать "Run" для компиляции и запуска программы и для указания параметров командной строки для передачи в программу. Здесь же имеются опции для режима отладки.
Пункт меню Options | Project. "Options" наиболее сложная часть системного меню. Это центр управления, из которого вы можете изменять установки для проекта и для всей рабочей среды Delphi. В "Options" есть семь пунктов:
Project
Environment
Tools
Gallery
--
Open Library
Install Components
Rebuild Library
Первые четыре пункта вызывают диалоговые окна. Ниже приведено общее описание пункта меню "Options":
· Project - выбор установок, которые напрямую влияют на текущий проект, это могут быть, к примеру, директивы компилятора проверки стека (stack checking) или диапазона (range checking).
· Environment - конфигурация самой среды программирования (IDE). Например, здесь можно изменить цвета, используемые в Редакторе.
· Tools - позволяет добавить или удалить вызов внешних программ в пункт главного меню "Tools". Например, если Вы часто пользуетесь каким-нибудь редактором или отладчиком, то здесь его вызов можно добавить в меню.
· Gallery - позволяет определить специфические установки для Эксперта Форм и Эксперта Проектов и их "заготовок". Эксперты и "заготовки" предоставляют путь для ускорения конструирования интерфейса программы.
· Последние три пункта позволяют сконфигурировать Палитру Компонент.
Диалог из пункта Options | Project включает пять страниц:
· На странице Forms перечислены все формы, включенные в проект; Вы можете указать, нужно ли автоматически создавать форму при старте программы или Вы ее создадите сами.
· На странице Application Вы определяете элементы программы такие, как заголовок, файл помощи и иконка.
· Страница Compiler включает установки для генерации кода, управления обработкой ошибок времени выполнения, синтаксиса, отладки и др.
· На странице Linker можно определить условия для процесса линковки приложения
· Страница Directories/Conditionals - здесь указываются директории, специфичные для данного проекта.
После предыдущего абзаца с общим описанием, каждая страница описана детально в отдельной главе.
Все установки для проекта сохраняются в текстовом файле с расширением OPT и Вы можете вручную их исправить.
Страница Forms
Рис 4.
На странице Forms можно выбрать главную форму проекта. Изменения, которые Вы сделаете, отобразятся в соответствующем файле DPR. Например, в нижеследующем проекте, Form1 является главной, поскольку появляется первой в главном блоке программы:
program Project1;
uses
Forms,
Unit1 in 'UNIT1.PAS' {Form1},
Unit2 in 'UNIT2.PAS' {Form2};
{$R *.RES}
begin
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
Если изменить код так, чтобы он читался
begin
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
то теперь Form2 станет главной формой проекта.
Вы также можете использовать эту страницу для определения, будет ли данная форма создаваться автоматически при старте программы. Если форма создается не автоматически, а по ходу выполнения программы, то для этого нужно использовать процедуру Create.
Кстати, в секции Uses имя формы в фигурных скобках является существенным для Менеджера Проектов и удалять его не стоит. Не нужно вообще ничего изменять вручную в файле проекта, если только Вы не захотели создать DLL, но об этом позднее.
Страница Applications. На странице Applications, см. рис.5, вы можете задать заголовок (Title), файл помощи (Help file) и пиктограмму (Icon) для проекта.
Рис.5: Страница общих установок для приложения
Страница Compiler. Ранее уже говорилось, что установки из пункта меню "Options | Project" сохраняются в соответствующем файле с расширением OPT. Давайте рассмотрим директивы компилятора на странице Compiler (рис.6).
Рис.6: Страница для определения директив компилятора
Следующая таблица показывает, как различные директивы отображаются в OPT файле, на странице Compiler и внутри кода программы:
OPT File |
Options Page |
Editor Symbol |
|
F |
Force Far Calls |
{$F+} |
|
A |
Word Align Date |
{$A+} |
|
U |
Pentium-Safe FDIV |
{$U+} |
|
K |
Smart Callbacks |
{$K+} |
|
W |
Windows (3.0) Stack |
{$W+} |
|
R |
Range Checking |
{$R+} |
|
S |
Stack Checking |
{$S+} |
|
I |
IO Checking |
{$I+} |
|
Q |
Overflow Checking |
{$Q+} |
|
V |
Strict Var Strings |
{$V+} |
|
B |
Complete Boolean Evaluation |
{$B+} |
|
X |
Extended Syntax |
{$X+} |
|
T |
Typed @ Operator |
{$T+} |
|
P |
Open Parameters |
{$P+} |
|
D |
Debug Information |
{$D+} |
Страница Linker. Теперь давайте перейдем к странице Linker, показанной на рис.7.
Рис.7: Страница линковщика
Установки отладчика рассматриваются ниже. Если буфер линковщика расположен в памяти, то линковка происходит быстрее.
Размер стека (Stack Size) и локальной динамической памяти (Heap Size) весьма важны. Delphi устанавливает по умолчанию и Stack Size, и Heap Size в 8192 байт каждый. Вам может понадобиться изменить размер стека в программе, но обычно это не более 32Кб. В сумме эти два размера не должны превышать 64Кб, иначе будет выдаваться ошибка при компиляции программы.
Страница Directories/Conditionals. Страница Directories/Conditionals, рис.8, дает возможность расширить число директорий, в которых компилятор и линковщик ищут DCU файлы.
Рис.8: Страница Directories/Conditionals
В файле DELPHI.INI содержится еще один список директорий. Запомните, что в OPT файле - список директорий для конкретного проекта, а в файле DELPHI.INI - список относится к любому проекту.
Output directory - выходная директория, куда складываются EXE и DCU файлы, получающиеся при компиляции.
Search path - список директорий для поиска DCU файлов при линковке. Директории перечисляются через точку с запятой;
Conditional defines - для опытного программиста и на первом этапе создания проекта не требуется. Для информации можно вызвать Справочник (on-line help).
Конфигурация среды программирования (IDE)
Пункт меню "Options | Environment" предоставляет Вам большой набор страниц и управляющих элементов, которые определяют внешний вид и работу IDE. Delphi позволяет сделать следующие важные настройки:
1. Определить, что из проекта будет сохраняться автоматически
2. Можно менять цвета IDE
3. Можно менять подсветку синтаксиса в РедактореМожно изменить состав Палитры КомпонентУказать "горячие клавиши" IDE
4. Первая страница пункта меню "Options | Environment" показана на рис.9.
Рис.9: Страница Preferences
В группе "Desktop Contents" определяется, что будет сохраняться при выходе из Delphi. Если выбрать Desktop Only - это сохранит информацию о директориях и открытых окнах, если выбрать Desktop And Symbols - это сохранит то же самое плюс информацию для броузера (browser).
В группе "Autosave" указывается, что нужно сохранять при запуске программы. Если позиция Editor Files выбрана, то сохраняются все модифицированные файлы из Редактора при выполнении команд Run|Run, Run|Trace Into, Run|Step Over, Run|Run To Cursor или при выходе из Delphi. Если позиция Desktop выбрана - сохраняется рабочая среда при закрытии проекта или при выходе из Delphi. Если Вы позже откроете проект, то он будет иметь тот же вид, что и при его закрытии.
В группе "Form Designer" можно установить, показывать ли сетку (grid) на экране и выравнивать ли объекты по ней, и размер ячеек сетки.
В группе "Debugging": опция Integrated Debugging - использовать ли встроенный отладчик; Step Program Block - отладчик остановится на первой строке модуля, в котором есть отладочная информация; Break On Exception - останавливать ли программу при возникновении исключительной ситуации; Minimize On Run - свертывать ли Delphi при запуске программы. После закрытия программы среда Delphi восстанавливается. Hide Designers On Run - прячет окна Дизайнера (Инспектор Объектов, формы) при запуске приложения.
Show Compiler Progress - показывать ли окно, в котором отражается процесс компиляции программы.
"Gallery" - указывает, в каких случаях нужно предоставлять "галерею" (коллекцию заготовок и экспертов).
Страницы Editor Options, Editor Display и Editor Colors позволяют Вам изменить цвета и "горячие" клавиши, используемые IDE. Страница Editor Display показана на рис.10, а Editor Colors - на рис.11.
Рис.10: Страница Editor Display
Рис.11: Страница Editor Colors
Существует несколько способов изменить назначение "горячих" клавиш, используемых Редактором. Например, многие пользователи привыкли, что по клавише F5 максимизируется окно Редактора. Для этого им надо использовать расположение клавиш, называемое "Classic" (Keystroke mapping : Classic). Всего есть четыре вида конфигурации клавиш:
· "Default" - характерно для Microsoft. Если Вы новичок в Windows или уже привыкли к этому расположению клавиш, то это подойдет.
· "Classic" - более известно ветеранам Borland C++ и Borland Pascal. Поддерживает многие комбинации клавиш WordStar и отладчик управляется старым добрым способом.
· Остальные два вида - имитируют редакторы Epsilon и BRIEF. Подойдут, если вы с ними знакомы.
Точное описание назначения клавиш можно найти в Справочнике (в Help | Topic Search набрать "key mapping").
Цвета IDE можно изменить на странице Editor Colors.
И, наконец, Editor Options (рис.12).
Рис.12: На странице Editor Options можно настроить тонкие детали работы Редактора
Многие из установок на данной странице не очень важны для большинства пользователей, поэтому остановимся лишь на некоторых.
"Use syntax highlight" - выделять ли цветом синтаксические конструкции в Редакторе Исходного текста.
"Find text at cursor" - если включено, то при поиске (Ctrl+F) в качестве подстроки для поиска будет браться то слово, на котором стоит курсор.
Обо всех опциях можно подробнее узнать в Справочнике (F1).
Установки сохраняются в файле DELPHI.INI, который находится в директории Windows(13.50).
1.8 Рисование и закраска
1.8.1 Графические компоненты
В стандартную библиотеку визуальных компонентов Delphi входит несколько объектов, с помощью которых можно придать своей программе совершенно оригинальный вид. Это - TImage (TDBImage), TShape, TBevel.
TImage позволяет поместить графическое изображение в любое место на форме. Этот объект очень прост в использовании - выберите его на странице Additional и поместите в нужное место формы. Собственно картинку можно загрузить во время дизайна в редакторе свойства Picture (Инспектор Объектов). Картинка должна храниться в файле в формате BMP (bitmap), WMF (Windows Meta File) или ICO (icon). (TDBImage отображает картинку, хранящуюся в таблице в поле типа BLOB. При этом доступен только формат BMP.)
Как известно, форматов хранения изображений гораздо больше трех вышеназванных (например, наиболее известны PCX, GIF, TIFF, JPEG). Для включения в программу изображений в этих форматах нужно либо перевести их в формат BMP, либо найти библиотеки третьих фирм, в которых есть аналог TImage, "понимающий" данные форматы (есть как VBX объекты, так и "родные" объекты для Delphi).
При проектировании следует помнить, что изображение, помещенное на форму во время дизайна, включается в файл.DPR и затем прикомпилируется к EXE файлу. Поэтому такой EXE файл может получиться достаточно большой. Как альтернативу можно рассмотреть загрузку картинки во время выполнения программы, для этого у свойства Picture (которое является объектом со своим набором свойств и методов) есть специальный метод LoadFromFile. Это делается, например, так:
if OpenDialog1.Execute then
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
Важными являются свойства объекта Center и Stretch - оба имеют булевский тип. Если Center установлено в True, то центр изображения будет совмещаться с центром объекта TImage. Если Stretch установлено в True, то изображение будет сжиматься или растягиваться таким образом, чтобы заполнить весь объект TImage.
TShape - простейшие графические объекты на форме типа круг, квадрат и т.п. Вид объекта указывается в свойстве Shape. Свойство Pen определяет цвет и вид границы объекта. Brush задает цвет и вид заполнения объекта. Эти свойства можно менять как во время дизайна, так и во время выполнения программы.
TBevel - объект для украшения программы, может принимать вид рамки или линии. Объект предоставляет меньше возможностей по сравнению с TPanel, но не занимает ресурсов. Внешний вид указывается с помощью свойств Shape и Style(5.34).
1.8.2 Свойство объектов Canvas
У ряда объектов из библиотеки визуальных компонентов есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты - TBitmap, TComboBox, TDBComboBox, TDBGrid, TDBListBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutline, TPaintBox, TPrinter, TStringGrid. Canvas является в свою очередь объектом, объединяющим в себе поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font). Canvas обладает также рядом графических методов: Draw, TextOut, Arc, Rectangle и др. Используя Canvas, Вы можете воспроизводить на форме любые графические объекты - картинки, многоугольники, текст и т.п. без использования компонент TImage,TShape и TLabel (т.е. без использования дополнительных ресурсов), однако при этом Вы должны обрабатывать событие OnPaint того объекта, на канве которого Вы рисуете. Рассмотрим подробнее свойства и методы объекта Canvas.
Свойства Canvas:
Brush - кисть, является объектом со своим набором свойств:
Bitmap- картинка размером строго 8x8, используется для заполнения (заливки) области на экране.
Color - цвет заливки.
Style - предопределенный стиль заливки; это свойство конкурирует со свойством Bitmap - какое свойство Вы определили последним, то и будет определять вид заливки.
Handle - данное свойство дает возможность использовать кисть в прямых вызовах процедур Windows API .
ClipRect - (только чтение) прямоугольник, на котором происходит графический вывод.
CopyMode- свойство определяет, каким образом будет происходить копирование (метод CopyRect) на данную канву изображения из другого места: один к одному, с инверсией изображения и др.
Font - шрифт, которым выводится текст (метод TextOut).
Handle - данное свойство используется для прямых вызовов Windows API.
Pen - карандаш, определяет вид линий; как и кисть (Brush) является объектом с набором свойств:
Color - цвет линии
Handle - для прямых вызовов Windows API
Mode - режим вывода: простая линия, с инвертированием, с выполнением исключающего или и др.
Style - стиль вывода: линия, пунктир и др.
Width - ширина линии в точках
PenPos - текущая позиция карандаша, карандаш рекомендуется перемещать с помощью метода MoveTo, а не прямой установкой данного свойства. Pixels - двухмерный массив элементов изображения (pixel), с его помощью Вы получаете доступ к каждой отдельной точке изображения (см. пример к данному уроку).
Методы Canvas:
Методы для рисования простейшей графики - Arc, Chord, LineTo, Pie, Polygon, PolyLine, Rectangle, RoundRect. При прорисовке линий в этих методах используются карандаш (Pen) канвы, а для заполнения внутренних областей - кисть (Brush). Методы для вывода картинок на канву - Draw и StretchDraw, В качестве параметров указываются прямоугольник и графический объект для вывода (это может быть TBitmap, TIcon или TMetafile). StretchDraw отличается тем, что растягивает или сжимает картинку так, чтобы она заполнила весь указанный прямоугольник (см. пример к данному уроку). Методы для вывода текста - TextOut и TextRect. При выводе текста используется шрифт (Font) канвы. При использовании TextRect текст выводится только внутри указанного прямоугольника. Длину и высоту текста можно узнать с помощью функций TextWidth и TextHeight.
Объект TPaintBox
На странице System Палитры Компонент есть объект TPaintBox, который можно использовать для построения приложений типа графического редактора или, например, в качестве места построения графиков (если, конечно, у Вас нет для этого специальных компонент третьих фирм). Никаких ключевых свойств, кроме Canvas, TPaintBox не имеет, собственно, этот объект является просто канвой для рисования. Важно, что координаты указателя мыши, передаваемые в обработчики соответствующих событий (OnMouseMove и др.), являются относительными, т.е. это смещение мыши относительно левого верхнего угла объекта TPaintBox, а не относительно левого верхнего угла формы(3.40).
1.9 Примеры
1.9.1 Пример программы решения уравнения вида ax+b=0
Создайте форму с объектами (Label, Edit, Button) как на рис.1. У каждого объекта есть имя свойство Name, к этому имени вы обращаетесь при написании кода программы. Многие объекты обладают свойствами Caption, Text, Lines или Items для отображения текста на форме(11.30).
рис.1
Создайте обработчик события
procedure TForm1.Button1Click(Sender: TObject);
var a,b:real;
begin
//переводим значение строк edit1 и edit2 из строковых переменных в действительные
a:=StrToFloat(edit1.text);
b:=StrToFloat(edit2.text);
// проверяем если а=0, то выводим в метку сообщение делить на ноль нельзя
if a=0 then Label3.Caption:='На ноль делить нельзя' else
//иначе в метку выводим значение корня уравнения, предварительно переводим из действительного числа в строковую переменную с заданной точностью (2 знака после запятой).
Label3.Caption:='Корень уравнения = '+floatToStrF(-b/a, fffgeneral,5,2);
end;
1.9.2 Пример программы "Форма с полем для рисования"
На форму поместить объект Panel1 из вкладки Standart. У объекта изменить свойство BevelOuter: bvLowered. На панель поместить объект PaintBox1 из вкладки System. Создать группу с 3-мя переключателями (RadioGroup). Написать обработчики событий. Н-р.: procedure TForm1.PaintBox1MouseMove - для объекта PaintBox1 на форме Form1 событие On MouseMove
var
Form1: TForm1;
isDown:boolean;
implementation
{$R *.DFM}
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if isDown then paintbox1.Canvas.LineTo(x,y)
end;
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
isDown:=true;
paintbox1.Canvas.MoveTo(x,y);
end;
procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
isDown:=false;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex=0 then paintbox1.Canvas.Pen.Color:=clred;
if RadioGroup1.ItemIndex=1 then paintbox1.Canvas.Pen.Color:=clblue;
if RadioGroup1.ItemIndex=2 then paintbox1.Canvas.Pen.Color:=clgreen;
end;
(4.56)
1.9.3 Движение рисунка по форме с помощью клавиш
В результате работы данной программы рисунок на форме при нажатии на клавишу V будет двигаться влево, при нажатии на N - вправо. Положим на форму объект Image (вкладка Additional). В Инспекторе объектов выберем свойство Picture, нажмем левой клавишей мыши на построителе - …, в окне Picture Editor выберем кнопку Load, затем любой рисунок, зафиксируем выбор. Рисунок появится на форме, чтобы пропорционально изменить масштаб существует свойство Stretch. Выберем в Инспекторе объектов объект Form1 и во вкладке Событий найдем событие OnKeyPress -создадим обработчик этого события.
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
// сканируем какую клавишу нажал пользователь
case VKKeyScan(Key) of
//если нажата клавиша N (ее код 86) или V, то координаты рисунка по горизонтали изменяться
86: if Image1.left>=3 then Image1.left:=Image1.left-3;
78: if Image1.left<(form1.ClientWidth-Image1.width-3) then Image1.left:=Image1.left+3;
end;
1.10 Контрольные вопросы
1. Перечислите основные составные части Delphi.
2. Как можно воспользоваться справочником Delphi?
3. Перечислите основные компоненты окна среды Delphi и укажите их назначение.
4. Как разместить компонент на форме?
5. Какими способами можно изменять свойство компонента?
6. Каково назначение обработчиков событий?
7. Что такое SpeedBar и где он находится?
8. Как ограничить число вводимых символов в объекте Memo?
9. В чем различие между объектами CheckBox и RadioButton?
10. В чем различие между инструментами WinSight и WinSpector?
11. Опишите действия при вставке рисунка в Image.
12. Для чего нужен компонент TМainMenu, и где он находится?.
13. Значение свойств Align и Alignment.
14. С помощью каких графических компонентов форме можно придать оригинальный вид?
15. Что такое тьюторы?
16. Какие файлы относятся к управлению проектом?
17. Перечислите список компонентов на станице Additional?
18. Как можно изменить цвет фона и шрифта?
19. Как сохранить программу выполненную в Delphi?
20. Что такое Z-упорядочивание?
1.11 Задания к лабораторной работе №1
1.11.1 Первый уровень
Общее для всех вариантов: Создать форму. На форме метка(Label), кнопка(Button). На форме заголовок "Приветствие", метка пустая, без текста. При нажатии на кнопку (выбор в Инспекторе Объектов вкладки События и строки с событием OnClick; двойной щелчок левой клавишей мыши в этой строке) - вывод сообщения на форме в метке "Здравствуйте! Удачи всем!".
Вариант 1: Измените цвет формы и цвет метки. Сохраните проект в своей папке.
Вариант 2: Измените размеры формы и текст метки. Сохраните проект в своей папке.
Вариант 3: Измените положение метки на форме и ее цвет. Сохраните проект в своей папке.
Вариант 4: Измените цвет формы и текст в метке. Сохраните проект в своей папке.
Вариант 5: Измените размеры формы и текст в заголовке формы. Сохраните проект в своей папке.
Вариант 6: Измените положение вывода формы на экран и цвет метки. Сохраните проект в своей папке.
Вариант 7: Измените цвет формы и положение метки на форме. Сохраните проект в своей папке.
Вариант 8: Измените положение вывода формы на экран и текст в метке. Сохраните проект в своей папке.
Вариант 9: Измените название формы. Сохраните проект в своей папке.
Вариант 10: Поместите форму в центр экрана. Сохраните проект в своей папке.
Вариант 11: Измените тип формы и сделайте метку прозрачной. Сохраните проект в своей папке.
Вариант 12: Поменяете шрифт на форме. Сохраните проект в своей папке.
Вариант 13: Поменяйте шрифт текста на форме. Сохраните проект в своей папке.
Вариант 14: Установите высоту формы 400 пикселов. Сохраните проект в своей папке.
Вариант 15: Установите ширину формы 20 пикселов. Сохраните проект в своей папке.
1.11.2 Задания к лабораторной работе №1 (Второй уровень)
Общее для всех вариантов: Создать на форме в режиме редактирования три поля Edit, кнопку Button и текстовое поле Memo. Изменить текст в полях и подпись на кнопке. Из поля Memo удалить весь текст. При нажатии на кнопку текст из трех полей Edit копируется (соединяется) в Memo.
Вариант 1: Создать на форме 3 переключателя (класс TRadiobutton), группу и метку Label. Текст в метке любой. В результате выбора каждого из переключателей будет меняться цвет метки.
Вариант 2: Создать на форме 3 переключателя (класс TRadiobutton), группу и метку Label. Текст в метке любой. В результате выбора каждого из переключателей будет меняться выравнивание текста внутри метки.
Вариант 3: Создать на форме 3 переключателя (класс TRadiobutton), группу. В результате выбора каждого из переключателей будет меняться цвет формы.
Вариант 4: Создать на форме 3 переключателя (класс TRadiobutton), группу и метку Label. Текст в метке любой. В результате выбора каждого из переключателей будет меняться размер шрифта в метке.
Вариант 5: Создать на форме 3 переключателя (класс TRadiobutton), группу и метку Label. Текст в метке любой. В результате выбора каждого из переключателей будет меняться выравнивание метки внутри формы.
Вариант 6: Создать на форме 3 переключателя (класс TRadiobutton), группу. В результате выбора каждого из переключателей будет меняться ширина формы.
Вариант 7: Создать на форме 3 переключателя (класс TRadiobutton), группу и метку Label. Текст в метке любой. В результате выбора каждого из переключателей будет меняться тип шрифта в метке.
Вариант 8: Создать на форме 3 переключателя (класс TRadiobutton), группу. В результате выбора каждого из переключателей будет меняться высота формы.
Вариант 9: Создайте на форме 2 переключателя при выборе которых выбранный переключатель меняет цвет.
Вариант 10: Создайте на форме объект типа Edit и 2 переключателя. При выборе одного переключателя название формы меняется на текст в Edit, при выборе другого название формы меняется на исходное.
Вариант 11: Создайте на форме объект типа Edit и 2 переключателя. При выборе одного переключателя, цвет формы меняется на цвет указанный в edit1.
Вариант 12: Создать на форме 2 переключателя (класс TRadiobutton) и метку label. В результате выбора одного из переключателей текст в метке подчеркивается.
Вариант 13: Создать на форме 3 переключателя (класс TRadiobutton), группу и метку Label. Текст в метке любой. В результате выбора каждого из переключателей будет меняться расположение метки.
Вариант 14: Создать на форме 2 переключателя (класс TRadiobutton), группу и метку Label. Текст в метке любой. В результате выбора каждого из переключателей метка появляется или исчезает.
Вариант 15: Создайте на форме 2 переключателя и метку Label. При выборе одного переключателя метка становится прозрачной.
1.11.3 Задания к лабораторной работе №1 (Третий уровень)
Общее для всех вариантов: Создать форму для вычисления корней квадратного уравнения. Выбор коэффициентов произвольный. Предусмотреть случай, когда дискриминант отрицательный.
Вариант 1: Создать форму с рисунком(Image). В результате движения мыши рисунок должен переносится по форме (при нажатой левой клавиши мыши, рисунок меняет свое местоположение).
Вариант 2: Создать форму с рисунком(Image). В результате движения мыши размеры рисунка должны меняться.
Вариант 3: Создать форму с рисунком(Image). Под рисунком подпись (метка) В результате движения мыши должно меняться положение метки (при нажатой левой клавише мыши над надписью, она перемещается)
Вариант 4: Написать программу, которая при создании формы размещает на ней надпись "рисунок №1". При щелчке мыши на форме в том же месте в области надписи должна появляться вторая надпись.
Вариант 5: Создать форму с рисунком. В результате движения мыши должно меняться расположение формы на экране.
Вариант 6: Написать программу, которая при создании формы (с картинкой) размещает на ней надпись "Щелкните левой клавишей мыши по форме". Если мышью щелкают в пределах картинки, она становиться видимой. Если нет, то остается невидимой.
Вариант 7: Написать программу, которая при активизации формы размещает на ней кнопку "Старт". Передвижение мыши вызывает передвижение кнопки по форме.
Вариант 8: Написать программу, которая при создании формы размещает на ней поле Edit "Измените местоположение курсора мыши на форме". Если мышь движется вправо, то цвет букв становится синим. В противном случае зеленым.
Вариант 9: Составить программу, которая при создании формы размещает на ней поле edit "Измените местоположение курсора мыши на форме". Если мышь приближается к edit то edit отъезжает в противоположную сторону.
Вариант 10: Составить программу, которая при создании формы размещает на ней поле paint "Измените местоположение курсора мыши на форме". Рисует точки на paint.
Вариант 11: Составить программу, которая при создании формы размещает на ней обьект edit "Измените местоположение курсора мыши на форме". Если мышь отдаляется от edit то edit движется в сторону курсора.
Вариант 12: Составить программу, которая при создании формы размещает на ней поле paint "нажатие на кнопку мыши ". Рисует окружность на paint.
Вариант 13: Составить программу, которая при создании формы размещает на ней метку label "Измените местоположение курсора мыши на форме". Показывает координаты мыши в label.
Вариант 14: Составить программу, при нажатии на метку метка двигается за курсором.
2. Лабораторная работа №2. Теория чисел
2.1 Основные понятия
Простое число - натуральное число, большее единицы, имеющее только два делителя: единицу и само это число (все простые числа, кроме 2, -нечётные). Например, 13, 17, 23, 59.
Числа-близнецы - два нечётных простых числа, разнящихся на 2. Например, 11 и 13.
Совершенным называется число, равное сумме своих правильных (т.е. меньших этого числа) делителей. Например, 6, 28, 496.
Дружественными называются два натуральных числа, каждое из которых равно сумме правильных делителей другого. Например, 220 и 284.
Числом Армстронга называется число, состоящее из n цифр (n>1) и такое, что сумма его цифр, возведённых в n-ю степень, равна самому числу. Например, 153=13+53+33.
Палиндромом называется число, одинаково читающееся слева направо и справа налево, например, 13531, 345543.
Симметричные числа - числа, состоящие из двух одинаковых частей. Например, 245245, 7676.
Взаимно-простыми называются два числа, наибольший общий делитель которых равен единице. Например, 65 и 70.
Ряд Фибоначчи есть некая последовательность чисел, каждый член которой, начиная с третьего, равен сумме двух предыдущих членов. Например, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 и т. д.
Тройки чисел, соответствующие соотношению "квадрат гипотенузы равен сумме квадратов катетов", называются тройками Пифагора. Тройка пифагоровых чисел, не имеющих общих делителей, называется основной, остальные тройки, получаемые умножением чисел основной тройки на натуральное число, называются производными. Первая тройка-это числа 3, 4 и 5.
2.2 Вещественные типы Delphi
В Delphi существует четыре вещественных типа: Single, Double, Extended и Real. Их общий формат одинаков:
Знак Экспонента Мантисса
Знак - это всегда один бит. Он равен нулю для положительных чисел и единице для отрицательных. Что же касается размеров мантиссы и экспоненты, то именно в них и заключается различие между типами.
Прежде чем перейти к конкретным цифрам, рассмотрим подробнее тип Real, сделав для этого небольшой экскурс в историю. Real - это стандартный тип языка Паскаль, присутствовавший там изначально. Когда создавался Паскаль, процессоры ещё не имели встроенной поддержки вещественных чисел, поэтому все операции над этим типом сводились к операциям с целыми числами. Соответственно, размер полей в типе Real был подобран так, чтобы оптимизировать эти операции.
Таблица - Размеры полей
ТипРазмер типа, байтРазмер мантиссы, битРазмер экспоненты, битSingle4238Double85211Extended106415Real6407 |
Другие параметры вещественных типов, такие как диапазон и точность, есть в справке Delphi.
2.3 Внутренний формат вещественных чисел
Рассмотрим тип Single, так как он является самым коротким и, следовательно, самым простым для понимания. Остальные типы отличаются от него только количественно. В дальнейшем числа в формате Single мы будем записывать как s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm, где s означает знаковый бит, e - бит экспоненты, m - бит мантиссы. Именно в таком порядке эти биты хранятся в четырёхбайтном значении (здесь учтена перестановка байтов; напоминаю, что в процессорах Intel байты в многобайтных значениях переставляются так, что младший байт идёт первым, а старший - последним). В мантиссе хранится двоичное число. Чтобы получить истинное значение мантиссы, к ней надо мысленно добавить слева единицу с точкой (то есть, например, мантисса 1010000000000000000000 означает двоичную дробь 1.101). Таким образом, имея 23 двоичных разряда, мы записываем числа с точностью до 24-ёх двоичных разрядов. Такая запись числа называется нормализованной.
Экспонента по определению всегда целое число. Но способ записи экспоненты в вещественных числах не совпадает с обычным способом записи чисел со знаком. Ноль в этом представлении записывается как 01111111. В обычном представлении это равно 127. Соответственно, 10000000 (128 в обычном представлении) означает единицу, а 01111110 (126) означает -1, и так далее (то есть из обычного беззнакового числа надо вычесть 127, и получится число, закодированное в экспоненте).
Из описанных выше правил есть исключения. Так, если все биты экспоненты равны нулю (то есть там стоит число -127), то к мантиссе перед её началом надо добавлять не "1.", а "0." (денормализованная запись). Это позволяет увеличить диапазон вещественных чисел. Если бы этого исключения не было бы, минимально возможное положительное число типа Single было бы равно примерно 5.9*10-39. А так появляется возможность использовать числа до 1.4*10-45. Побочным эффектом этого является то, что числа, меньшие, чем 1.17*10-38, представляются с меньшей, чем 24 двоичных разряда, точностью.
Если все биты в экспоненте равны единице, а в матрице - нулю, то мы получаем комбинацию, известную как INF (от английского Infinity - бесконечность). Эта комбинация используется тогда, когда результат вычислений превышает максимально допустимое форматом число. В зависимости от значения бита s бесконечность может быть положительной или отрицательной. Если же при такой экспоненте в мантиссе хоть один бит не равен нулю, такая комбинация называется NAN (Not A Number - не число). Попытки использования комбинаций NAN или INF приводят к ошибке времени выполнения.
Для задания нуля все биты мантиссы и экспоненты должны быть равны нулю (формально это означает 0*10-127). С учётом описанных выше правил если хотя бы один бит экспоненты не будет равен нулю (т.е. экспонента будет больше -127), запись будет считаться нормализованной, и нулевая мантисса будет рассматриваться как единица. Поэтому никакие другие комбинации значений мантиссы и экспоненты не могут дать ноль.
Тип Double устроен точно так же, разница только в количестве разрядов и в том, какое значение экспоненты берётся за ноль. Итак, мы имеем 11 разрядов для экспоненты. За ноль берётся значение 1023.
Несколько иначе устроен Extended. Кроме количественных отличий добавляется ещё и одно качественное: в мантиссе явно указывается первый разряд. То есть, мантисса 1010... интерпретируется как 1.01, а не как 1.101, как это было в типах Single и Float. Поэтому если 23-битная мантисса типа Single обеспечивает 24-знаковую точность, а 52-битная мантисса Double - 53-битную, то 64-битная мантисса Extended обеспечивает 64-, а не 65-битную точность. Соответственно, при денормализованной форме записи первый разряд мантиссы явно содержит 0. За ноль экспоненты принимается значение 16383.
Тип Real, как уже упоминалось, стоит особняком. Во-первых, в нём используется другой порядок следования битов, а, во-вторых, не используется денормализованная форма.
2.4 "Неполноценный" Extended
Сопроцессор всегда выполняет все операции в формате Extended, оговорившись при этом, что есть исключение, к которому я вернусь чуть позже.
У сопроцессора есть специальный двухбайтный регистр, называемый управляющим словом. Установка отдельных битов этого регистра диктует сопроцессору то или иное поведение. Прежде всего, это связано с тем, какие исключения может возбуждать сопроцессор. Другие биты этого регистра отвечают за то, как будут округляться числа, как сопроцессор понимает бесконечность - всё это можно при необходимости узнать из документации Intel. Нас же будут интересовать только два бита из этого слова - восьмой и девятый. Именно они определяют, как будут обрабатываться числа внутри сопроцессора.
Если восьмой бит содержит единицу (так установлено по умолчанию), то десять байт внутренних регистров сопроцессора будут использоваться полностью, и мы получим "полноценный" Extended. Если же этот бит равен нулю, то всё определяется значением бита 9. Если он равен единице, то используются только 53 разряда мантиссы (остальные всегда равны нулю). Если же этот бит равен нулю - только 24 разряда мантиссы. Это увеличивает скорость вычислений, но уменьшает точность. Другими словами, точность работы сопроцессора может быть понижена до типа Double или даже Single. Но это касается только мантиссы, экспонента в любом случае будет содержать 15 бит, так что диапазон типа Extended сохраняется в любом случае.
Для работы с управляющим словом сопроцессора в модуле System описана переменная Default8087CW: Word и процедура Set8087CW(CW:Word). При запуске программы в переменную Default8087CW записывается то управляющее слово, которое установила система при запуске программы. Функция Set8087CW записывает новое значение в управляющее слово. Одновременно это новое значение записывается в переменную Default8087CW.
Такое поведение этой функции не всегда удобно - иногда бывает нужно сохранить старое значение переменной Default8087CW (впрочем, это несложно сделать, заведя дополнительную переменную). С другой стороны, если значение управляющего слова изменить, не используя Set8087CW (а в дальнейшем мы увидим, что такие изменения могут происходить помимо нашей воли), то с помощью функции Default8087CW просто нет возможности узнать текущее значение управляющего слова. В Delphi 6 и выше появилась функция Get8087CW, позволяющая узнать значение именно контрольного слова, а не переменной Default8087CW. В более ранних версиях единственный способ получить значение этого слова - использование ассемблера, тем более что в Delphi нет проблем с ассемблерными вставками.
Установить значение управляющего слова можно с помощью команды FLDCW, прочитать - с помощью FNSTCW. Обе эти команды имеют один аргумент - переменную типа Word. Чтобы, например, установить 53-значную точность, не изменив при этом другие биты управляющего слова, надо выполнить такую последовательность команд:
asm
FNSTCW MyCW
AND MyCW,0FCFFh
OR MyCW,200h
FLDCW MyCW
end;
Современные сопроцессоры обрабатывают числа с такой скоростью, что при обычных вычислениях вряд ли может возникнуть необходимость в ускорении за счёт точности - выигрыш будет ничтожен. Эта возможность используется, в основном, в тех случаях, когда вычисления с плавающей точкой составляют значительную часть программы, а высокая точность не имеет принципиального значения (например, в движках для 3D-игр). Однако забывать об этой особенности работы сопроцессора не стоит, потому что она может преподнести неприятный сюрприз.
2.5 Примеры "неправильного" поведения вещественных типов
Далее рассмотрим примеры, в которых вещественные типы ведут себя необъяснимо для человека, не знакомого с внутренним форматом их записи.
Все примеры построены одинаково: на форму надо положить два компонента - метку (TLabel) и кнопку (TButton). Так как это только примеры, пусть имена для этих компонентов будут Button1 и Label1. Обработчик Button1Click содержит некоторый код, результаты работы которого выводятся на форму через Label1. Таким образом, нужно запустить программу, нажать на кнопку и посмотреть, что будет написано в метке. Я буду приводить только код обработчика Button1Click, так как всё остальное тривиально.
Пример 1."Неправильное значение"
Итак, напишем такой код:
var R:Single;
begin
R:=0.1;
Label1.Caption:=FloatToStr(R)
end;
Что мы увидим, когда нажмём кнопку? Мы увидим "0.100000001490116". То есть расхождение в девятой значащей цифре. Ну, из справки по Delphi мы знаем, что точность типа Single - 7-8 десятичных разрядов, так что нас, по крайней мере, никто не обманывает. В чём же причина? Просто число 0.1 не представимо в виде конечной двоичной дроби, оно равно 0.0(0011). И эта бесконечная двоичная дробь обрубается на 24-ёх знаках; мы получаем не 0.1, а некоторое приближённое число (какое именно - см. выше). А если мы присвоим переменной R не 0.1, а 0.5? Тогда мы получим на экране 0.5, потому что 0.5 представляется в виде конечной двоичной дроби. Немного поэкспериментировав с различными числами, мы заметим, что точно представляются те числа, которые выражаются в виде m/2n, где m, n - некоторые целые числа (разумеется, n не должно превышать 24, а то нам не хватит точности типа Single). В качестве упражнения докажем, что любое целое число, для записи которого хватает 24-ёх двоичных разрядов, может быть точно передано типом Single.
Пример 2.Сравнение.
Теперь изменим код так:
var R:Single;
begin
R:=0.1;
if R=0.1 then
Label1.Caption:='Равно'
else
Label1.Caption:='Не равно'
end;
При нажатии кнопки мы увидим надпись "Не равно". Действительно, мы уже знаем, что переменная R получает значение 0.100000001490116 вместо 0.1. Но ведь "0.1" в правой части равенства тоже должно преобразоваться по тем же законам, ведь в компьютере всё предопределено. Так как процессоры Intel работают только с 10-байтным типом Extended, поэтому и левая, и правая часть равенства сначала преобразуется в этот тип, и лишь потом производится сравнение. То число, которое оказалось в переменной R вместо 0.1, хоть и выглядит страшно, но зато представляется в виде конечной двоичной дроби. Информация же о том, что это на самом деле должно означать "0.1", нигде не сохранилось. При преобразовании этого числа в Extended младшие, избыточные по сравнению с типом Single разряды мантиссы просто заполняются нулями, и мы снова получим то же самое число, только записанное в формате Extended. А "0.1" из правой части равенства преобразуется в Extended без промежуточного превращения в Single. А 0.1 - бесконечная в двоичном представлении дробь. Поэтому некоторые из младших разрядов мантиссы будут содержать единицы. Другими словами, мы получим хоть и не точное представление числа 0.1, но всё же более близкое к истине, чем 0.100000001490116. Из-за таких хитрых преобразований оказывается, что мы сравниваем два близких, но всё же не равных числа. Отсюда - закономерный результат в виде надписи "Не равно".
Тут уместна аналогия с десятичными дробями. Допустим, в одном случае мы делим 1 на три с точностью до трёх знаков, и получаем 0.333. Потом мы делим 1 на три с точностью то четырёх знаков, и получаем 0.3333. Теперь мы хотим сравнить эти два числа. Для этого приводим их к точности в четыре разряда. Получается, что мы сравниваем 0.3330 и 0.3333. Очевидно, что это разные числа.
Если попробовать заменить число 0.1 на 0.5, то мы получим "Равно". Думаю, вы уже знаете почему, но для полноты текста объясню. 0.5 - это конечная двоичная дробь. При прямом приведении её к типу Extended в младших разрядах оказываются нули. Точно такие же нули оказываются в этих разрядах при превращении числа 0.5 типа Single в тип Extended. Поэтому в результате мы сравниваем два числа. Это похоже, как если бы мы делили 1 на 4 с точностью до трёх и до четырёх значащих цифр. В первом случае получили бы 0.250, во втором - 0.2500. Приведя их оба к точности в четыре знака, получим сравнение 0.2500 и 0.2500. Очевидно, что эти цифры равны.
2.6 Контрольные вопросы
1. Дайте определения простым, дружественным числам и числам-близнецам.
2. Что такое тройки Пифагора?
3. Какие числа называют числами Армстронга?
4. Что такое ряд Фибоначчи?
5. Для чего используется алгоритм Евклида? Как его можно реализовать ?
6. Какие вещественные типы существуют в Delphi?
7. Каковы размеры типов Single, Double, Extended, Real ?
8. Какая запись числа называется нормализованной?
2.7 Задания к лабораторной работе № 2
Вариант 1.
1. Подсчитать количество делителей натурального числа H, формируемого датчиком случайных чисел в диапазоне от 1 до 10000.
2. Найти сумму целых положительных чисел, больших 20, меньших 100, и заканчивающихся на 2, 4 или 8.
Вариант 2.
1. Составить программу разложения на простые множители введенного с клавиатуры натурального числа.
2. В трехзначном числе зачеркнули первую цифру слева, когда полученное двузначное число умножили на 7, то получили исходное число. Найдите это число.
Вариант 3.
1. Определить, является ли простым введённое с клавиатуры натуральное число.
2. Сумма цифр двузначного числа делится на 7, само число также делится на 7. Найти все такие числа.
Вариант 4.
1. Разработать программу печати всех простых чисел в диапазоне от N до M (значения переменных N и M задаются с клавиатуры), а также подсчитать их количество.
2. Среди четырехзначных чисел выбрать те, у которых все четыре цифры различны.
Вариант 5.
1. Найти и вывести на экран 5 простых чисел, больших некоторого К, введённого с клавиатуры.
2. Найти количество четных цифр натурального числа, введенного с клавиатуры.
Вариант 6.
1. Дано простое число Р. Найти и вывести на экран следующее за ним простое число.
2. Найти самую большую цифру целого числа.
Вариант 7.
1. Дано некоторое натуральное число СН. Вывести на печать ближайшее к нему простое число.
2. Составить программу, которая подсчитывает количество палиндромов среди натуральных четырехзначных чисел
Вариант 8.
1. Разработать программу поиска трех простых чисел, предшествующих числу М, заданному пользователем, причем М>=10.
2. Составить программу, проверяющую, является ли заданное натуральное число совершенным.
Вариант 9.
1. Разработать программу поиска и печати всех чисел-близнецов, принадлежащих заданному диапазону [N,M ].
2. Проверить, являются ли два данных числа взаимно простыми.
Вариант 10.
1. Определить, являются ли числа, находящиеся по обе стороны от заданного чётного числа CH, близнецами.
2. Даны натуральные числа m и n. Найти такие натуральные взаимно простые p и q, что p/q = m/n.
Вариант 11.
1. Вычислить сумму делителей некоторого целого числа СН, формируемого генератором случайных чисел в диапазоне от 1 до 10000.
2. Найти все трехзначные числа, сумма цифр которых равна А, кратное В (А и В вводят с клавиатуры).
Вариант 12.
1. Найти и вынести на экран 3 совершенных числа, больших некоторого М.
2. Найти НОК (а, с).(НОК(а, с)=а*с/НОД(а, с)).
Вариант 13.
1. Разработать программу поиска и печати всех пар дружественных чисел, меньших 10000.
2. Среди всех четырехзначных чисел найти симметричные.
Вариант 14.
1. Составить программу, которая нашла бы в интервале от 1 до 1000 число, имеющее больше всего делителей
2. Вывести на экран двузначные числа, составляющие ряд Фибоначчи.
Вариант 15.
1. Определить разрядность натурального числа N, заданного пользователем.
2. Найти основную тройку Пифагора, в которой все числа больше некоторого А, введенного с клавиатуры
3. Лабораторная работа № 3. Подпрограммы
3.1 Процедуры и функции
В языке Object Pascal основной программной единицей является подпрограмма. Различают два вида подпрограмм: процедуры и функции. Процедуры и функции представляют собой относительно самостоятельный участок программы, оформленный определённым образом и наделённый именем. По этому имени и происходит вызов процедуры или функции. Чтобы выполнить инструкции подпрограммы, надо вызвать эту подпрограмму. Отличие функции от процедуры заключается в том, что с именем функции связано значение, поэтому имя функции можно использовать в выражениях.
Вот пример простой процедуры:
procedure Sample1(index:integer);
var
i:integer;
begin
i:=index/2;
end;
Процедура имеет имя Sample1. После имени, в скобках, объявляются переменные, для передачи значения в процедуру. В разделе Var, где объявляются переменные, объявлена локальная переменная i типа integer (целое число). Это локальная пременная, поэтому её можно использовать только в теле процедуры. После выхода из процедуры пременная уничтожается. В блоке Begin...end; происходят действия над перемеными, объектами и др. т.е. образуются действия процедуры. В данном случае, я присваиваю переменнорй i переменную index делённую на 2. Для вызова этой процедуры достаточно только набрать её имя, а значит Sample1. Если процедура относится к каому-то объекту, например к форме, то в объявлении нужно написать имя объекта, а после точки имя самой процедуры. Например так, процедура относится к объекту Form1:
procedure Form1.Sample2;
begin
Sample1(20);//вызываем ранее созданную процедуру
end;
Здесь вызывается процедура Sample1, которую я написал ранее. Имена всех процедур должны начинаться с латинских букв, но могут заканчиваться цифрами. Нельзя пользоватсья русскими буквами и начинать имена процедур с цифр. Если процедура не относится к объекту, то её надо описать перед использованием, например такой код приведёт к ошибке:
procedure Form1.Sample2;
begin
Sample1(20);
end;
procedure Sample1(index:integer);
var
i:integer;
begin
i:=index/2;
end;
Это не верно, потому что процедура Sample1 сначала используется, и только потом описывается. Компилятор это не поймёт и пошлёт тебя куда подальше, например в память по адрессу 00F91203 :) А вот так всё будет в норме:
procedure Sample1(index:integer);
var
i:integer;
begin
i:=index/2;
end;
procedure Form1.Sample2;
begin
Sample1(20);
end;
Ну а если процедура относится к объекту, то проблем нет, потому что объект имеет область описания и эта область доступна компилятору:
type
TForm1 = class(TForm)
procedure Sample1;
procedure Sample3;
end;
Теперь поговорим про функции: это те же процедуры, только они возвращают какое-то значение, то есть сами имеют какой-то тип. Т.е. они могут использоваться в программе на ряду с выражениями и пременными:
function SampleFunc:integer;
var
i:integer;
begin
i:=40;
result:=i;
end;
procedure Form2.Sample4;
var
y:integer;
begin
y:=SampleFunc;
end;
В этом примере функция SapleFunc имеет тип integer. Для возврата значения нужно его присвоить к переменной Result. В процедуре Sample4 происходит присваивание пременной y функции. После выполнения процедуры пременная y,будет содержать в себе 40. Все остальные правила объявления функций такие же, как и у процедур.
При программировании в Delphi работа программиста заключается в основном в разработке процедур (подпрограмм) обработки событий.
При возникновении события автоматически запускается процедура обработки события, которую и должен написать программист. Задачу вызова процедуры обработки, при возникновении соответствующего события, берет на себя Delphi.
Как уже говорилось, процедуры и фукнкции представляют собой относительно самостоятельные фрагменты программы, оформленные особым образом и снабженные именем. Упоминание этого имени в тексте программы называется вызовом процедуры (функции). Оформление алгоритмов, которые используются в программе несколько раз удобнее при помощи подпрограмм, так как процедура(функция) существует в программе в единственном экземпляре, а обращаться к ней можно многократно.
...Подобные документы
Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.
курсовая работа [261,1 K], добавлен 25.03.2015Разработка головоломки на основе гравюры Альбрехта Дюрера "Магический квадрат". Главные составные части среды программирования Delphi, особенности ее стандартных компонентов и процесса сохранения программы. Компоненты и алгоритмы создаваемой программы.
курсовая работа [147,1 K], добавлен 05.02.2015Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.
дипломная работа [3,6 M], добавлен 13.07.2011Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.
курсовая работа [1,6 M], добавлен 29.05.2013Borland Delphi 7 как универсальный инструмент разработки, применяемый во многих областях программирования, функции: добавление информации об абитуриентах в базу данных, формирование отчетов. Рассмотрение и характеристика основных компонентов Delphi.
контрольная работа [3,6 M], добавлен 18.10.2012Рассмотрение теории и технологии работы со средой программирования Delphi. Описание Описание интерфейса программы, структуры данных, генерации точек. Разработка задания по выявлению всех квадратов, которые могут быть образованы точками на плоскости.
реферат [21,0 K], добавлен 13.01.2015Основы программирования, работа в консольном режиме Delphi. Правила оформления комментариев. Типы данных, используемые в консольном режиме. Текстовый редактор Delphi Memo. Пример загрузки текстового файла. Примеры решения и оформления простейших задач.
отчет по практике [2,1 M], добавлен 11.03.2014Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.
отчет по практике [961,6 K], добавлен 21.04.2012Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.
курсовая работа [738,1 K], добавлен 17.05.2010Ознакомление с историей создания и особенностями объектно-ориентированного языка программирования Delphi. Разработка приложения, фиксирующего количество повторений какого-либо слова в тексте, введённом в поле MEMO. Описание интерфейса программы.
курсовая работа [880,1 K], добавлен 21.04.2015Программа поиска в базе данных в среде Borland Delphi 7.0 Enterprise. Условия и блок-схемы задач. Ввод массива. Текст программ в Delphi, в Паскаль. Текст программы поиска в базе данных. Кодирование материала. Изготовление реляционной базы данных.
практическая работа [27,6 K], добавлен 11.10.2008Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.
контрольная работа [703,8 K], добавлен 24.09.2012Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.
курсовая работа [40,8 K], добавлен 15.07.2009Рассмотрение особенностей среды программирования Delphi, анализ клиент-серверной версии. Знакомство с библиотекой визуальных компонентов. Основные функции интеллектуального редактора. Характеристика требований к базам данных. Функции программы "Магистр".
дипломная работа [1,5 M], добавлен 10.03.2013Разработка информационной системы административного управления. Выбор языка и среды программирования. Структура взаимодействия информации. Требования к программно-аппаратному окружению. Создание программы в Delphi и связывание ее с базой данных.
курсовая работа [1010,9 K], добавлен 08.10.2015Создание электронного учебника "Энциклопедия Интернет" для ознакомления пользователя с его функциями. Подготовка к разработке программного продукта. Анализ предметной области. Выбор языка программирования. Работа в интегрированной среде Delphi 7.
курсовая работа [1,2 M], добавлен 09.03.2012Основные приемы работы в среде программирования Delphi. Особенности технологии создания простейших приложений. Работа с компонентами среды разработки приложений. Ввод, редактирование, выбор и вывод информации. Аспекты использования структуры ветвления.
методичка [619,9 K], добавлен 17.11.2011Внедрение информационных технологий в систему образования. Понятие, отличительные признаки, виды, структура и предназначение электронного учебника. Принципы его создания и основные этапы разработки в интегрированной среде программирования Delphi.
дипломная работа [2,3 M], добавлен 03.07.2015Объектно-ориентированные языки программирования. Среда разработки приложений Delphi и ее элементы. Разработка программного приложения. Описание работы системы "Абитуриент", являющейся хранилищем данных об абитуриентах, поступающих в учебное заведение.
курсовая работа [1,8 M], добавлен 09.11.2011