массивы
Добавлено: 01 июл 2010, 14:29
Помогите, пожалуйста, исправить ошибки!!!
Условие: Дана строка символов, слова разделены пробелами. Вывести на экран порядковый номер слова, накрывающего k-ю позицию. Если k-я позиция – пробел, то вывести номер предыдущего слова.
Вот, что я написала:
[syntax='delphi']
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
A,b,c:integer;
S:string;
begin
c:=Length(LabeledEdit1.text);
a:=strtoint(LabeledEdit2.Text);
b:=a;
If LabeledEdit1.Text[a]=' ' then //есил символ пробел
begin
While LabeledEdit1.Text[b-1]<>' ' do //пока не нарвемся на другой пробел
begin
If B=0 then break;
b:=b-1;
end;
While B<>A do
begin
s:=s+LabeledEdit1.Text;
b:=b+1;
end;
end
else
begin
While LabeledEdit1.Text[a-1]<>' ' do //пока не нарвемся на другой пробел
begin
If A=0 then break;
a:=a-1;
end;
B:=A;
While LabeledEdit1.Text<>' ' do
begin
b:=b+1;
If B=C then break;
end;
While A<>B+1 do
begin
s:=s+LabeledEdit1.Text[A];
a:=a+1;
c:=c+1
end;
end;
ShowMessage(s);
end;
end.
[/syntax]
Условие: Дана строка символов, слова разделены пробелами. Вывести на экран порядковый номер слова, накрывающего k-ю позицию. Если k-я позиция – пробел, то вывести номер предыдущего слова.
Вот, что я написала:
[syntax='delphi']
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
A,b,c:integer;
S:string;
begin
c:=Length(LabeledEdit1.text);
a:=strtoint(LabeledEdit2.Text);
b:=a;
If LabeledEdit1.Text[a]=' ' then //есил символ пробел
begin
While LabeledEdit1.Text[b-1]<>' ' do //пока не нарвемся на другой пробел
begin
If B=0 then break;
b:=b-1;
end;
While B<>A do
begin
s:=s+LabeledEdit1.Text;
b:=b+1;
end;
end
else
begin
While LabeledEdit1.Text[a-1]<>' ' do //пока не нарвемся на другой пробел
begin
If A=0 then break;
a:=a-1;
end;
B:=A;
While LabeledEdit1.Text<>' ' do
begin
b:=b+1;
If B=C then break;
end;
While A<>B+1 do
begin
s:=s+LabeledEdit1.Text[A];
a:=a+1;
c:=c+1
end;
end;
ShowMessage(s);
end;
end.
[/syntax]