- •Лабораторная работа 1. Реализация линейных алгоритмов
- •Вариант 1
- •1. Даны два ненулевых числа. Найти их сумму, разность, произведение и частное.
- •Вариант 2
- •1. Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.
- •Вариант 3
- •1. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) — T2 ч. Определить путь S, пройденный лодкой.
- •Вариант 4
- •1. Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга.
- •Лабораторная работа 2. Условный оператор
- •Лабораторная работа 3. Оператор варианта.
- •Лабораторная работа 4. Строки. Операторы цикла.
- •Программирование численных циклических алгоритмов. Циклы «до» и «пока»
- •Лабораторная работа 5. Подпрограммы
- •Лабораторная работа 6. Массивы
- •Лабораторная работа 7. Множества
- •Лабораторная работа 8. Комбинированный тип данных (Запись)
- •Лабораторная работа 9. Работа с файлами
- •Лабораторная работа 10. Процедуры и функции модуля GraphABC
- •Графические примитивы
- •Подпрограммы для работы с пером
- •Лабораторная работа 11. Создание собственных модулей.
- •Лабораторная работа 12. Решение простейших задач в Console Application
- •Лабораторная работа 13. Динамические массивы
- •Лабораторная работа 14. Тип данных Variant
- •Лабораторная работа 15. Тип TDateTime
- •Лабораторная работа 16. Простейшие задачи на форме
- •Лабораторная работа 17. Флажки и переключатели
- •Лабораторная работа 18. Работа с меню
- •Главное меню
- •КОНТЕКСТНОЕ МЕНЮ
- •Лабораторная работа 19. Работа со списками
- •СПИСКИ ВЫБОРА
- •ВЫПАДАЮЩИЕ СПИСКИ
- •Лабораторная работа 20. Таймер. Работа с календарем
- •Лабораторная работа 21. Таблица строк
- •Лабораторная работа 22. Графика в Delphi
- •Лабораторная работа 23. Калькулятор
- •Лабораторная работа 24. Моделирование движения. Пуля
- •Лабораторная работа 25. Моделирование движения по кругу
- •Лабораторная работа 26. Цветомузыка
- •Лабораторная работа 27. Проигрыватель
- •Лабораторная работа 28. Цветочная поляна
- •Лабораторная работа 29. QUEST
- •Лабораторная работа 30. Тир
- •Лабораторная работа 31. Компоненты Delphi для взаимодействия с серверами автоматизации MS Office
- •Лабораторная работа 32. Обмен данными между программами с помощью DDE
- •Лабораторная работа 33. Технология Drag & Drop
- •Лабораторная работа 34. Использование динамически подключаемых библиотек (DLL).
- •Лабораторная работа 35. Создание собственного класса
- •Лабораторная работа 36. Конструкторы и деструкторы
- •Лабораторная работа 37. Создание собственных компонентов
procedure Ellipse(x1,y1,x2,y2: integer);
Рисует заполненный эллипс, ограниченный прямоугольником, заданным
координатами противоположных вершин (x1,y1) и (x2,y2) procedure Rectangle(x1,y1,x2,y2: integer);
Рисует заполненный прямоугольник, заданный координатами противоположных
вершин (x1,y1) и (x2,y2)
procedure DrawClosedCurve(points: array of Point);
Рисует замкнутую кривую по точкам, координаты которых заданы в массиве points procedure FillClosedCurve(points: array of Point);
Заполняет замкнутую кривую по точкам, координаты которых заданы в массиве
points
procedure TextOut(x,y: integer; s: string);
Выводит строку s в прямоугольник к координатами левого верхнего угла (x,y) procedure FloodFill(x,y: integer; c: Color);
Заливает область одного цвета цветом c, начиная с точки (x,y).
Подпрограммы для работы с пером
Рисование линий осуществляется текущим пером. Доступ к свойствам текущего пера можно осуществлять как в процедурном, так и в объектно-ориентированном стиле.
Процедуры и функции для доступа к свойствам пера сгруппированы парами: если Prop - имя свойства пера, то функция PenProp возвращает значение этого
свойства, а процедура SetPenProp(p) устанавливает это свойство: procedure SetPenColor(c: Color);
Устанавливает цвет текущего пера function PenColor: Color;
Возвращает цвет текущего пера
procedure SetPenWidth(Width: integer);
Устанавливает ширину текущего пера function PenWidth: integer;
Возвращает ширину текущего пера
procedure SetPenStyle(style: DashStyle);
Устанавливает стиль текущего пера. function PenStyle: DashStyle;
Возвращает стиль текущего пера. procedure SetPenMode(m: integer);
Устанавливает режим текущего пера function PenMode: integer;
Возвращает режим текущего пера function PenX: integer;
Возвращают x-координату текущей позиции рисования function PenY: integer;
Возвращают y-координату текущей позиции рисования function RGB(r,g,b: byte): Color;
Возвращает цвет, который содержит красную (r), зеленую (g) и синюю (b) составляющие (r,g и b - в диапазоне от 0 до 255)
© ИМПИ ОГПУ
Стили пера: |
psClear = DashStyle.Clear; |
Сплошное перо |
|
Прозрачное перо |
psDash = DashStyle.Dash; |
Штриховое перо |
psDot = DashStyle.Dot; |
Пунктирное перо |
psDashDot = DashStyle.DashDot; |
Штрихунктирное перо |
psDashDotDot = DashStyle.DashDotDot; |
Задания для самостоятельной работы
1.Нарисовать произвольный рисунок.
2.Нарисовать график функции y=sin(x)+cos(x).
Лабораторная работа 11. Создание собственных модулей.
Модуль – автономно компилируемая программа, содержащая различные компоненты раздела описания и инициирующая часть, которая выполняется при запуске вызывающей программы.
Напомним, что для подключения модуля используется служебное слово Uses
<имя модуля>;
Структура модуля
Unit <имя модуля>; {заголовок} Interface {интерфейсная часть}
Uses <список используемых модулей>;
<раздел описания типов> Implementation {исполняемая часть}
<описание объектов скрытых от вызывающей программы>
<тела процедур и функций, объявленные в интерфейсной части> begin {инициирующая часть}
<операторы инициализации модулей> end.
Замечание: имя модуля должно обязательно совпадать с именем файла, в котором помещается исходный текст модуля.
При описании процедур и функций в интерфейсной части используются только их заголовки. Тела процедур и функций содержатся в исполняемой части. Перед телом подпрограммы необходимо написать ее заголовок, а список параметров и тип результата можно не писать.
Объекты, описанные только в исполняемой части, могут использоваться только в модуле и недоступны вызывающей программе. Запрещено прямое или косвенное обращение модуля к самому себе.
© ИМПИ ОГПУ
Написать модуль, выполняющий действия над векторами.
Имя модуля: vectors.pas
Unit Vectors;
Interface
Const n = 3;
Type Vector = array [1..n] of real;
var nulvector : vector;
Procedure Add(a, b : vector; var c : vector); Procedure Mult(k : real; a : vector; var c : vector) Procedure WriteVector(a : vector);
Procedure ReadVector(var a : vector);
Implementation
Procedure Add;
Var i : integer; begin
for i := 1 to n do c[i] := a[i]+b[i] end;
…
var i : integer; begin
for i := 1 to n do nulvector[i] := 0; end.
Основная программа
Program Main;
Uses Vectors;
Var x, y, z, n : vector; begin
ReadVector(x); ReadVector(y); Add(x, y, z); WriteVector(z); x := vectors.nulvector;
WriteVector(x); end.
Задания для самостоятельной работы
Дописать предлагаемый модуль vectors.pas процедурами разности и произведения векторов. Использовать модуль в программе.
© ИМПИ ОГПУ
Лабораторная работа 12. Решение простейших задач в Console Application
ВWindows95 и более поздних версиях существуют консольные приложения
—программы, которые работают в окне так называемого «сеанса DOS». То есть это Windows-программы, не имеющие окон.
Для создания нового файла выбираем (File – Console Application).
У консольного приложения нет формы. Текст программы записываем в окне программного кода по аналогии с Pascal. Для ввода-вывода информации в консоле используются операторы write(ln) и read(ln). Клавишу F9 используем, чтобы
откомпилировать и запустить программу.
Рассмотрим пример программы
{$APPTYPE CONSOLE} program Hello; uses Windows; begin
WriteLn ("Hello, Delphi");
Write ("Press Enter...");
ReadLn; //задержка экрана должна быть произведена обязательно end.
Задания для самостоятельной работы
Вариант 1.
1.Даны a, b и c, введенные с клавиатуры. Найти сумму положительных из них.
2.Дана строка s. Построить перевёрнутую строку. Например, из слова ПРИВЕТ должно получиться ТЕВИРП.
3.Дан двумерный массив произвольной размерности. Заполните его таким образом, чтобы элементы выше главной диагонали были равными 0, остальные равными 1.
Вариант 2.
1.Даны a, b, и c из интервала [-13,13], генерируемые случайным образом. Найти количество отрицательных из них.
2.Дана строка s. Заменить все знаки препинания на 0, буквы – цифрой 1.
3.Дан двумерный массив произвольной размерности. Найти сумму положительных элементов его главной и побочной диагоналей.
©ИМПИ ОГПУ