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/)
-   -   Delphi Umkehrung von if-Schleifen (https://www.delphipraxis.net/19724-umkehrung-von-if-schleifen.html)

Nicolai1234 7. Apr 2004 19:51


Umkehrung von if-Schleifen
 
Ich habe einen Block aus 64 if-Abfragen:
Code:
if s = 'A' then result := '1001010';
if s = 'a' then result := blabla1;
if s = 'B' then result := blabla2;
if s = 'b' then result := blabla3;
if s = 'C' then result := blabla4;
if s = 'c' then result := blabla5;
if s = 'D' then result := blabla6;
if s = 'd' then result := blabla7;
if s = 'E' then result := blabla8;
...
Nun möchte ich die ganze Sache auch umgekehrt haben. Also:
Code:
if s = 'A' then result := '1001010';
if s = blabla1 then result := 'A';
if s = blabla2 then result := 'a';
...
Gibt es da eine Möglichkeit, dass ich nicht alles neu schreiben muss. Eine umgekehrte if-Schleife sozusagen?

Luckie 7. Apr 2004 19:54

Re: Umkehrung von if-Schleifen
 
Was willst du machen bzw. was soll das werden?

Nicolai1234 7. Apr 2004 19:56

Re: Umkehrung von if-Schleifen
 
Das soll zur verschlüsselung von strings dienen.
Ich weiß, dass es schon fertige Funktionen gibt, aber ich wollte mal eine eigene machen

axelf98 7. Apr 2004 20:15

Re: Umkehrung von if-Schleifen
 
Nimm dir 2 Arrays: Den einen füllst du mit A,a,B; den anderen mit 0001,1001.. - Dann kannst du mit dem folgenden Code arbeiten:

Delphi-Quellcode:
var
 Teil1,Teil2 : Array[1..64] of String;
begin

procedure fuellen;
begin
Teil1[1] := 'A';
Teil1[2] := 'a';
Teil1[3] := 'B';
...

Teil2[1] := '10001';
Teil2[2] := '10011';
Teil2[3] := '10100';
...
end;

function Verschluesseln(Bstb:String):String;
var i: integer;
begin
 result := ' ';
 for i := 1 to 64 do
  if Bstb = Teil1[i] then result := Teil2[i];
end;

function Entschluesseln(Schnipsel:String):String;
var i: integer;
begin
 result := ' ';
 for i := 1 to 64 do
  if Schnipsel = Teil2[i] then result := Teil1[i];
end;

Nicolai1234 7. Apr 2004 20:20

Re: Umkehrung von if-Schleifen
 
Danke, dann muss ich "nur"noch die procedure fuellen schreiben...

jbg 7. Apr 2004 20:29

Re: Umkehrung von if-Schleifen
 
...Und lernen, dass es keine IF-Schleifen gibt, denn eine Schleife wiederholt etwas. Und was wird bei IF-Anweisungen bitte schön wiederholt?

Nikolas 7. Apr 2004 20:54

Re: Umkehrung von if-Schleifen
 
Zitat:

Zitat von jbg
...Und lernen, dass es keine IF-Schleifen gibt, denn eine Schleife wiederholt etwas. Und was wird bei IF-Anweisungen bitte schön wiederholt?

Ich würde sagen, dass man eine While-Schleife schon als eine Art If-Schleife sehen kann, da ja da die Anzahl der ausführungen auch an das Ergebniss einer 'If-Abfrage' gekoppelt ist

Nicolai1234 7. Apr 2004 21:17

Re: Umkehrung von if-Schleifen
 
Nach einem if kann das nächste Sprungziel then oder else sein. Also ist die if-Konstruktion eine Verzweigung und ich sehe eine Verzweigung auch als Schleife.

Wenn ich meinen Schuh mit einer Schleife zu mache, ist das ja auch keine ständige Wiederholung, sonst wäre das Laufen ja eine Qual. (wobei ich eh lieber :coder: mache)

Nikolas 7. Apr 2004 21:40

Re: Umkehrung von if-Schleifen
 
Zitat:

Nach einem if kann das nächste Sprungziel then oder else sein. Also ist die if-Konstruktion eine Verzweigung und ich sehe eine Verzweigung auch als Schleife.
Warum soll das den eine Schleife sein? Bei einer Schleife kommst irgendwann wieder da an wo du schon mal warst, bei einer if-Verzweigung kommst du nie wieder da an wo du schon mal warst,
Zitat:

sonst wäre das Laufen ja eine Qual.
Nach jeder Kreuzung wieder da ankommen, von wo ich losgefahren bin.

Zitat:

Wenn ich meinen Schuh mit einer Schleife zu mache, ist das ja auch keine ständige Wiederholung, sonst wäre das Laufen ja eine Qual
Hach wie herrlich ungenau ist doch die Sprache wenn's um manche Dinge geht :)

Luckie 7. Apr 2004 21:51

Re: Umkehrung von if-Schleifen
 
Könnten wir bitte wieder zum eigentlichen Problem zurückkehren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz