gol Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Noen som kan hjelpe meg litt på vei på denne oppgava? Lag en metode, maxTab(), som har referanser til tre heltallstabeller, tabell aTab, bTab og cTab, som formelle parametre. Metoden skal for hver posisjon i tabellen cTab sette inn det største av elementene i samme posisjon i aTab og bTab. Metoden skal returnere antall elementer som er lagt inn i cTab. Test metoden ved å skrive et enkelt program som bruke den. Hint: • Metodehodet kan se slik ut: public static int maxTab(int[] aTab, int[] bTab, int[] cTab) • Lengden på den korteste tabellen er antallet elementer som kan gås gjennom. Lenke til kommentar
unwill Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Beklager, forstår ikke oppgaven helt, skal lese den enda en gang til... Du skal lage en metode maxTab() med 3 parametere. Også kommer det jeg ikke skjønner... For meg høres det ut som du skal lese i cTab, legge til det største tallet i cTab inni i aTab og bTab, også returnere hvor mange elementer som er lagt til i cTab som alltid vil være 0... Hmm... kanskje motsatt? Du skal legge til det største elementene i A og B inne i C, også retunere et tall? Hvis a og b er tom så returnerer du 0, hvis en av dem er tom, så returner 1, hvis begge inneholder noe så retuner 2 ? Eller har jeg misforstått? Lenke til kommentar
gol Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Jeg forstår ikke oppgaven jeg heller... Har en til, denne er sikkert litt tydligere? Vi vil undersøke hvor mange forekomster det er av hvert av heltallene fra og med 0 til og med 9 i en tabell. Lag en metode som i hver posisjon i = 0,1,…,9 i tabellen forekomster, setter inn antall forekomster av verdien i heltallstabellen dTab. De to tabellene skal overføres som parametre. Eksempel: Hvis dTab = {0,3,4,231,6,2,-7,1,0,0,8,7,0,4,6,7,3,2,3,1,8} så skal vi få forekomster={4,2,2,3,2,0,2,2,2,0} Lag en metode som skriver ut et liggende histogram over antall forekomster av verdiene. For eksempelet over skal det skrives ut 0 **** 1 ** 2 ** 3 *** 4 ** 5 6 ** 7 ** 8 ** 9 Lenke til kommentar
w3edr5t Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Metoden skal for hver posisjon i tabellen cTab sette inn det største av elementene i samme posisjon i aTab og bTab. Blir ikke det slik. public static int maxTab(int[] aTab, int[] bTab, int[] cTab) { for(int i=0;i<cTab.length;i++) { if(aTab[i]>=bTab[i]) { //aTab[i] er størst cTab[i]=aTab[i]; } else { //bTab[i] er størst cTab[i]=bTab[i]; } } return cTab.length; } Returverdien vil vel alltid være lengden av CTab, ettersom man "for hver posisjon i tabellen cTab sette inn..." Lenke til kommentar
unwill Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Den er tydeligere ja, ikke så vanskelig, man har flere måter man kan løse dette på... f.eks. en while inni en for... Det som står under vil sansyneligvis ikke fungere helt, siden jeg ikke har prøvd å kompilere det, men du forstår sikkert prinisippet... for (int i = 0, i <=9, i++) System.out.println(i); //så lager du en while løkke som går gjennom hele listen til den er tom... if verdien du får ut er det samme som i så System.out.print("*"); //legg merke til at det er print istedenfor println. Forstår? For når den er ferdig med whilen for tallet 0 så går den ut, og da sier for løkken at while skal kjøre en gang til, bare denne gangen med 1... også kjører den 9 ganger. Hvilket fag/kurs er det du tar? Lenke til kommentar
gol Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Ska se om jeg får det til.. Jeg tar programmering1 på datalinja på høgskolen i Stavanger. Jeg har ikke sjans til å gå på forelesninger, er bosatt i Haugesund og har farspermisjon(flytter til Stavanger til høsten). Derfor bruker jeg forumet! Mye hjelp å få her! Lenke til kommentar
unwill Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Bare å poste hvis du ikke får det til, så kan jeg sikkert sitte og skrive koden, men tror ikke det skal være noe problem. Hvor lenge har kurset/faget gått egentlig? Lenke til kommentar
gol Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Kurset har gått fra januar, skal ha eksamen 6.mai. Lenke til kommentar
unwill Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Virker som et grei kurs... jeg begynte også med javaprogrammering i januar. Ganske morsomt. Nå er det bare prosjektoppgaven og eksamen igjen... skal lage et spill Har eksamen dagen etter deg... 7. mai... Lenke til kommentar
gol Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Unwill: hvor er det du går på skole da? Lenke til kommentar
unwill Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Unwill: hvor er det du går på skole da? NTNU __________________________ 900 Lenke til kommentar
gol Skrevet 13. mars 2003 Forfatter Del Skrevet 13. mars 2003 Tror jeg trenger litt hjelp her. Her er det jeg har gjort til nå. class Tabell { public static void main(String[] args) { int[] dTab = {0,3,4,231,6,2,-7,1,0,0,8,7,0,4,6,7,3,2,3,1,8}; for (int indeks = 1; indeks < dTab.length; indeks++) { for (int i = 0; i <=9; i++){ System.out.println(i); } System.out.print("*"); } } } Unwill kom med dette tipset: for (int i = 0, i <=9, i++) System.out.println(i); //så lager du en while løkke som går gjennom hele listen til den er tom... if verdien du får ut er det samme som i så System.out.print("*"); //legg merke til at det er print istedenfor println. Har jeg gjort noe riktig? Lenke til kommentar
unwill Skrevet 13. mars 2003 Del Skrevet 13. mars 2003 1 minutt til forelesning starter... må løpe.. men jeg tenkte mere sånn egentlig; for (int i = 1; i<=9; i++){ System.out.println(""); System.out.print(i); for (int j = 0; j < dTab.length; j++){ if (dTab[j] == i){ System.out.print("*"); } } } Lenke til kommentar
MailMan13 Skrevet 13. mars 2003 Del Skrevet 13. mars 2003 kremt... kradratisk kjøretid ja.... ikke mye kult det, prøv heller denne public void skrivForekomster (int[] tall) { int siffer[] = new int[10]; for(int i=0;i<tall.lenght;i++) siffer[tall[i]]++; for(int i=0;i<siffer.length;i++) System.out.println("Forekomster av " + i + " : " + siffer[i]); } Lenke til kommentar
unwill Skrevet 13. mars 2003 Del Skrevet 13. mars 2003 MailMan13; Smart! Tenkte ikke på at man kunne gjøre det på denne måten... du får nok ned kjøretiden litt ja. Men den for inne i en for var det første jeg kom på. Men da får du ikke til denne utskriften da; gol skrev: For eksempelet over skal det skrives ut 0 **** 1 ** 2 ** Lenke til kommentar
MailMan13 Skrevet 14. mars 2003 Del Skrevet 14. mars 2003 public void skrivForekomster (int[] tall) { int siffer[] = new int[10]; String stjerner = "**********"; for(int i=0;i<tall.lenght;i++) siffer[tall[i]]++; for(int i=0;i<siffer.length;i++) System.out.println("i + " " + stjerner.substring(0, siffer[i])); } Det gjør du nå 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å