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

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

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

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


Гость






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

 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 




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