Diskuze: Rozpis - generovani zapasu

C++ C a C++ Rozpis - generovani zapasu

Avatar
Petr
Neregistrovaný
Avatar
Petr:

Ahoj, potřeboval bych pomoc s přepsáním tohoto kódu z VBA do programovacího jazyka C.

Function JeLiche(ByVal cislo As Integer)

Return CBool

End Function

Function GenerujRozpis(ByVal PocetTymu As Integer) As String(,)

Dim n, k, s, i, j, TymA, TymB As Integer

If JeLiche(PocetTymu) Then

n = PocetTymu + 1

Else

n = PocetTymu

End If

k = n - 1 'počet kol

s = n / 2 'počet zápasů na kolo

Dim Zapasy(k, s - 1) As String

For i = 1 To k

If Not JeLiche(PocetTymu) Then Zapasy(i, 0) = i & "-" & n

For j = 1 To s - 1

TymA = ((n - j + i - 2) Mod k) + 1

TymB = ((i + j - 1) Mod k) + 1

Zapasy(i, j) = TymA & "-" & TymB

Next

Next

Return Zapasy

End Function

 
Odpovědět 15.5.2011 20:33
Avatar
levpatrik
Člen
Avatar
levpatrik:

Sice jazyk VBA neznám ale jednodušší by bylo napsat co to má dělat. Vypadá to vcelku jedonoduše.

 
Nahoru Odpovědět 15.5.2011 21:40
Avatar
sczdavos
Šéf
Avatar
Odpovídá na Petr
sczdavos:

Ahoj, tady máš zdroják, drobnosti snad už zvládneš. :)

#include<stdio.h>
#include<stdlib.h>

int je_liche(int cislo)
{
    if(cislo % 2 == 0)
        return 0;
    else
        return 1;
}


int main()
{
    int pocet_tymu = 25;
    int n = 0, k = 0, s = 0, i = 0, j = 0, tym_a = 0, tym_b = 0;

        if(je_liche(pocet_tymu))
                n = pocet_tymu + 1;
        else
                n = pocet_tymu;

        k = n - 1;// počet kol
        s = n / 2;// počet zápasů na kolo

        for(i = 1; i <= k; i++)
        {
        printf("\nKolo: %d\n", i);
                if(!je_liche(pocet_tymu))
        {
            printf("tym %d - tym %d\n", i, n);
        }
                for(j = 1; j < s; j++)
                {
                        tym_a = ((n - j + i - 2) % k) + 1;
                        tym_b = ((i + j - 1) % k) + 1;
            printf("tym %d - tym %d\n", tym_a, tym_b);
                }

        }

        getchar();
}
Nahoru Odpovědět 15.5.2011 22:21
Čím více času dostaneš, tím méně ho máš.
Avatar
Petr
Neregistrovaný
Avatar
Petr:

Ahoj, díky moc. S drobnostmi už se snad poperu.

 
Nahoru Odpovědět 16.5.2011 14:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.