Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2012, 21:18   #1
microlab
Пользователь
 
Регистрация: 06.11.2008
Сообщений: 51
По умолчанию Ввод предложения и вывод самого длинного слова

составить программу, которая вводит предложениее и выводит на экран самое длинное слово
microlab вне форума Ответить с цитированием
Старый 14.02.2012, 11:22   #2
Валлидол
Новичок
Джуниор
 
Аватар для Валлидол
 
Регистрация: 14.02.2012
Сообщений: 9
По умолчанию

Код:
Uses Crt;
var s:string;
    i,n,m:byte;
    slovo:string;
    mas:array [1..100] of string;
begin
  ClrScr;
    writeln('Введите текст');
    readln(s);
    slovo:='';
    n:=0;
    for i:=1 to length(s) do
       if not(s[i] in [' ',',','.','?','!']) then
         slovo:=slovo+s[i]
          else begin
                    n:=n+1;
                    mas[n]:=slovo;
                    slovo:='';
               end;
 m:=1;
 for i:=2 to n do
   if length(mas[i])>length(mas[m]) then m:=i;
writeln('Самое длинное слово в предложении: ',mas[m]);
readln;
end.
Проверяйте =)



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 14.02.2012 в 11:38.
Валлидол вне форума Ответить с цитированием
Старый 14.02.2012, 11:43   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Валлидол,
первое. в данной задаче массив слов СОВСЕМ не нужен. Что найти максимальную длину, достаточно получать длину одного, текущего слова.

второе.
в программе есть ошибка. Если строка не заканчивается знаком разделителем, то ваш алгоритм НЕ УВИДИТ последнего слова.
попробуйте:
Код:
    {readln(s);}
    s := 'а вот и ДЛИНННОЕ';
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.02.2012, 12:10   #4
Валлидол
Новичок
Джуниор
 
Аватар для Валлидол
 
Регистрация: 14.02.2012
Сообщений: 9
По умолчанию

Код:
uses Crt;
var s:string;
    slovo,st:string;
    i,k:byte;
Begin
ClrScr;
writeln();
readln(s);
if s='' then begin 
         writeln('нет текста');
         exit;
         end;
s:=s+' ';
k:=0;
st:='';
for i:=1 to length(s) do
if not(s[i] in [' ',',','.','?','!']) then
         slovo:=slovo+s[i]
          else begin
               if length(slovo)>k then begin
                               k:=length(slovo);
                               st:=slovo;
                                            end;
                    slovo:='';  
               end;
  if length(st)<>0 then              
          writeln('Длинное слово в тексте:',st,' длина=',length(st));               
Readln;
End.
вот собственно без массива)
Валлидол вне форума Ответить с цитированием
Старый 14.02.2012, 12:43   #5
microlab
Пользователь
 
Регистрация: 06.11.2008
Сообщений: 51
Хорошо

Спасибо. Без массива помогла.
microlab вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать вывод самого длинного слова из файла goocha Общие вопросы C/C++ 0 13.02.2012 02:24
Программа поиска в строке (string) самого длинного симметричного слова [Паскаль] Henkel Помощь студентам 2 14.12.2010 20:41
Скрипт-нахождения длинного слова(Перенесено из Java SE) XOKS JavaScript, Ajax 0 08.10.2010 09:11
Нахождение самого короткого слова Диезушка Помощь студентам 2 20.10.2009 21:43
Pascal//определить длину самого короткого и самого длинного слова в строке ShnurOK Помощь студентам 2 16.12.2007 10:43