Показать сообщение отдельно

  #1038  
Старый 04.02.2008, 22:13
A2GIL
Познающий
Регистрация: 31.08.2007
Сообщений: 94
С нами: 9839462

Репутация: 200
По умолчанию

LEE_ROY, исправь здесь:
Код:
   else if aChar =  then IsWord := True
    else IsWord := False
Получается код неправильно считает количество слов...

Вот, привожу пример на консоли, помнится именно такие задание просят сделать на консоли. Ну если че перевести куда нужно легко
Код:
program CountWord;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
 i,n,count:integer;
 t:string;
 p:boolean=false;

function Rus(mes:string):string;
  var
     i:integer;
 begin
   for i:=1 to length(mes) do
     case mes[i] of
       'А'..'п': mes[i]:=Chr(Ord(mes[i])-64);
       'р'..'я': mes[i]:=Chr(Ord(mes[i])-16);
     end;
   rus:=mes;
 end;

begin
 writeln(rus('Введите текст '));readln(t);
 n:=length(t);

 if (n>0) then begin
 count:=1;
 for i:=1 to n-1 do begin
  if ((t[i]=' ') or (t[i]='.') or (t[i]=',')) and (not p) then
   begin
    inc(count);
    p:=true;
   end
    else
   if (t[i]<>' ') and (t[i]<>'.') and (t[i]<>',') then
     p:=false;
 end;
 end
 else count:=0;
 if (t[n]=' ') or (t[n]=',') then
  count:=1;
 write(count);
 readln;
end.
Теперь подправил!
P.S. Конечно не красиво, но для учебы сойдет

Последний раз редактировалось A2GIL; 04.02.2008 в 23:09..
 
Ответить с цитированием