Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Танцы с квадратным уравненим


Автор: termik 28.5.2006, 03:58
Извините, но вот пара вопросов...
Вот есть задача "решение квадратного уравнения с использованием компонентов Label edit button.
Прикреплена фота...формы..

вот код
Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label4: TLabel;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:real;
d:real;
x1,x2:real;
s1,s2:string;
code: integer;
Begin
val(edit1.Text,a,code);
val(edit2.text,b,code);
val(edit3.Text,c,code);
  d:=b*b-4*a*c;
  if (a=0)or(d<0) then label5.caption:='ÐÅøåíèé íåò'
  else
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
str(x1:7:3,s1);
str(x2:7:3,s2);
Label5.caption:='Êîðíè óðàâíåíèÿ'+chr(13)+'x1='+s1+chr(13)+'x2="+s2;
end;
      end;

procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='";
edit2.Text:=";
edit3.Text:=";
label5.Caption:=";
end;

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

end.





выдает ошибки 

[Error] Unit1.pas(56): Unterminated string
[Error] Unit1.pas(62): Unterminated string
[Error] Unit1.pas(63): Missing operator or semicolon
[Error] Unit1.pas(63): Illegal character in input file: '"' ($22)
[Error] Unit1.pas(64): Illegal character in input file: '"' ($22)
[Error] Unit1.pas(65): Illegal character in input file: '"' ($22)
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'



Памагите исправить... 

Автор: SilentRoach 28.5.2006, 04:43
Дружище! Так нельзя smile

Код
Label5.caption:='Êîðíè óðàâíåíèÿ'+chr(13)+'x1='+s1+chr(13)+'x2="+s2;

ну что это такое? начинается одинарной кавычкой, заканчивается двойными. не иначе как unterminated string.  smile 
закрывать кавычки надо тем же символом что и начинал. в дельфи - только одинарной кавычкой (апострафом).   

Автор: Coder 28.5.2006, 06:14
заменяем строки:
Код

56: Label5.caption:='Ei?ie o?aaiaiey'+chr(13)+'x1='+s1+chr(13)+'x2='+s2;
62: edit1.Text:='';
63: edit2.Text:='';
64: edit3.Text:='';    
65: label5.Caption:='';
 

Автор: Quadr0 28.5.2006, 08:17
...

Автор: termik 28.5.2006, 11:09
Тоже квадратное уравнение, но по другому...

Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    File1: TMenuItem;
    Open1: TMenuItem;
    Save1: TMenuItem;
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure Open1Click(Sender: TObject);
    procedure Save1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a,b,c:real;
  d:real;

implementation

{$R *.dfm}

procedure TForm1.N2Click(Sender: TObject);
var fname,s:string;
x1,x2:real;
begin
d:= b*b-4*a*c;
if (a=0)or(d<0)then
memo1.lines.add('ðåøåíèé íåò')
else
 begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
Memo1.Lines.Add('Êîðíè óðàâíåíèÿ');
str(x1:7:3,s);
Memo1.Lines.Add('x1='+s);
Str(x2:7:3,s);
Memo1.Lines.Add('x2='+s);
end;

procedure TForm1.N3Click(Sender: TObject);
begin
Memo1.Clear;

end;

procedure TForm1.Open1Click(Sender: TObject);
var fname,s:string;inFile:TextFile;
begin
If OpenDialog1.Execute then
 begin
  fname:=OpenDialog1.FileName;
  AssignFile(inFile,fname);
  reset(inFile);
  end
  else exit;
  readln(infile,a,b,c);
  Closefile(infile);
  str(a:7:2,s);Memo1.Lines.Add(s);
  str(b:7:2,s);Memo1.Lines.Add(s);
  str(c:7:2,s);Memo1.Lines.Add(s);
  end;
procedure TForm1.Save1Click(Sender: TObject);
var fname:string;OutFile:TextFile;
begin
 if saveDialog1.Execute then
 begin
  fname:=SaveDialog1.FileName;
  AssignFile(OutFile,fname);
  rewrite(outFile);
  Writeln(Outfile,Memo1.Text);
  end;
  CloseFile(OutFile);
  Form1.Caption:=Form1.Caption+'['+fname+']';


end;

end.



Выдаеть ошибку
[Error] Unit1.pas(58): Statement expected but 'PROCEDURE' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

 

Автор: Демо 28.5.2006, 11:18
Цитата(termik @  28.5.2006,  11:09 Найти цитируемый пост)
Выдаеть ошибку
[Error] Unit1.pas(58): Statement expected but 'PROCEDURE' found


ПРоверь, чтобы всем begin соответствовал свой end; 

Автор: Guedda 28.5.2006, 11:22
Здесь end не хватает... 
Код

procedure TForm1.N2Click(Sender: TObject);
var fname,s:string;
x1,x2:real;
begin
d:= b*b-4*a*c;
if (a=0)or(d<0)then
memo1.lines.add('ðåøåíèé íåò')
else
 begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
Memo1.Lines.Add('Êîðíè óðàâíåíèÿ');
str(x1:7:3,s);
Memo1.Lines.Add('x1='+s);
Str(x2:7:3,s);
Memo1.Lines.Add('x2='+s);
end;
end; //Вот этого енда не было...
 

Автор: termik 28.5.2006, 13:05
Ууу....точняк... smile
ждемс...еще глупых вопросов... smile

Пасиба 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)