Hoofdstuk 11 Strings en arrays. TextArea en String class LetterTeller extends Applet { void init ( ) { invoer = new TextArea (5, 40); uitvoer = new TextField(40);

Slides:



Advertisements
Verwante presentaties
Hoofdstuk 8: Recursie.
Advertisements

Het type int Tekenen met Java operatoren
Klassen en objecten.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Hoofdstuk 6: Controle structuren
Hoofdstuk 2 Hallo, C# !.
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Imperatief programmeren nProgramma bestaat uit nRunnen is opdrachten gegroepeerd in methoden één voor één uitvoeren te beginnen met main.
Hoofdstuk Strings en arrays. Primitieve types nint gehele getallen-17, -5, 0, 3, 178 ndouble reëele getallen3.141, 2.0, -1.5E8 nbool waarheidswaarden.
Hoofdstuk 8 Objecten en klassen.
Oefeningen Hoofdstuk 3.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
6.1 Inleiding HOOFDSTUK 6 METHODEN
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Arrays.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Variabelen en berekeningen
JAVA: een platformonafhankelijke taal
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 14.2 Algoritmen: Automatische taalherkenning.
Hoofdstuk 3 Methoden om te tekenen.
Hoofdstuk 7 Herhaling Nieuw!. while ( x
Hoofdstuk 8 Keuze verplicht…. Opdrachten voorwaardelijk uitvoeren opdracht wordt alleen uitgevoerd als voorwaarde geldt if (temperatuur
Hoofdstuk 12 Ontwerp van programma’s. Ontwerp van de GUI nStandaard in Applets: alle met add toegevoegde componenten komen naast elkaar (totdat de regel.
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Hoofdstuk 3 Tekenen en rekenen.
Hoofdstuk 4 Nieuwe methoden. Tekenen g.drawRect(20,60,40,40); g.drawLine(20,60,40,40); g.drawLine(40,40,60,60); g.drawRect(70,60,40,40); g.drawLine(70,60,90,40);
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
Declaratie en toekenningen nEén keer declarareren nMogelijk meerdere toekenningen int x; x = 100; x = 250; x = x + 1; x = 2 * x; int x = 100; x = 100;
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Eerste deeltentamen nNagekeken werk ligt voor in de zaal nNeem je eigen werk mee: in het college wordt het besproken nVragen over de beoordeling: in de.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Resources. Kompas } { protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } public KompasView(Context c) : base(c) { } class KompasView :
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Opbouw van het Netwerk void Lees (string filenaam ) { while ( (regel=sr.ReadLine()) != null ) { string [] r = regel.Split(" ", StringSplitOptions.RemoveEmpty.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
GUI & classes Een Gui in een class steken en het object gebruiken.
Informatie beoordelen If else Switch En Wiskunde.
Meer constructormethodes in klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; public Kleur( byte r, byte g, byte b ) { } Rood=r; Groen=g; Blauw=b;
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Objecten en geheugen
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Char en String
Letterfrequentie turven
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
vandaag èn vrijdag deadline maandag 12 dec.
Publieksvraag // schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string // voorbeeld-aanroep: int n; n = Demo . Freq(’e’,
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Afsluiting
Gameprogrammeren: Herhalingen
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Arjan Egges & Paul Bergervoet
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Klassen en objecten
Implementatie Zoekboom
Exceptions Exception:
Gameprogrammeren: Arrays
Transcript van de presentatie:

Hoofdstuk 11 Strings en arrays

TextArea en String class LetterTeller extends Applet { void init ( ) { invoer = new TextArea (5, 40); uitvoer = new TextField(40); knop = new Button(“Tel”); this.add(invoer); this.add(uitvoer); this.add(knop); knop.addActionListener(this); } TextArea invoer; TextField uitvoer; Button knop; implements ActionListener

TextArea en String class LetterTeller extends Applet { void actionPerformed ( ActionEvent e ) { String s; int n; s = invoer.getText (); n = s.length (); uitvoer.setText ( “u heeft ” + n + “ tekens getikt” ); } TextArea invoer; TextField uitvoer; Button knop; implements ActionListener

String-methodes nint length( ) nbooleanequals(String s) nStringconcat(String s) nStringsubstring(int start) nStringsubstring(int start, int eind) nStringtoUpperCase( ) nStringtoLowerCase( )

concat en substring nString s, t, u, v, w; ns = “ham”; nt = “burger”; nu = s.concat(t); nv = u.substring(3); nw = u.substring(3, 7); s t u v w hamburger hamburger burger burg hamburger s + t ; “van en met” “tot en zonder”

Publieksvraag nSchrijf een methode beginstuk met twee String-parameters x en y die bepaalt of x het beginstuk van y is nSchrijf een methode onderdeel met twee String-parameters x en y die bepaalt of x ergens als substring van y voorkomt

Methode beginstuk (String x, String y)booleanprivate static kortlang {}{} y. substring(0, x.length() ) x. equals ( ) return ; beginstuk

Methode onderdeel (String x, String y)booleanprivate static {}{} onderdeel y. substring(t)this. beginstuk(x, ) if ( ) return true; for (t=0; t<y.length(); t++) return false; int t;

Meer String-methodes nbooleanstartsWith(String s) nbooleanendsWith(String s) nintindexOf(String s) private static boolean onderdeel(String x, String y) { return y.indexOf(x)>=0 ; }

Losse letters nStringsubstring(int begin, int eind) String voorletter; voorletter = s. substring(0,1); ncharcharAt(int positie) char eerste; eerste = s. charAt(0);

Primitieve types nint gehele getallen-17, -5, 0, 3, 178 ndouble reëele getallen3.141, 2.0, -1.5E8 nboolean waarheidswaarden false, true nchar losse symbolen’A’, ’B’, ’Z’, ’a’, ’4’, ’#’, ’:’

Publieksvraag n//schrijf een static methode die telt hoe // vaak een symbool voorkomt in een String n//voorbeeld-aanroep: int n; n = Demo. freq(’e’, ”some text” ); n// hint: gebruik een for opdracht

Tel symbool-frequentie private static int freq(char x, String s) { s.charAt(t)==x for (t=0; t<s.length(); t++) if ( ) aantal++; int aantal; aantal = 0; return aantal; }

IBM/DOS Geschiedenis van char n1970s:6 bits = 64 symbols 26 letters, 10 digits, 28 leestekens n1980s: 7 bits = 128 symbols +26 lowercase, +5 leestekens, 33 control n1990s: 8 bits = 256 symbols +letters met accenten n2000s: 16 bits = symbols +Grieks, Cyrillisch, Japans, Devangari,... ASCII ANSI/ISO Unicode

Character coding code 0 code 127 code 48 code 32 code 65 code 97

char bijzonderheden nalfabetisch geordend char c; if ( ’A’<=c && c<=’Z’ ) … nconverteerbaar naar int int n; n = c + 32; nen terug c = (char) n;

Conversies nConversie naar “grotere” waarde kan altijd double d; int n; d = n; int n; char c; n = c; Component x; Button b; x = b; nConversie naar “kleinere” waarde is gevaarlijk n = (int) d;c = (char) n;b = (Button) x;

twee tekens in de broncode, toch één character! Speciale char-waarden nLetterlijk symbool nSpeciaal symbool nHet quote-symbool nHet backslash-symbool ’A’ ’\n’ ’\’’ ’\\’ ’&’ ’\t’ ’\”’

Woorden tellen void actionPerformed ( ActionEvent e ) { String s; int n; s = invoer.getText (); } n = s.length (); uitvoer.setText ( “u heeft ” + n + “ tekens getikt” ); uitvoer.setText ( “u heeft ” + w + “ woorden getikt” + “op ” + r + “ regels” ); if (s. charAt(t)==‘ ’) w++; for ( t=0; t<s.length(); t++ ) if (s. charAt(t)==‘\n’) { r++; w++; } {}{} w = 0; r = 0; int w, r, t;

String versus char nStringchar nklasseprimitief type nobject-verwijzingdirecte waarde nnul, een of meer…precies één symbool n“” “A” “hello” ’A’ nmethodenoperatoren uequals== uconcat< usubstring+

Arrays nArray: rij genummerde variabelen tabel length5 int [ ] tabel; new int [5];tabel = declaratie van een array creëren van het eigenlijke array-object

Gebruik van een array n’t zijn echte variabelen: tabel length5 tabel [2] = 37; x = tabel [2] + 5; 37 x 42 if (tabel.length<10)... tabel.length = 10; echter de lengte mag je niet wijzigen

Gebruik van een array nvariabele als index in de array tabel length5 tabel [0] = 0; tabel [1] = 0; tabel [2] = 0; tabel [3] = 0; tabel [4] = 0; tabel [t] = 0; for (t=0; t<5; t++)

Cirkelklikker class Cirkelklikker extends Applet { public void paint(Graphics g) { g.fillOval(x-5, y-5, 10, 10); } public void mousePressed(MouseEvent e) { x = e.getX( ); y = e.getY( ); this.repaint( ); } public void init( ) { this.addMouseListener(this); impl ML int x, y;

Cirkelklikker class Cirkelklikker extends Applet { public void paint(Graphics g) { g.fillOval(x[t]-5, y[t]-5, 10, 10); } public void init( ) { this.addMouseListener(this); impl ML int x, y; for (int t=0; t<n; t++) public void mousePressed(MouseEvent e) { x = e.getX( ); y = e.getY( ); this.repaint( ); } int n=0; n++;

Cirkelklikker class Cirkelklikker extends Applet { public void paint(Graphics g) { g.fillOval(x[t]-5, y[t]-5, 10, 10); } public void init( ) { this.addMouseListener(this); impl ML int x, y; for (int t=0; t<n; t++) public void mousePressed(MouseEvent e) { x[n] = e.getX( ); y[n] = e.getY( ); this.repaint( ); } n++; int [ ] x, y; x = new int[100]; y = new int[100]; int n=0;

Toepassing: lettertel-programma gebruiker tikt tekst in... drukt op de knop... en het programma bepaalt alle letter-frequenties

User-interface public class Tekst extends Applet implements ActionListener { TextArea invoer, uitvoer; Button knop; public void init () { invoer = new TextArea( 5, 30); uitvoer = new TextArea(28, 20); knop = new Button(“tel letters”); uitvoer. setEditable (false); this.add(invoer); this.add(knop); this.add(uitvoer); knop.setActionListener (this); }

Tel de spaties en regels void actionPerformed ( ActionEvent e ) { String s; int w,r,t; s = invoer.getText (); w=0; r=0; for (t=0; y<s.length(); t++) { if ( s.charAt(t)==‘ ’) w++; if (s.charAt(t)==‘\n’) r++; } uitvoer.setText( (w+r) + “ woorden op ” + + r + “ regels” ); } het eigenlijke telwerk input output & layout

Aparte klasse voor het telwerk class Tellers { } int r, w; Tellers() { r=0; w=0; } void turf (String s) { int t; for (t=0; t<s.length; t++)....r++....w } String toString ( ) { return (w+r) + “ woorden op ” + r + “ regels”; }

Gebruik van de klasse void actionPerformed(ActionEvent e) { } Tellers t; t = new Tellers(); t. turf ( invoer.getText() ); uitvoer. setText ( t.toString() );

De klasse TurfTab public class TurfTab { int [ ] tellers; int totaal; public TurfTab ( ){... } public void turf (String s){... } public String toString ( ) {... } private void turf (char c){... } } klasse-ontwerp: wat is... & wat kan... & hoe?

De klasse TurfTab public class TurfTab { int [ ] tellers; int totaal; public TurfTab ( ) { } tellers = new int [26]; } for (int t=0; t<26; t++) tellers [t] = 0; public void turf (String s) { } turf (s.charAt(t)); for (int t=0; t<s.length(); t++)

De klasse TurfTab public class TurfTab { int [ ] tellers; int totaal; public void turf (char c) { } tellers [ ] ++; totaal++; } if (c>=‘A’ && c<=‘Z’) { } c - ‘A’ if (c>=‘a’ && c<=‘z’) { tellers [ c - ‘a’ ] ++; totaal++; }

t + “:” + tellers[t] + “keer\n” ; De klasse TurfTab public class TurfTab { int [ ] tellers; int totaal; public String toString( ) { } } String result; return result; result = “”; result += for (int t=0; t<26; t++) result += “totaal:” + totaal; ( + ‘A’)(char)

Array als parameter tabel length int kleinste ( int [ ] tabel ) { } int resultaat; return resultaat; if (tabel [t] < resultaat) resultaat = tabel [t]; for (int t=0; t<tabel.length; t++) resultaat =tabel [0];

Samenvatting nArray: rij genummerde variabelen int [ ] tabel; tabel = new int [10]; tabel [x] = v;

Gebruik van arrays tabel length int kleinste ( int [ ] tabel ) { } int resultaat; return resultaat; if (tabel [t] < resultaat) resultaat = tabel [t]; for (int t=0; t<tabel.length; t++) resultaat =tabel [0];

String-methodes nint length( ) nbooleanequals(String s) nStringconcat(String s) nStringsubstring(int start) nStringsubstring(int start, int eind) nStringtoUpperCase( ) nStringtoLowerCase( )

Overzicht programma- constructies Opdrachten nToekenning nAanroep void-methode nreturn-opdracht nwhile-opdracht nfor-opdracht n{... } - bundeling Expressies n Constante n Variabele n Aanroep methode n Expressie met operatoren n Expressie met haakjes n new-expressie kun je doen kun je uitrekenen nif-else-opdracht ntry-catch-opdracht nbreak-opdracht ncast nthis null nArray-indicering a[t]