Example #1
0
 /**
  * Функция преобразования дробей при умножении
  */
 public function convert_div_in_mult()
 {
     $divop = array();
     // временный массив
     // взять дроби
     for ($i = 0; $i < count($this->childrens); $i++) {
         if (get_class($this->childrens[$i]) == 'qtype_correctwriting_div_operator') {
             array_push($divop, $this->childrens[$i]);
             array_splice($this->childrens, $i, 1);
             $i--;
         }
     }
     // создать новый
     if (count($divop) > 1) {
         $tmp = new qtype_correctwriting_multi_operator();
         foreach ($divop as $i => $value) {
             array_push($tmp->childrens, $value->right);
         }
         $newch = new qtype_correctwriting_div_operator();
         $newch->left = new qtype_correctwriting_operand("1", 1);
         $newch->right = $tmp;
         $newch->calculate_tree_in_string();
         $divop = array($newch);
     }
     // возвращать в списку сыновей
     foreach ($divop as $value) {
         array_push($this->childrens, $value);
     }
 }
Example #2
0
 public function convert($parent)
 {
     $this->convert_each_childrens();
     $tmp = new qtype_correctwriting_div_operator();
     $tmp->left = clone $this->left;
     $tmp->right = $this->right;
     $tmp->calculate_tree_in_string();
     $newass = new qtype_correctwriting_assign_operator();
     $newass->left = $this->left;
     $newass->right = $tmp;
     $newass->calculate_tree_in_string();
     $this->ptonewchild = $newass;
 }