Четверг, 09.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

задача на символьные массивы
vasia3Дата: Вторник, 22.04.2008, 05:30 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 2
Репутация: 0
Замечания: 0%
Статус: Offline
Помогите пожалуста решить следующую задачу:
Дана последовательность до 30 слов в каждом из которых от 1 до 5 символов,между словами-пробел или запятая,в конце последовательности- точка.Напечатать все слова по возрастанию их длинны.
заранее спс!
 
AlexanderДата: Среда, 23.04.2008, 10:00 | Сообщение # 2
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Самое мега простое решение:
Взять массив из тридцати "стрингов" по пять символов. Читать слова и пихать их в массив если они длиннее одного символа, если один- то выводить на экран. Затем выбирать из массива и выводить на экран слова по 2 символа, затем три и т.д. до пяти. Собственно всё.
Надеюсь, что вам всё понятно.


Скажем дружно- нафиг нужно!
 
PavelДата: Среда, 23.04.2008, 13:43 | Сообщение # 3
Приближенный
Группа: Модераторы
Сообщений: 210
Репутация: 17
Замечания: 0%
Статус: Offline
vasia3, а можно уточнить, в каком виде входные данные поступают? Кстати, тут все должно быть просто, если все слова от 1 до 5 символов. Т.е. берем двойной цикл, где внешний будет соответствовать длине слова от 1 до 5. А во вложенном будут выделяться слов соотв. Думаю можно еще оптимизировать. Можно например с массивом, как говорит Alexander. Щас че-нибудь сделаю.
 
PavelДата: Среда, 23.04.2008, 14:00 | Сообщение # 4
Приближенный
Группа: Модераторы
Сообщений: 210
Репутация: 17
Замечания: 0%
Статус: 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
Репутация: 0
Замечания: 0%
Статус: Offline
спасибо за решение,но вообщем короч сам уже решил =))
(изучаю ваш способ решения).... smile
 
PavelДата: Четверг, 24.04.2008, 08:25 | Сообщение # 6
Приближенный
Группа: Модераторы
Сообщений: 210
Репутация: 17
Замечания: 0%
Статус: Offline
Пожалуйста, кстати, максимальное число символов в строке (соотв. условиям задачи) будет не больше 210 символов, так что можно использовать просто тип данных стринг. а не всякие там файлы.
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;