Übungen / Aufgaben zu C#

1 Lösung Lösung öffentlich
Isomorphe Strings (Mustergleichheit)
Fortgeschrittener - C# von JKooP - 06.03.2021 um 17:43 Uhr
Als isomorph bezeichnet man zwei oder mehrere Strings (Texte),
die zwar inhaltlich unterschiedlich sind, aber dennoch das gleiche Muster aufweisen.

Achtung:
Gleiche Buchstaben bedeuten Musterwiederholung! ABAB ist nicht ABCD, aber CDCD.

Beispiele:
s1 = ABBA; s2 = OTTO => true
s1 = PAPER; s2 = TITLE => true
s1 = EGG; s2 = ADD => true
s1 = BADC; s2 = BABA => false
s1 = BBBAAABA; s2 = AAABBBBA => false

Erstelle eine Funktion/Methode, die zwei Strings (Texte) hinsichtlich Isomorphie vergleicht.

Viel Spaß
6 Lösungen Lösungen öffentlich
Zweierpotenz (Power Of Two)
Anfänger - C# von JKooP - 06.03.2021 um 11:51 Uhr
Erstelle eine Methode/Funktion, mit der man bestimmen kann,
ob die übergebene Zahl als Ganzzahl- Potenz (Integer) zur Basis 2 geschrieben werden kann.

Beispiele:

Zahl: 1 => true
Lösung: 0, denn 2 hoch 0 = 1

Zahl: 16 => true
Lösung: 4, denn 2 hoch 4 = 16

Zahl: 3 => false
Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl 3 ergibt

Für Fortgeschrittene:
Die Aufgabe ohne Zuhilfenahme der eingebauten Logarithmusfunktionen lösen.

Viel Spaß
1 Lösung Lösung öffentlich
Magisches Quadrat (magic square)
Fortgeschrittener - C# von JKooP - 28.02.2021 um 10:54 Uhr
Von einem Magischen Quadrat spricht man, wenn
- alle Zahlen nur einmal vorkommen und die Summe der Zahlen
- aller Zeilen,
- aller Spalten sowie
- der Diagonalen immer gleich ist.

Beispiele für Magische Quadrate sind als Bilder angehängt.

Schreibe eine Methode/Funktion, mit der man überprüfen kann, ob es sich bei einer
beliebig großen quadratischen Matrix um ein solch magisches Quadrat handelt.
Zusätzlich kann, bei positiver Prüfung, auch die gesuchte Summe ausgegeben werden.

Zur Darstellung der Matrix können je nach Programmiersprache oder Vorliebe Arrays,
Vektoren oder auch generische Listen verwendet werden.

Viel Spaß
5 Lösungen Lösungen öffentlich
Fröhliche Zahlen (Happy Number)
Fortgeschrittener - C# von JKooP - 28.02.2021 um 10:24 Uhr
Von einer fröhlichen Zahl spricht man, wenn eine natürliche Ausgangszahl (Integer)
nach einer bestimmten Iterationsvorschrift am Ende den Zielwert 1 hat.

Die Iterationsvorschrift hier:
Die Summe der Quadrate aller Ziffern einer Zahl.
Wiederholen des Prozesses mit der neu entstandenen Zahl, bis am Ende
das Ergebnis entweder 1 (true) ist oder die Schleife unendlich weiterläuft (false).

Beispiel Glückliche Zahl:
Zahl 19
1² + 9² = 82
8² + 2² = 68
6² + 8² = 100
1² + 0² + 0² = 1

Beispiel unendlich:
Zahl 2
2² = 4
4² = 16
1² + 6² = 37
3² + 7² = 58
5² + 8² = 89
8² + 9² = 145
...

Aufgabe 1 (mittel):
Erstelle eine Methode/Funktion, die als Ergebnis bei einer Glücklichen Zahl den Wert true
und ansonsten false zurückgibt. Dabei können mehrere Schleifen ineinander verschachtelt werden.

Aufgabe 2 (schwieriger):
Wie Aufgabe 1, aber mit nur einer Schleife.

Viel Spaß
2 Lösungen Lösungen öffentlich
Produkt der Werte eines Arrays
Fortgeschrittener - C# von JKooP - 21.02.2021 um 12:15 Uhr
Gegeben ist ein Array bestehend aus Integer-Werten. Aus diesen Werten soll das Produkt errechnet werden,
aber immer ausgenommen der Zahl, welche sich an der Stelle des Durchlaufs befindet.
Ist die letzte Stelle erreicht, geht’s von vorne weiter (Umlauf).

Beispiel:
Array = {1, 2, 3, 4}

Lösung:
Array = {24, 12, 8, 6}

Erklärung:
1. Durchlauf: 2 * 3 * 4 = 24 (ohne 1)
2. Durchlauf: 3* 4 * 1 = 12 (ohne 2)
3. Durchlauf: 4 * 1 * 2 = 8 (ohne 3)
4. Durchlauf: 1 * 2 * 3 = 6 (ohne 4)

Schreibe eine Funktion/Methode, mit der ein Array aus Integer-Werten aufgenommen werden kann und die Produkte als Integer-Array zurückgegen werden.

1. Aufgabe (leicht):
Verschachteln mehrerer Schleifen

2. Aufgabe (schwieriger):
das Ganze mit nur einem Schleifendurchlauf realisieren

Statt Arrays können, je nach Programmiersprache und Vorliebe, natürlich auch Listen oder Vektoren verwendet werden.

Viel Spaß
1 Lösung Lösung öffentlich
Duplikate bis auf Dopplungen aus Liste entfernen
Anfänger - C# von JKooP - 21.02.2021 um 11:24 Uhr
Gegeben ist eine sortierte Liste, welche alle gängigen Datentypen aufnehmen kann.
Dabei sind alle Werte des gleichen Typs. Statt der Liste können auch Arrays genutzt werden.

Beispiele:
List<int> {1, 1, 1, 2, 2, 3}
List<char> {‘a’, ‘a’, ‘b’, ‘c’, ‘c’, ‘c’}

Aus dieser Liste sollen jetzt alle Duplikate entfernt werden, wobei hier jeder Wert 2-mal vorkommen darf.

Lösung:
List<int> {1, 1, 2, 2, 3}
List<char> {‘a’, ‘a’, ‘b’, ‘c’, ‘c’}

Schreibe eine Methode/Funktion, die eine Liste/Array aufnimmt, die Duplikate entfernt
und diese dann wieder als Rückgabewert oder Referenz zurückgibt.

Viel Spaß
1 Lösung Lösung öffentlich
Duplikate aus Liste/Array entfernen
Anfänger - C# von JKooP - 20.02.2021 um 16:36 Uhr
Gegeben ist eine unsortierte Liste, welche alle gängigen Datentypen aufnehmen kann.
Dabei sind alle Werte des gleichen Typs. Statt der Liste können auch Arrays genutzt werden.

Beispiele:
List<int> {1, 4, 1, 3, 1, 4}
List<char> {‘a’, ‘b’, ‘a’, ‘a’, ‘c’}

Aus dieser Liste sollen jetzt alle Duplikate entfernt und die Liste anschließend sortiert werden.

Lösung:
List<int> {1, 3, 4}
List<char> {‘a’, ‘b’, ‘c’}

Schreibe eine Methode/Funktion, die eine Liste/Array aufnimmt, die Duplikate entfernt und diese dann sortiert wieder zurückgibt.

Viel Spaß
2 Lösungen Lösungen öffentlich
Position im Array gesucht
Anfänger - C# von JKooP - 18.02.2021 um 20:06 Uhr
Gegeben ist ein sortiertes Array mit einer beliebigen Anzahl von Integer-Zahlen und eine Integer-Zahl,
deren Position/Index ermittelt werden soll. Ist die Zahl nicht vorhanden,
soll ebenfalls die Position bestimmt werden, an der sie im sortierten Array eingeordnet werden müsste.

Es können aber auch, je nach Programmiersprache bzw. Vorliebe, auch andere Daten-Container wie z.B. Listen oder Vektoren genutzt werden.

Beispiele:

Array = [1, 3, 5, 7, 9]
Zahl = 7
Lösung: 3

Array = [0, 1, 3, 7, 9]
Zahl = 2
Lösung: 2

Array = [1, 4, 6, 8, 9]
Zahl = 0
Lösung: 0

Array = [1, 3, 5, 7]
Zahl = 9
Lösung: 4

Hinweis: Array ist nullbasiert!

Erstelle eine Funktion/Methode, mit der die oben genannte Problemstellung gelöst werden kann.

Viel Spaß
2 Lösungen Lösungen öffentlich
Matrix mal anders - rückwärts auslesen
Anfänger - C# von JKooP - 13.02.2021 um 11:22 Uhr
Gegeben ist eine beliebig große quadratische Zeichenmatrix im Format char[ ][ ],
die alle Größen bis auf 0x0 annehmen kann.
Das heißt, die horizontale und vertikale Größe sind gleich.

Ziel ist es, nicht wie gewohnt die Matrix von oben nach unten und von links nach rechts auszulesen,
sondern umgekehrt von unten nach oben und von rechts nach links.
Die ausgelesenen Zeichen sollen zu einem String zusammengefasst werden.

Beispiel für eine 3x3-Matrix: siehe Grafik 3x3_matrix
char [ ][ ] matrix = [ [ 'R', 'E', 'B' ], [ 'M', 'E', 'T' ], [ 'P', 'E', 'S' ] ]
Lösung: SEPTEMBER

Beispiel für eine 4x4- Matrix: siehe Grafik 4x4_matrix
char [ ][ ] matrix = [ [ 'N', 'I', 'L', 'O' ], [ 'R', 'A', 'C', 'T' ], [ 'B', 'E', 'I', 'L' ], [ 'S', 'N', 'A', 'H' ] ]
Lösung: HANSLIEBTCAROLIN

Erstelle hierzu eine Methode/Funktion, mit der man zum oben beschriebenen Ziel kommt.
3 Lösungen Lösungen öffentlich
Liste aller zukünftigen Palindromtage in diesem Jahrtausend
Anfänger - C# von hollst - 12.02.2021 um 18:29 Uhr
Ein Datum (z. B. 12. Februar 2021) nennt man Palindromdatum, wenn es als Zahl geschrieben ein Palindrom ist (12022021, vorwärts gelesen identisch mit rückwärts gelesen).

Man schreibe ein Programm, das alle zukünftige Palindromtage bis zum 31. Dezember 2999 ausgibt.

Viel Spaß
2 Lösungen Lösungen öffentlich
Ausgeglichenes Fahren
Fortgeschrittener - C# von JKooP - 12.02.2021 um 10:43 Uhr
Ein Fahrtenschreiber notiert, wie oft ein Pkw links bzw. rechts abgebogen ist.
In der anschließenden Auswertung soll ermittelt werden,
wie oft der Pkw in Folge ausgeglichen nach rechts (R) und links (L) gefahren ist.
Dabei können beliebig viele Rechts- bzw. Linksfahrten kombiniert werden (RRRLLL oder LLRR).

Beispiele:

RLRRLLRLRL
Lösung: 4 => RL RRLL RL RL

RLLR
Lösung: 2 => RL LR

LLLLRRRR
Lösung: 1 => LLLLRRRR

RLRRRLLRLL
Lösung: 2 => RL RRRLLRLL
RLRRRLLRLL RLLR ist keine Lösung, da vorher nicht ausgeglichen gefahren wurde (RR)

LLRLLL
Lösung: keine Lösung
LLRLLL LR ist keine Lösung, da vorher nicht ausgeglichen gefahren wurde (L)

LLRRLL
Lösung: 1 => LLRRLL
LLRRLL LR und RL sind keine Lösungen, da vorher nicht ausgeglichen gefahren wurde (L)

1. Aufgabe (mittel):
Erstelle eine Methode/Funktion, mit der man die Anzahl der ausgeglichenen Fahrten ermittelt.

2. Aufgabe (schwieriger):
Gib zusätzlich auch alle Lösungen aus.

Viel Spaß
2 Lösungen Lösungen öffentlich
Text gemäß Vorlage neu sortieren
Anfänger - C# von JKooP - 12.02.2021 um 09:53 Uhr
Ein durcheinandergeratener Text soll gemäß einer Vorlage (Array) neu sortiert werden.

Dazu soll eine Methode/Funktion erstellt werden, mit der man die Zeichen des
Ausgangstextes gemäß den vorgegebenen Positionen im Array neu anordnet.

Ausgangstext = "programmyourtrainer"

Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ]

Zieltext = "trainyourprogrammer"

Erläuterung:

Das erste Zeichen des Ausgangstextes (p) muss gem. Array an die 9. Position.
Das Zeichen (y) muss an die 5. Position. Achtung: Array ist nullbasiert!

_ _ _ _ _ y _ _ _ p _ _ _ _ _ _ _ _


Viel Spaß