Programmering i Java versjon 2001-05-16 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Tabeller av objekter Klassen ArrayList
C++ for Java-programmerere
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Datafiler og serialisering Tekstfiler Scanner-klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Kontrollstrukturer (Kapittel 3)
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Samarbeid mellom objekter
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Eiendomregister mars 2002 Arne Maus. import java.util.*; import inf101.*; /* Klasse med main() som starter hele programmet */ class EiendomsregisterMain.
Åsmund Eldhuset asmunde stud.ntnu.no folk.ntnu.no/asmunde/algdat/
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Objektorientert programmering
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Java 3 Mer om uttrykk Terminal I/O Forgreninger
Java 11 Programmering med og uten objekter: hva er forskjellen?
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
Programmering i Java tilpasset undervisning våren 2009 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet.
Java 5 Litt mer om løkker Arrayer Metoder Ole Christian Lingjærde
Indledende Datalogi /kelk 1 Need to know Løkker Klasser, instanser og Objekter Hvorfor objektorientering? Scope – hvor erklæres en variabel? ”Access Modifiers”
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon september 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
TDT4105 Informasjonsteknologi, grunnkurs
Variabler, datatyper og uttrykk
Utskrift av presentasjonen:

Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6 Løkke som kontrollstruktur Hva er en løkke?side 2 while-setningen med eksempelside 3 Å teste løkkerside 5 Et eksempel på grafikkside 6-7 for-setningenside 8-9 Nøstede kontrollstrukturerside 10 do-while-setningenside 11 Valg av løkkesetning og testing av løkkerside 12

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 2 Hva er en løkke? En algoritme er et begrenset og ordnet sett med veldefinerte regler for løsning av et problem. Tre kategorier rekkefølge eller kontrollstrukturer: –sekvens (kapitlene 2-4) –valg (kapittel 5, Java-setninger: if og switch) –løkke (dette kapitlet, Java-setninger: while, for, do) En løkke gjør det mulig å gjenta en enkelt setning eller en blokk én eller flere ganger. En tellerkontrollert løkke er en løkke der antall gjennomløp er kjent på forhånd.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 3 while-setningen med eksempel class SkrivMangeLinjer { public static void main(String[] args) { int teller = 0; while (teller < 5) { System.out.println("Dette er en linje"); teller++; } Utskrift: Dette er en linje while-setningen: while (logisk uttrykk) setning/blokk Gjør oppgaven side 162. teller = 0 [teller < 5] [teller >= 5)] skriv ut tekst teller++ initiering av løkken løkkebetingelsen løkkekroppen oppdatering av løkkebetingelsen

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 4 class SoekEtterTall { public static void main(String[] args) { final int grense1 = 0; final int grense2 = 70; final int grense3 = 80; final int grense4 = 100; int antOKTall = 0; int tall = (int) ((grense4 - grense1)*Math.random() + 1); while (tall grense3) { antOKTall++; System.out.println(tall); tall = (int) ((grense4 - grense1)*Math.random() + 1); } System.out.println("Vi måtte trekke " + antOKTall + " tall til vi fant et ugyldig: " + tall); } En løkke med en generell betingelse trekk tall [tall < 70 || tall > 80] [tall >= 70 && tall <= 80] antOKTall++ trekk tall initiering av løkken løkkebetingelsen løkkekroppen oppdatering av løkkebetingelsen antOKTall = 0 skriv ut resultater

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 5 Å teste løkker Formuler testdata som fanger opp følgende tilfeller: –Løkken gjennomløpes 0 ganger. –Løkken gjennomløpes eksakt 1 gang. –Løkken gjennomløpes noen ganger. –Er det mulig å konstruere testdata som gjør at løkkebetingelsen aldri blir usann? Hvis ja, vil dette kunne bli en evig løkke, og det var vel ikke meningen? Gjør oppgavene 1-3 side 165.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 6 Et eksempel på grafikk Vi skal lage appleten som tegner figuren nedenfor. De 11 flekkene er tilfeldig plassert. Følgende konstanter er deklarert: private static final int vinduBredde = 400; private static final int vinduHøyde = 300; private static final int diameter = 20; private static final int sentr = diameter / 2; private static final int antStreker = 10; En x-verdi trekkes slik: x = (int) ((vinduBredde - diameter) * Math.random() + 1); En sirkel tegnes slik: vindu.fillOval(x, y, diameter, diameter); En rett linje mellom to punkter tegnes slik: vindu.drawLine(x1, y1, x2, y2); Oppgaver –Finn antall løkkegjennomløp. –Sett opp løkkebetingelsen. –Konstruer resten av løkken.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 7 Løsning import java.awt.*; import javax.swing.*; public class TegnFlekkerMedLinjer extends JApplet { public void init() { Container innhold = getContentPane(); Tegning tegningen = new Tegning(); innhold.add(tegningen); } class Tegning extends JPanel { private static final int vinduBredde = 400; private static final int vinduHøyde = 300; private static final int diameter = 20; private static final int sentr = diameter / 2; private static final int antStreker = 10; Gjør oppgavene side 168. public void paintComponent(Graphics vindu) { super.paintComponent(vindu); int x = (int) ((vinduBredde - diameter) * Math.random() + 1); int y = (int) ((vinduHøyde - diameter) * Math.random() + 1); vindu.fillOval(x, y, diameter, diameter); int teller = 0; while (teller < antStreker) { int forrigeX = x; int forrigeY = y; x = (int) ((vinduBredde - diameter) * Math.random() + 1); y = (int) ((vinduHøyde - diameter) * Math.random() + 1); vindu.drawLine(forrigeX + sentr, forrigeY + sentr, x + sentr, y + sentr); vindu.fillOval(x, y, diameter, diameter); teller++; }

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 8 class SkrivMangeLinjer { public static void main(String[] args) { int teller = 0; while (teller < 5) { System.out.println("Dette er en linje"); teller++; } class SkrivMangeLinjer { public static void main(String[] args) { for (int teller = 0; teller < 5; teller++) { System.out.println("Dette er en linje"); } for-setningen while-setningen kan brukes til alle typer løkker. Vanlig å bruke for-setningen dersom løkken er tellerkontrollert. Oppgave: Identifiser initiering, betingelse og oppdatering av løkkebetingelsen i de to løkkekonstruksjonene over. Syntaks: for (initiering; betingelse; oppdatering av betingelse) setning/blokk Definisjonsområdet til variabler deklarert i for-setningen er for-setningen selv.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 9 for-setningen, eksempler Tegner 30 sirkler etter hverandre int x = 0; int y = 50; for (int teller = 0; teller < 30; teller++) { vindu.drawOval(x, y, 20, 20); x += 20; } Andre for-setninger for (int tall = 1000; tall > 500; tall--) { // teller ned fra 1000 til og med 501 for (int xPos = 100; xPos < 800; xPos += 5) { // øker med 5 for hvert // gjennomløp for (int medlNr = 101; medlNr <= 900; medlNr++) { // medlNr fra og med // 101 til og med 900

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 10 Nøstede kontrollstrukturer if-setninger inne i hverandre, løkker inne i hverandre, if- setninger inne i løkker og omvendt, osv... Hva skrives ut når følgende program kjører? class SumAvTall { public static void main(String[] args) { for (int linjeteller = 0; linjeteller < 10; linjeteller++) { int sum = 0; for (int tall = 1; tall <= linjeteller; tall++) { sum += tall; System.out.print(tall + " "); } System.out.println("Summen blir: " + sum); } Gjør oppgave 1 side 170.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 11 do-while-setningen do-while-setningen skiller seg fra for- og while-setningene ved at løkkekroppen alltid gjennomløpes minst en gang Praktisk ved innlesing der data skal kontrolleres Eksempler: int antStudenter; // obs! må deklareres utenfor løkken do { antStudenter = gui.lesHeltall(“Studentregister”, “Antall studenter (maks. 30): “); } while (antStudenter 30); char operator; do { String valg = gui.lesTekst("Kalkulator", "Velg operator, skriv operatoren + - * / "); valg = valg.trim(); // fjerner blanke i begynnelsen og slutten av strengen operator = valg.charAt(0); // henter ut første (og eneste) tegn } while (operator != '+' && operator != '-' && operator != '*' && operator != '/'); Syntaks: do setning/blokk while logisk uttrykk

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 6, side 12 Valg av løkkesetning Bruk for-setningen dersom antall gjennomløp av løkken er kjent på forhånd, eller der en heltallsvariabel øker eller avtar med en fast verdi for hvert gjennomløp. Bruk while-setningen dersom antall løkkegjennomløp styres av en generell betingelse. Bruk do-while-setningen dersom antall løkkegjennomløp styres av en generell betingelse, og løkken alltid skal gjennomløpes minst en gang.