java Skrevet 11. februar 2015 Del Skrevet 11. februar 2015 Er det noen som kan hjelpe til med å løse oppgaven? Programmering i java.docx Lenke til kommentar
Karl Skapeland Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 Nei. Hvorfor ikke fortelle hvor du står fast? Vi kan dytte deg i riktig retning, ikke gjøre leksene dine. Det kommer det ingenting godt ut av. Lenke til kommentar
blured Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 (endret) (1). Det ville vært bedre om du postet koden her med [kode]-klammer (eksempel under). Alternativt så kunne du brukt en tjeneste som hastebin.com (genial tjeneste!) for å dele den med oss. koden din (2). Det er (forhåpentligvis) ingen som kommer til å hjelpe deg ved å skrive koden for deg. Som Karl Skapeland poengterer, den eneste måten å lære på er at du forsøker selv. Vi kan selvfølgelig dytte deg i riktig retning, men da må du først vise oss at du har forsøkt, og forklare oss hvordan du har tenkt. Endret 12. februar 2015 av blured Lenke til kommentar
java Skrevet 12. februar 2015 Forfatter Del Skrevet 12. februar 2015 Nei. Hvorfor ikke fortelle hvor du står fast? Vi kan dytte deg i riktig retning, ikke gjøre leksene dine. Det kommer det ingenting godt ut av. //Programmet nedenfor skriver ut på skjermen 4444 4444 4444 4444 //det er ikke iht. oppgaven da utskriften skal være: 4 4 4 4 4 4 4 4 4 4 4 4 //antar det skal være en løkke med SkrivSiffer(x) // der x = 2 - 9 // lese inn verdi av x: showInputDialog () // utskrift : showMessageDialog () // ser ikke helheten av programmet ? import static java.lang.System.*; //import static javax.swing.JOptionPane.*; public class SkrivSiffer { public static void main(String[] args) { SkrivSiffer(4); SkrivSiffer(4); SkrivSiffer(4); SkrivSiffer(4); } private static void SkrivSiffer(int antall) { for (int i=1; i<=antall; i++) out.print("4"); out.println(); } } Lenke til kommentar
java Skrevet 12. februar 2015 Forfatter Del Skrevet 12. februar 2015 (1). Det ville vært bedre om du postet koden her med [kode]-klammer (eksempel under). Alternativt så kunne du brukt en tjeneste som hastebin.com (genial tjeneste!) for å dele den med oss. koden din (2). Det er (forhåpentligvis) ingen som kommer til å hjelpe deg ved å skrive koden for deg. Som Karl Skapeland poengterer, den eneste måten å lære på er at du forsøker selv. Vi kan selvfølgelig dytte deg i riktig retning, men da må du først vise oss at du har forsøkt, og forklare oss hvordan du har tenkt. //Programmet nedenfor skriver ut på skjermen 4444 4444 4444 4444 //det er ikke iht. oppgaven da utskriften skal være: 4 4 4 4 4 4 4 4 4 4 4 4 //antar det skal være en løkke med SkrivSiffer(x) // der x = 2 - 9 // lese inn verdi av x: showInputDialog () // utskrift : showMessageDialog () // ser ikke helheten av programmet ? import static java.lang.System.*; //import static javax.swing.JOptionPane.*; public class SkrivSiffer { public static void main(String[] args) { SkrivSiffer(4); SkrivSiffer(4); SkrivSiffer(4); SkrivSiffer(4); } private static void SkrivSiffer(int antall) { for (int i=1; i<=antall; i++) out.print("4"); out.println(); } } Lenke til kommentar
fruktsalatsaft Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 Tips: Dobbel for-løkke med if-tester for å sjekke om du er på en ytterkant. Lenke til kommentar
Karl Skapeland Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 Det holder å vise koden én gang. Du burde dessuten lære deg å bruke kode-taggen. Jeg synes det er slitsomt å lese kode som ikke er formattert riktig. Lenke til kommentar
Djn Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 (endret) Du kaller SkrivSiffer fire ganger, og da skriver den selvfølgelig også ut fire like linjer. Hvis du ser på fasiten - hvor mange typer linjer er det der? Når skal du skrive ut hvilken type? Endret 12. februar 2015 av Djn Lenke til kommentar
java Skrevet 12. februar 2015 Forfatter Del Skrevet 12. februar 2015 Nei. Hvorfor ikke fortelle hvor du står fast? Vi kan dytte deg i riktig retning, ikke gjøre leksene dine. Det kommer det ingenting godt ut av. //Programmet nedenfor skriver ut på skjermen 4444 4444 4444 4444 //det er ikke iht. oppgaven da utskriften skal være: 4 4 4 4 4 4 4 4 4 4 4 4 //antar det skal være en løkke med SkrivSiffer(x) // der x = 2 - 9 // lese inn verdi av x: showInputDialog () // utskrift : showMessageDialog () // ser ikke helheten av programmet ? import static java.lang.System.*; //import static javax.swing.JOptionPane.*; public class SkrivSiffer { public static void main(String[] args) { SkrivSiffer(4); SkrivSiffer(4); SkrivSiffer(4); SkrivSiffer(4); } private static void SkrivSiffer(int antall) { for (int i=1; i<=antall; i++) out.print("4"); out.println(); } } Problemet så langt er utskriften ! Lenke til kommentar
blured Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 Hele oppgaven er en ren printeoppgave, så ja ikke så rart at det er det som er problemet... Men hadde lest hva som blir skrevet til deg over, bør være nok til å lede deg videre. Begge gir deg i praksis et hint om to mulig måter å løse problemet på (i programmering finnes alltid flere måter å løse det samme problemet på). (1) fruktsalatsaft: Tips: Dobbel for-løkke med if-tester for å sjekke om du er på en ytterkant. (2) Djn: Du kaller SkrivSiffer fire ganger, og da skriver den selvfølgelig også ut fire like linjer. Hvis du ser på fasiten - hvor mange typer linjer er det der? Når skal du skrive ut hvilken type? Om du fremdeles ikke forstår, så hadde jeg bare sittet å lekt meg med koden. Hva skjer når du endrer på parameterne (antall) du sender inn i metoden? Hva skjer om du f.eks. sender inn 2, 3, 4, og 5, fremfor å sende inn 4, 4, 4, 4? Hvordan ser printen din ut da? Åpner oppgaven for bruk av flere metoder (som kan printe ulike linjer), eller har du lært if/else slik at du kan klare deg med en metode? Er det noen måte du kan bryte ned boksen på? (hint: hvor mange linjer består den av? Du printer nå ut fire identiske linjer under hverandre.) Lenke til kommentar
iceLord73 Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 package sifferFigur; import java.util.*; public class SifferFigur { public static void main(String[] args) { Scanner sc = new Scanner(System.in); boolean fortsette = true; int heltall = 0; while(fortsette) { System.out.print("Oppgi størrelsen på sifferfiguren: "); String s = sc.nextLine(); heltall = Integer.parseInt(s); System.out.print("Oppgi initial på ditt fornavn: "); String s2 = sc.nextLine(); int midtersteIndeks = -1; if(erOdde(heltall)) midtersteIndeks = finnMidtersteIndeks(heltall); for(int i =0 ; i< heltall; i++) // i: 0 1 2 3 { if(i == 0 || i == heltall-1) // Hvis første eller siste linje skal heltall skrives ut heltall ganger { for(int j = 0; j < heltall ; j++) // j: 0 1 2 3 { System.out.print(heltall); } } else // ellers skal heltall skrives ut 1 gang etterfulgt av n-2 mellomrom etterfulgt av 1 heltall { System.out.print(heltall); // Skriver heltallet lengst til venstre på linja if(midtersteIndeks!= -1 && i == midtersteIndeks) // Hvis true så er vi på midterste linje { for(int k =0; k< midtersteIndeks-1; k++) { System.out.print(" "); // Skriver ut mellomrom før initial } System.out.print(s2); // Skriver ut initial for(int k =0; k< midtersteIndeks-1; k++) { System.out.print(" "); // Skriver ut mellomrom etter initial } } else // Vi er ikke på midterste linje (heller ikke på første eller siste) { for(int k =0; k< heltall -2; k++) { System.out.print(" "); // Skriver kun ut mellomrom } } System.out.print(heltall); // Skriver heltallet lengst til høyre på linja } System.out.println(""); } System.out.println(""); System.out.print("Ønsker du å fortsette (J/N): "); if(sc.nextLine().equalsIgnoreCase("N")) { System.out.println("Programmet ble avsluttet!"); fortsette = false; } }// Avslutter while sc.close(); } // Avslutter main public static boolean erOdde(int heltall) { for(int i = 1; i< heltall+1; i++) // Hvis i == 0 får vi "divide by zero" exception { if(heltall % i != 0) return true; } return false; } public static int finnMidtersteIndeks(int heltall) { return ( (heltall / 2)); // Utnytter at heltallsdivisjon runder ned til nærmeste hele tall. } } // Avslutter klassen Lenke til kommentar
java Skrevet 12. februar 2015 Forfatter Del Skrevet 12. februar 2015 Takk for hjelpen men får feilmeldingen: Error: Could not find or load main class SifferFigur[Finished in 0.2s with exit code 1] Lenke til kommentar
java Skrevet 12. februar 2015 Forfatter Del Skrevet 12. februar 2015 Du kaller SkrivSiffer fire ganger, og da skriver den selvfølgelig også ut fire like linjer. Hvis du ser på fasiten - hvor mange typer linjer er det der? Når skal du skrive ut hvilken type? Forstår ikke hva du mener med type linje ? Lenke til kommentar
iceLord73 Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 (endret) I Eclipse må du gjøre følgende: Opprett et "Java project" (File --> New --> Java project). Deretter må du inni der lage en pakke som heter sifferFigur (File --> New--> Package), nøyaktig skrevet slik. Og så må du inni pakka lage en klasse SifferFigur (File --> New --> Class). Stavet akkurat slik. Inni klassevinduet limer du inn koden over. Så kompilerer/ kjører du koden som en Java applikasjon vha Play-knappen (ikon med hvit trekant på grønn bakgrunn). Run as --> Java application. Etter å ha trykket dette første gang, husker programmet det igjen, og du kan bare trykke knappen neste gang. Endret 12. februar 2015 av iceLord73 Lenke til kommentar
blured Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 (endret) Firkanten består av to typer linjer. Den ene med fire 4-tall. Den andre med 4 + (mellomrom/tab) + 4. Da kan du for å løse oppgaven på en svært enkel måte lage to metoder. I main blir da dette:linjetype1()linjetype2()linjetype2()linjetype1() Edit: Er ikke måten å løse det på om oppgaveteksten postet i den andre tråden stemmer. Endret 13. februar 2015 av blured Lenke til kommentar
iceLord73 Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 Sorry koden er ikke helt riktig. Det er en bug der. Skal prøve å fikse den... Lenke til kommentar
java Skrevet 12. februar 2015 Forfatter Del Skrevet 12. februar 2015 Har brukt Eclipse men gikk over til Sublime Text 2 da den er enklere å bruke synes jeg. Forsøker med Eclipse i morgen. NB! Som du / dere forstår er jeg lite bevandret/dårlig i Java kode. Programmet er en oblig oppgave som må leveres innen midnatt kl.2400 natt til lørdag. Lenke til kommentar
java Skrevet 12. februar 2015 Forfatter Del Skrevet 12. februar 2015 I Eclipse må du gjøre følgende: Opprett et "Java project" (File --> New --> Java project). Deretter må du inni der lage en pakke som heter sifferFigur (File --> New--> Package), nøyaktig skrevet slik. Og så må du inni pakka lage en klasse SifferFigur (File --> New --> Class). Stavet akkurat slik. Inni klassevinduet limer du inn koden over. Så kompilerer/ kjører du koden som en Java applikasjon vha Play-knappen (ikon med hvit trekant på grønn bakgrunn). Run as --> Java application. Etter å ha trykket dette første gang, husker programmet det igjen, og du kan bare trykke knappen neste gang. Takk for det, forsøker det i morgen. Eclipse er ett godt verktøy men har ikke hatt tid til å utforske/bruke det. Jobber på dagtid og forsøker å lære Java på ettermiddag/kveldstid. Lenke til kommentar
blured Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 (endret) Hvilket nivå er det du studerer på? VGS/IKT? Forstudie til noe programmering? Nettstudie? Dette er såpass enkle oppgaver at du kunne antakelig jobbet deg igjennom kapittel 1 i en bok som "Building Java Programs" ila morgendagen/kvelden (kan sikkert sende deg en pdf av kap1 der om du ønsker det), og etter det ville du klart å løse alle oppgavene enkelt. Youtube har også en rekke serier med tutorials som er bra for nybegynnere. Det er også viktig å bruke et skikkelig program for å skrive kode, svært omstendelig å bruke Sublime Text. Eclipse (som du nevner) eller IntelliJ er to gode programmer for Java. Sistnevnte regnes av mange som bedre, men den har svært mange funksjoner som hjelper deg å autofullføre setninger. Så om du skal ha en eventuell skriftligeksamen i Java, så kan det i starten være greit å ikke ha fått alt for mye hjelp av programmet til å autofullføre setninger for deg. Debugging er også noe du burde lære deg (her er IntelliJ fantastisk). Det er en funksjon der du bryter ned koden din. Veldig praktisk for å oppdage feil (for eksempel i for-løkker nå i starten), og for å få en generell forståelse av hvordan koden funker/er bygget opp. Endret 12. februar 2015 av blured Lenke til kommentar
RulleRimfrost Skrevet 12. februar 2015 Del Skrevet 12. februar 2015 Noen tips: 1. Når du lagrer filen, så må den hete nøyaktig det samme som klassen (SifferFigur.java) 2. Du kan du sikkert slette linjen øverst som begynner med "package ......" (brukes ikke i INF100) 3. Hold deg til DrJava eller Sublime til du begynner å få mange filer i prosjektene. Eclipse lager noen problemer helt på egen hånd. 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å