> For the complete documentation index, see [llms.txt](https://apwt.gitbook.io/cursus-pro-oo/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apwt.gitbook.io/cursus-pro-oo/semester-1-programming-principles/h4-beslissingen/a_practica.md).

# Oefeningen

Al deze oefeningen maak je in een klasse `Beslissingen`

## **Oefening: H4-Schoenenverkoper**

#### Leerdoelen

* flowchart omzetten naar conditionele code
* Eenvoudige conditie
* Uitbreiding: samengestelde booleaanse expressie

**Functionele analyse**

**Basis**: Maak een programma dat aan de gebruiker vraagt hoeveel paar schoenen hij/zij wenst te kopen. Ieder paar schoenen kost normaal 50 euro. Indien de gebruiker 2 paar of meer koopt, is er 10% korting. Toon aan de gebruiker de totale prijs.

**Uitbreiding**: Breid in een tweede stap je programma uit zodat de korting enkel geldt als de gebruiker een klantenkaart heeft.

**Technische analyse**

Maak een methode met de naam `SchoenenVerkoper`. Maak gebruik van een `if.` Zet volgende flowchart om in code. Een `Real` in Flowgorithm stemt overeen met een `double` in C#.

**Basis**:

![](/files/uNLtUSvk5Fqb8NUxzOzD)

&#x20;**Uitbreiding:**

![](/files/8rKQjBTW7TcLKlzNyfLC)

#### **Voorbeeldinteractie(s)**

**Basis:**

<div align="left"><img src="/files/FTe4vGIHsZ1fO4Q6oS8m" alt=""></div>

<div align="left"><img src="/files/hEMcLXgykg15CZpPbY2x" alt=""></div>

**Uitbreiding:**

<div align="left"><img src="/files/Ni6bGzmtzxUqs5gtwNOJ" alt=""></div>

## **Oefening: H4-EvenOneven**

#### **Leerdoelen**

* flowchart omzetten naar conditionele code
* tweevoudige conditie
* gebruik modulo

#### **Functionele analyse**

Maak een programma dat aan de gebruiker een geheel getal vraagt. Het programma geeft terug of het ingegeven getal even of oneven is.

#### **Technische analyse**

Maak een methode met de naam `EvenOneven`.

Een getal is even als de rest van de deling door 2 nul is. Hiervoor kan je de modulo operator gebruiken. Het teken voor de modulo is het `%` -teken.\
Voorbeelden:\
7%2 geeft 1 => 7 is oneven\
8%2 geeft 0 => 8 is even

Zet volgende flowchart om in code:

![](/files/it6alcdhTLsRBQpcNgqo)

#### **Voorbeeldinteractie(s)**

<div align="left"><img src="/files/Runmh3vtvKMgVnB8Qz1r" alt=""></div>

<div align="left"><img src="/files/KdF2c1YFOxJkmCurmZqy" alt=""></div>

## **Oefening: H4-PositiefNegatiefNul**

#### **Leerdoelen**

* flowchart omzetten naar conditionele code
* meervoudige conditie

#### **Functionele analyse**

Maak een programma dat aan de gebruiker een geheel getal vraagt. Het programma geeft terug of het ingegeven getal positief, negatief of 0 is.

#### **Technische analyse**

Maak een methode met de naam `PositiefNegatiefNul`.

Maak gebruik van een `if` – `else if` - `else`.

Zet volgende flowchart om in code:

![](/files/YWPL9RRzMjEkNezeGoid)

**Voorbeeldinteractie(s)**

<div align="left"><img src="/files/BUJqtREq1uVWQ7CHsVnO" alt=""></div>

<div align="left"><img src="/files/eWHYTAjfT3bkpxraOlYM" alt=""></div>

<div align="left"><img src="/files/qBOX1gAYPmXjQd2ovylF" alt=""></div>

## **Oefening: H4-BMIBerekenaar**

#### **Leerdoelen**

* meervoudige conditie
* gebruik van `else if`

#### **Functionele analyse**

Maak een programma om de BMI van de gebruiker te berekenen. ([Meer info over BMI](https://nl.wikipedia.org/wiki/Queteletindex)) De BMI wordt berekend aan de hand van de lengte en het gewicht van de persoon.

De formule is: BMI = gewicht / lengte².

Je toont niet enkel de BMI maar ook een beoordeling over de BMI:

\-       BMI lager dan 18,5 => ondergewicht

\-       BMI vanaf 18,5 maar lager dan 25 => normaal gewicht

\-       BMI vanaf 25 maar lager dan 30 => overgewicht

\-       BMI vanaf 30 maar lager dan 40 => zwaarlijvig

\-       BMI hoger dan 40 => ernstige obesitas

#### &#x20;**Technische analyse**

Maak een methode met de naam `BMIBerekenaar`.

Maak gebruik van een `if` – `else if` – `else if` …

#### **Voorbeeldinteractie**

<div align="left"><img src="/files/abMFPntitVlzWwzn6KSE" alt=""></div>

## **Oefening: H4-GrootsteVanDrie**

#### **Leerdoelen**

* meervoudige conditie
* samengestelde booleaanse expressie
* gebruik van `else if`

#### **Functionele analyse**

Maak een programma om van 3 ingegeven getallen, het grootste te bepalen.

#### **Technische analyse**

Maak een methode met de naam `GrootsteVanDrie`.

Maak gebruik van een `if` – `else if` - `else`

**Voorbeeldinteractie**

<div align="left"><img src="/files/O9uu6YF0EW6abVkDVqAo" alt=""></div>

## **Oefening: H4-Examens**

#### **Leerdoelen**

* conditie
* samengestelde booleaanse expressie

#### **Functionele analyse**

Maak een programma waarmee je aan de gebruiker het resultaat van 3 examens opvraagt. De opgevraagde resultaten zijn de behaalde punten op 100. Om te slagen moet de student een gemiddelde van meer dan 50% hebben én maximaal 1 onvoldoende.

#### **Technische analyse**

Maak een methode met de naam `Examens`.

Maak gebruik van een `if` – `else`.

**Voorbeeldinteractie**

<div align="left"><img src="/files/FqftZCHGVSTG4Hd7VRz5" alt=""></div>

## Oefening: H4-Wet van Ohm

#### Leerdoelen <a href="#leerdoelen-2" id="leerdoelen-2"></a>

\-        conditionele berekeningen

#### Functionele analyse

De Wet van Ohm houdt in dat een elektrische stroom (voorgesteld als I) gelijk is aan een spanningsverschil (U) gedeeld door een weerstand (R), dus I = U / R.

Vraag aan de gebruiker wat hij wenst te berekenen: Spanning, Weerstand of Stroomsterkte. Vraag vervolgens de twee andere waarden. Als dus de gebruiker "Spanning" kiest, vraag je aan de gebruiker de waarden van de stroomsterkte en de weerstand. Bereken m.b.v. de Wet van Ohm de gewenste waarde en toon aan de gebruiker.

#### Technische analyse <a href="#technische-analyse-2" id="technische-analyse-2"></a>

Maak een nieuwe methode genaamd `WetVanOhm`.

Denk eraan dat de gegeven formule wiskundig gedefinieerd is. Houd rekening met het feit dat deze drie maten uitgedrukt kunnen worden in kommagetallen.

#### **V**oorbeeldinteractie(s)

<div align="left"><img src="/files/ZyWIWvQGRdHhzipYp3fQ" alt=""></div>

<div align="left"><img src="/files/ufscOj8RzEsreNlXauCY" alt=""></div>

<div align="left"><img src="/files/HoyO5Wn9aX5DlAe7szzI" alt=""></div>

## Keuzemenu's maken

#### Leerdoelen: <a href="#leerdoelen-5" id="leerdoelen-5"></a>

\-        Conditionele functionaliteit

#### Functionele analyse: <a href="#functionele-analyse-5" id="functionele-analyse-5"></a>

We willen dat de gebruiker een menu ter beschikking heeft om eerst te kiezen uit welk hoofdstuk er een oefening moet gekozen worden en vervolgens welke oefening er moet uitgevoerd worden.

#### Technische analyse

Maak in je klasse Program een hoofdmenu. Deze methode laat de gebruiker kiezen uit één van de hoofdstukken. Na de keuze wordt het scherm leeggemaakt en dan wordt de methode `Keuzemenu` van de juiste klasse opgeroepen.\
Elke klasse die je tot hiertoe in dit project gemaakt hebt, voorzie je dus van een methode Keuzemenu, zodat de gebruiker kan kiezen uit de oefeningen (=methodes) binnen het gekozen hoofdstuk.

#### Voorbeeldinteractie

<div align="left"><img src="/files/CcwtKl0xjfUAyxmzF57h" alt=""></div>

<div align="left"><img src="/files/3WNiRRsOicbIETrc82K4" alt=""></div>

<div align="left"><img src="/files/SFNTMR5zvaPOgV3h5XZ1" alt=""></div>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://apwt.gitbook.io/cursus-pro-oo/semester-1-programming-principles/h4-beslissingen/a_practica.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
