apwr Skrevet 16. januar 2007 Del Skrevet 16. januar 2007 Hei! Jeg skal summere et vilkårlig antall heltall lest inn via kommandolinjen. Summeringen skal foregå i en egen metode. Noen som har noen gode starttips å komme med? Lenke til kommentar
Qwark Skrevet 16. januar 2007 Del Skrevet 16. januar 2007 Noe slik du tenker på? class enklasse{ int total = 0; public void summere(int tall){ total +=tall; } public getTotal(){ return total; } } Lenke til kommentar
apwr Skrevet 16. januar 2007 Forfatter Del Skrevet 16. januar 2007 Takker for svar, Qwark! Det jeg skal gjøre er å skrive inn et uvisst antall heltall (int) ved hjelp av DOS. La oss f.eks si at jeg bruker klassen Scanner tastatur under java.util.Scanner. Programmet må så konvertere inputtene til heltall (parsing), og deretter summere alle innleste tall. Finnes det ikke en enkel måte å summere alle slike innleste tall? Det jeg kan gjøre er å skrive følgende: int tall1 = tastatur.nextInt(); int tall2 = tastatur.nextInt(); osv osv Men jeg vet ikke hvor mange tall som leses inn, det kan jo være tusen forskjellige tall for den del. Noen tips til hvordan jeg kan gjøre dette? Lenke til kommentar
ratata Skrevet 16. januar 2007 Del Skrevet 16. januar 2007 Du kan jo summere og skrive ut summert tal etterkvart. Dersom du vil skrive inn eit vilkårlig antal tal lyt du lagre tala ein plass(f.eks tabell) og bruke ei for løkke til å summere etterpå. Lenke til kommentar
Qwark Skrevet 16. januar 2007 Del Skrevet 16. januar 2007 (endret) Noe slikt kansje import java.util.Scanner; public class SumMain { public static Scanner scan = new Scanner(System.in); public static void main(String[] args) { //kaller metoden som leser tall og kalkulerer dimSum(); } public static void dimSum(){ int sumTot = 0; int in = 0; do{ System.out.print("Skriv inn tall eller skriv en bokstav for å avslutte\n"); try { //Leser tallet som er tastet inn in = scan.nextInt(); } catch (Exception ex) { //Om du ikke har tastet inn en tall så får du Exception fordi nextInt vil ha i inn et tall System.exit(0); } //plusser på siste innskrevne tall til totalen sumTot += in; System.out.println("Totalsummen er naa " + sumTot); }while(scan.hasNext()); } } Endret 17. januar 2007 av Qwark Lenke til kommentar
apwr Skrevet 16. januar 2007 Forfatter Del Skrevet 16. januar 2007 (endret) Takker for svar, Qwark og ratata! Dette fungerte supert! Qwark, jeg hadde satt stor pris på om du hadde giddet å forklare hva som skjer i denne koden. Føler jeg henger brukbart med på noe, men noen steder faller jeg litt av. Hva om jeg i første omgang kun skal skrive inn en rekke tall, for deretter å printe ut summen av alle innleste tall i etterkant? Endret 16. januar 2007 av apwr Lenke til kommentar
krigun Skrevet 17. januar 2007 Del Skrevet 17. januar 2007 IT studentene har det lett fortiden altså... Lenke til kommentar
qualbeen Skrevet 21. januar 2007 Del Skrevet 21. januar 2007 Hva om jeg i første omgang kun skal skrive inn en rekke tall, for deretter å printe ut summen av alle innleste tall i etterkant?7739357[/snapback] Det er en fordel å vite hvor mange tall du skal ha, fordi det er hensiktsmessig å lagre tallene i en tabell. Problemet er når man skal opprette tabeller: man må vite størrelsen. (Senere kommer du sikkert til å lære om dynamiske arrays, men det er ikke før senere) Men er det programmet som skal be brukeren taste inn x antall tall, eller skal de angis samtidig som man starter programmet? I terminalen kan man nemlig skrive java MittProrgam 3 45 13 435 23 67 1 45 345 34 og da vil alle tallene havne i den tabellen som man deklarerer i main metoden (public static void main(String[] args){ /* ... */ }). Mao: i såfall kan du iterere gjennom args-tabellen for å regne ut tallene. Klikk for å se/fjerne innholdet nedenfor int sum = 0; for(int i=0; i<args.lenght; i++){ //legger til verdien i tabellplass nr i til summen: sum = sum + args[i]; } System.out.println("Summen av tallene er " + sum); Hvis det derimot er programmet som skal be brukeren om å taste inn tall, så kan du bruke metdoen til Qwark. Har du dårlig med kunnskaper til try/catch så kan du kanskje løse det på en annen måte: 1: generer et tilfeldig tall som er antall ganger tall som skal skrives inn 2: for-løkke som ligner på den jeg postet over her (bytt ut args.length med tallet fra pkt 1) 3: innhold i løkken: a) be bruker taste inn tall. b) sum = sum + tall fra a Lenke til kommentar
Patton Skrevet 21. januar 2007 Del Skrevet 21. januar 2007 IT studentene har det lett fortiden altså... 7740369[/snapback] :!: 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å