Pascalprogramm und keinen ansatz :-(

Hallo,

ich hab folgendes Problem. Ich hab hier als Aufgabe ein Programm zu schreiben wo ich dem Buchstaben a den Wert z zuweise usw und der mir einen eingegebenen Satz verschlüsselt ausgibt
Nun weiß ich aber nicht wie und wo ich anfangen muss.

Mache ich das mit einer case-Anweisung,da es ja mehrere Optionen sind?
Muss ich eoln einbauen damit er nicht nur den ersten Buchstaben nimmt?

Ist das ein Record oder Array? Ein Array vielleicht weil ich immer auf einen anderen Buchstaben zugreife?

Liebe Grüße von der ratlosen Vicky

Hallo Vicky,

ich hab folgendes Problem. Ich hab hier als Aufgabe ein
Programm zu schreiben wo ich dem Buchstaben a den Wert z
zuweise usw und der mir einen eingegebenen Satz verschlüsselt
ausgibt
Nun weiß ich aber nicht wie und wo ich anfangen muss.
Mache ich das mit einer case-Anweisung,da es ja mehrere
Optionen sind?
Muss ich eoln einbauen damit er nicht nur den ersten
Buchstaben nimmt?
Ist das ein Record oder Array? Ein Array vielleicht weil ich
immer auf einen anderen Buchstaben zugreife?

Angenommen dein Satz steht in Wort: string;
Dann kannst Du eine Schleife machen um jeden einzelnen Buchstaben auszulesen, z.B.

for i:=1 to length(wort) do

Wort[i] liefert den i-ten Buchstaben, weil ein string ja schon array ist,
Den kannst Du dann z.B. ch zuweisen, also

ch := Wort[i]

und z.B. in einer case-Anweisung umwandeln, etwa so:

case ch of
"a": Wort[i] := "z";
"b": Wort[i] := "y";
...

Ist nicht besonders elegant, aber abends um 23.00 Uhr - und dann noch zum Vatertag - fällt mir nichts besseres ein. Wenn es Regelmäßigkeiten in der Umwandlung gibt, kannst Du auch

chr (ord (Wort[i]) + irgendwas)

ausnutzen, nur mal so als Anregung.

Viel Erfolg
Klaus Bernstein

Hi Vicky,

am einfachsten ließe sich das ganze lösen, in dem du ein Array für die Umsetzung benutzt, sieht dann etwa so aus.

CONST
 Umsetzung : ARRAY['a'..'c'] OF char = ('z','y','x');

hier würde dann mittels einer for-Schleife gemäß meinem Vorredner eine einfache Zuweisung funktionieren. Wenn dein String z.B. in der Variablen eingabetext steht könnte das ganze etwa so aussehen.

 eingabetext := 'abc';
 for i := 1 to length(eingabetext) do
 eingabetext[i] := Umsetzung[Eingabetext[i]];
 write(eingabetext);

das Ergebnis wäre zyx

Gruß Michi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Michael,

am einfachsten ließe sich das ganze lösen, in dem du ein Array
für die Umsetzung benutzt, sieht dann etwa so aus.

CONST
Umsetzung : ARRAY[‚a‘…‚c‘] OF char = (‚z‘,‚y‘,‚x‘);

hier würde dann mittels einer for-Schleife gemäß meinem
Vorredner eine einfache Zuweisung funktionieren. Wenn dein
String z.B. in der Variablen eingabetext steht könnte das
ganze etwa so aussehen.

eingabetext := ‚abc‘;
for i := 1 to length(eingabetext) do
eingabetext[i] := Umsetzung[Eingabetext[i]];
write(eingabetext);

das Ergebnis wäre zyx

Ja super, eleganter Ansatz. Warum bin ich da bloss nicht drauf gekommen, ich befürchte, ich werde alt :frowning:

Viele Grüsse
Klaus Bernstein

Hallo,

ich danke euch beiden.

Habe nun ein Programm auch mit array geschrieben, jedoch in gaaanz vielen for-Schleifen jedem Buchstaben einen anderen Buchstaben zugewiesen. Das Programm läuft einwandfrei. Ist jedoch ein wenig lang, ich gebe es zu :smile:

Werd nun mal schauen mit euren Tipps das Programm ein wenig einfacher und kürzer zu machen!

Vielen lieben Dank

von der Vicky