Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2012, 16:50   #1
diekster
Пользователь
 
Регистрация: 03.02.2012
Сообщений: 23
По умолчанию Вывести слова одинаковой длинны

Здрасте ! ))
Помогите пожалуйста дописать программу , сделал только что бы выводилось самое длинное слово а как сделать что бы вывелись все слова такой же длинны?
Код:
Вот код:
var
   t:text;
   Max,C:String;
   Pb:Byte;
begin
     read(c);
     Max:='';
     While Pos(' ',C) <> 0 Do
     Begin
        Pb:=Pos(' ',C);
           If Length(Max)<Length(Copy(C,1,Pb-1))
           Then Max:=Copy(C,1,Pb-1);
           Delete(C,1,Pb);
     End;
     If Length(Max)<Length(C)Then Max:=C;
     Write(Max);
    
end.
diekster вне форума Ответить с цитированием
Старый 22.02.2012, 19:07   #2
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Алгоритм:
1. Считаем количество слов в строке
2. Ищем длину первого слова
3. Ищем слова, что имеют такую же длину.
Я бы делал рекурсией.
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 22.02.2012, 19:34   #3
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

повтори цикл и выведи все слова длинны length(max)
unbanned вне форума Ответить с цитированием
Старый 23.02.2012, 19:37   #4
diekster
Пользователь
 
Регистрация: 03.02.2012
Сообщений: 23
По умолчанию

Вот кому если интересно будет.
Код:
Var 
max,text,prov:string; 
i:byte;
begin
max:=''; prov:='';
Writeln('Vvedite text');
readln(text);
if text[length(text)]<>' ' then text:=text+' ';
for i:=1 to length(text) do
begin
if text[i]<>' '
then prov:=prov+text[i]
else begin
if length(prov)>length(max)
then max:=prov;
prov:='';
end;
end;
for i:=1 to length(text) do
begin
if text[i]<>' '
then prov:=prov+text[i]
else begin
if length(prov)=length(max)
then Writeln(prov);
prov:='';
end;
end;
readln;
end.
diekster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести на консоль слова не содержащие цифры Luchia Помощь студентам 0 20.12.2011 13:30
Даны два слова одинаковой длины. Присвоить переменной К число, равное количеству попарно одинаковых букв. dimon_home Паскаль, Turbo Pascal, PascalABC.NET 1 16.06.2009 08:31
Вывести алфавит слова Revival001 Паскаль, Turbo Pascal, PascalABC.NET 2 09.06.2009 18:07
Окрашивание текста в зависимости от длинны слова(подскажите как) LAZER Помощь студентам 15 10.05.2009 20:59
Работа со списком - вывести слова согласно условиям alex2008ean Паскаль, Turbo Pascal, PascalABC.NET 5 30.12.2008 12:27