TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm www.nada.kth.se/~mhj.

Slides:



Advertisements
Liknande presentationer
INTRODUKTION TILL PROGRAMMERING
Advertisements

Repetition av språket Java
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.
Algoritmer och data strukturer -Länkade listor
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Klassarv och inkapsling
Objektorienterad utveckling Lektion 2 Objekt, överlagring, överskuggning, klasshierarkier och dynamisk bindning KTH Peter Mozelius.
Om Java C =>Java syntax variabler metoder färdiga klasser
Övning5 Så här ska man tänka när man löser uppgift 1 på tentan lite grafik, så här söker man genom en lista så här läser man från en fil i java lösa uppgift.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programmeringsteknik för K och Media
Programkodens uppbyggnad
Att programmera i språket Java
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser (som används i marginalen)
Strömmar Vid läsning och skrivning används något som kallas strömmar.
Next previous Introduktion till Java Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: OOMPAE 2000.
Föreläsning 11 Arrayer.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Repetition inför slutprovet
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.
Objektorienterad Modellering Programmering och Analys
OOP Objekt-orienterad programmering
Programmeringsteknik för Media1 & K1
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 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Föreläsning 14 ”Enkel” Filhantering.
Föreläsning 10 Stränghantering.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
TILLÄMPAD DATALOGI (TILDA) Övning 3
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Datastrukturer och algoritmer
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
0. Kod, Klassdiagram och Sekvensdiagram import java.awt.event.*; import javax.swing.*; import java.awt.*; public class TwoThreads implements ActionListener.
INTRODUKTION TILL PROGRAMMERING
Class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num]; //vattenflödet i vattenfallen.
ITK:P2 F8 Strömmar och filhantering DSV Peter Mozelius.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
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.
TILLÄMPAD DATALOGI (TILDA) Övning 4
Övning 5
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
TILLÄMPAD DATALOGI (TILDA) Övning 2
TILLÄMPAD DATALOGI (TILDA) Övning 2
Programmeringsteknik för K och Media
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Länkade listor á la C/C++
Föreläsning 8: Exempel och problemlösning
JVM Java Virtual Machine
Presentationens avskrift:

TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm

Vad skiljer tilda från programmeringsteknik?

Repetera Java (referenser) Stackar Köer

class Repetition1 { public static void main(String [] args) { int tal; tal = 3; Rektangel rek; rek = new Rektangel(3.5, 2.0); System.out.println(rek.area()); } class Rektangel { private double längd; private double bredd; public Rektangel(double l, double b) { längd = l; bredd = b; } public double area() { return längd * bredd; } tal 3 null rek 3.5 längd bredd 2.0

class Repetition2 { public static void main(String [] args) { Rektangel r1 = new Rektangel(1.0,1.0); Rektangel r2 = new Rektangel(2.0,2.0); r1 = r2; System.out.println(r1.area()); System.out.println(r2.area()); } class Rektangel { private double längd; private double bredd; public Rektangel(double l, double b) { längd = l; bredd = b; } public double area() { return längd * bredd; } 4.0 r1 1.0 längd bredd r2 2.0 längd bredd 2.0

class Repetition3 { public static void main(String [] args) { Rektangel r1 = new Rektangel(1.0,1.0); Rektangel r2 = new Rektangel(2.0,2.0); Rektangel temp; temp = r1; r1 = r2; r2 = temp; } } class Rektangel { private double längd; private double bredd; public Rektangel(double l, double b) { längd = l; bredd = b; } public double area() { return längd * bredd; } r1 1.0 längd bredd 1.0 r2 2.0 längd bredd 2.0 temp null

class Repetition4 { public static void main(String [] args) { Rektangel r1 = new Rektangel(1.0,1.0); r1.längd = 2.0; } class Rektangel { private double längd; private double bredd; public Rektangel(double l, double b) { längd = l; bredd = b; } r1 1.0 längd bredd 1.0 fel!

class Repetition4 { public static void main(String [] args) { Rektangel r1 = new Rektangel(1.0,1.0); r1.längd = 2.0; } class Rektangel { private double längd; private double bredd; public Rektangel(double l, double b) { längd = l; bredd = b; } public void tilldelaLängd(double l) { längd = l; } r1 1.0 längd bredd 1.0 fel!

class Repetition4 { public static void main(String [] args) { Rektangel r1 = new Rektangel(1.0,1.0); r1.tilldelaLängd(2.0); } class Rektangel { private double längd; private double bredd; public Rektangel(double l, double b) { längd = l; bredd = b; } public void tilldelaLängd(double l) { längd = l; } r1 1.0 längd bredd

class Repetition5 { public static void main(String [] args) { Rektangel r1 = new Rektangel(1.0,1.0); Rektangel r2 = new Rektangel(2.0,2.0); Rektangel.skrivAntalRek(); } class Rektangel { private static int antal = 0; private double längd, bredd; public Rektangel(double l, double b) { antal++; längd = l; bredd = b; } public double area() { return längd * bredd; } public static void skrivAntalRek() { System.out.println(antal); } r1 1.0 längd bredd 1.0 r2 2.0 längd bredd 2.0 antal

class Repetition6 { public static void main(String [] args) { Person p1 = new Person(”Anna”); Person p2 = new Person(”Bea”); p2.mor = p1; System.out.println(p2.namn); System.out.println(p2.mor.namn); } class Person { public String namn; public Person mor; public Person(String namn) { this.namn = namn; mor = null; } p1 namn mor null p2 namn mor null ”Anna””Bea” Bea Anna

System.out.println(p4.namn); System.out.println(p3.namn); System.out.println(p2.namn); System.out.println(p1.namn); p1 namn mor null ”Anna” p2 namn mor ”Bea” p3 namn mor ”Carin” p4 namn mor ”Doris” Doris Carin Bea Anna

System.out.println(p4.namn); System.out.println(p4.mor.namn); System.out.println(p4.mor.mor.namn); System.out.println(p4.mor.mor.mor.namn); namn mor null ”Anna” namn mor ”Bea” namn mor ”Carin” p4 namn mor ”Doris” Doris Carin Bea Anna

Person p = p4; while (p != null) { System.out.println(p.namn); p = p.mor; } namn mor null ”Anna” namn mor ”Bea” namn mor ”Carin” p4 namn mor ”Doris” p null DorisCarinBeaAnna

Stackar

Stack push(3) push(5) push(4) pop() push(4711)

Stack top push(3) push(5) push(4) pop() push(4711) new Stack()

class TestaStack { public static void main(String [] args) { Stack stack = new Stack(); stack.push(3); stack.push(5); stack.push(4); System.out.println(stack.pop()); }} class Node { public int nr; public Node next; public Node(int nr) { this.nr = nr; next = null; } class Stack { Node top; public Stack() { top = null; } public void push(int nr) { Node node = new Node(nr); node.next = top; top = node; } public int pop() { int nr = top.nr; top = top.next; return nr; } stack null top 3 nr null next null 5 nr next 4 nr null next node 4 nr

Stacka plättar (031020:2) s1s2 s1.push(s2.pop()) Tilda har stekt plättar och lagt upp dom i en stack på sin tallrik. För att inte bränna sig i munnen vill hon äta plättarna i gräddningsordning, alltså underifrån. På radion pratar dom om hur farligt det är att äta bränd mat och hon inser att hon bör lämna kvar de svartaste plättarna. (4p) Tallriken rymmer inte mer än två plättstackar. Hur ska hon göra? s1.pop()s2.push(s1.pop())

Köer

Kö enqueue(3) enqueue(5) enqueue(7) dequeue() enqueue(9) dequeue()

Kö 9357 head tail enqueue(3) enqueue(5) enqueue(7) dequeue() enqueue(9) dequeue()

Läsa in från tangentbordet

class UtanMio { public static void main(String [] args) throws IOException { BufferedReader tangentbord = new BufferedReader(new InputStreamReader(System.in)); String ålderText = tangentbord.readLine(); int ålderTal = Integer.parseInt(ålderText); System.out.println(ålderTal); }

Class Mio

class MedMio { public static void main(String [] args) { Mio mio = new Mio(); int tal = mio.getInt(); System.out.println(tal); }

public class Mio implements MioI { /** * Skapar en instans av Mio som läser från tangentbordet. */ public Mio() { } /** * Skapar en instans av Mio som läser från fil filename fil att läsa från */ public Mio(String filename) { myKeyboard = openRead(filename); } /** Läs en rad från tangenterna, glufsa radbytet, returnera raden */ public String getLine() { return getLine(myKeyboard); } /** Läs ett ord avgränsat av blanka från tangenterna och returnera det */ public String getWord() {

import java.io.*; public interface MioI { /** Läs en rad, glufsa radbytet, returnera raden */ public String getLine() ; /** Läs ett ord avgränsat av blanka och returnera det */ public String getWord() ; /** Läs ett heltal avgränsat av blanka och returnera det*/ public int getInt() ; /** Läs decimaltal avgränsat av blanka och returnera det*/ public double getDouble() ; /** Läs ett tecken och returnera det */ public char getChar() ; /** Tjuvtitta på nästa tecken och returnera det */ public char nextChar() ; /** Glufsa eventuella blanka på tur att läsas */ public void skipBlanks() ; /** Returnera true om retur står i tur */ public boolean eoln() ; /** Returnera true om ctrl-D står i tur */ public boolean eof() ; }

Finn fem fel

class FinnFemFel { public static void main(String [] args) { Mio mio = new Mio(); System.out.println("Vad vill du att programmet skriver ut?"); String text = mio.getWord(); System.out.println("Hur många gånger?"); int antal = mio.getWord(); skriv(antal, text); } public static double skriv(String s, int antal) { for (int i = 1; i < antal; i++) { System.out.print(text + ” ”); } Vad vill du att programmet skriver ut? Hej Hur många gånger? 5 Hej Hej Hej Hej Hej