Op het einde van vorige oefening stond nog een opmerking over een fout in de sortering:
Als je cijfers invult als woorden (strings) worden deze "fout" gesorteerd. De computer kijkt eerst naar het eerste cijfer en pas dan naar het tweede cijfer (zoals je een naam zou sorteren).
Zo is "12" kleiner dan "5" want de 1 is kleiner dan 5. De "2" van "12" wordt pas bekeken als er een ander cijfer met een "1" begint.
De oplossing hiervoor ken je al: het "int" of "float"-commando. Maar voor deze oefening moet je eerst een keuze maken:
De opdracht:
Maak een programma dat een onbekend aantal items in een lijst steekt en de lijst nadien oplopend sorteert.
Vraag aan de gebruiker eerst of hij woorden (door 1 als invoer te doen) of cijfers (door 2 als invoer te doen) gaat invullen.
Daarna komen een onbekend aantal items aan bod. Een woordenlijst eindigt met "einde", een cijferlijst eindigt met -1.
Na de invoer wordt de lijst getoond in oplopende volgorde.
Invoer
Een regel met het cijfer 1 of 2
Gevolgd door alle items die in de lijst moeten komen.
Uitvoer
Een regel die de lijst toont in oplopende volgorde
Voorbeeld 1:
Invoer:
1
Alex
William
Dodona
einde
Uitvoer:
['Alex', 'Dodona', 'William']
Voorbeeld 2:
Invoer:
2
2
4
6
8
10
12
-1
Uitvoer:
[2,4,6,8,10,12]