PDA

Просмотр полной версии : Строки текста. ПОМОГИТЕ!



kyart
05.12.2006, 15:31
Помогите написать программу, которая выводит самое короткое слово из строки.

Oleg_Rus
07.12.2006, 06:52
организуешт двойной цикл For .. To, где сравниваешь длины строк(Lenght).


как разбить текст на слова, смотри мой ответ *Лео*.

CADE
09.12.2006, 02:16
Помогите прогу написать на паскале.Очень срочно.
Создать текст типа string. Определить самое короткое слово в каждом
предложении. Собрать их в новый текст, затем удлинить до средней длины
слова дублированием последней буквы.
Зарание спасибо!!!

Oleg_Rus
09.12.2006, 06:39
самое короткое слово найти мона так:
Var
S, a: string;
q: array [1..100] of Integer;
i, c: integer;
Flag: Boolean;
Start, Finish: Integer;
Readln(s); {Входной текст}
Start:=1;
For i:=1 To Length(s) Do
If *(S[i]=' ') And Flag Then {Если слово закончилось}
Begin
a:=a+copy(s, Start, i);
Start:=i;
End;
Start:=1;
While i<=Length(a) Do {Создаем массив длин слов}
Begin
If *a[i]=' ' Then
Begin
Start:=i;
q[c]:=Start;
inc(c);
Start:=0;
End;
Inc(i);
End;
_________________________
*S[i]=' ' - Здесь в кавычках у меня "пробел"
*a[i]=' ' см. выше.

после всего этого устроишь цикл поиска минимального.

а насчет остального не знаю, уж прости меня. :)))

CADE
09.12.2006, 14:50
пасиба большое

Oleg_Rus
20.12.2006, 03:51
Хотя, kyart, я написал это не подумав. модно сделать так:

найди длину первого слова

While s[i]<>' ' Do
Begin
Inc(i);
inc(Num);
End;

после этого в переменной Num у тебя будет длина первого слова, а дальше все просто: организуешь цикл просмотра стоки начиная с i такого-то

if s[i]=' ' Then If Num<Min Then Num:=Min;

Должна сработать, но если чо, господа прграммисты подправте меня...

Хыиуду
21.12.2006, 10:47
Ну, еще перед этим не мешало бы вставить:
While s[i]=' ' Do
Inc(i);
поскольку если предложение начинается с красной строки, вполне возможно, что первые несколько символов будут пробелами или табуляцией (соответственно, ввести такую же проверку для табуляции, не помню, какой у нее код

Oleg_Rus
22.12.2006, 06:03
точно, извиняюсь, не учел.
Хыиуду, спасибо за поправку!