Вот что у меня получилось:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
const n=5;
type
aa=array[1..n] of real;
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Label6: TLabel;
Label7: TLabel;
PaintBox1: TPaintBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Label7Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure vvod(var a,b:real; var s:aa);
procedure Raschet(var p:integer; var x:aa; var y:aa; var int:real);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y:aa;
f:text;
a,b,h,gral:real;
p:integer;
implementation
{$R *.dfm}
{zapolnenie Xov v massive x[5]}
procedure vvod(var a,b:real; var s:aa);
var i:integer; t1,t2:real;
Begin
a:=StrToFloat(Edit2.Text);
b:=StrToFloat(Edit3.Text);
s[1]:=0.5*(b+a);
t1:=0.5*sqrt((5-sqrt(11))/3);
s[2]:=0.5*(b+a)+ 0.5*(b-a)*t1 ;
s[3]:=0.5*(b+a) - 0.5*(b-a)*t1;
t2:=0.5*sqrt((5+sqrt(11))/3);
s[4]:=0.5*(b+a)+ 0.5*(b-a)*t2;
s[5]:=0.5*(b+a) - 0.5*(b-a)*t2;
end;
procedure Raschet(var p:integer; var x:aa; var y:aa; var int:real);
var i:integer; h:real;
Begin
If p=1 then
For i:=1 to 5 do
y[i]:=(x[i]*x[i]*x[i]-x[i]*x[i]+x[i]+1);
if p=2 then
For i:=1 to 5 do
y[i]:=x[i];
If p=3 then
for i:=1 to 5 do
y[i]:=x[i]*x[i];
int:=y[1]+y[2]+y[3]+y[4]+y[5];
gral:=int*(b-a)/5;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
vvod(a,b,x);
p:=StrToFloat(Edit1.Text);
Raschet(p,x,y,gral);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
var
x, y: array[1..50] of double;
i: integer;
scalex, scaley, ymin, ymax, xmin, xmax: double;
begin
for i := 1 to 50 do
begin
y[i] := sin(i * 0.5);
x[i] := i;
end;
xmin := x[1];
xmax := x[1];
ymin := y[1];
ymax := y[1];
for i := 2 to 50 do
begin
if y[i] < ymin then
ymin := y[i];
if y[i] > ymax then
ymax := y[i];
if x[i] < xmin then
xmin := x[i];
if x[i] > xmax then
xmax := x[i];
end;
scalex := paintbox1.Width / (xmax - xmin);
scaley := paintbox1.Height / (ymax - ymin);
with paintbox1.canvas do
begin
moveto(trunc(scalex * (x[1] - xmin)), paintbox1.height - trunc(scaley * (y[1]
- ymin)));
for i := 2 to 50 do
Lineto(trunc(scalex * (x[i] - xmin)), paintbox1.height - trunc(scaley *
(y[i] - ymin)));
end;
end;
Вот только компилятор ругается на эту строчку
a:=StrToFloat(Edit2.Text);
b:=StrToFloat(Edit3.Text);
и выдаёт:
[Error] Unit1.pas(55): Undeclared identifier: 'Edit2'
[Error] Unit1.pas(56): Missing operator or semicolon
[Error] Unit1.pas(56): Undeclared identifier: 'Edit3'
[Error] Unit1.pas(58): Missing operator or semicolon
[Error] Unit1.pas(90): Incompatible types: 'Integer' and 'Extended'
[Error] Unit1.pas(97): Undeclared identifier: 'labels'
[Error] Unit1.pas(98): Incompatible types: 'String' and 'Real'
[Error] Unit1.pas(102): Statement expected but 'VAR' found
[Error] Unit1.pas(103): Identifier redeclared: 'x'
[Error] Unit1.pas(127): Undeclared identifier: 'paintbox1'
[Error] Unit1.pas(127): Statement expected, but expression of type 'Extended' found
[Error] Unit1.pas(128): Missing operator or semicolon
[Error] Unit1.pas(128): Statement expected, but expression of type 'Extended' found
[Error] Unit1.pas(129): 'DO' expected but identifier 'canvas' found
[Error] Unit1.pas(131): Undeclared identifier: 'moveto'
[Error] Unit1.pas(131): Missing operator or semicolon
[Error] Unit1.pas(132): Statement expected, but expression of type 'Int64' found
[Error] Unit1.pas(133): Missing operator or semicolon
[Error] Unit1.pas(134): Not enough actual parameters
[Error] Unit1.pas(135): Statement expected, but expression of type 'Int64' found
[Error] Unit1.pas(136): '.' expected but ';' found
[Warning] Unit1.pas(137): Text after final 'END.' - ignored by compiler
[Error] Unit1.pas(30): Unsatisfied forward or external declaration: 'TForm1.vvod'
[Error] Unit1.pas(31): Unsatisfied forward or external declaration: 'TForm1.Raschet'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Честно говоря как убрать эти ошибки я не ппонимаю, хотя их содержание мне более или менее понятно...
Просьба сильно не ругаться, ибо я только учусь... Заранее спасибо
Сообщение отредактировано: Kalipsoo -