opdrachten algoritmiek - antwoorden



Vergelijkbare documenten
algoritmiek F. Vonk versie

algoritmiek - antwoorden

extra oefening algoritmiek - antwoorden

WISKUNDE 1. Aansluitmodule wiskunde MBO-HBO

PG blok 4 werkboek bijeenkomst 4 en 5

regel: de som van de cijfers op de even plaatsen min de som van de cijfers op de oneven plaatsen moet 0 of 11 zijn.

1.5.1 Natuurlijke, gehele en rationale getallen

Extra oefeningen hoofdstuk 4: Deelbaarheid

1. REGELS VAN DEELBAARHEID.

3 Modulorekenen. 3.1 De eulerfunctie en de kleine stelling van Fermat. Oefening 3.1. Bepaal Φ(1992), Φ(2011) en Φ(2048) (83 en 2011 zijn priem).

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

Java Les 3 Theorie Herhaal structuren

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

van PSD naar JavaScript

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

Practicum Programmeerprincipes

Small Basic Programmeren Text Console 2

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

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Getaltheorie I. c = c 1 = 1 c (1)

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

OEFENINGEN PYTHON REEKS 6

Proefexemplaar. Wendy Luyckx Mark Verbelen Els Sas. Dirk Vandamme. bewerkt voor het GO! onderwijs van de Vlaamse Gemeenschap door. Cartoons.

OPLOSSINGEN VAN DE OEFENINGEN

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

Algoritmen en programmeren: deel 2 - basis

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 6 : DEELBAARHEID

POD1 - Hoofdstuk 1: Inleiding

Hoofdstuk 6 : DEELBAARHEID

Informatica: C# WPO 11

handleiding ontbinden

Public Key Cryptography. Wieb Bosma

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Beste deelnemer, Wanneer we vanmiddag op het kampterrein aankomen, zullen we beginnen met een verkenningsrondje over het terrein. Dat is op zichzelf

Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018

We beginnen met de eigenschappen van de gehele getallen.

Programmeeropgaven. Sem Prog DD

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep.

Wiskunde in vierde, vijfde en zesde klas Lezing

REKENVAARDIGHEID BRUGKLAS

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Het weetjesschrift. Weetjesschrift Galamaschool

Python. Informatica. Renske Smetsers

Oefeningen Java Oplossingen

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Oefening: Markeer de getallen die een priemgetal zijn.

Les C-01: Algoritmen David Lans

Wt s aanvullende Python opgaven

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Programmeermethoden NA. Week 5: Functies (vervolg)

Het programma ELGAMAL

Domeinbeschrijving rekenen

Pythoncursus. week 2. cs.ru.nl/pythoncursus

Opgeloste en onopgeloste mysteries in de getaltheorie

Hoofdstuk 7: Werken met arrays

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

Getallen 2. Doelgroep Rekenen en Wiskunde Getallen 2

Inleiding Programmeren 2

1. Optellen en aftrekken

Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002

Getaltheorie groep 3: Primitieve wortels

Getaltheorie II. ax + by = c, a, b, c Z (1)

2 REKENEN MET BREUKEN Optellen van breuken Aftrekken van breuken Vermenigvuldigen van breuken Delen van breuken 13

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

Uitwerkingen toets 12 juni 2010

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

SEQUENTIE-STRUCTUUR. Oefening: Dichtheid

VBA voor Doe het Zelvers deel 20

DomJudge-Practicum. Open Dag UU

Small Basic Console Uitwerking opdrachten

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )

Dossier 3 PRIEMGETALLEN

Bewijs door inductie

1. Programmeerblokken

Zelftest Inleiding Programmeren

Blok 6 G/B vraag 1: een natuurlijk getal of kommagetal cijferend delen door een getal van 3 cijfers

Priemgetallen en de rij van Fibonacci, Vier artikelen voor het tijdschrift Pythagoras

1 Kettingbreuken van rationale getallen

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

De bouwstenen van het programmeren 1

JavaScript - antwoorden

Getallen, 2e druk, extra opgaven

Informatica: C# WPO 7

Inleiding Programmeren 2

1 Hele getallen. Rekenen en wiskunde uitgelegd Kennisbasis voor leerkrachten basisonderwijs. Uitwerkingen van de opgaven bij de basisvaardigheden

Het Breukenboek. Leer beter rekenen met breuken Voor leerlingen vanaf het voortgezet onderwijs. Ingrid Lundahl

Katernen. regionale training. tweede ronde. Nederlandse Wiskunde Olympiade

Blok 6 G/B vraag 1: een natuurlijk getal of kommagetal cijferend delen door een getal van 3 cijfers

2. Optellen en aftrekken van gelijknamige breuken

PYTHON REEKS 1: BASICS. Mathias Polfliet

Hoofdstuk 7 : Delen van veeltermen

Opmerking 2: laat de tussenstap aanvankelijk luidop doen, later (als het vlot gaat) in stilte.

Transcriptie:

opdrachten algoritmiek - antwoorden Dit zijn de voorbeelduitwerkingen behorende bij de oefeningen algoritmiek. Er zijn altijd veel mogelijke manieren om hetzelfde probleem op te lossen. De voorbeelduitwerking is er daar dus maar één van. De uitwerkingen zijn in RobotBASIC. Als je voor JavaScript hebt gekozen, dan wordt ervan uitgegaan dat je vanuit RobotBASIC kunt controleren dat je JavaScript programma goed is. - 1 -

Inhoud makkelijke opgaves... - 3 - opgave 1... - 3 - opgave 2... - 3 - opgave 3... - 3 - opgave 4... - 4 - opgave 5... - 4 - opgave 6... - 4 - gemiddeld moeilijke opgaves... - 5 - opgave 1... - 5 - opgave 2... - 5 - opgave 3... - 6 - moeilijke opgaves... - 7 - opgave 1... - 7 - opgave 2... - 8 - opgave 3... - 9 - - 2 -

makkelijke opgaves opgave 1 Maak een algoritme dat twee gehele getallen door een gebruiker in laat voeren en de som van deze getallen afdrukt. input "Geef een geheel getal: ", getal1 input "Geef een geheel getal: ", getal2 print getal1 + getal2 opgave 2 Maak een algoritme dat het maximum van twee, door een gebruiker ingevoerde, gehele getallen afdrukt. input "Geef een geheel getal: ", getal1 input "Geef een geheel getal: ", getal2 if getal1 > getal2 print getal1 print getal2 opgave 3 Maak een algoritme waarmee je afdrukt of een, door een gebruiker ingevoerd, jaartal een schrikkeljaar is. input "Geef een jaartal: ", jaartal if mod(jaartal, 4) = 0 if mod(jaartal, 100) = 0 if mod(jaartal, 400) = 0 print jaartal, " is een schrikkeljaar." print jaartal, " is geen schrikkeljaar." print jaartal, " is een schrikkeljaar." print jaartal, " is geen schrikkeljaar." - 3 -

opgave 4 Maak een programma dat de getallen 1 tot en met 10 afdrukt. Elk getal druk je af op een nieuwe regel. Je moet hiervoor een lus gebruiken. teller = 1 while teller <= 10 opgave 5 Maak een algoritme waarmee je afdrukt of een, door een gebruiker ingevoerd, positief geheel getal even of oneven is. input "Geef een positief geheel getal: ", getal if mod(getal, 2) = 0 print getal, " is even." print getal, " is oneven." opgave 6 Maak een algoritme waarmee je een, door een gebruiker ingevoerd, geldbedrag in euro's (EUR) omrekent naar USD en omgekeerd. Voor de wisselkoers gebruik je dat 1 EUR is gelijk aan 1.32 USD. input "Geef een geldbedrag: ", bedrag input "Geef een munteenheid (EUR of USD): ", munteenheid if munteenheid = "EUR" print "Het bedrag in USD is ", bedrag * 1.32 print "Het bedrag in EUR is ", bedrag / 1.32-4 -

gemiddeld moeilijke opgaves opgave 1 Maak een programma dat de tafel van 5 afdrukt. Het formaat waarin afgedrukt moet worden is: x keer 5 is y. Elke vermenigvuldiging druk je af op een nieuwe regel. Je moet hiervoor een lus gebruiken. teller = 1 while teller <= 10, " keer 5 is ", teller*5 opgave 2 Maak een programma dat het resultaat afdrukt van de somformule van Gauss voor een, door een gebruiker ingevoerd, geheel getal. Bijvoorbeeld de Gauss som van 5 is 1 + 2 + 3 + 4 + 5 is 15. input "Geef een geheel getal: ", N resultaat = 0 teller = 1 while teller <= N resultaat = resultaat + teller print "Gauss(", N, ") = ", resultaat - 5 -

opgave 3 Maak een programma dat de eerste N getallen uit de Fibonacci reeks afdrukt. N is een, door een gebruiker ingevoerd, positief geheel getal groter dan 2. De eerste twee getallen uit de Fibonacci reeks zijn 0 en 1. Elk volgend getal is de som van de twee voorgaande getallen. Bijvoorbeeld de eerste 6 getallen uit de Fibonacci reeks zijn 0, 1, 1, 2, 3, 5. input "Geef een geheel getal groter dan 2: ", N F_Nmin2 = 0 F_Nmin1 = 1 print "F_0 = 0" print "F_1 = 1" teller = 2 while teller < N F_N = F_Nmin1 + F_Nmin2 print "F_", teller, " = ", F_N F_Nmin2 = F_Nmin1 F_Nmin1 = F_N - 6 -

moeilijke opgaves opgave 1 Maak een programma dat de priemfactoren van een, door een gebruiker ingevoerd, geheel getal afdrukt. Een priemgetal P is een priemfactor van een getal G wanneer G % P gelijk is aan 0. % is de modulo operator die de restwaarde van een deling berekent. input "Geef een geheel getal: ", N if N > 1 rest = N print "De priemfactoren van ", N, " zijn:" teller = 2 while teller <= rest if mod(rest, teller) = 0 rest = rest / teller if N = 1 print "De priemfactoren van 1 zijn:" print 1 print "Dit is geen geldige invoer." - 7 -

opgave 2 Maak een algoritme dat de schrikkeljaren afdrukt vanaf 1582 tot en met een, door een gebruiker ingevoerd, jaartal. Druk elk schrikkeljaar af op een nieuwe regel. input "Geef een jaartal: ", jaartal print "De schrikkeljaren vanaf 1582 tot en met ", jaartal, " zijn:" teller = 1582 while teller <= jaartal if mod(teller, 4) = 0 if mod(teller, 100) = 0 if mod(teller, 400) = 0 Het hiervoor afgebeelde algoritme is rechtdoorzee en daarom niet echt efficiënt. Een efficiënter algoritme kan er als volgt uitzien. input "Geef een jaartal: ", jaartal print "De schrikkeljaren vanaf 1582 tot en met ", jaartal, " zijn:" teller = 1582 while (teller <= jaartal) && (mod(teller, 4)!= 0) while teller <= jaartal if mod(teller, 4) = 0 if mod(teller, 100) = 0 if mod(teller, 400) = 0 teller = teller + 4-8 -

opgave 3 Maak een algoritme dat de eerste N priemgetallen afdrukt. N is een, door een gebruiker ingevoerd, positief geheel getal groter dan 2. Nog even ter herhaling, een priemgetal is een getal groter dan 1 dat alleen deelbaar is door zichzelf en 1. input "Geef een geheel getal groter dan 2: ", N print "De eerste ", N, " priemgetallen zijn:" aantalgetallenafgedrukt = 0 priemtestgetal = 2 while aantalgetallenafgedrukt < N teller = 2 aantaldelers = 0 while teller < priemtestgetal if mod(priemtestgetal, teller) = 0 aantaldelers++ if aantaldelers = 0 print priemtestgetal aantalgetallenafgedrukt++ priemtestgetal++ Net als bij de priemtest in de module algoritmiek, kan dit efficiënter door de conditie van de binnenste while-loop uit te breiden. - 9 -

input "Geef een geheel getal groter dan 2: ", N print "De eerste ", N, " priemgetallen zijn:" aantalgetallenafgedrukt = 0 priemtestgetal = 2 while aantalgetallenafgedrukt < N teller = 2 aantaldelers = 0 while (teller < priemtestgetal) && (aantaldelers = 0) if mod(priemtestgetal, teller) = 0 aantaldelers++ if aantaldelers = 0 print priemtestgetal aantalgetallenafgedrukt++ priemtestgetal++ - 10 -