![]() |
Problem mit undefinierten Bezeichnern
Hi,
ich bin gerade dabei das RSA-Verfahren zu programmieren:
Delphi-Quellcode:
Beim kompilieren zeigt mir Delphi bei den Funktionen crypt und encrypt folgende Fehler an:
unit mRSA;
interface uses Math; type TRSA = class(TObject) private p, q: Integer; phi, e: Extended; function isPrime(x: Integer): Boolean; function ggT(x, y: Extended): Extended; function modulo(x, y: Extended): Extended; public n, d: Extended; constructor create(); function crypt(x: Extended): Extended; function encrypt(x: Extended): Extended; destructor destroy(); end; implementation constructor TRSA.create(); var help: Integer; begin randomize; repeat help := random(46340); until isPrime(help); p := help; repeat repeat help := random(46340); until isPrime(help); q := help; until p <> q; N := p*q; phi := (p-1)*(q-1); repeat e := random*(N-1); until (e > 1) and ((ggT(e, N)) = 1); repeat d := random*N; until modulo((e*d), phi) = 1; p := 0; q := 0; phi := 0; end; function TRSA.isPrime(x: Integer): Boolean; var i: Integer; begin result := true; for i := 2 to (x - 1) do begin if x mod i = 0 then result := false end; end; function TRSA.ggT(x, y: Extended): Extended; var help: Extended; begin if y > x then begin help := x; x := y; y := help; end; if y = 0 then result := x else result := ggT(y, modulo(x, y)); end; function TRSA.modulo(x, y: Extended): Extended; begin result := x; while x >= y do begin x := x - y; result := x; end; end; function crypt(x: Extended): Extended; begin result := modulo(power(x, d), n); end; function encrypt(x: Extended): Extended; begin result := modulo(power(x, e), n); end; destructor destroy(); begin n := 0; d := 0; e := 0; inherited; end; end. [Fehler] mRSA.pas(85): Undefinierter Bezeichner: 'modulo' [Fehler] mRSA.pas(85): Undefinierter Bezeichner: 'd' [Fehler] mRSA.pas(90): Undefinierter Bezeichner: 'modulo' [Fehler] mRSA.pas(90): Undefinierter Bezeichner: 'e' [Fehler] mRSA.pas(93): Undefinierter Bezeichner: 'destroy' [Fehler] mRSA.pas(95): Undefinierter Bezeichner: 'n' [Fehler] mRSA.pas(96): Undefinierter Bezeichner: 'd' [Fehler] mRSA.pas(97): Undefinierter Bezeichner: 'e' Vor diesen Zeilen hat er keine Probleme mit den Funktionen und Variablen... Wodran liegt's? |
Re: Problem mit undefinierten Bezeichnern
Deine Funktionen sind keine Angehörigen von der zuvor definierten Klasse TRSA. Aus diesem Grund kennen sie die anderen Funktionen und die in der Klasse definierten Variablen nicht. Füge vor jede Funktion noch den Klassennamen ein, dann wirds funktionieren:
Delphi-Quellcode:
function TRSA.crypt(x: Extended): Extended;
begin result := modulo(power(x, d), n); end; |
Re: Problem mit undefinierten Bezeichnern
Stimmt... :-D
Danke^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz