Testbeispiele



  • Hey Leute...
    Nach 3 mal Verschieben haben wir morgen endlich unseren ersten Programmier Test *freu*
    Und ich wollte euch fragen ob ihr mir vielleicht Beispiele geben könnt die ich versuche zu lösen.
    Habe gegooglet, nach meiner Schulstufe und Art von Schule die ich mache, und natürlich nach der Sprache C... Habe aber viel zu schwere Beispiele gefunden, die ich mit meinem Wissensstand* nicht lösen kann.

    * Mein Wissensstand? Also wir haben gemacht:
    - Arrays, keine extra Beispiele gemacht sondern in Beispielen verwendet.
    - StrBefehle in Funktionen selber geschrieben: strlen, strcmp, strcat...
    - Switch/Case, aber nur so nebenbei, damit haben wir bis jetzt nur ein Menü geschrieben, nichts aufregendes
    - fopen, also aus einer txt Datei rauslesen und extern bearbeiten. Bin mir nicht sicher aber intern haben wir auch ganz wenig gemacht.
    - Schleifen
    - If/else

    Hoffentlich sind unter euch ein paar kreative Köpfe dabei, die mir Beispiele geben können 😛

    Gruß
    c.nub



  • Hier meine spontanten Ideen... Ob es für dich lösbar ist, kann ich schlecht einschätzen 🙂

    Aufgaben

    1. Schreiben Sie ein Programm, das den Inhalt einer Textdatei (s. Anmerkung) in einem Array speichert (Je Zeile einen Eintrag).
    Die Datei enthält nie mehr als 5 Einträge!

    2. Geben Sie das Inhalt des Arrays aus.

    3. Schreiben Sie eine Funktion, die die Länge eines Strings ermittelt:

    int stringLen(const char *str);
    

    4. Ändern Sie den Programmcode aus 2) so, das für jede Zeile zusätzlich die Länge ausgegeben wird. Nutzen Sie dafür die in 3) geschriebene Funktion. Sollten Sie Aufgabe 3 nicht lösen können, so nutzen Sie die im Unterricht kennengelernte Standardfunktion.

    5. Fragen Sie den Benutzer welche Zeile er aus der Datei ansehen möchte und geben Sie die entsprechende Zeile aus. Überprüfen Sie die Gültigkeit (z.B. keine negativen Zahlen) der Eingabe und geben Sie gegebenfalls entsprechende Fehlermeldungen aus.

    6. Bieten Sie dem Benutzer ein Menü an und führen sie nach der Auwahl die entsprechende Aktion durch. Fangen Sie auch hier mögliche Fehleingaben ab:

    - Menu -
    1. Programm von vorne beginnen
    2. Programm beenden

    Anmerkung

    Erstellen Sie zum Testen ihres Programms eine Textdatei Eingabe.txt mit folgendem Inhalt:

    Zeile1
    Zeile2
    Zeile3
    Zeile4
    Zeile5



  • Wow das ist ein wirklich gutes Beispiel, danke danke danke!
    Eine Frage zu 2.: Soll in Array1 Zeile1 gespeichert werden? Habe ich nicht so ganz verstanden.
    Ich beginne schon mal. Kreativer. xD Hast dich gleich angesprochen gefühlt was (: hehe

    Gruß
    c.nub



  • #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main()
    {
    	// Aufgabe 1
    	char buf[100];
    	char zeilen[5][100];
    	int pos;
    	FILE *datei;
    
    	datei = fopen("Eingabe.txt", "r");
    
    	if (!datei)
    	{
    		printf("Datei konnte nicht geoffnet werden.\n");
    		return 1;
    	}
    
    	pos = 0;
    	while (fgets(buf, 100, datei))
    	{
    		strcpy(zeilen[pos], buf);
    		pos++;
    	}
    
    	fclose(datei);
    
    	// Aufgabe 2
    	for (pos = 0; pos < 5; pos++)
    	{
    		printf("%s", zeilen[pos]);
    	}
    
    	return 0;
    }
    

    Eventuell war das doch nicht so einfach, aber von diesem Punkt aus müsstest du jetzt klar kommen.



  • char zeilen[5][100];
    

    Das haben wir noch nicht gemacht, aber aus dem Code denke ich zu sehen, dass in der Variable zeilen 5 Fächer sind... und in jedem der 5 Fächer sind nochmal 100?



  • Ja, das Array kann 5 Zeilen fassen, aber jede Zeile kann maximal 100 Zeichen haben.

    Hier übrigens die komplette Lösung:

    http://nopaste.info/e1f9f1de28.html

    Ich kann dir nicht groß helfen, aber vielleicht hilft es dir ja irgendwie doch weiter 🙂

    Viel Glück für den Test 🙂


Anmelden zum Antworten