Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Nauč se s námi víc. Využij 50% zdarma na e-learningové kurzy.
C# week
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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
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
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.