De oefening ISBN_vervolg1 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.
>>> main()
OK 

Voorbeeld 2

Bij inlezen geef je de getallen: 2 1 2 3 4 5 6 8 0 7 in op aparte lijnen.
>>> main()
FOUT 

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