Показать сообщение отдельно
Старый 15.09.2008, 22:44   #59  
gigz is offline
gigz
Участник
MCBMSS
Соотечественники
 
19 / 43 (2) +++
Регистрация: 15.09.2008
Цитата:
Сообщение от CDR Посмотреть сообщение
Хм.. вот вроде бы эквивалент на X++

X++:
static void Google(Args _args)
{
 
    int     A[20];
    int     n = 4;
    int     nf = 1;
    int     i,j;
    int     jp = 0;
    str     line;
    int     tp = 0;
 
    anyType buffer;
 
    ;
 
    // Расчет факториала (количество возможных значений)
    for (i = 2; i <= n; i++)
        nf = nf * i;
 
    // Генерация массива
    for(i = 1; i <= n; i++)
        A[i] = i;
 
    // перебор всех возможных значений
    for(i = 1; i <= nf; i++)
    {
        line = '';
        for (j = 1; j <= n; j++ )
        {
            line = line + int2str(A[j]);
        }
        info(line);
 
        jp = 1;
        for(j = 1; j <= (n - 1); j++)
        {
            if (A[j] < A[j+1]) 
                jp = j;
        }
 
        tp = 1;
        for(j = n; j >= 1; j--)
        {
            if (A[j] > A[jp]) 
            { 
                tp = j; 
                break; 
            }
        }
 
        // swap
        buffer  = A[jp];
        A[jp]   = A[tp];
        A[tp]   = buffer;
 
        for(j = 1; j <= ( (n - jp)/2 ); j++)
        {
            // swap
            buffer = A[jp + 1 + j];
            A[jp + 1 + j] = A[n - 1 - j];
            A[n - 1 - j] = buffer;
        }
    }
}
Че-то не работает ...
1) в последнем цикле появилась куча ошибок с индексами