[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с функцией.
4uvak01
Начал делать, но подумал, что лучше бы функцией все это. Не получается присвоить область значений ax+by=[c,d), помогите, пожалуйста

<?php
$a=1;
$b=2;
$c=20;
$d=30;

$x=5;
$y=6;
$z=3;

if(($a*$x+$b*$y)==$c) $u=$a*$x+$b*$y;
elseif(($a*$x+$b*$y)<$c) $u=$x+$y;
elseif(($a*$x+$b*$y)>=$d) $u=1-$x-$y;
echo "u = $u";
?>
casper - gg
Что это за запись - ax+by=[c,d), если означает ax+by=c или ax+by=d то вот так можно:

if(( $a*$x+$b*$y)==($c||$d) ) $u=$a*$x+$b*$y;


часто повторяется это выражение - $a*$x+$b*$y:



$exp = $a*$x+$b*$y;

if( $exp==$c || $exp==$d ) $u=$exp;
elseif( $exp<$c ) $u=$x+$y;
elseif( $exp>$d ) $u=1-$x-$y;
echo "u =". $u;



может такая запись ax+by=[c,d) означает ax+by=c и в тоже время ax+by=d то вот так:


if( $exp==$c && $exp==$d ) $u=$exp;
Guest
Цитата
Что это за запись - ax+by=[c,d)

Диапазон значений это. Значит, что c <= ax+by < d
sergeiss
4uvak01, для начала присвой выражение ax+by какой-нибудь переменной и дальше уже работай с ним.
Например,
$condition = $a*$x + $b*$y;


И порядок условий важен. Сначала лучше сделать "меньше ЦЭ", затем "больше или равно ДЭ", а остаток как раз будет в диапазоне от ЦЭ до ДЭ.

if( $condition < $c ) {
... // выражение 2
}
else if( $condition >= $d ) {
... // выражение 3
}
else {
... // выражение 1
}


Впрочем, можно и "в лоб", в том порядке, как написано в условии:
if( $c <= $condition and $condition < $d ) {
... // выражение 1
}
else if( $condition < c ) {
... // выражение 2
}
else {
... // выражение 3
}


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.