Автор работы: Пользователь скрыл имя, 04 Января 2012 в 18:36, курсовая работа
Курсовая работа посвящена разработке программы на языке Object Pascal в интегрированной среде разработки (ИСР) Delphi. Задание предусматривает создание приложения с графическим интерфейсом с подпрограммами. Приложение содержит два модуля, в каждом подпрограммы для решения двух задач. Остальные модули используются для создания диалогов и оформления решения поставленных задач.
Рецензия……….…………………..…..………………………………3
Введение………………..…………..…………………………………4
Выбор варианта.…....……………….……………………………...…5
Справка………………………………………………………………..6
Главная форма.……………….………...……………………………..8
Вычисление констант………………...……………………………...11
Комплексные числа………………………………………………….14
Тригонометрия……………………………………………………….17
Гиперболические функции…………………
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.
Тригонометрия
В КР предусмотрена подготовка четырех собственных тригонометрических функций (синус, косинус, обратный тангенс и обратный котангенс). Их следует оформить в виде функций. Результаты требуется вывести в виде графика, на котором для сравнения нужно привести график аналогичной функции, определенной в ИСР.
Листинг
модуля 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.
Гиперболические функции.
В КР предусмотрена подготовка четырех собственных гиперболических функций (синус, косинус, тангенс и котангенс). Их следует оформить в виде функций. Результаты требуется вывести в виде графика, на котором для сравнения нужно привести график аналогичной функции, определенной в ИСР.
Листинг
модуля 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;