Acht opgaven met antwoorden (Albert Nijhof)

Vergelijkbare documenten
R e c h t e h a k e n

Een mechaniekje met mogelijkheden in forth (2002) Albert Nijhof

n o F o r t h voor MSP430 Launchpad 1. Memory map Er zijn twee ROM gebieden (alle getallen zijn hex): , verdeeld in vier blokken van 40

ROM en RAM in een ROMforth

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Programma HCC!Forth komende zaterdag

Seriële bluetooth verbinding ATmega128

Programmeren met Arduino-software

What's in a name? (Over datamanagers)

17 Operaties op bits Bitoperatoren en bitexpressies

Totaal

VBA voor Doe het Zelvers Deel 7

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Functioneel programmeren

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

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

SQL datadefinitietaal

RCL Arduino Workshop 1

extra oefening algoritmiek - antwoorden

[13] Rondjes draaien (loops)

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

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

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Computerarchitectuur en netwerken. Memory management Assembler programmering

P2 Exponentiële groei

Wouter Geraedts Processen & Processoren

Programma HCC!Forth komende zaterdag

Vakgroep CW KAHO Sint-Lieven

Het omzetten van een ER-diagram naar SQL

Hoofdstuk 9: Menu s toevoegen

II. ZELFGEDEFINIEERDE FUNCTIES

Pascal uitgediept Data structuren

Semantiek (2IT40) Jos Baeten. HG 7.19 tel.: Hoorcollege 3 (12 april 2007)

VBA voor Doe het Zelvers deel 20

Arduino Workshop 1 Zuid-Limburg

De keuzestructuur. Versie DD

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

VAN HET PROGRAMMEREN. Inleiding

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR

Online c++ leren programmeren:

Computerarchitectuur en netwerken. Memory management Assembler programmering

Tentamen Programmeren in C (EE1400)

String Matching. Algoritmiek

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programma HCC!Forth bijeenkomst in augustus

String Matching. Algoritmiek

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

1 Coördinaten in het vlak

6. Het maken van een database

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

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Lab Webdesign: Javascript 3 maart 2008

Hoofdstuk 3: Keuzestructuren

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Wat is FP? The Haskell School of Expression. Functies. Types 1+1=2. Iedere expressie (en waarde) heeft een type.

8.5 Koppelingen: oefeningen

8.5 Koppelingen: oefeningen

Hoofdstuk 5: Functies voor getallen en teksten

{ auteur, toelichting }

1) Intro biped. Commando's: Demo:

Wiskundige Analyse I. Hoofdstuk 1. Vraag 1.1 Het beginvoorwaardenprobleem. x 2 y + xy + x 2 y = 0, y(0+) = 1, y (0+) = 0. bezit een unieke oplossing.

Antwoorden zijn afgedrukt!!!!!!!

ELECTRONISCH KASREGISTER

Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep.

[8] De ene 1 is de andere niet

Handleiding Remote Portaal. Versie 4.0

Studentnummer:... Opleiding:...

Modelleren en Programmeren

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

Welkom bij Digicel Online Top Up

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

Variabelen en statements in ActionScript

Werkbladen voor Arduino workshop 1

ALGORITMIEK: answers exercise class 7

Dynamic Publisher Twee handige hulpjes voor DP

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen?

Zelftest Programmeren in PL/I

Gebruikers Handleiding

Bij programmeren moet je logisch kunnen denken. Een paar voorbeelden:

oefeningen opstellen met GeoGebra en javascript

profielvak produceren, installeren en energie CSPE BB onderdeel A

Hoofdstuk 9. Hashing

Programmeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer:

Bij programmeren moet je logisch kunnen denken. Een paar voorbeelden:

OEFENINGEN PYTHON REEKS 5

2.1 Gelijkvormige driehoeken[1]

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Scripting 2 TUTORIAL EEN APP ONTWIKKELEN VOOR ANDROID MET PROCESSING. ellipse(screenwidth/2, screenheight/2, 140,140); DOOR THIERRY BRANDERHORST

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

Hexadecimale en binaire getallen

Programma-dossier WordMind

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Tentamen Programmeren in C (EE1400)

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

ALS-formules in Excel 2007

Wouter Geraedts Processen & Processoren

Transcriptie:

Acht opgaven met antwoorden (Albert Nijhof) OPGAVE 1 Hoe kun je de waarde van BASE bepalen zonder hem te veranderen? :.BASE ( -- ) BASE @ 1-.." + 1 " :.BASE ( -- ) BASE @ DUP 2/ DUP.." + " -. :.BASE ( -- ) BASE @ 1 2* 2* 1 + 2* /MOD [CHAR] 0 TUCK + EMIT + EMIT OPGAVE 2 Maak het woord : BIT? ( bitpatroon bit# -- vlag )??? De vlag (true of false) geeft aan of dat bit gezet is. Gebruik hierbij o.a. RSHIFT AND = : BIT? RSHIFT 1 AND 1 = : BIT? RSHIFT 1 AND 0<> : BIT? RSHIFT 1 AND NEGATE : BIT? RSHIFT 1 TUCK AND = : BIT? 1 SWAP LSHIFT AND 0<> OPGAVE 3 Programmeeroefening voor IF ELSE EXIT Maak het woord : LAMPEN ( bitpatroon -- )??? Lamp S zit op bit 0 Lamp T zit op bit 7 Bit gezet betekent: lamp is aan. Het woord LAMPEN moet LETTERLIJK een van deze 4 reacties geven: S en T zijn aan S en T zijn uit Alleen S is aan Alleen T is aan Gebruik hierbij BIT? uit de vorige opgave.

Voor het vaderland weg DUP 0 BIT? IF DUP 7 BIT? IF." S en T zijn aan " DUP 0 BIT? 0= IF DUP 7 BIT? 0= IF." S en T zijn uit " DUP 0 BIT? IF DUP 7 BIT? 0= IF." Alleen S is aan " DUP 0 BIT? 0= IF DUP 7 BIT? IF." Alleen T is aan " DROP Eerst de vlaggen 2DUP AND IF." S en T zijn aan " 2DUP OR 0= IF." S en T zijn uit " 2DUP < IF." Alleen S is aan " 2DUP > IF." Alleen T is aan " 2DROP Strakker op de stack 2DUP AND IF." S en T zijn aan " 2DUP + 0= IF." S en T zijn uit " 2DUP < IF." Alleen S is aan " > IF." Alleen T is aan " Scheef genest (case-achtig) 2DUP AND IF." S en T zijn aan " ELSE 2DUP = IF." S en T zijn uit " ELSE 2DUP < IF." Alleen S is aan " ELSE." Alleen T is aan " 2DROP

Evenwichtig genest : TAAN ( S? -- ) IF." S en T zijn aan " ELSE." Alleen T is aan " : TUIT ( S? -- ) IF." Alleen S is aan " ELSE." S en T zijn uit " IF TAAN ELSE TUIT Alles in een woord IF IF." S en T zijn aan " ELSE." Alleen T is aan " ELSE IF." Alleen S is aan " ELSE." S en T zijn uit " Verlaat het woord zodra je klaar bent IF IF." S en T zijn aan " EXIT." Alleen T is aan " EXIT IF." Alleen S is aan " EXIT." S en T zijn uit " Anders gegroepeerd DUP 0 BIT? SWAP 7 BIT? OVER = ( S? S=T? ) IF IF." S en T zijn aan " EXIT." S en T zijn uit " EXIT IF." Alleen S is aan " EXIT." Alleen T is aan " Met tekstanalyse : SENT ( S? -- )." S en T zijn " IF." aan " ELSE." uit " : SOFT ( S? -- )." Alleen " IF." S" ELSE." T"." is aan " DUP 0 BIT? SWAP 7 BIT? OVER = ( S? S=T? ) IF SENT ELSE SOFT

Verlaat het woord zodra je klaar bent DUP 0 BIT? SWAP 7 BIT? OVER = ( S? S=T? ) IF." S en T zijn " IF." aan " EXIT." uit " EXIT." Alleen " [CHAR] T + EMIT." is aan " S-vlag T-vlag 2* + NEGATE 0 0 wordt 0-1 0» 1 0-1» 2-1 -1» 3 Zonder IF : STAAN." S en T zijn aan " : TAAN." Alleen T is aan " : SAAN." Alleen S is aan " : STUIT." S en T zijn uit " CREATE REACTIES ' STUIT, ' SAAN, ' TAAN, ' STAAN, 2* + NEGATE ( Volgnummer ) CELLS REACTIES + @ EXECUTE Gestroomlijnd :NONAME." S en T zijn aan " \ 3 :NONAME." Alleen T is aan " \ 2 :NONAME." Alleen S is aan " \ 1 :NONAME." S en T zijn uit " \ 0 CREATE REACTIES,,,, 2* + NEGATE ( Volgnummer ) CELLS REACTIES + @ EXECUTE Rekenen aan een string DUP 0 BIT? SWAP 7 BIT? 2* + NEGATE ( Nr ) S" S en T zijn uit Alleen S is aan Alleen T is aan S en T zijn aan " 4 / >R SWAP ( Stringadres Volgnummer ) R@ * + R> TYPE

OPGAVE 4 Bedenk wat dit op zal leveren: (a) HEX 0F0F 0FF0 AND. (b) HEX 1111 2222 AND. (c) HEX 1234 1111 AND. (d) DECIMAL TRUE 12345 AND. (e) HEX ABCD 8 RSHIFT. (a) F00 (b) 0 (c) 1010 (d) 12345 (e) AB OPGAVE 5 Maak :.BP16 ( 16b -- )??? dat alle bits van het 16-bitspatroon afdrukt. Gebruik hierbij.bp uit het cursusboek. :.BP16 DUP 8 RSHIFT.BP SPACE.BP :.BP16 DUP 8 RSHIFT.BP.".".BP OPGAVE 6 Hersengymnastiek Bij elke regel uit het eerste rijtje is er een in het tweede rijtje die hetzelfde doet. Welke letter hoort bij welk cijfer? (a) DUP 0<> AND (1) DROP 0 (b) DUP 0= AND (2) 0 DROP (c) DUP 0< AND (3) DUP 0< IF DROP 0 (d) DUP 0> AND (4) DUP 0> IF DROP 0 a2 b1 c4 d3

OPGAVE 7 De Teamworkwet van Nijhof: X = A/N + (N-1)*(N-1) De formule geeft aan dat een karwei, waar 1 persoon A uren over doet, door een team van N personen in X uren geklaard zou kunnen worden. 1. Maak een woord : T ( N -- X )??? dat berekent hoelang een team van N personen erover doet. Definiëer voor A een value. 2. Het produceren van een nieuw nummer van het Vijgeblaadje kost 1 persoon 24 uur werk (A=24). Hoe groot is het team dat dat in de kortste tijd zou kunnen? En hoe zit dat met een 6-uurs-karwei (A=6)? Programmeer hiervoor: TEAMS ( -- )??? dat een overzichtje van de tijden geeft voor teams van 1 t/m 20 leden. Dat overzichtje moet op het scherm passen. Gebruik hierbij.r 3. Voor een besluit waar je als teamleider 10 minuten (A=10) over hebt moeten nadenken, moet je een draagvlak creëren van 20 personen (N=20). Hoeveel minuten zal je dat kosten? Ook hier geldt de Teamworkwet van Nijhof: 1. 24 VALUE A : T ( N -- X ) A OVER / SWAP 1- DUP * + X = A/N + (N-1)*(N-1) 2. :.KOP ( -- )." Teamleden Tijd" :.T ( N -- ) DUP 10.R T 5.R : TEAMS ( -- ) CR.KOP.KOP 11 1 DO CR I.T I 10 +.T LOOP Het Vijgeblaadje gaat het snelst met 3 mensen, in 12 uur. Het 6-uurs-karwei gaat het snelst met zijn tweeën, in 4 uur. 3. Het draagvlak van 20 personen kan in 6 uur en 1 minuut tot stand komen. OPGAVE 8 SLOT met PINCODE Met SLOT kun je een programma op slot zetten. Alleen iemand die de code kent krijgt toegang.

marker -PIN 4 constant AANTAL (lengte van de pincode) create PINCODE ( -- adres ) aantal allot create POGING ( -- adres ) aantal allot 0 value GELUKT? align align *** : VASTLEGGEN ( adr -- )??? *** : VERGELIJKEN ( adr1 adr2 -- )??? : SLOT ( -- ) begin poging vastleggen poging pincode vergelijken gelukt? until SLOT pas uitproberen als je VASTLEGGEN en VERGELIJKEN getest hebt! (Waarom?) Waarschuwing: altijd eerst PINCODE VASTLEGGEN OPGAVE: Programmeer de woorden VASTLEGGEN en VERGELIJKEN 1. Beschrijving van : VASTLEGGEN ( adr -- )??? PINCODE VASTLEGGEN -> Zet de in te typen code in PINCODE POGING VASTLEGGEN -> Zet de in te typen code in POGING Bij het intypen van een teken verschijnt er een sterretje op het scherm. Gebruik DO-LOOP I KEY en C! Controleer met PINCODE AANTAL DUMP 2. Beschrijving van : VERGELIJKEN ( adr1 adr2 -- )??? POGING PINCODE VERGELIJKEN -> Controleer of de beide ingetypte codes aan elkaar gelijk zijn. Vergelijk de tekens stuk voor stuk en zet het eindoordeel in GELUKT? Gebruik hierbij C@ : VASTLEGGEN ( adr -- ) SPACE AANTAL 0 DO KEY." *" OVER I + C! LOOP DROP SPACE : VERGELIJKEN ( adr1 adr2 -- ) TRUE TO GELUKT? AANTAL 0 DO OVER I + C@ OVER I + C@ = GELUKT? AND TO GELUKT? LOOP 2DROP