Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Inatrox

Frischling

  • »Inatrox« ist der Autor dieses Themas

Beiträge: 61

Wohnort: Dresden

  • Private Nachricht senden

1

24.05.2016, 18:55

[C++] Aufgaben zum Üben gesucht!

Hey Leute,

ich weiß das ist jetzt eigentlich keine Frage, aber hat jemand von euch vielleicht ein paar etwas Komplexere Aufgaben zum Üben. So etwas wie Türme von Hanoi und nicht "Ändere den Text von cout damit..." bla bla bla. Wäre noch cool wenn ihr vielleicht kurz erklären könntet worum es in der Aufgabe dann auch noch genau geht.

MfG Inatrox
cout << "Programmieren muss sein" << endl;

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

24.05.2016, 20:37

Insertion-Sort,
Selection-Sort,
Bubble-Sort,
Merge-Sort,
Heap-Sort,
Quick-Sort,
jeweils erst für Arrays implementieren und dann mal für beliebige STL-Container per Iterator. Ist schon mal eine gute Aufgabe.

Primzahlen bis 10.000 ausgeben. Dafür keine Liste suchen und einfach per cout ausgeben sondern selbst einen Algorithmus überlegen wie man bestimmen kann ob eine Zahl nun eine Primzahl ist. Wenn das läuft kannst du mal das Sieb von Eratosthenes ansehen und nach bauen.

Eine Funktion die prüft ob ein Wort (String) ein Palindrom ist,
Eine Funktion die prüft ob eine Zahl ein Palindrom ist,

Fibonacci Zahlen berechnen,

Klasse für einen Baum Knoten erstellen. Vielleicht einfach mal für Binärbaume, also welche die 0, 1 oder 2 Kinder haben. Zusätzlich können die Baumknoten ja einfach eine Zahl abspeichern. Dann damit weiter:
Knoten in Präoder ausgeben,
Knoten in Inorder ausgeben,
Knoten in Postorder ausgeben,
Binäre Suche,

Dann könntest du versuchen weitere Datenstrukturen zu entwickeln. Zum Beispiel:
Einfach verkettete Liste,
Doppelt verkettete Liste,
Stack,
Queue,
vielleicht mal selbst überlegen wie std::vector wohl intern aufgebaut ist und mal selbst an so etwas versuchen.

Etwas zusammenhängendere Programme:
Galgenmännchen ("einfach" als Konsolenprogramm), das kann ja beliebig komplex sein. Zum Beispiel könnten Wörter aus einer Textdatei geladen werden,
Vielleicht mal mit einer Grafik Bibliothek spielen, SDL2 oder SFML2 wären da Möglichkeiten. Damit könntest du dann folgendes machen:
Conways Game of Life,
Wireworld,
Pong,
Breakout,
Snake,
Minesweeper,
Sokoban,
Tetris,

Das sind schon mal einige Aufgaben. Ist alles nicht unbedingt ganz einfach aber du wollst ja auch was zu tun haben ;)

edit: Wenn du die Liste abgearbeitet hast kannst du dich melden und wir finden sicherlich noch einige spannende Aufgaben. Interessant ist auch https://projecteuler.net/ wobei die Aufgaben vor allem für den Anfang nicht ganz einfach sind. Kannst natürlich trotzdem gern mal durchgucken. Hilfreich ist es zu gucken wie viele andere Leute welche Aufgabe gelöst haben. Je mehr Leute eine Aufgabe gelöst haben umso einfacher sind sie "vermutlich". Trifft natürlich nicht immer zu, ist aber schon mal ein Indikator.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Inatrox

Frischling

  • »Inatrox« ist der Autor dieses Themas

Beiträge: 61

Wohnort: Dresden

  • Private Nachricht senden

3

24.05.2016, 20:46

Danke. Damit kann ich schon mal was anfangen ;)
cout << "Programmieren muss sein" << endl;

4

24.05.2016, 21:14

Womöglich auch ein Programm, welches einen Term nimmt und ihn ausrechnet, wie ein Taschenrechner. Dabei sollen Operatoren und Klammern natürlich beachtet werden, wie man es kennt.
Damit lernst du, Algorithmen in Code umzusetzen, Klassen, Polymorphie, container der stl, smartpointer und weiteres abzuwenden.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

24.05.2016, 21:55

Womöglich auch ein Programm, welches einen Term nimmt und ihn ausrechnet, wie ein Taschenrechner. Dabei sollen Operatoren und Klammern natürlich beachtet werden, wie man es kennt.
Damit lernst du, Algorithmen in Code umzusetzen, Klassen, Polymorphie, container der stl, smartpointer und weiteres abzuwenden.

Taschenrechner sind ne super Sache. Für den Anfang reicht ja vielleicht erst mal einer der mit umgekehrter polnischer Notation arbeitet. Das vereinfacht das parsen ziemlich wenn man damit noch keine Erfahrung hat.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

6

24.05.2016, 22:35

Habe auf meiner Seite ein paar klassische Beispiele. Keine Raketenforschung aber gut für die Grundlagen. Fange halt von hinten an, die ersten werden dir zu leicht sein ;)

http://www.kleincodiert.at/aufgaben.php?selected=lang

7

24.05.2016, 23:03

Um dann mal etwas nicht klassisches zu bringen ...

CodinGame

Die sog. Puzzle dort, sind allgemeine Aufgabenstellungen, für die man (in einer beliebigen Programmiersprache) ein Programm schreiben soll,
welches diese löst. Diesen Code "submitted" man dann und er durchläuft verschiedene Test-Cases (meist noch mit einer schönen Animation dazu),
besteht deine Lösung alle Test-Cases hast du das Puzzle erfolgreich absolviert.
Zum Ansporn gibt es noch ein Achievement-System und ein Ranking dazu.
Ich selbst habe alle einfach und mittleren Puzzle gelöst und es hat mir echt Spaß gemacht ... an den schweren sitzt man dann aber etwas länger :)

Ich finde solche Aufgaben mitunter besser oder zumindest eine gute Ergänzung zu den klassischen Aufgaben ... da du wie bei den meisten realen Problemen
keinen Lösungsweg vorgegeben kommst (implementieren sie Bubble-Sort !), sondern dir selbst Gedanken machen musst mit welchen Mitteln du das Problem lösen
kannst.

Einziges Manko, deren Browser IDE ist Müll, aber es gibt ein Browser Plugin von CodinGame mit dem man dann seine jeweilige Lieblings-IDE nutzen kann.

8

25.05.2016, 12:52

Erwähnt man Codingame, darf man Codefights nicht vergessen. Vom Prinzip das gleiche, nur kompetitiver.
An der Nintendo-Challenge von Codingame hab ich aber immernoch echt hart zu knabbern, die ist aktuell mein Everest.

MfG
Check

Werbeanzeige