/*ANALISI SU -> http://appunti-informatica-lampo.blogspot.it/2014/11/es-4.html*/
#include<stdlib.h>
#include<stdio.h>
int calcolaore();//procedura che trasforma i secondi in ore minuti secondi
float stampa(); //procedura per creare la stringa giusta da stampare per ogni dvd
int t[3]; //array 3 celle da 0 a 2 per contenere rispetivamente ore minuti e secondi
int tmp; //tempo di trasferimento in secondi
int i=4; //indice per array dvd
float vt=10; //velocità di trasferimento in Mbit /sec
float dvd[5]; //array 5 celle da 0 a 4 per contenere le capacità deri vari tipi di dvd
int main(){
// dichiarazionee inizializzazione Variabili locali
float cd=700; // cd MB
//assegnazione-inizializzazione valore capacità di array dvd[5]
dvd[0]=4.7;//dvd GB
dvd[1]=8.5;//dvd-Dua-Layers GB
dvd[2]=23.3;//BD1 GB
dvd[3]=25;//BD2 GB
dvd[4]=27;//BD3 GB
vt=vt/8; // Mbit/sec in MByte/sec
tmp= cd/vt;//tempo di trasferimento di un cd
calcolaore(); //trasformo i secondi in ore minuti e secondi
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]); while(i>=0&&i<=4){ // il ciclo entra con i=4 ed esce con i=-1
dvd[i]= dvd[i]*1024; //trasformo la capacità del suporto da GB a MB
tmp= dvd[i]/vt; //Calcolo il tempo di trasferimento in secondi
calcolaore(); //trasformo i secondi in ore minuti e secondi
stampa(); //stampo dettagli di trasferimento del supporto dvd[i]
i--; // decrementa indice globale per iterazione e dvd[i]
}
return 0;
}
float stampa(void){
switch (i){
case 4: //se i valo 4 allora
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]); break;
case 3: //se i vale 3 allora
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]); break;
case 2: //se i vale 2 allora
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]); break;
case 1: //se i vale 1 allora
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]); break;
case 0: //se i vale 0 allora
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]); break;
}
}
int calcolaore(void ){
int resto;
t[0]=tmp/3600; //calcolo le ore
resto=tmp%3600; //resto delle ore
t[1]=resto/60; //il resto della divisione per trovare le ore diviso 60 sec per trovare i minuto
t[2]= resto%60; // secondi
}