Создание программы в Delphi
Содержание:
Рецензия……….…………………..…..………………
Введение………………..…………..……………………
Выбор варианта.…....……………….………………………
Справка……………………………………………………………
Главная форма.……………….………...……………………………
Вычисление
констант………………...……………………………..
Комплексные
числа………………………………………………….14
Тригонометрия……………………………………………
Гиперболические функции………………………………………….20
Рецензия
Введение.
Курсовая работа посвящена разработке программы на языке Object Pascal в интегрированной среде разработки (ИСР) Delphi. Задание предусматривает создание приложения с графическим интерфейсом с подпрограммами. Приложение содержит два модуля, в каждом подпрограммы для решения двух задач. Остальные модули используются для создания диалогов и оформления решения поставленных задач.
Приложение использует интерфейс (меню), позволяющий:
- Сообщить сведения об авторе и возможностях приложения (“помощь”).
- Ввести исходные данные.
- Выбрать задачу (“задания”).
- Отобразить результаты и при необходимости графики решения.
- Завершить работу (“выход”).
Выбор
варианта.
Номер
зачетной книжки N21=119133. Преобразуем его
в четвертичную систему счисления путем
деления на основание системы счисления
4 и выбора остатков от деления в качестве
разрядов числа N4 в порядке, начиная с
младшего.
N21 = 119133/4= 29783 остаток 1
29783/4=7445 остаток 3
7445/4=1861 остаток 1
1861/4=465 остаток 1
465/4=116
116/4=29
29/4=7 остаток 1
7/4=1 остаток 3
****
Получаем N4=131011131
и искомые 4 цифры 1131. Таким образом необходимо
взять:
из столбца 0 задачу номер 2.2
из столбца 1 задачу номер 3.4
из столбца 2 задачу номер 4.2
из столбца
3 задачу номер 5.2
Описание
программы.
Справка.
Можно узнать
выбрав в меню пункт «Справка =.> О программе».
Листинг
модуля Unit6.
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg,
ExtCtrls, ComCtrls;
type
TForm6 = class(TForm)
Image1: TImage;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
StatusBar1: TStatusBar;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure
Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
begin
//выход
Close;
end;
procedure TForm6.Timer1Timer(Sender: TObject);
begin
//вывод текущей даты
Statusbar1.panels[0].text:='
//вывод текущего времени
Statusbar1.panels[1].text:='
end;
end.
Главная
форма.
Основная
форма приложения – Form1 с компонентами.
На этой форме можно выбирать задачи, узнать
о программе и выйти из программы.
Листинг
модуля Unit1:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, jpeg,
ExtCtrls, ComCtrls, ShellApi, math, oleserver,
comobj, adodb;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N5: TMenuItem;
Image1: TImage;
StatusBar1: TStatusBar;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4, Unit5,
Unit6;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
//вывод формы на экран с решением первого задания
Form2.Showmodal;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//вывод формы на экран с решением второго задания
Form3.Showmodal;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
//вывод формы на экран с решением третьего задания
Form4.Showmodal;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
//вывод формы
на экран с решением
Form5.Showmodal;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
//вывод формы
на экран о программе и
Form6.Showmodal;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
//завершение приложения
Application.Terminate;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//вывод текущей даты
Statusbar1.panels[0].text:='
//вывод текущего времени
Statusbar1.panels[1].text:='
end;
end.
Вычисление констант.
Для вычисления константы будем использовать подпрограмму, оформленную в виде функции.
- Константа p, численный ряд:
.
Листинг
модуля Unit2:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus, StdCtrls, Math, TeEngine, Series, ExtCtrls,
TeeProcs, Chart, jpeg;
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Image1: TImage;
Button3: TButton;
Label1: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label3: TLabel;
Label10: TLabel;
Label2: TLabel;
StatusBar1: TStatusBar;
Timer1: TTimer;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure
Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
e,p:real;
r:integer;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
//условия вывода сообщения на экран
if (Edit1.Text='') or (Edit1.Text='0') or (Edit1.Text<'0')
then
begin
//вывод сообщения на экран
Showmessage ('Недопустимое либо пустое значение!');
Edit1.Text:='';
end;
begin
//считывание исходных данных о точности
e:=strtofloat(edit1.Text);
//начало шага с нуля
r:=0;
//присваение Пи равному нулю
p:=0;
//цикл со сравнением
while abs(pi-p)>e do
begin
//вычисление ПИ
p:=p+4*(power(-1,r)/(2*r+1));
//увеличение шага
r:=r+1;
end;
//выводим данные о числе ПИ
label3.Caption:=floattostr(
//выводим данные о подсчете Р
label5.Caption:=floattostr(p)
//выводим данные о погрешности
label7.Caption:=floattostr(
//выводим данные о количестве шагов
label9.Caption:=floattostr(r)
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
//выход
Close;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
//сбрасываем данные
label3.Caption:='';
label5.Caption:='';
label7.Caption:='';
label9.Caption:='';
edit1.Text:='';
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
//вывод текущей даты
Statusbar1.panels[0].text:='
//вывод текущего время
Statusbar1.panels[1].text:='
end;
end.
Комплексные числа
Комплексное число имеет вид Z(x) = Re(x)/ Im(x), где
Re(x) - вещественная часть,
Im(x) - мнимая часть,
.
Для арифметики в комплексных числах определим 4 операции (сложение, вычитание, умножение и деление). В каждой из них входными являются вещественные и мнимые части операндов, а выходными вещественная и мнимая части результата. Их надо оформить в виде процедур. Результат нужно вывести в виде пары чисел. Графиков делать не надо.
Деление
Операция z=x/y
Листинг
модуля Unit3:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg,
ExtCtrls, ComCtrls;
type
TForm3 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Button1: TButton;
Button2: TButton;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Image1: TImage;
Button3: TButton;
StatusBar1: TStatusBar;
Timer1: TTimer;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure
Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
a,b,c,d:real;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
//условия вывода сообщения на экран
if (Edit1.Text='') or (Edit1.Text='0') or (Edit1.Text<'0')
or (Edit2.Text='') or (Edit2.Text='0') or (Edit2.Text<'0')
or (Edit3.Text='') or (Edit3.Text='0') or (Edit3.Text<'0')
or (Edit4.Text='') or (Edit4.Text='0') or (Edit4.Text<'0')
then
begin
//вывод сообщения на экран
Showmessage ('Недопустимое либо пустое значение!');
Edit1.Text:='';
end;
begin
//считывание исходных данных о делителе и делимом
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=StrToFloat(Edit3.Text);
d:=StrToFloat(Edit4.Text);
//расчет и вывод действительной и мнимой частей комплексного частного
Edit5.Text:=FloatToStr((a*c+b*
Edit6.Text:=FloatToStr((b*c-a*
end;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
//выход
Close;
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
//сбрасываем результаты вычисления
Edit5.Clear();
Edit6.Clear();
//сбрасываем исходные данные
Edit1.Clear();
Edit2.Clear();
Edit3.Clear();
Edit4.Clear();
end;
procedure TForm3.Timer1Timer(Sender: TObject);
begin
//вывод текущей даты
Statusbar1.panels[0].text:='
//вывод текущего времени
Statusbar1.panels[1].text:='
end;
end.
Тригонометрия
В КР предусмотрена подготовка четырех собственных тригонометрических функций (синус, косинус, обратный тангенс и обратный котангенс). Их следует оформить в виде функций. Результаты требуется вывести в виде графика, на котором для сравнения нужно привести график аналогичной функции, определенной в ИСР.
- Косинус Cos(x)
Листинг
модуля Unit4:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus, StdCtrls, Math, TeEngine, Series, ExtCtrls,
TeeProcs, Chart, jpeg;
type
TForm4 = class(TForm)
Edit1: TEdit;
Label2: TLabel;
Button2: TButton;
Label3: TLabel;
Label5: TLabel;
Image1: TImage;
Button1: TButton;
Chart1: TChart;
Series2: TLineSeries;
Series1: TLineSeries;
StatusBar1: TStatusBar;
Timer1: TTimer;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure
Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
var
a,b,c,s,p,f:extended;
k,r,j:integer;
begin
//условия вывода сообщения на экран
if (Edit1.Text='') or (Edit1.Text='0') or (Edit1.Text<'0')
then
begin
//вывод сообщения на экран
Showmessage ('Недопустимое либо пустое значение!');
Edit1.Text:='';
end;
//присваение оси а
a:=-6;
//обновление двух линий
Series1.Clear;
Series2.Clear;
//цикл сравнения
while a<6 do
begin
//строим первый график
Series1.AddXY(a,cos(a));
p:=1;
s:=1;
r:=1;
f:=1;
//цикл сравнения со считыванием точности
while 1/f>StrToFloat(edit1.text) do
begin
f:=1;
//цикл вычисления
с выводом промежуточных
for j:=1 to r*2 do f:=f*j;
//вычисление тригонометрического косинуса
p:=p+power(-1,r)*power(a,r*2)/
//увеличение шага
r:=r+1;
end;
//строим второй график
Series2.AddXY(a,p);
a:=a+0.05;
end;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
//выход
Close;
end;
procedure TForm4.Timer1Timer(Sender: TObject);
begin
//вывод текущей даты
Statusbar1.panels[0].text:='
//вывод текущего времени
Statusbar1.panels[1].text:='
end;
end.
Гиперболические функции.
В КР предусмотрена подготовка четырех собственных гиперболических функций (синус, косинус, тангенс и котангенс). Их следует оформить в виде функций. Результаты требуется вывести в виде графика, на котором для сравнения нужно привести график аналогичной функции, определенной в ИСР.
- Косинус Ch(x)
Листинг
модуля Unit5:
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus, StdCtrls, Math, TeEngine, Series, ExtCtrls,
TeeProcs, Chart, jpeg;
type
TForm5 = class(TForm)
Edit1: TEdit;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Label3: TLabel;
Label5: TLabel;
Image1: TImage;
Chart1: TChart;
Series2: TLineSeries;
Series1: TLineSeries;
StatusBar1: TStatusBar;