Помогите с задачей, никак не могу разобраться

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Помогите с задачей, никак не могу разобраться

Re: Помогите с задачей, никак не могу разобраться

C_O_D_E » 07 июл 2008, 20:07

CVER4OK,
а тебе что помочь?
тоже самое?

Re: Помогите с задачей, никак не могу разобраться

CVER4OK » 07 июл 2008, 16:38

Геката? Кать из ЕБурга,ты что ля? А мине кто поможет?:-)

Re: Помогите с задачей, никак не могу разобраться

Хыиуду » 21 дек 2006, 10:44

Oleg_Rus, в принципе да. Просто обычно у конечного автомата большее число состояний, чем 2. Так что я уже просто по привычке ввожу state как числовое, а не как булевское

Re: Помогите с задачей, никак не могу разобраться

Oleg_Rus » 20 дек 2006, 03:38

Хыиуду, в прынцыпе наши программы совпадают:
у вас переменная State принимает 2 значения 1 и 0, с тем же успехом мона ведь использовать boolean, с его значениями true или false...

...или я ошибаюсь...

Re: Помогите с задачей, никак не могу разобраться

Хыиуду » 12 дек 2006, 13:34

А можно реализовать прямо даже конечный автомат, если кто-то еще помнит, что это такое.
count:=0;
state:=0;
for i:=1 to length(s) do
case state of:
0: if s<>' ' then begin
state:=1; inc(count); end;
1: if s=' ' then state:=0
end;

Re: Помогите с задачей, никак не могу разобраться

Oleg_Rus » 12 дек 2006, 11:50

т.е. в этой проге см. процедуру TForm1.Button1Click(Sender: TObject);
Должна работать...

Re: Помогите с задачей, никак не могу разобраться

Oleg_Rus » 12 дек 2006, 11:49

[syntax='Delphi']
unit Unit1;

interface

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

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

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure
TForm1.Button1Click(Sender: TObject);
Var
s: String;
Letter: Char;
Flag: Boolean;
i, Number: Integer;
begin
Number:=0; // Обнуление Данных
Flag:=True;
Text:=Edit1.Text; //Чтение Текста
For i:=1 to Length(Text) Do //Цикл По-Буквенно
Begin
Letter:=Text; //Раcсматриваем i-тый символ текста
If (Letter<>' ') and Flag Then Number:=Number+1;
//Если текущий символ не равен <пробелу> и Flag=1
//то увеличивай количество Слов
Flag:=(Letter=' ');
End;
Label2.Caption:=FloatToStr(Number);
end;

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

end.

[/syntax]

Re: Помогите с задачей, никак не могу разобраться

Oleg_Rus » 12 дек 2006, 11:48

в таком случае ща кину код на Delphi, где на эту мелочь мона не смотреть

Re: Помогите с задачей, никак не могу разобраться

somewhere » 12 дек 2006, 11:37

Ага, а если два пробела подряд - Хыиуду здесь абсолютно прав, там все по-русски написано - считает кол-во пробелов. Надо тогда все идущие подряд пробелы удалять, например заменой 2 пробелов на один или проверять, если до этого был пробел, тогда счетчик групп будет неизменен

Re: Помогите с задачей, никак не могу разобраться

Oleg_Rus » 12 дек 2006, 11:27

не-не-не Хыиуду, программа читает строку и если увидит где-то пробел(т.е. конец группы), то уселичивает счетчик и в итоге, в счетчике получается кол-во групп.

Вернуться к началу