Presentation laddar. Vänta.

Presentation laddar. Vänta.

Programmeringsteknik för K och Media

Liknande presentationer


En presentation över ämnet: "Programmeringsteknik för K och Media"— Presentationens avskrift:

1 Programmeringsteknik för K och Media
Föreläsning 10 Klasserna Vector (kap 6.2) StringTokenizer (kap 6.3) Inläsning och utskrift på fil SimpleTextFileReader SimpleTextFileWriter Iteration och rekursion (kap 12) Linda Kann, Nada

2 Vector Används som en vektor men måste importeras: Fördelar: Nackdelar
import java.util.Vector; Fördelar: Längden utökas automatiskt när man lägger in ett nytt element. Lätt att stoppa in element var som helst. Nackdelar Ineffektivt. Varje element blir av klassen Object så man måste omvandla framtagna element till rätt klass.

3 Metoder i klassen Vector
addElement(Object element) Lägger till ett element sist. removeElement(Object element) Tar bort ett visst element. elementAt(int index) Returnerar det element som finnspå plats index firstElement() och lastElement() Returnerar första resp sista elementet. size() Returnerar antal element.

4 Exempel Vector balls = new Vector(); Ball b;
for (int i = 0; i < 22; i++) { b = new Ball(100, 100, 5); balls.addElement(b); } b = (Ball) balls.elementAt(16); stdout.println(”Antal: ” + balls.size());

5 StringTokenizer Kan dela upp en sträng i delar (tokens), t ex ta fram orden ur en mening. Normalt delas strängen vid mellanslag, tab och radbyte. Man kan också ange vilka tecken strängen ska delas vid. Importeras med: import java.util.StringTokenizer;

6 Konstruktorer StringTokenizer(String str)
str är strängen som ska delas upp. StringTokenizer(String str, String skiljetecken) skiljetecken anger vilka tecken str ska delas vid. String skiljetecken, boolean rubbet) rubbet ska vara true om även skiljetecknen ska returneras.

7 Metoder hasMoreTokens()
Returnerar true om det finns några tokens kvar att plocka fram ur strängen. nextToken() Returnerar nästa token. countTokens() Räknar ut hur många tokens det finns i strängen.

8 Exempel String mening; StringTokenizer orden;
mening = stdin.readLine(); // Skapar en ny tokenizer orden = new StringTokenizer(mening); // Skriver ut första ordet stdout.println(orden.nextToken()); // Skriver ut andra ordet

9 Filer Enda sättet att spara data mellan programkörningar är att lagra dessa på fil. På kursbiblioteket finns två klasser som gör det enklare att läsa från och skriva på fil. SimpleTextFileReader SimpleTextFileWriter Om du vill använda någon av klasserna kan du kopiera den från kursbiblioteket och lägga den sist i ditt program.

10 SimpleTextFileReader
// Öppna fil för läsning SimpleTextFileReader in = new SimpleTextFileReader(”infil.txt”); String str; // Läs in alla rader och skriv ut på skärmen while ((str = in.readLine())!= null) { System.out.println(str); } in.close();

11 SimpleTextFileWriter
// Öpnna fil för utskrift SimpleTextFileWriter out = new SimpleTextFileWriter (”utfil.txt”); out.println(”Detta skrivs på filen!”); System.out.println(”Detta på skärmen”); // Stäng filen out.close();

12

13 Iteration Iteration betyder upprepning.
Här innebär det att utföra något med hjälp av en slinga: for-slinga while-slinga Exempel: 5! = 1*2*3*4*5

14 Fakultet-iterativt import java.io.*; class FakultetIter {
public static void main(String[] args) { System.out.println(fakultet(5)); } //Metoden main public static int fakultet(int n) { int resultat = 1; for (int i=1; i<=n; i++) { resultat = resultat*i; } return resultat; } // Metoden fakultet

15 Rekursion Att lösa ett problem genom att först lösa en mindre variant av samma problem. Exempel: 5! = 5*4! Man får en metod som anropar sig själv. Metoden måste veta när den ska sluta, dvs det måste finnas ett basfall, t ex 0! = 1

16 Fakultet - rekursivt import java.io.*; class FakultetRek {
public static void main(String[] args) { System.out.println(fakultet(5)); } //Metoden main public static int fakultet(int n) { if (n==0) return 1; else return n*fakultet(n-1); } // Metoden fakultet }


Ladda ner ppt "Programmeringsteknik för K och Media"

Liknande presentationer


Google-annonser