Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Hoofdstuk 1 Programmeren.
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
Het ontwerpen van een klasse
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Het type int Tekenen met Java operatoren
Klassen en objecten.
Inleiding Informatica
Hoofdstuk 1 Programmeren.
Hoofdstuk 2 Hallo, C# !.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Frank Stalpers en Ad Baars
Numerieke Natuurkunde
Hoofdstuk 8 Objecten en klassen.
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
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.
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.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Hoorcollege 2 Basis gameprogrammeren. Soorten programma’s Console- applicatie.
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,
PROGRAMMEREN LOGISCH en FUNCTIONEEL Ik zeg wat ik denk!
Hoofdstuk 3 Methoden om te tekenen.
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Hoofdstuk 3 Tekenen en rekenen.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 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;
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
Mobiel programmeren Jeroen Fokker.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Hoofdstuk 2 Hallo, C# !. Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd.
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.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 2 inleveropdrachten) college Tent. 1 Tent. 2 college prakt. 1 prakt. 2 prakt.
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Informatica Welkom! maandag 16 November Les B-1.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Imperatief programmeren
Arjan Egges & Paul Bergervoet
Aanroep van een methode voert opdrachten uit in de body daarvan
ISensorEventListener
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Gameprogrammeren: Programmastructuur
Basis Gameprogrammeren
Gameprogrammeren: Afsluiting
Gameprogrammeren: Game Basics
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Tinpro015b-les4 Klassen.
Voorbeeld: Simulatie van bewegende deeltjes
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Programmeren woensdag 4 oktober 2017.
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Klassen en objecten
Software Development fundamentals
Java Masterclass Sar Maroof.
Software Development fundamentals
Transcript van de presentatie:

Imperatief programmeren nJeroen Fokker

Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id met password nMicrosoft Visual Studio Community 2015 of Visual Studio Express C# 2010/2013 uop de prakticumcomputers uen/of zelf gratis downloaden / docs / vakken / imp

Wat gaan we doen? nTheorie (14 colleges + 3 deeltentamens) nPraktijk (14 keer, 3 inleveropgaven) college Tent. 1 Tent. 2 Tent. 3 college prakt. 1 prakt. 2 prakt. 3 prakt. 1 prakt. prakt. 1 prakt. prakt. 2 prakt wo 15-17vr 13-15< werkcoll nOefening (6 werkcolleges)

Verplichtingen nMeedoen aan 3 deeltentamens nInleveren van 3 practicumopgaven (in teams van 2) Als je er eentje ontbreekt of 20/30/50-gemiddelde is <5: Aanvullende toets in kerstvakantie Als je er eentje ontbreekt of 20/30/50-gemiddelde is <5: Aanvullende opgave in periode 2

Practicumopgaven n0n2n0n2 n1n3n1n3

Hoofdstuk 1 Programmeren

Imperatief programmeren nVon Neumann’s computer-model (1950): computer = + geheugen om waarden op te slaan processor om opdrachten uit te voeren

Opdrachten nOpdracht: voorschrift om het geheugen te veranderen nProgramma: lange reeks opdrachten, die één voor één worden uitgevoerd door de processor opdrachten staan zelf ook in het geheugen maar veranderen zichzelf niet

Programmeertalen nProgrammeertaal: notatie voor programma’s nsinds 1945: 4000 verschillende talen gepubliceerd

Geschiedenis van computers&programmeren: ENIAC (USA 1943) Z3 (Dld 1941) Colossus (Eng 1943)

Geschiedenis van computers&programmeren: nProgrammeertaal: Machinetaal Illiac (USA 1948) Mark-I (Eng 1948)

Geschiedenis van computers&programmeren: nProgrammeertaal: Assembler Univac (1951)

Geschiedenis van computers&programmeren: nProgrammeertaal: Fortran NCR304 (1957) Zebra (NL, 1958)

Geschiedenis van computers&programmeren: nProgrammeertaal: Cobol Algol Lisp IBM PDP-1

Geschiedenis van computers&programmeren: nProgrammeertaal: Basic PDP-8 (1966) LINC-8 (1966)

Geschiedenis van computers&programmeren: nProgrammeertaal: Pascal PDP-11 (1970)

Geschiedenis van computers&programmeren: nProgrammeertaal: Simula Apple-][ (1977)

Geschiedenis van computers&programmeren: nProgrammeertaal: C Vax-11 (1981) IBM-PC (1981) Commodore64 (1984)

Geschiedenis van computers&programmeren:

Geschiedenis van computers&programmeren: nProgrammeertaal: C++

Geschiedenis van computers&programmeren: nProgrammeertaal: Java

Geschiedenis van computers&programmeren:

nProgrammeertaal: C# PHP Geschiedenis van computers&programmeren:

Geschiedenis van computers&programmeren:

Geschiedenis van computers&programmeren:

Geschiedenis van programmeertalen Assembler Mach.taal Fortran Algol Basic Pascal Simula C C++ Java Imperatief Programmeren C# Cobol SQL Lisp Prolog Haskell PHP Perl Python Functioneel Programmeren (jaar 2) Databases (periode 3) Web- technologie (keuzevak)

Geheugencapaciteit n65er jaren: 8 kB RAM ponskaarten n70er jaren:16 kB RAM tape n80er jaren:64 kB RAM floppy-disk n85er jaren:640 kB RAM n90er jaren:4 MB RAM harddisk n95er jaren:16 MB RAM CD n00er jaren:128 MB RAM DVD n05er jaren:1GB RAM n10er jaren:8GB RAM Stick / Cloud

Programmeer-problemen nvroeger: hoe kan ik het geheugen zo efficiënt mogelijk gebruiken? nnu: hoe kan ik die overvloed van geheugen nog overzien?

Indeling van het geheugen nplaats in het geheugen met een naam ngroepje variabelen dat bij elkaar hoort variabele object ngroepje objecten dat bij elkaar hoort

Indeling van het programma nvoorschrift om het geheugen te veranderen ngroepje opdrachten dat bij elkaar hoort opdracht methode klasse ngroepje methoden dat bij elkaar hoort namespace ngroepje klassen dat bij elkaar hoort

Programmeer-paradigma’s Imperatief Procedureel Object- georiënteerd FortranBasic PascalC C++Java Declaratief Functioneel Logisch Lisp Haskell Prolog Assembler Algol Simula Excel C#

Hoofdstuk 2 Hallo, C# !

Soorten programma’s nConsole- applicatie

Soorten programma’s nConsole- applicatie nWindows- applicatie

Soorten programma’s nConsole- applicatie nWindows- applicatie nWeb- applicatie

Soorten programma’s nConsole- applicatie nWindows- applicatie nWeb- applicatie nGame

Soorten programma’s nConsole- applicatie nWindows- applicatie nWeb- applicatie nGame nApplet

Soorten programma’s nConsole- applicatie nWindows- applicatie nWeb- applicatie nGame nApplet nApp

Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd in klassen

en dat kunnen zelf ook weer aanroepen zijn van weer andere methodes... dus de “waar was ik gebleven” administratie is best ingewikkeld! Soorten opdrachten nToekennings -opdracht: verander het geheugen nAanroep van een andere methode: voer eerst de opdrachten in die methode uit, en ga daarna verder waar je gebleven was

Voorbeeld C#-programma één klasse...met één methode...met twee opdrachten accolades begrenzen klasse, resp. methode using System; class Hallo { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

Klasse- en methode-header using System; class Hallo { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); } naam: bedacht door de programmeur één van de methodes moet Main heten Main

Opdracht: methode-aanroep opdrachten: aanroep van andere methoden naam van de methode altijd een punt overige details klasse waaruit de methode komt using System; class Hallo { static void Main( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

Klasse-bibliotheken library-klassen mag je gebruiken... als je ze maar aangeeft in welke library ze staan using System; class Hallo { static void Main( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

Methode-header en -aanroep methode- header methode- aanroep using System; class Hallo { static void Main( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

Syntax en semantiek nSyntax: de vorm van het programma compilatie eenheid using; klasse declaratie library naam nSemantiek: wat het programma betekent

Syntax van klasse-declaratie klasse declaratie publicprivate classnaam{member} :naam

Syntax van member member static publicprivate naam type void()blok, naamtype

Syntax van blok blok declaratie opdracht {}

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Console-applicatie using System; class Hallo2 { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

Console-applicatie using System; class Hallo2 { static void Main ( ) { Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); } Toekennings-opdracht geeft een waarde aan een variabele

Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); } Declaratie introduceert een variabele van een bepaald type

Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); } gebruik van de variabele

Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); Console.WriteLine("met " + naam.Length + " letters."); } Property van een object

Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); Console.WriteLine("met " + naam.Length + " letters."); Console.ReadLine( ); }

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += toekenning

Syntax van declaratie declaratie typenaam;, type klasse naam int string

Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text = "Hallo"; scherm.BackColor = Color.Yellow; scherm.Size = new Size(200,100); using System.Drawing; declaratie en toekenning van een variabele met type Form gebruik van de variabele bij aanroep van Run aanpassen van attributen

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie; += property naam variabele

Windows-applicatie class HalloWin2 { static void Main ( ) { } class HalloForm { } Form scherm; scherm = new Form( ); Application.Run(scherm); HalloForm scherm; scherm = new HalloForm( ); Application.Run(scherm); : Form subklasse is een gespecialiseerde versie aanroep van de constructor methode public HalloForm( ) { } definitie van de constructor methode this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100);

Windows-applicatie class HalloForm { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); Label groet; groet = new Label( ); this.Controls.Add(groet); groet.Text = "Hallo allemaal"; groet.Location = new Point(30,20);

Wat gaan we doen? college Tent. 1 Tent. 2 Tent. 3 college prakt. 1 prakt. 2 prakt. 3 prakt. 1 prakt. prakt. 1 prakt. prakt. 2 prakt wo 15-17vr 13-15< werkcoll nNu: Prakticum BBG 106 – 103 – 115 – 175 – 112 – 109 nVrijdag: college in Ruppert-blauw S/T/UV/W