Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2008, 10:37   #1
SYL@R
Пользователь
 
Регистрация: 09.06.2008
Сообщений: 25
По умолчанию помогите на найти ошибку в программе

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
CheckBox1: TCheckBox;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.text:='0,1';
Edit2.text:='0,356';
Edit3.text:='0';
Memo1.Clear;
Memo1.Lines.Add('');

end;

procedure TForm1.Button1Click(Sender: TObject);
var x,y,z,f,u,k,q:extended;
begin

x:=StrToFloat(Edit1.Text);
Memo1.Lines.Add(' x='+Edit1.Text);
y:=StrToFloat(Edit2.Text);
Memo1.Lines.Add(' y='+Edit2.Text);
z:=StrToFloat(Edit3.Text);
Memo1.Lines.Add(' z='+Edit3.Text);

case RadioGroup1.ItemIndex of
1: f(x):=sin(x);
2: f(X):=sqr(x);
3: f(x):=exp(x);
end;

if CheckBox1.Checked then
begin u:=abs(u);
y:=abs(y);
z:=abs(z);
end;

if abs(x*q)>10 then k:=ln(abs(f(x))+abs(q)) else
if abs(x*q)<10 then k:=exp(f(x)+q) else
if abs(x*q)=10 then k:=f(x)+q;
if CheckBox1.Checked then
Memo1.Lines.Add(' k='+FloatToStrF(k,ffFixed,8,2));

end;

end.
помоите исправить ошибку ругается на
это
1: f(x):=sin(x);
2: f(X):=sqr(x);
3: f(x):=exp(x);
и на это
if abs(x*q)>10 then k:=ln(abs(f(x))+abs(q)) else
if abs(x*q)<10 then k:=exp(f(x)+q) else
if abs(x*q)=10 then k:=f(x)+q;
ошибка Missing operator or semicolon
SYL@R вне форума Ответить с цитированием
Старый 28.11.2008, 12:35   #2
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

Видимо, компилятор ругается на F(X), воспринимая F как функцию. А это переменная типа extended. Замените везде "f(x)" на "f".
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    CheckBox1: TCheckBox;
    RadioGroup1: TRadioGroup;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.text:='0,1';
Edit2.text:='0,356';
Edit3.text:='0';
Memo1.Clear;
Memo1.Lines.Add('');

end;

procedure TForm1.Button1Click(Sender: TObject);
var x,y,z,f,u,k,q:extended;
begin

x:=StrToFloat(Edit1.Text);
Memo1.Lines.Add(' x='+Edit1.Text);
y:=StrToFloat(Edit2.Text);
Memo1.Lines.Add(' y='+Edit2.Text);
z:=StrToFloat(Edit3.Text);
Memo1.Lines.Add(' z='+Edit3.Text);

case RadioGroup1.ItemIndex of
1: f:=sin(x);
2: f:=sqr(x);
3: f:=exp(x);
end;

if CheckBox1.Checked then
begin u:=abs(u);
y:=abs(y);
z:=abs(z);
end;

if abs(x*q)>10 then k:=ln(abs(f)+abs(q)) else
if abs(x*q)<10 then k:=exp(f+q) else
if abs(x*q)=10 then k:=f+q;
if CheckBox1.Checked then
Memo1.Lines.Add(' k='+FloatToStrF(k,ffFixed,8,2));

end;

end.
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
VVM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИТЕ исправить ошибку в программе SYL@R Помощь студентам 1 21.11.2008 14:48
помогите найти ошибку rUs_LAN Microsoft Office Excel 5 19.11.2008 20:15
Паскаль, не могу найти ошибку в программе Julinja Помощь студентам 2 17.11.2008 20:42
Помогите найти ошибку в программе Evgenii Помощь студентам 3 24.07.2008 09:06
Помогите найти ошибку в программе KnDmPetr Паскаль, Turbo Pascal, PascalABC.NET 5 10.03.2008 14:19