Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Petr
Neregistrovaný
Avatar
Petr:15.5.2011 20:33

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:15.5.2011 21:40

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
Vlastník
Avatar
Odpovídá na
sczdavos:15.5.2011 22:21

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
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Petr
Neregistrovaný
Avatar
Petr:16.5.2011 14:42

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.