zielscheibe: Vergleich Arrey

<?php
//Hauptprogramm
$wertungsrichter1=6.4;
$wertungsrichter2=6.5;
$wertungsrichter3=6.6;
$wertungsrichter4=7.4;
$wertungsrichter5=5.5;
$gesamt=0;
echo showWertung($wertungsrichter1,$wertungsrichter2,$wertungsrichter3,$wertungsrichter4,$wertungsrichter5);
//Funktion
function showWertung($wertungsrichter1,$wertungsrichter2,$wertungsrichter3,$wertungsrichter4,$wertungsrichter5) 
{
$gesamt=array($wertungsrichter1,$wertungsrichter2,$wertungsrichter3,$wertungsrichter4,$wertungsrichter5);	
sort($gesamt);
echo "<h1>Wertung<h1>";
echo "<p>Beste Wertung:</p>".$gesamt[4];
echo "<p>Schlechteste Wertung:</p>".$gesamt[0];
echo "<p>Durchschnitt:</p>".array_sum($gesamt)/5;
}	
//showWertung(wertungenFeld[]:double):viod
//Version 2 Ricky
{
gesamt=arry($wertung1,$wertung2,$wertung3,$wertung4,$wertung5);
sort($gesamt);
echo "<p>Beste Werung:</p>".$gesamt[4];
echo "<p>schlechteste Wertung:</p>".$gesamt[0];
}
{
	$Durchschnitt=($Wertung1+$Wertung2+$wertung3+$wertung4+$wertung5)/5;
	echo "<p>Durchschnitt:</p>".$Durchschnitt;
}
?>

hallo ich habe die Aufgabe in der Schule gelöst bin jedoch daran gescheitert mehr als 5 Werte zu verarbeiten. Die einzige Alternative auf die ich noch gekommen bin, ist es mit if abfragen zu vergleichen. Kennt Ihr noch eine Alternative?

  1. Hello,

    es ist immer wieder die gleiche Vorgehensweise:

    1. wie lautet die Aufgabe?
    2. Wie lautet dein Lösungsansatz?
    3. Wo kneift es?
    4. Welche Kontrollausgaben hast Du (zum Debuggen) vorsehen?
    5. ...
    6. ...

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
  2. @@zielscheibe

    Bitte formatiere deine Beiträge, sodass sie lesbar sind; insbesondere Codeblöcke als solche.

    Ich hab das mal für dich berichtigt.

    $wertungsrichter1=6.4;
    $wertungsrichter2=6.5;
    $wertungsrichter3=6.6;
    $wertungsrichter4=7.4;
    $wertungsrichter5=5.5;
    

    An der Benennung der Variablen kann man schon erahnen, dass das nicht einzelne Variablen, sondern ein Array sein sollte:

    $wertungen = [6.4, 6.5, 6.6, 7.4, 5.5];
    

    (wie du es später mit $gesamt daraus erstellt hast).

    $gesamt=array($wertungsrichter1,$wertungsrichter2,$wertungsrichter3,$wertungsrichter4,$wertungsrichter5);	
    sort($gesamt);
    

    Damit ist jetzt die schlechteste Bewertung am Anfang und die beste am Ende des Arrays.

    echo "<h1>Wertung<h1>";
    echo "<p>Beste Wertung:</p>".$gesamt[4];
    echo "<p>Schlechteste Wertung:</p>".$gesamt[0];
    echo "<p>Durchschnitt:</p>".array_sum($gesamt)/5;
    

    hallo ich habe die Aufgabe in der Schule gelöst bin jedoch daran gescheitert mehr als 5 Werte zu verarbeiten.

    Tja, wenn du die 5 als Anzahl der Elemente und 4 als Index des letzten Elements hartcodiert in den Code schreibst, dann wird das nichts.

    PHP weiß, wieviele Elemente im Array sind.

    BTW, du solltest kein Markup mit PHP echo ausgeben, sondern nur die Werte einfügen. Nicht HTML in PHP schachteln, sondern PHP in HTML:

    <h1>Wertung<h1>
    <p>Beste Wertung: <?php echo $gesamt[4]; ?></p>
    <p>Schlechteste Wertung: <?php echo $gesamt[0]; ?></p>
    <p>Durchschnitt: <?php echo array_sum($gesamt)/5; ?></p>
    

    (Die oben genannten vorzunehmenden Änderungen überlasse ich dir.)

    LLAP 🖖

    --
    „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
    1. Hallo Gunnar,

      <p>Beste Wertung: <?php echo $gesamt[4]; ?></p>

      Bzw. kompakter

       <p>Beste Wertung: <?= $gesamt[4] ?></p>
      

      Rolf

      --
      sumpsi - posui - clusi
  3. Hallo zielscheibe,

    wenn Du nicht 5 Wertungsrichter hast, sondern eine andere Anzahl, dann wirst Du wohl auch ein Array (nicht Arrey oder Arry!) mit einer anderen Anzahl von Elementen haben.

    Den Index des letzten Eintrags im Array kannst Du mit Hilfe der count-Funktion erhalten. Beispiel: Für ein Array, dessen Einträge fortlaufend von 0 bis 4 indexiert sind, liefert count 5.

    (Exkurs: Das ist jetzt keine Haarspalterei; Arrays können Lücken enthalten, und wenn in einem Array die Indexe 1 und 5 belegt sind, liefert count(2). In dem Fall müsstest Du array_keys zu Hilfe nehmen.)

    Rolf

    --
    sumpsi - posui - clusi
    1. hm muss ich Buch nochmal nachschlagen. Du meinst das ich die arrays abspeichern soll und dann je nach Bedarf abrufen soll?

      1. Hallo zielscheibe,

        *verwirrt guck* Von welchem Problem reden wir gerade?

        Redest Du da von einem Aspekt der Aufgabenstellung, der aus deinem Eingangsposting nicht erkennbar ist?

        Rolf

        --
        sumpsi - posui - clusi
  4. Moin,

    Edit: ups... PHP und nicht Javascript.

    aber auch hier gibt es entsprechende Funktionen min, max .

    den Durchschnitt berechnet man aus allen Werten des Arrays summiert mit der Sum-Funktion und der Anzahl aller Datensätze im Array über sizeof

    also recht einfach

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <- ### Henry L. Mencken ### -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <- ### Viktor Frankl ### ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)