Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

практика

.pdf
Скачиваний:
18
Добавлен:
13.03.2015
Размер:
665.99 Кб
Скачать

Федеральное агентство железнодорожного транспорта Уральский государственный университет путей сообщения

Кафедра прикладной информатики

И. И. Данилина

Программирование в системе 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