Gli errori di massa nelle vostre soluzioni relative a Homework 1

Dato che nel primo Homework c'erano un paio di cose errate che le avevate fatto in massa, ritengo importante farvele sapere, in modo che evitiate di farle di nuovo.

Per quanto riguarda TUTTI gli esercizi che prendevano un input del tipo:

<valore di n>

E stampavano in output:

n = <valore di n>
<risultato di output specifico all'esercizo>

In massa avevate fatto una cosa del tipo:

printf("n = ");
scanf("%d",&n);
........
printf(<risultato di output specifico all'esercizio>);
return bla bla bla

Ora, e' vero che a voi sulla schermata, nel momento dell'esecuzione del programma vi appariva:

n = <valore di n>
<risultato di output specifico all'esercizo>

Pero' questo NON e' l'output del programma.

L'output del programma e' cio' che il programma da' in output: quindi, in questo caso, tutto cio' che veniva stampato tramite printf.

Il fatto che il valore (preso con scanf) vi appariva sulla schermata, NON lo fa' diventare parte dell'output.

Insomma, nel vostro caso, l'output del programma (quello vero) era:

n = <risultato di output specifico all'esercizio>
il che e' TOTALMENTE DIVERSO da quello richiesto, ossia:
n = <valore di n>
<risultato di output specifico all'esercizio>
Ecco perche' tanti di voi, pur avendo risolto l'esercizio in modo giusto, avevano avuto risultato errato come esito di correzione.

Altra cosa: rispettate anche le singole spaziature: Nel caso dell'eserzizio 5 l'output richiesto era del tipo:

x1 = valore
se voi mi scrivete
x1= valore (niente spazio tra' x1 e =)
oppure
x1 =valore (niente spazio tra' = e valore)
oppure
   x1 = valore (in questo caso  ci sono degli spazi prima di x1)
il correttore vi da' esito negativo!!!!!

Quindi, rispettate anche gli eventuali caratteri di spaziatura nell'output!!!

Ultima cosa:

Nel caso degli esercizi di fibonacci e fattoriale, tutti (o quasi) avevate usati degli int (oppure dei long int, che nella maggior parte delle macchine sono uguali).

Il problema qua' e' che i termini di queste due sequenze crescono molto in fretta.

Nessuno di voi aveva previsto questo.

Un int (ma anche un long int), nella massa dei calcolatori, e' lungo 4 byte, ossia 32 bit. Ma, il massimo numero positivo (analogamente minimo numero negativo) che puo' essere rappresentato con un int e' 2^31 - 1 (analogamente -2^31 + 1). Questo perche' il bit piu' significativo e' conservato per il segno del numero.

Se voi aveste usato unsigned int invece di int non avreste avuto dei problemi: questo perche' un unsigned int pur essendo sempre lungo 4 byte, non ha segno. Quindi, tutti i bit (anche quello piu' significativo) viene usato per rappresentare in binario un numero intero: il massimo intero (solo positivo stavolta) rappresentabile tramite un unsigned int e' 2^32 - 1. Io infatti la prima volta avevo fatto la prova con degli input in modo tale che i rispettivi risultati superassero 2^31 - 1: giusto per vedere se lo avevate previsto o meno.

Dato che nessuno di voi aveva previsto questo, ho deciso di fare la prova con un numero il cui risultato rientrasse tra' 0 e 2^31 - 1. Giusto per questa volta pero' (trattandosi del primo homework) ma non ve lo faccio piu' questo favore.

Ecco perche' nella nuova tabella dei risultati, in massa avete ottenuto risultati positivi alla correzione (relativi a questi esercizi, ovvio).

Comunque, la prossima volta, fate piu' prove ai vostri programmi, non fermativi ad un paio di prove.

Ultima cosa, ovviamente comandi del tipo:

printf ("Dammi un numero intero\n")
oppure
printf ("Il fattoriale del numero n e':")
o altri di questo tipo, sono OVVIAMENTE considerati degli errori dal correttore automatico in quanto NON rispettano le specifiche di input/otuput richieste.

Bene, detto tutto cio', spero che ora siate piu' chiari riguardo all' input/output.

Comunque, se avete ancora dei dubbi, scrivetemi!!!! E' sempre meglio spendere un paio di minuti a scrivere una mail invece di rimanere scontenti dopo le correzioni!! Giusto??!! yes thumbs up

-- JulindaStefa - 31 Oct 2007


This topic: Programmazione1 > WebHome > Prog1PZ > HomeworksPZ0708 > Commenti2PZ0708
Topic revision: r1 - 2007-10-31 - JulindaStefa
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback