плииииззз...помогитееее .......... в...

Тема в разделе "Информатика", создана пользователем Jamming, 19 янв 2010.

  1. Jamming

    Jamming New Member

    плииииззз...помогитееее .......... в паскалеее Выделить из текста самое длинное слово, заканчивающееся на согласную букву. Вывести это слово напечать.
     
  2. Zealot

    Zealot New Member

    program Project1;
     
    const
      //Множество разделителей слов.
      D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
    var
      S, StrW, StrWMax : String;
      i, Pos1, Len, LenW, LenWMax, Cnt : Integer;
    begin
      repeat
        Writeln('Задайте текст:');
        Readln(S);
     
        //Обработка текста.
        Len := Length(S);
        LenWMax := 0;
        StrWMax := '';
        Cnt := 0;
        Pos1 := 0;
        for i := 1 to Len do begin
          //Пропускаем разделители.
          if S in D then Continue;
          //Отслеживаем начало слова.
          if (i = 1) or (S[i - 1] in D) then Pos1 := i;
          //Отслеживаем конец слова.
          if (i = Len) or (S[i + 1] in D) then begin
            //Вычисляем длину слова.
            LenW := i - Pos1 + 1;
            //Выделяем слово.
            StrW := Copy(S, Pos1, LenW);
            //Если слово совпадает с текущим наибольшим по длине,
            //тогда увеличиваем счётчик.
            if StrW = StrWMax then begin
              Cnt := Cnt + 1;
            end else if LenW > LenWMax then begin
              //Если это очередное слово длиннее всех ранее найденных слов, то
              //запоминаем его и его длину и сбрасываем счётчик.
              StrWMax := StrW;
              LenWMax := LenW;
              Cnt := 1;
            end;
          end;
        end;
     
        //Показываем результат.
        if StrWMax <> '' then begin
          Writeln('Первое из самых длинных слов: "', StrWMax, '".');
          Writeln('Это слово встречается в тексе ', Cnt, ' раз.');
        end else begin
          Writeln('В строке нет слов.');
        end;
     
        Writeln('Повторить - Enter, выход - любой символ + Enter.');
        Readln(S);
      until S <> '';
    end.
     

    Находит саммое длинное слово 
     

Поделиться этой страницей

Наша группа