Übungen / Aufgaben zu Swift

0 Lösungen
Die beste Darlehensart berechnen
Anfänger - Swift von Exception - 04.06.2018 um 17:06 Uhr
Schreibe ein Programm welches folgende Parameter übergeben bekommt:
- Nominalzins p.a.
- Laufzeit (Jahre)
- Darlehen (€)

Berechne dann anhand dieser Parameter welche der drei folgenden Darlehensarten am besten für den Kreditnehmer ist:
- Fälligkeitsdarlehen
- Ratendarlehen
- Annuitätendarlehen

... und gib die Ergebnisse aus, auch inwiefern sie sich untereinander unterscheiden - jeder Cent zählt! ;)
0 Lösungen
Babylonisches Wurzelziehen / Heron-Verfahren / Heronsches Näherungsverfahren
Anfänger - Swift von Exception - 03.06.2018 um 08:27 Uhr
Die zu schreibende Anwendung soll eine positive Zahl entgegennehmen und durch das Heron-Verfahren näherungsweise die Quadratwurzel berechnen.

Zusatz:
Es werden die einzelnen Schritte ausgegeben, siehe Beispiel.

Beispiel: mit Wurzel aus 12

...
Die Wurzel aus 12 ist zwischen 3.5 und 3.4
...
Die Wurzel aus 12 ist zwischen 3.45 und 3.46
...


~ Viel Spaß :)
0 Lösungen
Konvertieren von JSON <---> XML <---> CSV
Anfänger - Swift von Exception - 02.06.2018 um 08:07 Uhr
- Schreibe ein Programm, welches eine Datei einlesen kann.
- Diese Datei soll in einem der folgenden Formate sein: CSV, XML, JSON
- Das Programm erkennt welches Format die eingelesene Datei hat und zeigt dies an (z.B. "Format: JSON")
- Dem Nutzer soll die Möglichkeit gegeben werden im Anschluss die Datei in einem der anderen beiden Formate abzuspeichern

Beispiel:

JSON wird eingelesen
JSON wird zu CSV umgewandelt
CSV wird als neue Datei abgespeichert
0 Lösungen
Programmierung eines Anagramm-Generators
Fortgeschrittener - Swift von hollst - 31.05.2018 um 14:02 Uhr
Unter einem (vollständigen) Anagramm eines Basiswortes versteht man
sinnvolle Wörter, die aus den gleichen Buchstaben wie
das Basiswort zusammengesetzt sind. Z. B. sind zum Basiswort TOR die Wörter
ROT und ORT Anagramme. Die Folge OTR ist kein Anagramm (kein sinnvolles Wort).

Für den zu programmierenden Anagramm-Generator, der ein Basiswort entgegennehmen
und eine Liste sinnvoller Anagramme ausgeben soll (Bild 1), wird natürlich eine
Liste aller sinnvollen Wörter einer (natürlichen) Sprache benötigt. Mein Vorschlag
ist es, sich den Textfile germany.dic von

https://sourceforge.net/projects/germandict/

herunterzuladen. Er enthält knapp 2.000.000 Einträge "sinnvoller" deutscher Wörter,
darunter auch eines meiner Lieblingswörter:

Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz.

Dieses Wort steht in der Tat sogar im Duden, allerdings nur an Stelle zwei der Wurmwörter,
den ersten Platz hat

Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung.

Ja, aber das nur zum Schmunzeln am Rande. Viel Spaß!
0 Lösungen
Einfacher Namensgenerator
Anfänger - Swift von Exception - 30.05.2018 um 15:23 Uhr
Schreibe ein Programm, welches zwei Textdateien (zb Vorname.txt, Nachname.txt) Zeile für Zeile in ein Array lädt.
Gebe dann eine zufällige Kombination aus Vornamen und Nachnamen aus.
0 Lösungen
Code schreiben (Serialisierung)
Fortgeschrittener - Swift von A.hann - 28.05.2018 um 18:09 Uhr
Ihr Kunde ist verzweifelt. Er ist im Besitz des Programmcodes einer Klasse Person sowie einer Datei friends.dat. In friends.dat sind serialisierte Bytefolgen verschiedener Person-Objekte enthalten. Ihr Kunde weiß nicht, wie er die Bytefolgen wieder "zum Leben erweckt" (aktiviert). Er möchte von Ihnen wissen, welche Personen in der Datei friends.dat stecken und wie die Freundschaftsbeziehungen zwischen den Personen aussehen. Ihr Kunde weiß, dass die Datei friends.dat ein einziges Objekt vom Typ ArrayList<Person> enthält. Hier der Quelltext der Klasse Person (im anonymen Default-Package)


Sie erhalten die Klasse Person im Quelltext sowie die Datei friends.dat als Anlage zu dieser Aufgabe. Erstellen Sie eine statische Methode decode in der Klasse Decode (im anonymen Default-Package) welche die als Dateinamen-Parameter gegebene Datei deserialisiert und dann die Freundschaftsbeziehungen in der Reihenfolge ausgibt, wie sie in der deserialisierten ArrayList stehen. Das gewünschte Ausgabeformat ist wie folgt (wobei die Datei friends.dat andere als die folgenden Personendaten enthält):
0 Lösungen
Einfaches Verwaltungstool mit CSV Import / Export
Anfänger - Swift von Exception - 18.05.2018 um 14:31 Uhr
Der Personalchef in Firma "Bli Bla Blub & Söhne" hat nicht länger Lust, alles was Mitarbeiter betrifft, auf Zetteln zu führen bzw. zu verwalten.
Er ist sowieso der Ansicht, dass zu viele Bäume Tag für Tag abgeholzt werden...
Nun kommt er mit der Bitte zu dir, ein Programm zu entwickeln, welches ihm das Leben diesbezüglich einfacher machen soll.

Deine Aufgabe: Schreibe in der Programmiersprache deiner Wahl ein grafisches Verwaltungsprogramm.

Anforderungen an das Programm:
1) Möglichkeit Mitarbeiter anzulegen, deren Daten zu editieren bzw. Mitarbeiter zu löschen.
2) Ausgabe der Informationen aller Mitarbeiter in einer Tabelle (zur Übersichtlichkeit, während der Laufzeit).
3) Die Informationen der Tabelle sollen sortiert werden können (z.B. nach Abteilung, Geschlecht, ...) ==> noch mehr Übersichtlichkeit! :)
4) Damit die Daten nachdem das Programm geschlossen wurde nicht verloren gehen soll es zusätzlich eine Import- und Export-Funktion geben, welche alle Daten in eine CSV-Datei speichert.
4.1) Export: Es soll eine CSV-Datei erstellt werden, d.h. alle Informationen eines jeden Mitarbeiters werden via Komma, Tab, o.ä. getrennt in die Datei geschrieben. Ein Zeilenumbruch gibt an, dass nun die Informationen des nächsten Mitarbeiters kommen.
4.2) Import: Die CSV-Datei soll eingelesen werden. Aus allen Informationen eines einzelnen Mitarbeiters soll wieder ein Objekt instanziiert werden. Wenn alle Mitarbeiter importiert wurden, sollen diese wieder in der Tabelle angezeigt werden.

Hinweise:
- Export: Gib der Klasse "Mitarbeiter" vielleicht eine extra Methode, die dir deinen CSV-String bastelt (natürlich nur, wenn du auch eine Klasse "Mitarbeiter" hast ;) )


Beispiel einer kleinen CSV-Datei:
Vorname; Nachname; Geschlecht; Geburtsdatum; Abteilung/Job

Heinz; Bli; männlich; 01.01.1910; Chef
Günther; Bla; männlich; 02.02.1920; Personalchef
Erika; Blub; weiblich; 03.03.1930; Leitering Abteilung Marketing
Mannfred; Bli-Blub; männlich; 04.04.1940; Entwickler


Viel Freude beim entwickeln und basteln :)
0 Lösungen
Screenshots erstellen und abspeichern
Anfänger - Swift von Exception - 17.05.2018 um 15:36 Uhr
Aufgaben:
1) Erstelle ein Windows Forms Programm, welches via Buttonklick einen Screenshot erstellen kann.
2) Zusätzlich soll dieser Screenshot dann in einem beliebigen Ordner abgespeichert werden können, aber nur, falls dies der Nutzer auch möchte.
3) Das Bild kann dann dementsprechend in verschiedenen Formaten abgespeichert werden (png, jpg, …)

Optional:
- Gib dem Nutzer zusätzlich die Möglichkeit nur einen gewissen Bereich des Bildschirms als Screenshot abspeichern zu können (man möchte ja ggf. nur ein Fenster o.ä. aufnehmen)
- Möglichkeit das Bild um x Grad drehen
- Möglichkeit etwas in das Bild zeichnen, z.B. einen roten Rahmen
- Farbverläufe?
- etc. etc. etc.

Was ist ein Screenshot? Klicke hier!
0 Lösungen
Fibonacci und die Zahl 89
Anfänger - Swift von hollst - 14.05.2018 um 13:09 Uhr
Wenn man die Glieder der Fibonacci-Folge

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 ...

entsprechend nachfolgendem Schema anordnet

0.0
0.01
0.001
0.0002
0.00003
0.000005
0.0000008
0.00000013
0.000000021
0.0000000034
0.00000000055
0.000000000089
0.0000000000144
.
.

und die Glieder aufaddiert, ergibt sich

----------------
0.01123595505...

Diese rationale Zahl beginnt mit den gleichen Nachkommadigits wie 1/89:

1/89 = 0.0112359550561798... (16 Nachkommastellen (Double))
= 0.01123595505617977528089887640449... (Taschenrechner (Abb. 1), 32 Nachkommastellen)

Berücksichtigt man bei obiger Addition quasi alle Summanden, so wird vermutet, dass sich in der Tat 1/89 exakt ergibt, unglaublich, wenn wahr, oder?

Diese Eigenschaft der Fibonacci-Folge wurde erst 1994 entdeckt (von einem Herrn Cody Birsner, damals Student in Oklahoma). Also, auch heute
ist noch genügend Platz für grandiose und phantastische Entdeckungen in der Zahlentheorie.

Man zeige mittels Programmierung, dass die Vermutung (die mittlerweile bewiesen ist) selbst bis zur Taschenrechnergenauigkeit mit 32 Nachkommastellen nicht widerlegt wird.
0 Lösungen
kleine simulation zweier zufallsereignisse
Anfänger - Swift von hollst - 21.03.2018 um 21:25 Uhr
Gegeben seien zwei unabhängige Zufallsereignisse A und B, wobei A mit einer
Wahrscheinlichkeit von 70 % eintritt und B mit eine Wahrescheinlichkeit von 10 %.

Durch (MontoCarlo-) Simulation schätze man ab, mit welchen Wahrscheinlichkeiten das Doppelereignis (A, B)
vorkommt für die Fälle

a) weder A noch B sind eingetreten,
b) entweder A oder B (oder beide) ist (sind) eingetreten.

Man kann das natürlich auch ausrechnen, aber grau ist bekanntlich alle Theorie.
0 Lösungen
Auslosung der Figurenaufstellung beim Chess960
Anfänger - Swift von hollst - 12.02.2018 um 18:33 Uhr
Beim Chess960, auch Fischer-Random-Chess genannt, wird die
Ausgangsposition der acht weißen Offiziere ausgelost, wobei
zwei Regeln zu beachten sind:

1.) der König muss zwischen den zwei Türmen stehen (damit Rochaden möglich bleiben) und
2.) die zwei Läufer müssen ungleichfarbig sein.

Die schwarzen Offiziere werden spiegelsymmetrisch angeordnet (Bild 1, Beispielaufstellung),
alle anderen Schachspielregeln bleiben erhalten.

Man schreibe ein (vorzugsweise GUI-) Programm, das diesen Auslosungsregeln entspricht und eine
der möglichen 960 zufälligen Startpositionen rückgibt.
0 Lösungen
Ermittlung von Zeilen- und Spaltennummer eines 2D-Array-Feldes
Anfänger - Swift von hollst - 09.02.2018 um 11:03 Uhr
Die Felder eines "unendlich" großen 2D-Arrays seien nach folgendem "Diagonal-Schema" nummeriert:

1 2 4 7 . . .
3 5 8 . . . .
6 9 . . . . .
10 . . . . . .
. . . . . . usw.

Man schreibe ein Programm, das für eine gegebene Feldnummer N die Zeilen- (ZN) und die Spaltennummer (SN) zurückgibt.
Zeilen- und Spaltennummerierungen beginnen wie üblich mit 0.

Beispiele:
N = 8 -> ZN = 1, SN = 2
N = 31 -> ZN = 2, SN = 5
379360

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.