Контрольная работа по "Программирование"

Автор: Пользователь скрыл имя, 20 Декабря 2010 в 21:03, контрольная работа

Краткое описание

Простейшая программа в среде Delphi.

Цель работы: Научиться конструировать главную форму программы простейшими стандартными компонентами.

Постановка задачи:

1.Создать главную форму и присвоить ей имя, соответствующее лабораторной работе.
2.Сконструировать простейший калькулятор.
3.Написать обработчики, реализующие основные арифметические действия калькулятора.
4.Изучить структуру Unit главной формы.

Файлы: 1 файл

Записка.doc

— 640.50 Кб (Скачать)
n="justify">    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1;

  Check: Byte;

implementation

{$R *.dfm} 

function AbsReal(X : Extended):Extended;

begin

    Result := Abs(X);

end; 

function F(X : Double):Double;

begin

    Result:=1/sqrt(1+3*x+2*x*x);

end; 

function IntegralRect(a : Double; b : Double; Epsilon : Double):Double;

var

    i : Integer;

    n : Integer;

    h : Double;

    s1 : Double;

    s2 : Double;

begin

    n := 1;

    h := b-a;

    s2 := h*F((a+b)/2);

    repeat

        n := 2*n;

        s1 := s2;

        h := h/2;

        s2 := 0;

        i := 1;

        repeat

            s2 := s2+F(a+h/2+h*(i-1));

            i := i+1;

        until  not (i<=n);

        s2 := s2*h;

    until  not (AbsReal(s2-s1)>3*Epsilon);

    Result := s2;

end; 

function IntegralTrap(a : Double; b : Double; Epsilon : Double):Double;

var

    i : Integer;

    n : Integer;

    h : Double;

    s1 : Double;

    s2 : Double;

begin

    n := 1;

    h := b-a;

    s2 := h*(F(a)+F(b))/2;

    repeat

        s1 := s2;

        s2 := 0;

        i := 1;

        repeat

            s2 := s2+F(a-h/2+h*i);

            i := i+1;

        until  not (i<=n);

        s2 := s1/2+s2*h/2;

        n := 2*n;

        h := h/2;

    until  not (AbsReal(s2-s1)>3*Epsilon);

    Result := s2;

end; 

function IntegralSimps(a : Double; b : Double; Epsilon : Double):Double;

var

    h : Double;

    s : Double;

    s1 : Double;

    s2 : Double;

    s3 : Double;

    x : Double;

begin

    s2 := 1;

    h := b-a;

    s := F(a)+F(b);

    repeat

        s3 := s2;

        h := h/2;

        s1 := 0;

        x := a+h;

        repeat

            s1 := s1+2*F(x);

            x := x+2*h;

        until  not (x<b);

        s := s+s1;

        s2 := (s+s1)*h/3;

        x := AbsReal(s3-s2)/15;

    until  not (x>Epsilon);

    Result := s2;

end; 

procedure TForm1.ToolButton1Click(Sender: TObject);

begin

RadioGroup1.ItemIndex:=0;

Check:=1;

form1.Edit1.Text:='';

end; 

procedure TForm1.ToolButton3Click(Sender: TObject);

begin

RadioGroup1.ItemIndex:=1;

Check:=2;

form1.Edit1.Text:='';

end; 

procedure TForm1.ToolButton5Click(Sender: TObject);

begin

RadioGroup1.ItemIndex:=2;

Check:=3;

form1.Edit1.Text:='';

end; 

procedure TForm1.Button1Click(Sender: TObject);

  var s:String ;

    begin

      case Check of

        1:str(IntegralRect(0,1,0.0001):10:7,s);

        2:str(IntegralTrap(0,1,0.0001):10:7,s);

        3:str(IntegralSimps(0,1,0.0001):10:7,s);

    end ;

  form1.Edit1.Text:=s;

end; 

procedure TForm1.FormCreate(Sender: TObject);

begin

Check:=1;

end; 

end 
 
 
 

2) Пример работы  программы: 

 
 

 

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

Стандартные диалоговые компоненты

Цель  работы: Изучить способы работы с основными стандартными диалоговыми компонентами

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

1)Листинг программы: 

unit Unit1; 

interface 

uses

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

  Dialogs, StdCtrls, Menus; 

type

  TForm1 = class(TForm)

    Label4: TLabel;

    Button1: TButton;

    ColorDialog1: TColorDialog;

    Button2: TButton;

    Button3: TButton;

    PopupMenu1: TPopupMenu;

    gfjfjggf1: TMenuItem;

    gfhf1: TMenuItem;

    fghgfhf1: TMenuItem;

    fghgfh1: TMenuItem;

    Label1: TLabel;

    Label3: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1;

  Col: TColor;

  int,intp,pogr,rashcet : Real;

implementation 

uses Unit2; 

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Col:=Form1.Color;

  if ColorDialog1.Execute()=True then

  Col:=ColorDialog1.Color;

  Form1.Color:=Col;

end; 

procedure TForm1.Button2Click(Sender: TObject);

begin

int:=0;

pogr:=0;

rashcet:=0;

Application.CreateForm(TForm2,Form2);

Form2.ShowModal;

Form2.Free;

end; 

procedure TForm1.Button3Click(Sender: TObject);

begin

close;

end; 

end. 

unit Unit2; 

interface 

uses

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

  Dialogs, StdCtrls, jpeg, ExtCtrls; 

type

  TForm2 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Label1: TLabel;

    Label2: TLabel;

    Button4: TButton;

    Label8: TLabel;

    Image1: TImage;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form2: TForm2; 

implementation 

uses Unit1, Unit3; 

{$R *.dfm} 

function f(x:real):real; {интегрируемая функция}

begin

f:=1/sqrt(1+3*x+2*x*x);

end; 
 

procedure TForm2.Button1Click(Sender: TObject);

begin

Form2.close;

end; 

procedure TForm2.Button2Click(Sender: TObject);

var h,i,z,a,b,n:real;  {описание переменных}

begin

a:=0;b:=1;

n:=40;z:=0;

h:=(b-a)/n; 
 

i:=a; 

while (i<=b) do   {цикл расчета по формуле трапеций}

 begin

  z:=z+h*(f(i)+f(i+h))/2;

  i:=i+h;

end;  {конец цикла}

int:=z; 

rashcet:=rashcet+1;

Label1.Caption:='Ответ  на 3 форме';

end; 

procedure TForm2.Button4Click(Sender: TObject);

begin 

if rashcet>1 then begin

Application.CreateForm(TForm3,Form3);

Form3.ShowModal;

Form3.Free;

end else

Application.MessageBox('Ошибка! Интегралл или погрешность еще не рассчитаны.', 'Внимание!!!',0); 

Информация о работе Контрольная работа по "Программирование"