Wielkie dzięki Cezar, właśnie miałem z
http://www.matematyka.pisz.pl/strona/1026.html napisać własne (IMG:
http://forum.php.pl/style_emoticons/default/smile.gif)
Dzięki za Twoje chęci (IMG:
http://forum.php.pl/style_emoticons/default/smile.gif)
Zaraz Ci dam "pomógł" tylko odpalę ten kod (IMG:
http://forum.php.pl/style_emoticons/default/haha.gif)
@edit
Ładnie działa, zaraz napiszę do tego klasę i ją udostępnie dla forum. (IMG:
http://forum.php.pl/style_emoticons/default/smile.gif)
Wszystkim powyżej należy się "pomógł".
@edit
Update klasy:
<?php
// Autor: Babcia@Stefa
// Wielkie podziękowania dla Cezar708
// Wersja: 1.1
class MatchSW
{
// V = oceny (typ: array), W = wagi (typ: array)
protected $V, $W;
// Result: wynik końcowy po wywołaniu funkcji GetResult zapisuje się do tej zmiennej, to znaczy nie trzeba ponownie wywoływać tej funkcji aby zdobyć wynik. Owner: Nazwa/identyfikator właściciela (typ: mixed)
public $Owner, $Result;
public function SetOwner($_ATTR)
{
// ustawia właściciela ocen - tak na wszelki wypadek można wrzucać jakiś identyfikator
return $this -> Owner = $_ATTR;
}
public function ThrowNew($v, $w)
{
$w = (int
)str_replace(',', '.', $w); // zamienia przecinki na kropki aby nie powstał string... i konwertuje do int $v = (int
)str_replace(',', '.', $v); // to samo co u góry ^^, {
// wrzuca elementy do tablic
$this->V[] = $v;
$this->W[] = $w;
return true;
}
}
public function GetAll()
{
// jeśli brak wyniki :)
if(!$this->Result)
$this->GetResult();
foreach ($this->V as $key => $value)
{
// zapisuje do jednej tablicy
$Ratings[] = array('rating' => $value, 'weight' => $this->W[$key]); }
// zwraca wyniki
return array('result' => $this->Result, 'ratings' => $Ratings); }
public function GetResult()
{
// Wielkie dzięki dla Cezar708
// zabezpieczenie przed errorem wywalanym przez pętle
{
// zmienne
$oceny = $this->V;
$wagi = $this->W;
$sumaWazona = 0;
// obliczenia
foreach( $oceny as $klucz => $ocena ){
$sumaWazona += $ocena * $wagi[$klucz];
$sumaWag += $wagi[$klucz];
}
$wynik = $sumaWazona / $sumaWag;
return $this->Result = $wynik;
}
}
}
$jan = new MatchSW();
$jan -> SetOwner('Jan Kowalski'); // ustawia identyfikator/nazwę ucznia na "Jan Kowalski" bez "
$jan -> ThrowNew(5, 5); // dodaje ocenę 5 z wagą 5
$jan -> ThrowNew(5, 4); // dodaje ocenę 5 z wagą 4
$jan -> ThrowNew(5, 4); // dodaje ocenę 5 z wagą 4
// pobiera wyniki i zapisuje tablicę wynikową do zmiennej
$results = $jan->GetAll();
// tekst do wyświetlenia - tabelka
$text = '<table border="1" cellpadding="0" cellspacing="0"><tr><td colspan="2">Oceny ucznia "' .$jan->Owner. '"</td></tr><tr><td>Ocena</td><td>Waga</td></tr>';
foreach ($results['ratings'] as $key => $value)
{
// przegląda wyniki i generuje tabelkę
$ratings++;
$text .= '<tr><td>' .$value['rating']. '</td><td>' .$value['weight']. '</td></tr>';
}
// zakańcza tabelkę
$text .= '<tr><td colspan="2">Razem ' .$ratings. ' ocen, z średnia ' .$results['result']. '</td></tr>';
// wyświetla wynik
?>
Dziękuję, Babcia@Stefa
Ten post edytował Babcia@Stefa 28.04.2008, 15:56:12