Буду очень благодарен, если вы хоть как-то поможете с написанием этой программы: Зашифруйте фразу, заменив букву а на у, букву и на ю и букву е на букву я. После запроса расшифруйте фразу. (принцип: в окне пользователя пользователь сам вводит любую фразу, далее заменяются соответствующие буквы и фраза выдается в зашифрованном виде. Далее программа спрашивает: "расшифровать фразу?", если вы отвечаете "да" то происходит обратная замена букв и вывод первоначальной фразы.) заранее всем благодарен!
мисс_граффити
17.05.2007 20:56
Проходишь по строке, анализируя каждый символ... если это а, и или е, заменяешь как расшифровывать - непонятно.
Артемий
17.05.2007 20:56
var s: string; i: integer; begin readln(s); for i:=1 to length(s) do begin case s[i] of 'à': s[i]:='ó'; 'è': s[i]:='þ'; 'å': s[i]:='ÿ'; end; end; writeln(s); readln end.
умно но помоему непроканает.. нужно как то запоминать какие символы в введенной строке были зашифрованы, а при расшифровке именно их и расшифровывать, а не другие.
Гость
18.05.2007 11:09
запоминать ничего не надо, символы те же, только наоборот...
nikita182
18.05.2007 11:11
непроканает - переделаем)
volvo
18.05.2007 11:13
Цитата
символы те же, только наоборот...
Да?
"Это я, привет!" - зашифруй и дешифруй... Я хочу видеть, что ты получишь в результате...
ascii код точно такой, может с кодировкой чего.. я долго мучился чтоб паскаль русский понимал)
Айра
18.05.2007 12:25
Цитата
ascii код точно такой, может с кодировкой чего..
Сейчас проверила (одна программка умеет находить коды), у меня: а = 224 е = 229 и = 232 у = 243 ю = 254 я = 255 Воть так.
Цитата
я долго мучился чтоб паскаль русский понимал)
А у меня с этим проблем не было, правда есть некоторые другие)))
nikita182
18.05.2007 12:33
бляха-муха... тогда программа, которая возвращает код символа:
uses crt;
var simvol : char; flag : boolean; i : integer;
procedure vozvrat;
begin repeat clrscr; writeln('vvodi...esc - vixod!'); simvol:=readkey; clrscr; writeln('vvel:',simvol,' kod:',ord(simvol)); readkey; until ord(simvol) = 27;
readkey; end;
begin vozvrat; end.
сам подставит))
volvo
18.05.2007 12:36
Оля,
for j:=1 to 6 do begin
- это зачем? Ты для этого разве запоминала J, чтобы потом вводить вручную, сколько символов заменять? Лучше - так:
for i:=1 to j do begin case s[ch[i]] of ...
director
18.05.2007 12:40
УРА!!!!!!!!!!!!!!!!!!!!!!!!!!! Все работает! Спасибо всем вам большое за помощь!!!! в особенности Айре! Даже не предполагал, что столько людей откликнется мне на помощь! Еще раз спасибо всем!
Айра
18.05.2007 12:47
Цитата
бляха-муха...
не хорошо.. спокойно
Цитата
тогда программа, которая возвращает код символа:
У меня все равно мои цифры получаются. Просто у нас сама кодировка может быть разная, забей на это))
Цитата
это зачем? Ты для этого разве запоминала J, чтобы потом вводить вручную, сколько символов заменять?
Ой.. честно, не догадалась, что можно сделать лучше(( Сейчас исправлю, и буду учиться дальше
director
18.05.2007 15:27
А у меня несколько вопросов по поводу программы. Мне не совсем понятно что значат следующие фразы в программе: ch length case inc
Айра
18.05.2007 16:13
Цитата
Мне не совсем понятно что значат следующие фразы в программе:
ch - в своей программе я так обозвала)) массив, содержащий номера изменяемых символов. length - строковая функция, которая вычисляет длину (количество символов) в строке. Т.е. length(s) вычислит, сколько символов в строке s. case - это оператор выбора. Он позволяет выбрать из нескольких вариантов и для каждого можно прописать соответствующее действие. Например, в этом фрагменте:
case s[ch[i]] of {сначала вычисляется значение s[ch[i]], а потом смотрится} 'у': s[ch[i]]:='а'; {если s[ch[i]] равно символу 'у', то выполняется одно действие} 'я': s[ch[i]]:='е'; {если s[ch[i]] равно 'я', то - другое, и т.д.} 'ю': s[ch[i]]:='и'; end;
inc - процедура, увеличивающая значение числа в скобках inc(j), по умолчанию на 1, а если написать так: inc(j,5), то, соответственно, на пять. Если еще что непонятно, спрашивай, объясним
nikita182
19.05.2007 12:18
Цитата(Айра @ 18.05.2007 13:25)
А у меня с этим проблем не было, правда есть некоторые другие)))
wincrt)) это не проблема..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.