Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
{
Натуральное 10-ное число закодировано словом, состоящим из букв А,И,С следующим образом:  
0-А ; 1-AB ; 2-BB; 3-CC; 4-BBC; 5-CBC; 6-ABC; 7-BAC; 8-AAC; 9-CAC.  
 
ТРЕБУЕТСЯ написать программу котороя по кодируемому слову
востанавливала бы число,
если востановить невозможно, то программа должна выдасть ERROR.
ТРЕБОВАНИЯ кодируемое слово должно состоять из 1-80 символов,
заглавных латинских букв, и не должны быть пробелы.
 
Пример работы программы:  
Ввод: ABBBCAC Вывод:129  
Ввод: AAB          Вывод:01  
Ввод: ССССС     Вывод: Error  
 
0-А ; 1-AB ; 2-BB; 3-CC; 4-BBC; 5-CBC; 6-ABC; 7-BAC; 8-AAC; 9-CAC
}
 
Const  
  MaxComb = 9;
  Shifr : array [0..MaxComb] of string[3] = (
   'A','AB','BB','CC','BBC','CBC','ABC','BAC','AAC','CAC');
 
procedure Perebor(S : string; var Res : string );
var
  i : integer;
  SResInner : string[10];
begin
  if (Length(S)>0) and (Res<>'Error') Then begin
    i:=MaxComb;
    while i>=0 do begin
     if Pos(Shifr[i],S)=1 then begin
       SResInner := Res;
       Res := Res+chr(ord('0')+i);
       Perebor(Copy(S,Length(Shifr[i])+1,255), Res );
       if Res<>'Error' then Break
       else Res := SResInner;
     end;
     dec(i);
    end;
    if i<0 then Res := 'Error';
  end;
end;
 
var S, SRes : string;
 
begin
  S := 'ABBBCAC';
{  WriteLn;
  Write('Vvedite stroku');
  ReadLn(S);}
 
  SRes := '';
  WriteLn(S);
  Perebor(S, SRes);
  WriteLn(SRes);
end.
 

Если строчку надо вводить - раскомментарьте ввод.

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 22:33 05-01-2009
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru