Übungen / Aufgaben zu C#

2 Lösungen Lösungen öffentlich
Währungsrechner in einer Konsole
Fortgeschrittener - C# von Gelöschte Person - 30.03.2019 um 19:12 Uhr
Die Aufgabe lautet:
Programmiere einen Währungsrechner der Jede Währung aus der untenfolgenden Liste in ein andere Währung der Liste Umrechnet.

Währungen:
Euro
US-Dollar
Lek
Pfund
D-Mark
Yen
Australischer Dollar

Natürlich darfst du auch mehr Währungen verwenden.
0 Lösungen
Rechtschreibprüfung / Konsolenprogramm
Profi - C# von Gelöschte Person - 30.03.2019 um 18:03 Uhr
Es soll eine Rechtschreibeprüfung programmiert werden.
Sie soll Textdatein auf Rechtschreibfehler überprüfen und die Fehler Anzeigen.
Die Rechtschreibeprüfung soll folgende Sachen Überprüfen:
Großschreibung am Satzanfang
Generelle Rechtschreibung

Bei der generellen Rechtschreibung soll das Programm die Wörter in der Datei Wörterbuch suchen.
Wenn es das Wort nicht gibt soll auf der Konsole folgende Fehlermeldung erscheinen:
Fehler! Folgendes Wort (hier wird das nichtgefundene Wort angezeigt) wurde nicht gefunden!

Falls ein Wort am Satzanfang kleingeschrieben ist soll folgendes angezeigt werden:
Fehler! (Falsches Wort) schreibt man groß weil es ein Satzanfang ist!

Am Ende solle die Anzahl der Fehler angezeigt werden.

Zusatz:
Nach der Rechtschreibprüfung wird eine Datei Namens: Fehlerprotokol.txt erstellt.
In ihr wird das Wort und die Zeile angegeben in der sich ein Fehler befindet
0 Lösungen
Schiffe Versenken / Konsolenprogramm
Profi - C# von Gelöschte Person - 30.03.2019 um 17:34 Uhr
Zu Programmieren ist ein Schiffe versenken Game für die Konsole

Es soll folgende funktionen haben:
Computergegner
2 Spieler
0 Lösungen
Quiz für die Konsole
Fortgeschrittener - C# von Gelöschte Person - 30.03.2019 um 16:44 Uhr
Es soll ein Quiz für die Konsole programmiert werden. Dabei sollen die Fragen und Antworten in einer Datei stehen. Natürlich könnt ihr auch ein Punktesystem einfügen. Es ist aber kein muss.
Die Fragen sollten in einer Zufälligen Reihenfolge aufgerufen werden. In einer Runde darf jede Frage nur einmal vorkommen.

Als Beispiel:

Quiz
src
libs
bin
fragen
frage1
frage2
frage3
antworten
antwort1
antwort2
antwort3
1 Lösung Lösung öffentlich
Tic-Tac-Toe für die Konsole
Fortgeschrittener - C# von Gelöschte Person - 30.03.2019 um 14:03 Uhr
Ein Tic-Tac-Toe Spiel für die Konsole.
Folgende Moduse sollte es geben:
2 Spieler
1 Spieler gegen Computer
1 Lösung Lösung öffentlich
Goldener-Schnitt-Konstante mit beliebiger Genauigkeit berechnen
Anfänger - C# von hollst - 14.03.2019 um 09:04 Uhr
Man berechne die Goldener-Schnitt-Konstante 1.6180339887...

(https://de.wikibooks.org/wiki/Formelsammlung_Mathematik:_Wichtige_Zahlen) link


mit einer Genauigkeit von mindestens 100 Nachkommastellen.
3 Lösungen Lösungen öffentlich
Klassisches Bingo mit Verzögert gezogenen Nummern
Fortgeschrittener - C# von maxi72501 - 11.03.2019 um 14:57 Uhr
In dieser Aufgabe soll man ein Klassisches Bingo erstellen wo man eine zufällige Karte erhält wo auf einem 5 * 5 Feld Zahlen von 1 bis 75 verteilt liegen. Zu beachten ist das in der ersten Spalte zahlen von 1 bis 15, in der zweiten Spalte 16 bis 30, in der Dritten 31 bis 45, in der vierten 46 bis 50 und in der letzten 51 bis 75.
0 Lösungen
Interaktiv Königinswache (Agon) spielen
Fortgeschrittener - C# von hollst - 08.03.2019 um 15:13 Uhr
Agon ist ein Zweimannbrettspiel, dass vor gut 200 Jahren in England oder Frankreich kreiert wurde. Das Brett besteht aus 91 Hexagonen, die um ein Zentralfeld in fünf "Ringen" angeordnet sind. Jeder Spieler hat sechs Wachen und eine Königin, daher wird das Spiel manchmal auch Königinswache genannt. Das Spielbrett und die Ausgangsstellung sind im Bild_1 dargestellt.

Es wird abwechselnd gezogen, Weiß beginnt (oder es wird ausgelost, wer beginnt). Dabei gelten folgende Zugregeln:

1. Jeder Stein kann einen Schritt entweder auf seinem aktuellen Ring nach "rechts" oder "links" ausführen bzw. vorwärts in Richtung eines niederwertigen Ringes, niemals jedoch rückwärts auf ein höherwertiges Ringfeld (Bild_2). Das avisierte Feld muss natürlich frei sein, "Schlagen" ist nicht erlaubt. Der nullte Ring (Zentralfeld) darf nur von einer Königin betreten werden.

2. Von besonderer, spielstratigischer Bedeutung sind sogenannte Sandwichkonstellationen auf dem Brett. Eine solche Konstellation entsteht, wenn ein Stein (in gerader Linie) von zwei generischen Steinen eingeschlossen ist (Bild_3). Züge, die zu einer Selbsteinschließung führen würden, sind allerdings verboten. Ist man jedoch durch einen gegnerischen Zug eingeschlossen worden, muss diese Situation mit dem nächsten Zug sofort aufgelöst werden:

a) Ist der eingeschlossene Stein ein Wächter, muss er auf ein freies Feld des Außenringes gesetzt werden (allerdings nicht auf ein Sandwichfeld!).
b) Ist der eingeschlossene Stein die Königin, so kann sie auf irgendein freies Feld des Brettes gesetzt werden mit Ausnahme des Zentralfeldes.
c) Sind mehrere Steine "gesandwicht" (z. B. W-S-(W)-S-W, wobei (W) bedeutet, dass sich im letzten Zug dort ein weißer Stein platziert hat), so ist dies entsprechend Zug um Zug aufzulösen. Erst danach kann man wieder frei und willkürlich ziehen.

Das Ziel für jeden Spieler ist es, seine Dame mit Hilfe der Wachen auf dem Zentralfeld zu platzieren und sie durch Besetzung des innersten Ringes mit Wachsteinen vollständig zu schützen (Bild_4 + Bild_5). In diesem Fall ist das Spiel gewonnen.

Die Programmieraufgabe bestehe nun darin, einen Code zu entwickeln, der es ermögtlicht, Argon interaktiv auf dem Desktop zu spielen. Die Züge sollen dabei mit der Maus per Pick-Move-Drop ausgeführt werden. Eine Überwachung des vorgesehenen Zuges auf Gültigkeit ist selbstredend zu integrieren.

Optional:
Der Gipfel der Programmierkunst wäre natürlich, wenn einer der zwei Spieler der Computer wäre.

So, mit dieser harten Nuss wünsche ich viel Spaß und Erfolg!
0 Lösungen
Glücksrad programmieren
Anfänger - C# von Blasius18 - 03.03.2019 um 23:02 Uhr
Projekt „Glücksrad programmieren“
Folgende Features sollte das Programm enthalten:
Das ‚Glücksrad’
Mehrere verschiedene Werte sowie Zusatzfunktionen wie ‚Bankrott’ werden nach dem ‚Drehen des Glücksrades’ ausgegeben, bis das Glücksrad bei einer Funktion stehen bleibt.
Die Werte sollten (wie bei dem echten Glücksrad) immer in der gleichen Reihenfolge erscheinen
Die Werte sollten sich zuerst schnell und dann immer langsamer ändern, bis sie bei einem Wert stehenbleiben
Es dürfen nicht immer gleich viele Werte in einer Sequenz hintereinander laufen, bis das Glücksrad bei einem Wert stehen bleibt, sondern das Glücksrad dreht sich mal weiter / mal weniger weit…
Für’s Erste und zum Ausprobieren kann auch zunächst nur mit dem gleichen Wert oder Bankrott gearbeitet werden…
Besonders ausgetüftelte Varianten können z.B. folgende Zusatzfeature anbieten
Bieten eine grafische Ausgabe des Glücksrades
Bieten die Möglichkeit stärker / schwächer zu drehen
Hinterlegen das ‚Drehen’ mit Sound

Der Spielverlauf
Es spielen 3 Spieler, immer reihum. Sie sollten sich zunächst sehr genau überlegen, wie (in welchen Variablen) sie die 3 Spieler ablegen.
Jeder Spieler hat einen Spielstand, der zu Beginn des Spiels 0 beträgt. Ist ein Spieler am Zug, so dreht er zunächst am Glücksrad. Folgende Möglichkeiten ergeben sich:
Geldbetrag: Der Kandidat kann durch Nennen eines Konsonanten einen Buchstaben des gegebenen Rätsels erraten. Ist der Konsonant im Rätsel enthalten, wird dem Kandidaten pro Buchstabe der erdrehte Betrag auf seinem Konto gutgeschrieben.
Nach einem richtig gelösten Konsonanten darf der Kandidat entweder einen Vokal kaufen (wenn er über genügend Guthaben verfügt) oder das Rätsel lösen, indem er den gesuchten Begriff oder Antwortsatz vollständig in die Textfelder einträgt und den Button ‚Rätsel lösen’ klickt.
Beides darf er auch ohne das Glücksrad zu drehen zu Beginn seiner Raterunde.
Rät der Kandidat einen Konsonanten oder kauft einen Vokal, der sich nicht mehr unter den verbleibenden Buchstaben befindet, bzw. ist die von Ihm gegebene Lösung falsch, so ist der nächste Kandidat an der Reihe.
Extradreh: Wann immer zum nächsten Kandidaten gewechselt werden soll (s. o.), kann dies der Spieler mit dem Extradreh verhindern und erneut am Rad drehen oder den Begriff erneut lösen. Der Extradreh gilt bis zum Ende der Spielrunde, in welchem er erdreht wurde.
Aussetzen: Der Kandidat darf keinen Konsonanten nennen oder das Rätsel lösen und übergibt sofort an den nächsten Kandidaten.
Bankrott: Das bisher erspielte Guthaben des Kandidaten wird auf 0 gesetzt und der nächste Kandidat ist an der Reihe.
Ende einer Rätselrunde
Wurde der Begriff gelöst, so ist die Runde vorbei. Nur der Gewinner, also derjenige, der das Rätsel gelöst hat, bekommt den erspielten Geldbetrag auf sein Spielekonto gutgeschrieben. Die Geldbeträge der anderen Kandidaten verfallen.
Ende des Spiels
Nach 5 Rätselrunden ist das Spiel beendet. Gewonnen hat, wer am Ende am meisten Geld auf seinem Konto hat.
0 Lösungen
Gewinnwahrscheinlichkeit bei Cayley's Mousetrap
Fortgeschrittener - C# von hollst - 13.02.2019 um 10:56 Uhr
Mousetrap ist der Name eines Spiels, das vom englischen Mathematiker Arthur Cayley 1878 erfunden wurde [1].
Wie Cayley auf den Namen Mousetrap (Mausefalle) gekommen ist, ist unbekannt. Das Spiel hat große Ähnlichkeit mit
dem im achtzehnten Jahrhundert in Frankreich beliebten Kartenspiel TREIZE ("treize" heißt übersetzt "dreizehn").

In Cayley's Spiel werden Karten mit den Nummern 1 bis n (z. B. n = 13 (Rommé-Bridge-Canasta-Blatt ohne Joker))
gemischt und zu einem Kreis mit ihren Nummern (Farben) nach oben angeordnet.
Bei z. B. 13 Karten stehen Ass für 1, Bube für 11, Dame für 12 und König für 13.

Dann beginnt der Spieler zu zählen, startend bei der zuerst gelegten Karte und mit der Zahl 1. Hat die erste Karte nicht den Wert 1,
wechselt er zur nächsten Karte im Kreis (Uhrzeigerrichtung) und prüft, ob sie den Wert zwei hat. Dies wird solange fortgeführt,
bis die "Zählzahl" mit dem Wert einer Karte übereinstimmt. In diesem Fall wird die entsprechende Karte aus dem Kreis entfernt und
die Zählung bei der folgenden Karte wieder mit 1 begonnen. Dies wiederholt man solange bis entweder keine Karten mehr
auf dem Tisch liegen (Gewinn) oder beim Zählen die Zahl n + 1 erreicht wurde (Verlust).

Beim französchen TREIZE hat mat Wetten darauf abschließen können, ob eine gegebenen Startmischung zum Gewinn oder zum Verlust führt.

Wir wollen die Gewinn-/Verlustwahrscheinlichkeit programmtechnisch berechnen (n < 13) bzw. abschätzen (13 <= n <= 52).

Warum die Unterscheidung n < 13 und n >= 13? Da Fakultät(13) = 13! = 6.227.020.800 (Anzahl aller möglichen Mischungen bei 13 Karten)
bereits größer ist als z. B. C#-ulong.MaxValue (4.294.967.295) kommen wir sehr schnell an die Grenzen der praktischen Berechenbarkeit.
Daher bei Kartensätzen mit mehr als 12 Karten lediglich eine Abschätzung der Wahrscheinlichkeit. Natürlich kann jeder diese "Grenze"
für sich selber festlegen.

Viel Spaß!

[1] A. Cayley: On the game of Mousetrap. Quarterly Journal of Pure and Applied Mathematics, VOL. XV, 1878, pp 8 – 10
3 Lösungen Lösungen öffentlich
Random Walk der Liouville Serie
Fortgeschrittener - C# von hollst - 16.01.2019 um 16:20 Uhr
Die Liouville Serie ist eine Zahlenfolge, die nur aus den Zahlen +1 und -1 besteht.

Sie beginnt mit {1, -1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1 ...}. Die ersten 10.000
Glieder sind in der Datei liouville_folge.txt gespeicher und könnten meinetwegen eingelesen werden.

Wer die Glieder der Folge L(n) selber berechnen will, muss wie folgt vorgehen:

1.) Per Definition wird L(1) => +1 gesetzt.
2.) Man zerlege n in all seine Primfaktoren (z. B. 14 = 2 * 7 oder 32 = 2 * 2 * 2 * 2 * 2).
3.) L(n) => +1, falls die Anzahl der Primfaktoren eine gerade Zahl ist, ansonsten L(n) => -1
(also L(14) => +1; L(32) => -1).

Man fasse nun L(n) als eine Schrittfolge auf, die eine Weg in der x-y-Ebene beschreibt.
Ausgehend von der Koordinate (x = 0, y = 0) wird zunächt der x-Wert um Eins erhöht
(entsprechend L(1) = 1), anschließend wird der y-Wert um Eins erniedrigt (entsprechend L(2) = -1)
und immer so fort bis zu L(nmax) (nmax von mir aus 10.000 oder mehr).

Der sich so ergebene Weg (siehe Bild 1 für nmax = 100.000, die Pixelfarbe wechselt zur besseren Illustration alle 10.000 Schritte)
ist gefühlsmäßig ein Zufallsweg (Random Walk). Ob dem wirklich so ist, weiß man bis heute nicht.

Die Programmieraufgabe bestehe nun darin, den Liouville-Weg graphisch darzustellen.

Falls jemand fragt "Was soll der Unfug?": Nun, man geht davon aus, das die Liouville Serie ein Schlüssel
zur Lösung der Riemann-Hypothese (RH) sein könnte. Bekanntlich sind zum Beweis bzw. zur Widerlegung der RH
noch immer eine Million US-Dollar ausgeschrieben.

Also, dann viel Erfolg! Ich drücke die Daumen für den Einemilliongewinn.
2 Lösungen Lösungen öffentlich
Texte auf Unterschiede prüfen, diese dann Ausgeben
Anfänger - C# von Exception - 12.01.2019 um 08:49 Uhr
Hallo zusammen,

heute sollt ihr zwei Texte miteinander vergleichen und etwaige Unterschiede herausfinden.

Die gefundenen Unterschiede sollen dann in beiden Texten markiert werden (farblich o.ä.).
Sollten beide Texte identisch sein, kann dies auch per Messagebox o.ä. ausgegeben werden.
Es ist im Endeffekt WinMerge für Arme.

Wer absolut keine Vorstellung hat, wie das später in etwa aussehen kann, der möge hier klicken.

Viel Spaß und ein schönes Wochenende :)
1813503

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.