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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2010, 20:54   #1
Lodyr
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 69
По умолчанию Написание цикла в конце программы.

Задача - найти в строке и выписать на экран набор слов, длины которых образуют длину арифметческой прогрессии

Код:
program city;
function bukva(c:char):boolean;
begin
     bukva:=((c<='Z')and('A'<=c))or((c<='z')and('a'<=c));
end;
var s:string;
    ls,beg,raz1,raz2,i,n,k,begun:byte;
    a:array[1..10] of string;
    b:array[1..10] of byte;
begin
     writeln('vvedite stroku');
     readln(s);
     ls:=length(s);
     n:=1;
     while (i<=ls) do
     begin
          while (i<=ls) and (bukva (s[i])=false) do
          inc(i);
                 if (i<=ls) then
                 begin
                      beg:=i;
                      while (i<=ls) and (bukva (s[i])=true) do
                            inc (i);
                            a[n]:=copy(s,beg,i-beg);
                            b[n]:=i-beg;
                            inc(n);
                      end;
                      end;
for k:=1 to n-1 do
writeln(a[k],':',b[k]);
readln;

begun:=1;
for i:=2 to k-1 do
begin
     raz1:=abs(b[i]-b[i-1]);
     raz2:=abs(b[i+1]-b[i]);
     if raz1=raz2 then
     begin
           for begun:=begun to i+1 do
           writeln(a[begun]);
           inc(begun);
     end;
readln;
end.
Программа работает в "идеальном" случае, но вот в "нехорошем" нет.
Например
...ю...ук...уюк.345354
выписывает без вопросов
ю
ук
уюк

Но вот если ...234.в.ыа..ав.п
то тут
в
ыа
ав
п
и здесь на третьем слове эта прогрессия нарушается, и нужно чтобы вывел на экран
в
ыа

Не знаю, как написать в конце цикл на то, чтобы при нарушении этой прогрессии выдавал слова до его нарушения
Lodyr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
уберите курсор (в конце программы верните курсор), HECTOR.A. Паскаль, Turbo Pascal, PascalABC.NET 2 05.06.2009 20:10
Написание программы Ky3Heu, Общие вопросы Delphi 1 10.04.2009 14:32
Приостановка цикла для выполнения внешней программы Uomo Общие вопросы Delphi 3 04.04.2008 11:48
написание программы-справочника по истории djusi Помощь студентам 0 03.12.2007 22:01