Добавьте под таблицей диаграмму, иллюстрирующую получающийся график
Добавьте поле со списком, где можно было бы выбрать вид вычисляемой функции
ЛИТЕРАТУРА
Delphi 5: учебный курс, С. Бобровский, Питер 2002 г.
Аладьев В.З., Хунт Ю.Я., Шишаков М.Л., Основы информатики. Учебное пособие, М., Филин, 1998, 496с.
Информатика. Учебник под ред. Проф. Н.В. Макаровой, Финансы и статистика, 2001, 768с.
Балафанов Е.К., Бурибаев Б., Даулеткулов А.. 30 уроков по информатике, Алматы, Джагамбек, 1999г, 442с (на русском и казахском языках)
Фигурнов В.З. IBM PC для пользователя, 7 изд., Москва, ИНФРА, 1998, 328с.
Каймин В.А., Питеркин В.М., Уртминцев А.Г. Информатика. Учебное пособие, 1998, 208с.
Кенин А.М., Печенкин Н. Окно в мир компьютеров, Екатеринбург, Деловая книга, 1996
Лабораторная работа № 5
Основы программирования в Delphi
ЦЕЛЬ РАБОТЫ
Цель лабораторной работы – освоение студентами основных понятий программирования, интерфейса среды программирования методов управления свойствами компонент.
СОЗДАНИЕ ПРОСТЕЙШИХ ПРОГРАММ
Откройте среду программирования Delphi
Из палитры компонентов перетяните на форму кнопку BitBtn1
В свойстве Caption задайте название кнопки – например Заполнение
Дважды щёлкните по кнопке и введите следующий код после названия модуля:
var
i, j : Longint;
здесь описываются две переменные и им присваивается тип Longint
После слова Begin введите следующий код:
BitBtn1.Enabled:=False;
with Canvas do
for i:=1 to Width do begin
Application.ProcessMessages;
for j:=1 to Height do
Pixels[i,j]:=i*j;
end;
BitBtn1.Enabled:=True;
В первой строчке отключается кнопка, во второй строчке задаётся поверхность формы как палитра для рисования, в третьей строчке создаётся цикл от края формы на всю её высоту, в четвёртой строчке происходит передача управления на другие приложения, в пятой строчке создаётся цикл по ширине формы, в шестой строчке происходит рисование на поверхности формы с цветом определяемым положением точки, в седьмой строчке закрывается первый цикл и в последней строчке программы кнопка снова подключается.
С охраните программу и запустите её командой Run/Run
При нажатии на кнопку будет происходить заполнение формы рисунком
Попробуйте менять код в подчёркнутой строчке, подставляя различные функции от I и j (i+j, i*i+j*j, и т.д.)
Закройте созданное приложение и создайте новый проект
Поместите на форму две кнопки, поле со списком, две полосы прокрутки вертикальную и горизонтальную, объект Shape1, объект ColorDialog1 и поле со списком как показано рядом
Переименуйте кнопку Button1 в Цвет формы и дважды щёлкните по ней
Введите после слова Begin следующий код:
if ColorDialog1.Execute then
Form1.Color := ColorDialog1.Color;
Сохраните проект и запустите его. Щёлкните по первой кнопке и выберите цвет. Цвет формы изменится
Вторую кнопку переименуйте в Цвет фигуры и поместите в неё такой код:
if ColorDialog1.Execute then
Shape1.Brush.Color := ColorDialog1.Color;
Снова запустите программу и попробуйте изменять цвет фигуры
Переключитесь на страничку “Events” в Инспекторе Объектов и создайте заготовки метода для отклика на событие OnChange для каждой полосы прокрутки. Напишите в каждом из методов по одной строчке следующим образом:
Shape1.Width := ScrollBar1.Position * 3;
и
Shape1.Height := ScrollBar2.Position * 2;
Запустите программу и испробуйте в действии
Выберите компонент ComboBox1 и щёлкните на кнопке с тремя точками напротив свойства Items и в открывшемся редакторе введите столбиком следующее:
StRectangle
StSquare
StRoundRect
StRoundSquare
StEllipse
StCircle
Закройте редактор и дважды щёлкните по компоненту ComboBox1
Введите следующую строчку кода:
Shape1.Shape := TShapeType(ComboBox1.ItemIndex);
Запустите программу и испробуйте нововведения в работе
Сохраните результат
Поместите на форму новый компонент MineMenu1
Дважды по нему щёлкните и введите название первого пункта: Цвета, второго пункта – Фигуры и третьего пункта – Выход
В первом пункте введите подпункты Цвет формы, а во втором – Цвет фигуры
Во втором пункте введите следующие подпункты: Прямоугольник, Квадрат, Закругленный прямоугольник, Закругленный квадрат, Эллипс, Окружность
В третьем пункте не будет никаких подпунктов
В подпунктах Цвет формы и Цвет фигуры наберите те же строчки кода, что и для соответствующих кнопок. После этого кнопки можно удалить
Свойству Tag подпункта Прямоугольник назначьте значение 0, подпункту Квадрат – 1 и т.д.
Для каждого подпункта введите следующую строчку кода:
Shape1.Shape := TShapeType((Sender as TMenuItem).Tag);
Удалите из формы поле со списком и проверьте программу в работе
В событии OnResize формы после названия модуля введите следующий код:
var
Menu,
Caption,
Frame: Integer;
После слова begin введите:
Caption := GetSystemMetrics(sm_cyCaption);
Frame := GetSystemMetrics(sm_cxFrame) * 2;
Menu := GetSystemMetrics(sm_cyMenu);
Scrollbar1.Max := Width;
Scrollbar2.Max := Height;
Scrollbar2.Left := Width - Frame - Scrollbar2.Width;
Scrollbar2.Height := Height - Frame - Caption - Menu;
Scrollbar1.Top :=
Height - Scrollbar2.Width - Frame - Caption - Menu;
Scrollbar1.Width := Width - Scrollbar2.Width - Frame;
В свойствах формы установите свойство Visible для вертикальной и горизонтальной полос прокрутки на false
Запустите программу и попробуйте изменять размер окна
Сохраните проект
ЛИТЕРАТУРА
Delphi 5: учебный курс, С. Бобровский, Питер 2002 г.
Аладьев В.З., Хунт Ю.Я., Шишаков М.Л., Основы информатики. Учебное пособие, М., Филин, 1998, 496с.
Информатика. Учебник под ред. Проф. Н.В. Макаровой, Финансы и статистика, 2001, 768с.
Балафанов Е.К., Бурибаев Б., Даулеткулов А.. 30 уроков по информатике, Алматы, Джагамбек, 1999г, 442с (на русском и казахском языках)
Фигурнов В.З. IBM PC для пользователя, 7 изд., Москва, ИНФРА, 1998, 328с.
Каймин В.А., Питеркин В.М., Уртминцев А.Г. Информатика. Учебное пособие, 1998, 208с.
Кенин А.М., Печенкин Н. Окно в мир компьютеров, Екатеринбург, Деловая книга, 1996
Лабораторная работа № 6
Использование функций и процедур
ЦЕЛЬ РАБОТЫ
Цель лабораторной работы – освоение студентами основных понятий программирования, интерфейса среды программирования методов управления свойствами компонент.
ФУНКЦИИ И ПРОЦЕДУРЫ
Откройте среду программирования Delphi
Построение графиков функций
Д обавьте на форму следующие компоненты Chart, CheckListBox, RadioGroup, как на рисунке.
В начале модуля опишите две функции:
function f1(x: real): real;
begin
Result:=sin(x);
end;
function f2(x: real): real;
begin
Result:=cos(x);
end;
На создание формы пропишите следующий код:
procedure TForm1.FormCreate(Sender: TObject);
var i: integer; x: real;
begin
CheckListBox1.Checked[0]:=True;
CheckListBox1.Checked[1]:=True;
Series1.Clear;
Series2.Clear;
for i:=1 to 100 do
begin
x:=Pi*0.02*i;
Series1.AddXY(x,f1(x),'',clRed);
Series2.AddXY(x,f2(x),'',clGreen)
end;
end;
Самостоятельно добавьте код, который выводит на экран график отмеченной на компоненте функции, обе функции одновременно или пустые оси
Используя свойство диаграммы Chart1.View3D, добавьте код переключения графика из плоского в объёмный вид. Для определения какая из радиокнопок включена, используйте свойство RadioGroup1.ItemIndex
Фигуры Лиссажу
Создайте показанную выше форму, и после директивы компилятору {$R *.dfm} опишите следующие переменные и константы:
Var
AX, AY : Integer; { Амплитуда }
FricX, FricY : Integer; { Частота }
FX, FY : Real; { Фаза }
Const
Step = 0.01; { Шаг прорисовки }
AxX = 300; AxY = 150; { Смещение по оси }
Опишите следующую пользовательскую процедуру, обеспечивающую рисование графика:
Procedure Tform1.Draw;
Var J : Real;
X,Y : Integer;
Begin
Series1.Clear;
Label1.Caption:='"Эталонный" сигнал на входе X: '+IntToStr(AX)+' SIN('+IntToStr(FricX)+'f+'+IntToStr(Trunc(FX))+'*PI/12'+')';
Label2.Caption:='Исследуемый сигнал на входе Y: '+IntToStr(AY)+' SIN('+IntToStr(FricY)+'f+'+IntToStr(Trunc(FY))+'*PI/12'+')';
J:=0;
While J<=2*PI Do
Begin
X:=AxX+Trunc(AX*Sin(FricX*J+2*PI/12*FX));
Y:=AxY+Trunc(AY*Cos(FricY*J+2*PI/12*FY));
Series1.AddXY(X,Y,'',clGreen);
J:=J+Step;
End;
End;
Для нормальной работы приложения необходимо добавить строчку procedure draw; в описание класса TForm1, после описания классов компонент.
На создание формы запишите код,, который нарисует фигуру Лиссажу с начальными значениями переменных:
AX := 100; AY := 100; { Амплитуда }
FricX := 1; FricY := 1; { Частота }
FX := 0; FY := 0; { Фаза }
draw;
Создайте обработчик события, отлавливающий нажатие определённых клавиш на клавиатуре OnKeyPress:
case Key of
'7': AY := AY + 10;
'8': If FY = 11 Then FY := 0 Else FY := FY+1;
'4': FricY := FricY+1;
'6': FricY := FricY-1;
'1': AY := AY - 10;
'2': If FY = 0 Then FY := 11 Else FY := FY-1;
end;
draw;
Достарыңызбен бөлісу: |