parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Вполне допустимое решение

moko 01.07.2019 01:55

Если говорить про конкретный код, то можно воспользоваться методом inc и избавиться от копирования кода, выделив метод. Например так:
@update[value]
^if(def $value){
  ^caller.summark.inc($value)
  ^caller.colmark.inc[]
}

@main[]
$summark(0)
$colmark(0)
^update[$usrslist.in_p1]
^update[$usrslist.in_p2]
^update[$usrslist.in_p3]
^update[$usrslist.in_p4]
^if($colmark==0){H/Д}{$mark($summark/($colmark*2)*100)
$mark %}
Если говорить о задаче в целом, то посчитать сумму и число не null параметров можно и средствами sql, если mysql, то например так:
SELECT IFNULL(p1,0)+IFNULL(p2,0)+IFNULL(p3,0) as mark, 3-(ISNULL(p1)+ISNULL(p2)+ISNULL(p3)) as cnt
Если планируется, что число параметров будет меняться, возможно стоит перейти на другую структуру таблицы:
<Имя> <Имя параметра> <Значение>
Тогда в коде вообще не будет названий параметров, а значит их можно будет добавлять без изменения кода программы.