---+++ Primo Homework Si implementi in assembler MIPS il programma che calcola e stampa un istogramma, ovvero: * legge 40 numeri interi compresi tra 0 e 799 (inclusi) e li memorizza in un vettore *dati* allocato staticamente * suddivide l'intervallo tra 0 e 799 in 8 parti uguali (da 0 a 99, da 100 a 199, .... da 700 a 799) * calcola quante volte i valori dei dati appaiono in ciascun intervallo * stampa in orizzontale l'istogramma dei conteggi ottenuti, ovvero stampa 8 righe nel formato <verbatim> X<spazio><X asterischi> </verbatim> (con X che è il conteggio dei valori letti nell'intervallo corrispondente) Esempio: se l'input è quello del file * [[%ATTACHURL%/dati.txt][dati.txt]]: dati usati nell'esempio <verbatim> 780 2 136 295 26 620 419 108 715 663 650 349 373 535 679 9 383 425 424 421 623 164 408 147 98 89 421 741 35 367 321 223 178 497 317 159 631 799 23 234 </verbatim> L'output sarà: <verbatim> 7 ******* 6 ****** 3 *** 6 ****** 7 ******* 1 * 6 ****** 4 **** </verbatim> Come lanciare il programma (salvato nel file *mioprogramma.asm* ): <verbatim> java -jar Mars4_4.jar sm nc mioprogramma.asm < dati.txt </verbatim> Ci vediamo lunedì in aula per qualsiasi chiarimento. ---+++ Consegna entro le ore 24 di lunedì 7 aprile * Dovete essere [[TWiki.TWikiRegistration][registrati a twiki]] * Usate la [[/~andrea/consegna-HW-2014.html][pagina di consegna]] per caricare su twiki il file mioprogramma.asm da voi realizzato * i compiti copiati verranno annullati ---+++ Considerazioni aggiuntive Ripensandoci, (non vi chiedo di farlo) ma i dati potrebbero non essere memorizzati ma processati mentre vengono letti, ed addirittura gli 8 contatori potrebbero essere tenuti in 8 registri, oppure impacchettati in 8 byte, ovvero 2 registri.... dopo tutto non è un esercizio troppo difficile :-D ---+++ Risultati Ho testato i vostri programmi su 10 file generati a caso, ecco i risultati: * [[%ATTACHURL%/index.html][index.html]]: Risultati dei test su 10 set di dati generati a caso * un paio di voi avevano inserito dei messaggi di prompt che ho dovuto ignorare (la prossima volta niente prompt, plis) * l'errore più comune è stato leggere/elaborare solo 39 dati invece che 40 * un paio di programmi si bloccano o stampano un numero infinito di asterischi * io ho implementato l'esercizio [[%ATTACHURL%/AndreaSterbini.asm][così]] * *il punteggio ottenuto per questo homework è PASSED/10* ---+++ Corrispondenze Ho notato una certa somiglianza tra alcuni programmi, queste sono le corrispondenze più evidenti: <object data="%ATTACHURL%/amici.svg"> [[%ATTACHURL%/amici.svg]] </object> Per questi compiti il punteggio di questo homework dovrebbe essere 0, ma alcuni di voi mi dicono di non aver assolutamente copiato. Quello che posso fare è una via di mezzo tra quello che sarebbe giusto (credere nella vostra buona fede) e quello che sarebbe "sicuro" (credere solo ai dati e diffidare di voi), ovvero assegnare il valore del compito svolto a entrambi ovvero suddividere il punteggio tra i partecipanti ad un gruppo di compiti simili. Quindi: * chi appare in un gruppo di *N* persone prende come voto *(10/PASSED)/N* -- Users.AndreaSterbini - 29 Mar 2014 <!-- * Set ALLOWTOPICCCHANGE = Users.AndreaSterbini -->
This topic: Architetture2/MZ/AA13_14
>
HomeWork1
Topic revision: r10 - 2014-05-06 - AndreaSterbini
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback