Übungen / Aufgaben zu PHP

1 Lösung Lösung öffentlich
Produkt der Werte eines Arrays
Fortgeschrittener - PHP von JKooP - 21.02.2021 um 12:15 Uhr
Gegeben ist ein Array bestehend aus Integer-Werten. Aus diesen Werten soll das Produkt errechnet werden,
aber immer ausgenommen der Zahl, welche sich an der Stelle des Durchlaufs befindet.
Ist die letzte Stelle erreicht, geht’s von vorne weiter (Umlauf).

Beispiel:
Array = {1, 2, 3, 4}

Lösung:
Array = {24, 12, 8, 6}

Erklärung:
1. Durchlauf: 2 * 3 * 4 = 24 (ohne 1)
2. Durchlauf: 3* 4 * 1 = 12 (ohne 2)
3. Durchlauf: 4 * 1 * 2 = 8 (ohne 3)
4. Durchlauf: 1 * 2 * 3 = 6 (ohne 4)

Schreibe eine Funktion/Methode, mit der ein Array aus Integer-Werten aufgenommen werden kann und die Produkte als Integer-Array zurückgegen werden.

1. Aufgabe (leicht):
Verschachteln mehrerer Schleifen

2. Aufgabe (schwieriger):
das Ganze mit nur einem Schleifendurchlauf realisieren

Statt Arrays können, je nach Programmiersprache und Vorliebe, natürlich auch Listen oder Vektoren verwendet werden.

Viel Spaß
1 Lösung Lösung öffentlich
Duplikate bis auf Dopplungen aus Liste entfernen
Anfänger - PHP von JKooP - 21.02.2021 um 11:24 Uhr
Gegeben ist eine sortierte Liste, welche alle gängigen Datentypen aufnehmen kann.
Dabei sind alle Werte des gleichen Typs. Statt der Liste können auch Arrays genutzt werden.

Beispiele:
List<int> {1, 1, 1, 2, 2, 3}
List<char> {‘a’, ‘a’, ‘b’, ‘c’, ‘c’, ‘c’}

Aus dieser Liste sollen jetzt alle Duplikate entfernt werden, wobei hier jeder Wert 2-mal vorkommen darf.

Lösung:
List<int> {1, 1, 2, 2, 3}
List<char> {‘a’, ‘a’, ‘b’, ‘c’, ‘c’}

Schreibe eine Methode/Funktion, die eine Liste/Array aufnimmt, die Duplikate entfernt
und diese dann wieder als Rückgabewert oder Referenz zurückgibt.

Viel Spaß
0 Lösungen
Duplikate aus Liste/Array entfernen
Anfänger - PHP von JKooP - 20.02.2021 um 16:36 Uhr
Gegeben ist eine unsortierte Liste, welche alle gängigen Datentypen aufnehmen kann.
Dabei sind alle Werte des gleichen Typs. Statt der Liste können auch Arrays genutzt werden.

Beispiele:
List<int> {1, 4, 1, 3, 1, 4}
List<char> {‘a’, ‘b’, ‘a’, ‘a’, ‘c’}

Aus dieser Liste sollen jetzt alle Duplikate entfernt und die Liste anschließend sortiert werden.

Lösung:
List<int> {1, 3, 4}
List<char> {‘a’, ‘b’, ‘c’}

Schreibe eine Methode/Funktion, die eine Liste/Array aufnimmt, die Duplikate entfernt und diese dann sortiert wieder zurückgibt.

Viel Spaß
1 Lösung Lösung öffentlich
Position im Array gesucht
Anfänger - PHP von JKooP - 18.02.2021 um 20:06 Uhr
Gegeben ist ein sortiertes Array mit einer beliebigen Anzahl von Integer-Zahlen und eine Integer-Zahl,
deren Position/Index ermittelt werden soll. Ist die Zahl nicht vorhanden,
soll ebenfalls die Position bestimmt werden, an der sie im sortierten Array eingeordnet werden müsste.

Es können aber auch, je nach Programmiersprache bzw. Vorliebe, auch andere Daten-Container wie z.B. Listen oder Vektoren genutzt werden.

Beispiele:

Array = [1, 3, 5, 7, 9]
Zahl = 7
Lösung: 3

Array = [0, 1, 3, 7, 9]
Zahl = 2
Lösung: 2

Array = [1, 4, 6, 8, 9]
Zahl = 0
Lösung: 0

Array = [1, 3, 5, 7]
Zahl = 9
Lösung: 4

Hinweis: Array ist nullbasiert!

Erstelle eine Funktion/Methode, mit der die oben genannte Problemstellung gelöst werden kann.

Viel Spaß
0 Lösungen
Matrix mal anders - rückwärts auslesen
Anfänger - PHP von JKooP - 13.02.2021 um 11:22 Uhr
Gegeben ist eine beliebig große quadratische Zeichenmatrix im Format char[ ][ ],
die alle Größen bis auf 0x0 annehmen kann.
Das heißt, die horizontale und vertikale Größe sind gleich.

Ziel ist es, nicht wie gewohnt die Matrix von oben nach unten und von links nach rechts auszulesen,
sondern umgekehrt von unten nach oben und von rechts nach links.
Die ausgelesenen Zeichen sollen zu einem String zusammengefasst werden.

Beispiel für eine 3x3-Matrix: siehe Grafik 3x3_matrix
char [ ][ ] matrix = [ [ 'R', 'E', 'B' ], [ 'M', 'E', 'T' ], [ 'P', 'E', 'S' ] ]
Lösung: SEPTEMBER

Beispiel für eine 4x4- Matrix: siehe Grafik 4x4_matrix
char [ ][ ] matrix = [ [ 'N', 'I', 'L', 'O' ], [ 'R', 'A', 'C', 'T' ], [ 'B', 'E', 'I', 'L' ], [ 'S', 'N', 'A', 'H' ] ]
Lösung: HANSLIEBTCAROLIN

Erstelle hierzu eine Methode/Funktion, mit der man zum oben beschriebenen Ziel kommt.
0 Lösungen
Liste aller zukünftigen Palindromtage in diesem Jahrtausend
Anfänger - PHP von hollst - 12.02.2021 um 18:29 Uhr
Ein Datum (z. B. 12. Februar 2021) nennt man Palindromdatum, wenn es als Zahl geschrieben ein Palindrom ist (12022021, vorwärts gelesen identisch mit rückwärts gelesen).

Man schreibe ein Programm, das alle zukünftige Palindromtage bis zum 31. Dezember 2999 ausgibt.

Viel Spaß
0 Lösungen
Ausgeglichenes Fahren
Fortgeschrittener - PHP von JKooP - 12.02.2021 um 10:43 Uhr
Ein Fahrtenschreiber notiert, wie oft ein Pkw links bzw. rechts abgebogen ist.
In der anschließenden Auswertung soll ermittelt werden,
wie oft der Pkw in Folge ausgeglichen nach rechts (R) und links (L) gefahren ist.
Dabei können beliebig viele Rechts- bzw. Linksfahrten kombiniert werden (RRRLLL oder LLRR).

Beispiele:

RLRRLLRLRL
Lösung: 4 => RL RRLL RL RL

RLLR
Lösung: 2 => RL LR

LLLLRRRR
Lösung: 1 => LLLLRRRR

RLRRRLLRLL
Lösung: 2 => RL RRRLLRLL
RLRRRLLRLL RLLR ist keine Lösung, da vorher nicht ausgeglichen gefahren wurde (RR)

LLRLLL
Lösung: keine Lösung
LLRLLL LR ist keine Lösung, da vorher nicht ausgeglichen gefahren wurde (L)

LLRRLL
Lösung: 1 => LLRRLL
LLRRLL LR und RL sind keine Lösungen, da vorher nicht ausgeglichen gefahren wurde (L)

1. Aufgabe (mittel):
Erstelle eine Methode/Funktion, mit der man die Anzahl der ausgeglichenen Fahrten ermittelt.

2. Aufgabe (schwieriger):
Gib zusätzlich auch alle Lösungen aus.

Viel Spaß
0 Lösungen
Text gemäß Vorlage neu sortieren
Anfänger - PHP von JKooP - 12.02.2021 um 09:53 Uhr
Ein durcheinandergeratener Text soll gemäß einer Vorlage (Array) neu sortiert werden.

Dazu soll eine Methode/Funktion erstellt werden, mit der man die Zeichen des
Ausgangstextes gemäß den vorgegebenen Positionen im Array neu anordnet.

Ausgangstext = "programmyourtrainer"

Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ]

Zieltext = "trainyourprogrammer"

Erläuterung:

Das erste Zeichen des Ausgangstextes (p) muss gem. Array an die 9. Position.
Das Zeichen (y) muss an die 5. Position. Achtung: Array ist nullbasiert!

_ _ _ _ _ y _ _ _ p _ _ _ _ _ _ _ _


Viel Spaß
0 Lösungen
Divisionsrest (Modulo) aus einer Zahl und ihrer Ziffern
Anfänger - PHP 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ß
0 Lösungen
Summe einzeln vorkommender Zahlen
Anfänger - PHP 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ß
0 Lösungen
Ermittlung der Anzahl fairer Würfel
Fortgeschrittener - PHP 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.
0 Lösungen
Seriennummer Euro- Banknoten überprüfen (bis 2013)
Anfänger - PHP 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ß
1800380

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.