Пример #1
0
 public function __construct($etumerkki, $arvo)
 {
     // Tarkistetaan, että syöte on oikean muotoinen (vähintään
     // yksinumeroinen luku)
     if (preg_match('/^\\d+$/', $arvo) == 1) {
         $this->arvo = $arvo;
         parent::set_etumerkki($etumerkki);
     } else {
         parent::set_etumerkki("+");
     }
 }
Пример #2
0
 public function __construct($etumerkki, $kok_osa, $os, $nim)
 {
     $this->murto_osa = new Murtoluku($etumerkki, $os, $nim);
     parent::set_etumerkki($etumerkki);
     // Tarkistetaan, että syöte $kok_osa on positiivinen kokonaisluku.
     if (preg_match('/^\\d+$/', $kok_osa) == 1) {
         $this->kokonaisosa = $kok_osa;
         // Aina positiivinen!
     } else {
         $this->kokonaisosa = 0;
     }
 }
Пример #3
0
 public function __construct($etumerkki, $os, $nim)
 {
     parent::set_etumerkki($etumerkki);
     //Alustava (tarkistetaan samalla)
     // Tarkistetaan, että syötteet oikean muotoisia (kokonaislukuja ja
     // nimittäjä ei saa olla nolla). Osoittajan ja nimittäjän täytyy olla
     // samaa tyyppiä.
     if (is_object($os) && is_object($nim)) {
         if (get_class($os) == 'Kokonaisluku' && get_class($nim) == 'Kokonaisluku' && $nim->get_arvo() != 0) {
             $this->osoittaja = $os->get_arvo();
             // Aina positiivinen!
             $this->nimittaja = $nim->get_arvo();
             // Aina positiivinen!
             // Asetetaan etumerkki oikein, koska sekä osoittaja että
             // nimittäjä voivat olla negatiivisia lukuja.
             $miinusten_lkm = 0;
             // Apumuuttuja.
             $etumerkit_taulukossa = array($os->get_etumerkki(), $nim->get_etumerkki(), $this->get_etumerkki());
             for ($i = 0; $i < sizeof($etumerkit_taulukossa); $i++) {
                 if ($etumerkit_taulukossa[$i] == $os->get_miinusmerkki()) {
                     $miinusten_lkm++;
                 }
             }
             if ($miinusten_lkm == 0 || $miinusten_lkm == 2) {
                 parent::set_etumerkki('+');
             } else {
                 parent::set_etumerkki('-');
             }
         }
     } else {
         if (is_string($nim) && is_string($os) || is_int($nim) && is_int($os) || is_numeric($nim) && is_numeric($os)) {
             // Hyväksytään myös syötteinä myös pelkät kokonaisluvut. Tosin
             // tässä vaiheessa vain etumerkittömät:
             if ($this->on_etumerkiton_kokonaisluku($os) && $this->on_etumerkiton_kokonaisluku($nim) && $nim != 0) {
                 $this->osoittaja = $os;
                 $this->nimittaja = $nim;
                 parent::set_etumerkki($etumerkki);
             } else {
                 $this->osoittaja = 0;
                 $this->nimittaja = 1;
                 parent::set_etumerkki($etumerkki);
             }
         } else {
             $this->osoittaja = 0;
             $this->nimittaja = 1;
             parent::set_etumerkki($etumerkki);
         }
     }
 }
Пример #4
0
 /**
  * Piirtää vasemman sulun, jos seuraavan luvun etumerkki on miinus.
  * @param Luku $luku 
  * @return string Palauttaa merkkijonon.
  */
 public function piirra_tarv_vasen_sulku($luku)
 {
     $palautus = "";
     if ($luku->on_negatiivinen()) {
         $palautus = new Yksirivinen("(");
     }
     return $palautus;
 }