This is an old revision of the document!


Lösningsförslag - Medianvärde

<?php
include('head.php');
 
 
 
if(isset($_POST['submit'])){   // För att slippa felmeddelande första gången sidan laddas och inget är inmatat
  $numbers = array();
 
  $i=0;							  // Skapa arrayen
  while ($i < $_POST['antal']) { 
    $numbers[] = mt_rand(-1000,1000);
    $i++;
  } 
 
  //Sortera
  sort($numbers);
 
  //Skriv ut arrayen
  $i=0;							
  while ($i < count($numbers)) { 
    echo $numbers[$i] . ' ';
    $i++;
  } 
 
  //Medianvärdet
  if (count($numbers)%2 == 1){ //Udda antal element i arrayen
    //Vi söker nyckeln som är i mitten
    $key = (int)count($numbers)/2; // Dela med två och bortse från decimaler (T.ex. 3/2 = 1.5 => 1 (utan decimaler)
 
    echo 'Medianvärdet: ' . $numbers[$key];
 
  }else{ //Jämnt antal element i arrayen
 
    //Vi söker nycklar till de två mittersta elementen.
 
    $key2 = count($numbers)/2; // Dela med två ger den övre nyckeln (T.ex. 4/2 = 2 Vi vill ha nyckel 2 och 1)
    $key1 = $key2 - 1;
 
    // Beräkna medelvärdet av de två mittersta, avrunda till 1 decimaler)
    $median = round((($numbers[$key1] + $numbers[$key2])/2),1);
 
    echo 'Medianvärdet: ' . $median;
 
  } 
}
?>
 
<form method="post">
  Skriv nåt: <input type="number" name="antal" /><br />
  <input type="submit" name="submit" value="Skicka" />
</form>
 
<?php
include('foot.php');
?>