Лекции Практические и лабораторные занятия Курсовая работа (проект) Самостоятельная работа студента




Скачать 1.86 Mb.
страница 5/7
Дата 11.10.2016
Размер 1.86 Mb.
1   2   3   4   5   6   7

Поиск минимального (максимального) элемента массива


Будем искать минимальный элемент в целочисленном массиве. Для этого немного изменим обработчик события OnClick для кнопки:

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;//номер элемента, сравниваемого с минимальным

a:array[1..10] of integer;

min:integer;//номер минимального элемента

begin


//Введем массив

for i:=1 to 10 do

//Преобразуем полученные подстроки в числа

a[i]:=StrToInt(GetSubStr(Edit1.text,' ',i));//используем пробел в качестве разделителя

//Найдем минимальный элемент

min:=1; //пусть номер минимального элемента = 1

for i:= 2 to 10 do // начнем искать со следующего

if a[i]

Form1.caption:=IntToStr(a[min]); // выводим в заголовок

формы минимальный элемент

end;

В этом примере a[min] минимальный элемент массива, а min - номер минимального элемента. Алгоритм очень простой: сравниваем каждый следующий элемент с минимальным, если он меньше минимального, то запоминаем его номер в переменной min, и продолжаем сравнивать уже с ним.



Чтобы найти максимальный элемент, нужно изменить всего одну строку:

>>>


if a[i] Надо заменить на:

if a[i] > a[min] then min:=i;

Только теперь a[min] - максимальный элемент, а min - номер максимального элемента.


Поиск заданного элемента в массиве


Поступим методом простого перебора. Для этого будем перебирать все элементы массива, пока не встретим искомый элемент, или пока не дойдем до конца массива.

Элемент, совпадение с которым нам надо найти будем хранить в текстовом поле Edit2. Обработчик события OnClick нашей кнопки будет иметь такой вид:

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;

a:array[1..10] of integer;

n:integer;//образец

found:boolean;

begin


//Введем массив

for i:=1 to 10 do

//Преобразуем полученные подстроки в числа

a[i]:=StrToInt(GetSubStr(Edit1.text,' ',i));//используем пробел в качестве разделителя

n:=StrToInt(Edit2.text);

found:=false;

i:=1;

REPEAT


if a[i] = n then found:=true

else i:=i+1;

UNTIL (i > 10) or (found = true);

if found then showmessage('Совпадение с элементом номер '+IntToStr(i));

end;

Сортировка массива

Под сортировкой массива подразумевается процесс перестановки элементов массива, целью которого является размещение элементов массива в определенном порядке. Например, если имеется массив целых чисел а, то после выполнения сортировки по возрастанию должно выполняться условие:

а[1]

где SIZE — верхняя граница индекса массива.



Примечание

Задача сортировки распространена в информационных системах и используется как предварительный этап задачи поиска, т. к. поиск в упорядоченном (отсортированном) массиве проводится намного быстрее, чем в неупорядоченном (см. рассмотренный ранее метод бинарного поиска).

Существует много методов (алгоритмов) сортировки массивов.

Рассмотрим два из них:



  • метод прямого выбора;

  • метод прямого обмена.

Сортировка методом прямого выбора

Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:

1. Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.

2. Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.

3. И так далее до предпоследнего элемента.

Ниже представлена программа сортировки массива целых чисел по возрастанию, диалоговое окно которой изображено на рис. 5.15.





Рис. 5.15. Диалоговое окно программы сортировки массива простым выбором

Процедура сортировки, текст которой приведен в листинге 5.9, запускается нажатием кнопки Сортировка (Button1). Значения элементов массива вводятся из ячеек компонента StringGrid1. После выполнения очередного цикла поиска минимального элемента в части массива процедура выводит массив в поле метки (Label2).



Листинг 5.9. Сортировка массива простым выбором

procedure TForm1.ButtonlClick(Sender: TObject);

const

SIZE=10;



var

a:array[1..SIZE] of integer;

min:integer; { номер минимального элемента в части

массива от i до верхней границы массива }

j:integer; { номер элемента, сравниваемого с минимальным }

buf:integer; { буфер, используемый при обмене элементов массива }

i,k:integer;

begin

// ввод массива



for i:=l to SIZE do

a[i]:=StrToInt(StringGridl.Cells[i-1,0]) ; Iabel2.caption:='';



for i:=l to SIZE-1 do begin

{ поиск минимального элемента в части массива от а[1] до a[SIZE]} min:=i;



for j:=i+l to SIZE do if a[j]
then min:=j;

{ поменяем местами a [min] и a[i] }

buf:=a[i]; a[i]:=a[min]; a[min]:=buf;

{ вывод массива }



for k:=l to SIZE do

Label2.caption:=label2.caption+' '+IntTostr(a[k]);

Label2.caption:=label2.caption+#13; end;

Label2.caption:=label2.caption+#13+'MaccMB отсортирован.';



end;

На рис. 5.16 приведено диалоговое окно программы после завершения процесса сортировки.




Рис. 5.16. Диалоговое окно программы Сортировка массива

Сортировка методом обмена

В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим, и если он больше следующего, то элементы меняются местами. Таким образом, элементы с меньшим значением продвигаются к началу массива (всплывают), а элементы с большим значением — к концу массива (тонут). Поэтому данный метод сортировки обменом иногда называют методом "пузырька". Этот процесс повторяется столько раз, сколько элементов в массиве, минус единица.

На рис. 5.17 цифрой 1 обозначено исходное состояние массива и перестановки на первом проходе, цифрой 2 — состояние после перестановок на первом проходе и перестановки на втором проходе, и т. д.



Рис. 5.17. Процесс сортировки массива



Рис. 5.18. Диалоговое окно программы Сортировка методом обмена

На рис. 5.18 приведено диалоговое окно программы сортировки массива методом обмена.

Процедура сортировки, текст которой приведен в листинге 5.10, запускается нажатием кнопки Сортировка (Button1). Значения элементов массива вводятся из ячеек компонента stringGrid1. Во время сортировки, после выполнения очередного цикла обменов элементов массива, программа выводит массив в поле метки Label2.

Листинг 5.10. Сортировка массива методом обмена

procedure TForm1.Button1Click(Sender: TObject);

const

SIZE=5;


var

a:array[1..SIZE] of integer;

k:integer; // текущий элемент массива

i:integer; // индекс для ввода и вывода массива

changed:boolean; // TRUE, если в текущем цикле были обмены

buf:integer; // буфер для обмена элементами массива



begin

// ввод массива



for i:=1 to SIZE do

a[i] := StrToInt(StringGrid1.Cells[i-1, 0] );

label2.caption:='';

// сортировка массива repeat

Changed:=FALSE; // пусть в текущем цикле нет обменов

for k:=l to SIZE-1 do

if a[k] > a[k+l] then

begin // обменяем k-й и k+1-й элементы

buf := a[k]; a[k] := a[k+l]; a[k+l] := buf;

changed := TRUE;

end;

// вывод массива



for i:=l to SIZE do

Label2.caption:=label2.caption+' '+IntTostr(a[i]);

Label2.caption:=label2.caption+#13;

until not changed; // если не было обменов, значит

// массив отсортирован

Label2.caption:=label2.caption

+#13+'Maccив отсортирован.';



end;

Следует отметить, что максимальное необходимое количество циклов проверки соседних элементов массива равно количеству элементов массива минус один. Вместе с тем возможно, что массив реально будет упорядочен за меньшее число циклов. Например, последовательность чисел 5 1 2 3 4, если ее рассматривать как представление массива, будет упорядочена за один цикл, и выполнение оставшихся трех циклов не будет иметь смысла.

Поэтому в программу введена логическая переменная changed, которой перед выполнением очередного цикла присваивается значение FALSE. Процесс сортировки (цикл repeat) завершается, если после выполнения очередного цикла проверки соседних элементов массива (цикл for) ни один элемент массива не был обменен с соседним, и, следовательно, массив уже упорядочен.



Рис. 5.19. Пример работы программы сортировки массива методом обмена

На рис. 5.19 приведено диалоговое окно программы сортировки массива методом обмена после завершения процесса сортировки.



Задания для самостоятельной работы

  1. Создайте одномерный массив, заполните его случайноым образом и отсортируйте по убыванию методом"пузырька". Форма должна содержать компоненты для отображения исходного и отсортированного массива, а также компонент для ввода количества элементов.

  2. Задана целочисленная матрица А размером NxM, Получить массив B, присвоив его к-му элементу значения 0, если все элементы к-го столбца матрицы -нулевые, и значение в 1 противном случае (k=1,2,...,M).

Лабораторная работа №8

Тема: Процедуры и функции

Цель: Сформировать практические навыки описания и применения подпрограмм Object Pascal для обработки данных; построение однооконных интерфейсов с помощью визуального компонента «окно» (класс TForm) и визуальных компонентов панели инструментов Standard: «метка» (класс TLabel), «однострочный редактор» (класс TEdit), «кнопка» (класс TButton), «многострочный редактор текста» (TMemo).

Задание


1. В соответствии с вариантами задания и приведенной ниже спецификацией реализуйте приложение под Windows.

2. Разработайте тестовые задания, и оттестируйте программу одним из методов тестирования.


Спецификация приложения


1. В соответствии с приведенными вариантами заданий реализуйте приложение под Windows, используя для организации пользовательского интерфейса следующие элементы управления: «форма» (класс TForm), «кнопка» (класс TButton), «метка» (класс TLabel), «однострочный редактор» (класс TEdit). Ввод данных и вывод результатов осуществляйте в элементы управления «однострочный редактор». Подписи к однострочным редакторам выполните с помощью элементов «метка». Вычисление результата свяжите с нажатием на элементе управления «кнопка» левой клавиши мыши.

2. Организуйте контроль содержимого строки, вводимой в элемент «однострочный редактор». Если вводимая строка не соответствует заданному формату, то необходимо предусмотреть следующее: в окне сообщений вывести сообщение об ошибке, очистить строку, введенную в «однострочный редактор».

3. Визуальный компонент, в который выводится результат, должен быть доступен только для чтения, чтобы пользователь не мог редактировать его содержимое.

4. Установите удобный для пользователя порядок перемещения фокуса по компонентам с помощью клавиши Tab.


Рекомендации к выполнению


1. Для выполнения заданий используйте результаты предыдущих лабораторных работ. Для этого предварительно создайте новую папку, куда скопируйте все файлы подходящего приложения, после чего откройте его в Delphi и внесите необходимые изменения.

2. Описания разрабатываемых в работе подпрограмм помещайте в разделе реализации (раздел модуля, который начинается после зарезервированного слова implementation) модуля формы вашего приложения.


Варианты заданий


1. Разработайте функцию, которая получает через параметры два вещественных значения и возвращает наименьшее из них.

2. Разработайте функцию, которая получает через параметры целое значение, соответствующее 16-ичной цифре, и возвращает символ, изображающий эту цифру.

3. Разработайте функцию, которая получает через параметры символ, изображающий 16-ичную цифру, и возвращает целое значение, соответствующее этой цифре.

4. Разработайте функцию, которая получает через параметры длины трех сторон треугольника a, b, c, вычисляет и возвращает в качестве своего результата его площадь s. Площадь треугольника вычисляйте по формуле Герона:





5. Разработайте функцию, которая получает три вещественных параметра, возвращает в качестве своего результата булевское значение True, если полученные значения могут быть сторонами треугольника, False – в противном случае.

6. Разработайте функцию, которая получает три вещественных параметра R, r, l, вычисляет и возвращает в качестве своего результата площадь s усеченного конуса:



7. Разработайте функцию, которая получает три вещественных параметра R, r, h, вычисляет и возвращает в качестве своего результата объем v усеченного конуса:



8. Разработайте функцию, которая получает через параметры два вещественных значения x1, x2, вычисляет и возвращает в качестве своего результата вещественное значение y в соответствии со следующей формулой:





9. Разработайте функцию, которая вычисляет и возвращает в качестве своего результата заданный разряд целого числа. Целое число и номер разряда функция получает через параметры. Разряды нумеруйте справа налево, начиная с единицы. Для решения используйте операции mod, div.

10. Разработайте функцию, которая вычисляет и возвращает в качестве своего результата значение заданного разряда дробной части вещественного числа. Вещественное число и номер разряда функция получает через параметры. Разряды нумеруйте от десятичной точки направо, начиная с единицы. Для решения используйте функции Int, Frac.

11. Выполните приведенные выше варианты заданий, описывая процесс обработки данных в форме процедуры Object Pascal.

12. Разработайте процедуру, которая получает через параметры две вещественные переменные x, y и обменивает переменные их значениями. Например, до вызова процедуры переменные имеют значения: x = 5, y = 8. После вызова процедуры переменные имеют значения: x = 8, y = 5.


Пример


Пусть требуется написать функцию, которая получает через параметр (тип Char) литеру, определяет к какому из приведенных ниже подмножеств она принадлежит:

• латиница;

• цифра;

• кириллица;

• другая;

и возвращает строку (значение типа String), содержащую имя этого подмножества.

Для решения этой задачи можно построить приложение, состоящее из одной формы следующего вида (рис. 7):


Рис. 7

Ей соответствует модуль, текст которого приведен ниже.

unit Unit1;

interface

uses


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)



Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

private


{Private declarations}

public


{Public declarations}

end;


var

Form1: TForm1;

implementation

{$R *.DFM}

function Litera(Ch: Char):String;// Описание функции

begin


if ((Ch>='A') and (Ch='a') and (ChLitera:='Латиница'

else if ((Ch>='А') and (Ch='а') and (Ch

Litera:='Кириллица'

else if ((Ch>='0') and (Ch

Litera:='Цифра'

else Litera:='Другой'

end;


procedure Litera_(Ch: Char;var Res: String);// Описание процедуры

begin


if ((Ch>='A') and (Ch='a') and (ChRes:='Латиница'

else if ((Ch>='А') and (Ch='а') and (Ch

Res:='Кириллица'

else if ((Ch>='0') and (Ch

Res:='Цифра'

else Res:='Другой'

end;


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

var s: String;

begin

Litera_(Key,s); //вызов процедуры



Edit2.Text:= s;

//Edit2.Text:= Litera(Key); //Вызов функции

Edit1.Clear

end;


end.

Содержание отчета


1. Задание.

2. Текст программы на Object Pascal 2.0.

3. Тестовые наборы данных для тестирования приложения.

Контрольные вопросы


1. Назовите синтаксические правила, описания функции.

2. Назовите синтаксические правила, написания вызова функции.

3. Назовите синтаксические правила, описания процедуры.

4. Назовите синтаксические правила, написания оператора процедуры.

5. В чем отличие процедуры от функции?

6. Что такое локальные переменные подпрограммы?

7. Что такое глобальные переменные?

8. Что такое формальные параметры подпрограммы и для чего они предназначены?

9. Что такое фактические параметры подпрограммы и для чего они предназначены?

10. Как должны соотносится между собой фактические и формальные параметры подпрограммы при ее вызове?

11. Перечислите, какие виды формальных параметров используются в подпрограммах, укажите их назначение и особенности применения.



Лабораторная работа №9

Тема: Графические возможности Delphi.

Цель: Отработка практических навыков создания DELPHI-приложения с использованием компонентов TImage, TChart.

Задание 1.

Создать проект, позволяющий просматривать и редактировать рисунки, а также просматривать простейшие геометрические фигуры

Примерный вид формы:


Shape1

OpenPictureDialog1

SavePictureDialog1

Image1

MainMenu1



ColorBox1

ComboBox1

Выполнение задания:

1. Разместите на форме указанные компоненты.

2. Установите следующие свойства компонентов



Компонент

Свойство

Значение

ComboBox1

Items

квадрат

круг


Image1

AutoSuze

Stretch


true

false


3. Создайте главное меню формы

4. Запрограммируйте выбор пункта меню открыть

procedure TForm1.N2Click(Sender: TObject);

begin


if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

end;


5. Запрограммируйте выбор пункта меню сохранить:

procedure TForm1.N3Click(Sender: TObject);

begin

if SavePictureDialog1.Execute then Image1.Picture.SaveToFile(SavePictureDialog1.FileName);



end;

6. Запрограммируйте выбор цвета для рисования с помощью компонента ColorBox1:

procedure TForm1.ColorBox1Change(Sender: TObject);

begin


Image1.Canvas.Pen.Color:=ColorBox1.Selected;

end;


7. Запрограммируйте установку графического указателя при нажатии клавиши мыши в пределах компонента Image1:

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin


Image1.Canvas.MoveTo(X,Y);

end;


8. Запрограммируйте рисование линии при нажатии левой клавиши мыши и ее перемещении по компоненту Image1:

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

begin

if ssLeft in Shift then Image1.Canvas.LineTo(X,Y);



end;

9. Запрограммируйте выбор простой геометрической фигуры с помощью компонента ComboBox1:

procedure TForm1.ComboBox1Change(Sender: TObject);

begin


case ComboBox1.ItemIndex of

0: Shape1.Shape:=stSquare;

1: Shape1.Shape:=stCircle;

end;


end;

10. Сохраните проект и проверьте его работу.



Задание для самостоятельной работы

Доработайте проект следующим образом:



  1. добавьте в список ComboBox1 новые пункты: прямоугольник и эллипс и предусмотрите возможность изображения этих фигур;

  2. запрограммируйте закраску фигуры Shape1 цветом, выбранном в компоненте ColorBox1;

  3. добавьте на форму две кнопки Button1 и Button2. При щелчке мышью по Button1 размеры компонента Shape1 увеличиваются вдвое, а при щелчке по Button2 – уменьшаются вдвое.

Форма представления отчета:

Отчет о выполненной самостоятельной работе должен содержать:



  1. тему лабораторной работы;

  2. условие задачи;

  3. листинг программы;

  4. результаты ее тестирования.

Компонент Chart

Компонент Chart позволяет строить графики, диаграммы различных видов. Компонент Chart расположен на палитре Additional.



Круговая диаграмма

  1. Создайте форму следующего вида




Label2

Chart1

Edit1

ColorDialog1

Button1

StringGrid1

Edit1

Label1

2. Присвойте компонентам следующие значения



Компонент

Свойство

Значение

Label1

Caption

Пролив

Label2

Caption

Длина

Edit1

Text




Edit2

Text




Button1

Caption

Ввод

SrtingGrid1

ColCount

RowCount


FixedCols

2

10

0



3. Дважды щелкните по объекту Chart и в появившемся окне добавьте элемент Series (Add) и выберите тип Pie

4. Выделите объект Form1 в диспетчере объектов и перейдите на закладку Events в Object Inspector и дважды щелкните в поле справа от события OnCreate



5. Запрограммируйте событие создания формы.

procedure TForm1.FormCreate(Sender: TObject);

begin


StringGrid1.Cells[0,0]:='Пролив';

StringGrid1.Cells[1,0]:='Длина';

Chart1.Title.Text.Clear;

Chart1.Title.Text.Add('Диаграмма');

Series1.Clear;

Series1.Marks.Visible:=false;

end;


6. Запрограммируйте событие onClick для button1

procedure TForm1.Button1Click(Sender: TObject);



var A,A1:integer;

begin


A:=Edit1.tag;

inc(A);

Edit1.tag:=A;

StringGrid1.Cells[0,A]:=Edit1.Text;

StringGrid1.Cells[1,A]:=Edit2.Text;

A1:=StrToInt(Edit2.Text);

if ColorDialog1.Execute then Series1.Add(A1,Edit1.text, ColorDialog1.Color)

else Series1.Add(A1,Edit1.text, clYellow);

end;


7. Запустите программу на исполнение. Помните в поле Edit2 нужно вводить только числа

Построение графиков функций

1. Создайте форму следующего вида




Chart1

CheckBox1

Button1

2. Присвойте компонентам следующие значения



Компонент

Свойство

Значение

CheckBox1

Caption

3D

3. Дважды щелкните по объекту Chart и в появившемся окне добавьте элемент Series (Add) и выберите тип Line

4. Запрограммируйте событие onClick для button1

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;

begin


Series1.Clear;

Chart1.View3D:=false;

Series1.Title:='Sin';

for i := 0 to 100 do

begin

Series1.AddXY(0.02 * Pi * i, sin(0.02 * Pi * i), '', clRed);

end;

end;


Задания для самостоятельной работы

1. Добавьте еще один элемент Series и постройте график функции Sin, программа должна выглядеть так



2. Настройте вывод графиков в зависимости от выключателя 3D в двухмерном или трехмерном варианте. Изменения должны также происходить и при включении и выключении 3D/

Форма представления отчета:

Отчет о выполненной самостоятельной работе должен содержать:



  1. тему лабораторной работы;

  2. условие задачи;

  3. листинг программы;

  4. результаты ее тестирования.

Построение графиков функций в декартовых координатах

Пример 1.

Создать в среде DELPHI проект, позволяющий построить график функции

у = х2 - 2, x[-10 ; 10].

Для перехода от естественных координат к экранным воспользуемся формулами:

х1 = Ox + Мx*х.

у1 = Oy - Мy*у ,

где х , у - естественные координаты, х1 , у1 - экранные координаты, (Ox, Oy) – экранная точка, выбранная в качестве начала координат, Mx , My - масштаб, т.е. длина единичных отрезков в пикселях.

Разработка проекта:

1. Разместить на форме компоненты PaintBox1, Label1, Label2, Edit1, Edit2, Button1, Button2 следующим образом:




Button2

Button1

Edit2

Label2

Edit1

Label1

PaintBox1

2. Создать процедуру для построения графика функции (двойной щелчок мышкой по Button1)

procedure TForm1.Button1Click(Sender: TObject);

var


x1, y1, ox, oy, mx, my, i : integer;

x, y: real;

begin

paintbox1.Canvas.Pen.Color:=clblue; {устанавливаем синий цвет пера}



ox:=paintbox1.Width div 2; {начало координат размещаем в центре

oy:=paintbox1.Height div 2; компонента paintbox1}

mx:=StrToInt(Edit1.Text); {масштаб по оси x}

my:=StrToInt(Edit2.Text); {масштаб по оси x}

paintbox1.Canvas.moveto(0, oy); {строим оси координат}

paintbox1.Canvas.LineTo(640, oy);

paintbox1.Canvas.moveto(ox, 0);

paintbox1.Canvas.LineTo(ox, 480);

for i:= -10 to 10 do begin {разметка оси ox}

x1:=ox+mx*i;

paintbox1.Canvas.moveto(trunc(x1), oy-5);

paintbox1.Canvas.LineTo(trunc(x1), oy+5);

end;

for i:= -10 to 10 do begin { разметка оси oy }



y1:=oy-my*i;

paintbox1.Canvas.moveto(ox-5, trunc(y1));

paintbox1.Canvas.LineTo(ox+5, trunc(y1));

end;


paintbox1.Canvas.Pen.Color:=clred; {устанавливаем красный цвет пера}

x:= -10; y:=sqr(x)-2; {вычисляем координаты начальной точки графика}

x1:= trunc(ox+mx*x); y1:= trunc(oy-my*y); {перевод в экранные координаты}

paintbox1.Canvas.moveto(x1, y1); {перемещаем перо в эту точку}

while x{ построение графика функции}

begin


y:=sqr(x)-2; x1:= trunc(ox+mx*x); y1:= trunc(oy-my*y);

paintbox1.Canvas.LineTo(x1, y1);

x:=x+0.1;

end;


end;

3. Создать процедуру для очистки изображения графика (двойной щелчок мышкой по Button2)

procedure TForm1.Button2Click(Sender: TObject);

begin


paintbox1.Canvas.Pen.Color:=clblack;

paintbox1.Canvas.Brush.Color:=clwhite;

paintbox1.Canvas.Rectangle(0,0,paintbox1.Width,paintbox1.Height);

end;


4. Запустить проект на исполнение и проверить его работу, задавая различный масштаб.

Задание для самостоятельной работы

Доработать данный проект следующим образом:

а) разместить на форме компонент RadioGroup , позволяющий выбирать для построения графика одну из функций у = х2 – 2, y=sin x, y = sin(ex). y= ecos x ;

б) разместить на форме кнопку Выход, при щелчке по которой проект завершает работу.

Форма представления отчета:

Отчет о выполненной самостоятельной работе должен содержать:



  1. тему лабораторной работы;

  2. условие задачи;

  3. листинг программы;

  4. результаты ее тестирования.

Лабораторная работа №10

Тема: Мультимедиа возможности Delphi.

Цель: Отработка практических навыков создания DELPHI-приложения с использованием компонентов TImage, TChart, TMediaPlayer.
1   2   3   4   5   6   7


База данных защищена авторским правом ©infoeto.ru 2022
обратиться к администрации
Как написать курсовую работу | Как написать хороший реферат
    Главная страница