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

Министерство  образования Республики Беларусь

Белорусский национальный технический университет

Международный институт дистанционного образования 
 
 
 

Контрольная

по дисциплине

Программирование

Вариант-11   
 
 
 
 
 
 
 
 
 
 

Выполнил студент                                                                            Лысов Д.В.

1-го курса  группы А6

г. Гродно Дзержинского 135 кв.26

Зачетная книжка №417426

Специальность 53.01.02.

Информационные  системы и 

технологии 
 
 

Проверил:                                                                                         Орехво                                                                                         
 
 
 
 
 
 
 
 
 
 

ГРОДНО 2007

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

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

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

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

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

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

unit Unit1; 

interface 

uses

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

  Dialogs, StdCtrls, Menus; 

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Button5: TButton;

    Button6: TButton;

    Button7: TButton;

    Button8: TButton;

    Button9: TButton;

    ButtonPlus: TButton;

    ButtonMinus: TButton;

    ButtonEnter: TButton;

    ButtonC: TButton;

    Button0: TButton;

    ButtonZ: TButton;

    ButtonDel: TButton;

    ButtonUmn: TButton;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure Button8Click(Sender: TObject);

    procedure Button9Click(Sender: TObject);

    procedure Button0Click(Sender: TObject);

    procedure ButtonZClick(Sender: TObject);

    procedure ButtonPlusClick(Sender: TObject);

    procedure ButtonMinusClick(Sender: TObject);

    procedure ButtonEnterClick(Sender: TObject);

    procedure ButtonCClick(Sender: TObject);

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

    procedure ButtonDelClick(Sender: TObject);

    procedure ButtonUmnClick(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure N3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1; 

implementation

var

  accum:real;

  oper:integer;

  f:integer; 

{$R *.dfm} 

procedure DoOper;

var

    numb: real;

begin

    numb := StrToFloat(Form1.Edit1.Text);

    case oper of

    0: accum := numb;

    1: accum := accum + numb;

    2: accum := accum - numb;

    3: accum := accum/numb;

    4: accum := accum*numb;

    end;

    Form1.Edit1.Text := FloatToStr(accum);

end; 

procedure TForm1.FormCreate(Sender: TObject);

begin

    oper := 0;

end; 

procedure TForm1.Button1Click(Sender: TObject);

begin

  if f = 0

  then  begin

      Edit1.Text := '1';

      f := 1;

    end

  else Edit1.Text := Edit1.Text + '1';

end; 

procedure TForm1.Button2Click(Sender: TObject);

begin

  if (f = 0)

  then begin

         Edit1.Text := '2';

         f := 1;

    end

  else Edit1.Text := Edit1.Text + '2';

end; 

procedure TForm1.Button3Click(Sender: TObject);

begin

  if f = 0

  then begin

         Edit1.Text := '3';

         f := 1;

       end

  else Edit1.Text := Edit1.Text + '3';

end; 

procedure TForm1.Button4Click(Sender: TObject);

begin

  if f = 0 then

    begin

      Edit1.Text := '4';

      f := 1;

    end

  else Edit1.Text := Edit1.Text + '4';

end; 

procedure TForm1.Button5Click(Sender: TObject);

begin

  if (f = 0)

  then begin

         Edit1.Text := '5';

         f := 1;

       end

  else Edit1.Text := Edit1.Text + '5';

end; 

procedure TForm1.Button6Click(Sender: TObject);

begin

  if f = 0

  then begin

         Edit1.Text := '6';

         f := 1;

       end

  else Edit1.Text := Edit1.Text + '6';

end; 

procedure TForm1.Button7Click(Sender: TObject);

begin

  if f = 0

  then begin 

      Edit1.Text := '7';

      f := 1;

    end

  else Edit1.Text := Edit1.Text + '7';

end; 

procedure TForm1.Button8Click(Sender: TObject);

begin

  if f = 0

  then begin

         Edit1.Text := '8';

         f := 1;

       end

  else Edit1.Text := Edit1.Text + '8';

end; 

procedure TForm1.Button9Click(Sender: TObject);

begin

  if f = 0

  then begin

         Edit1.Text := '9';

         f := 1;

       end

  else Edit1.Text := Edit1.Text + '9';

end; 

procedure TForm1.Button0Click(Sender: TObject);

begin

  if f = 0

  then begin

         Edit1.Text := '0';

         f := 1;

       end

  else

      if Edit1.Text <> '0' 

        then  Edit1.Text := Edit1.Text + '0';

end; 

procedure TForm1.ButtonZClick(Sender: TObject);

begin

  if Edit1.Text = '0' then

    begin

      Edit1.Text := '0,';

      f := 1;

    end;

  if Pos(',',Edit1.Text) = 0 then

      Edit1.Text := Edit1.Text + ',';

end; 

procedure TForm1.ButtonPlusClick(Sender: TObject);

begin

  if f = 0 

    then oper := 1

  else begin

    DoOper;

    oper :=1;

    f:=0;

  end;

end; 

procedure TForm1.ButtonMinusClick(Sender: TObject);

begin

  if f = 0

    then oper := 2

  else begin

    DoOper;

    oper :=2;

    f:=0;

  end;

end; 

procedure TForm1.ButtonEnterClick(Sender: TObject);

begin

  if f = 0

    then oper := 0

  else begin

    DoOper;

    oper :=0;

    f:=0;

  end;

end; 

procedure TForm1.ButtonCClick(Sender: TObject);

begin

  Edit1.Text := '0';

  accum := 0;

  oper := 0;

  f := 0;

end; 

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

  Key := Chr(0);

end; 

procedure TForm1.ButtonDelClick(Sender: TObject);

begin

  if f = 0 

    then oper := 3

  else begin

    DoOper;

    oper :=3;

    f:=0;

  end;

end; 

procedure TForm1.ButtonUmnClick(Sender: TObject);

begin

  if f = 0 

    then oper := 4

  else begin

    DoOper;

    oper :=4;

    f:=0;    

  end;

end; 

procedure TForm1.N2Click(Sender: TObject);

begin

Application.MessageBox('Выполнил  Денис Лысов', 'Внимание!!!',0);

end; 

procedure TForm1.N3Click(Sender: TObject);

begin

close;

end; 

end.

 

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

 

 

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

Нахождение  значения определенного  интеграла методом  Симпсона.

Цель  работы: Изучить обработчик создания формы.

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

  1.Создать  главную форму и присвоить  ей имя, соответствующее лабораторной  работе.

  2.Поместить  компоненту Label, в поле которой  вывести значение решаемой задачи.

  3.Написать  обработчик создания формы, в котором запрограммировать нахождение значения определенного интеграла методом левых прямоугольников.

  4.Изучить  структуру Unit главной формы.

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

unit Unit1; 

interface 

uses

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

  Dialogs, StdCtrls; 

type

  TForm1 = class(TForm)

    Label1: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Button2: TButton;

    Button3: TButton;

    Label5: TLabel;

    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.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;

    Label1: TLabel;

    Button4: TButton;

    Label2: TLabel;

    Label3: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button4Click(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/x)*sin(1/x);

end; 
 

procedure TForm2.Button1Click(Sender: TObject);

begin

Form2.close;

end; 

procedure TForm2.Button2Click(Sender: TObject);

var a,b,dx,x,y,y1,y2: real;

n: integer;

begin

a:=1;b:=5;

n:=80;y:=0;

dx:=(b-a)/n; 
 

y1 := 0; x := a + dx;

while x < (b - dx) do begin

y1 := y1 + f(x);

x := x + 2*dx;

end; 

y2 := 0; x := a + 2*dx;

while x < (b - 2*dx) do begin

y2 := y2 + f(x);

x := x + 2*dx;          

end; 

y:=((b-a)/(3*n)) * (f(a)+f(b) + 4*y1 + 2*y2); 

int:=y;

rashcet:=rashcet+1;

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

end; 

procedure TForm2.Button4Click(Sender: TObject);

begin 

if rashcet>0 then begin

Application.CreateForm(TForm3,Form3);

Form3.ShowModal;

Form3.Free;

end else

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

end; 

end. 
 

unit Unit3; 

interface 

uses

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

  Dialogs, StdCtrls; 

type

  TForm3 = class(TForm)

    Button1: TButton;

    Label1: TLabel;

    Label2: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form3: TForm3; 

implementation

uses Unit1, Unit2;

{$R *.dfm} 

procedure TForm3.Button1Click(Sender: TObject);

begin

Form3.close;

end; 

procedure TForm3.FormCreate(Sender: TObject);

begin

Label2.Caption:=FloatToStr(int);

end; 

end. 
 
 

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

 

 

 

 

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

Создание  нескольких форм и  средства управления ими.

Цель  работы: Изучить основные свойства и методы, связанные с созданием и активизацией форм

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

  1. Создать главную форму, содержащую название работы, фамилии исполнителей, кнопку изменения цвета формы и кнопку вызова другой формы.
  2. Создать вторую форму, предназначенную для задания основных параметров, необходимых для вычисления определенного интеграла методом трапеций:
 
Вариант Подынтегральная функция  Интервал интеграла  Количество  разбиений 

Шаг Первообразная функция
10 [0,1] 40 0.025
 

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

3. Каждая  из форм должна содержать кнопку, по которой можно вернуться  на шаг назад, т.е. на предыдущую  форму.

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

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