Übungen / Aufgaben zu Objective-C
0 Lösungen
Die n-te Zahl ermitteln
Man nehme eine Zahl, die beispielsweise mit den Ziffern 245 beginnt.
Nun ist die Frage, welche ist z.B. die 12. Zahl, die ebenfalls mit 245 beginnt?
Lösung: 24500, denn
01. 245
02. 2450
03. 2451
…
11. 2459
12. 24500
Welche ist die 100. Zahl die mit 245 beginnt?
Variante 1: durch Probieren mittels einer Schleife (leicht)
Versucht man jetzt aber durch Probieren die 13000. Zahl zu ermitteln, kann das schon eine Weile dauern. Vielleicht lässt sich eine logische Folge ableiten?!
Variante 2: Berechnung der Zahl (schwieriger)
Viel Spaß
Nun ist die Frage, welche ist z.B. die 12. Zahl, die ebenfalls mit 245 beginnt?
Lösung: 24500, denn
01. 245
02. 2450
03. 2451
…
11. 2459
12. 24500
Welche ist die 100. Zahl die mit 245 beginnt?
Variante 1: durch Probieren mittels einer Schleife (leicht)
Versucht man jetzt aber durch Probieren die 13000. Zahl zu ermitteln, kann das schon eine Weile dauern. Vielleicht lässt sich eine logische Folge ableiten?!
Variante 2: Berechnung der Zahl (schwieriger)
Viel Spaß
0 Lösungen
Berechnung von Widerständen
Schreibe eine Methode bzw. Funktion, mit der man den Gesamtwiderstand von Parallel- bzw. Reihenschaltungen berechnen kann.
Dabei sollen sowohl die Werte der Einzelwiderstände als auch die Art der Schaltung vom Benutzer erfragt werden.
Variante 1: 2 separate Funktionen: f(float a, float b, … float n)
Variante 2: 1 kombinierte Funktion: f(artDerSchaltung, float a, float b, … float n)
Viel Spaß
Dabei sollen sowohl die Werte der Einzelwiderstände als auch die Art der Schaltung vom Benutzer erfragt werden.
Variante 1: 2 separate Funktionen: f(float a, float b, … float n)
Variante 2: 1 kombinierte Funktion: f(artDerSchaltung, float a, float b, … float n)
Viel Spaß
0 Lösungen
Zoo mittels einer Factory-Methode
Hallo zusammen,
heute erzeugen wir einen Zoo!
Erzeugt hierfür eine Basisklasse (oder Interface) "Animal" und einige Klassen die davon erben (z.B. "Lion", "Penguin", "Crocodile", "Snake").
Als nächsten Schritt wollen wir nun eine Factory-Klasse erzeugen, die sich am "Factory-Method-Pattern" orientiert.
In dieser Klasse soll eine Methode "createAnimal" existieren, die ein "Animal" zurückgibt.
Welches "Animal" zurückgegeben wird überlassen wir vorerst dem reinen Zufall ;)
Daher kann diese Klasse auch "RandomAnimalFactory" genannt werden.
Lasst nun 200 "Animals" in den Zoo einziehen.
Wie ist die Verteilung der "Animals" einer jeden Spezies in unserem Zoo?
Es kann mit der zufälligen Erzeugung zu einem gewissen Ungleichgewicht kommen.
So fühlt sich ein einzelner Pinguin gegen 199 Löwen sicher etwas in der Unterzahl ...
Erstellt nun eine zweite Factory-Klasse "BalancedAnimalFactory".
Diese soll ebenfalls die Methode "createAnimal" enthalten.
(Macht es nun evtl. Sinn sich auch bei den Factory-Klassen über ein Interface gedanken zu machen?)
Diese Factory soll nicht mehr komplett zufällig Tiere erzeugen sondern etwas ausgeglichener.
Die dort vorhandene "createAnimal" Methode soll wie folgt funktionieren:
Angenommen wir haben vier Tier-Klassen ("Lion", "Penguin", "Crocodile", "Snake").
Wird nun ein "Lion" erzeugt, so wird für die nächsten beiden Erzeugungen kein "Lion" mehr erzeugt.
Lasst nun erneut 200 "Animals" einziehen - vielleicht in einen zweiten "Parkabschnitt" (Array)? :)
Muss sich der Pinguin noch immer Sorgen machen?
Viel Spaß!
heute erzeugen wir einen Zoo!
Erzeugt hierfür eine Basisklasse (oder Interface) "Animal" und einige Klassen die davon erben (z.B. "Lion", "Penguin", "Crocodile", "Snake").
Als nächsten Schritt wollen wir nun eine Factory-Klasse erzeugen, die sich am "Factory-Method-Pattern" orientiert.
In dieser Klasse soll eine Methode "createAnimal" existieren, die ein "Animal" zurückgibt.
Welches "Animal" zurückgegeben wird überlassen wir vorerst dem reinen Zufall ;)
Daher kann diese Klasse auch "RandomAnimalFactory" genannt werden.
Lasst nun 200 "Animals" in den Zoo einziehen.
Wie ist die Verteilung der "Animals" einer jeden Spezies in unserem Zoo?
Es kann mit der zufälligen Erzeugung zu einem gewissen Ungleichgewicht kommen.
So fühlt sich ein einzelner Pinguin gegen 199 Löwen sicher etwas in der Unterzahl ...
Erstellt nun eine zweite Factory-Klasse "BalancedAnimalFactory".
Diese soll ebenfalls die Methode "createAnimal" enthalten.
(Macht es nun evtl. Sinn sich auch bei den Factory-Klassen über ein Interface gedanken zu machen?)
Diese Factory soll nicht mehr komplett zufällig Tiere erzeugen sondern etwas ausgeglichener.
Die dort vorhandene "createAnimal" Methode soll wie folgt funktionieren:
Angenommen wir haben vier Tier-Klassen ("Lion", "Penguin", "Crocodile", "Snake").
Wird nun ein "Lion" erzeugt, so wird für die nächsten beiden Erzeugungen kein "Lion" mehr erzeugt.
Lasst nun erneut 200 "Animals" einziehen - vielleicht in einen zweiten "Parkabschnitt" (Array)? :)
Muss sich der Pinguin noch immer Sorgen machen?
Viel Spaß!
0 Lösungen
Wochentage einlesen und in einem Array ausgeben
Schreiben Sie ein Programm, das die Wochentage in einliest und sie in
einem Array (vom Typ string [ ]) ablegt und danach ausgibt.
einem Array (vom Typ string [ ]) ablegt und danach ausgibt.
0 Lösungen
n Zahlen einlesen und deren Quadrate speichert und ausgibt
Schreiben Sie ein Programm, dass n Zahlen einliest und deren
Quadrate in einem Array speichert und sie danach ausgibt.
(Die Zahl n soll vom Benutzer abgefragt werden.)
Quadrate in einem Array speichert und sie danach ausgibt.
(Die Zahl n soll vom Benutzer abgefragt werden.)
0 Lösungen
Wettervorhersage als Text formulieren
Schreibe ein Programm, das eine Wettervorhersage (erstmal nur Temperaturen) als Text fomuliert.
Als Ausgangsinformationen dienen vier Temperaturangaben für vormittags, nachmittags, abends und nachts.
Das Programm soll die Sätze variantenreich formulieren, z. B. abhängig davon, ob es im Laufe des Tages kälter oder wärmer wird oder ob die Temperaturen sehr kalt, mäßig, warm oder heiß sind. Für gleichartige Sachverhalte kann auch per Zufallsgenerator zwischen verschiedenen gleichwertigen Formulierungen gewählt werden.
Erweiterung 1:
Es wird zusätzlich ein Datum angegeben. Die Formulierungen orientieren sich dann zusätzlich an Temperatur-Druchschnittswerten des jeweiligen Monats.
(Tageshöchsttemperatur Jan-Dez: 2, 3, 8, 12, 18, 21, 23, 23, 19, 14, 7, 4 - Tiefsttemperaturen nachts Jan-Dez: -2, -3, 1, 4, 9, 12, 14, 14, 11, 7, 3, 0)
Erweiterung 2:
Vergleichbares kann man für Angaben zu Sonne/Bewölkung, Niederschlägen (Regen, Schnee) bzw. Niederschlagsmengen und Windstärke/-richtung ergänzen.
(Niederschlagsmengen in mm Jan-Dez: 42, 30, 39, 36, 42, 72, 51, 45, 45, 30, 45, 57)
Erweiterung 3:
Sonderwetterlagen können zusätzlich eingebracht werden, z. B. Gewitter, Nebel, Hagel, Starkregen, Blitzeis.
Quelle Klimadaten für Berlin: https://www.klimatabelle.info/europa/deutschland
Als Ausgangsinformationen dienen vier Temperaturangaben für vormittags, nachmittags, abends und nachts.
Das Programm soll die Sätze variantenreich formulieren, z. B. abhängig davon, ob es im Laufe des Tages kälter oder wärmer wird oder ob die Temperaturen sehr kalt, mäßig, warm oder heiß sind. Für gleichartige Sachverhalte kann auch per Zufallsgenerator zwischen verschiedenen gleichwertigen Formulierungen gewählt werden.
Erweiterung 1:
Es wird zusätzlich ein Datum angegeben. Die Formulierungen orientieren sich dann zusätzlich an Temperatur-Druchschnittswerten des jeweiligen Monats.
(Tageshöchsttemperatur Jan-Dez: 2, 3, 8, 12, 18, 21, 23, 23, 19, 14, 7, 4 - Tiefsttemperaturen nachts Jan-Dez: -2, -3, 1, 4, 9, 12, 14, 14, 11, 7, 3, 0)
Erweiterung 2:
Vergleichbares kann man für Angaben zu Sonne/Bewölkung, Niederschlägen (Regen, Schnee) bzw. Niederschlagsmengen und Windstärke/-richtung ergänzen.
(Niederschlagsmengen in mm Jan-Dez: 42, 30, 39, 36, 42, 72, 51, 45, 45, 30, 45, 57)
Erweiterung 3:
Sonderwetterlagen können zusätzlich eingebracht werden, z. B. Gewitter, Nebel, Hagel, Starkregen, Blitzeis.
Quelle Klimadaten für Berlin: https://www.klimatabelle.info/europa/deutschland
0 Lösungen
Mehrdimensional zu Eindimensional
Das folgende mehrdimensionale Array soll zu einem flachen, eindimensionalen Array umgewandelt werden. Viel Spaß.
PHP-Code
$a = [ 0 => 'Text 0', 1 => 'Text 1', 2 => 'Text 2', 'A' => [ 0 => 'Text A 0', 1 => 'Text A 1', 2 => 'Text A 2', ], 'B' => [ 'A' => [ 0 => 'Text B A 0', 1 => 'Text B A 1', 2 => 'Text B A 2', ] ] ];
0 Lösungen
Rationale Zahlen einlesen: Mittelwert,Produkt und das Maximum ermitteln
Schreiben Sie ein Programm, das n rationale Zahlen einliest / einlesen kann und den Mittelwert, das Produkt und das Maximum dieser Zahlen ermittelt und ausgibt.
0 Lösungen
Schreiben Sie eine Methode, die 10 Integerzahlen vom Benutzer einliest und in einem Array abspeichert.
Schreiben Sie eine Methode, die 10 Integerzahlen vom Benutzer einliest und in einem Array abspeichert.
0 Lösungen
WHtR (Waist to Height Ratio) berechnen
Schreibe ein Programm zur Ermittlung des WHtR- Wertes aus Taillenumfang + Körpergröße und der daraus resultierenden Bewertung.
Es sollen sowohl das Geschlecht (m/w) als auch das Kindesalter bzw. der Altersfaktor für Erwachsene berücksichtigt werden.
Viel Spaß
Es sollen sowohl das Geschlecht (m/w) als auch das Kindesalter bzw. der Altersfaktor für Erwachsene berücksichtigt werden.
Viel Spaß
0 Lösungen
Abschätzung der Gewinnchancen eines KENO-Types
Zur Erinnerung, was ist KENO: Aus 70 Zahlen werden 20 Gewinnzahlen per Zufallsgenerator ermittelt.
Es gibt die KENO-Typen 2, 3 ... 10, d. h. man kann 2, 3 ... 10 Zahlen aus den Zahlen 1 ... 70 wählen.
Bei KENO-Typ N können 0, 1 ... N gewählte Zahlen in den 20 gelosten Gewinnzahlen enthalten sein
(je mehr, desto höher natürlich der Gewinn).
Die Programmieraufgabe bestehe darin, mittels stochastischer Simulation die Wahrscheinlichkeit dafür abzuschätzen,
wie hoch die Chance ist, bei KENO-Typ N, 0, 1, 2 ... oder gar N Richtige auf seinem Tippzettel zu haben?
Die exakten Werte könnt ihr u. a. z. B. auf
https://www.sachsenlotto.de/portal/spiele/keno/gewinnquoten.jsp
nachsehen.
Es gibt die KENO-Typen 2, 3 ... 10, d. h. man kann 2, 3 ... 10 Zahlen aus den Zahlen 1 ... 70 wählen.
Bei KENO-Typ N können 0, 1 ... N gewählte Zahlen in den 20 gelosten Gewinnzahlen enthalten sein
(je mehr, desto höher natürlich der Gewinn).
Die Programmieraufgabe bestehe darin, mittels stochastischer Simulation die Wahrscheinlichkeit dafür abzuschätzen,
wie hoch die Chance ist, bei KENO-Typ N, 0, 1, 2 ... oder gar N Richtige auf seinem Tippzettel zu haben?
Die exakten Werte könnt ihr u. a. z. B. auf
https://www.sachsenlotto.de/portal/spiele/keno/gewinnquoten.jsp
nachsehen.
0 Lösungen
Quadratzahlen zwischen 1 und 100
Schreibe ein kleines Programm, das die Quadratzahlen zwischen 1 und 100 ausgibt. (Nicht die ersten 100 Quadratzahlen, die Aufgabe gibt es schon.)