1 ITK:P1 Föreläsning 5 Iteration, slumpning och arrayer DSV Peter Mozelius.

Slides:



Advertisements
Liknande presentationer
Repetition av språket Java
Advertisements

Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Funktioner och programorganisation
Algoritmer och data strukturer -Länkade listor
Fortsättningskurs i Programmering lektion 3 Johan Hjerling
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
Klassarv och inkapsling
Arrays Indicerade variabler.
Föreläsning 4 Python: mera om funktioner och parametrar
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Programkodens uppbyggnad
Att programmera i språket Java
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 4, Kapitel 4 Gruppera objekt Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Programmering B PHP Lektion 2
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Föreläsning 11 Arrayer.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Klasser och objekt Klasser, objekt och instansvariabler
Programmering B PHP Lektion 3
Datasamlingar och generiska enheter
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Metoder och slingor Metoder och dess typ Slingor med while och for-satser.
Grundläggande programmering
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
1 ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion DSV Peter Mozelius.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Föreläsning 4 Klasser Och Objekt.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Programmeringsteknik för K och Media
Föreläsning 9 Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Felsökning Java API.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
Uppgifter/Läxa Lös uppgifterna: 120, 121, 123, 125, 126, 128, 130, 133, 142, 144, 145.
KPP053, HT2015 MATLAB, Föreläsning 4
VISBY IBKs FÖRENINGSTRÄD
Styrelsen i stallet vecka 20
Gotlands energieffektiviseringsnätverk
Arbetsbeskrivning Sportkommittén
Regiongemensam enkät i förskola och familjedaghem 2016
Trygg, säker och samordnad vård- och omsorgsprocess
Litteraturhistoria åk9.
CAMPUS SUNDSVALL Campus Sundsvall is situated a short walk from the centre of the city. It has lovely scenery, with leafy groups of trees and a beautiful.
Tillgänglig primärvård
Presentationens avskrift:

1 ITK:P1 Föreläsning 5 Iteration, slumpning och arrayer DSV Peter Mozelius

2 Iterativ programutveckling Att bygga programmen bit för bit Lägg till en rad kod i taget och kontrollera att allt fungerar innan något mera läggs till Enklare felsökning, bättre kontroll Att gå igenom programmen en gång till när all kod fungerar och optimera

3 Iterativ systemutveckling

4 Iteration i Java Iteration genom programslingor (loopar) Ett antal rader kod som utförs flera gånger Hur många gånger bestäms av ett villkor Det började en gång i tiden med while-loopen while(villkor) { kodrad(er); }//while

5 while-loop Två kombinerade exempel: int x = 1, y = 1; while (x < 5) x++; while (x > 1) { y *= x--; }//while Vad blir y?

6 do-sats Som en while-loop men villkoret testas sist: do{ ruta1.setText(”Vad är ?”); int svar = hämtaSvar(); ruta2.setText(”Fel, försök igen.”); } while (svar != 9); ruta2.setText(”Grattis, helt rätt!” );

7 for-loop (Kodexempel 1) När man vet innan hur många gånger som koden ska itereras: int x = 7; for(int i = 0; i < 13; i++) { System.out.println(x * i); } Vad skrivs ut?

8 Lokala variabler Olika variabler har olika funktioner Olika variabler har olika livslängd Lokala variabler deklareras inne i ett block och lever sedan enbart inom blockets längd public void minMetod () { int x = 1; //lokal variabel while(x <= 18) { gör spännande saker; } }

9 Initiering av variabler Lokala variabler måste alltid initieras innan de används i programkoden Klass- och instansvariabler däremot ges automatiskt startvärden En integer ges värdet 0 En referensvariabel sätts till null En boolean initieras default till false

10 Konstanter i Java Klass- och instans-variabler kan sättas som konstanter med värden som inte kan ändras För konstanter finns modifieraren final En konstant vi ska använda i Uppgift3: final float PI = f; Kan även se ut som i: public static final double PI = ;

Paus

12 Robust kod Att skriva koden så att programmet inte kraschar helt när ett litet fel inträffar Felhantering i de situationer där tveksamheter kan tänkas uppstå try – catch – (finally) Undantag kastas Undantag fångas

13 Undantag Ett undantag eller en exceptionell händelse fångas och programmet kan köra vidare: try { tal = Integer.parseInt(svarsRuta.getText()); } catch(NumberFormatException nfe){ System.err.print("Felaktigt talformat: "); System.err.println(nfe.getMessage()); infoRuta.setText(”Ett heltal tack!”); }

14 Att skriva egna undantag En egendefinierad klass som ärver Exception class MittUndantag extends Exception En enkel konstruktor i stil med: public MittUndantag(String str) { super (str); } Undantag kan sedan kastas enligt: if (!villkor) throw new MittUndantag(”FEL: Du … ”);

15 Slumpning i Java Användbart bl a i simuleringar och spel Det går att slumpa på flera sätt i Java Vi gör som i kursboken med java.lang.Math.random() Metoden returnerar ett slumpmässigt flyttal x 0 <= x < 1 Multiplicera till önskat intervall

16 Slumpning i Java Ett virtuellt tärningskast: int antalÖgon = tärningsKast(); public int tärningsKast() { return (int)(Math.random() * 6) + 1; }//tärningsKast +1 ger 1 – 6 istället för 0 - 5

17 Fält / arrayer Den engelska benämningen för fält är array vilket också ofta förekommer i svenska böcker Ett antal variabler av samma datatyp samlade till en enhet med indexering De olika minnesplatserna i fältet kan tilldelas egna värden oberoende av varandra Efter typnamnet finns [ ] int[] heltal; //enbart en deklaration

18 Fält / arrayer Fält är referensvariabler Fält måste initieras annars får de som alla andra referensvariabler värdet null int[] heltal = new int[5]; ELLER utan new genom: int[] heltal = {45, 2, 67, 12, 3}; Vad finns i x efter: int x = heltal[2];

19 Fält / arrayer Fälten kan indexeras genom variabler: int[] heltal = new int[10]; for (int i = 0; i < 10; i++) { heltal[i] = i * 2; } Vad finns sedan i x efter: 1) int x = heltal[4]; 2) x = heltal.length;

20 Fält / arrayer Fält kan även skapas för objekt: Color[5] färgfält; // java.awt.Color Button[8] knappfält;//java.awt.Button Flyg[12] flygfält; //egendefinierat Flerdimensionella fält (fält av fält): int[][] matris = new int [8][8]; //ett schackbräde

Kodexempel 2 public class F5_exempel2 { private int antalÖgon; private int[] minaKast; public F5_exempel2(){ minaKast = new int[5]; skrivUt(kastaFemGånger(minaKast)); } 21

Kodexempel 2 public int kastaTärning(){ return (int)(Math.random() * 6) + 1; } public int[] kastaFemGånger(int[] minaKast){ for(int i = 0; i < 5; i++){ minaKast[i] = kastaTärning(); } return minaKast; } 22

Kodexempel 2 public void skrivUt(int[] minaKast){ System.out.print("Mina kast: "); int i = 0; while(i < 5) System.out.print(" " + minaKast[i++]); System.out.println(); } public static void main(String[] arg){ new F5_exempel2(); } } 23

24 Allt om Java för nu! Tack för att ni lyssnade!