- Lektsia - бесплатные рефераты, доклады, курсовые работы, контрольные и дипломы для студентов - https://lektsia.info -

Гневко С.В., Крылов Г.Г., Шапочкина И.В.



 

 

Рецензенты

канд физ.-мат. Н.Н. Дорожкин

канд физ.-мат. А.И. Слободянюк

 

 

    Программирование в системе 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, необходимый для написания работы,