← Go/De eerste bouwstenen
Les 4 van 8
MODULE 01 · 04◷ 22 min

Reken met hele groepen en wat overblijft

Na deze les kun je
  • Gehele deling en de rest bij een praktische verdeling gebruiken.
  • Met haakjes een berekening en het aantal benodigde verpakkingen bepalen.

Een buurthuis verdeelt materialen over kratten. Alleen het aantal volle kratten weten is niet genoeg: de overgebleven spullen moeten ook mee. Je programma moet daarom onderscheid maken tussen complete groepen, een rest en het totale aantal benodigde kratten.

Dezelfde getallen, een andere vraag

Een operator is een teken dat een bewerking aangeeft. Je kent optellen met + en aftrekken met -. In Go gebruik je * voor vermenigvuldigen, / voor delen en % voor de rest van een gehele deling.

De variabelen in deze les bevatten gehele getallen, van het type int. Als beide waarden bij / gehele getallen zijn, blijft ook de uitkomst geheel. Bij onze niet-negatieve aantallen vertelt die uitkomst hoeveel complete groepen je kunt maken.

Met % stel je een andere vraag: hoeveel voorwerpen blijven buiten die complete groepen? Het is geen percentageberekening. De combinatie van deling en rest maakt duidelijk of alles precies past.

BerekeningBetekenis bij 23 spullen en ruimte voor 5
23 / 5Vier volle kratten.
23 % 5Drie spullen blijven over.
4 * 5 + 3Samen weer de oorspronkelijke 23 spullen.

Eerst verdelen, dan de uitkomst lezen

Volle groepen en losse spullen
package main

import "fmt"

func main() {
	items := 23
	capacity := 5
	fmt.Println(items / capacity)
	fmt.Println(items % capacity)
	fmt.Println((items + capacity - 1) / capacity)
}
Verwachte uitvoer
4
3
5

Het voorbeeld bewaart aantal en capaciteit apart. De twee berekeningen gebruiken dezelfde waarden, maar beantwoorden verschillende vragen. Bekijk de uitvoer en controleer op papier dat vier groepen van vijf plus drie losse spullen samen drieëntwintig vormen.

Een berekening lezen verandert de oorspronkelijke variabele niet. items / capacity levert een nieuwe waarde op; items blijft drieëntwintig. Je kunt het oorspronkelijke aantal daarom later opnieuw gebruiken.

Eén krat voor de rest

Vier volle kratten vervoeren maar twintig spullen. Voor de drie overgebleven spullen is nog een krat nodig, zodat je vijf kratten moet meenemen. Je wilt datzelfde rekenidee ook gebruiken als er niets overblijft.

Voor niet-negatieve aantallen en een positieve capaciteit kun je rekenen met (items + capacity - 1) / capacity. Je telt eerst net genoeg bij om een onvolledige laatste groep in de gehele deling mee te laten tellen. De oefening gebruikt kleine aantallen; uitzonderlijke grote getallen en hun grenzen komen later terug.

Haakjes leggen je bedoeling vast

Go rekent vermenigvuldigen, delen en rest vóór optellen en aftrekken uit. Daarom geeft 2 + 5 * 3 zeventien, terwijl (2 + 5) * 3 eenentwintig oplevert. Met haakjes laat je een deelberekening eerst uitvoeren.

Bij de kratberekening zijn de haakjes rond items + capacity - 1 dus nodig. Zonder die groepering zou de deling maar een deel van de bedoelde optelling gebruiken. Schrijf de berekening uit en controleer welke waarden als eerste samen horen.

Veelgemaakte fout: altijd één erbij

Altijd één krat te veel bij een exacte verdeling
package main

import "fmt"

func main() {
	items := 28
	capacity := 7
	fmt.Println(items / capacity)
	fmt.Println(items / capacity + 1)
}
Verwachte uitvoer
4
5

De foutvariant neemt achtentwintig spullen en zeven plekken per krat. Vier kratten zijn precies genoeg, maar gehele deling plus één vraagt er vijf. Altijd één toevoegen lost een onvolledige groep op en gaat tegelijk fout bij een verdeling zonder rest.

Onze afspraak is dat de capaciteit positief is. Delen of een rest berekenen met een variabele die nul bevat, is geen geldige verdeling. In latere lessen leer je zulke invoer eerst controleren.

Je eigen materiaallevering

In de oefening staan 47 spullen en zes plekken per krat klaar. Bereken achtereenvolgens volle kratten, losse spullen, alle benodigde kratten en de kosten bij vier euro per krat. Druk iedere gevraagde waarde op een eigen regel af, zonder extra tekst.

AAN DE SLAG 0/4
1

Volle kratten

Gebruik items en capacity om op de eerste regel het aantal volledig gevulde kratten te tonen.

2

Losse spullen

Toon op de tweede regel hoeveel spullen na de volle kratten overblijven.

3

Alle benodigde kratten

Toon op de derde regel hoeveel kratten nodig zijn om alle spullen mee te nemen, ook de laatste onvolledige groep.

4

De bezorgkosten

Toon op de vierde regel de totale kosten als iedere benodigde krat vier euro kost.

Samenvatting

  • Gehele deling telt complete groepen; % geeft de rest.
  • Een onvolledige groep kan een extra verpakking vereisen.
  • Haakjes bepalen welk deel van de berekening eerst gebeurt.

De volgende les maakt het verschil tussen gehele en kommagetallen expliciet.

main.go
UitvoerConsole
›
›_

Hier komt je resultaat.

Voer je code uit en ontdek
wat je hebt gemaakt.

0/4 stappen
EVEN MEEKIJKEN

Bekijk hoe het kan.

Je mag de oplossing bekijken. Deze poging telt dan niet mee als afgeronde les. Met Reset kun je daarna opnieuw zelf oefenen.