apwr Skrevet 21. september 2006 Del Skrevet 21. september 2006 (endret) Hvordan legger man sammen alle tall fra 1 til og med et tilfeldig innskrevet tall i java? Skriver jeg inn tallet 10 f.eks, skal både 1,2,3,4,5,6,7,8,9 og 10 summeres. Endret 21. september 2006 av apwr Lenke til kommentar
Deus Skrevet 21. september 2006 Del Skrevet 21. september 2006 sett opp en for-løkke så burde ikke det være noe problem for(i=1;i<=x;i++) {tall=tall+i} Lenke til kommentar
Traktormannen Skrevet 21. september 2006 Del Skrevet 21. september 2006 (endret) Hvordan legger man sammen alle tall fra 1 til og med et tilfeldig innskrevet tall i java?Skriver jeg inn tallet 10 f.eks, skal både 1,2,3,4,5,6,7,8,9 og 10 summeres. 6906481[/snapback] Det enkleste er vel å lage en for-løkke fra 1 opp til x (hvor x er det inleste tallet) int svar; for(int i=1;i<=x;i++){ svar+=i;} Edit: litt sen i vendingen, samme prinsipp Endret 21. september 2006 av Traktormannen Lenke til kommentar
apwr Skrevet 21. september 2006 Forfatter Del Skrevet 21. september 2006 Takk. Her er koden jeg har laget: import javax.swing.JOptionPane; // Hjelpeprogram for innlesing og utskrift public class Oppgave2a { public static void main(String[] args) { //------------------------------------------------------------------- //--- Variabeldeklarasjon ------------------------------------------- //------------------------------------------------------------------- double tall1; // variabel som leser inn grensetall double i; // tellevariabel som styrer gjennomløp av sløyfe double sum; // variabel som inneholder sum av alle tall //fra 1 til og med innlest tall1 String inputTall1; // teksttallvariant av tall1 //------------------------------------------------------------------- //--- Leser inn verdier (som tekst) --- //------------------------------------------------------------------- inputTall1 = JOptionPane.showInputDialog( "Skriv inn grensetallet" ); //------------------------------------------------------------------- //--- Konverterer teksttall til heltall ----------------------------- //------------------------------------------------------------------- tall1 = Integer.parseInt( inputTall1 ); //------------------------------------------------------------------- //--- Utfører beregning --------------------------------------------- //------------------------------------------------------------------- sum = 0; for (i = 1; i<=tall1; i++) sum = (tall1+i); } //endfor //------------------------------------------------------------------- //--- Skriver ut resultat --- //------------------------------------------------------------------- JOptionPane.showMessageDialog(null, "Summen av de innleste tall: " + sum, "Resultat",JOptionPane.PLAIN_MESSAGE ); //------------------------------------------------------------------- //--- Avslutter program --- //------------------------------------------------------------------- system.exit(0); //------------------------------------------------------------------- }//end metode main() }//end klasse Oppgave2a Jeg får feilmeldinger på både JOptionPane.showMessageDialog, system.exit, end klasse og en reached end of file while parsing... Hva er galt? Lenke til kommentar
Traktormannen Skrevet 21. september 2006 Del Skrevet 21. september 2006 sum = 0; for (i = 1; i<=tall1; i++) sum = (tall1+i); } //endfor }//end klasse Oppgave2a[/code] Vel, si at tallet er 4. Da vil løkken din gi følgende i=1, sum=(4+1)=5 i=2, sum=(4+2)=6 i=3, sum=(4+3)=7 i=4, sum=(4+4)=8 Svaret skulle ha vært (1+2+3+4)=10 Du må akkumulere svaret ditt etterhvert slik som sum=i+sum Gitt at sum er satt til 0 og tallet er 4 i=1, sum=(0+1)=1 i=2, sum=(1+2)=3 i=3, sum=(3+3)=6 i=4, sum=(6+4)=10 Desverre en stund siden jeg har brukt java så lar noen andre ta resten Lenke til kommentar
aleh Skrevet 21. september 2006 Del Skrevet 21. september 2006 (endret) Du må forandre: system.exit(0); til System.exit(0); Du mangler en start krøllparantes { til forløkken. Endret 21. september 2006 av aleh Lenke til kommentar
Deus Skrevet 21. september 2006 Del Skrevet 21. september 2006 Hmm, er vel ikke IT1101 på NTNU du går, ser mistenkelig ut som en Holme-oppgave? Lenke til kommentar
apwr Skrevet 21. september 2006 Forfatter Del Skrevet 21. september 2006 (endret) Dette her vil ikke funke: sum = 0; for (i = 1; i<=tall1; i++) sum = i+ sum; } //endfor[code] Jeg må jo ha med variabelen tall1 i summen. Hvordan fletter jeg inn denne? Hvor mangler jeg krøllparentes? Endret 21. september 2006 av apwr Lenke til kommentar
pgdx Skrevet 21. september 2006 Del Skrevet 21. september 2006 (endret) Ehm, du bruker jo tall1 (lite forklarende variabelnavn) til å si hvor langt opp du skal plusse... Totalsummen havner jo i sum. Edit: Du mangler klammeparantes rett etter for(). for (int i=0; i<tall1;i++) { sum=sum+i; } Endret 21. september 2006 av drange Lenke til kommentar
aleh Skrevet 21. september 2006 Del Skrevet 21. september 2006 (endret) Dette her vil ikke funke: sum = 0; for (i = 1; i<=tall1; i++) sum = i+ sum; } //endfor[code] Jeg må jo ha med variabelen tall1 i summen. Hvordan fletter jeg inn denne? Hvor mangler jeg krøllparentes?[right][snapback]6906801[/snapback][/right]Du må ha en startkrøllparantes: for (i = 1; i<=tall1; i++)[b]{[/b] eller fjern sluttparanesen. Jeg er ikke helt sikker hva du mener med at du må ha tall1 variebelen i summen fordi det skal funke i henhold til oppgaven nå. EDIT: Da postet drange før meg, "but anyhow" tanken er den samme. Endret 21. september 2006 av aleh Lenke til kommentar
FJERNET111 Skrevet 21. september 2006 Del Skrevet 21. september 2006 Som flere har sagt så må du ikke ha med tall1, den er jo ganske ubrukelig for den summasjonen du skal gjøre. Eneste den trengs for er å sette en øvre grense på for-løkken, altså hvor langt den skal gå. Som andre har påpekt så ser det også mye mer ryddig ut å bruke: sum += i; i stedet for: sum = sum + i; Lenke til kommentar
apwr Skrevet 22. september 2006 Forfatter Del Skrevet 22. september 2006 Takk skal dere har, det funket! Jeg har fått en ny oppgave her nå. Jeg skal skrive inn et uvistt antall tall. Innlesingen avsluttes når et negativt tall skrives inn (evt0). Tall som kan deles på to (heltall), skal deretter summeres, det skal også oddetallene. Er det noen her som vet hvordan disse beregningene utføres? Dette er hva jeg har til nå: inputTallInn = JOptionPane.ShowMessageDialog(utTekst); tallInn = Integer.parseInt(inputTallInn); while (tallInn>0); { if ((tall % 2) == 0) {System.out.println("partall");} else {System.out.println("oddetall");} Lenke til kommentar
pgdx Skrevet 22. september 2006 Del Skrevet 22. september 2006 Skal du finne antall partall og antall oddetall, eller skal du summere sammen alle partallene for seg og oddetallene for seg? if (partall) partall++; else oddetall++; eller if (partall) partall+=partall; else oddetall+=oddetall Lenke til kommentar
apwr Skrevet 22. september 2006 Forfatter Del Skrevet 22. september 2006 (endret) Jeg skal finne antall partall og oddetall. Jeg klarer ikke finne ut hvordan hele denne beregningsmåten skal settes opp. Kan du hjelpe meg? Endret 22. september 2006 av apwr Lenke til kommentar
Patton Skrevet 22. september 2006 Del Skrevet 22. september 2006 Bruk % : divident % divisor = rest divident / divisor = heltall divident = heltall * divisor + rest I ditt tilfelle: int rest = tall%2; if (rest == 0) { System.out.println("Partall!"); } else if (rest == 1) { System.out.println("Oddetall!"); } else { System.out.println("Umulig!"); } Lenke til kommentar
apwr Skrevet 22. september 2006 Forfatter Del Skrevet 22. september 2006 Jeg tror kanskje du misforstår litt. Jeg skal ikke skrive ut "partall", "oddetall" osv, men antall odde- og partall. F.eks slik: "5 partall og 7 oddetall" Vet du hvordan jeg løser dette? Lenke til kommentar
FJERNET111 Skrevet 22. september 2006 Del Skrevet 22. september 2006 (endret) Du lager en teller som blir inkrementert når det blir tastet inn ett oddetall og en annen som gjør det samme med partall... while(inputtall > 0) { if(inputtall %2 != 0) oddeteller++; else parteller++; } System.out.println(parteller + " partall og " + oddeteller + " oddetall"); Litt halvveis pseudokode, men du skjønner vel tegningen... Endret 22. september 2006 av SBS Lenke til kommentar
pgdx Skrevet 23. september 2006 Del Skrevet 23. september 2006 Med skje: import java.util.Scanner; class ParEllerOdde { public static void main(String[] args) { int parteller = 0; int oddeteller = 0; int inntall; Scanner input = new Scanner(System.in); do { System.out.print("Skriv inn tall, avslutt med 0 eller mindre: "); inntall = input.nextInt(); if (inntall > 0) { if (inntall%2 == 0) { parteller++; } else { oddeteller++; } } }while(inntall>0); System.out.println("Man fant jo " + parteller + " partall mot " + oddeteller + " oddetall."); } } Lenke til kommentar
apwr Skrevet 23. september 2006 Forfatter Del Skrevet 23. september 2006 (endret) Nå skal vel alt stemme, men jeg får enda en feilmelding. Jeg har følgende kode: import java.util.Scanner; import javax.swing.JOptionPane; public class Oppgave2b { public static void main(String[] args) { //---Variabeldeklarasjon------------------------------------------------------------- int tallInn; //skal inneholde innleste tall int parteller; //teller partall int oddeteller; //teller oddetall String inputTallInn; //tallInn i tekst String utTekst; //variabel som inneholder tekststreng //----------------------------------------------------------------------------------- //---Initiering---------------------------------------------------------------------- parteller = 0; oddeteller = 0; utTekst = ("Skriv inn noen vilkårlige tall. Ved negativt tall avsluttes innlesingen."); Scanner input = new Scanner(System.in); //----------------------------------------------------------------------------------- inputTallInn = JOptionPane.showInputDialog(utTekst); tallInn = Integer.parseInt( inputTallInn ); //---Beregninger--------------------------------------------------------------------- do { tallInn = input.nextInt(); if (tallInn > 0) { if (tallInn%2 == 0) { parteller++; } else { oddeteller++; } } }while(tallInn>0); //---Utskrift----------------------------------------------------------------------- JOptionPane.showMessageDialog(null,"Antall partall =" +parteller + "Antall oddetall =" +oddeteller, "Resultat",JOptionPane.PLAIN_MESSAGE ); //---avslutter program--------------------------------------------------------------- System.exit(0); }//end metode main() }//end klasse Oppgave2b Feilmeldingen lyder: tallInn = JOptionPane.showInputDialog(utTekst); ^(hake under venstrestil parentes) Hva er feil? Endret 23. september 2006 av apwr Lenke til kommentar
Patton Skrevet 23. september 2006 Del Skrevet 23. september 2006 Med skje: 6921058[/snapback] Haha, teskje faktisk Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå