PHP Programmieren?
Hey, für Info müssen wir eine php Seite programmieren, jedoch komme ich bei dem Array nicht weiter. Kann mir einer helfen wie das geht? Hab sehr wenig Ahnung und wir haben es nicht behandelt.
Hoffe jemand mit mehr Ahnung kann mir helfen
das ist dabei rausgekommen, jedoch passiert nichts. Hoffe auf Hilfe
4 Antworten
Ich wollte dir gerade helfen.
Leider ist dein Ansatz so Anfängerhaft (nicht Negativ gemeint) das es ein grundlegendes workaround war und wahrscheinlich weit über euren Kenntniss stand geht.
Ich gebe dir nur folgende Tipp.
Erstellen ein Array mittels for schleife.
Die Prüfung der Farbe lässt du in einem Switch Case Laufen anstatt mit if.
Die Prüfung auf Primzahlen ist schon Tricky, lege dazu am besten ein Array mit Primzahlen an um dem Vergleich zu Beschleunigen.
Wir haben absolut nichts gelernt, einfach mit der aufgabe konfrontiert
$array = range(min($zahl1, $zahl2), max($zahl1, $zahl2))
foreach($array as $val) {
if($val % 2 == 0) {
$col = 'red';
}
elseif(is_prime($val)) {
$col = 'green';
}
else {
$col = 'blue';
}
}
function is_prime($n){for($i=~-$n**.5|0;$i&&$n%$i--;);return!$i&$n>2|$n==2;}
Quelle für is_prime: https://stackoverflow.com/questions/38008130/php-check-if-number-is-prime/39743570
Code ist nicht getestet.
Und was sind $i und $n? Muss ich die die variablen nicht vorher festlegen?
Sorry, aber ich kann hier in der Kommentarfunktion nicht grundsätzliche Dinge zu PHP erklären. Bitte deinen Eltern mit dem Informatiklehrer zu reden, dass ihr offenbar keine Grundlagen beigebracht bekommt.
Je Schleifenlauf wird das nächste Element aus dem Array gezogen und in $val gespeichert:
foreach($array as $val) {
Besteht dein Array also aus den Werten 1, 2, 3, 4, 5, wäre $val im ersten Lauf 1, im zweiten Lauf 2, usw..
Das passiert doch.
$n ist der Parameter für die Funktion is_prime. Zur Laufzeit wird er bei Aufruf der Funktion mit dem Wert von $val befüllt.
$i wird im Schleifenkopf angelegt. Lies hier.
Die Funktion ist_Prime kann bei vielen zahlen extrem lange dauern
bedenke das es ein timeout gibt.
Range dürfte helfen
https://www.php.net/manual/de/function.range.php
$werte = range(min(zahl1,zahl2), max(zahl1,zahl2))
alternativ
if(zahl1 < zahl2) $werte = range(zahl1, zahl2)
else $werte = range(zahl2, zahl1)
Aber muss ich die variable $werte nicht vorher irgendwie festlegen?
nein, dir enthält danach das Array mit den Zahlen.
anschließend musst du nur noch schauen, wie das mit der Ausgabe ist.
ich empfehle eine Schleife:
foreach($werte as $zahl) {
// $zahl : 2 ist Rest 0 -> grade
if(($zahl % 2) == 0) $farbe = "ff0000";
// sonst ungrade
else $farbe = "0000ff";
// hier noch Primzahlen prüfen
}
und das programm weiss schon, dass $farbe für die farbe steht? Weil oben steht es als „$col“ ich probier es mal aus, danke aber schonmal
dann mach $col draus, das sind variablen, die man benennen kann, wie man will.
hm hab das so eingegeben, aber funktioniert nicht
Jetzt kommt keine fehlermeldung, jedoch passiert nix, es wird nur das produkt angegeben. Würdest du dir das anschauen, wenn ich eine neue Frage stelle? Bzw hier als Kommentar
am besten schreibst du deinen Code Mal auf einer Seite wie codebucket oder sowas
Als nächstes kommen for-Schleifen, je eine in deine if's.
Dann brauchst du eine Methode zur Primzahlbestimmung und eine zur Farbauswahl.
Danke erstmal. Wo genau muss ich das einbauen und was ist „$val“?