Hallo zusammen,
ich brauche dringend eure hilfe. 
ich muss ein Prüfen button einführen der einen schlüssel aus buchstaben A bis Z(benutzer gibt den schlüssel ein) prüft und dann den buchstaben aus dem alphabet löscht.
Genaue aufgabenstellung sowie das program habe ich angefügt...ich brauchsé dringend eure hilfe,da ich nicht mehr wiederhohlen kann und die klasse schaffen muss mir mein mpi lehrer aber ein strich durchziehen kann mit der aufgabe.Ich verzweifle an dieser ich g´habe schon stunden rumexperimentiert.
lg 
Lazarus eingabe:
unit unit3b;
{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Menus,
  Buttons, ExtCtrls;
type
  { TFKrypto_3b }
  TFKrypto_3b = class(TForm)
    BiBtEnde: TBitBtn;
    BtVerschluesseln: TButton;
    BtKlartextLaden: TButton;
    BtChiffreSpeichern: TButton;
    BtChiffreLaden: TButton;
    BtEntschluesseln: TButton;
    BtKlartextSpeichern: TButton;
    BtSaeubern: TButton;
    BtPruefen: TButton;
    EdAlphabet: TEdit;
    EdSchluessel: TEdit;
    LbChiffre: TLabel;
    LbAlphabet: TLabel;
    LbSchluessel: TLabel;
    LbKlartext: TLabel;
    MemKlartext: TMemo;
    MemChiffre: TMemo;
    OpenDialogKlartext: TOpenDialog;
    OpenDialogChiffre: TOpenDialog;
    Panelinkorrekt: TPanel;
    SaveDialogChiffre: TSaveDialog;
    SaveDialogKlartext: TSaveDialog;
    procedure BtChiffreLadenClick(Sender: TObject);
    procedure BtChiffreSpeichernClick(Sender: TObject);
    procedure BtEntschluesselnClick(Sender: TObject);
    procedure BtKlartextSpeichernClick(Sender: TObject);
    procedure BtKlartextLadenClick(Sender: TObject);
    procedure BtVerschluesselnClick(Sender: TObject);
    procedure BtSaeubernClick(Sender: TObject);
  private
  public
  end;
var
  FKrypto_3b: TFKrypto_3b;
  Klartext, Alphabet, schluessel, chiffre, s1, s2 : String;
  i, j : Integer;
implementation
{$R *.lfm}
{ TFKrypto_3b }
procedure TFKrypto_3b.BtVerschluesselnClick(Sender: TObject);
begin
  Klartext := Uppercase(MemKlartext.text);
  Alphabet := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  Schluessel := Uppercase(EdSchluessel.text);
  chiffre := '';
  for i := 1 to Length(Klartext) do                         // Klartext verschlüsseln
        if Klartext in ['A'..'Z' ] then
                          begin
                           j := pos(Klartext,Alphabet);
                           chiffre := chiffre +  schluessel[j];
                          end
        else chiffre := chiffre + Klartext;
   MemChiffre.Text := chiffre;                              // Ausgabe Chiffre
end;
procedure TFKrypto_3b.BtSaeubernClick(Sender: TObject);
begin
  MemKlartext.Clear;
  MemChiffre.Clear;
  EdSchluessel.clear;
end;
procedure TFKrypto_3b.BtChiffreSpeichernClick(Sender: TObject);
begin
  if SaveDialogChiffre.Execute then MemChiffre.lines.SaveToFile(SaveDialogChiffre.FileName);
end;
procedure TFKrypto_3b.BtEntschluesselnClick(Sender: TObject);
begin
  chiffre := MemChiffre.text;
  Alphabet := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  Schluessel := Uppercase(EdSchluessel.text);
  Klartext :='';
  for i := 1 to Length(chiffre) do                         // Chiffre entschlüsseln
        if chiffre in ['A'..'Z' ] then
                          begin
                           j := pos(chiffre,schluessel);
                           Klartext := Klartext +  alphabet[j];
                          end
        else Klartext := Klartext + chiffre;
   MemKlartext.Text := Klartext;                              // Ausgabe Klartext
end;
procedure TFKrypto_3b.BtKlartextSpeichernClick(Sender: TObject);
begin
   if SaveDialogKlartext.Execute then MemKlartext.lines.SaveToFile(SaveDialogKlartext.FileName);
end;
procedure TFKrypto_3b.BtKlartextLadenClick(Sender: TObject);
begin
   if OpenDialogKlartext.Execute then
                             begin
                              MemKlartext.clear;
                              MemKlartext.lines.LoadFromFile(OpenDialogKlartext.FileName)
                             end;
end;
procedure TFKrypto_3b.BtChiffreLadenClick(Sender: TObject);
begin
   if OpenDialogChiffre.Execute then
                             begin
                              MemChiffre.clear;
                              MemChiffre.lines.LoadFromFile(OpenDialogChiffre.FileName)
                             end;
end;
end.
                   
Genaue aufgabe:
Bei der Eingabe des Schlüssels durch den Benutzer können natürlich Eingabefehler auftreten, z.B. ein
Buchstabe taucht mehrfach auf oder die Länge passt nicht. Daher empfiehlt es sich, dem Benutzer die
Möglichkeit zu geben, seinen Schlüssel prüfen zu lassen. Genau das sollst du nun angehen!
Auf der nächsten Seite findest du eine Abbildung, die ein entsprechendes Fenster (Formular) darstellt.    Durch Betätigen der Schaltfläche ‚Prüfen‘ wird der Schlüssel auf Korrektheit geprüft und in jedem Fall
eine Information ausgegeben. Erweitere dein Formular zunächst um die neuen Komponenten (ein
Button und ein Panel). Wie muss die zugehörige Ereignisbehandlungsroutine im Quelltext nun
aufgebaut sein? Schreibe sie anhand der folgenden Anleitung und teste dein erweitertes Programm.     Jeder Buchstabe des Schlüssels wird – nacheinander – gelesen und im Alphabet unmittelbar
danach gelöscht. Wenn der Schlüssel korrekt ist, darf im Alphabet-String nichts mehr stehen: er
muss dann leer sein, denn jeder Buchstabe des Alphabets muss im Schlüssel ja genau einmal
verwendet werden.
			
							Prüfenbutton
- 
				Tuningmax
- Beiträge: 9
- Registriert: Do 10. Jun 2021, 12:32
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Prüfenbutton
- Dateianhänge
- 
			
		
		
				 Screenshot (7).png Screenshot (7).png
- (67.75 KiB) Noch nie heruntergeladen
 
- 
			
		
		
				 Screenshot (6).png Screenshot (6).png
- (65.54 KiB) Noch nie heruntergeladen
 
- 
			
		
		
				 Screenshot (5).png Screenshot (5).png
- (68.13 KiB) Noch nie heruntergeladen
 
- 
			
		
		
				 Screenshot (4).png Screenshot (4).png
- (298.28 KiB) Noch nie heruntergeladen
 
 Verein
Verein 
 Links
Links Suche
Suche