Programmeren met Grafische Objecten

Slides:



Advertisements
Verwante presentaties
Objectgeoriënteerd Programmeren in C++
Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Programming for Linguists An Introduction to Python 29/11/2012.
Algoritmiek Arrays: wat zijn dat en wat kun je ermee? Loops: hoe hou je ze in bedwang? Hoorcollege 6 - Ma. 9 okt L.M. Bosveld-de Smet.
Probleem P 1 is reduceerbaar tot P 2 als  afbeelding  :P 1  P 2 zo dat: I yes-instantie van P 1   (I) yes-instantie van P 2 als ook:  polytime-algoritme,
1 Inleiding Programmeren in Java Ma 29 januari 2001.
Java en BlueJ Een goed idee?.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
Deltion College Engels B2 Schrijven [Edu/004] thema: (No) skeleton in the cupboard can-do: kan een samenhangend verhaal schrijven © Anne Beeker Alle rechten.
Deltion College Engels C1 Luisteren [Edu/001] thema: It’s on tv can-do : kan zonder al te veel inspanning tv-programma’s begrijpen.
Deltion College Engels En Projectopdracht [Edu/001] thema: research without borders can-do/gesprekken voeren : 1. kan eenvoudige feitelijke informatie.
Deltion College Engels C1 Spreken/Presentaties [Edu/006] thema ‘I hope to convince you of… ‘ can-do : kan een standpunt uiteenzetten voor een publiek van.
Deltion College Engels B1 Schrijven [Edu/004]/ subvaardigheid lezen thema: reporting a theft can-do : kan formulieren waarin meer informatie gevraagd wordt,
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Rational Unified Process RUP Jef Bergsma. Iterations –Inception –Elaboration –Construction –Transition De kernbegrippen (Phases)
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Deltion College Engels B2 Spreken/presentaties/subvaardigheid lezen [Edu/003] thema: Holland – coffee shops and euthanasia? can-do : kan een duidelijk.
Deltion College Engels B1 Lezen [no. 001] can-do : 2 products compared.
Deltion College Engels B1 Gesprekken voeren [Edu/008] theme: ‘I have to arrest you, you’ve stolen my heart’ … can-do : kan een eenvoudig face-to-face gesprek.
Deltion College Engels B1 Schrijven [Edu/003] thema: what have I done wrong…? can-do : kan s/ brieven schrijven over persoonlijke zaken © Anne Beeker.
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Deltion College Engels B1 Gesprekken voeren [Edu/006] thema: Look, it says ‘No smoking’… can-do : kan minder routinematige zaken regelen © Anne Beeker.
Deltion College Engels C1 Spreken/Presentaties [Edu/004] thema ‘Today I will talk to you about… ‘ can-do : kan duidelijke, gedetailleerde beschrijving.
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Deltion College Engels B2 Spreken/presentaties/subvaardigheid lezen [Edu/002] thema: how stuff works can-do : kan de werking van een produkt uitleggen.
Deltion College Engels C1 Spreken [Edu/002] thema: A book that deserves to be read can-do : kan duidelijke, gedetailleerde samenvatting geven van een gelezen.
Deltion College Engels B2 Gesprekken voeren [Edu/005]/subvaardigheid luisteren thema: ‘Pink pop and air-controllers on strike’ can-do : kan in een telefoongesprek.
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,
Deltion College Engels B1 En Spreken/Presentaties [Edu/006] Thema: “The radio station“ can-do : kan een publiek toespreken, kan verzonnen gebeurtenissen.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Deltion College Engels C1 Schrijven [Edu/007] thema: Mind twister or how to write an essay… can-do : kan heldere, goed gestructureerde uiteenzetting schrijven.
Deltion College Engels C1 Schrijven [Edu/006] thema: Dear editor,
Deltion College Engels B2 Spreken [Edu/001] thema: What’s in the news? can-do : kan verslag doen van een gebeurtenis en daarbij meningen met argumenten.
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Deltion College Engels B1 Spreken [Edu/001] thema: song texts can-do : kan een onderwerp dat mij interesseert op een redelijk vlotte manier beschrijven.
Deltion College Engels C1 Gesprekken voeren [Edu/001]/ subvaardigheid lezen thema: What a blooper…. can-do : kan taal flexibel en effectief gebruiken voor.
Deltion College Engels B2 Lezen[Edu/001] /subvaardigheid schrijven korte samenvattingen thema: Exotic news can-do : lezen om informatie op te doen - kan.
Deltion College Engels B2 Gesprekken voeren [Edu/009] thema: ‘We’d better go to…’ can-do : kan in vertrouwde situaties actief meedoen aan discussies over.
Deltion College Engels B2 Schrijven [Edu/005] thema: Writing a hand-out can-do: kan een begrijpelijke samenvatting schrijven © Anne Beeker Alle rechten.
Klik op een vlag. Click on a flag Language: Ongewenste Cookies verwijderen Start Wat doen Cookies eigenlijk ? Cookies kunnen gebruikt worden voor het.
Deltion College Engels B1 En Spreken/Presentaties [Edu/003]/ Subvaardigheid lezen Thema: Once upon a time… can-do : kan een verhaal(tje) vertellen © Anne.
Deltion College Engels B1 Lezen [Edu/002] thema: But I ‘ve read it in… can-do : kan hoofdthema en belangrijkste argumenten begrijpen van eenvoudige teksten.
Deltion College Engels B1 En Spreken/Presentaties [Edu/005]/ Subvaardigheid schrijven Thema: One-Act Play “The Queue” can-do : kan een publiek toespreken,
Deltion College Engels B2 Gesprekken voeren [Edu/007] thema: ‘With this mobile you can…’ can-do : kan op betrouwbare wijze gedetailleerde informatie doorgeven.
Deltion College Engels B1 Luisteren [Edu/002] thema: A cyber listening lab can-do : kan eenvoudige, duidelijke informatie begrijpen © Anne Beeker / Randall.
Methods of Development #2: Logistiek. Conceptfase Pre-productiefase Productiefase Post-productiefase.
Deltion College Engels B2 (telefoon)gesprekken voeren[Edu/002] /subvaardigheid lezen/schrijven thema: I am so sorry for you… can-do : kan medeleven betuigen.
Deltion College Engels C1 Lezen [Edu/002]/ subvaardigheid schrijven thema: Hwaet! (Old) English literature can-do: kan snel belangrijke detailinformatie.
GegevensAnalyse Les 2: Bouwstenen en bouwen. CUSTOMER: The Entity Class and Two Entity Instances.
Agenda  Lesuur minuten  Wat kun je met programmeren?  Wat is code en hoe werkt het?  Code schrijven: de basis  Lesuur minuten  Zelf.
The Research Process: the first steps to start your reseach project. Graduation Preparation
Windows applicatieontwikkeling
Objectgeoriënteerd Programmeren (2)
Key Process Indicator Sonja de Bruin
Object georiënteerd programmeren
Dictionary Skills!?.
Presentatie titel Measurement education in the junior primary –
Tempoquiz rekenen Als de sommen verschijnen heb je 1 minuut(tijd kun je zelf bepalen) om de antwoorden op te schrijven. Na de minuut verstreken is gaan.
‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’
Survivor Steven, Jurgen, Raphael, Samuel, Willem
Who knows something about scenarioplanning?
Software Development fundamentals
Gebruikersbijeenkomst SOWISO
Assignment: calling for a meeting about internet use at work
Software Development fundamentals
Tempoquiz rekenen Als de sommen verschijnen heb je 1 minuut(tijd kun je zelf bepalen) om de antwoorden op te schrijven. Na de minuut verstreken is gaan.
Gameprogrammeren: Arrays
Transcript van de presentatie:

Programmeren met Grafische Objecten Inleiding Programmeren II Hoorcollege 1 prof. dr. van Noord en dr. L.M. Bosveld-de Smet

Onderwerpen van vandaag Programming Paradigms Imperatief programmeren Object-georiënteerd programmeren Grafisch objecten in Python grafische module: graphics.py instantievariabelen en methoden Coördinaten ‘Event-driven Programming’ 09-11-2015 2

09-11-2015 3

09-11-2015 4

Interfaces Command-line versus Graphical User Interface Tekst-gebaseerd versus Graphics-gebaseerd 09-11-2015 5

Grafische Objecten 09-11-2015 6

Grafische Objecten window 09-11-2015 7

Grafische Objecten window combobox 09-11-2015 8

Grafische Objecten window combobox text entry 09-11-2015 9

Grafische Objecten window combobox text entry button 09-11-2015 10

Datatypes en operaties Numbers: optellen Strings en Lists: concatenatie Lists: append(<object>) 09-11-2015 11

Datatypes en operaties >>> sum = 16734 + 34098 >>> sum 50832 >>> composite = "student" + "en" + "vereniging" >>> composite 'studentenvereniging' >>> word_list = ["aap","noot"] + ["mies","zus"] + ["jet"] >>> word_list ['aap', 'noot', 'mies', 'zus', 'jet'] >>> word_list.append("wim") ['aap', 'noot', 'mies', 'zus', 'jet', 'wim'] 09-11-2015 12

Programmeerparadigma’s 09-11-2015 13

Nieuw datatype en nieuw programmeerparadigma Grafische objecten Object-georiënteerd programmeren Objecten zijn actief Objecten worden verzocht om operaties op zichzelf uit te voeren 09-11-2015 14

Objecten in het algemeen Zelle (p 81): “Objects know stuff (they contain data) and objects can do stuff (they have operations)” 09-11-2015 15

Programmeren met grafische objecten vereist een grafische bibliotheek Pythonbibliotheken: Tkinter: standaard PyQt: geavanceerd Zelle’s eigen graphics.py: simpel 09-11-2015 16

win = graphics.GraphWin("My first window") win.close() import graphics win = graphics.GraphWin("My first window") win.close() 09-11-2015 17

win = GraphWin("My first window") win.close() from graphics import * win = GraphWin("My first window") win.close() 09-11-2015 18

win = GraphWin("Geometric Shapes", 200, 200) center = Point(100, 100) circ = Circle(center, 60) rect = Rectangle(Point(60, 60), Point(140, 140)) line = Line(Point(30, 30), Point(170, 170)) <object name> = <class name>(<instance parameters>) 09-11-2015 19

win = GraphWin("Geometric Shapes", 200, 200) center = Point(100, 100) circ = Circle(center, 60) circ.setFill('yellow') circ.draw(win) rect = Rectangle(Point(60, 60), Point(140, 140)) rect.setFill('blue') rect.draw(win) line = Line(Point(30, 30), Point(170, 170)) line.setArrow('first') line.draw(win) win.close() <object name>.<method name>(<method parameters>) 09-11-2015 20

win = GraphWin("Geometric Shapes", 200, 200) center = Point(100, 100) circ = Circle(center, 60) circ.setFill('yellow') circ.draw(win) rect = Rectangle(Point(60, 60), Point(140, 140)) rect.setFill('blue') rect.draw(win) line = Line(Point(30, 30), Point(170, 170)) line.setArrow('first') line.draw(win) win.close() 09-11-2015 21

09-11-2015 22

Objecten en klassen Object = informal def. active data type that knows stuff and can do stuff (Zelle, p. 297) Object = formal def. A collection of related information A set of operations to manipulate that information Object attributes = Instance variables: relevant information stored inside the object Methods: functions that “live” inside the object Elk object is een instantie van een of andere klasse. 09-11-2015 23

dog object 09-11-2015 24

dog class  dog object 09-11-2015 25

teacher class  teacher object 09-11-2015 26

GrahpWin objects 09-11-2015 27

09-11-2015 28

click.py win = GraphWin(" Click me!") for i in range (10): p = win.getMouse() p.draw(win) print("Your click {0} was at ({1}, {2})." .format(i+1, p.getX(), p.getY())) win.getMouse() win.close 09-11-2015 29

Your click 1 was at (17, 15). Your click 2 was at (32, 32). 09-11-2015 30

Maak je eigen coördinatenstelsel met methode van GraphWin: setCoords(xll, yll, xur, yur) 09-11-2015 31

tictactoe.py # create a default sized window with title Tic-Tac-Toe win = GraphWin("Tic-Tac-Toe") # set coordinates that go from (0,0) in lower left corner # to (3,3) in upper right corner of window win.setCoords(0.0, 0.0, 3.0, 3.0) # draw vertical lines Line(Point(1, 0), Point(1, 3)).draw(win) Line(Point(2, 0), Point(2, 3)).draw(win) # draw horizontal lines Line(Point(0, 1), Point(3, 1)).draw(win) Line(Point(0, 2), Point(3, 2)).draw(win) # on mouse click close window win.getMouse() win.close() 09-11-2015 32

09-11-2015 33

Event-driven Programming Steve Ferg (2006) 09-11-2015 34

Event loop algorithm (Ferg, 2006) 09-11-2015 35

graphics.py staat slechts afhandeling toe van: mouse clicks text entry 09-11-2015 36

09-11-2015 37

shapes.py def within_rectangle(point, rect): x1 = rect.getP1().getX() y1 = rect.getP1().getY() x2 = rect.getP2().getX() y2 = rect.getP2().getY() if (x1 > x2) : (x1,x2) = (x2,x1) if (y1 > y2) : (y1,y2) = (y2,y1) return( (x1 < point.getX() < x2) and (y1 < point.getY() < y2)) 09-11-2015 38

shapes.py def main(): ... click = win.getMouse() if within_rectangle(click, rect1): rect1.undraw() elif within_rectangle(click, rect2): rect2.undraw() else: output.setText("Goodbye.") 09-11-2015 39

Weekoverzicht Weeknummers Onderwerp Literatuur 1 Grafische klassen en objecten. Zelle, ch. 4 Objects and Graphics. 2 'File handlers', 'decisions' en verschillende soorten 'loops'. Zelle, ch. 8 Loop Structures and Booleans. Zelle, ch. 7 Decision Structures; 3 Recursie, datastructuren, en Python datacollecties. Brookshear & Brylow, ch. 8 Data Abstractions, Sections 8.1 and 8.6 4 Simulaties, 'pseudo random numbers', en spelletjes. Zelle, ch. 9 Simulation and Design (behalve voorbeeld Racquetball). 5 Klassen en objecten in het algemeen, en OOP. Zelle, ch. 10 Defining Classes (behalve voorbeeld Cannonball) Brookshear & Brylow, ch. 6 Programming Languages; 6 Nogmaals Python datacollecties, en ihb. 'dictionaries'. Zelle, ch. 11 Data Collections. 7 Course Summary. Voorbeelden van tentamenvragen. Voorbereiding tentamen. 09-11-2015 40