Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алёнка отчёт.docx
Скачиваний:
5
Добавлен:
23.09.2019
Размер:
625.63 Кб
Скачать

Алгоритм работы программы: Запускаем программу. Перед нами появляется окно главной формы Form 1(рисунок 4). На ней расположены компоненты label1, label2, label3, edit1, edit2, button1.

Form1

edit1

Label1

edit2

Label2

Button1

Label3

Рисунок 4- Главная форма

Свойства, которые я использовал для этих компонентов, перечислены ниже.

  1. Для Form1:

  • Свойство Caption – «Курсовая работа по информатике»;

  • Свойство AutoSize – Автоматически настраивает размер формы;

  1. Для button 1:

  • Свойство Caption – «Вычислить уравнение»;

  • Событие OnClick;

  1. Для label1:

  • Свойство Caption – «Введите функцию»;

  1. Для label2:

  • Свойство Caption – «Введите х=»;

  1. Для label3:

  • Свойство Caption – «Уравнение =»

  1. Для компонента edit:

  • Свойство text - удаляем;

  • Свойство AutoSize – Подгоняет размер компонента под изображение автоматически.

При нажатии на пункт меню «Выполнить» программа выполняет тоже самое что и при нажатии на кнопку, в при нажатии «Выход» форма закрывается.

При нажатии на кнопку «Помощь», появляется справка на новой форме (рисунок 5)

Рисунок 5- форма «Помощь»

При нажатии на кнопку «О программе», появляется справка о постановке задачи, на новой форме (рисунок 6 )

Рисунок 6- форма «Постановка задачи»

П ри нажатии на кнопку «Над программой работала», появляется справка о студентке выполнявшей работу, на новой форме (рисунок 7 ).

Рисунок 7- форма «Над программой работала»

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

Program alenka;

interface

uses

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

Dialogs, StdCtrls, Menus,jpeg;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

Button1: TButton;

Label3: TLabel;

Label4: TLabel;

N6: TMenuItem;

procedure Button1Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

aperand: array [1..100] of real;

operacii: array [1..100] of Char;

x: Real;

l,i,n,m, f, q, j: integer ;

a,s,b : string;

implementation

uses Unit2, Unit3, Unit4;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

{Процедура которая считывает по элементно строку, преобразую её как функцию, вычисляющая введённые данные}

begin

s:= edit1.Text;

l:=Length (s);

x:=StrToFloat(edit2.text);

n:=0;

m:=0;

a:='';

f:=0;

i:=1;

q:=0;

while i<=l do

begin

inc(q);

case s[i] of

'(': begin

inc(m);

operacii[m]:='(';

inc(i);

f:=0;

end;

'0'..'9': begin

while (s[i]in['0'..'9']) or (s[i]=',') do

begin

a:=a+s[i];

Inc(i);

end;

inc(n);

aperand[n]:=StrToFloat(a);

a:='';

f:=1;

end;

'+':begin

begin

if (operacii[m] in ['(','+','-']) or (m=0) then

begin

if (operacii[m]<>'(') and (m<>0) then

begin

case operacii[m] of

'+': aperand[n-1]:=aperand[n-1]+aperand[n];

'-': aperand[n-1]:=aperand[n-1]-aperand[n];

end;

n:=n-1;

m:=m-1;

end;

inc(m);

operacii[m]:=s[i];

inc(i);

end

else

begin

case operacii[m] of

'*': aperand[n-1]:=aperand[n-1]*aperand[n];

'/': aperand[n-1]:=aperand[n-1]/aperand[n];

end;

n:=n-1;

m:=m-1;

end;

end;

f:=1;

end;

'-': begin

if f=0 then

begin

inc(n);

aperand[n]:=0;

inc(m);

operacii[m]:='-';

inc(i);

end

else

begin

if (operacii[m] in ['(','+','-']) or (m=0)then

begin

if (operacii[m]<>'(') and (m<>0) then

begin

case operacii[m] of

'+': aperand[n-1]:=aperand[n-1]+aperand[n];

'-': aperand[n-1]:=aperand[n-1]-aperand[n];

end;

n:=n-1;

m:=m-1;

end;

inc(m);

operacii[m]:=s[i];

Inc(i);

end

else

begin

case operacii[m] of

'*': aperand[n-1]:=aperand[n-1]*aperand[n];

'/': aperand[n-1]:=aperand[n-1]-aperand[n];

end;

n:=n-1;

m:=m-1;

end;

end;

f:=1;

end;

'*','/':begin

inc(m);

operacii[m]:=s[i];

f:=1;

inc(i);

end ;

')': begin

while operacii[m]<>'(' do

begin

case operacii[m] of

'*': aperand[n-1]:=aperand[n-1]*aperand[n];

'/': aperand[n-1]:=aperand[n-1]/aperand[n];

'+': aperand[n-1]:=aperand[n-1]+aperand[n];

'-': aperand[n-1]:=aperand[n-1]-aperand[n];

end;

n:=n-1;

m:=m-1;

end;

m:=m-1;

f:=1;

inc(i);

end;

'x': begin

inc(n);

aperand[n]:=x;

f:=0;

inc(i);

end;

'y','Y': begin

b:=' ';

inc(n);

f:=1;

inc(i);

end;

end;

for j:=1 to n do b:=b+floattostr(aperand[j])+' ';

b:='';

for j:=1 to m do b:=b+operacii[j]+' ';

end;

while m<>0 do

begin

inc(q);

case operacii[m] of

'*': aperand[n-1]:=aperand[n-1]*aperand[n];

'/': aperand[n-1]:=aperand[n-1]/aperand[n];

'+': aperand[n-1]:=aperand[n-1]+aperand[n];

'-': aperand[n-1]:=aperand[n-1]-aperand[n];

end;

n:=n-1;

m:=m-1;

for j:=1 to n do b:=b+floattostr(aperand[j])+' ';

for j:=1 to m do b:=b+operacii[j]+' ';

end;

Label3.Caption:=FloatToStr(Aperand[1]);

end;

procedure TForm1.N3Click(Sender: TObject);

{Процедура закрывающая программу}

begin

close;

end;

procedure TForm1.N4Click(Sender: TObject);

{Процедура открывает новое окно с данными о программе}

begin

form2.show;

end;

procedure TForm1.N5Click(Sender: TObject);

{Процедура открывает новое окно с условием задачи}

begin

form3.show;

end;

procedure TForm1.N6Click(Sender: TObject);

{Процедура открывает новое окно с данными о студенте выполнивший задание }

begin

form4.show;

end;

end.