• Source
    1. /*ANALISI SU -> http://appunti-informatica-lampo.blogspot.it/2014/11/es-4.html*/
    2. #include<stdlib.h>
    3. #include<stdio.h>
    4. int calcolaore();//procedura che trasforma i secondi in ore minuti secondi
    5. float stampa(); //procedura per creare la stringa giusta da stampare per ogni dvd
    6.  
    7. int t[3]; //array 3 celle da 0 a 2 per contenere rispetivamente ore minuti e secondi
    8. int tmp; //tempo di trasferimento in secondi
    9. int i=4; //indice per array dvd
    10. float vt=10; //velocità di trasferimento in Mbit /sec
    11. float dvd[5]; //array 5 celle da 0 a 4 per contenere le capacità deri vari tipi di dvd
    12.  
    13. int main(){
    14. // dichiarazionee inizializzazione Variabili locali
    15. float cd=700; // cd MB
    16. //assegnazione-inizializzazione valore capacità di array dvd[5]
    17. dvd[0]=4.7;//dvd GB
    18. dvd[1]=8.5;//dvd-Dua-Layers GB
    19. dvd[2]=23.3;//BD1 GB
    20. dvd[3]=25;//BD2 GB
    21. dvd[4]=27;//BD3 GB
    22. vt=vt/8; // Mbit/sec in MByte/sec
    23. tmp= cd/vt;//tempo di trasferimento di un cd
    24. calcolaore(); //trasformo i secondi in ore minuti e secondi
    25. printf("CD \n Capacita': %.0f MByte \n Velocita' di trasferimento: %.2f MByte/sec \n Tempo previsto per il trasferimento:%d ore %d minuti %d secondi\n",cd,vt,t[0],t[1],t[2]);
    26. while(i>=0&&i<=4){ // il ciclo entra con i=4 ed esce con i=-1
    27. dvd[i]= dvd[i]*1024; //trasformo la capacità del suporto da GB a MB
    28. tmp= dvd[i]/vt; //Calcolo il tempo di trasferimento in secondi
    29. calcolaore(); //trasformo i secondi in ore minuti e secondi
    30. stampa(); //stampo dettagli di trasferimento del supporto dvd[i]
    31. i--; // decrementa indice globale per iterazione e dvd[i]
    32. }
    33. system("pause");
    34. return 0;
    35. }
    36. float stampa(void){
    37. switch (i){
    38. case 4: //se i valo 4 allora
    39. printf("\nBlue Ray 1 \n Capacita': %.0f MByte \n Velocita' di trasferimento: %.2f MByte/sec \n Tempo previsto per il trasferimento:%d ore %d minuti %d secondi\n",dvd[4],vt,t[0],t[1],t[2]);
    40. break;
    41. case 3: //se i vale 3 allora
    42. printf("\nBlue Ray 2 \n Capacita': %.0f MByte \n Velocita' di trasferimento: %.2f MByte/sec \n Tempo previsto per il trasferimento:%d ore %d minuti %d secondi\n",dvd[3],vt,t[0],t[1],t[2]);
    43. break;
    44. case 2: //se i vale 2 allora
    45. printf("\nBlue Ray 3 \n Capacita': %.0f MByte \n Velocita' di trasferimento: %.2f MByte/sec \n Tempo previsto per il trasferimento:%d ore %d minuti %d secondi\n",dvd[2],vt,t[0],t[1],t[2]);
    46. break;
    47. case 1: //se i vale 1 allora
    48. printf("\nDVD Dual-Layer \n Capacita': %.0f MByte \n Velocita' di trasferimento: %.2f MByte/sec \n Tempo previsto per il trasferimento:%d ore %d minuti %d secondi\n",dvd[1],vt,t[0],t[1],t[2]);
    49. break;
    50. case 0: //se i vale 0 allora
    51. printf("\nDVD \n Capacita': %.0f MByte \n Velocita' di trasferimento: %.2f MByte/sec \n Tempo previsto per il trasferimento:%d ore %d minuti %d secondi\n",dvd[0],vt,t[0],t[1],t[2]);
    52. break;
    53. }
    54. }
    55. int calcolaore(void ){
    56. int resto;
    57. t[0]=tmp/3600; //calcolo le ore
    58. resto=tmp%3600; //resto delle ore
    59. t[1]=resto/60; //il resto della divisione per trovare le ore diviso 60 sec per trovare i minuto
    60. t[2]= resto%60; // secondi
    61. }