практика
.pdfФедеральное агентство железнодорожного транспорта Уральский государственный университет путей сообщения
Кафедра прикладной информатики
И. И. Данилина
Программирование в системе Delphi
Екатеринбург
2009
Федеральное агентство железнодорожного транспорта Уральский государственный университет путей сообщения
Кафедра прикладной информатики
И.И. Данилина
Программирование в системе Delphi
Сборник описаний лабораторных работ
для студентов специальностей 190402 – «Автоматика, телемеханика и связь на ж.-д.транспорте»,
230201 – «Информационные системы и технологии»,
080801 – «Прикладная информатика в экономике» всех форм обучения
Екатеринбург
2009
УДК 618.142 Д18
Данилина И. И.
Программирование в системе Delphi: Сб. описаний лабораторных работ. – Д 18 Екатеринбург : УрГУПС, 2009. – 40 с.
Содержатся описания лабораторных работ по дисциплинам «Информатика», «Технология программирования», «Высокоуровневые методы информатики и программирования». Лабораторные работы ориентированы на освоение среды программирования Delphi.
Сборник может быть использован как для аудиторных занятий, так и для самостоятельной работы студентов.
Рекомендован к печати на заседании кафедры «Прикладная информатика», протокол № 59 от 12.03.09 г.
Автор: И. И. Данилина, доцент кафедры «Прикладная информатика», канд. пед. наук, УрГУПС
Рецензент: А.И. Газейкина, доцент кафедры ИВТ и МОИ, канд. пед. наук, УрГПУ
©УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ
(УРГУПС), 2009
ОГЛАВЛЕНИЕ |
|
|
ВВЕДЕНИЕ......................................................................................................................... |
|
5 |
ЛАБОРАТОРНАЯ РАБОТА 1. ЗНАКОМСТВО С СИСТЕМОЙ |
|
|
ПРОГРАММИРОВАНИЯ................................................................................................ |
|
5 |
ЛАБОРАТОРНАЯ РАБОТА 2. ПРОЕКТ «РАВНОМЕРНОЕ ПРЯМОЛИНЕЙНОЕ |
||
ДВИЖЕНИЕ»...................................................................................................................... |
|
7 |
ЛАБОРАТОРНАЯ РАБОТА 3. ПРОЕКТ «ЭЛЕКТРИЧЕСКИЕ ЦЕПИ» ............... |
9 |
|
ЛАБОРАТОРНАЯ РАБОТА 4. ПРОЕКТ «БЛОКНОТ» .......................................... |
10 |
|
ЛАБОРАТОРНАЯ РАБОТА 5. ИНСТРУКЦИЯ ВЕТВЛЕНИЯ............................. |
13 |
|
ЛАБОРАТОРНАЯ РАБОТА 6. ПРОЕКТ «КАЛЬКУЛЯТОР»................................ |
13 |
|
ЛАБОРАТОРНАЯ РАБОТА 7. |
ПРОЕКТ «ВЫЧИСЛЕНИЕ ПЛОЩАДЕЙ»...... |
15 |
ЛАБОРАТОРНАЯ РАБОТА 8. |
ПРОЕКТ «МЕТОД МОНТЕ-КАРЛО» ............... |
17 |
ЛАБОРАТОРНАЯ РАБОТА 9. ПРОЕКТ «РЕШЕНИЕ УРАВНЕНИЙ»............... |
18 |
|
ЛАБОРАТОРНАЯ РАБОТА 10. ПРОЕКТ «ИНТЕРНЕТ-МАГАЗИН»................. |
19 |
|
ЛАБОРАТОРНАЯ РАБОТА 11. АЛГОРИТМЫ СОРТИРОВКИ.......................... |
22 |
|
ЛАБОРАТОРНАЯ РАБОТА 12. ПРОЕКТ «ВЫЧИСЛЕНИЯ В ТАБЛИЦЕ» ..... |
24 |
|
ЛАБОРАТОРНАЯ РАБОТА 13. ПРОЕКТ «ЧАСОВЫЕ ПОЯСА» ........................ |
26 |
|
ЛАБОРАТОРНАЯ РАБОТА 14. ПРОЕКТ «АНИМАЦИЯ» .................................... |
28 |
|
ЛАБОРАТОРНАЯ РАБОТА 15. ГРАФИЧЕСКАЯ ПОДСИСТЕМА DELPHI ... |
30 |
|
ЛАБОРАТОРНАЯ РАБОТА 16. ПРОЕКТ «ГРАФИЧЕСКИЙ РЕДАКТОР» ..... |
31 |
|
ЛАБОРАТОРНАЯ РАБОТА 17. ПРОЕКТ «ЕЖЕДНЕВНИК» ............................... |
34 |
|
ЛАБОРАТОРНАЯ РАБОТА 18. |
ПРОЕКТ «ЕЖЕДНЕВНИК» (ПРОДОЛЖЕНИЕ) |
|
.............................................................................................................................................. |
|
36 |
ЛАБОРАТОРНАЯ РАБОТА 19. ДИНАМИЧЕСКОЕ СОЗДАНИЕ ОБЪЕКТОВ37 |
||
ЛАБОРАТОРНАЯ РАБОТА 20. СОЗДАНИЕ НОВЫХ КЛАССОВ...................... |
39 |
|
БИБЛИОГРАФИЧЕСКИЙ СПИСОК......................................................................... |
40 |
Введение
Научиться программированию можно только на практике. Книги, справочники, чужой опыт могут помочь, но не могут заменить самостоятельной работы. Только пробуя, ошибаясь, обнаруживая и исправляя собственные ошибки, можно понять, что такое программирование.
Современные системы программирования являются, во-первых, объектноориентированными, во-вторых, – визуальными. Первое означает, что программа (или приложение) собирается из заготовленных заранее объектов как из элементов конструктора. Второе означает, что программист в процессе разработки видит, как будет выглядеть его приложение, и непосредственно манипулирует объектами для достижения нужного результата.
Система программирования Delphi является одним из представителей систем такого рода. Научившись работать с ней, можно без большого труда перей-
ти на любую другую (Visual Basic, Visual C Builder и т.п.).
Для выполнения лабораторных работ потребуется установить на компьютере систему программирования Delphi версии 6.0 или выше. Весь необходимый теоретический материал изложен в [1]. Дополнительные сведения можно найти в [2] – [4].
К пособию прилагается диск с образцами выполненных проектов.
Лабораторная работа 1
Знакомство с системой программирования
Задача 1: смоделировать работу простейшего светофора, управляемого с помощью кнопок «Вперед» и «Стоп».
Рис. 1
Впроекте использованы:
–главная форма приложения – объект класса TForm;
–кнопки – объекты класса TButton (вкладка Standard);
5
– огни светофора – объекты класса TShape (вкладка Additional).
Объекты должны быть настроены с помощью Object Inspector таким образом:
Объект |
Свойство |
Элемент свойства |
Значение |
Shape1 |
Shape |
- |
stCircle |
|
Brush |
Color |
clRed |
|
|
Style |
bsSolid |
Shape2 |
Shape |
- |
stCircle |
|
Brush |
Color |
clGreen |
|
|
Style |
bsDiagCross |
Button1 |
Caption |
- |
Вперед |
Button2 |
Caption |
- |
Стоп |
Form1 |
Caption |
|
Светофор |
Размеры и положение объектов настройте согласно рис. 1.
При наступлении события onClick (нажатие на кнопку) для объекта Button1 должен выключиться красный свет и включиться зеленый. Для этого следует:
−выделить объект Button1;
−открыть в Object Inspector вкладку Events (события);
−выбрать событие onClick;
−дважды щелкнуть мышью по пустой области (откроется заготовка, содержащая заголовок, начало и конец процедуры);
−ввести в соответствующую процедуру следующую программу – обработ-
чик события:
Shape2.Brush.Style := bsSolid; {включить зеленый} Shape1.Brush.Style := bsDiagCross;{выключить красный}
Запустите программу с помощью кнопки RUN на панели инструментов или клавиши F9. Если все сделано правильно, нажатие кнопки «Вперед» должно привести к смене сигнала.
Аналогично запрограммируйте обработку нажатия кнопки «Стоп». Сохраните проект на диске в отдельной папке с помощью команды
File → Save All. Это обеспечит сохранение в одной папке ВСЕХ файлов проекта (их должно быть шесть или более). Не меняйте на первых порах имена файлов, которые дает система Delphi, и система сама «проследит» за их взаимодействием.
При сохранении проектов всегда пользуйтесь только командой Save All, создавая для каждого проекта отдельную папку.
6
Задача 2: смоделировать работу лампочки, управляемой с помощью кнопок «Вкл» и «Выкл», пользуясь свойством Shape1.Brush.Color (цвет объектов).
Задача 3: создать фигуру и четыре кнопки. Нажатие на каждую из них должно приводить к смене формы фигуры. Надписи на кнопках должны соответствовать выполняемым по ним действиям.
Задания для самостоятельного выполнения
1.Смоделируйте движение фигуры на 3 пикселя вправо при нажатии кнопки.
2.Смоделируйте постепенное «надувание шарика», сохраняя нижнюю точку неподвижной.
Лабораторная работа 2
Проект «Равномерное прямолинейное движение»
Задача. Равномерное прямолинейное движение тела описывается формулой s=v·t, где s – расстояние, v – скорость, t – время. Рассчитать неизвестный параметр движения по двум заданным.
Впроекте использованы:
–главная форма приложения – объект класса TForm;
–три кнопки для расчета разных параметров – объекты класса TButton (вкладка Standard);
–три окна ввода для ввода значений заданных параметров и отображения вычисленных – объекты класса TEdit (вкладка Standard);
–объекты класса TLabel для пояснений (вкладка Standard).
7
Рис. 2
Для реализации проекта потребуется использовать глобальные переменные программы. Их описание помещается в блок var окна unit1 после имеющихся там описаний:
var
Form1: TForm1;
s,t,v:real; {эту строку нужно вписать, остальное уже подготовлено системой Delphi}
implementation
{$R *.dfm}
Обработчиком события onClick для кнопки Button1 («Вычисляем расстояние») будет такая программа:
t:=StrToFloat(edit2.text);
v:=StrToFloat(edit3.text);
s:=v*t;
Edit1.Text:=FloatToStr(s);
Задание для самостоятельного выполнения
Запрограммируйте остальные кнопки (вычисление времени и скорости).
8
Лабораторная работа 3.
Проект «Электрические цепи»
Задача: показать схему и рассчитать общее сопротивление участка электрической цепи при различных вариантах соединения трех резисторов: параллельном, последовательном и смешанном.
В проекте использованы:
–главная форма приложения – объект класса TForm;
–три кнопки для запуска разных вариантов соединения – объекты класса
TButton (вкладка Standard);
–три окна ввода для ввода значений сопротивлений – объекты класса TEdit (вкладка Standard);
–объект класса TLabel для вывода общего сопротивления участка цепи
(вкладка Standard);
– соединительные «провода» – объекты класса TShape (вкладка Additional).
Для реализации проекта потребуется использовать глобальные переменные программы. Их описание помещается в блок var окна unit1 после имеющихся там описаний:
var
Form1: TForm1;
r1, r2, r3 : integer; {сопротивления резисторов, будем считать их целыми числами }
r : real; {общее сопротивление участка цепи, может получиться и дробным при вычислении по формуле для параллельного соединения}
implementation
{$R *.dfm}
Обработчиком события onClick для кнопки Button1 («Параллельное») будет такая программа:
r1:=StrToInt(Edit1.text); {считываем данные из окон, } r2:=StrToInt(Edit2.text); {преобразуем в целые числа } r3:=StrToInt(Edit3.text); {и присваиваем переменным } r := r1*r2*r3/(r2*r3+r1*r3+r1*r2);
{вычисляем r для параллельного соединения}
9
Label1.Caption:=FloatToStr(r); {выводим результат, преоб-
разуя его из вещественного вида в строковый} Edit1.Left:=50; Edit1.Top:=50; { задаем } Edit2.Left:=50; Edit2.Top:=100; { положение } Edit3.Left:=50; Edit3.Top:=150; { резисторов } Shape1.Left:= …; Shape1.Top:=…; Shape2.Left:= …; Shape2.Top:=…;
…
{задаем положение соединительных «проводов»}
Указание: для определения координат объектов разместите их на форме вручную нужным образом и запишите координаты из инспектора объектов или всплывающей подсказки.
Если все сделано правильно, то после нажатия кнопки должна появиться примерно такая картина:
Рис. 2
Задание для самостоятельного выполнения
Запрограммируйте остальные кнопки (последовательное и смешанное соединение).
Лабораторная работа 4.
Проект «Блокнот»
Задача: создать простейший текстовый редактор, позволяющий вводить и редактировать текст, управлять шрифтом и цветом окна, а также открывать и сохранять файлы (аналог стандартного приложения Блокнот).
10