Алгоритм работы программы: Запускаем программу. Перед нами появляется окно главной формы Form 1(рисунок 4). На ней расположены компоненты label1, label2, label3, edit1, edit2, button1.
Form1
edit1
Label1
edit2
Label2
Button1
Label3
Рисунок 4- Главная форма
Свойства, которые я использовал для этих компонентов, перечислены ниже.
Для Form1:
Свойство Caption – «Курсовая работа по информатике»;
Свойство AutoSize – Автоматически настраивает размер формы;
Для button 1:
Свойство Caption – «Вычислить уравнение»;
Событие OnClick;
Для label1:
Свойство Caption – «Введите функцию»;
Для label2:
Свойство Caption – «Введите х=»;
Для label3:
Свойство Caption – «Уравнение =»
Для компонента 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.