ASCII Code



  • Hallo Leute,
    brauch eure Hilfe:
    ich habe eine Hü von der Schule bekommen aber habe keinen Plan wie ich das lösen soll.
    Hier die Aufgabenstellung:
    Schreibe ein Programm, welches die Ascii-Codes der Zeichen A-Z in einem Array mit 26 Elementen abspeichert.
    Danach soll das Programm die ASCII Codes und die Zeichen des Arrays ausgeben.

    Danke im Vorraus



  • Hallo,

    wo hängst du denn fest?

    Welche Sprache nutzt ihr (du bist wahrscheinlich fälschlich in "CLI mit .net" gelandet).

    ps: Was ist eine 'Hü'?



  • die Sprache ist C++
    Hü ist die Abkürzung für Hausübungdas Problem ist das ich nicht weiss, wie ich die Aufgabe angehen soll



  • @Alimessi

    Wie man ein Programm mit arrays schreibt, hast du schon in einer anderen Aufgabe gemacht.
    Auch wie man den Inhalt dann ausgeben kann.
    Daher die Frage: Wo hängst du hier fest?



  • @Jockelx wie speichere ich die ascii code in arrays. ich meine der code ist ja zeimlich lang .
    ich weiss wie man zahlen usw in arrays speichert aber weiss nd wie ascci code darin speiern soll



  • Der ASCII-Code eines Zeichens ist einfach nur eine Ganzzahl (int), d.h. du kannst auch für diese Aufgabe ein int-Array benutzen. Und für die Ausgabe des Zeichens wandelst du diese Zahl dann in ein char um (Stichwort: 'cast').



  • Mir ist auch nicht klar, was hier gemeint ist. Möglicherweise das:

    #include <iostream>
    #include <iomanip>
    
    int main()
    {
            char a = 'X';
            std::cout << a << " = " << "Dec " << (int)a << " Hex " << std::hex << (int)a << "\n";
    }
    
    


  • Abspeichern in einem Array und dann ausgeben ist nicht so effizient wie gleich alles ausgeben:

    #include <QCoreApplication>
    #include <iostream>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        for(int i = 65; i < 91; i++)
        {
            cout << i << " ";
            cout << static_cast<char>(i) <<endl;
        }
    
        return a.exec();
    }
    


  • Es geht hier um eine Programmier-Übung, um das Arbeiten mit Arrays zu lernen (nicht um Effizienz).

    PS: Warum dafür ein Qt-Projekt?



  • Stimmt! Ein reines C++ Projekt reicht (wenn ich schon über Effizienz rede).

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int arr[26];
    
        for(int i = 65; i < 91; i++)
        {
            for(int j = 0 ; j < 26 ; j++)
            {
                arr[j] = i; //Ascii-Codes der Zeichen A-Z in Array speichern
            }
            cout << i <<" ";        //Codes ausgeben
            cout << static_cast<char>(i) << endl;   //Zeichen ausgeben
        }
    
        return 0;
    }
    


  • @theAnfänger77 Jap so wirds gemacht! Bisschen zu viel Qt programmiert und ein bisschen zu wenig C++?

    Wie viele Schleifendurchgänge machst du denn da? 🙂

    Nebenbei für die Aufgabenstellung "Zeichen des Arrays ausgeben" sollte man vermutlich auch die Zeichen aus dem array holen und nicht einfach so ausgeben



  • Sorry! Hab das nicht besonders elegant gemacht!
    So ist es besser:

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int arr[26];
        int j = 0;
    
        for(int i = 65; i < 91; i++)
        {
            arr[j] = i;                                  //Ascii-Codes der Zeichen A-Z in Array speichern
            cout << i <<" ";                             //Codes ausgeben
            cout << static_cast<char>(arr[j]) << endl;   //Zeichen ausgeben
        }
    
        return 0;
    }
    

    Jetzt habe ich nur 26 Schleifendurchläufe in einer Schleife.
    Jetzt Kommen die Werte auch aus dem Array.



  • Immer noch ein kleiner Fehler enthalten...

    Und es ist unelegant, Magic Numbers zu verwenden (die Schleifenwerte und die Array-Größe sollten direkt voneinander abhängen)!



  • @theAnfänger77 sagte in ASCII Code:

    Sorry! Hab das nicht besonders elegant gemacht!
    So ist es besser:

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int arr[26];
        int j = 0;
    
        for(int i = 65; i < 91; i++)
        {
            arr[j] = i;                                  //Ascii-Codes der Zeichen A-Z in Array speichern
            cout << i <<" ";                             //Codes ausgeben
            cout << static_cast<char>(arr[j]) << endl;   //Zeichen ausgeben
        }
    
        return 0;
    }
    

    Jetzt habe ich nur 26 Schleifendurchläufe in einer Schleife.
    Jetzt Kommen die Werte auch aus dem Array.

    Und es genügt sogar ein

    int arr[1];
    

    😉



  • @Alimessi sagte in ASCII Code:

    Schreibe ein Programm, welches die Ascii-Codes der Zeichen A-Z in einem Array mit 26 Elementen abspeichert.
    Danach soll das Programm die ASCII Codes und die Zeichen des Arrays ausgeben.

    Wir üben das vlt. nochmal ... Textverständnis @theAnfänger77

    Erst abspeichern danach ausgeben.

    Klar kann man sich hier über die Sinnhaftigkeit streiten ... aber in der Klausur dürfte man ja auch nicht einfach das Programm so "optimieren", dass die Aufgabenstellung abgeändert wurde.

    P.S. Es scheint zumindest in deinem Fall sehr sinnvoll zu sein, dann wäre dir dein Fehler, den du im Code noch hast, nämlich aufgefallen 😉


Log in to reply