Строки текста. ПОМОГИТЕ!

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, dr.Jekill, MOTOCoder, Medved

Ответить
kyart
Сообщения: 1
Зарегистрирован: 05 дек 2006, 15:22

05 дек 2006, 15:31

Помогите написать программу, которая выводит самое короткое слово из строки.
Аватара пользователя
Oleg_Rus
Сообщения: 330
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

07 дек 2006, 06:52

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


как разбить текст на слова, смотри мой ответ *Лео*.
CADE
Сообщения: 23
Зарегистрирован: 09 дек 2006, 01:53

09 дек 2006, 02:16

Помогите прогу написать на паскале.Очень срочно.
Создать текст типа string. Определить самое короткое слово в каждом
предложении. Собрать их в новый текст, затем удлинить до средней длины
слова дублированием последней буквы.
Зарание спасибо!!!
Аватара пользователя
Oleg_Rus
Сообщения: 330
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

09 дек 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=' ') 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=' ' см. выше.

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

а насчет остального не знаю, уж прости меня. :) ))
CADE
Сообщения: 23
Зарегистрирован: 09 дек 2006, 01:53

09 дек 2006, 14:50

пасиба большое
Аватара пользователя
Oleg_Rus
Сообщения: 330
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

20 дек 2006, 03:51

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

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

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>
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

21 дек 2006, 10:47

Ну, еще перед этим не мешало бы вставить:
While s=' ' Do
Inc(i);
поскольку если предложение начинается с красной строки, вполне возможно, что первые несколько символов будут пробелами или табуляцией (соответственно, ввести такую же проверку для табуляции, не помню, какой у нее код
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Oleg_Rus
Сообщения: 330
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

22 дек 2006, 06:03

точно, извиняюсь, не учел.
Хыиуду, спасибо за поправку!
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>
Ответить