2013-12-08 1 views
1

Предположим следующие значения переменных были установлены ранее в коде:Как написать этот старый фрагмент 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.

+1

Это 'if' вокруг вашего цикла while избыточно, они проверяют одно и то же состояние. Но каков ваш реальный вопрос? У вас есть обе функции, проверьте, производят ли они один и тот же результат для нескольких входов. – knittl

+0

Я не думаю, что моя PHP-функция верна. Что мне нужно настроить, чтобы получить правильный результат? – TheRealWitblitz

ответ

1

Я бы написал следующее. Но поскольку у вас есть исходный код, вы можете просто попытаться подключить несколько значений образца и сравнить результаты.

function calc_pitchhor($lslathor, $nrslatver) { 
    do { 
     $pitchhor = ($lslathor/($nrslatver+1)); 
     $lslathor = $pitchhor*($nrslatver+1); 
     ++$nrslatver; 
    } while($pitchhor > 72) 

    return $pitchhor; 
} 


$lslathor = 1780; 
$nrslatver = 34; 

echo "HORIZONTAL PITCH is equal to: ", calc_pitchhor($slat_length_h, $slat_qty_v); 

 Смежные вопросы

  • Нет связанных вопросов^_^