Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

SIgor33

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

uses crt;
const zn=['.','?','!','...'];{символы конца предложения}
      zn1=['.','?','!',',',';',':'];{все знаки препинания, можно добавить всякие скобки}
var s,s1,s2,s3:string;
    i,len,max:byte;
begin
clrscr;
writeln('Vvedite text:');
readln(s);
s3:=s; {запомним строку}
max:=0;{максимальная длина предложения}
len:=0;{длина очередного предложения}
s1:='';s2:='';
i:=1;
while i<=length(s) do
  begin
   if s[i] in zn then{если конец предложения}
     begin
      s1:=copy(s,1,i);{запоминеам его}
      len:=i-1;{его длина без последнего знака}
      delete(s,1,i);{удаляем его}
      if len>max then{если длина больше предыдущего макс}
        begin
          max:=len;{это макс}
          s2:=s1;{запоминаем предложение}
        end;
      i:=i+1;{к следующему символу}
     end
   else i:=i+1;{если не конец предложения, то просто к следующему}
  end;
writeln(s2);{выводим предложение}
for i:=1 to length(s3) do
if s[i] in zn1 then s[i]:=' ';{заменяем все знаки препинания на пробелы}
s3:=s3+' ' ;{пробел в конец}
while pos('  ',s3)>0 do{пока 2 пробела подряд}
delete(s3,pos('  ',s3),1);{1 удаляем}
max:=0;s1:='';s2:='';len:=0;{обнуляем длину и все почти также с этой строкой}
while pos(' ',s3)>0 do
  begin
    s1:=copy(s3,1,pos(' ',s3)-1);
    len:=length(s1);
    delete(s3,1,pos(' ',s3));
    if len>max then
      begin
        max:=len;
        s2:=s1;
      end;
  end;
write(s2);{выводим слово}
write(length(s2));{выводим длину слова}
readln
end.

Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 08:47 19-12-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru