Задана строка символов. Группы символов, разделенные пробелом, будем называть словами. Вывести самое длинное слово в строке и его длину — Pascal(Паскаль)

uses
  crt;
const
  dividers=[' ',',','.',';',':','-','=','+'];
var
  s,max,temp:string;
  i:integer;
begin
  clrscr;
  writeln('----...');
  readln(s);
  temp:='';
  max:='';
 
  for i:=1 to length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if ((s[i] in dividers) or (i=length(s))) and (temp<>'') then
    begin
      if length(temp)>length(max) then
        max:=temp;
      temp:='';
    end;
  end;
  writeln('Строка: ',max,'. Длина: ',length(max))
end.

Вариант 2

uses crt;
var max,st,buf:string;
begin
 clrscr;
 max:='';
 write('-> ');
 readln(st);
 repeat
  if (st[1]=' ') or (length(st)=0) then while st[1]=' ' do delete(st,1,1)
  else
  begin
   while (st[1]<>' ') and (length(st)>0) do
   begin
    buf:=buf+st[1];
    delete(st,1,1);
   end;
  if length(buf)>length(max) then max:=buf;
  buf:='';
  end;
 until (length(st)=0) and (length(buf)=0);
 writeln('Самое длинное слово - ',max,',его длина - ',length(max));
 readln;
end.

Вариант 3

var
s,slovo,slovo1:string;
i,max:integer;
begin
writeln('stroka');
readln(s);
s:=s+' ';
for i:=1 to length(s) do begin
if s[i]<>' ' then slovo:=slovo+s[i];
if s[i]=' ' then  begin
if length(slovo)>max then begin
max:=length(slovo);
slovo1:=slovo;
end;
slovo:='';
end;
end;
writeln(slovo1);
writeln(max);
end.

Leave a Comment

73 + = 79