ALGORITMISCH DENKEN via informatica
SCRATCH
Ook verkrijgbaar in de reeks
REKENBLAD via informatica
gegevensbeheer via informatica
Hardware, gegevensbeheer, netwerken, internet
WINDOWS 8.1 Ook verkrijgbaar in de reeks
CALC (versie 4.O verkrijgbaar en hoger) Ook in de reeks
Ook verkrijgbaar in de reeks
inter(net)werken via informatica
OpenOffice / LibreOffice
versie 2.O
via informatica
STRUCTORIZER Ook verkrijgbaar in de reeks
EXCEL 2010
multimedia en presentatie via informatica
Rekenblad
ALGORITMISCH DENKEN via informatica
TEKSTVERWERKING
tekstverwerking via informatica
via informatica OpenOffice / LibreOffice
ACCES 2013 Ook verkrijgbaar in de reeks
Ook verkrijgbaar in de reeks
POWERPOINT 2013 Ook verkrijgbaar in de reeks
Herdruk: 2016/1335 ISBN: 978 90 4862 064 7 KB: D/2015/0147/077 Bestelnr: 90 809 0057 NUR: 124, 126, 128, 129
WORD 2013 Ook verkrijgbaar in de reeks
WRITER
versie 4.O
Die Keure wil het milieu beschermen. Daarom kiezen wij bewust voor papier dat afkomstig is uit verantwoord beheerde bossen. Deze uitgave is dan ook gedrukt op papier dat het FSC®-label draagt. Dat is het keurmerk van de Forest Stewardship Council®.
Copyright bij die Keure Brugge Verantwoordelijke Uitgever: die Keure, Kleine Pathoekeweg 3, 8000 Brugge, België RPR 0405 108 325
9 789048 620647
iSee-scratch2_cover.indd 1
Niets uit deze uitgave mag verveelvuldigd en/of openbaar gemaakt worden door middel van druk, fotokopie, microfilm of op welke wijze ook zonder voorafgaande schriftelijke toestemming van de uitgever. No part of this book may be reproduced in any form by print, photoprint, microfilm or any other means without written permission from the publisher.
8/04/16 12:21
Fiche 1
Denken als een programmeur In deze fiche leer je · dat programmeren problemen oplossen is · een probleem analyseren
· de verschillende stappen bij het oplossen van een probleem kennen en toepassen
Probleemstelling Begin met de analyse Elke computer beschikt over verschillende soorten software zoals tekstverwerking, elektronisch rekenblad, gegevensbeheer, browser. Al deze programma’s zijn geschreven in één of andere programmeertaal. Meer en meer toepassingen bevinden zich in the cloud; ze zijn altijd en overal beschikbaar. Ook deze cloudtoepassingen zijn geprogrammeerd! Bedrijven laten dikwijls programma’s of internettoepassingen op maat ontwikkelen. Voor je een programma of toepassing schrijft, maak je eerst een analyse van je probleem. Je brengt het probleem in kaart.
Het zou niet verstandig zijn een huis te bouwen zonder plan. Voor je aan de slag gaat, zoekt de architect een antwoord op een aantal cruciale vragen. Hoeveel bedraagt het budget? Hoe groot is de grond? Wat is de soort grond? Wat willen de bewoners? Wat zijn de bouwvoorschriften? …
Of vergelijk het met een culinaire avond. Ook hier zul je jezelf tal van vragen moeten stellen. Wat ga je klaarmaken? Hoeveel personen komen er? Wie zijn je gasten?
2
Probleemanalyse
FICH E 1
Het werk van een programmeur
Een programmeur krijgt een project voorgeschoteld. Op de eerste plaats luistert hij naar de wensen van de softwaregebruikers. Hij ontleedt het probleem. Stapsgewijs gaat hij aan de slag.
Van probleem tot computerprogramma
Welk stappen volgt een programmeur bij het ontwerpen van een programma?
Wat heb ik nodig om zelf een programma te maken in Scratch?
Je kent het stappenplan om tot een programma te komen. Wat zal jij als programmeur nu nodig hebben?
Zowel een bouwplan, een keukenrecept, een wegbeschrijving … trachten in verschillende stappen een oplossingsmethode weer te geven. Ze beschrijven hoe je van een beginsituatie tot een resultaat kunt komen.
Beginsituatie • grond • ingrediënten • vertrekpunt
INVOER
Beschrijving • plan • recept • wegbeschrijving
VERWERKING
Resultaat • huis • gerecht • eindpunt
UITVOER
3
Fiche 1
Denken als een programmeur
Het werk van een programmeur Een programmeur krijgt een project voorgeschoteld. Op de eerste plaats luistert hij naar de wensen van de softwaregebruikers. Hij ontleedt het probleem. Stapsgewijs gaat hij aan de slag.
Dit zijn maar enkele van de vragen die een programmeur voorgeschoteld krijgt: • Ontwerp een administratieprogramma voor een school. • Creëer een stratenplan. • Ontwerp een module in Word waarmee je snel ideeën VaPobRW Zd]c fTTaVTeT]
• Ontwerp een speciale knop voor een sociale netwerksite. • Maak een app voor een smartphone. • Realiseer een 3D-spel. • …
Eerst wordt nagedacht over wat er precies gegeven en gevraagd is. De programmeur analyseert het probleem en komt tot een stap-voor-stap oplossing van het probleem, een algoritme. Dit algoritme wordt vertaald naar een programmeertaal. De leuze van een programmeur is steeds: “Eerst denken en dan doen!”
gegeven
• INVOER
Programmeren is …
programmeur
• VERWERKING
gevraagd
• UITVOER
een probleem herleiden tot eenvoudige stukken. een probleem in fasen splitsen. een probleem visualiseren. een algoritme vertalen in een eenvoudige taal die zelfs een computer begrijpt.
De programmeur moet het algoritme vertalen naar een programma in een programmeertaal. Enkel dit begrijpt de computer en kan hij uitvoeren. Er bestaan heel veel programmeertalen. De meest gebruikte zijn Java, Objective-C, PHP, Javascript, Flash met actionscript, VB.NET … Elke programmeertaal heeft zijn eigen woordenschat, syntax en grammatica. Als je wilt programmeren, moet je deze taal goed beheersen.
4
1
Maak een stappenplan Je wilt een telefoonnummer van iemand te weten komen. Gegeven: naam en adres van die persoon. Gevraagd: • Zoek het telefoonnummer op http://www.1207.be. • Noteer het gevolgde stappenplan.
FICH E 1
__________________________________________________________________________________________ Start de computer. __________________________________________________________________________________________ Open de Internet Explorer of een andere browser. __________________________________________________________________________________________ Typ in de adresbalk "http://www.1207.be" in. __________________________________________________________________________________________ Typ de naam en de gemeente in van de persoon vanwie je het telefoonnummer zoekt. __________________________________________________________________________________________ Typ eventueel ook de voornaam in. __________________________________________________________________________________________ Klik op de knop "Vind". __________________________________________________________________________________________ Zoek de gezochte persoon in de resultaatlijst op en lees het telefoonnummer. __________________________________________________________________________________________
2
De analyse is belangrijk Schets het gegeven, de invoer, de uitvoer en de verwerking van onderstaande problemen. Gegeven: enkele problemen. Gevraagd: zoek naar het gegeven, de invoer, de verwerking en de uitvoer. • De Maglevtrein rijdt heen en terug van Shanghai-centrum naar de luchthaven. Een enkele reis duurt 8 minuten en de gemiddelde snelheid is 400 km/uur. Welke afstand legt de trein af? Gegeven
snelheid Maglevtrein: 400 km/uur duur Shanghai-centrum - luchthaven: 8 minuten
Invoer
-
Verwerking
bereken het aantal km: gemiddelde snelheid/60*8
Uitvoer
het aantal km
• Zoek de delers van een getal. Hoe ga je hiervoor te werk? Gegeven
-
Invoer
een getal
Verwerking
herhaal voor elk getal tussen 1 en het gegeven getal: bepaal de rest na deling van het ingegeven getal door het getal is de rest=0 dan is het getal een deler
Uitvoer
de deler van het ingegeven getal 5
Fiche 1
Denken als een programmeur
Van probleem tot computerprogramma Welke stappen volgt een programmeur bij het ontwerpen van een programma?
Elk probleem zullen we aanpakken in 6 fasen:
Fase
Omschrijving Probleemstelling We staan voor een bepaalde uitdaging. We proberen eerst het probleem zo goed mogelijk te begrijpen. Probleemanalyse Zoeken naar wat gegeven is, de invoer, de verwerking en de uitvoer. Algoritme maken Maak een schematische voorstelling. Hiervoor kun je gebruikmaken van: • PSD’s (Programma Structuur Diagrammen) of Nassi-Shneiderman diagrammen • blokkenschema’s ;T Zd]c STiT bRWT\P b ^][X]T \PZT] \Tc DcadRc^aXiTa Wcc_ bcadRc^aXiTa obRW [d Programma Zet het algoritme om naar een programma: • ontwerp een omgeving; • maak het programma. Testen Test het programma meermaals uit. Neem telkens verschillende waarden voor de invoer: grote getallen, kleine getallen, speciale waarden, de waarde nul … Kortom zorg ervoor dat elke uitzondering getest wordt. Documenteren Documenteer het programma met extra informatie zoals: • een omschrijving van het probleem; • de titel van het project; • de auteur van het project; • de datum van ontwikkeling van het project. Moeilijke opdrachten kun je verduidelijken zodat … • de leesbaarheid van de programma’s wordt vergroot; • je later eenvoudig aanpassingen kunt maken; • andere leden van het programmeerteam wijzigingen en verbeteringen kunnen aanbrengen.
6
Een voorbeeld maakt het duidelijk Fase
Omschrijving Probleemstelling Bereken de oppervlakte van een rechthoekig stuk grond. FICH E 1
Probleemanalyse gegeven: invoer:
lengte breedte verwerking: oppervlakte rechthoek = lengte x breedte uitvoer: oppervlakte Algoritme maken
Programma Ontwerp • je omgeving
• het programma p g
Testen Test het programma verschillende keren uit, bv. met de getallen 100 en 15, 0 en 5. Documenteren Documenteer het programma.
7
Fiche 1
Denken als een programmeur
Wat heb ik nodig om zelf een programma te maken in Scratch? Je weet dat er telkens verschillende stappen zijn om tot het programma te komen. Wat zal jij als programmeur nu nodig hebben?
1 VISUALISEREN
PROBLEEMSTELLING
TEKEN JE PROBLEEM UIT
ONTWERP DE OMGEVING 2 PROGRAMMEREN VERTAAL JE TEKENING NAAR EEN PROGRAMMA
Wil je een programma in Scratch maken, dan heb je het volgende nodig: Maak je omgeving
Bepaal welke achtergrond je wil gebruiken. Kies een computeranimatie.
Ontwerp je programma
Zet de verschillende stappen van het algoritme om naar een script. Selecteer de verschillende programmablokken en sleep deze naar de scriptzone.
Scratch is een programmeertaal waarmee je o.a. interactieve verhalen of games kunt maken. De taal lijkt op een spreektaal. Meer en meer wordt gebruikgemaakt van WYSIWYG-ontwikkelomgevingen (What You See is What You Get). In de Scratchomgeving beschik je over tal van toeters en bellen die je op een eenvoudige manier kunt gebruiken om je programma samen te stellen. Je ziet in ĂŠĂŠn oogopslag de code en de uitwerking (het speelveld).
De omgeving: het speelveld
8
Het programma of de scriptzone
Objectgericht werken In onze programma’s kunnen we gebruikmaken van meer dan één computeranimatie. Aan elke computeranimatie kunnen programmablokken gekoppeld worden. Ook aan de verschillende achtergronden kun je programmacode koppelen. Kortom, aan ieder object (computeranimatie, achtergrond) kun je een programmascript koppelen! Voorbeeld: bewerkingen
Programma starten.
Programma stoppen.
FICH E 1
Lees de programmablokken van de computeranimaties. Waarschijnlijk begrijp je al de grote lijnen van de scriptblokken. In de volgende oRWTb f^aSc P[[Tb SdXST[XYZ
Scriptblok computeranimatie 1
Scriptblok computeranimatie 2
Voorbeeld: schrikkeljaar Scriptblok computeranimatie1
Scriptblok achtergrond
9
Fiche 1
Denken als een programmeur
Nummer de stappen in de juiste volgorde. Benoem iedere stap.
3 Fase
Omschrijving
Probleemanalyse
.................................
gegeven: invoer:
2 ...
snelheid nat wegdek: ja of nee verwerking: remafstand=(snelheid/10)2/2 reactieafstand =snelheid/10*3 als het wegdek nat is, wordt de remafstand vermenigvuldigd met 1,5 stopafstand=remafstand+reactieafstand uitvoer: remafstand reactieafstand stopafstand
Documenteren
.................................
6
...
Testen
.................................
Geef de volgende snelheden in en noteer de remafstand. Snelheid
5
...
120 50
10
0
Remafstand
Reactieafstand
Stopafstand
Programma
.................................
FICH E 1
4 ...
Probleemstelling ................................. 1 ...
Bereken de stopafstand van een wagen: dit is de remafstand samen met de afstand die YT PpTVc cXYST]b WTc QTb[XbbT] T] WTc aTPVTaT] 5TiT PUbcP]S [TV YT Sdb ]^V PU cTVT] YT oorspronkelijke snelheid!) Als het wegdek nat is, moet de remafstand vermenigvuldigd worden met 1,5.
Algoritme . . . . . . . . . . . .maken .....................
3 ...
11