![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
In |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите решить задачу! Валюсь на сессии..
![]() Нужно закодировать вводимую с клавиатуры строку. Символ меняется на последовательность из 4 знаков (букв или цифр). Если символ стоит между 2-мя гласными или 2-мя согласными, то он меняется на иную последовательность, например, из 3 знаков (букв или цифр). И так вся строка!! Помогите, особые затруднения вызывает часть замены исходного символа на код (этот цикл никак не могу сделать).. ![]() |
In |
![]()
Сообщение
#2
|
Гость ![]() |
вот мои попытки
![]() Код 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 |
![]()
Сообщение
#3
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код 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. -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 8:51 |