Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Cäsar-Code (https://www.delphipraxis.net/147520-caesar-code.html)

CASA 10. Feb 2010 14:23


Cäsar-Code
 
wir haben ein riesiges Problem
und zwar wollen wir ein Programm zum Cäsar-Code schreiben, um uns auf eine bevorstehende Klausur vorzubereiten.

Delphi-Quellcode:
procedure TForm1.CodierenClick(Sender: TObject);
var eingabe, ausgabe1 : String;
    i, ascii, schritt, n : Integer;
    c : char;
begin
  eingabe := EditEingabe.text;
  ausgabe1 := '';
  n := StrToInt(EditVerschiebungsgrad.text);
  for i := 1 to length(eingabe) do
    begin
    c := EditEingabe.text[i];
    ASCII := ord(c);
    schritt := n;
    ASCII := ASCII + schritt;
    if ASCII < ord(n)
    then ASCII := ASCII - 26;
    EditAusgabe1.Text := EditAusgabe1.text + chr(ASCII);
    end;
end;
nun muss aber noch ein mod mit in die procedure, allerdings wissen wir nicht, wie wir das umsezten sollen.
wenn ihr uns helfen könntet, wäre das sehr nett.

[edit=Luckie]Delphi Tags. Mfg, Luckie[/edit]

Luckie 10. Feb 2010 14:25

Re: Cäsar-Code
 
Wieso muss da noch der Modulo-Operator rein? Es ist doch nur eine einfache Verschiebung.

CASA 10. Feb 2010 14:28

Re: Cäsar-Code
 
das klappt so mit dem z nicht
außerdem is das ne angabe von unserem lehrer, dass das so soll

Luckie 10. Feb 2010 14:30

Re: Cäsar-Code
 
Was für ein "z"? Benenne deine Variablen bitte mal aussagekräftig.

implementation 10. Feb 2010 14:41

Re: Cäsar-Code
 
Zitat:

Zitat von CASA
Delphi-Quellcode:
procedure TForm1.CodierenClick(Sender: TObject);
var n : Integer;
begin
    ...
    if ASCII < ord(n)
    ...
end;

Sicher, dass du nicht Ord(c) meinst? :cyclops:

fkerber 10. Feb 2010 14:42

Re: Cäsar-Code
 
Hi!

Ich denke, er meint den Buchstaben z, und wenn der verschoben wird, dann muss da ja wieder ein a z.B. rauskommen.
Wo genau ist das Problem? Wisst ihr, was modulo macht?

Grüße, Frederic

himitsu 10. Feb 2010 14:43

Re: Cäsar-Code
 
Muß unbedingt ein MOD da rein?
So wie der Code jetzt ist, würde ein zusätzlich reingequetschtes MOD den Code nur disoptimieren und vorallem unleserlicher machen.



Ansonsten:
- wozu ist die Variable "schritt"? sie ist ja das Selbe wie "n"
- und in if ASCII < ord(n) then kann das ord(n) nicht stimmen

Luckie 10. Feb 2010 14:46

Re: Cäsar-Code
 
Ach so. Wenn man auch immer nur zwei drei Sätze schreibt mit möglichst nicht mehr als fünf Worten...* :roll:

Na ja, wenn Buchstabe + Schrittweite > Anzahl Buchstaben Alphabet ist, dann musst du eben Anzahl Buchstaben Alphabet abziehen.

*) Das war jetzt auf noch ein paar andere Mitglieder bezogen.

CASA 15. Feb 2010 11:00

Re: Cäsar-Code
 
Wir brauchen auf jeden Fall den mod befehl, denn dieser wird von unserem Lehrer vorausgesetzt
außerdem besteht das Problem, dass z nicht zu a umgewandelt wird, wenn wir beim veschiebungsgrad 1 eingeben, sondern es entstehen irgendwelche zeichen...
zum schluss sollen wir das ganze auch noch decodieren können, wobei weitere Probleme entstehen. die klausur steht kurz bevor und es wäre nett wenn ihr uns helfen könntet.

Sherlock 15. Feb 2010 11:08

Re: Cäsar-Code
 
Zitat:

Zitat von CASA
Wir brauchen auf jeden Fall den mod befehl, denn dieser wird von unserem Lehrer vorausgesetzt

Dann bau halt irgendwo ein
Delphi-Quellcode:
if (1 mod 1 = 0) then
ein.

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz