Gå til innhold

Anbefalte innlegg

har en finurlig oppgave som eg holder på med og er ikke sikker på hvordan eg skal få den til. eller hekt hvordan en skal gå fram. den lyder sånn: skriv et program som leser lengden av en tidsperiode i sekunder skrevet inn av bruker, feks 3603.

så skal programmet skrive ut 1time, 0 minutter og 3 sekunder.

Lenke til kommentar
Videoannonse
Annonse

Du må definere en tabell som er 10 lang og initialisere den til 0 i hver celle.

Så henter du input fra brukeren i en while løkke som avsluttes når brukeren taster inn et negativt tall.

Etterpå printer du ut hver enkelt verdi i tabellen. (Husk å ta hensyn til at inntastet verdi kan være >9 og at input ikke nødvendigvis er en int)

Lenke til kommentar

ka skal eg bruke som betingelsen i while løkken då?.

 

Du må definere en tabell som er 10 lang og initialisere den til 0 i hver celle.

Så henter du input fra brukeren i en while løkke som avsluttes når brukeren taster inn et negativt tall.

Etterpå printer du ut hver enkelt verdi i tabellen. (Husk å ta hensyn til at inntastet verdi kan være >9 og at input ikke nødvendigvis er en int)

Lenke til kommentar

ka skal eg bruke som betingelsen i while løkken då?.

 

Du må definere en tabell som er 10 lang og initialisere den til 0 i hver celle.

Så henter du input fra brukeren i en while løkke som avsluttes når brukeren taster inn et negativt tall.

Etterpå printer du ut hver enkelt verdi i tabellen. (Husk å ta hensyn til at inntastet verdi kan være >9 og at input ikke nødvendigvis er en int)

 

Feks:

int input=0;

while(input>=0)

{

//Kode her

}

Lenke til kommentar

den er mer vanskelig enn som så, eksempelet av hvordan den skal kjøre er:

0: forekommer 1 gang

1: forekommer 1 gang

2: forekommer 2 ganger

3: forekommer 4 ganger

4: forekommer 1 gang

5: forekommer 3 ganger

9: forekommer 1 gang

 

eg bare ser ikkje kordan eg skal bruke while løkken og få en god betingelse. kordan eg skal gå fram visst du skjønner

Lenke til kommentar

Det kan hende det er lettere å bruke en while(true), her et et eksempel på en av mange mulige løsninger:

 

int[] tabell = new int[]{0,0,0,0,0,0,0,0,0,0} //tabell, 10 lang, initialisert til 0 i alle celler
int input=0;
while(true)
{
   input=LES INN INPUT; //Har aldri gjort dette selv i Java, men regner med dere har lært hvordan man leser input fra brukeren 
   if(input<0)
       break;
   else if(input>9)
       System.out.println("Tallet er for stort");
   else
       tabell[input]++;
}
for(int i=0; i<tabell.length;i++)
{
   System.out.println("Antall forekomster av tallet "+i+": "+tabell[i]");
}

Lenke til kommentar

vi har ti referanser,str1 og str2, som refererer til String-objekter. Dersom (str1==str2) er sann så er str1.equals(str2) alltid sann. men det motsatte er ikke alltid sant? why?

 

Når du bruker == for sammenligning sjekker den om objektreferansen er den samme. Altså, om str1 og str2 peker på samme minneposisjon. "Equals" sjekker om VERDIEN er den samme.

 

På den forrige oppgaven:

 

Du må lage en loop som leser input. Hvis det er et tall (bruk Integer.parseInt()) øker du det elementet i en array...

 

int tall = Integer.parseInt(myString);
int[] tabell = int[10];
tabell[tall]++;

// så for å skrive ut:
for (int i = 0; i < 10; i++)
{
  // her skriver du ut f.eks: i + " forekommer " + tabell[i] + " ganger"
}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...