ALGORITMISCH DENKEN via informatica
STRUCTORIZER
Fiche 1
Denken als een programmeur In deze fiche leer je Ç KH[ WYVNYHTTLYLU WYVISLTLU VWSVZZLU PZ Ç LLU WYVISLLT HUHS`ZLYLU
Ç KL ]LYZJOPSSLUKL Z[HWWLU IPQ OL[ VWSVZZLU ]HU LLU WYVISLLT RLUULU LU [VLWHZZLU
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 …
Nog een voorbeeld. Denk aan 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?
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?
Je kent het stappenplan om tot een programma te komen. Wat zal jij als programmeur nu nodig hebben?
Zowel een bouwplan, een keukenrecept als een wegbeschrijving geven in verschillende stappen een oplossingsmethode weer. 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
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 graďŹ sch kunt weergeven.
• 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. Dit is de taal die de computer begrijpt en kan 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.
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
_____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________
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
Invoer Verwerking Uitvoer
• Zoek de delers van een getal. Hoe ga je hiervoor te werk? Gegeven
Invoer Verwerking Uitvoer
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 stappen:
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 gebruik maken van: • PSD’s (Programma Structuur Diagrammen) of Nassi-Shneiderman diagrammen, • blokkenschema’s. Je kunt deze schema's online maken met Structorizer (http://structorizer.fisch.lu). Programma Zet het algoritme om naar een programma: • ontwerp een omgeving, • maak het programma. Hiervoor kun je gebruik maken van Blue Griffon (http://bluegriffon.org). 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 ontwikkelingsdatum. 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.
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
FICH E 2
Algoritme maken FICH E 3
FICH E 4
FICH E 5
Programma FICH E 6
Ontwerp • je omgeving
• het programma
FICH E 7
FICH E 8
FICH E 9
Testen Test het programma verschillende keren uit, bv. met de getallen 100 en 15, 0 en 5. FICH E 10
Documenteren • het algoritme.
• het programma.
Fiche 1
Denken als een programmeur
Wat heb ik nodig om zelf een pro Je weet dat er telkens verschillend Wat zal jij als programmeur nu nod
PROBLEEM
1 Visualiseren met Structorizer
Structorizer Applet
Structorizer op je pc
Visualiseren Je kunt een schets maken van het probleem op papier. Je kunt ook gebruik maken van Structorizer. http://structorizer.ďŹ sch.lu
Online
Ofine
Met een applet.
Download het programma en installeer het.
Structorizer online met een applet:
Structorizer op je pc:
gramma te maken? e stappen zijn om tot het programma te komen. dig hebben?
FICH E 1
MSTELLING FICH E 2
2 Programmeren met Javascript
FICH E 3
FICH E 4
De WYSIWYG-omgeving
De uitwerking FICH E 5
FICH E 6
Programmeren Javascript is een programmeertaal die gebruikt wordt bij websiteontwikkeling. Om te pogrammeren in Javascript heb je niet veel nodig. Je maakt best gebruik van een WYSIWYG websiteontwerpprogramma zoals bv. BlueGriffon of KompoZer. FICH E 7
http://bluegriffon.org of http://kompozer.net De WYSIWYG-omgeving
De bron van het programma
Hier ontwerp je de lay-out van je website.
Typ de programmacode in. Hier werk je “backstage” in je omgeving (website).
FICH E 8
FICH E 9
FICH E 10
Fiche 1
Denken als een programmeur
3 Fase
Nummer de stappen in de juiste volgorde. Benoem iedere stap.
Omschrijving
.................................
gegeven: invoer:
...
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
.................................
...
.................................
Geef de volgende snelheden in en noteer de rem-, reactie- en stopafstand. Snelheid ...
120 50 0
.................................
...
Remafstand
Reactieafstand
Stopafstand
.................................
...
Bereken de stopafstand van een wagen: dit is de remafstand samen met de afstand die je aegt tijdens het beslissen en het reageren. (Deze afstand leg je dus nog af tegen je oorspronkelijke snelheid!) Als het wegdek nat is, moet de remafstand vermenigvuldigd worden met 1,5. FICH E 1
.................................
...