задача на символьные массивы
|
|
vasia3 | Дата: Вторник, 22.04.2008, 05:30 | Сообщение # 1 |
Новичок
Группа: Пользователи
Сообщений: 2
Статус: Offline
| Помогите пожалуста решить следующую задачу: Дана последовательность до 30 слов в каждом из которых от 1 до 5 символов,между словами-пробел или запятая,в конце последовательности- точка.Напечатать все слова по возрастанию их длинны. заранее спс!
|
|
| |
Alexander | Дата: Среда, 23.04.2008, 10:00 | Сообщение # 2 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Самое мега простое решение: Взять массив из тридцати "стрингов" по пять символов. Читать слова и пихать их в массив если они длиннее одного символа, если один- то выводить на экран. Затем выбирать из массива и выводить на экран слова по 2 символа, затем три и т.д. до пяти. Собственно всё. Надеюсь, что вам всё понятно.
Скажем дружно- нафиг нужно!
|
|
| |
Pavel | Дата: Среда, 23.04.2008, 13:43 | Сообщение # 3 |
Приближенный
Группа: Модераторы
Сообщений: 210
Статус: Offline
| vasia3, а можно уточнить, в каком виде входные данные поступают? Кстати, тут все должно быть просто, если все слова от 1 до 5 символов. Т.е. берем двойной цикл, где внешний будет соответствовать длине слова от 1 до 5. А во вложенном будут выделяться слов соотв. Думаю можно еще оптимизировать. Можно например с массивом, как говорит Alexander. Щас че-нибудь сделаю.
|
|
| |
Pavel | Дата: Среда, 23.04.2008, 14:00 | Сообщение # 4 |
Приближенный
Группа: Модераторы
Сообщений: 210
Статус: Offline
| Code program vasya3; uses crt; var s, sub: string; k, i, j: integer;
begin clrscr; writeln('Vvedite Stroku: '); readln(S);
for k := 1 to 5 do begin j := 1; for i := 1 to length(s) do if (s[i] = ' ') or (s[i] = ',') or (s[i] = '.') then {usloviya razdeleniya slov} begin sub := copy(s, j, i - j); {zapomnili v peremennuy slovo} j := i + 1; if length(sub) = k then Writeln(sub); {vivodim slova} end; end;
readkey; end.
|
|
| |
vasia3 | Дата: Четверг, 24.04.2008, 08:05 | Сообщение # 5 |
Новичок
Группа: Пользователи
Сообщений: 2
Статус: Offline
| спасибо за решение,но вообщем короч сам уже решил =)) (изучаю ваш способ решения)....
|
|
| |
Pavel | Дата: Четверг, 24.04.2008, 08:25 | Сообщение # 6 |
Приближенный
Группа: Модераторы
Сообщений: 210
Статус: Offline
| Пожалуйста, кстати, максимальное число символов в строке (соотв. условиям задачи) будет не больше 210 символов, так что можно использовать просто тип данных стринг. а не всякие там файлы.
|
|
| |