Overzicht van herbruikbare opdrachtblokken


Index


Functies

Algemeen

<!-- @include: global-lib/explain-function.md#uitleg -->

Uitleg functies

Een functie is en groep van instructies die samen een taak uitvoeren. Je kan functies gebruiken om je programma in kleinere stukjes op te hakken zodat het makkelijker is om te lezen. Ook zijn functies handig als je dezelfde groep instructies op meerdere plaatsen in je programma nodig hebt.

Voorbeeld

Stel dat je een programma maakt om je huiswerk te maken. Je zou dan de volgende functies kunnen maken:

  • zoek_huiswerk_in_agenda
  • maak_rekenen_huiswerk
  • maak_taal_huiswerk

Je programma wordt dan als volgt:

Programmeer wat er moet worden gedaan voor de functie maak_rekenen_huiswerk. Het stukje (hoofdstuk) geeft aan dat de functie extra informatie nodig heeft over wat gedaan moet worden.

functie maak_rekenen_huiswerk(hoofdstuk):
    pak boek
    zoek hoofdstuk op
    pak papier
    maak sommen
    ...

Programmeer wat er moet worden gedaan om taalhuiswerk te maken.

functie maak_taal_huiswerk(hoofdstuk):
    pak boek
    zoek hoofdstuk op
    leer woordjes
    ...

Programmeer wat er moet worden gedaan om in je agenda te zoeken. Het resultaat van de functie is een lijst van alle opdrachten die op de opgegeven datum moeten worden gemaakt.

functie zoek_huiswerk_in_agenda(datum):
    pak agenda
    zoek datum op

    resultaat -> lijst_met_opdrachten

Voer alle functies in de juiste volgorde uit.

zoek_huiswerk_in_agenda(vandaag):
    voor elke opdracht:
        als soort is "rekenen":
            maak_rekenen_huiswerk(hoofdstuk)
        als soort is "taal":
            maak_taal_huiswerk(hoofdstuk)

Voorbeelden voor het maken van een functie

<!-- @include: global-lib/explain-function.md#voorbeeld-scratch -->

Voorbeeld [Mijn blokken]

TODO

<!-- @include: global-lib/explain-function.md#voorbeeld-arduino -->

Voorbeeld functies

Voorbeeld:

void doeIets() {

}

<!-- @include: global-lib/explain-function.md#voorbeeld-python -->

Voorbeeld functies

Voorbeeld:

def doeIets:
    print('hallo!')

X-as

<!-- @include: global-lib/explain-axis.md#x-as-scratch -->

Uitleg x-as

X wijst de plek van links naar recht op het scherm.

  • Helemaal links is -220
  • Het midden is 0
  • Helemaal rechts is 220

ToDo

ToDo


Y-as

<!-- @include: global-lib/explain-axis.md#y-as-scratch -->

Uitleg y-as

Y wijst de plek van boven naar beneden op het scherm.

  • Helemaal boven is 170
  • Het midden is 0
  • Helemaal onder is -170

ToDo

ToDo


Variabelen

<!-- @include: global-lib/explain-variabele.md#scratch -->

uitleg variabelen

Met variabelen kan je je programma vertellen om dingen te onthouden. Een variabele is een plekje in het geheugen van de computer waarin je een waarde kan bewaren. Bijvoorbeeld de score of de uitkomst van een som.

Maken van een variabele

Om een variabele te kunnen gebruiken, moet je hem eerst maken. Dit doe je door op maak variabele te klikken.

Je krijgt nu een formulier waarin je de variabele een naam kan geven. In dit voorbeeld score.

Gebruiken van een variabele

Je krijgt nu een nieuwe bouwsteen die je kan gebruiken in je programma.

ToDo

ToDo


Events

<!-- @include: global-lib/explain-events.md#scratch -->

Uitleg gebeurtenissen

Een gebeurtenis is iets dat door de computer wordt herkend en waarmee je een blok in je programma kan starten.

wanneer groene vlag wordt aangeklikt

wanneer [spatiebalk v] is ingedrukt

De acties onder dit blok worden uitgevoerd als op wordt gedrukt.

De acties onder dit blok worden uitgevoerd als op de spatiebalk wordt gedrukt.

Er zijn nog meer gebeurtenissen die je kan gebruiken. Deze vindt je bij gebeurtenissen zoals je in het plaatje hiernaast kunt zien.

ToDo

ToDo


Modulo functie

<!-- @include: global-lib/explain-mod.md#scratch -->

Uitleg modulo functie

De modulo functie geeft de restwaarde van een gedeeld door som met gehele getallen.

Bijvoorbeeld: Stel dat je 13 snoepjes wil verdelen over 4 vrienden. Iedereen krijgt dan 3 snoepjes, en er blijft er dan 1 over.

Dus: 13/4=3rest113/4 = 3\enspace rest\enspace 1

Voorbeeld:

wanneer groene vlag wordt aangeklikt
maak [rest v] ((13) modulo (4))

De variabele met de naam rest heeft nu de waarde 1.

<!-- @include: global-lib/explain-mod.md#arduino -->

Uitleg modulo functie

De modulo functie geeft de restwaarde van een gedeeld door som met gehele getallen.

Bijvoorbeeld: Stel dat je 13 snoepjes wil verdelen over 4 vrienden. Iedereen krijgt dan 3 snoepjes, en er blijft er dan 1 over.

Dus: 13/4=3rest113/4 = 3\enspace rest\enspace 1

Bij arduino schrijf je de modulo functie als een %\%-teken.

Voorbeeld:

    integer rest = 13 % 4; // De waarde van rest wordt 1

<!-- @include: global-lib/explain-mod.md#python -->

Uitleg modulo functie

De modulo functie geeft de restwaarde van een gedeeld door som met gehele getallen.

Bijvoorbeeld: Stel dat je 13 snoepjes wil verdelen over 4 vrienden. Iedereen krijgt dan 3 snoepjes, en er blijft er dan 1 over.

Dus: 13/4=3rest113/4 = 3\enspace rest\enspace 1

In python schrijf je de modulo functie als een %\%-teken.

Voorbeeld:

    rest = 13 % 4 # De waarde van rest wordt 1

Programmastructuur

Programmastructuur Algemeen

<!-- @include: global-lib/explain-structure.md#general -->

Uitleg programmastructuur

De programmastructuur bepaald in welke volgorde de opdrachten in je programma worden uitgevoerd.

Er zijn verschillende soorten structuren.

Sequentie

In een sequentie worden de opdrachten opeenvolgend uitgevoerd. In Python ziet dat er als volgt uit:

    print("Dit wordt als eerste uitgevoerd")
    print("Dit wordt als tweede uitgevoerd")
    print("Dit wordt als laatste uitgevoerd")

Conditie

In een conditie worden opdrachten uitgevoerd als aan een voorwaarde is voldaan. Denk aan Als...Dan....

Voorbeeld:

    if key_press == "space":
        print("Dit wordt uitgevoerd als de spatiebalk is ingedrukt")
    else if key_press == "q":
        print("Dit wordt uitgevoerd als de q-toets is ingedrukt")
    else
        print("Dit wordt uitgevoerd in alle andere gevallen")
        print("Dit wordt ook uitgevoerd in alle andere gevallen")

    print("dit hoort niet bij de if en wordt altijd uitgevoerd")

Het is belangrijk dat de computer weet welke opdrachten bij de condities horen en welke niet. Om aan te geven dat een opdracht bij een conditie hoort, moet je hem inspringen. Hiermee wordt bedoeld dat je met 4 spaties de regel naar rechts verplaatst.

De laatste opdracht print("dit wordt altijd uitgevoerd") hoort niet bij de else. Dit kan de computer zien omdat deze regel niet is ingesprongen.

Iteratie

Een iteratie is een lus waarmee opdrachten meerdere keren na elkaar kunnen worden uitgevoerd.

Voorbeeld:

    while key_press == "space":
        print("Dit commando wordt herhaald zolang de spatiebalk is ingedrukt")

    print("Dit wordt uitgevoerd nadat de lus is afgelopen").

Inspringen

<!-- @include: global-lib/explain-structure.md#indent -->

Uitleg inspringen

Door opdrachten in te springen weet de computer waar een opdracht bij hoort. Inspringen doe je door aan het begin van een regel spaties in te voeren.

Voorbeeld in python:

if key_press == "spatie":
  print("Ik ben ingesprongen en hoor dus bij de if")

print("Ik hoor niet bij de if")

Regel 2 is ingesprongen. Daardoor weet python dat deze regel bij de if hoort. Hieronder zie je hetzelfde programma in scratch. Ook daar is de tweede regel ingesprongen. Maar bij scratch ziet dat er iets anders uit.

als <toets [spatiebalk v] ingedrukt?> dan 
  zeg [Ik ben ingesprongen en hoor dus bij de als]
end
zeg [ik hoor niet bij als]

Python cheat sheet

python: comment

<!-- @include: global-lib/cheat-sheet-python.md#comment -->


Voorbeeld commentaar

# Deze regels worden niet door 
# de computer gelezen omdat 
# ze met een hekje beginnen.

Commentaar – de computer negeert regels die met een # beginnen.

python: variables

<!-- @include: global-lib/cheat-sheet-python.md#variables -->


Voorbeeld variabelen

mijn_variabele = 100

Geef de variabele met de naam mijn_variabele de waarde 100.

maak [mijn_variabele v] (100)

python: print

<!-- @include: global-lib/cheat-sheet-python.md#print -->


Voorbeeld print

print("hallo")
print(42)
print(mijn_variabele)

Met print kan je iets op het scherm afdrukken. Dit lijkt op het scratch-blok zeg.

zeg [hallo]
zeg (42)
zeg (mijn_variabele)

python: if else

<!-- @include: global-lib/cheat-sheet-python.md#if_else -->


Voorbeeld if ... else ...

if mijn_variabele == 42:
  print ("mijn_variabele is 42")
else:
  print ("mijn_variabele is NIET 42")

Met if kan je ervoor zorgen dat commando's alleen worden uitgevoerd als aan een voorwaarde is voldaan. In dit voorbeeld is de voorwaarde mijn_variabele == 42.

De commando's onder else worden uitgevoerd als NIET aan de voorwaarde is voldaan.

als <(mijn_variabele) = (42)> dan
  zeg [mijn_variabele is 42]
anders
  zeg [mijn_variabele is NIET 42]
end

python: while

<!-- @include: global-lib/cheat-sheet-python.md#while -->


Voorbeeld while


while mijn_variabele == 100:
  print("mijn variabele is 100")

Lus (herhaal) zolang de voorwaarde mijn_variabele == 100 klopt.

Dit lijkt op een herhaal-blok in scratch. Het verschil is dat je in scratch de voorwaarde moet opgeven waarmee de herhaling wordt gestopt. In Python geef je de voorwaarde om door te gaan met herhalen.

herhaal tot <niet <(mijn_variabele) = (100)>>
  say [mijn variabele is 100]

python: break

<!-- @include: global-lib/cheat-sheet-python.md#break -->


Voorbeeld break


toets_ingedrukt = 'a'

while True:
  if toets_ingedrukt == 'a':
    print("toets a is ingedrukt")
    print("ik stop de lus met break")
    break
  else:
    print("ik wacht op de toets a")

print("De lus is afgebroken")

Met break kan je een lus stoppen.


[NL] Licentie Informatie

Voor al het materiaal in document geldt de licentie: Creative Commons Naamsvermelding-NietCommercieel-GelijkDelen 3.0 https://creativecommons.org/licenses/by-nc-sa/3.0/.

Indien u toegang wilt tot de raw bewerkbare files om het materiaal naar uw eigen doel aan te passen, ons te helpen het materiaal te verbeteren, of het materiaal te vertalen, neem dan contact met CoderDojo Zoetermeer https://codeclub.org/en/clubs/4f8d36fb-7545-4ba9-b9fb-b379b6b87938

[EN] License Information

All work in this document are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 https://creativecommons.org/licenses/by-nc-sa/3.0/.

If you wish to gain access to the raw editable files in order to adapt our content to your own purposes, help us improve the content, or translate it, then please contact CoderDojo Zoetermeer https://codeclub.org/en/clubs/4f8d36fb-7545-4ba9-b9fb-b379b6b87938 .

This document was created by CoderDojo Zoetermeer. The template design was inspired by the CoderDojo branding and visual identity, and incorporates elements from both organizations. We would like to thank CoderDojo Nederland for their their ongoing support of the CoderDojo community.
Acknowledgements

Author(s): Ben Mens