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/elseHoffentlich 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 beendenAnmerkung
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 (: heheGruß
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