IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача на кодирование
In
сообщение 29.12.2003 11:20
Сообщение #1


Гость






Помогите решить задачу! Валюсь на сессии..sad.gif
Нужно закодировать вводимую с клавиатуры строку. Символ меняется на последовательность из 4 знаков (букв или цифр). Если символ стоит между 2-мя гласными или 2-мя согласными, то он меняется на иную последовательность, например, из 3 знаков (букв или цифр). И так вся строка!!
Помогите, особые затруднения вызывает часть замены исходного символа на код (этот цикл никак не могу сделать)..sad.gif(
 К началу страницы 
+ Ответить 
In
сообщение 29.12.2003 11:43
Сообщение #2


Гость






вот мои попыткиsmile.gif..правда они не закончены.
Код


program academy3;
const
A:set of char=['B'..'D', 'F'..'H','J'..'N','P'..'T',
'V'..'X','Z','z'];
B:set of char=['A','E','I','O','U','Y'];
n=2;
m=13;
type
mas=array[1..n,1..m] of string[4];
var
text,result:string; {Исходная и конечная строка}
q:integer; {Элементы строки}
s,s1:mas;
i,j,i1,j1:integer;
begin      
Writeln ('Введите 2 цифры от 01 до 26 и 2 буквы ');
begin
for i:=1 to n do
for j:=1 to m do
Readln(s[i,j]);
end;
Writeln ('Введите 2 цифры от 26 до 54 и 2 буквы');
begin
for i1:=1 to n do
for j1:=1 to m do
Readln(s1[i1,j1]);
end;
Writeln ('Введите строку не более 266 символов на английском заглавыми буквами');
Readln(text);
for q:=1 to 255 do
begin
Read(text[2]);{читаем второй символ строки}
if (text[q] in A) and (text[q+2] in B) then
text:=text+s[1;1]
begin

end;
end;
end.

 К началу страницы 
+ Ответить 
trminator
сообщение 29.12.2003 12:20
Сообщение #3


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Код

program coding;
var s : string;
   pas1, pas2 : string;
const sogl : set of char = ['q','w','r','t','p','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'];
     glasn: set of char = ['e','y','u','i','o','a'];

procedure code(var s:string; const pas1, pas2: string);
var sn : string;
   i : integer;
begin
   sn:=pas1+s[1];
   for i:=2 to length(s)-1 do
   begin
       if ((s[i-1] in glasn)and(s[i+1] in glasn))
       or
       ((s[i-1] in sogl)and(s[i+1] in sogl))
       then sn:=sn+pas2+s[i]
       else sn:=sn+pas1+s[i]
   end;
   sn:=sn+pas1+s[length(s)];
   s:=sn
end;

procedure decode(var s:string; const pas1, pas2: string);
var i  : integer;
   sn : string;
begin i:=1; sn:='';
   while i<=length(s) do begin
     if s[i] = pas1[1] then begin
         inc(i, length(pas1));
         sn:=sn+s[i]
     end else begin
           inc(i, length(pas2));
           sn:=sn+s[i]
         end;
     inc(i)
   end;
   s:=sn
end;

begin
   Write('Ввелите строку для кодирования ');ReadLn(s);
   Write('Введите первый пароль ');ReadLn(pas1);
   Write('Введите второй пароль ');ReadLn(pas2);
   code(s, pas1, pas2);
   Write('Закодировали: ');writeLn(s);
   decode(s, pas1, pas2);
   Write('Раскодировали: ');writeLn(s)
end.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 25.07.2025 8:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"