domenica 9 novembre 2014

ESER. INFORMATICA - ESERCIZIO 4

ESERCIZIO 4

Si supponga che un dispositivo trasferisca dati ad una velocità di 10 MBIT/sec calcolare il tempo necessario per trasferire il contenuto di un CD di un DVD e di un Blue Ray.

Prima di tutto recupero le capacità dei supporti:

CD-ROM = 700 MByte;
DVD = 4,7 GByte;
Blu-Ray = 25 GByte.

Considerato che : 1 byte = 8 bit -> 10 Mbit/sec = 1,25 Mbyte/sec e che 1 MByte=2^20 e che 1 GByte= 2^30;
non devo far altro che dividere la capacità dei tre supporti per la velocità in Mbyte/sec e quindi;

CD-ROM 700 Mbyte = (700*2^20) / (1,25*2^20) = 560 secondi = 9 minuti e 20 secondi ;

DVD = 4,7 GByte = (4,7*2^30) / (1,25*2^20) = 3,76*2^10= 3850 secondi = 1 ora 4 minuti e 10 secondi;

Blu-ray = 25 GByte = (25*2^30) / (1,25*2^20) = 20*2^10 = 20480 secondi = 5 ore 41 minuti 20 secondi;

Troverò prima i secondi totali e poi passerò al calcolo delle ore, minuti e secondi.

Variabili :

L'esercizio non richiede l'inserimento di un dato dall'utente o la generazione di un numero casuale ma assegna una velocità e una dimensione prestabiliti. Non utilizzerò quindi variabili di input ma solo di lavoro e di output. Userò solo variabili di tipo intero perché i decimali dei secondi non mi servono.

cdrom – di tipo int  (a cui assegno i secondi necessari a riepirlo); variabile di lavoro;
dvd – di tipo int (a cui assegno i secondi necessari a riempirlo); variabile di lavoro;
bluray – di tipo int (a cui assegno i secondi necessari a riempirlo); variabile di lavoro;
mintot – di tipo int (che utlizzo per trovare le ore e i minuti residui); variabile di lavoro;
ore – di tipo int (che utlizzo per la stampa in output delle ore); variabile di output;
minuti – di tipo int (che utilizzo per la stampa in output dei munuti); variabile di output;
secondi – di tipo int (che utlizzo per la stampa in output dei secondi); variabile di output;

Strumenti:

divisione;
moltiplicazione;
modulo;
pow(2,20);

Bozza programma:

int mintot,ore,minuti,secondi,cdrom,dvd,bluray;

cdrom=700 / 1,25;
dvd=(4.7*pow(2,30)) / (1.25*pow(2,20));
bluray=(25*pow(2,30)) / (1.25*pow(2,20));

secondi=cdrom%60;
mintot=cdrom/60;
minuti=mintot%60;
printf("%d minuti : %d secondi ci vogliono per riempire un CD da 700 MByte \n\n", minuti,secondi);

secondi=dvd%60;
mintot=dvd/60;
minuti=mintot%60;
ore=mintot/60;
printf("%d ore : %d minuti : %d secondi ci vogliono per riempire un DVD da 4,7 GByte \n\n", ore,minuti,secondi);
           
secondi=bluray%60;
mintot=bluray/60;
minuti=mintot%60;
ore=mintot/60;
printf("%d ore : %d minuti : %d secondi ci vogliono per riempire un Bluray da 25 GByte \n\n", ore,minuti,secondi);


Codifica in Linguaggio C:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()

{
            int mintot,ore,minuti,secondi,cdrom,dvd,bluray;
                                                          
            //qui faccio le operazioni e trovo i secondi totali necessari a riempire i supporti
            cdrom=700/1.25;
            dvd=(4.7*pow(2,30))/(1.25*pow(2,20));
            bluray=(25*pow(2,30))/(1.25*pow(2,20));
           
            printf("Alla velocita' di trasferimento di 10Mbit/sec ci vogliono : \n\n");
           
            // qui faccio la procedura per calcolare il tempo del CDrom         in minuti e secondi
            secondi=cdrom%60;
            mintot=cdrom/60;
            minuti=mintot%60;
           
            printf("%d minuti : %d secondi per riempire un CD da 700 MByte \n\n", minuti,secondi);
           
            // qui faccio la procedura per calcolare il tempo del DVD in ore,minuti e secondi
            secondi=dvd%60;
            mintot=dvd/60;
            minuti=mintot%60;
            ore=mintot/60;
            printf("%d ore : %d minuti : %d secondi per riempire un DVD da 4,7 GByte \n\n", ore,minuti,secondi);
           
            // qui faccio la procedura per calcolare il tempo del Bluray in ore,minuti e secondi
            secondi=bluray%60;
            mintot=bluray/60;
            minuti=mintot%60;
            ore=mintot/60;
            printf("%d ore : %d minuti : %d secondi per riempire un Bluray da 25 GByte \n\n", ore,minuti,secondi);
            return 0;        
                       

}


Diagramma di Flusso (Algobuild):






































Nessun commento:

Posta un commento