Avatar billede mercu Nybegynder
09. oktober 2009 - 19:46 Der er 14 kommentarer

Fodbold tabel.

Jeg har fået en opgave fra uni, hvor jeg skal udarbejde en fodbold tabel fra SAS ligaen på baggrund af følgende data:

Kampnr.   
Dag   
Dato   
Kl.   
Hjemmehold   
Udehold    Spillested   
Res

Jeg skal udarbejde en tabel, som kan vise:
Placering
klub
antal spillede kampe
kampe vundne
kampe uafgjort
Kampe tabt
mål for
mål imod
mål difference
samlet antal point

Jeg er dog meget i tvivl om, hvordan jeg får den bygget op hensigtsmæssigt.

Kamepens resultat i de oprindelige data er lavet, som en streng. Så jeg tænker at bruge en streng funktion til at finde første og andet tal, sammenligne de to og lave nogle if sætninger, også notere om kampen er vundet, tabt, eller uafgjort.

Til sidst vil jeg så indsætte en formel som siger u * 1 + v * 3 + t * 0 = antal point.

Jeg vil også bruge datoen, til at teste om kampen er spillet overhovedet.

Jeg er dog meget i tvivl om, hvordan jeg får programmet til at gentage proceduren for alle holdene?
Skal jeg lave 12 variable til holdene og gentage proceduren for hvert hold??

Håber nogle kan give et lille input eller to så jeg kan komme videre.

PS: jeg forventer ikke I løser opgaven, men giver mig ideer til at komme videre fordi jeg sidder fast.
Avatar billede edron Nybegynder
11. oktober 2009 - 15:49 #1
Jeg ved ikke lige hvordan du skal programmere det, men du kan måske få ideer til selve opsætningen ved at studere denne side: http://www.nifs.no
Avatar billede mercu Nybegynder
12. oktober 2009 - 22:46 #2
jeg har lagt opgave teksten op og filen til programmet.

http://peecee.dk/upload/view/196717
http://peecee.dk/upload/view/196720

Håber der er en som vil give input.
Avatar billede tjacob Juniormester
15. oktober 2009 - 10:10 #3
Du er ikke den eneste, Se her:

http://www.eksperten.dk/spm/889467

Der har jeg lagt et link til et regneark du kan bruge til inspiration........
Avatar billede mercu Nybegynder
15. oktober 2009 - 12:37 #4
Det er helt sikkert godt inspiration du kommer med, men kan du prøve at forklare mig, hvordan jeg får den til at tage hver enkelt hold og gentager proceduren for?

Hvordan får jeg den til at tage alle Ob's kampe, alle FCk's osv give point, mål osv?
Den skal jo i givet fald loope over nogle celler, men jeg kan simpelthen ikke se hvordan jeg skal gøre det.
Avatar billede tjacob Juniormester
15. oktober 2009 - 13:25 #5
Download regnearket i det sidste link, og kig på koden....
Avatar billede mercu Nybegynder
15. oktober 2009 - 13:38 #6
Jeg kan se du bruger 2 funktioner du selv laver.

1 til sorteringen og 1 til at regne point osv ud - dem kan jeg sagtens se mig ud af.

Skal dog lige spørge om din
Iout(6) er et array?

Så bruger du tællere I, J til rækker søjler og du laver en for løkke til at kører alle rækker igennem, hvor du tester om der er data i "res".

Er det denne kode du bruger til at sørge for den tæller hver i sær?

    sTmp = "AaB,AGF,Brøndby,Esbjerg,FC København,FC Midtjylland,FC Nordsjælland," & _
          "HB Køge,OB,Randers FC,Silkeborg,SønderjyskE"
    Dim Team() As String
    Team = Split(sTmp, ",", , vbTextCompare)
Avatar billede tjacob Juniormester
15. oktober 2009 - 13:47 #7
lOut er et 1-dimensionelt array der holder statistikken for dette hold. Du kan se på kommentarerne hvad de enkelte pladser holder.
Funktionen GetTeamStat outputter så dette array, og bliver i VisStilling summeret op i et større array (AllStat) der holder statistik for alle hold.

Den nederste kode er blot til at lave liste over alle holdene.
Denne liste bruges i loopet til at finde statistik for holdene. Dvs den render igennem kolonner F og G for at finde match på et hold.
Avatar billede mercu Nybegynder
15. oktober 2009 - 13:59 #8
Det giver ok mening.

Vi har dog ikke lært arrays endnu så jeg må hellere bruge variable i stedet?

Jeg kan vel godt lave noget lignende dit bare med variable i stedet for array - selvom array gør det en del hurtigere selvfølgelig
Avatar billede tjacob Juniormester
15. oktober 2009 - 14:09 #9
Ja, det kan du selvfølgelig sagtens. Jeg kan forestille mig koden ser lidt uoverskuelig ud, da der er masser af arrays.
Desuden er koden overhovedet ikke optimeret, så den kunne helt sikkert være en del kortere og mere overskuelig. Den var nu også bare tænkt som inspiration.

Man lærer jo mest ved at lave det selv..........;)
Avatar billede mercu Nybegynder
15. oktober 2009 - 14:26 #10
Selvfølgelig lærer man mest ved at gøre det selv :)

Jeg synes bare det er svært lige at se mig ud af, hvordan jeg får den til det jeg gerne vil.

selve tabel udfyldningen (point, kampe, V, U, T, osv) er ikke så svær.

Men hvordan jeg får knyttet Holdet til det har jeg meget svært ved at se, hvordan jeg genererer en kode, som kan og også kan "poste" den i en tabel efterfølgende.

sorteringen er jeg heller ikke i tvivl om sådan rigtigt. - Det burde være piece of cake, hvis jeg bare kan få lavet en tabel hvor jeg har alle holdene + point samt målscore. Så kan man altid sortere den jo.
Avatar billede tjacob Juniormester
15. oktober 2009 - 15:05 #11
Her er lidt pseudo-kode til et hold ad gangen:

1) Du løber kolonnen med Hjemmehold igennem.
2) Hvis hold matcher:
      -tæl en kamp spillet
      -find kolonnen (i samme række) der har resultat og få målscore.
      -tæl mål scoret og mål imod
      -tæl point (hvis scoret>imod=+3,hvis scoret=imod=+1

Derefter gør det samme for udehold

Nu bør du have 4 variable for dette hold:
-spillede kampe
-mål scoret
-mål imod
-point

Dette gentages for alle 12 hold, og du er klar til at lave tabellen.
Avatar billede mercu Nybegynder
15. oktober 2009 - 15:54 #12
Så du vil lave 12 variable til hold?

så fx for OB

dim OB as string

Så skal jeg teste hvor mange gange OB går igen i ranget "hjemmekampe".

Men, hvordan ville du gøre det? string Compare?
Avatar billede tjacob Juniormester
15. oktober 2009 - 16:19 #13
Dette er et eksempel der kører række 1 til 50 i kolonne F:

Dim sTeam as String
sTeam="OB"

For i = 1 to 50
    If Cells(i,6)=sTeam Then
        'her laver du al sammentælling
    End if
Next i
Avatar billede mercu Nybegynder
13. december 2009 - 19:38 #14
smid et svar så du kan få nogle point..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester