программа шифрования и расшифрования текста,написал.должна быть такая какой сейчас её представлю.но в предпоследнем действии выдет ошибку "предпологается порядковое выражение".подскажите что делать?
program z;
uses crt;
var
k,j,i,e,d,p,q,phi,n,l:integer;
m,c:string;
arr:array[0..100] of byte;
begin
clrscr;
write('p=');
readln(p);
write('q=');
readln(q);
writeln('enter you message');
readln(m);
n:=p*q;
writeln(n);
phi:=(p-1)*(q-1);
writeln(phi);
for i:=2to phi-1dobeginifnot (phi mod i=0) then e:=i;
for j:=2to phi-1dobeginif e*j mod phi=1then d:=j;
end;
end;
writeln(e);
writeln(d);
for k:=0to length(m)-1dobegin
l:=ord(copy(m,k,1));
c:=exp(ln(l)*e) mod n;
end;
writeln(c);
readln;
end.
Федосеев Павел
25.12.2013 4:12
l:=ord(copy(m,k,1)); copy возвращает строку, а не символ (char). Если хочешь получить k-тый символ, то получи его как элемент массива m[k] без извращения.
c:=exp(ln(l)*e) mod n; - c - объявлена как строка - может лучше в цикле возводить в степень.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.