Pascal: Passwort-Überprüfung

Ich habe ein Programm geschrieben, das die Wahrscheinlichkeit, ein angegbenes Passwort zu erraten, berechnet. Das ganze habe ich in Pascal realisiert.

Quellcode[1]

Wie man wahrscheinlich leicht erkennen kann, bin ich noch recht unerfahren im Programmieren. ;)

Das Problem bei der Sache ist, dass er beim Kompilieren den Fehler "Illegal Expression" ausgibt. Der Fehler soll (u.a.) in dieser Zeile 3 stecken (er gibt für jede Array-"Füllung" so einen Fehler aus!):
Code:
procedure fillnumbers; { definition of numbers  }
begin
  numbers[0]='0';
  [...]
end;

Aber ich habe leider keine Ahnung, wo da der Fehler liegt... ?(

Noch eine kleine Frage am Rande: Haltet Ihr das Programm für sinnvoll oder eher weniger?



[1]Kurze Erklärung zum Code
Zunächst ruft das Programm die Prozeduren fillnumbers und fillspecchar auf. Die beiden dienen eigentlich nur dem Zweck, zwei globale Arrays zu füllen, inde sie in das Array numers die Zahlen von 0 bis 9 als Character und in specchar die 44 Sonderzeichen auf der deutsch Tastatur schreiben.

Es folgt die Eingabe des Passwortes. Das Passwort wird an die Funktion checkpass übergeben, welche zunächst anhand von Vergleichen mit den eben gefüllten Arrays überprüft, ob in dem Passwort Sonderzeichen und/oder Zahlen enthalten sind.

Abhängig von den im Passwort vorhandenen Zeichen (Nur Buchstaben, mit/ohne Zahlen und mit/ohne Sonderzeichen) berechnet es wie folt die Wahrscheinlichkeit:

Nur Buchstaben: p=26^Länge
mit Zahlen: p=36^Länge
mit Sonderzeichen (44 an der Zahl): p=70^Länge
mit Zahlen und Sonderzeichen: p=80^Länge

Im Übrigen habe ich mangels Wissen von einer Exponentialfunktion in Pascal selbst eine geschrieben, das ist die expo(base,exponent).
 
Umpf, muß es Pascal sein? C ist doch so schön ;-)

Aber mir kommt so der Gedanke auf, daß die Wertzuweisung in Pascal nicht mit dem Gleichheitszeichen gemacht wird, das könnte die Illegal Expression sein.

Turbo-Pascal Handbuch von Anno Tuck:
Seite 55
Zuweisungs-Anweisungen
Beispiele:
Angle:=Angle*Pi;

Versuch's mal mit Doppelpunkt und Gleichheitszeichen.
 
Zurück
Oben