Dienstag, 12. September 2017
1. Aufgabe 4BHIF
Abgabename: 2017_4bhif_aufgabe1_name_vorname.zip
Abgabetermin - 26.9.2017 - Abgabe auf edvossh
Verwenden Sie eine Projektmappe und teilen Sie die Aufgaben in Projekte oder machen Sie ein einziges Projekt, bei dem man aber irgendwie auswählen kann, welche Teilaufgabe gestartet wird.
Sie haben nun schon zwei Jahre Java und ein Jahr Python programmiert. Nun geht es darum das bereits erworbene Können möglichst schnell auf die Sprache C# zu übertragen. Dazu sind kurze einfache Aufgabenstellungen gut geeignet. Es folgt nun eine Liste von Aufgabenstellungen für Konsolenprogramme. Sie dürfen Ihre Progrämmchen auch mit einer GUI versehen, gefordert ist das jedoch nicht.
Abgabetermin - 26.9.2017 - Abgabe auf edvossh
Verwenden Sie eine Projektmappe und teilen Sie die Aufgaben in Projekte oder machen Sie ein einziges Projekt, bei dem man aber irgendwie auswählen kann, welche Teilaufgabe gestartet wird.
Sie haben nun schon zwei Jahre Java und ein Jahr Python programmiert. Nun geht es darum das bereits erworbene Können möglichst schnell auf die Sprache C# zu übertragen. Dazu sind kurze einfache Aufgabenstellungen gut geeignet. Es folgt nun eine Liste von Aufgabenstellungen für Konsolenprogramme. Sie dürfen Ihre Progrämmchen auch mit einer GUI versehen, gefordert ist das jedoch nicht.
- Hello World
Richten Sie Ihr Visual Studio so ein, dass alle Ihre Dateien automatisch einen Header mit Ihrem Namen, Klasse usw. enthalten.
Erstellen Sie dann ein "Hello World"-Programm. Dieses Programm soll "Hello World!" ausgeben, wenn keine Kommandozeilenparameter angegeben wurden, anderenfalls sollen die Parameter als Namen interpretiert werden, die dann gegrüßt werden. Dabei sollen immer zwei Namen paarweise ausgegeben werden (siehe Beispiel).
Aufrufhello.exe Toni Barbara Klaus
AusgabeHello Toni und Barbara! Hello Klaus!
- ISBN/EAN
Schreiben Sie eine Methode, welche die Prüfziffern von ISBN (Internationale Standardbuchnummer) bzw. EAN (European Article Number) prüfen kann. Dabei wird die Prüfziffer (als String) eingegeben, von welcher die Prüfziffer als Rückgabewert ausgegeben wird.int GetCheckDigit(string isbnWithoutCheckDigit);
Daraus leitet sich eine zweite Methode ab, welche einen String inklusive Prüfziffer prüft:bool CheckISBN(string isbn);
Diese Methode entfernt alle Trennzeichen (Leerzeichen, Bindestriche).
Algorithmus:s = z1 + z2 * 2 + z3 * 3 + ... + z9 * 9
p = s mod 11
- Falls p gleich 10, dann ist die Prüfziffer "X" sonst die Ziffer selbst.
- Römische Zahlen
Schreiben Sie Methoden zum Umrechnen von ganzen Zahlen (1 bis 3000) in Römische Zahlen und umgekehrt. Die römischen Ziffern haben folgende Bedeutung:I ... 1 V ... 5 X ... 10 L ... 50 C ... 100 D ... 500 M ... 1000
Beachten Sie, dass nur jeweils drei gleiche Ziffern hintereinander geschrieben werden. Stattdessen wird die nächst größere Einheit benutzt und eine Einheit abgezogen (XC = 90, XCIX = 99, IX = 9, VIII = 8).
Die Prototypen sollen sein:string IntToRoman(int number); int RomanToInt(string romanNumber);
- Unit Tests
Erstellen Sie für die obigen beiden Aufgaben Unit-Tests. Lesen Sie dazu Verifying Code by Using Unit Tests. - Wörter suchen
Laden Sie sich die gepackte Wortliste herunter. Die Datei enthält nur eine Textdateideutsch.txt
, welche eine sortierte Liste von Wörtern, jeweils ein Wort in einer Zeile enthält (stammt von Firefox). Achtung: der Zeilenumbruch besteht nur aus'\n'
(Unix) und die Kodierung ist UTF-8.
Schreiben Sie eine MethodeGetWordList(string word)
, welche eine Liste von Worten liefert, die mit dem Stringword
beginnen.
Implementieren Sie sowohl lineare als auch binäre Suche und vergleichen Sie diese.
Verwenden Sie unterschiedliche Datenstrukturen (die zwei Typen von C#-Arrays und Collections) und vergleichen Sie die Lösungen punkto Laufzeit und Speicherbedarf.
Schreiben Sie eine weitere MethodeGetWordListEnding(string ending)
, welche eine Liste von Worten liefert, die mitending
endet. Ist hier binäre Suche möglich? - Unit Tests
Erstellen sie für die obige Aufgabe passende Unit Tests. - Laufzeitmessungen
Schreiben Sie ein Programmruntime
, welches die Laufzeiten der unterschiedlichen Implementierungen vonGetWordList(string word)
undGetWordListEnding(string ending)
ermittelt. Verwenden Sie die Wortanfänge "Distanz", "Erdbi" und "Finanzind" und die Endungen "gulierung", "dcomputer" und "chsdor".
Das Programm soll bei jedem Test folgende Informationen ausgeben:
Anzahl der gefundenen Worte und die Laufzeit.
Bilden Sie die Mittelwerte für die einzelnen Methoden (binäre/sequentielle Suche) bzw. die Implementierungen mit Arrays oder Collections.
Wie sind die Ergebnisse zu interpretieren? - 25 im Quadrat
Auf zwölf quadratischen Kärtchen sind die Zahlen 1 bis 12 gedruckt. Diese Kärtchen sollen so in einem Quadrat angeordnet werden, sodass ein 2x2-Quadrat in der Mitte frei bleibt (die Kantenlänge beträgt insgesamt also 4).
- Ermitteln Sie eine Anordnung der Karten, sodass die Summe aller Karten einer Kante (4 Karten) jeweils den Wert 25 ergibt.
- Ermitteln Sie die Anzahl der Lösungen.
- Ermitteln Sie alle Lösungen (es sind sehr viele!).
Labels: 4BHIF, Aufgabe, C#, POS1-4
Abonnieren Posts [Atom]
Kommentar veröffentlichen