Создание программы в Delphi

    Содержание: 

    Рецензия……….…………………..…..………………………………3 

    Введение………………..…………..…………………………………4 

    Выбор варианта.…....……………….……………………………...…5 

    Справка………………………………………………………………..6 

    Главная форма.……………….………...……………………………..8 

    Вычисление  констант………………...……………………………...11 

    Комплексные числа………………………………………………….14 

    Тригонометрия……………………………………………………….17 

    Гиперболические функции………………………………………….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                       остаток 1

                 116/4=29                         остаток 0

                 29/4=7                             остаток 1

                 7/4=1                               остаток 3

                 ****                                остаток 1

    Получаем 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:='Текущая дата: '+DateToStr(now);

//вывод текущего времени

Statusbar1.panels[1].text:='Время: '+TimeToStr(now);

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:='Текущая дата: '+DateToStr(now);

//вывод текущего времени

Statusbar1.panels[1].text:='Время: '+TimeToStr(now);

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(pi);

//выводим данные  о подсчете Р

 label5.Caption:=floattostr(p);

//выводим данные  о погрешности

 label7.Caption:=floattostr(pi-p);

//выводим данные  о количестве шагов

 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:='Текущая  дата: '+DateToStr(now);

//вывод текущего  время

Statusbar1.panels[1].text:='Время: '+TimeToStr(now);

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*d)/(sqr(c)+sqr(d)));

Edit6.Text:=FloatToStr((b*c-a*d)/(sqr(c)+sqr(d)));

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:='Текущая  дата: '+DateToStr(now);

//вывод текущего  времени

Statusbar1.panels[1].text:='Время: '+TimeToStr(now);

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)/f ;

//увеличение  шага

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:='Текущая дата: '+DateToStr(now);

//вывод текущего времени

Statusbar1.panels[1].text:='Время: '+TimeToStr(now);

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;