TOPIC G: RECORD TOPIC G: RECORD TOPIC G: RECORD TOPIC G: RECORD 23/12/2010 MODULE D1; <* NOOPTIMIZE + *> <* NOOPTIMIZE + *>

Vergelijkbare documenten
OEFENINGEN PYTHON REEKS 5

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

Informatica: C# WPO 6

Functies. Huub de Beer. Eindhoven, 4 juni 2011

Informatica: C# WPO 6

Practicum Ox intro. Practicum Ox intro. VU Numeriek Programmeren 2.5. Charles Bos. Vrije Universiteit Amsterdam. 3 april /18

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

Faculteit Economie en Bedrijfskunde

Cirkeldiagram plotten.

Les 1 Kwadraat afsplitsen en Verzamelingen

Programmeermethoden NA. Week 5: Functies (vervolg)

Datum, Tijd en Timer-object

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

{ auteur, toelichting }

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

WETENSCHAPPEN Oefeningen. LES 1 - Baksteen in Grasshopper. Matthias Dziwak Tobias Labarque Rinus Roelofs

Uitleg van de Hough transformatie

Programmeren Blok B. Onderwerpen. wstomv/edu/2ip05/ College 8. Tom Verhoeff

Programmeren in Java les 3

Turbo Pascal (deel 1)

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Turbo Pascal deel 3 MSX CLUB MAGAZINE 36. Erik van Bilsen. Scanned, ocr ed and converted to PDF by HansO, 2001

11. Eenvoudige programma s schrijven in Maxima

IJkingstoets burgerlijk ingenieur-architect september 2018: feedback deel wiskunde

IJkingstoets burgerlijk ingenieur-architect september 2018: feedback deel wiskunde

Methode: Verdeel en heers

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00

8.1 Rekenen met complexe getallen [1]

Introductie in C++ Jan van Rijn. September 2013

Biljarten op een ellips. Lab kist voor 3-4 vwo

Hoofdstuk 11 - formules en vergelijkingen. HAVO wiskunde A hoofdstuk 11

Opgave 3 - Uitwerking

Hoofdstuk 8 : Complexe getallen

10.0 Voorkennis. cos( ) = -cos( ) = -½ 3. [cos is x-coördinaat] sin( ) = -sin( ) = -½ 3. [sin is y-coördinaat] Willem-Jan van der Zanden

Paragraaf 8.1 : Eenheidscirkel

Informatica: C# WPO 9

Les 7 & 8: MSW Logo Mieke Depaemelaere

Vectoranalyse voor TG

OEFENINGEN PYTHON REEKS 4

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen

2IV10 Oefentoets uitwerking

[15] Variabelen in functies (of: een woordje over scope)

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 8 mei 2014

Objectgeoriënteerd Programmeren: WPO 1

Small Basic Programmeren Text Console 2

Examen VWO. wiskunde B. tijdvak 2 woensdag 19 juni uur. Bij dit examen hoort een uitwerkbijlage.

1 Tweedimensionale interpolatie

Zestigdelige graden radialen honderddelige graden

algoritmiek - antwoorden

Eerste deeltentamen Gameprogrammeren Vrijdag 25 september 2015, uur

[ Overzicht bomen A6. Page 1 of 8. Programma Schiphol - Amsterdam - Almere. Verklaring

Ontwerp van Informatiesystemen

VAARDIGHEDEN EXCEL. MEETWAARDEN INVULLEN In de figuur hieronder zie je twee keer de ingevoerde meetwaarden, eerst ruw en daarna netjes opgemaakt.

Oefeningenexamen Informatica: juni 2015

Een korte samenvatting van enkele FORTRAN opdrachten

Functioneel programmeren

Transformaties van grafieken HAVO wiskunde B deel 2. Willem van Ravenstein Haags Montessori Lyceum (c) 2016

Objectgeoriënteerd Programmeren: WPO 4B

Derde Delphi Programma verkenning

Programmeermethoden NA. Week 5: Functies (vervolg)

WORKSHOP ORANGE PI & PYTHON v september 2017

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

12.0 Voorkennis. Voorbeeld 1: Los de vergelijking sin(a) = 0 op. We zoeken nu de punten op de eenheidscirkel met y-coördinaat 0.

Klonen. Het doel is om de appel op te eten. Iedere keer dat de slang de appel eet, groeit hij één vakje langer.

Pong. Intermediate. Een project in Scratch.

PYTHON REEKS 2: FUNCTIES. Mathias Polfliet

{ specificatie (contract) en toelichting }

14.0 Voorkennis. De hierboven getekende functie herhaalt zich om de 6 seconden. Dit noemen we dan ook een periodieke functie.

Informatica: C# WPO 8

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27

vwo wiskunde b Baanversnelling de Wageningse Methode

Paragraaf 7.1 : Eenheidscirkel en radiaal

Graphics. Small Basic graphics 1/6

PHP. Les 4 : Variabelen

Small Basic Console Uitwerking opdrachten

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?


Computervaardigheden I

Rekenkundige rijen. WISNET-HBO update aug. 2013

HOE TEKEN IK EEN OMGEVINGSMODEL

Hieronder volgt een programma met een subroutine die vanaf verschillende plaatsen wordt opgeroepen.

extra oefening algoritmiek - antwoorden

Programmeren in C# Samenvatting van C#

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Algoritmen en Datastructuren 1. Functies

Handleiding: Gebruikersinterface met Python

Opdracht 1: Introductie Python

X. Grafische elementen

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

Lab Webdesign: Javascript 11 februari 2008

MICRO:BIT. Uitdaging 5 Magic8. Origineel: Micro:bit Educational Foundation 2016 Vertaling: CoderDojo Kennemerwaard 2017

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

Roc Zadkine. Javascript Car. Door: K.Bakker versie 1.0

Vraag 1. Vraag 2. Vraag 3. Zij gegeven de volgende declaratie in Eiffel. Guido : STUDENT

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Kris Merckx Javascript Programming - DIVARC - trigonometry en wrapping/warping text

OPLOSSEN VAN TWEEDEGRAADSVERGELIJKINGEN

Transcriptie:

FROM IO IMPORT RdChar, WrChar, WrStr, WrLn,WrFixReal; VAR c1, c2, c3: RECORD re, img: REAL; WrLn; c1.re := 3.5; c1.img := -4.76; c2.re := 4.0; c2.img := 14.6; (* sum *) c3.re := c1.re + c2.re; c3.img := c1.img + c2.img; (* print *) WrStr("The complex sum of ");WrFixReal(c1.re, 1, 0);WrChar('+'); WrFixReal(c1.img, 1, 0);WrChar('i'); WrStr(" and ");WrFixReal(c2.re, 1, 0);WrChar('+'); WrFixReal(c2.img, 1, 0);WrChar('i'); WrStr(" is: ");WrFixReal(c3.re, 2, 0);WrChar('+'); WrFixReal(c3.img, 2, 0);WrChar('i');WrLn; pag. 1 FROM IO IMPORT RdChar, WrChar, WrStr, WrLn,WrFixReal; VAR c1, c2, c3: RECORD re, img: REAL; WrLn; c1.re := 3.5; c1.img := -4.76; c2.re := 4.0; c2.img := 14.6; (* sum *) c3.re := c1.re + c2.re; c3.img := c1.img + c2.img; (* print *) WrStr("The complex sum of ");WrFixReal(c1.re, 1, 0);WrChar('+'); WrFixReal(c1.img, 1, 0);WrChar('i'); WrStr(" and ");WrFixReal(c2.re, 1, 0);WrChar('+'); WrFixReal(c2.img, 1, 0);WrChar('i'); WrStr(" is: ");WrFixReal(c3.re, 2, 0);WrChar('+'); WrFixReal(c3.img, 2, 0);WrChar('i');WrLn; pag. 2 FROM IO IMPORT RdChar, WrChar, WrStr, WrLn,WrFixReal; VAR c1, c2, c3: RECORD re, img: REAL; WrLn; c1.re := 3.5; c1.img := -4.76; c2.re := 4.0; c2.img := 14.6; (* sum *) c3.re := c1.re + c2.re; c3.img := c1.img + c2.img; (* print *) WrStr("The complex sum of ");WrFixReal(c1.re, 1, 0);WrChar('+'); WrFixReal(c1.img, 1, 0);WrChar('i'); WrStr(" and ");WrFixReal(c2.re, 1, 0);WrChar('+'); WrFixReal(c2.img, 1, 0);WrChar('i'); WrStr(" is: ");WrFixReal(c3.re, 2, 0);WrChar('+'); WrFixReal(c3.img, 2, 0);WrChar('i');WrLn; pag. 3 1 FROM IO IMPORT RdChar, WrChar, WrStr, WrLn,WrFixReal; 2 VAR 3 c1, c2, c3: RECORD 4 re, img: REAL; 5 6 7 WrLn; 8 c1.re := 3.5; 9 c1.img := -4.76; 10 c2.re := 4.0; 11 c2.img := 14.6; 12 (* sum *) 13 c3.re := c1.re + c2.re; 14 c3.img := c1.img + c2.img; 15 (* print *) 16 WrStr("The complex sum of ");WrFixReal(c1.re, 1, 0);WrChar('+'); WrFixReal(c1.img, 1, 0);WrChar('i'); 17 WrStr(" and ");WrFixReal(c2.re, 1, 0);WrChar('+'); WrFixReal(c2.img, 1, 0);WrChar('i'); 18 WrStr(" is: ");WrFixReal(c3.re, 2, 0);WrChar('+'); WrFixReal(c3.img, 2, 0);WrChar('i');WrLn; pag. 4 1

Things to remember!!! Geen spaties in de naam van bestanden! Kopieer nodige libraries in je working folder Wimdows, StandardLib Maak geen nodeloze procedures! Vermijd het gebruik van globale variabelen in procedures. Gebruik zinvolle namen voor variabelen, constanten, procedures. Indenteer je code! 2. Maak een procedure die een (1!!!) complex getal ( met formele parameter ComplexRc) print. pag. 5 pag. 6 TYPE ComplexRC =.. 2. Maak een procedure die een complex getal ( met formele parameter ComplexRc) print. 2. Maak een procedure die een complex getal ( met formele parameter ComplexRc) print. PROCEDURE name(formele parameters); END ; pag. 7 pag. 8 2

2. Maak een procedure die een complex getal ( gebruik ComplexRc). PROCEDURE name(formele parameters)<returntype>; Hoeveel parameters? Welk type parameters? Return waarde? Zo ja, welk Hoeveel type? ( Let op! De symbolen < en > worden hier enkel gebruikt om aan te geven dat je eventueel een returntype moet geven, dit hoort dus niet thuis in je Modula code) END ; 2. Maak een procedure die een complex getal ( met formele parameter ComplexRc) print. Zelfde principe als in 2 Formule: (a+bi)*(c+di) = (ac-bd)+(bc+ad)i 4. Gebruik in de body je nieuwe procedures! pag. 9 pag. 10 OEFENING S6: DEEL 1 OEFENING S6: DEEL 1 1. Definieer een RECORD 2. Definieer een ARRAY van het type record gemaakt in 1 3. Kopieer initialisatie van a 1. Definieer een RECORD TYPE CirclRc = RECORD 2. Definieer een ARRAY van het type record gemaakt in 1 3. Kopieer initialisatie van a pag. 11 pag. 12 3

OEFENING S6: DEEL 1 OEFENING S6: DEEL 2 1. Definieer een RECORD TYPE CircleRc = RECORD 2. Definieer een ARRAY van het type record gemaakt in 1 VAR a: ARRAY [1..A_SIZE] OF CircleRc; 3. Kopieer initialisatie van a Teken cirkels en snelheidsvectoren, laat ze bewegen (in deze stap is het voldoende om ze gewoon uit het scherm te laten gaan). Zie oefening S6 van Topic D, bewegende cirkels. 1. Teken cirkels door het Disc command Disc(x_center,y_center,straal,kleur) 2. Teken arrows door het Arrow command Arrow(x 0,y 0,x 1 1,y 1,size,kleur);, Zorg dat je ze kan zien! In dit deel hoef je geen rekening te houden met het scherm of het programma einde. pag. 13 pag. 14 OEFENING S6: DEEL 2 Teken cirkels en snelheidsvectoren, laat ze bewegen 1. Teken cirkels door het Disc command Disc(x_center,y_center,straal,kleur) 2. Teken arrows door het Arrow command Arrow(x 0,y 0,x 1,y 1,size,kleur); Zorg dat je ze kan zien! 3. Laat ze bewegen: TIP: kleur Delay black Hoe verandert x en y? pag. 15 In dit deel hoef je geen rekening te houden met het scherm of het programma einde. OEFENING S6: DEEL 2 Teken cirkels en snelheidsvectoren, laat ze bewegen 1. Teken cirkels door het Disc command Disc(x_center,y_center,straal,kleur) 2. Teken arrows door het Arrow command Arrow(x 0,y 0,x 1,y 1,size,kleur); 3. Laat ze bewegen: TIP: kleur Delay black Hoe verandert x en y? 4. Verschillende kleuren van ballen Maak een array van kleuren RgbColor(r_value,g_value,b_value) l l b l met 0<r_value,g_value,b_value<255, geeft een cardinal waarde terug die een kleur voorstelt. RandomCard(min,max) geeft een random cardinal tussen min en max pag. 16 4

OEFENING S6: DEEL 3 OEFENING S6: DEEL 3 Laat de ballen botsen tegen de rand slechts 1 richtingsvector van teken veranderen. Opties: Het middelpunt van de bal botst tegen de rand De rand van de bal botst Extra kader maken, de ballen botsen hier tegen. Laat de ballen botsen tegen de rand slechts 1 richtingsvector van teken veranderen. IF x>.. THEN IF x<.. THEN IF y>.. THEN IF y<.. THEN pag. 17 pag. 18 OEFENING S6: DEEL 3 Laat de ballen botsen tegen de rand slechts 1 richtingsvector van teken veranderen. Stop het programma door op een toets te drukken, vb s van stop KeyPressed(); RdKey(); Laat de circels botsen als ze elkaar raken, net als biljartballen. Gebruik de volgende functies uit StandardLib Distance(x1, y1, x2, y2: INTEGER): CARDINAL; AngleWithXAx(x0, y0, x1, y1: INTEGER):REAL; RadiansToDegrees(angle:REAL): INTEGER; RotatePointDegrees(VAR x, y:integer; x0, y0: INTEGER; angle: INTEGER); pag. 19 pag. 20 5

1. Kijk voor elke bal, of hij tegen een andere bal botst Liggen bal i en bal k niet in elkaars veld?? Distance(x1, y1, x2, y2: INTEGER): CARDINAL; Let op!!! Zorg dat je de huidige posities niet verliest! 1. Kijk voor elke bal, of hij tegen een andere bal botst Liggen bal i en bal k niet in elkaars veld?? Distance(x1, y1, x2, y2: INTEGER): CARDINAL 1. Bereken! Hoek b, hoek a: AngleWithXAx(x0, y0, x1, y1: INTEGER):REAL pag. 21 pag. 22 1. Kijk voor elke bal, of hij tegen een andere bal botst Liggen bal i en bal k niet in elkaars veld?? Distance(x1, y1, x2, y2: INTEGER): CARDINAL 2. Bereken! Hoek b, hoek a: AngleWithXAx(x0, y0, x1, y1: INTEGER):REAL c = b-a zet om naar graden ipv radialen RadiansToDegrees(angle:REAL): INTEGER; v = 180-2*c Nieuwe richtingsvector vx en vy RotatePointDegrees(VAR x, y:integer; x0, y0: INTEGER; angle: INTEGER); Let op!! Deze functies zorgen voor grote afrondingsfouten, maak vx en vy tijdelijk groter (*100) pag. 23 6