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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2010, 18:42   #1
Tink
Новичок
Джуниор
 
Регистрация: 26.12.2010
Сообщений: 1
По умолчанию Паскаль. Задание на строки.

Суть такова.
Нужно найти в вводимой строке( может содержать пробелы, не более 60 символов) самую длинную цепочку одинаковых символов. Вывести ее на экран и количество этих символов.

Что-то у меня не заладилось( Со строками первый раз сталкиваюсь.
Код:
program my6;
var s,a,b,p,sim,p1:string;
f,d,i,k,n:integer;
begin
writeln('vvedite s');
readln(s);
k:=length(s);
if k>60 then writeln('fig') else
  begin
  n:=1;
  f:=1;
  p:='a';
  p1:='a';
  for i:=1 to k do
   begin
   a:=s[i];
   b:=s[i+1];
   if a=b then
    begin
    p:=p+b;
    n:=n+1;
    end;
   if a<>b then
    begin
    d:=length(p);
    if d>f then
     begin
     f:=d;
     p:=p1;
     sim:=a;
     end;
    end;
   end;
end;
n:=f;
writeln('simvol=',sim,' kolvo=',n);
readln;
end.
не всегда правильно считает, но я не могу понять почему(

Последний раз редактировалось Stilet; 26.12.2010 в 18:53.
Tink вне форума Ответить с цитированием
Старый 26.12.2010, 18:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Думаю тебе стоит рассмотреть классический вариант разбора строки:
Код:
var s:string; a,e:string;
  i,count:integer;
begin   {$o-}
 s:='lll hhhhh kk';e:='';
 count:=1;
 i:=1; while (i<length(s)) do begin
   if s[i]=s[i+1] then begin a:=a+s[i]; end
   else begin
    if length(a)>length(e) then e:=a;
    a:='';
   end;
   inc(i);
 end;
 write(e);
 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
Твоя задача - подправить этот код до идеала, ибо в нем есть одна неучтенность относительно твоего задания.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание в турбо паскаль SJIAM Помощь студентам 4 17.11.2010 22:05
Паскаль.Задание на строки,не понимаю как его сделать,если кто может,объясните... Меффистоф Помощь студентам 4 25.08.2010 10:05
задание на строки Hikari Помощь студентам 8 29.10.2009 08:09
задание по Паскаль Оксаночка:) Помощь студентам 10 29.06.2009 21:17