---
# System prepended metadata

title: 'Zelf algoritmes ontwerpen: selectie blok'
tags: [algoritmisch denken]

---

---
title: "Zelf algoritmes ontwerpen: selectie blok"
tags: algoritmisch denken
---

:::success
**Wat moet je kennen en kunnen na dit deel?**
:heavy_check_mark: Weten wat een selectieblok in een diagram betekent
:heavy_check_mark: Zelf een diagram kunnen opstellen 
:::

# Selectie blok
<iframe width="100%" height="400" src="https://www.youtube.com/embed/4YSkCZsWn94" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Het tweede blokje is het selectie blok.
Deze duidt aan dat er een keuze moet gemaakt worden in je algoritme.
Op basis van deze keuze ga je dan sommige dingen wel of net niet doen.
Op deze plek krijg je dan een splitsing. Je zult dan 2 kolommen van proces blokken naast elkaar zien.

Hieronder is de selectieblok in het vet aangeduid:
<div style="text-align: center;">
    <img src="https://i.imgur.com/5Dhyl4V.png">
</div>

De selectieblok staat dus tussen andere blokken in.
De blokken worden nog steeds van boven naar beneden uitgevoerd.
In dit voorbeeld is dit de volgorde waarop de blokken worden uitgevoerd:
1. Zoek iets om te eten
2. Dan wordt de selectieblok uitgevoerd
3. Eet de boterham op

Hoe de selectieblok werkt zien we hieronder.

## Selectie met 2 keuzes
De simpelste selectieblok heeft maar 2 keuzes, zoals in dit voorbeeld:

<div style="clear: both;text-align:center">
    <img src="https://i.imgur.com/VQoANCc.png">
</div>

Groene driehoek: De keuze die gemaakt moet worden.
Blauw: De eerste keuzemogelijkheid. (Choco in dit geval)
Rood: De tweede keuzemogelijkheid. (Hagelslag in dit geval)

Als je choco kiest dan word de procesblok onder de blauwe driehoek uitgevoerd.
"Smeer de choco op het brood".
De procesblokken onder de keuze Hagelsag worden *niet* uitgevoerd.

Maar als je hagelslag kiest dan worden de blokken onder de rode driehoek uitgevoerd.
2 blokken dus: "Smeer border op het brood" en "Strooi hagelslag over de boter".
Maar de procesblok "Smeer de choco op het brood" wordt *niet* uitgevoerd, omdat die niet onder de rode driehoek staan.

## Meer dan 2 keuzes

Een selectieblok kan ook méér dan 2 keuzes hebben.
Bekijk onderstaande video.

<iframe width="100%" height="400" src="https://www.youtube.com/embed/gA-n_Gqd-90" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

## Selectieblokken *in* selectieblokken

Onder de keuzes in een selectieblok kan je dus andere blokken zetten om uit te voeren.
Je kan daar *eender welk type* blok zetten.
Tot nu toe hebben we enkel maar procesblokken onder de keuzes gezet, maar je kan er ook nog eens een selectieblok onder zetten!
Zo krijgen we dus een selectieblok *in* een selectieblok.

Een voorbeeld:

![](https://i.imgur.com/G2KGKzV.png)

Hier moeten we dus eerst kiezen of we choco willen of hagelslag.
Als we voor hagelslag kiezen moeten we ook nog eens kiezen of we boter willen of niet.

Deze video legt het verder uit:
<iframe width="100%" height="400" src="https://www.youtube.com/embed/F44uiuWh2ZQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>


## Oefeningen

### :pencil: Oefening 1
Bedenk even de situatie waarbij iemand een tas thee bestelt in een café.

Hoe zou het Nassi–Shneiderman diagram voor het maken van de thee er kunnen uitzien?

**1. Diagram om een simpele thee te maken**
:::warning
:::spoiler Teken zelf het diagram en klik daarna hier voor de oplossing om te vergelijken
<br>

![](https://i.imgur.com/sqb5KIW.png)

Dit is niet de enigste juiste oplossing, het kan zijn dat jouw oplossing er anders uit ziet maar toch juist is.
:::

**2. Een keuze toe voegen**
In een café geven ze je graag meerdere keuzes.  
1 van de keuzes die ze je geven vóór de thee te maken is wélke thee je wil.
Bijvoorbeeld zwarte thee, fruitthee, muntthee, ...)
Welke stap in ons diagram zou dan veranderen?

:::warning
:::spoiler Denk zelf even na en klik dan hier voor het antwoord
<br>
De stap "Neem een theebuiltje" zal geen gewone procesblok meer zijn.
Een procesblok is gewoon een actie die uitgevoerd wordt.
Maar nu moeten we eerst een keuze maken, namelijk wélk type thee we willen.
De procesblok wordt dus vervangen door een selectieblok waar we een type thee moeten kiezen.
:::

Hoe zou ons diagram er uitzien na deze verandering?

:::warning
:::spoiler Teken zelf het diagram en klik daarna hier voor de oplossing om te vergelijken

<br>

![](https://i.imgur.com/EcbS09N.png)

We hebben dus nu de procesblok "Neem een theebuiltje" vervangen met een selectieblok waar we eerst moeten kiezen wélk theebuiltje we moeten nemen.
:::

**3. Nog keuzes**
Een paar andere mogelijke keuzes die je kan hebben zijn:

- Of je melk in je thee wilt
- Of je suiker in je thee wilt
- Of je citroen in je thee wilt

Hoe zou ons diagram er uit zien als we de keuze kunnen maken om om melk toe te voegen of niet?

:::warning
:::spoiler Teken zelf het diagram en klik daarna hier voor de oplossing om te vergelijken

<br>

![](https://i.imgur.com/4mnT53j.png)
:::


**4. Voeg zelf de andere keuzes toe**
Nu hebben we nog 2 keuzes die niet in het diagram staan.
De keuze om suiker toe te voegen en de keuze om citroen toe te voegen.

Teken het diagram met deze 2 keuzes erbij en upload je oplossing hieronder in het formulier.
<iframe width="100%" height= "800px" src= "https://forms.office.com/Pages/ResponsePage.aspx?id=JLSXj_BKa0yr-mUOSAvTJNJqx6AF5T9KiuqgwXk4vbRUMDlFMU85REhRQTg1R0xNVVhHQThCTkNEOS4u&embed=true" frameborder= "0" marginwidth= "0" marginheight= "0" style= "border: none; max-width:100%; max-height:100vh" allowfullscreen webkitallowfullscreen mozallowfullscreen msallowfullscreen> </iframe>