Php 帕斯卡函数的一部分

Php 帕斯卡函数的一部分,php,pascal,Php,Pascal,我正试图将一个pascal程序重写为PHP,但不明白pascal函数的这一部分是做什么的: while (u[3] <> 1) and (u[3]<>0) and (v[3]<>0)do begin q:=u[3] div v[3]; for i:=1 to 3 do begin t:=u[i]-v[i]*q; u[i]:=v[i];

我正试图将一个pascal程序重写为PHP,但不明白pascal函数的这一部分是做什么的:

 while (u[3] <> 1) and (u[3]<>0) and (v[3]<>0)do
       begin
       q:=u[3] div v[3];
       for i:=1 to 3 do
           begin
           t:=u[i]-v[i]*q;
           u[i]:=v[i];
           v[i]:=t;
           {writeln('u',i,'=',u[i],'  v',i,'=',v[i]); }
           end;
       end;
       if u[1]<0 then u[1]:=n+u[1];
       rae:=u[1];
while(u[3]1)和(u[3]0)以及(v[3]0)do
开始
q:=u[3]div v[3];
对于i:=1到3 do
开始
t:=u[i]-v[i]*q;
u[i]:=v[i];
v[i]:=t;
{writeln('u',i',=',u[i],'v',i',=',v[i]);}
结束;
结束;

如果u[1]A非常该代码的直译,则应为:

while ($u[3] != 1 && $u[3] != 0 && $v[3] != 1 )
{
    $q = floor($u[3] / $v[3]);

    for ($i = 1; $i <= 3; $i++)
    {
        $t = $u[$i] - $v[$i] * $q;
        $u[$i] = $v[$i];
        $v[$i] = $t;
        //writeln('u',i,'=',u[i],'  v',i,'=',v[i]);
    }
}

if ($u[1] < 0 )
    $u1] = $n + $u[1];

$rae = $u[1];
while($u[3]!=1&&$u[3]!=0&&$v[3]!=1)
{
$q=地板($u[3]/$v[3]);
对于($i=1;$i
而($u[3]!=1)&&($u[3]!=0)&($v[3]!=0){
$q=地板($u[3]/$v[3]);
对于($i=1;$i
而($u[3]!=1&&$u[3]!=0&&$v[3]!=0)
{
$q=($u[3]-($u[3]]$v[3])/$v[3];//与地板($u[3]/$v[3])相同,但我想在这里使用%:)

因为($i=1;$i我不知道帕斯卡,但我试过:)

while($u[3]!=1&&$u[3]!=0&&$v[3]!=0)[
$q=地板($u[3]/$v[3]);

对于($i=1;$i2对David代码的小更正:

while ($u[3] != 1 && $u[3] != 0 && $v[3] != 1 )
应该是

while ($u[3] != 1 && $u[3] != 0 && $v[3] != 0 )

在转换数组时,请考虑php中的数组使用0作为第一个索引

$u= array( 3, 5, 22 )
echo u[1]; // prints 5

模和div不一样。而且for会少转一圈。对不起,for循环。我仍然认为%是我们需要的,如果我记得的话,div是用来得到除法的余数的,这就是%所做的。div是用来得到整数部分的,mod是用来得到余数的好吧!!!我很抱歉我的无知!!你是对的在地板上,函数模数和div不一样。在帕斯卡中,div是除法,余数被丢弃。实际上是结果的整数部分。现在这是余数。@bazmegakapa现在它和你描述的一样好了,这一行做什么“地板($u[3]/$v[3])”Div是除法结果的整数部分。在这里,我进行除法,并将结果交给floor,floor只保留整数部分(这是一个始终向下舍入的整数部分)。做得很好。祝你好运,你在哪里更正…;)继续做好工作
while ($u[3] != 1 && $u[3] != 0 && $v[3] != 1 )
while ($u[3] != 1 && $u[3] != 0 && $v[3] != 0 )
for ($i = 1; $i < 3; $i++)
for ($i = 1; $i <= 3; $i++)
echo 'u'.$i.'='.$u[$i].' v'.$i.'='.$v[$i];
$u= array( 3, 5, 22 )
echo u[1]; // prints 5