Рецензенты
канд физ.-мат. Н.Н. Дорожкин
канд физ.-мат. А.И. Слободянюк
Программирование в системе Delphi : Методические указания к лабораторным работам для студентов физического факультета / Авторы : Гневко С.В., Крылов Г.Г., Шапочкина И.В.. – Мн. : БГУ, 2005. – 47 с. |
Приведены заготовки проектов для выполнения лабораторных работ по курсу «Программирование и математическое моделирование: Программирование в системе Delphi», указаны связанные с выполнением лаботарорных работ необходимые компоненты, приведены индивидуальные задания по лабораторным работам.
.
Предназначено для студентов 1 курса всех специальностей физического факультета.
© БГУ, 2005
Введение
Курс программирования и математического моделирования для студентов, обучающихся по специальности физика должен включать обучение с использованием современных технологий программирования для современных операционных систем. В этой связи выбор в качестве языка программирования – языка Object Pascal и инструментальной системы быстрой разработки приложений Delphi является оптимальным, так как она строится на интуитивно понятном интерфейсе, сочетает всю полноту использования библиотек стандартных компонентов системы Microsoft Windows с возможностью визуальных средств быстрой разработки приложений.
В то же время имеются существенные трудности при изложении соответствующего материала в рамках отводимых программой часов. Поэтому основной целью данных методических указаний является подробное изложение модельных примеров написания лабораторных работ с целью предоставления работоспособного шаблона приложения, который можно (после изучения компонент, отвечающих за его функциональность) использовать в собственном рабочем проекте.
Возможность изучения документации при подготовке к работе обеспечивается при этом имеющимися в электронном виде двумя учебниками по языку Object Pascal и среде разработки Dephi (в дальнейшем мы будем ссылаться на них как на Уч. Д1, Уч. Д2), которые размещаются на каждом рабочем месте.
Каждая рассмотренная лабораторная работа представлена следующим образом:
· цель работы;
· перечень основных компонент, необходимых для выполнения работы;
· пример разработки приложения с минимальной функциональностью;
· примерный перечень заданий для выполнения студентами.
Задания для разработки различаются по уровню сложности, что позволяет преподавателю дифференцированно подойти к обучению каждого студента.
ЛАБОРАТОРНАЯ РАБОТА Л-2.1
Работа в интегрированной среде разработки Delphi.
Приложение с простым меню и реакцией на клавиатуру
и мышь.
Основной целью первой лабораторной работы является изучение возможностей работы в среде разработки, получение навыков работы с массивами, свойствами объектов, написание кода обработки стандартных событий.
Материал Уч. Д1, необходимый для написания работы, -
LES01.htm – LES03.htm, LES07.htm,LES10.htm
Перечень основных компонент, необходимых для выполнения работы
TFORM, TCANVAS, MessageDlg
Пример разработки приложения с минимальной функциональностью
Ниже приведена программа, обладающая следующей функциональностью.
Имеется меню, содержащее пункты – Выход и О программе, нажатие на любую клавишу выдает сообшение «Клавиша=>», нажатие на клавишу мыши выдает сообщение – «правая/левая (x,y)»
unit L2_1; {Основной модуль работы № 1 }
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;
Type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
public
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormKeyPress(Sender: TObject; var Key: Char);
end;{class}
Var
Form1: TForm1;
Implementation
{$R *.dfm}
{Реакция на событие – пункт меню «Выход»}
procedure TForm1.N1Click(Sender: TObject);
begin
Close;
end;
{Реакция на событие – пункт меню «О программе»}
procedure TForm1.N2Click(Sender: TObject);
begin
MessageDlg('Мини Лаб №1', mtInformation, [mbOk], 0);
end; {Proc}
{Реакция на событие – мышь}
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
case Button of
mbLeft: begin
Canvas.TextOut(X, Y, 'Левая('+IntToStr(X)+','+ IntToStr(Y)+')');
end;
mbRight:begin
Canvas.TextOut(X, Y, 'Правая('+IntToStr(X)+','+ IntToStr(Y)+')');
end;
end;
end; {proc}
{Реакция на событие – клавиатура}
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var
st: string;
begin
st:='Клавиша=> '+Key; MessageDlg(st, mtInformation, [mbOk], 0);
end; {Proc}
end.{Unit}
Примерный перечень заданий для выполнения
1. На форму поместить N точек (каждая точка помещается на форму по нажатию левой кнопки мыши и имеет номер 1..N). Определить номера точек с минимальной / максимальной координатами по X и по Y. Начало работы алгоритма - по нажатию правой кнопки мыши, результат выдать в окно диалога.
2. На форму поместить N точек (каждая точка помещается на форму по нажатию левой / правой кнопок мыши и имеет номер 1..N). Определить номера точек с минимальной / максимальной координатами по X и по Y. Задачу решить отдельно для групп точек, созданных по левой и по правой кнопке мыши. Начало работы алгоритма - по нажатию определенной клавиши на клавиатуре.
3. На форму поместить N точек (каждая точка помещается на форму по нажатию левой кнопки мыши и имеет номер 1..N). Упорядочить точки по возрастанию / убыванию координаты X. Начало работы алгоритма - по нажатию правой кнопки мыши, результат выдать в окно функцией TextOut.
4. На форму поместить N точек (каждая точка помещается на форму по нажатию правой кнопки мыши и имеет номер 1..N). Упорядочить точки по возрастанию / убыванию координаты Y. Начало работы алгоритма - по нажатию левой кнопки мыши, результат выдать, написав номер в позициях (x,y) каждой точки.
5. На форму поместить N точек (каждая точка помещается на форму по нажатию левой кнопки мыши и имеет номер 1..N). Вычислить расстояния всех точек до точки, помещенной на форму первой. Начало работы алгоритма - по нажатию правой кнопки мыши, результат выдать в окно диалога.
6. На форму поместить N точек (каждая точка помещается на форму по нажатию левой кнопки мыши и имеет номер 1..N). Вычислить расстояния всех точек до точки, помещенной на форму последней по нажатию правой кнопки мыши. Начало работы алгоритма - по нажатию определенной клавиши на клавиатуре, результат выдать в окно диалога.
7. На форму поместить N точек (каждая точка помещается на форму по нажатию левой кнопки мыши и имеет номер 1..N). Найти точку, максимально удаленную от точки, первой помещенной на форму по нажатию правой кнопки мыши. Начало работы алгоритма - по нажатию определенной клавиши на клавиатуре, результат выдать в окно функцией TextOut.
8. На форму поместить N точек (каждая точка помещается на форму по нажатию правой кнопки мыши и имеет номер 1..N). Найти точку, минимально удаленную от точки, последней помещенной на форму по нажатию левой кнопки мыши. Начало работы алгоритма - по нажатию определенной клавиши на клавиатуре, результат выдать в окно диалога.
9. На форму поместить N точек (каждая точка помещается на форму по нажатию левой кнопки мыши и имеет номер 1..N). Вычислить расстояния между всеми парами точек. Начало работы алгоритма - по нажатию правой кнопки мыши, результат подписать функцией TextOut в серединах отрезка, соединяющих пары точек.
10. На форму поместить N точек (каждая точка помещается на форму по нажатию левой кнопки мыши и имеет номер 1..N). Вычислить расстояния между всеми парами точек с нечетными номерами. Начало работы алгоритма - по нажатию правой кнопки мыши, результат подписать функцией TextOut в серединах отрезка, соединяющих пары точек.
11. На форму поместить N точек (каждая точка помещается на форму по нажатию левой / правой кнопок мыши и имеет номер 1..N). Вычислить сумму расстояний между всеми парами точек с четными номерами. Задачу решить отдельно для групп точек, созданных по левой и по правой кнопке мыши. Начало работы алгоритма - по нажатию определенной клавиши на клавиатуре, результат выдать функцией TextOut в середине окна.
12. На форму поместить N точек (каждая точка помещается на форму по нажатию правой кнопки мыши и имеет номер 1..N). Упорядочить точки по возрастанию / убыванию расстояния до точки, заданной последним нажатием левой кнопки мыши. Начало работы алгоритма - по нажатию определенной клавиши на клавиатуре, результат выдать функцией TextOut, подписав номера каждой точки.
13. На форму поместить 2 точки нажатием левой кнопки мыши. Определить координаты точки, лежащей в середине отрезка, соединяющего данные точки. Вычислить расстояние от найденной точки до правого нижнего угла формы и до точек, заданных нажатием правой кнопки мыши. Начало работы алгоритма - по нажатию определенной клавиши на клавиатуре, результат выдается в окне диалога.
14. * На форму поместить N точек (каждая точка помещается на форму по нажатию правой кнопки мыши и имеет номер 1..N). Определить порядок соединения точек незамкнутой непересекающейся ломанной. Начало работы алгоритма - по нажатию левой кнопки мыши. Точки подписать их номерами, порядок соединения выдать парами номеров точек у правой границы окна.
15. На форму поместить N точек (каждая точка помещается на форму по нажатию левой кнопки мыши и имеет номер 1..N). Определить порядок соединения точек замкнутой ломанной, проводимой в порядке возрастания координат (x,y) . Начало работы алгоритма - по нажатию правой кнопки мыши. Точки подписать их номерами, порядок соединения выдать парами номеров точек у правой границы окна.
16. На форму поместить N точек (каждая точка помещается на форму по нажатию левой кнопки мыши и имеет номер 1..N). Вычислить сумму расстояний от точки с номером (N div 2) до всех остальных. Результат выдать в диалог.
ЛАБОРАТОРНАЯ РАБОТА Л-2.2
Пользовательские типы данных, ввод и вывод.
Основной целью второй лабораторной работы является изучение базовых структурных типов данных – строк, записей, массивов и их использование, а также элементарные приемы ввода-вывода данных в Delphi.
Материал Уч. Д1, необходимый для написания работы,