Prof. Claudio Sartori

Informatica


Torna a Claudio Sartori

Informativa Privacy

Esempi svolti a lezione

  1. Massimo di una sequenza
    • memoria: una variabile per l'elemento corrente da input e una per il massimo corrente
    • programma sorgente

  2. Fattoriale
  3. Calcolo delle frequenze delle modalità di un carattere
    • acquisisce valori da input
    • utilizza un array di strutture
    • utilizza funzioni
    • programma sorgente

  4. Calcolo delle frequenze relative e cumulate
    • versione con utilizzo minimo di memoria
    • esegue due accessi al file
      • la prima volta determina la somma delle frequenze
      • la seconda volta calcola frequenze relative e cumulate
    • programma sorgente

  5. Generazione di numeri pseudo-casuali
    • simulazione del lancio di un dado ideale e di un dado truccato
      • il caso del dado ideale è ottenuto come segue:
        1. si genera un numero random fra 0 e RAND_MAX
        2. si trasforma il numero generato in un numero fra 0 e 1, con una divisione per RAND_MAX
        3. si trasforma in un numero fra 1 e 6 con l'ovvia trasformazione lineare
      • il caso del dado truccato è ottenuto come segue
        1. si predispone un array con le probabilità cumulate dei 6 risultati in ordine
        2. si genera un numero fra 0 e 1
        3. si determina la posizione della prima probabilità cumulata superiore al numero generato: quello è il valore del lancio
    • programma sorgente

  6. Generazione di un istogramma a barre orizzontali, a partire da un array di coppie <etichetta,valore>
    • riceve un array di coppie <label intera, valore> e produce un istogramma a barre orizzontali,
      tracciando segni in modalità carattere;
    • viene tracciato in un'area di ampiezza DIM_ORIZZ caratteri: per il valore minimo viene tracciato un segno, per il massimo un numero di segni tale da occupare tutto lo spazio
    • calcola i valori minimo e massimo, la loro differenza e' l'intervallo su cui distribuire i segni
    • calcola il valore di ogni segno, dividendo il numero di segni disponibili per la differenza sopra calcolata
    • ripeti per ogni coppia
      • visualizza l'etichetta
      • ripeti un numero di volte proporzionale al valore
        • scrive un segno
      • va a capo
      input
      output
      1 10
      2 20
      3 30
      4 40
      5 50
      6 60
      7 45
      8 35
      9 15
      10 5
      Etichetta  5.00      ----------     60.00
               1 ***
               2 *********
               3 **************
               4 *******************
               5 *************************
               6 ******************************
               7 **********************
               8 *****************
               9 ******
              10 *
      
    • programma sorgente

  7. Calcolo dei quantili
    • procedura che riceve in input un array di n coppie <label intera, valore> e l'indicazione del numero di quantili in cui classificarle; restituisce un array che per ogni coppia contiene l'individuazione del quantile relativo; l'array deve essere ordinato secondo l'ordinamento richiesto per i quantili
    input
    output
    1 10
    2 20
    3 30
    4 40
    5 50
    6 60
    7 45
    8 35
    9 15
    10 5
     etichetta  frequenza  freq.rel.   quantile
            1      10.00       0.03          1 
            2      20.00       0.10          1 
            3      30.00       0.19          2 
            4      40.00       0.32          4 
            5      50.00       0.48          5 
            6      60.00       0.68          7 
            7      45.00       0.82          9 
            8      35.00       0.94         10 
            9      15.00       0.98         10 
           10       5.00       1.00         10 						

  8. Campionamento di record da un file
      • programma di generazione di un file da cui campionare
        • normalmente i dati sono forniti dall'esterno, in questo caso, a titolo di prova, si genera un file a caso costituito da N numeri interi presi dall'intervallo [Min,Max]
        • sorgenti: genera.c, random.c, random.h (aggiungere random.c al progetto)
      • programma di campionamento, versione 1
        • carica il campione su un array
        • versione "con reimbussolamento", ovvero può capitare che un record sia preso piu' volte
        • il caricamento del campione su array è giustificato soltanto se:
          1. il campione che si vuole estrarre non e' troppo grande
          2. l'elaborazione che si intende svolgere sul campione richiede più accessi a ogni dato del campione
        • sorgenti: campiona.c, random.c, random.h
      • programma di campionamento, versione 2
        • senza reimbussolamento, si tiene traccia dei record già estratti

Per qualsiasi problema su questa pagina contattare il webmaster.