Übungen / Aufgaben zu C#
3 Lösungen

Primfaktorzerlegung und Potenzschreibweise
1. Schreibe eine Methode/Funktion, die jede Integer- Zahl in ihre Primfaktoren zerlegen kann
und das Ergebnis als Array/Liste zurückgibt.
Beispiel:
24 = 2*2*2*3
Lösung:
a = { 2, 2, 2, 3 }
2. Schreibe eine weitere Methode/Funktion, die die Werte des Arrays aus Aufgabe 1
in Potenzschreibweise überführt und auf dem Bildschirm ausgibt.
Das Zeichen zur Darstellung kann je nach Vorliebe/Programmiersprache variieren (^, **, h, ...).
Lösung:
2*2*2 = 2^3
3 = 3^1
Ausgabe:
2^3 * 3^1
Viel Spaß
und das Ergebnis als Array/Liste zurückgibt.
Beispiel:
24 = 2*2*2*3
Lösung:
a = { 2, 2, 2, 3 }
2. Schreibe eine weitere Methode/Funktion, die die Werte des Arrays aus Aufgabe 1
in Potenzschreibweise überführt und auf dem Bildschirm ausgibt.
Das Zeichen zur Darstellung kann je nach Vorliebe/Programmiersprache variieren (^, **, h, ...).
Lösung:
2*2*2 = 2^3
3 = 3^1
Ausgabe:
2^3 * 3^1
Viel Spaß
2 Lösungen

Anzahl möglicher Ballons (balloons)
In einem String kommen unsortiert Zeichen vor, mit denen man das Wort „balloon“ bilden soll.
Erstelle eine Methode/Funktion, die als Ergebnis die Anzahl der möglichen Wortbildungen ausgibt,
wobei jeder Buchstabe (Zeichen) nur einmal verwendet werden darf.
Beispiel 1:
s = "nlaebolko"
Lösung: 1
Beispiel 2:
s = "loonbalxballpoon"
Lösung: 2
Beispiel 3:
s = „balbalonn“
Lösung: 0
Viel Spaß
Erstelle eine Methode/Funktion, die als Ergebnis die Anzahl der möglichen Wortbildungen ausgibt,
wobei jeder Buchstabe (Zeichen) nur einmal verwendet werden darf.
Beispiel 1:
s = "nlaebolko"
Lösung: 1
Beispiel 2:
s = "loonbalxballpoon"
Lösung: 2
Beispiel 3:
s = „balbalonn“
Lösung: 0
Viel Spaß
2 Lösungen

Unikat- Liste aus zwei Zeichenketten/Sätzen
Gegeben sind zwei Zeichenketten (a, b) bestehend aus Kleinbuchstaben und Leerzeichen.
Es sollen die Wörter in ein neues String- Array überführt werden,
die genau einmal in beiden Zeichenketten vorkommen (Unikate).
Beispiel 1:
a = „der pfannkuchen schmeckt süß“
b = „der pfannkuchen schmeckt salzig“
Lösung: { „süß“, „salzig“ }
Beispiel 2:
a = „apfel apfel“
b = „banane“
Lösung: { „banane“ }
Beispiel 3:
a = „der pfannkuchen schmeckt“
b = „der pfannkuchen schmeckt“
Lösung: { }
Erstelle eine Methode/Funktion, die solch ein String- Array zurückgibt.
Viel Spaß
Es sollen die Wörter in ein neues String- Array überführt werden,
die genau einmal in beiden Zeichenketten vorkommen (Unikate).
Beispiel 1:
a = „der pfannkuchen schmeckt süß“
b = „der pfannkuchen schmeckt salzig“
Lösung: { „süß“, „salzig“ }
Beispiel 2:
a = „apfel apfel“
b = „banane“
Lösung: { „banane“ }
Beispiel 3:
a = „der pfannkuchen schmeckt“
b = „der pfannkuchen schmeckt“
Lösung: { }
Erstelle eine Methode/Funktion, die solch ein String- Array zurückgibt.
Viel Spaß
2 Lösungen

Turmspringen/Wasserspringen (Punktewertung)
Bei internationalen Wettkämpfen bewerten in Einzelwettbewerben sieben Wettkampfrichter die Sprünge.
Jeder vergibt pro Sprung 0 bis 10 Punkte, mit Schritten von halben Punkten.
Die zwei höchsten und niedrigsten Wertungen werden gestrichen.
Die verbleibenden drei Wertungen werden addiert und das Ergebnis mit dem Schwierigkeitsgrad multipliziert.
Das Endresultat entspricht der erzielten Punktzahl des Springers.
Beispiel 1:
Schwierigkeitsgrad: 2,1
Punkte: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Gestrichen: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Wertung: 7,5 + 7,5 + 8,0 = 23 * 2,1 = 48,3
Beispiel 2:
Schwierigkeitsgrad: 1,6
Punkte: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Gestrichen: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Wertung: 7,5 + 7,5 + 7,5 = 22,5 * 1,6 = 36
Erstelle eine Methode/Funktion, mit der die obige Aufgabenstellung gelöst werden kann.
Viel Spaß
Jeder vergibt pro Sprung 0 bis 10 Punkte, mit Schritten von halben Punkten.
Die zwei höchsten und niedrigsten Wertungen werden gestrichen.
Die verbleibenden drei Wertungen werden addiert und das Ergebnis mit dem Schwierigkeitsgrad multipliziert.
Das Endresultat entspricht der erzielten Punktzahl des Springers.
Beispiel 1:
Schwierigkeitsgrad: 2,1
Punkte: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Gestrichen: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Wertung: 7,5 + 7,5 + 8,0 = 23 * 2,1 = 48,3
Beispiel 2:
Schwierigkeitsgrad: 1,6
Punkte: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Gestrichen: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Wertung: 7,5 + 7,5 + 7,5 = 22,5 * 1,6 = 36
Erstelle eine Methode/Funktion, mit der die obige Aufgabenstellung gelöst werden kann.
Viel Spaß
2 Lösungen

Figur zurück zum Ausgangspunkt
Eine Figur bewegt sich auf einer 2D- Spielfläche (Koordinatensysteme). Dabei startet sie an der Position (0, 0).
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
Die Figur kann folgende Bewegungen im Einzelschritt durchführen: Right (R), Left (L), Up (U) und Down (D).
Anhand einer bestimmten Sequenz soll geprüft werden, ob sich die Figur am Ende wieder an der Ausgangsposition befindet.
Beispielsequenzen:
s = „UD“: Wahr
s = „LURD“: Wahr
s = „LLDD“: Falsch
s = „LLUUURDDRD“: Wahr
s = „LDRRLRUULR“: Falsch
Schreibe eine Methode/Funktion, die obige Aufgabenstellung realisieren kann.
Viel Spaß
1 Lösung

Produkt der 2 größten Elemente eines Arrays
Erstelle eine Methode/Funktion, die das Produkt der beiden größten Elemente eines Arrays berechnet.
array = { 1, 7, 5, 9, 2, 3 }
Lösung:
(7 * 9) = 63
Je nach Vorliebe bzw. Programmiersprache können natürlich auch Listen oder Vektoren genutzt werden.
Viel Spaß
array = { 1, 7, 5, 9, 2, 3 }
Lösung:
(7 * 9) = 63
Je nach Vorliebe bzw. Programmiersprache können natürlich auch Listen oder Vektoren genutzt werden.
Viel Spaß
3 Lösungen

Palindromische Primzahlen
Man erzeuge eine Liste aller Primzahle <= 1 Milliarde (1E+9), die in dezimaler Präsentation umgekehrt gelesen ebenfalls eine Primzahl sind (Palindromische Primzahlen). Z. B. 13; 31 ist ebenfalls Primzahl.
Viel Spaß!
Viel Spaß!
0 Lösungen
Alphametik – ein Logikrätsel
Gegeben sei folgende Addition:
I B X B J J + U B I J U J = J O T F M O
Die Aufgabe besteht darin, jedem Buchstaben genau die Ziffer zwischen 0 bis 9 zuzuordnen
I = 1, U= 2, F = 3, J = 4, X = 5, M = 6, T = 7, O = 8, B = 9
damit die Addition aufgeht. Hier ist das Ergebnis:
1 9 5 9 4 4 + 2 9 1 4 2 4 = 4 8 7 3 6 8
Gibt es eine oder mehrere Lösungen? Im Internet findet Ihr weitere Alphametiken.
Viel Erfolg – viel Spaß.
I B X B J J + U B I J U J = J O T F M O
Die Aufgabe besteht darin, jedem Buchstaben genau die Ziffer zwischen 0 bis 9 zuzuordnen
I = 1, U= 2, F = 3, J = 4, X = 5, M = 6, T = 7, O = 8, B = 9
damit die Addition aufgeht. Hier ist das Ergebnis:
1 9 5 9 4 4 + 2 9 1 4 2 4 = 4 8 7 3 6 8
Gibt es eine oder mehrere Lösungen? Im Internet findet Ihr weitere Alphametiken.
Viel Erfolg – viel Spaß.
0 Lösungen
MVP (eine kleine GUI-Anwendung)
Schreiben Sie doch mal eine kleine GUI-Anwendung,...
...die sich alle 5 Minuten (einstellbar) auf dem Monitor bemerkbar macht, eine voreingestellte Meldung von sich gibt und dann Eingaben ermöglicht. In dem Moment, wo sie erscheint, sollte sie allerdings nach Möglichkeit noch nicht den Tastaturfocus an sich reißen.
Der Benutzer wird dann auf die Anwendung umschalten und eher kurze Texteingaben machen, diese werden zeitrichtig in eine auch später auswertbare Datenbasis geschrieben, die möglichst einfach zugänglich sein soll - in Richtung flatfiles, keine DB oder DB nur im Hintergrund und optional. Mit UNIX-Tools auswertbar (cat, grep, awk etc).
Multiplatform-Fähigkeit bzw. Linux als (ein) Zielsystem: Sie können gerne erstmal in C# entwickeln, wenn das hilft, u.a. zur Abstimmung der GUI, es soll aber später mindestens auch auf Linux laufen. (z.B. Portierung auf Python/tkinter möglich, und/oder technisch einfache Systemvoraussetzungen -> auf Linux lauffähig unter WINE)
Von der Auslegung her darf es erstmal einfach sein, form follows function und möglichst schnell Benutzertest (mich) auch schon im Alphastadium. Sie können auch zweigleisig fahren - eine Variante "schön", eine Variante klassische FuE, Ecken und Kanten, aber möglichst schnell in die Funktionserprobung kommen. Jetzt hab ich aber genug vorweggenommen, Sie haben sicher eigene Ideen.
Betse Grüße
Meinezukunft
...die sich alle 5 Minuten (einstellbar) auf dem Monitor bemerkbar macht, eine voreingestellte Meldung von sich gibt und dann Eingaben ermöglicht. In dem Moment, wo sie erscheint, sollte sie allerdings nach Möglichkeit noch nicht den Tastaturfocus an sich reißen.
Der Benutzer wird dann auf die Anwendung umschalten und eher kurze Texteingaben machen, diese werden zeitrichtig in eine auch später auswertbare Datenbasis geschrieben, die möglichst einfach zugänglich sein soll - in Richtung flatfiles, keine DB oder DB nur im Hintergrund und optional. Mit UNIX-Tools auswertbar (cat, grep, awk etc).
Multiplatform-Fähigkeit bzw. Linux als (ein) Zielsystem: Sie können gerne erstmal in C# entwickeln, wenn das hilft, u.a. zur Abstimmung der GUI, es soll aber später mindestens auch auf Linux laufen. (z.B. Portierung auf Python/tkinter möglich, und/oder technisch einfache Systemvoraussetzungen -> auf Linux lauffähig unter WINE)
Von der Auslegung her darf es erstmal einfach sein, form follows function und möglichst schnell Benutzertest (mich) auch schon im Alphastadium. Sie können auch zweigleisig fahren - eine Variante "schön", eine Variante klassische FuE, Ecken und Kanten, aber möglichst schnell in die Funktionserprobung kommen. Jetzt hab ich aber genug vorweggenommen, Sie haben sicher eigene Ideen.
Betse Grüße
Meinezukunft
1 Lösung

Anagramme (Schüttelwörter) gruppieren
Von einem Anagramm oder auch deutsch Schüttelwort spricht man,
wenn man durch Umstellen der vorhandenen Zeichen eines Wortes ein neues sinnvolles Wort bilden kann.
Oft werden Anagramme mit Palindromen verwechselt, wobei ein Anagramm auch gleichzeitig
ein Palindrom sein kann, z.B.: LAGERREGAL – REGALLAGER.
ANNA – ANNA hingegen ist kein Anagramm, sondern ein Palindrom,
obwohl es wegen des Gleichklangs ANA oft irrtümlich so bezeichnet wird.
Gegeben ist eine Liste bestehend aus verschiedenen Wörtern.
list = { "eat", "tea", "tan", "ate", "nat", "bat" };
Schreibe eine Methode/Funktion, die die Liste list auf Anagramme hin überprüft
und die Ergebnisse in einer neuen Liste gruppiert zurückgibt.
result = { {"bat"}, {"nat", "tan"}, {"ate", "eat", "tea"} }
Die Reihenfolge der Rückgabe in der List ist nicht entscheidend.
Wörter, die keine Anagramme bilden, sollen ebenfalls als Einzelwort in die Ergebnisliste aufgenommen werden.
Je nach Programmiersprache oder Vorliebe können statt Listen auch Arrays oder Tupel verwendet werden.
Viel Spaß
wenn man durch Umstellen der vorhandenen Zeichen eines Wortes ein neues sinnvolles Wort bilden kann.
Oft werden Anagramme mit Palindromen verwechselt, wobei ein Anagramm auch gleichzeitig
ein Palindrom sein kann, z.B.: LAGERREGAL – REGALLAGER.
ANNA – ANNA hingegen ist kein Anagramm, sondern ein Palindrom,
obwohl es wegen des Gleichklangs ANA oft irrtümlich so bezeichnet wird.
Gegeben ist eine Liste bestehend aus verschiedenen Wörtern.
list = { "eat", "tea", "tan", "ate", "nat", "bat" };
Schreibe eine Methode/Funktion, die die Liste list auf Anagramme hin überprüft
und die Ergebnisse in einer neuen Liste gruppiert zurückgibt.
result = { {"bat"}, {"nat", "tan"}, {"ate", "eat", "tea"} }
Die Reihenfolge der Rückgabe in der List ist nicht entscheidend.
Wörter, die keine Anagramme bilden, sollen ebenfalls als Einzelwort in die Ergebnisliste aufgenommen werden.
Je nach Programmiersprache oder Vorliebe können statt Listen auch Arrays oder Tupel verwendet werden.
Viel Spaß
4 Lösungen

Erstes einzelnes Zeichen in einem String
Erstelle eine Methode/Funktion, mit der man den Index des ersten einzeln
vorkommenden Zeichens in einem String (Text) ermitteln kann.
Groß- und Kleinschreibung soll nicht unterschieden werden.
Hinweise:
String ist nullbasiert.
Wenn es keine Lösung gibt, soll -1 ausgegeben werden.
Beispiele:
trainyourprogrammer => 0 (t)
lovegenericlists => 1 (o)
lovelollorosso => 2 (v)
otto => -1
Viel Spaß
vorkommenden Zeichens in einem String (Text) ermitteln kann.
Groß- und Kleinschreibung soll nicht unterschieden werden.
Hinweise:
String ist nullbasiert.
Wenn es keine Lösung gibt, soll -1 ausgegeben werden.
Beispiele:
trainyourprogrammer => 0 (t)
lovegenericlists => 1 (o)
lovelollorosso => 2 (v)
otto => -1
Viel Spaß
2 Lösungen

Und noch mehr Quersummen
Von einer positiven Integer- Zahl soll solange die Quersumme gebildet werden
bis die Zahl einstellig geworden ist.
Die einstellige Zahl soll als Ergebnis ausgegeben werden.
Beispiel:
739 => 7 + 3 + 9 = 19
19 => 1 + 9 = 10
10 => 1 + 0 = 1
Viel Spaß
bis die Zahl einstellig geworden ist.
Die einstellige Zahl soll als Ergebnis ausgegeben werden.
Beispiel:
739 => 7 + 3 + 9 = 19
19 => 1 + 9 = 10
10 => 1 + 0 = 1
Viel Spaß