Помощь - Поиск - Пользователи - Календарь
Полная версия: Разбить текст на слова
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
pad
Помогите Послезавтра экзамен а у меня не получается сделать очень важную задачу.
Текст состоит из слов между ними любое кол-во пробелов текст в виде n-ого кол-ва столбцов между столббцами три пробела . Необходимо разбить на слова.
volvo
Смотрим здесь: FAQ: Строки
Altair
Да, кстати, вот еще кое-что.

Type
TextType = array[1..20] of string; {тип представления текста}
SlovaType = array[1..60]of string[10]; {массив для слов- каждая строка- слово}

{процуедура разбивает входной массив текста на массив слов}
Procedure SepWord(A:TextType; TextLength:word; var S:SlovaType; var K:word);
Var r:set of char; sl:boolean; CurStr,i:Integer; ss:string;
Begin
K:=0; ss:=''; sl:=false; r:=[' ',',','.',':',';','!','?','$','#'];
For CurStr:=1 to TextLength do
for i:=1 to length(a[curstr]) do
begin
if (not(a[curstr,i] in r)) and (sl=true) then ss:=ss+a[curstr,i];{слово продалжается}
if ((not(a[curstr,i] in r)) and (sl=false)) then begin sl:=true; ss:=ss+a[curstr,i] end; {началось слово}
if ((a[curstr,i] in r)or(i=length(a[curstr]))) and (sl=true) then
begin {слово закончилось}
INC(k); s[k]:=ss; ss:=''; sl:=false
end;
end;
end;


p.s. задание в инсте было. "написать процедуру разбиения на слова.
вход - текст (массив из строк текста). число строк. выход - слова (массив из слов) и число слов."
smile.gif
Guest
Дело все в том что текст задан не в виде массива .С массивом я и сам решил а надо что бы программа разбивала именно целый текст число строк не задано.
Вот еще пример приведу:
Машина ехала встречу ей
по главной двигалась
дроге на другая.


Может в задании ошибка но сказано что задан именно текст причем в других задачах сказано если задан массив строк.
volvo
Ну, тогда встречный вопрос: "В какой форме хранится этот текст?"
Altair
А какая разница в чем она задан?
Если задан как-то по другому, первой процедурой формируем входные данные как нам удобно а второй разбиваем на слова.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.