Строки текста. ПОМОГИТЕ!
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
Помогите написать программу, которая выводит самое короткое слово из строки.
Помогите прогу написать на паскале.Очень срочно.
Создать текст типа string. Определить самое короткое слово в каждом
предложении. Собрать их в новый текст, затем удлинить до средней длины
слова дублированием последней буквы.
Зарание спасибо!!!
Создать текст типа string. Определить самое короткое слово в каждом
предложении. Собрать их в новый текст, затем удлинить до средней длины
слова дублированием последней буквы.
Зарание спасибо!!!
- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
самое короткое слово найти мона так:
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=' ') And Flag Then {Если слово закончилось}
Begin
a:=a+copy(s, Start, i);
Start:=i;
End;
Start:=1;
While i<=Length(a) Do {Создаем массив длин слов}
Begin
If *a=' ' Then
Begin
Start:=i;
q[c]:=Start;
inc(c);
Start:=0;
End;
Inc(i);
End;
_________________________
*S=' ' - Здесь в кавычках у меня "пробел"
*a=' ' см. выше.
после всего этого устроишь цикл поиска минимального.
а насчет остального не знаю, уж прости меня.
))
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=' ') And Flag Then {Если слово закончилось}
Begin
a:=a+copy(s, Start, i);
Start:=i;
End;
Start:=1;
While i<=Length(a) Do {Создаем массив длин слов}
Begin
If *a=' ' Then
Begin
Start:=i;
q[c]:=Start;
inc(c);
Start:=0;
End;
Inc(i);
End;
_________________________
*S=' ' - Здесь в кавычках у меня "пробел"
*a=' ' см. выше.
после всего этого устроишь цикл поиска минимального.
а насчет остального не знаю, уж прости меня.

- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
Хотя, kyart, я написал это не подумав. модно сделать так:
найди длину первого слова
While s<>' ' Do
Begin
Inc(i);
inc(Num);
End;
после этого в переменной Num у тебя будет длина первого слова, а дальше все просто: организуешь цикл просмотра стоки начиная с i такого-то
if s=' ' Then If Num<Min Then Num:=Min;
Должна сработать, но если чо, господа прграммисты подправте меня...
найди длину первого слова
While s<>' ' Do
Begin
Inc(i);
inc(Num);
End;
после этого в переменной Num у тебя будет длина первого слова, а дальше все просто: организуешь цикл просмотра стоки начиная с i такого-то
if s=' ' Then If Num<Min Then Num:=Min;
Должна сработать, но если чо, господа прграммисты подправте меня...
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Ну, еще перед этим не мешало бы вставить:
While s=' ' Do
Inc(i);
поскольку если предложение начинается с красной строки, вполне возможно, что первые несколько символов будут пробелами или табуляцией (соответственно, ввести такую же проверку для табуляции, не помню, какой у нее код
While s=' ' Do
Inc(i);
поскольку если предложение начинается с красной строки, вполне возможно, что первые несколько символов будут пробелами или табуляцией (соответственно, ввести такую же проверку для табуляции, не помню, какой у нее код
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
точно, извиняюсь, не учел.
Хыиуду, спасибо за поправку!
Хыиуду, спасибо за поправку!
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>