- •Содержание
- •Лабораторная работа № 1 Программирование алгоритмов линейной и разветвляющейся структур.
- •Теоретические сведения
- •Отчет по лабораторной работе
- •Лабораторная работа № 2 Программирование алгоритмов разветвляющейся и циклической структуры
- •Теоретические сведения
- •Программирование таблично заданной функции.
- •1. Изучить:
- •Отчет по лабораторной работе
- •Лабораторная работа № 3 Обработка одномерных и многомерных массивов
- •1. Изучить:
- •Лабораторная работа № 4 Программирование с использованием подпрограмм пользователя
- •1. Изучить:
- •Теоретические сведения
- •Лабораторная работа № 5 Обработка файловых структур данных
- •1. Изучить:
- •Теоретические сведения
- •Часть2 Лабораторная работа № 6 Множественный тип данных (4 часа)
- •Учебная программа primset
- •Порядок выполнения работы.
- •Лабораторная работа № 7 Организация и использование статической библиотеки (Unit ) в Delphi. Использование списков выбора
- •Лабораторная работа №8 Графические средства в delphi
- •Теоретические сведения
- •Графика Canvas
- •Визуальный компонент класса tChart.
- •Добавление серии в график
- •Приложение 1 Справка по работе с основным набором визуальных компонентов Delphi, требуемых при выполнении лабораторных работ
- •Компонент Окно выбора файла (tOpenDialog)
- •Компонент Окно сохранения файла (tSaveDialog)
- •Список литературы
Лабораторная работа № 7 Организация и использование статической библиотеки (Unit ) в Delphi. Использование списков выбора
Цель работы:
освоить организацию модуля(статической библиотеки) в DELPHI, научиться подключать модуль и использовать в вызывающей программе подпрограммы модуля.
Домашнее задание:
1 Изучить структуру модуля Unit в DELPHI и состав его разделов.
2 Освоить назначение и структуру оператора Uses.
3 Изучить способы передачи параметров в подпрограммы и их возврат в точку вызова в вызывающую программу, а также работу с глобальными переменными.
Теоретические сведения:
Модули - это программные единицы, предназначенные для размещений фрагментов программ. С помощью содержащегося в них программного кода реализуется вся поведенческая сторона программы.
Любой модуль имеет следующую структуру
: заголовок, секция интерфейсных объявлений ,секция реализации ,терминатор.
Заголовок открывается зарезервированным словом Unit ,за которым следует имя модуля и точка с запятой. Секция интерфейсных объявлений открывается зарезервированным словом Interface, a секция реализации - словом Implementation. Терминатором модуля, как и терминатором программы, является end с точкой.
Следующий фрагмент программы является синтаксически правильным вариантом модуля:
unit Unit1;
interface
// Секция интерфейсных объявлений
implementation
// Секция реализации
end.
В секции интерфейсных объявлений описываются программные элементы (типы, классы, процедуры и функции), которые будут “видны” другим программным модулям, а в секции реализации раскрывается механизм работы этих элементов. Разделение модуля на две секции обеспечивает удобный механизм обмена алгоритмами между отдельными частями одной программы. Он также реализует средство обмена программными разработками между отдельными программистами.
Получив откомпилированный “посторонний” модуль, программист получает доступ только к его интерфейсной части, в которой, как уже говорилось, содержатся объявления элементов: типов, переменных, констант, а также заголовки процедур и функций этой библиотеки
. Детали реализации объявленных процедур, функций, классов скрыты в секции реализации и недоступны другим модулям.
Подключение откомпилированного модуля( статической библиотеки) к вызывающей программе необходимо выполнить с помощью директивы Uses.
Порядок выполнения работы:
1.Организовать статическую библиотеку, обратившись к репозиторию DELPHI( File-New-Unit).
2.Организовать в модуле подпрограммы в соответствии с вариантом задания.
3.Организовать вызывающее приложение в DELPHI ,в которое подключить откомпилированный модуль-библиотеку.
4.В вызывающем приложении организовать вызовы соответствующих подпрограмм модуля, вывести результаты с использованием визуального интерфейса ,продемонстрировать их преподавателю.
5.Оформить отчет по лабораторной работе и защитить ее преподавателю.
Варианты заданий для выполнения работы:
1.Пусть точки заданы последовательностью координат: x1,y1,x2,y2, …,xn,yn .
C помощью подпрограмм статической библиотеки (Unit ) найти :
а) точку с наибольшим значением функции;
б) точку с наименьшим значением функции;
в) поменять найденные точки местами.
Выбор действия в главной программе организовать с помощью списка выбора( ComboBox ).
2. Пусть а1, … ,аn – количество осадков в мм , выпавшее в Москве в течение последних n лет. С помощью подпрограмм статической библиотеки(Unit) вычислить:
а) среднее количество осадков для заданного отрезка времени
(от 1 до n );
б) отклонение от среднего для каждого заданного года;
в) наименьшее и наибольшее из отклонений .
Выбор действия в главной программе организовать с помощью списка выбора( ComboBox ).
3. Дан двумерный массив А( 2 * N) ,в котором первая строка- абсциссы точек, вторая- ординаты точек. С помощью подпрограмм статической библиотеки (Unit) проверить:
а) является ли массив упорядоченным по возрастанию значений
абсцисс?
б) является ли массив упорядоченным по убыванию значений ординат?
в) переставить местами две заданные точки .
Выбор действия в главной программе организовать с помощью списка выбора( ComboBox ).
4. Дан двумерный массив с числом строк N и с числом столбцов M.
Седловая точка- это элемент наименьший в своей строке и одновременно наибольший в своем столбце.
C помощью подпрограмм статической библиотеки (Unit ) найти :
а) все седловые точки в заданном массиве;
б) седловую точку( ее значение и местоположение) с наибольшим
значением .
Выбор действия в главной программе организовать с помощью списка выбора( ComboBox ).
5. Организовать статическую библиотеку (Unit) , в подпрограммах которой реализовать простейшие действия над комплексными числами( +,- ,*, / ) .
Обратиться к ее подпрограммам из главной программы
( procedure TForm1.Button1Click ), в которой выбор действия организовать динамически , используя компонент класса TCombobox.
Использовать:
Type
Complex=record
re,im:real;
end;
Правила выполнения действий над комплексными числами:
z1=a+i*b; z2=c+i*d;
z1+z2=(a+c)+i*(b+d);
z1-z2=(a-c)+i*(b-d);
z1*z2=(a*c-b*d)+i*(a*d+b*c);
z1/z2=((a*c+b*d)/(c*c+d*d))+i*((b*c-a*d)/(c*c+d*d));
6. Система N материальных точек на плоскости задана с помощью действительных чисел:x1,y1,m1,x2,y2,m2,...,xn,yn,mn, где xi,yi-координаты i-той точки, mi- ее масса. С помощью подпрограмм статической библиотеки Unit вычислить:
a) координаты центра масс:
x=(x1*m1+x2*m2+...+xn*mn)/(m1+m2+...+mn);
y=(y1*m1+y2*m2+...+yn*mn)/(m1+m2+...+mn);
б) расстояния от каждой точки до центра масс;
в) наименьшее из расстояний.
Выбор действия в главной программе-- с использованием компонента класса TCombobox.
Контрольные вопросы:
1.Какова структура модуля Unit в DELPHI
2.Какова разница при использовании величины ,объявленной в разделе Interface или в разделе Implementation.
3.Есть ли фиксированное место для оператора Uses в программе в DELPHI.
4.Правила организации и использования глобальных величин в DELPHI.
5.Способы передачи параметров в подпрограмму в DELPHI.
