mercoledì 19 novembre 2014

Es. Calcola fattoriale

Esercizio:
Calcolare fattoriale di un numero dato da tastiera


ANALISI
Variabili n = Input - conterrà il numero inserito dall'utente
nc = Output - conterrà il fattoriale di n
i = Lavoro - indice per ciclo for, e decremento per n in modo da ottenere:
 n * (n-1) * (n-2) * (...) * 1

Costrutti
  •  Sequenza
  •  Iterazione
Bozza
nc=1
input(n)  //supponiamo che inserisco 4
for(i=0;i<n;i++){
 nc= nc*(n-i)  //nc= 1*(4-0) =4  *(4-1)=12  *(4-2)=24  *(4-3)= 24


mercoledì 12 novembre 2014

Esercitazione 2 - Le stringhe



Controlli stringhe utilizzati:

  • strlen( stringa ) Restituisce valore int corrispondente al numero di caratteri occupati della stringa,escluso carattere di fine stringa
  • strcpy( stringa1 , stringa2 ):Copia la stringa 2 nella stringa 1
  • strcmp( stringa1 , stringa2 ):Comparare il codice ASCII corrispondente ai caratteri delle stringhe e dice quale stringa viene prima in ordine alfabetico.
    Restituisce -1 se stringa 1 viene prima di stringa 2
    Restituisce 0 se le due stringhe sono uguali
    Restituisce 1 se la stringa 2 viene prima della stringa 1.

    Per non confonderci possiamo leggere i controlli così:
    Stringa 1 < Stringa 2 : Stringa 1 precede Stringa 2
    Stringa 1 > Stringa 2 : Stringa 1 segue Stringa 2


lunedì 10 novembre 2014

Es 5.

Esercizio 5
Si supponga che 3 dispositivi trasferiscano dati rispettivamente ad una velocità di
 6 Gbit/sec  ,   3 Gbit/sec  ,   1,5 Gbit/sec  

  • Calcolare per ciascun dispositivo il tempo necessario per eseguire  il BackUp di un HD da 500 GByte 
  • Calcolare per ciascun dispositivo il tempo necessario per eseguire  il BackUp di un HD da 1 TByte 



ANALISI
Variabili v1 = Lavoro - float -  Velocità 1 6gbit/sec
v2 = Output  - Lavoro -  float - Velocità 2  3gbit/sec 1.5gbit/sec
i = Lavoro - int - indice per ciclo while relativo a dispositivi
i2 = Lavoro - int - indice per ciclo while relativo alle velocità
hd1 =  Output - float - indica la capacità del primo hd
hd2 = Output - float - Hd1*2 indice la capacità dell secondo hd
resto = Lavoro - int - per la trasformazione di sec in ore minuti e secondi
sec = Output - int - indica i secondi
min = Output - int - indica i minuti
ore = Output - int - indica le ore

Costrutti
  •  Sequenza
  •  Iterazione
  •  Selezione
Bozza 
mentre(i>=0 && i<2)ripeti //ciclo hd1 hd2 ,  si ripete per 2 volte
      se(i==0)allora
          output(hard disk0 , capacità 0)
      altrimenti
          output(hard disk1, capacità 1)
      fine se
      i2 = 0 //in modo da far ripetere il ciclo per ore min sec anche la seconda volta
     mentre(i2>=0 && i2<3)ripeti //ciclo ore:min:sec , entra con 0 esce con i2=3
           v2=v1/(pow(2,i2)) //6/1=6...6/2=3...6/4=1.5
           output(velocità di trasferimento v2)
           se(i==0)allora //quindi lavoriamo sull hd0
               sec = hd1/v2
           altrimenti //quindi lavoriamo sull hd1
               sec = hd2/v2
           fine se
           //algoritmo che trasforma sec tot in ore min sec
           ore=sec/3600
           resto=sec%3600;
   min= resto/60 ; //minuti
   sec=resto%60;
           output(tempo trasferimento in h:m:s)
           i2++
     fine mentre //fine ciclo ore min sec
     i++
fine mentre //fine ciclo hd0 hd1





Esercizio 5 con matrice
Esercitazioni,Wihile,Ciclo pre-condizionato,Ciclo post-condizionato,Selezione-if,Gioco-dadi,Srand,RandEsercitazioni,Wihile,Ciclo pre-condizionato,Ciclo post-condizionato,Selezione-if,Gioco-dadi,Srand,Rand

Esercitazioni,Wihile,Ciclo pre-condizionato,Ciclo post-condizionato,Selezione-if,Gioco-dadi,Srand,Rand,matrici,

Gioco dadi v1 Extra: corso c forumfree corso c forumfree linguaggio c sdr corso c medicina sapienza corso c noi del corso c quelli del corso c corso di programmazione c linguaggio c guida alla programmazione programmi in c sulle matrici gestione matrici c matrici in c potreste aiutarmi prodotto di due matrici in c programma c c variabili uso di malloc c c puntatori


domenica 9 novembre 2014

Es 4.

Esercizio 4
Calcolare il tempo necessario per trasferire il contenuto di un:
  1. CD 700MB
  2. DVD 4.7 GB 8.5 (dual layer)
  3. Blue Ray 23.3; 25 ; 27 GB
supponendo che la velocità di trasferimento è di 10Mbit/sec.

ANALISI
Variabili tmp = Lavoro - Globale
t[3] = Output :ore; min; sec - Globale
i = Lavoro - Globale
vt = Costante - globale
dvd[5] = Costante:capacità DVD; DVD-DL; Blue Ray(23.3;25;27 GB) - Globale
cd = Costante: capacità CD - Locale
resto = Lavoro - Locale

Costrutti
  •  Sequenza
  •  Iterazione
  •  Selezione multipla (costrutto derivato)
Altri strumenti
  •  Procedure
  •  Vettori
Bozza
main(){
//Inizializzazione variabili e array
cd=700 //MB
dvd[i]=capacità rispettive //GB
//assegnazioni
vt = vt/8 //da Mbit/sec a MByte/sec
tmp=cd/vt; //tempo = capacità/velocità di trasferimento
calcolaore() //richiamo procedura calcolaore
Output(dettagli trasferimento cd)
Mentre(i>=0 && i<= 4) Ripeti //entra con i=4 esce con i=-1
      dvd[i]= dvd[i] * 1024 //trasformo GB in MB
      tmp = dvd[i] /vt //calcola tempo in secondi per il trasferimento
      calcolaore() //richiamo procedura che trasforma tempo di trasf. in ore minuti e secondi.
      stampa() //richiamo proced. che stampa i dettagli di trasferimento dvd[i]
      i-- //decremento indice per ciclo while e vettore dvd[i]
 Fine mentre
}
//Procedure 
Stampa(){
   switch(i)  // indica che stiamo esaminado la variabile i
      case 4:  // nel caso in cui il valore della variabile i è 4 allora
          output(dettagli trasferimento dvd[4])
      case ...:  // 3 - 2 - 1
          output(dettagli trasferimento dvd[...])
      case 0:  // nel caso in cui il valore della variabile i è 0 allora
          output(dettagli trasferimento dvd[0])
}
Calcolaore(){
   t[0] = tmp/3600  //calcolo le ore
   resto = tmp%3600 //resto delle ore
   t[1] = resto/60  //calcolo minuti
   t[2] = resto %60 //calcolo secondi
}


giovedì 6 novembre 2014

Es 3.

Esercizio 3
Se la velocità di trasferimento di un dispositivo è di 1 Gbit/sec trasformarla in:
  1. KByete/min
  2. GByte/ora
  3. Gbit/ora
  4. GByte/min
  5. Gbit/min

ANALISI
Variabili Costrutti Bozza
 Gbps = constante
 Gbpm = output
 Gbph = output
 GBpm = output
 GBph = output
 Kbpm = output
 - Sequenza  Gbps = 1
 Gbpm=Gbps *60
 Gbph=Gbpm*60
 GBpm=Gbpm/8
 GBph=GBpm*60
 KBpm=GBpm*10242
 output(Gbpm,Gbph,GBpm,GBph,Kbpm




mercoledì 5 novembre 2014

Es 2.

Esercizio 2
Assegnata la Velocità di una autovettura 180 Km/Ora trasformarla in:

  1. metri al secondo
  2. metri al minuto
  3. Kilometri al minuto
  4. Kilometri al secondo

ANALISI
Variabili Costrutti Bozza
 vkmh = costante
 vkms = Output
 vkmm = Output
 vms = Output
 vmm = Output

 - Sequenza  vkmh = 180               // km/h
 vkms = vkmh/3600    // km/s 
 vkmm = vkms *60     // km/m
 vms = vkms * 1000   // m/s
 vmm = vms * 60       // m/m
 output(vkms,vkmm,vms,vmm



martedì 4 novembre 2014

Es 1.

Esercizio 1
Assegnato il seguente numero di secondi 15678. Calcolare

  1.  Il numero di ore
  2.  Il numero di minuti
  3.  Il numero di secondi residui


ANALISI
Variabili Costrutti Bozza
 sec = Costante
 ore = Output
 minuti = Output
 resto = Lavoro/Output
 - Sequenza  sec=15678
 ore= sec / 3600
 resto= sec % 3600
 minuti= resto / 60
 resto= resto % 60 //secondi
 output(ore,minuti,resto