Informatik Testat in C Programmierung --ich brauch eure Hilfe--



  • Ehrlich gesagt programmiere ich immer nur in C++, deswegen hatte ich schon gedacht, dass solche Fehler da sind 🙂

    Verbessert:

    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    // Definieren der Konstanten (Passwörter und Dateipfade)
    #define FIRST_PASSWORD "Schnitzel"
    #define SECOND_PASSWORD "Kartoffel"
    #define CALCULATOR "C:\\Windows\\System32\\calc.exe"
    #define NOTEPAD "C:\\Windows\\System32\\notepad.exe"
    
    // Prüft und gibt zurück, wie viele der beiden eingegebenen Passwörter richtig sind
    unsigned char check_passwords(const char pass1[20], const char pass2[20])
    {
        unsigned char correct_input;
        // Die temporäre Zählvariable wird initialisiert
        correct_input = 0;
        // Prüfe alle möglichen Passwort-Eingabe-Kombinationen und erhöhe die Zählvariable bei einer richtigen Eingabe um 1
        if (!strcmp(pass1, FIRST_PASSWORD))
        {
            correct_input++;
            if (!strcmp(pass2, SECOND_PASSWORD))
                correct_input++;
        } else if (!strcmp(pass1, SECOND_PASSWORD)) {
            correct_input++;
            if (!strcmp(pass2, FIRST_PASSWORD))
                correct_input++;
        } else if (!strcmp(pass2, FIRST_PASSWORD)) {
            correct_input++;
        } else if (!strcmp(pass2, SECOND_PASSWORD)) {
            correct_input++;
        }
        // Wert zurückgeben
        return correct_input;
    }
    
    // Führt die passende Reaktion auf die Eingabe aus
    void evaluate_input(unsigned char correct_input)
    {
        // Switch-Anweisung für die verschiedene Anzahl der richtigen Eingaben:
        switch (correct_input)
        {
            case 0:
                // Kein richtiges Passwort: Nur Ausgabe einer Nachricht
                printf("Sie haben kein Passwort richtig eingegeben. Das Programm wird beendet.\n");
                break;
            case 1:
                // Ein richtiges Passwort: Ausgabe einer Nachricht und Starten von Notepad
                printf("Sie haben ein Passwort richtig eingegeben. Notepad wird gestartet.\n");
                system(NOTEPAD);
                break;
            case 2:
                // Zwei richtige Passwörter: Ausgabe einer Nachricht und Starten vom Taschenrechner
                printf("Sie haben beide Passwörter richtig eingegeben. Taschenrechner wird gestartet.\n");
                system(CALCULATOR);
                break;
        }
        // Verhindern, dass sich das Programm sofort schließt (Warten auf einen Tastendruck)
        getchar();
    }
    
    int main()
    {
        char pass1[20];
        char pass2[20];
        // Einlesen der beiden Passwörter durch scanf (maximale Länge von 20)
        printf("Geben Sie das erste Passwort ein: ");
        scanf("%19s", pass1);
        printf("Geben Sie das zweite Passwort ein: ");
        scanf("%19s", pass2);
        // Passende Reaktion auf die Eingabe ausführen
        // Parameter ist die Anzahl der richtig eingegebenen Passwörter
        evaluate_input(check_passwords(pass1, pass2));
        return 0;
    }
    

  • Mod

    "C:\\Windows\\System32\\calc.exe"

    Funktioniert nicht auf dem Rechner des Profs, der sein Windowsverzeichnis Win95 genannt hat.

    Durchgefallen. Du darfst dich im nächsten Semester noch einmal zur Prüfung anmelden.



  • "C:\\Windows\\System32\\calc.exe"

    Funktioniert nicht auf dem Rechner des Profs, der sein Windowsverzeichnis Win95 genannt hat.

    Durchgefallen. Du darfst dich im nächsten Semester noch einmal zur Prüfung anmelden.

    Ist doch so in der Aufgabe vorgegeben :p



  • if ()
    {
      system("calc"); // Wenn in %PATH% kein system32 steht, 
    }
    else
    {
      system("notepad"); // haben wir vermutlich ein UNIX-System. oO
    }
    


  • Racoon schrieb:

    Hallo zusammen, ... stehe vor einem Problem... muss in Informatik ein Programm in C schreiben, habe aber von der ganzen Materie keinen blassen Schimmer! ... Meine Frage ist nun ob mir jemand das Programm welches ich in den Anhang kopiert habe schreiben könnte... Würde mich auch entschädigen. Vielen Dank!

    Willst du nach deiner Ausbildung als Informatiker etwa Software-Designer oder IT-Berater werden? 😕



  • berniebutt schrieb:

    Racoon schrieb:

    Hallo zusammen, ... stehe vor einem Problem... muss in Informatik ein Programm in C schreiben, habe aber von der ganzen Materie keinen blassen Schimmer! ... Meine Frage ist nun ob mir jemand das Programm welches ich in den Anhang kopiert habe schreiben könnte... Würde mich auch entschädigen. Vielen Dank!

    Willst du nach deiner Ausbildung als Informatiker etwa Software-Designer oder IT-Berater werden? 😕

    Nein Ich mache ein Ba-Studium Studienrichtung Maschinenbau über der Dekra. Bin jetzt Ende 2. Semester und das Thema Info ist somit für mich abgehakt. Nach dem Studium mache ich intern den Prüfingenieur incl. amtlich anerkannten Sachverständiger. Ich komme aus der KFZ Schwarte, sprich KFZ Mechatronic gelernt und anschließend den KFZ Techniker Meister. Mit Informatik geschweige Programmieren hatte ich noch nie was zu tun. Und innerhalb 6 Vorlesungen erlernt man das auch nicht so nebenher.

    Ich bedanke mich viel mals bei euch fürs schreiben!!!
    Wo kann ich mir "Scincilla" downloaden??

    Mfg Michel



  • Ich glaube du meinst eher Scintilla, welches du einfach bei Google finden kannst 🙂



  • Hallo Racoon! Ist schon ok - ich hatte dich in eine andere Ecke pepackt. Dann ziehst du eben morgen unsere Fahrzeuge aus dem Verkehr, weil diese den Prüfansprüchen nicht genügen wollen? So ein Abgasprüfgerät zeigt idiotensicher grün oder rot, da musst du nicht mehr programmieren können! 🕶



  • Ja genau so in der Art... Bin eben dann Prüfer und Gutachter... da muss ich das mit dem programmieren nicht zwingend beherschen! Vielen vielen Dank nochmal.

    Hab mir das Scintilla gerade gezogen nun stehe ich wieder vor dem Problem wie starte ich das Programm?

    Habe es ins verzeichnis "C:/Info/Testat.c" kopiert

    Wenn ich im DOS in das Verzeichnis "Info" wechsele und das Programm mit "gcc testat.c" öffnen möchte kommt folgendes...

    http://imageshack.us/photo/my-images/215/bildtestat.png/



  • 1. Installiere http://sourceforge.net/projects/mingw/files/
    2. Öffne die "MinGW Shell" (Alle Programme)
    3. Gehe in das Verzeichnis in dem die Datei "programm.c" oder wie du die auch immer genannt hast liegt.
    4. Eingabe:
    gcc -o programm.exe programm.c
    5. programm.exe starten. (Doppelklick)



  • Gut dann probier ich das mal... warum kann ich eigentlich das nicht mit Scintilla als Programm.c abspeichern und anschließend per "gcc proramm.c" starten?

    In den Vorlesungen haben wir das immer so getätigt..?!



  • Scintilla ist doch nur ein Texteditor oder wie sehe ich das? Ein Computer kann dein C nicht verstehen, du musst es erst durch einen Compiler übersetzen lassen. - gcc ist ein möglicher Compiler, der wird dann mit MinGW installiert.



  • berniebutt schrieb:

    Hallo Racoon! Ist schon ok - ich hatte dich in eine andere Ecke pepackt. Dann ziehst du eben morgen unsere Fahrzeuge aus dem Verkehr, weil diese den Prüfansprüchen nicht genügen wollen? So ein Abgasprüfgerät zeigt idiotensicher grün oder rot, da musst du nicht mehr programmieren können! 🕶

    Lass mich raten, ein typisches Vorurteil...du dachtest er studiert etwas was mit W anfängt und mit tik endet 😉 😕

    Lg freeG



  • So was studier ich auch. Böses Vorurteil. Wobei...

    Egal, Du solltest nach dem Studium programmieren können. Wenn Du das nicht kannst, sind die Jobchancen schon Mal um ein Vielfaches schlechter. Man sagt zwar immer, man kann damit ach so viel machen, aber... bei Wirtschaftsinformatik ist das schon nur sehr teilweise richtig, bei Informatik noch viel weniger eh.



  • printf("Geben Sie das erste Passwort ein: ");
        scanf("%19s", pass1);
        printf("Geben Sie das zweite Passwort ein: ");
        scanf("%19s", pass2);
    

    Schrott.
    Was passiert, wenn der Nutzer mehr als 19 Zeichen beim ersten Passwort eingibt?
    Wenn du schon den MinGW-gcc bemühst, dann verwende ihn mit

    gcc -Wall -ansi -pedantic bla.c -o bla.exe
    

Anmelden zum Antworten