De oefening
ISBN_vervolg wordt nu
herwerkt met een lus.
Opdracht
De tien cijfers van een ISBN-10 code worden in deze oefening ook ingelezen op aparte lijnen.
Het programma moet aangepast worden zodat de cijfers niet in aparte variabelen worden opgeslagen.
Gebruik de juiste lus voor het inlezen van de eerste 9 cijfers en gebruik maar 2 variabelen.
Dodona controleert dit!!
Het programma controleert nog steeds of de ingegeven reeks van 10 cijfers correspondeert met een geldige ISBN-10
code, met dezelfde berekening van het controlegetal. Indien $$x_1, \ldots, x_9, x_{10}$$ de 10 cijfers van een ISBN-10
code voorstellen, dan moet het controlecijfer $$x_{10}$$ voldoen aan: \[x_{10} = (x_1+ 2x_2+ 3x_3+ 4x_4+ 5x_5+ 6x_6+
7x_7+ 8x_8+ 9x_9)\!\!\!\!\mod{11}\]
Voorbeeld 1
Bij inlezen geef je de getallen:
2 1 2 3 4 5 6 8 0 2 in op aparte lijnen.
Voorbeeld 2
Bij inlezen geef je de getallen:
2 1 2 3 4 5 6 8 0 7 in op aparte lijnen.
Opmerkingen
Je moet het hoofdprogramma toevoegen in de gegeven procedure
main()
.
Tips
while
of for
?
Een for-lus is de beste keuze - gebruik range(1, 10)
Hoe lees ik nu de 9 cijfers in ?
Bekijk volgend stukje code en voer dit uit.
Je kan hiermee meerdere cijfers inlezen. Elk cijfer wordt bijgehouden in dezelfde variabele
x
for i in range (1,10):
x = int(input("Geef cijfer:"))
Hoe bereken ik nu de som ?
- De variabele
x
bevat achtereenvolgens elk cijfer (x1, x2...,
x9)
- Gebruik een tweede variabele om de gevraagde som te berekenen terwijl de cijfers ingelezen worden.
- gebruik de index van de
for
-lus tijdens het itereren.
Waar lees je het controlecijfer in ?
dit lees je in na de for
-lus