6.1 Delitelji števila
Na primeru te naloge bomo pokazali, kako sestavimo primer naloge, ki zahteva sestavo programa. Za preverjanje vprašanja tipa ‘napiši program’ bomo uporabili tip vprašanja python3_vnesi_podatke. Pokazali bomo tudi, kako ocenimo nalogo z načinom All-or-nothing grading, torej bomo zahtevali, da so vsi testni primeri rešeni pravilno. Napačnega odgovora ne bomo kaznovali z odbitki in bomo uporabili možnost 'Nearly exact match'.
Ta metoda dopušča, da se študentov rezultat ne ujema popolnoma z rešitvijo. Dovoljeni so razni presledki in prazne vrstice v rešitvi, vse črke pa prebere kot male (glej poglavje 5.1.1). V primeru bomo obenem prikazali, kako se testni primer uporabi kot zgled v navodilih naloge, ki jih vidi študent.
Besedilo naloge: Napiši program, ki izpiše vse pozitivne delitelje podanega celega števila. Program mora delovati tudi za negativna števila, za število 0 pa naj izpiše stavek 'Deliteljev je neskoncno'. Vnos podatkov naj bo v obliki:
input('Vpisi stevilo: ')
Poglejmo, kako to vprašanje sestavimo v CodeRunnerju. V ta namen najprej premislimo, kakšen bo odgovor (pravilen program) in kakšni bi bili smiselni testni programi. V tem primeru bomo pripravili naslednje teste:
Testni primer 1 - Vhodni podatek je število z več delitelji. Zato bomo vzeli število 998, ki ima delitelje 1, 2, 499 in 998. S tem testnim primerom preverimo, če program pravilno deluje za tipični primer. Ta testni primer bomo uporabili tudi kot zgled v navodilih naloge.
Testni primer 2 -Vhodni podatek je negativno število. Če je podatek negativno število (uporabili bomo -10),mora program izpisati delitelje 1, 2, 5 in 10.
Testni primer 3 - Vhodni podatek je praštevilo. Za število 13 mora program izpisati 1 in 13.
Testni primer 4 - Vhodni podatek je število 0. Program mora izpisati sporočilo 'Deliteljev je neskoncno', saj vemo, da lahko število 0 delimo z vsemi števili.
Testni primer 5 - Vhodni podatek je edino pozitivno celo število, ki ima le en delitelj. To je 1.
Testni primer 6 – Tudi pri -1 moramo kot odgovor dobiti le 1.
Pravilen program za to nalogo je na primer tak, kot ga prikazuje Slika 67.
|