Übungen / Aufgaben zu C#

5 Lösungen Lösungen öffentlich
Divisionsrest (Modulo) aus einer Zahl und ihrer Ziffern
Anfänger - C# von JKooP - 11.02.2021 um 19:17 Uhr
Ziel soll es sein, eine beliebige Integer-Zahl dahingehend zu überprüfen,
ob die Zahl dividiert durch jede ihrer Ziffern immer den Rest 0 ergibt (Modulo = mod).

Dazu soll eine Methode/Funktion erstellt werden, die zwei Integer-Zahlen (Min, Max) aufnimmt
und alle Lösungen im angegebenen Bereich (Min-Max) als Integer-Array zurückgibt.

Beispiel:

Min = 1
Max = 20
Lösung: = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15 ]

Erläuterung (Auszug):

Zahl 9: 9 mod 9 = 0 => true (gilt für jede einstellige Zahl)
Zahl 10: 10 mod 1 = 0; 10 mod 0 = 10 => false, da nicht beide den Rest 0 haben
Zahl 12: 12 mod 1 = 0; 12 mod 2 = 0 => true
Zahl 14: 14 mod 1 = 0; 14 mod 4 = 2 => false, da nicht beide den Rest 0 haben

Viel Spaß
1 Lösung Lösung öffentlich
Kontaktliste erstellen WindowsForms
Anfänger - C# von Lucamaestro1 - 10.02.2021 um 23:44 Uhr
Erstelle eine Windows-Forms-Anwendung für eine Kontaktliste:
es sollen Personen gespeichert werden (Vorname, Nachname)
es können Personen

hinzugefügt
gelöscht
bearbeitet
gesucht


werden.

Es soll möglich sein, die gesamte Kontaktliste auszugeben und diese Liste in eine TXT-Datei zu speichern. Wichtig dabei: Die Liste in der TXT-Datei soll sich nach Abschluss aller Änderungen wieder automatisch geändert werden.
3 Lösungen Lösungen öffentlich
Summe einzeln vorkommender Zahlen
Anfänger - C# von JKooP - 09.02.2021 um 20:00 Uhr
Gegeben ist ein Array, welches beliebig viele Integer- Zahlen beinhaltet.
Erstelle eine Methode/Funktion, mit der man die Summe aller einzeln im Array vorkommenden Zahlen berechnen kann.

arr1 = { 1, 2, 3, 1, 2 } => Summe = 3

arr2 = { 1, 2, 3, 4, 5 } => Summe = 15

arr3 = { 1, 2, 3, 3, 2, 1 } => Summe = 0

Viel Spaß
3 Lösungen Lösungen öffentlich
Ermittlung der Anzahl fairer Würfel
Fortgeschrittener - C# von hollst - 03.02.2021 um 13:01 Uhr
Zwei Würfel A und B nennt man fair, wenn im statistischen Mittel Würfel A gegenüber B genauso oft gewinnt wie umgekehrt. Das ist bei den normalen Spielwürfeln, deren sechs Spielflächen jeweils mit den Zahlen von 1 bis 6 belegt sind, in der Regel der Fall, wenn kein Würfel gezinkt ist (sei hier vorausgesetzt).

Wir nehmen jetzt den Fall an, dass die insgesamt zwölf Spielflächen der zwei Würfel nicht zweimal mit jeweils von 1 bis 6, sondern jeweils mit sechs unterschiedlichen Zahlen aus dem Intervall von 1 bis 12 belegt sind. D. h. hat man sich bei Würfel A für sechs verschiedenen Zahlen aus 1 ... 12 entschieden, so wird B mit den verbleibenden sechs Zahlen belegt. Damit gibt es sehr viele Fälle, bei denen keine zwei faire Würfel entstehen würden, bspw. wenn Würfel A mit 1 ... 6 und Würfel B mit 7 ... 12 belegt wären. In diesem Beispiel gewänne Würfel B immer gegen Würfel A. Würde man allerdings Würfel A mit 1, 2, 3, 10, 11, 12 und Würfel B mit 4 ... 9 belegen, so hätte man wieder ein faires Würfelpaar. Neben der gerade genannten zwei Flächenbelegungen gibt es allerdings weitere, die ebenfalls fair sind.

Die Programmieraufgabe bestehe darin, mittels Simulation alle Flächenbelegungen für zwei Würfel mit den Zahlen von 1 bis 12 zu ermitteln, bei denen die Würfel fair sind.
2 Lösungen Lösungen öffentlich
Seriennummer Euro- Banknoten überprüfen (bis 2013)
Anfänger - C# von JKooP - 26.01.2021 um 10:26 Uhr
Jede Banknote enthält eine eindeutige Seriennummer, bestehend aus 12 Zeichen
mit folgender alphanumerischer Signatur (ab 2013 abweichend):
LNNNNNNNNNNJ (z.B. X17291528696)

L: Ländercode als Buchstabe von A bis Z (z.B. X für Deutschland, N für Österreich…)
N: 10 Ziffern von 0 bis 9
J: Prüfziffer von 1 bis 9

Berechnung der Prüfziffer:

Der Ländercode muss in eine Zahl umgewandelt werden.
Diese ergibt sich aus der Position des Buchstabens im Alphabet. (A = 1, B = 2; … X = 24)
Dann wird die Quersumme aus der entstandenen Zahl des Ländercodes und den 10 folgenden Ziffern ohne Prüfziffer gebildet.
241729152869 => 2+4+1+7+2+9+1+5+2+8+6+9 = 56
Es wird der Rest (R) der Division durch 9 ermittelt
R = 56 Modulo 9 = 2
und dann der Prüfwert (P).
P = 8 – R => 8 – 2 = 6
Wenn P = 0, dann ist J = 9, ansonsten ist J = P.
X17291528696 => gültige Banknote!

Aufgabe:

Schreibe ein Programm, welches folgende Ergebnisse liefert:
1. Prüfen, ob es sich bei der eingegebenen Seriennummer um die richtige Signatur handelt.
2. Generieren der Prüfziffer J aus dem Ländercode und den folgenden 10 Ziffern.
3. Prüfen, ob es sich bei Eingabe einer Seriennummer um eine Euro- Banknote handelt.
4. Ausgabe des zugehörigen Landes der Euro- Banknote (siehe NZB-Kennung)

Viel Spaß
3 Lösungen Lösungen öffentlich
Iteriertes Querprodukt
Anfänger - C# von JKooP - 24.01.2021 um 16:44 Uhr
Das Querprodukt einer Zahl ähnelt der Berechnung der Quersumme,
nur dass die Ziffern nicht addiert, sondern miteinander multipliziert werden.

3784 => 3 * 7 * 8 * 4 = 672

Nun soll aus dem Ergebnis wiederum das Querprodukt berechnet werden.

672 => 6 * 7 * 2 = 84

Und immer so weiter, bis nur noch eine Ziffer übrigbleibt.

84 => 8 * 4 = 32
32 => 3 * 2 = 6

Die Ziffer, die am Ende übrigbleibt, nennt man „multiplikative Ziffernwurzel“.
Die Anzahl der Schritte (Iterationen) wird als "Beharrlichkeit" bezeichnet.

Schreibe ein Programm, mit dem es möglich ist, sowohl die Beharrlichkeit als auch die multiplikative Ziffernwurzel einer beliebigen Integer- Zahl auszugeben.

Eine ausführliche Beschreibung findet man hier.

Viel Spaß
2 Lösungen Lösungen öffentlich
Gleichwertige Zahlenpaare zählen/auflisten
Anfänger - C# von JKooP - 09.01.2021 um 16:17 Uhr
Erstelle eine Methode/Funktion, mit der es möglich ist, aus einem beliebig großen Array/Liste
die Anzahl aller gleichwertigen Zahlenpaare auszugeben.
Wer möchte, kann natürlich die Zahlenpaare bzw. Indizes zusätzlich mit ausgeben.

Beispiele:

[1, 2, 3, 1, 1, 3] => 4 gleiche Zahlenpaare
mit den Indizes: (0, 3), (0, 4), (3, 4), (2, 5)
und den Lösungen: (1, 1), (1, 1), (1, 1), (3, 3)

[1, 1, 1, 1] => 6 gleiche Zahlenpaare
mit den Indizes: (0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)
und den Lösungen: (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1)

[1, 2, 3, 4] => 0 gleiche Zahlenpaare

Hier gibt es verschiedene Herangehensweisen:

Lösung 1 (einfach): Verschachteln mehrerer Schleifen
Lösung 2 (schwieriger): nur eine Schleife

Vielleicht kann man es sogar mittels Fakultät und Binomialkoeffizient berechnen?!
Ich habe dafür ad hoc auch noch keine Lösung. Es gibt hier bestimmt die eine oder andere gute Idee.

Viel Spaß
1 Lösung Lösung öffentlich
Feiertage in Deutschland
Anfänger - C# von JKooP - 03.01.2021 um 15:06 Uhr
Die Feiertage sind vorüber – doch die nächsten stehen schon vor der Tür.
Da kann es nicht schaden, mal einen Blick in die Zukunft zu werfen.

Es soll ein Programm entwickelt werden, mit dem es möglich ist,
alle Feiertage (mit Bezeichnung und Datum) eines gewählten Bundeslandes für eine bestimmte Jahreszahl auszugeben.

Dabei sollen sowohl die festen als auch die beweglichen Feiertage berücksichtigt werden.
Ebenfalls soll es die Möglichkeit geben, die gesetzlichen Feiertage für alle Bundesländer auszugeben.

Wer möchte, kann natürlich auch noch die regionalen Feiertage wie z.B. Rosenmontag oder die - wie für einige Beamte üblichen - Feiertage wie z.B. Heilig Abend und Silvester einbringen.

Beispiel für Aufruf:

[datum, bezeichnung] FEIERTAGE(jahr, bundesland, optional: beamter/rosenmontag)

Eine Übersicht zu den einzelnen Bundesländern und den gesetzlichen Feiertagen gibt es hier.
4 Lösungen Lösungen öffentlich
Berechnung Kfz-Steuer (Deutschland 2021)
Anfänger - C# von JKooP - 15.12.2020 um 19:35 Uhr
Schreibe eine Methode/Funktion, mit der es möglich ist, die Kfz- Steuer sowohl für Benzin-, als auch Dieselfahrzeuge
ab dem 01.01.2021 für Deutschland zu berechnen.

Übergeben werden sollen die Parameter: Otto- o. Dieselfahrzeug, Hubraum in ccm, CO2 in g.

Als Ergebnis soll die Gesamtsteuer in Euro fürs Jahr ausgegeben werden.

Eine ausführliche Berechnungshilfe findet man hier!

Viel Spaß
1 Lösung Lösung öffentlich
Ternäre Logik (Dreiwertige Logik)
Fortgeschrittener - C# von JKooP - 02.12.2020 um 17:20 Uhr
Statt der bekannten Wahrheitswerte TRUE (t) und FALSE (f) gibt es noch einen weiteren Wert: DON’T CARE (x).
Dies wird als Dreiwertige Logik bezeichnet.

für x gilt zusätzlich bei Junktoren zur bekannten Aussagenlogik:

Negation:
NOT x => x

Konjunktion:
t AND x => x
f AND x => f
x AND x => x

Disjunktion:
t OR x => t
f OR x => x
x OR x => x

und darüber hinaus:

Inklusion:
A -> B => (NOT A) OR B

Äquivalenz:
(A <-> B) => (A -> B) AND (B -> A)

Es soll ein Programm erstellt werden, mit dem es möglich ist,
die o.a. ternäre Logik - auch innerhalb von Inklusion und Äquivalenz - abzubilden.
Hier bieten sich zur Lösung des Problems sowohl Methoden bzw. Funktionen,
als auch, wenn es die Programmiersprache zulässt, Operatorüberladungen an.

Beispiele:
t OR (NOT x) == t
NOT(x) OR (NOT(t)) == x
x -> t == t
(x OR f) <-> (x -> (f AND (NOT x))) == x

Viel Spaß
4 Lösungen Lösungen öffentlich
Zahlenpyramide (Reihenausgabe)
Anfänger - C# von JKooP - 23.11.2020 um 16:23 Uhr
Es soll per Funktion/Methode eine Zahlenpyramide (siehe jpg) mit den Ziffern 0-9 und der Höhe 10 erstellt werden.

Dies soll bewerkstelligt werden durch:

Aufgabe 1: (leicht)
mehrerer ineinander verschachtelter Schleifen,

Aufgabe 2: (schwieriger)
nur eine Schleife.

Viel Spaß
2 Lösungen Lösungen öffentlich
Zahlentreppe (Reihenausgabe)
Anfänger - C# von JKooP - 23.11.2020 um 15:11 Uhr
Es soll per Funktion/Methode eine Zahlentreppe mit den Ziffern 0-9 und der Höhe 10 erstellt werden.

0
01
012
0123
01234
012345
0123456
01234567
012345678
0123456789

Dies soll bewerkstelligt werden durch:

Aufgabe 1: (leicht)
mehrerer ineinander verschachtelter Schleifen,

Aufgabe 2: (schwieriger)
nur eine Schleife.

Viel Spaß