Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
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
Tým ITnetwork
Avatar
Odpovídá na Petr
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
Čím více času dostaneš, tím méně ho máš.
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.