Seite 1 von 3
Prüfung Algorithmen und Programmierung in C
Verfasst: Do Feb 26, 2015 11:17 am
von janPhil1984
Hallo Leute,
ich habe am Montag meine erste Prüfung in AuP und habe dazu eine Frage. Sicher kennt ihr aus eigenen Prüfungen diese wunderbaren Aufgaben, wobei es darum geht, einen Weihnachtsbaum mit Sternen zu zeichnen. Oder ein Wort aus einem Char-Array als Raute auszugeben.
Ich bekomme das zwar auch soweit so gut hin, jedoch kostet es immer total viel Zeit. Kennt ihr eine allgemeine Herangehensweise, mit der man solche Aufgaben lösen kann? Ich würde mich wirklich über etwas freuen, das mir einfach ein wenig Zeit bei der Klausur spart.
Vielen Dank und schöne Grüße
Jan
Re: Prüfung Algorithmen und Programmierung in C
Verfasst: Do Feb 26, 2015 11:30 am
von cloidnerux
Hi und Willkommen im Forum
Ich würde mich wirklich über etwas freuen, das mir einfach ein wenig Zeit bei der Klausur spart.
Erfahrung und Wissen, deswegen sind Übungsaufgaben auch so wichtig.
Zudem müssen die Grundlagen sitzen, wenn man sich erst fragen muss, wie eine for-schleife Aussieht, der verschenkt Unmengen Zeit.
Ansonsten hilft die Theorie des optimalen Prozesses:
Wie viel Zeit kostet es dich, wenn alles
optimal läuft?
Du in deinem Fall also schon weißt wie alles aufgebaut wird, welche Variablen und Kontrollstrukturen du brauchst und nur noch schreiben musst.
Davon ausgehend musst du dich fragen, was dich daran hindert, genau diesen optimalen Prozess zu erreichen.
Wenn du genug darüber nachdenkst, kommst du zu dem Punkt, dass Fehler(Bugs) Zeit fressen im Debugging, das Grundlegende Überlegungen Zeit fressen(wie sieht eine for-schleife aus), dass Überlegungen wie man das ganze Lösen könnte Zeit fressen.
Wenn du nun die "Fehlerquellen" kennst, kannst du gezielt ansetzten diese zu minimieren.
Bugs wirst du nie los, aber guter Code-Stil und sinnvoller Aufbau hilft ungemein.
Die Grundlagen zu beherrschen ist ein großer Helfer, viele ähnliche Aufgaben schon einmal gelöst zu haben hilft schnell einen Ansatz zu finden.
Re: Prüfung Algorithmen und Programmierung in C
Verfasst: Do Feb 26, 2015 11:38 am
von janPhil1984
Hallo cloidnerux,
danke für deine schnelle Antwort. Die gute Nachricht ist sicher, dass ich mit der Syntax keine Probleme habe. Wenn ich jedoch das Problem der Zeichenkette als Raute nehme (gestern erst angefangen), dann sehe ich natürlich Verhältnisse zwischen Leerzeichen und Sternen mit Zeilen und Zählern (z.B.: erste Zeile Leerzeichen = Wortlänge - Zeile). Als das ganze sich dann aber umdrehte, sprich das Wort rückwerts nach unten wieder zusammenlief...da war ich raus :/
Naja...am Ende ist es wohl einfach üben, üben, üben.
Gruß Jan
Re: Prüfung Algorithmen und Programmierung in C
Verfasst: Fr Feb 27, 2015 2:01 pm
von Xin
Moin und willkommen an Board.
janPhil1984 hat geschrieben:ich habe am Montag meine erste Prüfung in AuP und habe dazu eine Frage. Sicher kennt ihr aus eigenen Prüfungen diese wunderbaren Aufgaben, wobei es darum geht, einen Weihnachtsbaum mit Sternen zu zeichnen. Oder ein Wort aus einem Char-Array als Raute auszugeben.
Ich bekomme das zwar auch soweit so gut hin, jedoch kostet es immer total viel Zeit. Kennt ihr eine allgemeine Herangehensweise, mit der man solche Aufgaben lösen kann? Ich würde mich wirklich über etwas freuen, das mir einfach ein wenig Zeit bei der Klausur spart.
Oftmals wird Programmierung als Fließbandarbeit angesehen. Man berechnet Leistung in Codezeilen oder Arbeitsstunden. Programmierung ist aber durchaus ein kreativer Prozess.
Das Ziel ist es bekannte Algorithmen zu nutzen, um unbekannte Probleme zu lösen.
Darum lernst Du Algorithmen, um Dir damit neue Algorithmen ausdenken zu können, so wie aus Worten und Grammatik werden, sich Floskeln entwickeln und Du anschließend daraus einen Roman schreiben kannst. Ein Roman ist aber eine Ansammlung von Kurzgeschichten und jede Kurzgeschichte ist eine kreative Leistung.
Folgendes ist mein Tipp und das klingt erstmal absolut trivial - ist es aber nicht:
Immer dann, wenn Du an Deine Grenzen gerätst, ist Deine Aufgabe, Deine Grenzen zu überschreiten.
Wenn Du mit den bekannten Mitteln eingegrenzt bist, musst Du entweder Deine Mittel erweitern - womit das Problem Fließbandarbeit wird - oder wenn das nicht möglich ist musst Du Deine Grenzen in Frage stellen und die Stelle finden, an denen Du sie überschreiten kannst.
Kürzlich stellte mir ein Freund folgende Frage: Du hast 8 Kugeln, wovon eine Kugel geringfügig schwerer ist. Du darfst eine Waage zweimal benutzen. Finde die schwerere Kugel.
Die Aufgabe ist nur lösbar, wenn Du einen Algorithmus findest, der über das offensichtliche hinausgeht.
Re: Prüfung Algorithmen und Programmierung in C
Verfasst: So Mär 01, 2015 3:42 pm
von nitro_45
Xin hat geschrieben:Kürzlich stellte mir ein Freund folgende Frage: Du hast 8 Kugeln, wovon eine Kugel geringfügig schwerer ist. Du darfst eine Waage zweimal benutzen. Finde die schwerere Kugel.
Die Aufgabe ist nur lösbar, wenn Du einen Algorithmus findest, der über das offensichtliche hinausgeht.
Garnicht so einfach. Allerdings ging ich auch von einer digitalen Waage aus und nicht von einer Tafelwaage (also eine mit zwei Waagschalen). Nachdem ich das wusste, war die Lösung auch nicht mehr so schwer

Re: Prüfung Algorithmen und Programmierung in C
Verfasst: So Mär 01, 2015 3:57 pm
von cloidnerux
Allerdings ging ich auch von einer digitalen Waage aus und nicht von einer Tafelwaage (also eine mit zwei Waagschalen). Nachdem ich das wusste, war die Lösung auch nicht mehr so schwer

Mit der Digitalwaage wird es tatsächlich schwierig^^
Ich hab da auch noch eine andere Aufgabe:
Man möchte testen, aus welchem Stock man ein Ei(iPhone?) fallen lassen kann, ohne das es kaputt geht. Man hat aber nur zwei Eier und 100 Stockwerke. Das Ergebnis eines Falltestes ist unabhängig von den vorhergehenden. Welcher Algorithmus liefert die geringste Worst-Case Laufzeit(maximale Anzahl Versuche)?
Re: Prüfung Algorithmen und Programmierung in C
Verfasst: So Mär 01, 2015 4:19 pm
von Xin
cloidnerux hat geschrieben:Ich hab da auch noch eine andere Aufgabe:
Man möchte testen, aus welchem Stock man ein Ei(iPhone?) fallen lassen kann, ohne das es kaputt geht. Man hat aber nur zwei Eier und 100 Stockwerke. Das Ergebnis eines Falltestes ist unabhängig von den vorhergehenden. Welcher Algorithmus liefert die geringste Worst-Case Laufzeit(maximale Anzahl Versuche)?
Aus eigener Erfahrung würde ich mit einem 1/5 Stockwerk anfangen. Das sind ca. 60cm. Meine Arbeitsplatte in der Küche ist 80cm hoch. Bisher hat das noch kein Ei überlebt.

Re: Prüfung Algorithmen und Programmierung in C
Verfasst: So Mär 01, 2015 11:48 pm
von Nemo
cloidnerux hat geschrieben:Man möchte testen, aus welchem Stock man ein Ei(iPhone?) fallen lassen kann, ohne das es kaputt geht. Man hat aber nur zwei Eier und 100 Stockwerke. Das Ergebnis eines Falltestes ist unabhängig von den vorhergehenden. Welcher Algorithmus liefert die geringste Worst-Case Laufzeit(maximale Anzahl Versuche)?
Ich komm auf 18 Versuche. Bietet jemand weniger?
Re: Prüfung Algorithmen und Programmierung in C
Verfasst: Mo Mär 02, 2015 8:39 am
von cloidnerux
Ich komm auf 18 Versuche. Bietet jemand weniger?
Ich komme auf 14.
Re: Prüfung Algorithmen und Programmierung in C
Verfasst: Mo Mär 02, 2015 9:53 am
von canlot
cloidnerux hat geschrieben:Ich komm auf 18 Versuche. Bietet jemand weniger?
Ich komme auf 14.
Ich komme auf 7, vorausgesetzt ich habe die Aufgabe verstanden und rechne das richtige
