Помощь - Поиск - Пользователи - Календарь
Полная версия: Строка, файл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Dido
Помогите пожалуйста!
1)Дана строка символов. Найти в строке самое длинное слово и вывести его на печать. Слова ограничены пробелами, запятыми и точками. Порядок ввода исходных данных: - исходная строка. Порядок вывода результатов: - длина и слово.
2)Преобразовать обработку строки в процедуру (или функцию). Созданную процедуру использовать для построчной обработки текстового файла (Text). Результат обработки записывается в новый файл того же типа.

вот код для того чтоб найти максимальную Длинну, но если я поставлю запятую и точку..то летит

 var
  s: string;
  i, start, len, max_len: byte;

begin
  readln(s);

  max_len := 0;
  start := 0;
  i := 2;

  while (i < length(s)) do begin
    len := 0;

    while not (s[i] = ' ') do begin
      inc(i); inc(len);
    end;

    if len > max_len then begin
      max_len := len;
      start :=  i - len;
    end;

    inc(i);
  end;

  writeln(copy(s, start, max_len));
end. 


и можете помочь со 2ой частью задания
volvo
Не учитываешь один момент:
Слова у тебя разделяются не только пробелами, а ведь klem4 предупреждал там, откуда ты скопировала код:
Цитата
Учти, в начале и конце обязательно должен стоять пробел, слова разделяются только одним пробелом. Если это не учесть, программа будет работать некорректно.


Внутренний цикл измени на:
    while not (s[i] in [' ', ',', '.']) do begin
      inc(i); inc(len);
      if i > length(s) then break;
    end;

Dido
Эт-то я учла)
спасибо за цикл)...
эх..а со второй частью я совсем не дружу(
volvo
Цитата
а со второй частью я совсем не дружу(
Это, в смысле, не можешь преобразовать код в функцию? Так очень просто:

{ функция принимает строку и строку же возвращает }
function process(s: string): string;
{ здесь описываешь все нужные переменные }
var ...
begin

  { здесь - практически тот же самый код, что был приведен выше }

  process := ... { не забываем возвращать значение }
end;

Попробуй, где не получится - подправим smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.