Skytale Knackprogramm
-
Hallo erstmal!
Bin totaler C++ Anfänger und wollte folgenden Pascal code in c++ schreibenPROGRAM skytale_knacken; USES CRT, PRINTER; VAR satzalt, satzneu : STRING; zaehler, szaehl, zzaehl : INTEGER; spalte, zeile : INTEGER; abfrage : CHAR; tabelle : ARRAY [1..100,1..100] OF CHAR; PROCEDURE eingabe; BEGIN CLRSCR; WRITELN; WRITELN ('Text verschluesselt:'); WRITELN ('(maximal 256 Zeichen, Ende mit <Enter>):'); READLN (satzalt); WRITELN; satzneu := satzalt; WRITE ('Ausgabe auf dem Drucker (Drucker einschalten!) (j/n): '); READLN (abfrage); END; PROCEDURE knacken; BEGIN FOR zeile := 1 TO LENGTH(satzalt) DO BEGIN FOR spalte := 1 TO (LENGTH(satzalt) DIV zeile) DO BEGIN zaehler := 1; FOR szaehl := 1 TO spalte DO BEGIN FOR zzaehl := 1 TO zeile DO BEGIN tabelle [zzaehl,szaehl] := satzalt[zaehler]; zaehler := zaehler +1; END; END; zaehler := 1; FOR zzaehl := 1 TO zeile DO BEGIN FOR szaehl := 1 TO spalte DO BEGIN satzneu[zaehler] := tabelle [zzaehl,szaehl]; zaehler := zaehler +1; END; END; WRITELN (zeile,' ',spalte,' ',satzneu); IF (abfrage = 'j') OR (abfrage = 'J') THEN WRITELN (LST,zeile,' ',spalte,' ',satzneu); END; END; END; BEGIN eingabe; knacken; READLN; END.
Das habe ich bis jetzt:
#include <iostream> using namespace std; const int ss=255; int main(int argc, char *argv[]) { char satzalt[ss]; char *satzneu; char tabelle[100][100]; int zaehler; int szaehler; int zzaehler; int zeile; int spalte; int length; int szaehl; int zzaehl; cout << "SkytaleKnacker\n" << "Bitte Geben Sie den Text ein ! Ende mit <Enter>\n"; cin.getline(satzalt, ss); satzneu = satzalt; length = strlen(satzalt); for (zeile=1; zeile<length; zeile++) { for (spalte=1; spalte<length/zeile; spalte++) { zaehler = 1; for(szaehler=1; szaehler < spalte; szaehler++) { for(zzaehler=1; zzaehler < zeile; zzaehler++) { tabelle [zzaehl][szaehl] = satzalt[zaehler]; zaehler++; }; }; zaehler = 1; for(zzaehl=1; zzaehl < zeile; zzaehl++) { for(szaehl=1; szaehl < spalte; szaehl++) { satzneu[zaehler] = tabelle [zzaehl][szaehl]; zaehler++; }; }; cout << zeile << " " << spalte << " " << satzneu; }; }; system("PAUSE"); return 0; }
Kann mir jemand helfen ???
Ich weiss nicht wie man dieses Tabellen array macht und es dann ausgibtSchon mal vielen Dank !
-
char tabelle[100][100];
Hier zählt man aber von 0-99 und nicht von 1-100. Deine Schleifen sind also auch noch falsch.
Das ist aber in jedem C/C++ Buch oder Tutorial noch besser/ausführlicher erklärt...
-
Ich habe es etwas geändert was ist noch falsch was muss ich änden ????
Würde mich sehr über hilfe freuen.
-
DrGreenthumb schrieb:
Hier zählt man aber von 0-99 und nicht von 1-100. Deine Schleifen sind also auch noch falsch.
-
IceOnly schrieb:
Ich habe es etwas geändert was ist noch falsch was muss ich änden ????
Würde mich sehr über hilfe freuen.
würde mich über genauere fehlerbeschreibungen auch freuen :p