Skytale Knackprogramm



  • Hallo erstmal!
    Bin totaler C++ Anfänger und wollte folgenden Pascal code in c++ schreiben

    PROGRAM 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 ausgibt 😞

    Schon 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


Anmelden zum Antworten