Gelijkheid van Strings static bool Gelijk( string s, string t) { } int m = s.Length; int n = t.Length; for (i=0; i<m && i<n; i++) { } char c = s[i]; char.

Slides:



Advertisements
Verwante presentaties

Advertisements

Hoofdstuk 10.2 Rekenmachine-casus.
Klassen en objecten.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 8 Objecten en klassen.
Consoletoepassing Variabelen Klassen
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Programma zonder window commandline interface. Commandline programma public static void main (String [ ] params) { System. out. println (“Hoi allemaal!”);
Hoofdstuk 12 Ontwerp van programma’s. Ontwerp van de GUI nStandaard in Applets: alle met add toegevoegde componenten komen naast elkaar (totdat de regel.
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
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter BinaryWriter.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
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 :
Opbouw van het Netwerk void Lees (string filenaam ) { while ( (regel=sr.ReadLine()) != null ) { string [] r = regel.Split(" ", StringSplitOptions.RemoveEmpty.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
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
Lezen en schrijven van tekst
2e Deeltentamen Nagekeken werk ligt voor in de zaal (alfabetisch op achternaam) Neem het even mee, de uitwerking wordt in het college besproken Discussies.
Voortborduren op eerder gedaan werk
1e Deeltentamen Nagekeken werk ligt voor in de zaal (alfabetisch op achternaam) Neem het even mee, de uitwerking wordt in het college besproken Discussies.
Gameprogrammeren: Objecten en geheugen
Reader en Writer leest en schrijft bytes leest string en char
Gameprogrammeren: Keuzeopdrachten
Hoofdstuk 9.2 Strings.
string versus char string char klasse primitief type
Letterfrequentie turven
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’,
Lezen en schrijven van tekst
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Tiles in Tick Tick
Tinpro015b-les5 Invoer en Uitvoer.
Declaratie Declaratie reserveert geheugenruimte
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Arjan Egges & Paul Bergervoet
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Arjan Egges & Paul Bergervoet
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Libraries, Platform Games
Practicum: schets-editor
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Gameprogrammeren: Abstracte klassen
Arjan Egges Paul Bergervoet Wouter van Toll
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Tiles en File I/O in Tick Tick
Object Communication (Jewel Jam)
Exceptions Exception:
Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Software Development fundamentals
Transcript van de presentatie:

Gelijkheid van Strings static bool Gelijk( string s, string t) { } int m = s.Length; int n = t.Length; for (i=0; i<m && i<n; i++) { } char c = s[i]; char d= t[i]; if (c!=d) return false; return m==n;

Gelijkheid van Strings static bool Equals( string s, string t) { } int m = s.Length; int n = t.Length; for (i=0; i<m && i<n; i++) { } char c = s[i]; char d= t[i]; if (c!=d) return false; return m==n; class String { } this.Length; this[i];

Publieksvraag: Ordenen van Strings bool Equals( string t ) { // true als alle letters hetzelfde zijn } class String { } { } int Compare( string t ) // 0 als this en t hetzelfde zijn // positief als this alfabetisch voor t komt // negatief als this alfabetisch na t komt

Gelijkheid van Strings bool Equals ( string t) { } int m = this.Length; int n = t.Length; for (i=0; i<m && i<n; i++) { } char c = this[i]; char d= t[i]; if (c!=d) return false; return m==n; class String { }

Ordenen van Strings bool Equals ( string t) { } int m = this.Length; int n = t.Length; for (i=0; i<m && i<n; i++) { } char c = this[i]; char d= t[i]; if (c!=d) return false; return m==n; class String { } Compareint c - d ; m - n ;

Hoofdstuk 10.2 Rekenmachine- casus

Voorbeeld: Rekenmachine

Twee aspecten: nUser-interface nWerking class Calculator : Form class Processor

Rekenmachine: User-interface Label TableLayoutPanel Calculator ( ) { } paneel = new TableLayoutPanel( ); this.Controls.Add( paneel ); Button for (int t=0; t<16; t++) { } Button knop = new Button(); paneel.Controls.Add( knop ); Buttons zijn ondergeschikt aan het paneel

User-interface Calculator ( ) { } paneel = new TableLayoutPanel( ); this.Controls.Add( paneel ); for (int t=0; t<16; t++) { Button knop = new Button(); paneel.Controls.Add( knop ); Buttons zijn ondergeschikt aan het paneel } knop.Text = "789/456*123+0C=-"[t].ToString(); knop.Dock = DockStyle.Fill; knop.Click += this.klik; knop.KeyPress += this.toets; knop.Resize += this.groei; paneel.Columncount = 4; for (int t=0; t<4; t++) paneel.ColumnStyles.Add(...25%... );

Opbouw klasse Calculator class Calculator : Form { Calculator ( ) { result = new Label( ); result.TextAlign = ContentAlignment.MiddleRight; // en de rest van de Userinterface-opbouw proc = new Processor ( ); } Label result; TableLayoutPanel paneel; Processor proc; membervariabelen ook nodig in EventHandlers

Calculator Event-handlers class Calculator : Form { void klik (object obj, EA ea) { } Label result; Processor proc; void toets(object obj, KPEA kpea ) { } void groei(object obj, EA ea ) { } verwerk( kpea.KeyChar ); verwerk( ((Button) obj). Text[0] ); Control c = (Control) obj; c.Font = new Font("Tahoma", h); int h = c.Height / 2; if (c==result) h = c.Height/3;

Calculator Event-handlers class Calculator : Form { void verwerk (char c) { Label result; Processor proc; } if (c=='C')proc.Schoon(); else if (c=='=')proc.Reken(); else if (c>='0'&&c<='9')proc.Cijfer(c–'0'); elseproc.Operatie(c); result. Text ( );proc. Scherm

Opbouw klasse Proc class Proc { void Schoon ( ) {... } void Reken ( ) {... } void Cijfer (int n) {... } void Operatie (char c){... } Processor ( ){ this. Schoon(); } wat kan een Processor? wat is een Processor? long Scherm;

Wat is een Processor? nwaarde op het scherm schermwaarde wordt tienmaal zo groot plus cijfer er lijkt niets te gebeuren... nhuidige waarde nvorige waarde nlaatst gebruikte operator

Opbouw klasse Processor class Processor { void Schoon ( ) {... } void Reken ( ) {... } void Cijfer (int n) {... } void Operatie (char c){... } Processor ( ){ this. Schoon(); } long Scherm; long waarde, vorige; char op; wat kan een Processor? wat is een Processor?

Processor methode cijfer class Processor { void Cijfer (int n) { } long scherm, waarde, vorige; char op; waarde = 10*waarde + n; scherm = waarde;

Processor methode reken class Processor { void Reken ( ) { } long scherm, waarde, vorige; char op; if (op=='+') if (op=='–') if (op=='*') if (op=='/') scherm = vorige; waarde = 0; vorige += waarde; vorige –= waarde; vorige *= waarde; vorige /= waarde;

Proc’s methode operatie class Processor { void Operatie (char c) { } long scherm, waarde, vorige; char op; op = c; this. reken ( ); void Schoon ( ) {waarde = 0; vorige = 0; scherm = 0; op = } '+';

Testen van een reeks mogelijke waarden if (x==1) else if (x==2) else if (x==3) else if (x==4) else if (x==5) else if (x==6) else if (x==7) else this.een(); this.twee(); this.drie(); this.vier(); this.vijf(); this.zes(); this.zeven(); this.meer(); case 1: case 2: case 3: case 4: case 5: case 6: case 7: default: switch (x) { } break;

Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen

Voorbeeld: Tekst-Editor Multiple Document Interface Open/Save: standaard- dialoog Zoek/Vervang: eigen dialoog files lezen en schrijven

Multiple Document Interface MDI- container MDI- child MDI- children

MDI-container en -children class Hoofdscherm : Formclass Tekst : Form { } { } Hoofdscherm ( ) Tekst ( ) { } { } menu.DropDownItems.Add ("Nieuw", null, this.nieuw ); void nieuw (object o, EA ea ) { } this.IsMdiContainer = true; menu = new ToolStripMenuItem("File"); Tekst t = new Tekst(); t.Show ( ); t.MdiParent = this; TextBox invoer; Label status; invoer = new TextBox(); status = new Label(); invoer.TextChanged += anders; void anders (object o, EA ea ) { } status.Text = invoer.Text.Length.ToString();

Multiple Document Interface menu-regel bevat items van de parent èn children

MDI-container en -children class Hoofdscherm : Formclass Tekst : Form { } { } Hoofdscherm ( )Tekst ( ) { } { } menu.DropDownItems.Add ("Nieuw", null, this.nieuw ); this.IsMdiContainer = true; menu = new ToolStripMenuItem("File"); MenuStrip strip = new MenuStrip ( ); strip.Items.Add(menu); this.MainMenuStrip = strip; menu.DropDownItems.Add ("Open", null, this.openen ); menu = new ToolStripMenuItem("File"); MenuStrip strip = new MenuStrip ( ); strip.Items.Add(menu); strip.Visible = false;

Dialogen voeren

class Hoofdscherm : Formclass Tekst : Form { } { } void openen (obj o, EA ea ) { } { } OpenFileDialog d = new OpenFileDialog(); void zoeken (obj o, EA ea ) d.ShowDialog()if ( ==DialogResult.OK ) { } Tekst t = new Tekst(); t.MdiParent = this; t.Show(); t.lees();d.FileName ZoekDialoog d = new ZoekDialoog(); d.ShowDialog() ==DialogResult.OK ) { } if ( TextBox invoer; invoer.Select(pos, int pos = alles.IndexOf(zk); string alles = invoer.Text; string zk = d.Zoek.Text; zk.Length); d.Filter = "Teksten|*.txt";

ZoekDialoog class ZoekDialoog : Form { } ZoekDialoog ( ) { } Zoek = new TextBox(); Zoek.Location=...;...Add(Zoek); public TextBox Zoek; ok = new Button(); ok.Text="OK"; ok.Location=...;...Add(ok); cc = new Button(); cc.Text="Cancel"; cc.Location=...;...Add(cc); ok.Click += this.positief; void positief (obj o, EA ea ) { } this.DialogResult = DialogResult.OK; this.Close ( ); this.CancelButton = cc; this.AcceptButton = ok; reageert ook op ESC sluit automatisch reageert ook op Enter private Button ok, cc;

Openen en Opslaan class Hoofdscherm : Formclass Tekst : Form { } { } void openen (obj o, EA ea ) { } OpenFileDialog d = new OpenFileDialog(); d.ShowDialog()if ( ==DialogResult.OK ) { } TextBox invoer; d.Filter = "Teksten|*.txt"; void opslaanAls (obj o, EA ea ) { } SaveFileDialog d = new SaveFileDialog(); d.ShowDialog()if ( ==DialogResult.OK ) { } d.Filter = "Teksten|*.txt";

Openen en Opslaan class Hoofdscherm : Formclass Tekst : Form { } { } void openen (obj o, EA ea ) { } OpenFileDialog d = new OpenFileDialog(); d.ShowDialog()if ( ==DialogResult.OK ) { } Tekst t = new Tekst(); t.MdiParent = this; t.Show(); t.lees();d.FileName TextBox invoer; d.Filter = "Teksten|*.txt"; void opslaanAls (obj o, EA ea ) { } SaveFileDialog d = new SaveFileDialog(); d.ShowDialog()if ( ==DialogResult.OK ) { } this.schrijf( d.FileName ); d.Filter = "Teksten|*.txt"; void lees (string naam) { } void schrijf (string naam) { }

Openen en Opslaan class Tekst : Form { } TextBox invoer; void lees (string naam) { } void schrijf (string naam) { } StreamReadersr = new StreamReader (naam); sr. ReadToEnd ( )this.invoer.Text =; sr. Close ( ) ; StreamWritersw = new StreamWriter (naam); sw. Write () ;this.invoer.Text sw. Close ( ) ; this.Text = naam;

Klassen om files te lezen en te schrijven Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter BinaryWriter XmlWriter TextReader StreamReader StringReader BinaryReader XmlReader Object store decorator

Klassen om files te lezen en te schrijven Stream FileStream MemoryStream NetworkStream StreamWriterStreamReader leest en schrijft bytes leest string en char schrijft string en char leest/schrijft een file leest/schrijft het geheugen leest/schrijft het netwerk

Methoden van Stream Stream FileStream MemoryStream NetworkStream FileStream fs; fs = new FileStream ("test", FileMode.Open ); FileMode.Create FileMode.Append fs.ReadByte( )int b =; levert getal tussen of –1 als er niets meer is byte [ ] ruimte = new byte[100]; fs.Read ( ruimte, 100 ) int n =; class FileStream { } int Read (byte[] doel, int max) { } for (int t=0; t<max; t++) { } int b = this.ReadByte(); if (b==–1) return t; doel[t] =b ; (byte) return max;

Methoden van Stream Stream FileStream MemoryStream NetworkStream class FileStream { } int Read (byte[] doel, int max) { } for (int t=0; t<max; t++) { } int b = this.ReadByte(); if (b==–1) return t; doel[t] =b ; (byte) return max; Stream int ReadByte ( ) virtual { /* leeg */ } class FileStream : Stream { } override int ReadByte ( ) { return }

Methoden van Stream Stream FileStream MemoryStream NetworkStream class FileStream { } int Read (byte[] doel, int max) { } for (int t=0; t<max; t++) { } int b = this.ReadByte(); if (b==–1) return t; doel[t] =b ; (byte) return max; Stream int ReadByte ( ) virtual { /* leeg */ } class FileStream : Stream { } override int ReadByte ( ) { return } abstract ;

Abstracte methode/klasse Stream FileStream MemoryStream NetworkStream nAbstracte methode: methode zonder body nAbstracte klasse: bevat abstracte methode ●kun je geen new object van maken ●alleen bedoeld als superklasse Brush SolidBrush HatchBrush

Abstracte methode/klasse Stream FileStream MemoryStream NetworkStream nAbstracte methode: methode zonder body nAbstracte klasse: bevat abstracte methode ●kun je geen new object van maken ●alleen bedoeld als superklasse MotorVoertuig PersonenAuto VrachtWagen

Methoden van Stream Stream FileStream MemoryStream NetworkStream class FileStream { } int Read (byte[] doel, int max) { } for (int t=0; t<max; t++) { } int b = this.ReadByte(); if (b==–1) return t; doel[t] =b ; (byte) return max; Stream int ReadByte ( )virtual class FileStream : Stream { } override int ReadByte ( ) { return } abstract ;

Decorator Streams Stream FileStream MemoryStream NetworkStream Stream str; BufferedStream GZipStream CryptoStream store decorator str = new FileStream ( "test", FileMode.Create ); GZipStream klein; klein = new GZipStream ( str ) ; klein.Write( mijnByteArray ); geef het onderliggende store-medium "in beheer" CryptoStream geheim; geheim = new CryptoStream ( klein ) ; je kunt decorators combineren

Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter TextReader StreamReader StringReader Object store decorator leest en schrijft bytes leest string en char schrijft string en char vanuit een Stream vanuit een String

Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter TextReader StreamReader StringReader Object store decorator leest en schrijft bytes leest string en char schrijft string en char Stream str; str = new FileStream ( "test.txt", FileMode.Open ); TextReader lezer; lezer = new StreamReader ( str ); string s; s = lezer. ReadToEnd ( );

Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter TextReader StreamReader StringReader Object store decorator leest en schrijft bytes leest string en char schrijft string en char Stream str; str = new FileStream ( "test.txt", FileMode.Open ); TextReader lezer; lezer = new StreamReader ( str ); string s; s = lezer. ReadToEnd ( ); lezer = new StreamReader ( "test.txt" ); convenience-methode

Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter BinaryWriter XmlWriter TextReader StreamReader StringReader BinaryReader XmlReader Object store decorator leest en schrijft bytes leest string en char schrijft string en char leest int en double leest XML-teksten

Encoding: char naar byte nASCII ●1 byte per char, <128 nUnicode ●2 bytes per char aäAα 41613F 4161E4B nBigEndianUnicode ●2 bytes, grote eerst 4161E4B nLatin-1 (iso ) ●1 byte per char, < E43F nUTF8 ●1/2/3 bytes per char 4161A4B1C3CE header FEFF FE EFBBBF

Encoding