Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Зашифровать текст

Автор: lerika 27.03.2007 1:23

Зашивровать текст,записанный с помощью русских букв и знаков препинания, след. образом: заменить каждую букву непосредственно следующей за ней по алфавиту (буква "я" заменяется на "а").
Необходимо а)зашифровать текст
б)расшифровать текст
Замена буквы оформляется в виде функции. Исходный текст берется ихз файла данных, а результат ( зашифрованный текст, расшифрованный текст) помещается в файл результата....




И КАК ЭТО ВЫГЛЯДИТ ВСЕ?????????????? blink.gif

Автор: volvo 27.03.2007 1:45

Вот так:
http://forum.pascal.net.ru/index.php?showtopic=3913

Автор: lerika 27.03.2007 1:51

спасибо, но это очень сложно.... wacko.gif ужас...это моя курсовая к завтрашнему дню...помогите люди

Автор: mamont001 27.03.2007 2:07

самое лёгкое- изменять ascii код символа на 1 для шифрования и менять в обратную сторону для разшифрования

Автор: Артемий 27.03.2007 2:11

c:char;
c:=ord©+1;

сама шифровка..(без "я")

Автор: lerika 27.03.2007 2:14

а можно полный текст программы от program дo end

Автор: Kirill_ 27.03.2007 2:23

Можно.

Автор: lerika 27.03.2007 2:25

Kirill_,пожалуйста....

Автор: mamont001 27.03.2007 2:28

 
program kursovayazapis;
var
{описание переменных}
begin
{открытие файла}
while not eof do
begin
{чтение символа}
c:=chr(ord©+1);
{запись символа}
end;
{закрытие файла}
end.



Если надо что-то ещё то это уже "задачи на заказ"

Автор: Lapp 27.03.2007 2:35

Цитата(lerika @ 26.03.2007 21:51) *

спасибо, но это очень сложно.... wacko.gif ужас...это моя курсовая к завтрашнему дню...помогите люди

- это сейчас запощу в раздел Юмор, в тему "из жизни Форума", уж не обижайся.. smile.gif

2 Артемий:
сложность не в "я":

c:=Chr(Ord('А')+(ord©-Ord('А'))+1) mod 33); {считаю, что в алфавите 33 буквы}

- сложность в том, что русская кодировка неоднозначная...

Подправил строчку (вставил Chr)

Автор: volvo 27.03.2007 2:38

Цитата
русская кодировка неоднозначная...
yes2.gif
Собственно, поэтому я и привел ссылку на свою тему: там ясно показано, что лучше работать с алфавитом, как со строкой символов...

Добавлено через 2 мин.
Цитата(mamont001)
Если надо что-то ещё то это уже "задачи на заказ"
Уважаемый не знает, что этот подфорум все еще не функционирует? А при малейшей попытке ЗДЕСЬ устроить решение задач за деньги он будет беспощадно расстрелян... (это было предупреждение)

Автор: Артемий 27.03.2007 2:42

2 Lаpp Ясно! smile.gif

Автор: Kirill_ 27.03.2007 2:52

Цитата

- сложность в том, что русская кодировка неоднозначная...

Почему?
Код большой буквы А и Я, 128 и 159 соответственно. А маленьких а и я, 160 и 239!

Автор: mamont001 27.03.2007 2:56

Цитата
Почему?
Код большой буквы А и Я, 128 и 159 соответственно. А маленьких а и я, 160 и 239!


А кейрус?

Автор: lerika 27.03.2007 3:04

люди...ну помогите глупой девочке

Автор: мисс_граффити 27.03.2007 4:01

Kirill_, не в обиду, но символы с 176 по 223 назвать русскими буквами сложновато.
lerika, поведай, что предполагается делать с буквой "я"? на что ее заменять? на "а"?

Автор: lerika 27.03.2007 4:03

lerika, поведай, что предполагается делать с буквой "я"? на что ее заменять? на "а"?
[/quote]


я на а, а на б, б на в и т.д.

Автор: Lapp 27.03.2007 4:06

Цитата(мисс_граффити @ 27.03.2007 0:01) *

что предполагается делать с буквой "я"? на что ее заменять? на "а"?

Все сказано в первом посте. Неясно только, делать ли сквозной алгоритм для больших и маленьких букв или отдельно циклить те и другие.
Знаки препинания и пробелы, как я понял, оставляются на местах..

Автор: мисс_граффити 27.03.2007 4:33

program kurs;
function zamena(const c:char):char;
var alf:string;
begin
alf:=& #39;абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГД
ЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
case c of
'я': zamena:='a';
'Я': zamena:='А'
else
if pos(c,alf)<>0 then
zamena:=alf[pos(c,alf)+1]
else
zamena:=c;
end;
end;

var s: string;
i: integer;
begin
writeln('vvedite s'); //вот здесь делаешь чтение из файла
readln(s);
for i:=1 to length(s) do
s[i]:=zamena(s[i]);
writeln(s); //а здесь запись в файл
readln;
end.