Drop hier links of afbeeldingen om ze aan de editor toe te voegen.

Tot nu toe sorteerde je een rij losse getallen. In de praktijk hangt aan elk getal vaak nog wat extra informatie: een naam, een datum, een prijs… In deze oefening pas je bubblesort toe op een klaslijst, waarbij bij elk punt ook de naam van de leerling hoort.

Opgave

Een klas telt hoogstens 32 leerlingen. Lees voor elke leerling een naam en het punt (een geheel getal) dat hij of zij op een proef behaalde. De invoer stopt zodra je als naam de letter X leest.

Rangschik de leerlingen daarna volgens hun punt, van hoog naar laag: de leerling met het hoogste punt komt eerst, die met het laagste laatst. Druk per leerling de naam en het punt af.

Het punt staat los van de naam, maar ze horen samen: als je twee leerlingen van plaats wisselt tijdens het sorteren, moet je zowel het punt als de naam verwisselen. Hou ze dus bij in twee arrays die je in dezelfde volgorde gesorteerd houdt.

Gebruik bubblesort uit dit hoofdstuk, maar vergelijk telkens de punten. Wanneer je twee punten van plaats wisselt, wissel dan in dezelfde stap ook de bijbehorende namen, zodat naam en punt bij elkaar blijven horen. Gebruik geen kant-en-klare sorteerfunctie.

Alle punten in de invoer zijn verschillend, dus de volgorde ligt altijd vast.

Invoer

Telkens twee regels per leerling: op de eerste regel de naam, op de tweede regel het punt. De invoer eindigt met een regel die enkel X bevat (zonder punt erna).

Uitvoer

Eén regel per leerling, gesorteerd van het hoogste punt naar het laagste, in de vorm <naam> <punt>. Is er geen enkele leerling, dan druk je niets af.

Voorbeeld

Invoer:

An
14
Bram
18
Cara
11
Dirk
16
Els
9
X

Uitvoer:

Bram 18
Dirk 16
An 14
Cara 11
Els 9