Avatar billede helle_jensen Nybegynder
25. november 2000 - 18:09 Der er 7 kommentarer og
3 løsninger

Summere lige/ulige tal

Jeg skal summere alle lige/ulige tal der ligger mellem en min_grænse og en maks_grænse
eks.
hvis min_grænse=9 og maks_grænse=15, så vil summen af de lige tal være: 10+12+14=36

programmet skal gøre brug af følgende metode
Privat boolean lige (int tal) {

metoden returnerer True hvis tal er lige ellers returner den False.
Svaret skal helst være med hele koden.
Mvh.
Helle
Avatar billede jakoba Nybegynder
25. november 2000 - 18:50 #1
Det ligner hjælp med skolearbejdet så du kan få din examen uden at have lært noget. Nix!
Avatar billede el_gnu Nybegynder
25. november 2000 - 19:23 #2
en smart måde at teste om tallet er lige er at dividere med 2 og så teste om resten er nul.
Dette kan gøres med modulo operatoren (%)
Avatar billede lbhansen Nybegynder
25. november 2000 - 21:55 #3
Jeg vil give jakoba ret i, at skoleopgaver bør man selv ligge noget arbejde i, istedet for at bruge dette forum.

Når du har skrevet et stykke kode, og er ved at hive hårrødderne ud på dig selv, kan det være relevant at spørge her.

Men modulus er vejen frem:)
Avatar billede erikjacobsen Ekspert
25. november 2000 - 22:49 #4
\"Svaret skal helst være med hele koden.\"  Ok, så får du en skitse:

  sumlige=0;
  sumulige=0;
  for(i=mingrænse  ...slutter-i-maksgrænse...) {
    hvis i er lige så sumlige tælles én op
    ellers sumulige tælles én op
  }
   
og i \"hvis i er lige\" skal du så bruge den der private boolean lige-funktion, der
er givet. Hvis du skal afprøve det, må du jo nok selv lave den, men det kan vi
nok også finde ud af, hvis du vil skrive hvad du når frem til på baggrund af
min skitse.
Avatar billede helle_jensen Nybegynder
26. november 2000 - 01:56 #5
Jeg var tæt på at kunne summere de lige tal, men er kørte fast og kan ikke se hvordan at den skal gå over og skrive summen af uligetal.
Her er min kode.


  class ligetal {
static final int start = 9;//startværdi
static final int slut = 15;//slutværdi
int tal;
  private static void main (String[] arts) {
int resultat=0;//resultatet gemmes her
 
for(int tal = start; tal<slut;tal++) {
private boolean resultat (int tal){
if((tal%2) == 0) return true;
    else return false;
}

resultat += tal;
System.out.println(resultat);

}

  }
  } 
Avatar billede lbhansen Nybegynder
26. november 2000 - 02:08 #6
Kunne det der compile?

Jeg tror nok jeg ville prøve lidt ala det her.

public void printNumbers( int min, int max ){
    int ligeTal = 0;
    int uligeTal = 0;
    for( int i = min; i < max;i++ ){
        if( lige( i ) )
            ligeTal++;
        else
            uligeTal++;
    }
private boolean lige( int tal ){
    return tal % 2 == 0;
}

God fornøjelse
Avatar billede lbhansen Nybegynder
26. november 2000 - 02:10 #7
hovsa. Læste ikke lige opgaven ordentligt.
ligeTal++ skal erstattes med ligeTal+=i;
uligeTal++ skal erstattes med uligeTal+=i;

Til sidst i printNumbers, kan du så printe dem ud.
Avatar billede helle_jensen Nybegynder
26. november 2000 - 17:20 #8
Her er hvad jeg kan komme frem til men det giver den forkerte sum.....


class LigetalSum 

{

  public static void main (String [] args)

{


  int ligetal=0;

  int Max = 9;

  int Min = 3;   

    System.out.println(\"\\nUdskriver summen af de lige tal\\n\") ;

 

  for( int i = Min; i < Max;i++ ){ 

 

   

    if( lige( i ) )
    {
   

     

        System.out.print(ligetal);

    }

    ligetal += i;

  }

}



  public static boolean lige(int tal)

{

  if (tal%2 == 1)

    return false;

  else {     

     

    return true;

  }

}

}
Avatar billede el_gnu Nybegynder
26. november 2000 - 18:08 #9
erstat

  for( int i = Min; i < Max;i++ ){ 

 

   

    if( lige( i ) )
    {
   

     

        System.out.print(ligetal);

    }

    ligetal += i;

  }

med

  for( int i = Min; i < Max;i++ )
  {
    if(lige( i ))
    {
      ligetal += i;
    }
  }
  System.out.print(ligetal);
Avatar billede el_gnu Nybegynder
26. november 2000 - 18:09 #10
og så skal for loopet ændres hvis max tallet skal regnes med:

for( int i = Min; i <= Max;i++ )
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