Другие языки программирования и технологии
Помогите в паскале Исправить ошибку?
Вот код: program RUKZAK; uses crt; var as,l,u,f:longint; ppr,q:real; n,m,x:longint; v,k,c,s,ko1,ko2,ko3,ko4,ko5,ko6,ko7,ko8,a1,a2,a3,a4,a5,a6,a7,a8:integer; w,r1, r2, r3, r4, r5, r6, r7, r8,e1, e2, e3, e4, e5, e6, e7, e8 :integer; b,j,z1,z2,z3,z4,z5,z6,z7,z8 :integer; begin clrscr; writeln ('vvedite posledovateinost zakritogo klycha'); write ('k='); readln (a1, a2, a3, a4, a5, a6, a7, a8); s:=a1+a2+a3+a4+a5+a6+a7+a8; m:=s+1; writeln ('m=',m,' > ',s); writeln; writeln ('vvesti n vzaimno prostoe s m:'); write ('n='); readln (n); ko1:=((a1*n)mod m); writeln ('ko1=',ko1); ko2:=((a2*n)mod m); writeln ('ko2=',ko2); ko3:=((a3*n)mod m); writeln ('ko3=',ko3); ko4:=((a4*n)mod m); writeln ('ko4=',ko4); ko5:=((a5*n)mod m); writeln ('ko5=',ko5); ko6:=((a6*n)mod m); writeln ('ko6=',ko6); ko7:=((a7*n)mod m); writeln ('ko7=',ko7); ko8:=((a8*n)mod m); writeln ('ko8=',ko8); writeln; writeln ('otkritiy klych:'); writeln ('Ko={',ko1,' ',ko2,' ',ko3,' ',ko4,' ',ko5,' ',ko6,' ',ko7,' ',ko8,'}'); writeln; writeln('vvedite chislo dlya shifrovaniya - proizvolnoe:'); write ('P='); readln(r1); writeln; writeln('dvoichnoe predstavlenie chisla :',r1); e1:=r1 mod 2; r2:=r1 div 2; e2:=R2 mod 2; R3:=R2 div 2; E3:=r3 mod 2; R4:=R3 div 2; E4:=R4 mod 2; r5:=r4 div 2; e5:=r5 mod 2; R6:=R5 div 2; r7:=r6 div 2; e6:=r6 mod 2; e7:=r7 mod 2; if e7<1 theN e7:=0 else e7:=1; iF e7=0 theN E8:=0 else e8:=r7 div 2; writeln; writeln ('P(2)=',e8, e7, e6, e5, e4, e3, e2, e1); writeln; { writeln ('Ppr=',ko1*e8,' ',ko2*e7,' ',ko3*e6,' ',ko4*e5,' ',ko5*e4,' ',ko6*e3,' ',ko7*e2,' ',ko8*e1,');} c:=ko1*e8+ko2*e7+ko3*e6+ko4*e5+ko5*e4+ko6*e3+ko7*e2+ko8*e1; writeln; writeln ('c=',c); writeln; x:=1; k:=(m*x+1); while k mod n<>0 do begin x:=x+1; k:=(m*x+1); end; q:=k/n; w:= trunc (q) ; l:=trunc (c); u:=trunc (w); f:=l*u; as:=f mod m; writeln ('Ppr=',as); b:=a8; if b<=as then begin z1:=1; b:=b+a7; end else begin z1:=0; b:=a7; end; if b<=as then begin z2:=1; b:=b+a6; end else begin z2:=0; b:=(b-a7)+a6; end; if b<=as then begin z3:=1; b:=b+a5; end else begin z3:=0; b:=(b-a6)+a5; end; if b<=as then begin z4:=1; b:=b+a4; end else begin z4:=0; b:=(b-a5)+a4; end; if b<=as then begin z5:=1; b:=b+a3; end else begin z5:=0; b:=(b-a4)+a3; end; if b<=as then begin z6:=1; b:=b+a2; end else begin z6:=0; b:=(b-a3)+a2; end; if b<=as then begin z7:=1; b:=b+a1; end else begin z7:=0; b:=(b-a2)+a1; end; if b<=as then z8:=1 else z8:=0; writeln; writeln ('P(2)=',z8,z7,z6,z5,z4,z3,z2,z1); writeln; if z8=e8 then if z7=e7 then if z6=e6 then if z5=e5 then if z4=e4 then if z3=e3 then if z2=e2 then if z1=e1 then j:=r1 else writeln ('FATAL ERROR'); writeln; writeln ('___razhifrovannii text___',j); writeln; readln; end. Это шифрование методом "рюкзак" ошибка в самом начале uses crt помогите ее исправить и подскажите что такое crt. Если у кого нибудь есть такой метод пришли исходник. Спасибо
С чего вы взяли, что имеет место ошибка ("ошибка в самом начале")? Компилятор что-то выводит? Так чего аки партизан вы скрываете это? Почему не приводите его ругань ("он начал ругаться на все AS")? Как вам помочь, если нет практически никакой исходной информации кроме текста программы?
Кстати, у меня она скомпилилась без проблем. Что я сделал не так? И CRT здесь ни при чем. Вывод: ищите ошибку в другом месте.
2 Jurii: Не должно быть AS логического типа. Эта переменная содержит остаток от деления
f:=l*u;
as:=f mod m;
writeln ('Ppr=',as);
Кстати, у меня она скомпилилась без проблем. Что я сделал не так? И CRT здесь ни при чем. Вывод: ищите ошибку в другом месте.
2 Jurii: Не должно быть AS логического типа. Эта переменная содержит остаток от деления
f:=l*u;
as:=f mod m;
writeln ('Ppr=',as);
AS должно быть Boolean, а у тебя Longint.
написано правильно uses crt = программа использует модуль crt (работа с консолью)
если ругается - может быть у вас этот модуль полетел (в каком файле сидит не помню может crt.tpl или crt.tpu)
вроде бы используете вы этот модуль только 1 раз при очистке экрана. попробуйте убрать clrscr; и uses crt;
если ругается - может быть у вас этот модуль полетел (в каком файле сидит не помню может crt.tpl или crt.tpu)
вроде бы используете вы этот модуль только 1 раз при очистке экрана. попробуйте убрать clrscr; и uses crt;
не uses, а users, а crt -это подключаемая библиотека
uses crt написано правильно, это подключение стандартной библиотеки crt паскаля, но у тебя по каким то причинам она не находится или отсутствует.
В твоей программе она нужна чтобы бы выполнить из неё оператор Clrscr, который очищает экран перед началом работы программы, но без него вполне можно обойтись.
Поэтому убери uses crt и оператор Clrscr и у тебя должно всё заработать.
В твоей программе она нужна чтобы бы выполнить из неё оператор Clrscr, который очищает экран перед началом работы программы, но без него вполне можно обойтись.
Поэтому убери uses crt и оператор Clrscr и у тебя должно всё заработать.
короч убери crt и вместо as напиши aas
Похожие вопросы
- Паскаль. Исправьте ошибки
- Задача по Паскалю. Исправьте ошибки, пожалуйста.
- помогите найти и исправить ошибку в коде СИ
- помогите пожалуйста как исправить ошибку попытка присвоить переменной integer выражения типа boolean
- Помогите исправить ошибку в коде программы на паскале.
- Помогите исправить ошибку в программе (c++).
- программа в паскале, помогите исправить ошибку плиз
- Помогите пожалуйста исправить ошибки программы на паскале, переписанную с древней методички.
- Помогите исправить ошибку в программе на Си
- Помогите исправить ошибку в коде программы, пожалуйста!