Предположим следующие значения переменных были установлены ранее в коде:Как написать этот старый фрагмент BASIC как функцию PHP?
LSLATHOR = 1780
, NRSLATVER = 34
Тогда у меня есть эти две линии GWBASIC:
100 PITCHHOR=(LSLATHOR/(NRSLATVER+1)) : LSLATHOR=PITCHHOR*(NRSLATVER+1)
110 IF PITCHHOR>72 THEN NRSLATVER=NRSLATVER+1:GOTO 100
120 LPRINT "HORIZONTAL PITCH is equal to : ";PITCHHOR;
Теперь, если я хотел поставить эту логику, PHP-функция, как бы я это сделала ?:
function calc_h($slat_length_h, $slat_qty_v) {
$pitch_h = ($slat_length_h/($v_slat_qty + 1));
if ($pitch_h > 72) {
while ($pitch_h > 72) {
$v_slat_qty += 1;
$slat_length_h = $pitch_h * ($v_slat_qty + 1);
$pitch_h = ($slat_length_h/($v_slat_qty + 1));
}
}
return $pitch_h;
}
$slat_length_h = 1780;
$slat_qty_v = 34;
echo calc_h($slat_length_h, $slat_qty_v);
Что вам нужно знать, это что иногда будет существовать условие, где PITCHHOR > 72
, тогда ему нужно настроить/пересчитать $ pitch_h согласно сценарию GWBasic.
Надеюсь, я предоставил достаточно информации. Ty vm.
Это 'if' вокруг вашего цикла while избыточно, они проверяют одно и то же состояние. Но каков ваш реальный вопрос? У вас есть обе функции, проверьте, производят ли они один и тот же результат для нескольких входов. – knittl
Я не думаю, что моя PHP-функция верна. Что мне нужно настроить, чтобы получить правильный результат? – TheRealWitblitz