Avatar billede woodbase Nybegynder
17. december 2003 - 17:33 Der er 4 kommentarer og
1 løsning

Udskriv en sorteret statestik? (arrays)

Der skal udskrives en sorteret statestik.

String fag[] ={"tysk","fransk","svensk"};
String elev[] ={"ole","ib","arne","bo"};
String valgt[][]=[4][2];

Udskrift (eks):

Tysk 3
Svensk 2
Fransk 1

HJÆÆÆÆLP!!!!
Avatar billede jakoba Nybegynder
17. december 2003 - 17:49 #1
Du kommer til at fortælle hvad du ønsker at gøre
og lidt om hvordan dine arrays relaterer til hinanden
Avatar billede jakoba Nybegynder
17. december 2003 - 17:50 #2
og gerne hvad pokker linien
  String valgt[][]=[4][2];
betyder.
Avatar billede woodbase Nybegynder
17. december 2003 - 17:53 #3
Ideen er at man for hver elev indtaster et fag.
Hver elev vælger to fag.
Nu skal jeg udskrive hvormange elever har valgt hvert fag, og bagefter hvilke elever der har valgt hvilke fag.

Eks.
Tysk

ole
ib
Avatar billede jakoba Nybegynder
17. december 2003 - 18:18 #4
String valgt[][]= new String[4][2];    // arrray med alle 4 elevers valg

Så først skal vi have en måde at komme fra elevens navn, til hans index i arrayet valgt

int elevnavnTilIndex( String elevnavn ) {
    for (int i=0; i<elev.length; i++ ) {
        if ( elev[i].equals( elevnavn ) ) {
            return i;    // navn fundet i arrayet elev
        }
    }
        // ukendt elevnavn
    return -1;    // eller måske du hellere vil kaste en exception.
}// endmethod elevnavnTilIndex

String indexTilElevnavn( int index ) {
    return elev[index];  // så simpel du måske ikke gider lave den metode.
}// endmethod indexTilElevnavn

På samme måde får vi brug for at komme fra fagnavn til index i fag arrayet:

int fagnavnTilIndex( String fagnavn ) {
    for (int i=0; i<fag.length; i++ ) {
        if ( elev[i].equals( fagnavn ) ) {
            return i;    // fagnavn fundet i arrayet elev
        }
    }
        // ukendt fagnavn
    return -1;    // eller måske su hellere vil kaste en exception.
}// endmethod fagnavnTilIndex

String indexTilFagnavn( int index ) {
    return fag[index];  // så simpel du måske ikke gider lave den metode.
}// endmethod indexTilFagnavn

og du skal bruge et array at tælle i de resultater du får

Int resultat[] = new int[3];  // en celle for hvert fag

Og nu kan du løbe arrayet valgt igennem og tælle op for hvert fag:
    for (int i=0; i<resultat.length; i++ ) resultat[i] = 0; // initier til 0
    for (int i=0; i<valgt.length; i++ ) {
        for (int j=0; j<valgt[0].length; j++ ) {
            resultat[ fagnavnTilIndex( valgt[i][j] ) ] += 1;
                // forudsætter at alle værdier i valgt er OK
        }
    }
    for (int i=0; i<resultat.length; i++ ) {
        System.out.println( "Faget " +fag[i] +" blev valgt af "
                          +resultat[i] +" elever." );
    }

noget i den retning.

mvh JakobA
Avatar billede woodbase Nybegynder
15. oktober 2004 - 07:22 #5
Jeres eksempler var lidt for avancerede... Fik det løst på anden vis. Tak for hjælpen. :)
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