SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Abilità Informatiche
 Ingegneria Chimica

  Lezione 14/03/2012




Prof. Antonino Stelitano
Docente        Antonino Stelitano     antonino.stelitano@uniroma1.it
                                      stelitano.a@libero.it

Tutor          Da definire            …

Lezioni        Lunedì                 14:00 – 17:30 aula 16
                                      Lab. Paolo Ercoli

               Mercoledì              15:45 – 19:00  aula 5
                                      Viale Castro Laurenziano
Ricevimento:   Per appuntamento


Sito web:      http://w3.uniroma1.it/IngChim/AInf
Operatori logici

• NOT: restituisce 1 quando l’input vale 0 e viceversa
   – unico operatore unario
• AND: restituisce 1 solo se tutti gli ingressi valgono 1
• OR: restituisce 1 quando esiste almeno un ingresso che vale 1

• Priorità: NOT-> AND --> OR
Operatore       Risultato
AND         && P         Q   P&&Q
                  0      0     0
                  0      1     0
                  1      0     0
                  1      1     1
OR           ||   P      Q   P || Q
                  0      0     0
                  0      1     1
                  1      0     1
                  1      1     1
NOT          !      P         !
                    0         1
                    1         0
Condizione                      Espressione logica
x e y maggiori di z        (x>z) && (y>z)
x uguale a 1.0 o a 3.0     (x==1.0) || (x==3.0)
x è compreso tra z e y,    (z<=x) && (x<= y)
compresi gli estremi
x è fuori dal range da z   ! (z<=x && x<= y)
ay                         z>x || x>y


              z


                                      y
Priorità
Operatore   Associatività
()          da sinistra a destra
!           da destra a sinistra
* / %       da sinistra a destra
- +         da sinistra a destra
< <= > >=   da sinistra a destra
== !=       da sinistra a destra
&&          da sinistra a destra
||          da sinistra a destra
=           da destra a sinistra
Quiz
Con i seguenti valori
   int j=0, m=1, n= -1;
   float x=2.5, y=0.0;
Riempire la seguente tabella

 j<m && n<m
 m +n || !j
 x*5 && 5 || m/n
 !x || !n || m+n

 (j || m) + (x || n+1)
int j=0, m=1, n= -1;
float x=2.5, y=0.0;
 j<m && n<m                1
 (j<m) && (n<m)
 m +n || !j                1
 (m +n) || (!j)
 x*5 && 5 || m/n           1
 ((x*5) && 5) || (m/n)
 !x || !n || m+n           0

 ((!x) || (!n)) || (m+n)

 (j || m) + (x || n+1)     2

 (j || m) + (x || (n+1))
If equivalenti
if (a<b)&& (b<c)                 if (a<b)
     <istruzione>;
                                     if (b<c)
                                       <istruzione>;



 if (a<b)&& (b<c)                 if (a<b)
        <istruzione1>;      NO            if (b<c)
 else <istruzione2>;                             <istruzione1>;
                                     else <istruzione2>;
                     SI

                      if (a<b)
                       if (b<c)
                      <istruzione1>;
                   else<istruzione2>;
                else <istruzione2>;
Problema: Inserire una sequenza di 12 voti (tra 0 e 30) riportati da
uno studente. Stampare il massimo e il minimo dei voti riportati (no
memorizzarli)

Analisi dei dati: tre variabili di tipo int
       - minimo (min)
       - massimo (max)
       - voto corrente (voto)

Algoritmo:
      •inizializzo min e max
      •per ogni voto letto
          •se min è maggiore di voto, allora   min = voto
          •se max è minore di voto, allora     max = voto
           Problema:
           Come inizializzo min e max?
Come inizializzo min e max ?
                        NO
•   min=0, max=0???     NO
•   min=0, max=30 ??    NI
•   min=30, max=0 ??
                                  SI
•   min=max=primo voto letto??

• Con min = 30 e max = 0 realizzo un algoritmo che
  va bene solo per i voti universitari
• Con min = max = primo voto letto risparmiamo due
  confronti e un’assegnazione
Quiz :: provate ad implementare la
             soluzione
#include<stdio.h>
int main (void)
{
           int min, max, voto, i;

           printf("inserisci il primo numero voton");
           scanf("%d", &max);

           min=max;

           for (i=0; i<=10; i=i+1)
            {
              printf("inserisci un altro voton");
              scanf("%d", &voto);
               if (min>voto)
                      min=voto;
               if (max<voto)
                      max= voto;
           }

           printf("Voto minimo: %dn", min);
           printf("Voto max: %dn", max);

           return 0;
}
Struttura di un calcolatore

• Architettura di Von Neumann
  – Unità I/O
  – Memoria
  – CPU
• Linguaggio assemblativo
• Struttura della memoria
• Dispense di riferimento
  – Architettura del calcolatore e rappresentazione
    dell'informazione (Daniela D'Aloisi)
Il calcolatore elettronico

Un calcolatore elettronico e’ un sistema elettronico digitale
programmabile
Sistema: composto da parti interagenti
Elettronico: le funzioni fondamentali sono realizzate
mediante componenti elettronici
Digitale: lavora su grandezze discrete
Programmabile: le operazioni svolte dal sistema sono
regolate da un programma (che può essere cambiato)



                                                           17
Elaborazione al calcolatore

Un calcolatore elettronico:
• Acquisisce i dati di input
• Elabora i dati di input in base ad un programma
• Restituisce i dati di output



  Informazioni           Calcolatore
       da                                     Risultati
   elaborare                  +
                                             (OUTPUT)
    (INPUT)              Programma




                                                          18
Hardware e Software

• Hardware: componenti fisiche del computer
  (processore, memoria, monitor, dischi, ecc.)

• Software: vari tipi di informazione presenti nel
  computer (programmi, dati da elaborare, dati
  memorizzati)




                                                     19
Rappresentazione dell’informazione
• Per costruzione, il funzionamento logico di un calcolatore
  elettronico è regolato da grandezze binarie (possono assumere
  solo due stati significativi)
• Un bit (binary digit), i cui valori possibili sono 0 e 1 (per
  convenzione), può rappresentare due valori distinti di una
  qualsiasi grandezza
• Un insieme di N bit può rappresentare 2^N valori distinti di una
  qualsiasi grandezza
• La rappresentazione di un’informazione mediante insiemi di bit
  si basa sulle seguenti tecniche:
   – discretizzazione di un insieme di valori continui
   – riduzione della dimensione di un insieme di valori discreti
   – codifica di un insieme finito di valori

                                                               20
Informazioni rappresentabili
• E’ necessario assumere che le grandezze da rappresentare
  formino un insieme finito di valori (numero di bit a
  disposizione è finito)
• Discretizzazione: Un insieme di valori continui (p. es., i numeri
  reali nell’intervallo [-3, 2]) viene trasformato in un insieme di
  valori discreti tramite suddivisione in intervalli
  (rappresentazione a precisione finita)
• Riduzione: Un insieme di valori discreti (p. es., i numeri interi)
  viene ridotto ad un suo sottoinsieme finito
• Codifica: Ad ogni elemento di un insieme finito di valori viene
  univocamente associata una configurazione dell’insieme di bit
  usato

                                                                  21
Esempi di rappresentazioni

• Caratteri
   – Codice ASCII (128 caratteri distinti)
• Numeri Interi
   – 1 bit di segno e 15 bit di modulo (coperto intervallo [-
     32767, 32767])
• Immagini
   – gif, jpeg, tiff, bmp
• Audio
   – mp3
• Video
   – avi
                                                            22
Il calcolatore elettronico: sottosistemi funzionali


• La suddivisione funzionale è basata su un’architettura
  detta di Von Neumann (1947)

• Sono individuabili i seguenti sottosistemi
   – Memoria principale (primaria, centrale)
   – Unità centrale di elaborazione (CPU)
   – Dispositivi di ingresso/uscita (I/O)
   – Canali di comunicazione (bus)


                                                       23
Struttura calcolatore di von Neumann
John von Neumann
           John von Neumann
           (Budapest, 28 .12.1903 –
            Washington, 8.02.1957)
           è stato un matematico e
           informatico statunitense di
           origine ungherese.
           Fu una delle personalità
           scientifiche preminenti del XX
           secolo cui si devono
           fondamentali contributi in campi
           come teoria degli insiemi, analisi
           funzionale, topologia, fisica
           quantistica, economia,
           informatica, teoria dei giochi,
           fluidodinamica e in molti altri
           settori della matematica.
Memoria Principale
         1 byte           • Insieme di celle per memorizzazione dati (data)
                          • In ogni cella si può memorizzare una stringa binaria
                            di dimensione fissa (p.es. 1 byte = 8 bit)
        01010111          • Una cella è individuata da uno specifico indirizzo
                            (address), consistente in una stringa binaria di
                            dimensione fissa (p.es. 2 byte, 2^16 celle)
2^16                      • Operazione di lettura (read): dato contenuto nella
                            cella specificata viene prelevato (indolore)
                          • Operazione di scrittura (write): dato contenuto nella
                            cella specificata assume valore specificato
                          • Tipicamente realizzata con memoria RAM (Random
                            Access Memory):
                             – tempo di accesso indipendente dall’indirizzo
                             – volatile: dati persi in assenza di alimentazione
       dato
              indirizzo

                                                                             26
Interazione CPU-Memoria Principale

                       Indirizzo
                                           Memoria
         CPU
                                           Principale
                    Istruzione/Dato



• Nella memoria principale si possono distinguere due tipi di
  informazioni: istruzioni che la CPU (Central Processing Unit)
  può eseguire e dati di vario tipo
• Le istruzioni eseguibili da una data CPU sono rappresentate
  in uno specifico codice binario


                                                              27
Struttura della CPU

                          Registri
                                                      CU
                           ALU
          CPU


• Essenzialmente, la CPU contiene
   – Unità di controllo CU (Control Unit): Coordina le attività interne alla
     CPU e le connessioni tra la CPU e le unità esterne (Memoria Principale
     e I/O)
   – Unità Logico-Aritmetica ALU (Arithmetic Logic Unit): Esegue
     operazioni logico-aritmetiche
   – Registri: Celle di memoria interne alla CPU usate per dati di vario tipo
     (p. es. operandi per la ALU)


                                                                           28
Esecuzione Istruzioni
                  Registri
                                                            Memoria
                                             CU
                    ALU                                     Principale
   CPU


• Caricamento (fetch): CU preleva dalla memoria principale l’istruzione
  da eseguire
• Decodifica (decode): CU genera i comandi per l’esecuzione
  dell’istruzione e, se necessario, trasferisce i dati richiesti dalla memoria
  principale ai registri dell’unità logico-aritmetica
• Esecuzione (execute): ALU produce i risultati richiesti e questi vengono
  memorizzati nei registri interni (o nella memoria principale)



                                                                          29
Fetch – Execute Cycle
Linguaggi Macchina
• Un’istruzione eseguibile da una CPU è detta istruzione macchina
  (machine istruction)
• Ogni CPU è in grado di eseguire soltanto uno specifico insieme di
  istruzioni macchina (instruction set), ognuna rappresentata secondo
  uno specifico codice binario detto linguaggio macchina (machine
  language)
• Esempi di azioni prodotte da istruzioni macchina:
    – Esecuzione di semplici operazioni logico-aritmetiche
    – Trasferimenti di dati tra la CPU e le unità esterne
    – Modifica del flusso di esecuzione delle istruzioni (normalmente
      sequenziale)
• Un programma in linguaggio macchina è costituito da un insieme
  ordinato di istruzioni macchina che verranno eseguite nell’ordine
  specificato


                                                                        31
Dispositivi I/O (periferiche)
Usati per lo scambio dati con l’esterno
• Esempi di periferiche di input
    – Tastiera, mouse, scanner, microfono, telecamera
• Esempi di periferiche di output
    – Monitor, stampante, casse acustiche
• Memorie di massa
  – Disco rigido (hard disk), dischetti, CD-ROM, pen-drive




                                                             32
Memoria secondaria (di massa)
• Usata per la memorizzazione non volatile di informazioni
  (dati e/o programmi) (periferica di ingresso/uscita)
• Tipicamente, molto più lenta della memoria principale
• 1 B = 1 byte = 8 bit
• 1 KB = 1 kilobyte = 2^10 B
• 1 MB = 1 megabyte = 2^10 KB = 2^20 B
• 1 GB = 1 gigabyte = 2^10 MB = 2^30 B
• Floppy disk (1.44 MB, 720 KB obsoleto)
• Hard disk (10 – 100 GB)
• CD-ROM (670 MB)
• DVD (5 GB)
• Pen-drive USB (64MB – 2GB)
KByte, MByte e GByte
• 1 KB (KiloByte)
   – = 1000 byte? No!
   – 1 KB = 210 Byte = 1024 Byte
   [20 = 1, 21 = 2, 22 = 4, 23 = 8, 24 = 16, 25 = 32,
   26 = 64, 27 = 128, 28 = 256, 29 = 512, 210 = 1024]


• 1 MB (MegaByte)
   – solitamente approssimato a 1 milione di Byte
   – precisamente =1024 KB = 1024 X 1024 Byte =
   = 210 X 210 byte = 220 Byte = 1.048.576 Byte


• 1 GB (GigaByte) = circa 1 miliardo di Byte
   – precisamente =1024 MB = 1024 X 1024 KB = 1024 X 1024 X 1024 Byte =
   = 210 X 210 X 210 Byte = 230 Byte = 1073741824 Byte

Mais conteúdo relacionado

Mais procurados (7)

Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parte
 
Codifica
CodificaCodifica
Codifica
 
Introduzione all’informatica
Introduzione all’informaticaIntroduzione all’informatica
Introduzione all’informatica
 
1 matematica binaria
1 matematica binaria1 matematica binaria
1 matematica binaria
 
Calcolo Numerico - 2 - Rappresentazione Dei Numeri
Calcolo Numerico - 2 - Rappresentazione Dei NumeriCalcolo Numerico - 2 - Rappresentazione Dei Numeri
Calcolo Numerico - 2 - Rappresentazione Dei Numeri
 
Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 
Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 

Destaque

письмо в 1941 й год
письмо в 1941 й годписьмо в 1941 й год
письмо в 1941 й годCadets Chuvashiya
 
Hospice
Hospice Hospice
Hospice ssoeun
 
Rancangan anggaran rumah tangga
Rancangan anggaran rumah tanggaRancangan anggaran rumah tangga
Rancangan anggaran rumah tanggaToto Wirjosoemarto
 
страх.григорьева елизавета
страх.григорьева  елизаветастрах.григорьева  елизавета
страх.григорьева елизаветаCadets Chuvashiya
 
랩실소개(Slideshare 업로드용)
랩실소개(Slideshare 업로드용)랩실소개(Slideshare 업로드용)
랩실소개(Slideshare 업로드용)한샘 서
 

Destaque (7)

письмо в 1941 й год
письмо в 1941 й годписьмо в 1941 й год
письмо в 1941 й год
 
Hospice
Hospice Hospice
Hospice
 
Mayra
MayraMayra
Mayra
 
Pictures of wisdom
Pictures of wisdomPictures of wisdom
Pictures of wisdom
 
Rancangan anggaran rumah tangga
Rancangan anggaran rumah tanggaRancangan anggaran rumah tangga
Rancangan anggaran rumah tangga
 
страх.григорьева елизавета
страх.григорьева  елизаветастрах.григорьева  елизавета
страх.григорьева елизавета
 
랩실소개(Slideshare 업로드용)
랩실소개(Slideshare 업로드용)랩실소개(Slideshare 업로드용)
랩실소개(Slideshare 업로드용)
 

Semelhante a Lezione 9 (14 marzo 2012)

ECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazioneECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazioneFabio Cantaro
 
Ecdl - Modulo 1 - Concetti di base dell'ICT
Ecdl - Modulo 1 - Concetti di base dell'ICTEcdl - Modulo 1 - Concetti di base dell'ICT
Ecdl - Modulo 1 - Concetti di base dell'ICTNino Lopez
 
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di AnalisiAlgoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di AnalisiPier Luca Lanzi
 
Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)Luca Santoro
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)STELITANO
 
Python@Unina - Exercises
Python@Unina - ExercisesPython@Unina - Exercises
Python@Unina - ExercisesNaLUG
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingdanielenicassio
 
Complessita computazionalee
Complessita computazionaleeComplessita computazionalee
Complessita computazionaleeSimoneAielli1
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)STELITANO
 
Concetti di base della Tecnologia dell'informazione
Concetti di base della Tecnologia dell'informazioneConcetti di base della Tecnologia dell'informazione
Concetti di base della Tecnologia dell'informazioneAndrea Silipo
 
Sistema Binario E Codice Informatico
Sistema Binario E Codice InformaticoSistema Binario E Codice Informatico
Sistema Binario E Codice Informaticovapiegold
 
Complessita' computazionale
Complessita' computazionaleComplessita' computazionale
Complessita' computazionaleSaraDiLuzio2
 
06 1 array_stringhe_typedef
06 1 array_stringhe_typedef06 1 array_stringhe_typedef
06 1 array_stringhe_typedefPiero Fraternali
 
Simulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLABSimulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLABAlessioSechi
 

Semelhante a Lezione 9 (14 marzo 2012) (20)

Reti Logic
Reti LogicReti Logic
Reti Logic
 
ECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazioneECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazione
 
Ecdl - Modulo 1 - Concetti di base dell'ICT
Ecdl - Modulo 1 - Concetti di base dell'ICTEcdl - Modulo 1 - Concetti di base dell'ICT
Ecdl - Modulo 1 - Concetti di base dell'ICT
 
07 2 ricorsione
07 2 ricorsione07 2 ricorsione
07 2 ricorsione
 
02 algo programmi
02 algo programmi02 algo programmi
02 algo programmi
 
Modulo 1 - Lezione 1
Modulo 1 - Lezione 1Modulo 1 - Lezione 1
Modulo 1 - Lezione 1
 
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di AnalisiAlgoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
 
Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)
 
Analogicoedigitale
AnalogicoedigitaleAnalogicoedigitale
Analogicoedigitale
 
Python@Unina - Exercises
Python@Unina - ExercisesPython@Unina - Exercises
Python@Unina - Exercises
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decoding
 
Complessita computazionalee
Complessita computazionaleeComplessita computazionalee
Complessita computazionalee
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)
 
Concetti di base della Tecnologia dell'informazione
Concetti di base della Tecnologia dell'informazioneConcetti di base della Tecnologia dell'informazione
Concetti di base della Tecnologia dell'informazione
 
RAPPRESENTAZIONE dei DATI
RAPPRESENTAZIONE dei DATIRAPPRESENTAZIONE dei DATI
RAPPRESENTAZIONE dei DATI
 
Sistema Binario E Codice Informatico
Sistema Binario E Codice InformaticoSistema Binario E Codice Informatico
Sistema Binario E Codice Informatico
 
Complessita' computazionale
Complessita' computazionaleComplessita' computazionale
Complessita' computazionale
 
06 1 array_stringhe_typedef
06 1 array_stringhe_typedef06 1 array_stringhe_typedef
06 1 array_stringhe_typedef
 
Simulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLABSimulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLAB
 

Mais de STELITANO

Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012STELITANO
 
Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012STELITANO
 
Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012STELITANO
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisiSTELITANO
 
Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)STELITANO
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)STELITANO
 
Lezione 19 (18 aprile 2012) ricerca
Lezione 19 (18 aprile 2012)   ricercaLezione 19 (18 aprile 2012)   ricerca
Lezione 19 (18 aprile 2012) ricercaSTELITANO
 
Lezione 18 (18 aprile 2012) ordinamenti
Lezione 18 (18 aprile 2012)   ordinamentiLezione 18 (18 aprile 2012)   ordinamenti
Lezione 18 (18 aprile 2012) ordinamentiSTELITANO
 
Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)STELITANO
 
Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)STELITANO
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)STELITANO
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)STELITANO
 
Lezione 12 (28 marzo 2012) puntatori vettori
Lezione 12 (28 marzo 2012) puntatori   vettoriLezione 12 (28 marzo 2012) puntatori   vettori
Lezione 12 (28 marzo 2012) puntatori vettoriSTELITANO
 
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni   memoria - puntatoriLezione 12 (28 marzo 2012) funzioni   memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni memoria - puntatoriSTELITANO
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012STELITANO
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 

Mais de STELITANO (20)

Risultati
RisultatiRisultati
Risultati
 
Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012
 
Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012Soluzione esame a del 13 giugno 2012
Soluzione esame a del 13 giugno 2012
 
Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisi
 
Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)
 
Lezione 19 (18 aprile 2012) ricerca
Lezione 19 (18 aprile 2012)   ricercaLezione 19 (18 aprile 2012)   ricerca
Lezione 19 (18 aprile 2012) ricerca
 
Lezione 18 (18 aprile 2012) ordinamenti
Lezione 18 (18 aprile 2012)   ordinamentiLezione 18 (18 aprile 2012)   ordinamenti
Lezione 18 (18 aprile 2012) ordinamenti
 
Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)
 
Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)
 
Lezione 12 (28 marzo 2012) puntatori vettori
Lezione 12 (28 marzo 2012) puntatori   vettoriLezione 12 (28 marzo 2012) puntatori   vettori
Lezione 12 (28 marzo 2012) puntatori vettori
 
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni   memoria - puntatoriLezione 12 (28 marzo 2012) funzioni   memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 

Lezione 9 (14 marzo 2012)

  • 1. Abilità Informatiche Ingegneria Chimica Lezione 14/03/2012 Prof. Antonino Stelitano
  • 2. Docente Antonino Stelitano antonino.stelitano@uniroma1.it stelitano.a@libero.it Tutor Da definire … Lezioni Lunedì 14:00 – 17:30 aula 16 Lab. Paolo Ercoli Mercoledì 15:45 – 19:00 aula 5 Viale Castro Laurenziano Ricevimento: Per appuntamento Sito web: http://w3.uniroma1.it/IngChim/AInf
  • 3. Operatori logici • NOT: restituisce 1 quando l’input vale 0 e viceversa – unico operatore unario • AND: restituisce 1 solo se tutti gli ingressi valgono 1 • OR: restituisce 1 quando esiste almeno un ingresso che vale 1 • Priorità: NOT-> AND --> OR
  • 4. Operatore Risultato AND && P Q P&&Q 0 0 0 0 1 0 1 0 0 1 1 1 OR || P Q P || Q 0 0 0 0 1 1 1 0 1 1 1 1 NOT ! P ! 0 1 1 0
  • 5. Condizione Espressione logica x e y maggiori di z (x>z) && (y>z) x uguale a 1.0 o a 3.0 (x==1.0) || (x==3.0) x è compreso tra z e y, (z<=x) && (x<= y) compresi gli estremi x è fuori dal range da z ! (z<=x && x<= y) ay z>x || x>y z y
  • 6. Priorità Operatore Associatività () da sinistra a destra ! da destra a sinistra * / % da sinistra a destra - + da sinistra a destra < <= > >= da sinistra a destra == != da sinistra a destra && da sinistra a destra || da sinistra a destra = da destra a sinistra
  • 8. Con i seguenti valori int j=0, m=1, n= -1; float x=2.5, y=0.0; Riempire la seguente tabella j<m && n<m m +n || !j x*5 && 5 || m/n !x || !n || m+n (j || m) + (x || n+1)
  • 9. int j=0, m=1, n= -1; float x=2.5, y=0.0; j<m && n<m 1 (j<m) && (n<m) m +n || !j 1 (m +n) || (!j) x*5 && 5 || m/n 1 ((x*5) && 5) || (m/n) !x || !n || m+n 0 ((!x) || (!n)) || (m+n) (j || m) + (x || n+1) 2 (j || m) + (x || (n+1))
  • 10. If equivalenti if (a<b)&& (b<c) if (a<b) <istruzione>; if (b<c) <istruzione>; if (a<b)&& (b<c) if (a<b) <istruzione1>; NO if (b<c) else <istruzione2>; <istruzione1>; else <istruzione2>; SI if (a<b) if (b<c) <istruzione1>; else<istruzione2>; else <istruzione2>;
  • 11. Problema: Inserire una sequenza di 12 voti (tra 0 e 30) riportati da uno studente. Stampare il massimo e il minimo dei voti riportati (no memorizzarli) Analisi dei dati: tre variabili di tipo int - minimo (min) - massimo (max) - voto corrente (voto) Algoritmo: •inizializzo min e max •per ogni voto letto •se min è maggiore di voto, allora min = voto •se max è minore di voto, allora max = voto Problema: Come inizializzo min e max?
  • 12. Come inizializzo min e max ? NO • min=0, max=0??? NO • min=0, max=30 ?? NI • min=30, max=0 ?? SI • min=max=primo voto letto?? • Con min = 30 e max = 0 realizzo un algoritmo che va bene solo per i voti universitari • Con min = max = primo voto letto risparmiamo due confronti e un’assegnazione
  • 13. Quiz :: provate ad implementare la soluzione
  • 14. #include<stdio.h> int main (void) { int min, max, voto, i; printf("inserisci il primo numero voton"); scanf("%d", &max); min=max; for (i=0; i<=10; i=i+1) { printf("inserisci un altro voton"); scanf("%d", &voto); if (min>voto) min=voto; if (max<voto) max= voto; } printf("Voto minimo: %dn", min); printf("Voto max: %dn", max); return 0; }
  • 15. Struttura di un calcolatore • Architettura di Von Neumann – Unità I/O – Memoria – CPU • Linguaggio assemblativo • Struttura della memoria • Dispense di riferimento – Architettura del calcolatore e rappresentazione dell'informazione (Daniela D'Aloisi)
  • 16. Il calcolatore elettronico Un calcolatore elettronico e’ un sistema elettronico digitale programmabile Sistema: composto da parti interagenti Elettronico: le funzioni fondamentali sono realizzate mediante componenti elettronici Digitale: lavora su grandezze discrete Programmabile: le operazioni svolte dal sistema sono regolate da un programma (che può essere cambiato) 17
  • 17. Elaborazione al calcolatore Un calcolatore elettronico: • Acquisisce i dati di input • Elabora i dati di input in base ad un programma • Restituisce i dati di output Informazioni Calcolatore da Risultati elaborare + (OUTPUT) (INPUT) Programma 18
  • 18. Hardware e Software • Hardware: componenti fisiche del computer (processore, memoria, monitor, dischi, ecc.) • Software: vari tipi di informazione presenti nel computer (programmi, dati da elaborare, dati memorizzati) 19
  • 19. Rappresentazione dell’informazione • Per costruzione, il funzionamento logico di un calcolatore elettronico è regolato da grandezze binarie (possono assumere solo due stati significativi) • Un bit (binary digit), i cui valori possibili sono 0 e 1 (per convenzione), può rappresentare due valori distinti di una qualsiasi grandezza • Un insieme di N bit può rappresentare 2^N valori distinti di una qualsiasi grandezza • La rappresentazione di un’informazione mediante insiemi di bit si basa sulle seguenti tecniche: – discretizzazione di un insieme di valori continui – riduzione della dimensione di un insieme di valori discreti – codifica di un insieme finito di valori 20
  • 20. Informazioni rappresentabili • E’ necessario assumere che le grandezze da rappresentare formino un insieme finito di valori (numero di bit a disposizione è finito) • Discretizzazione: Un insieme di valori continui (p. es., i numeri reali nell’intervallo [-3, 2]) viene trasformato in un insieme di valori discreti tramite suddivisione in intervalli (rappresentazione a precisione finita) • Riduzione: Un insieme di valori discreti (p. es., i numeri interi) viene ridotto ad un suo sottoinsieme finito • Codifica: Ad ogni elemento di un insieme finito di valori viene univocamente associata una configurazione dell’insieme di bit usato 21
  • 21. Esempi di rappresentazioni • Caratteri – Codice ASCII (128 caratteri distinti) • Numeri Interi – 1 bit di segno e 15 bit di modulo (coperto intervallo [- 32767, 32767]) • Immagini – gif, jpeg, tiff, bmp • Audio – mp3 • Video – avi 22
  • 22. Il calcolatore elettronico: sottosistemi funzionali • La suddivisione funzionale è basata su un’architettura detta di Von Neumann (1947) • Sono individuabili i seguenti sottosistemi – Memoria principale (primaria, centrale) – Unità centrale di elaborazione (CPU) – Dispositivi di ingresso/uscita (I/O) – Canali di comunicazione (bus) 23
  • 24. John von Neumann John von Neumann (Budapest, 28 .12.1903 – Washington, 8.02.1957) è stato un matematico e informatico statunitense di origine ungherese. Fu una delle personalità scientifiche preminenti del XX secolo cui si devono fondamentali contributi in campi come teoria degli insiemi, analisi funzionale, topologia, fisica quantistica, economia, informatica, teoria dei giochi, fluidodinamica e in molti altri settori della matematica.
  • 25. Memoria Principale 1 byte • Insieme di celle per memorizzazione dati (data) • In ogni cella si può memorizzare una stringa binaria di dimensione fissa (p.es. 1 byte = 8 bit) 01010111 • Una cella è individuata da uno specifico indirizzo (address), consistente in una stringa binaria di dimensione fissa (p.es. 2 byte, 2^16 celle) 2^16 • Operazione di lettura (read): dato contenuto nella cella specificata viene prelevato (indolore) • Operazione di scrittura (write): dato contenuto nella cella specificata assume valore specificato • Tipicamente realizzata con memoria RAM (Random Access Memory): – tempo di accesso indipendente dall’indirizzo – volatile: dati persi in assenza di alimentazione dato indirizzo 26
  • 26. Interazione CPU-Memoria Principale Indirizzo Memoria CPU Principale Istruzione/Dato • Nella memoria principale si possono distinguere due tipi di informazioni: istruzioni che la CPU (Central Processing Unit) può eseguire e dati di vario tipo • Le istruzioni eseguibili da una data CPU sono rappresentate in uno specifico codice binario 27
  • 27. Struttura della CPU Registri CU ALU CPU • Essenzialmente, la CPU contiene – Unità di controllo CU (Control Unit): Coordina le attività interne alla CPU e le connessioni tra la CPU e le unità esterne (Memoria Principale e I/O) – Unità Logico-Aritmetica ALU (Arithmetic Logic Unit): Esegue operazioni logico-aritmetiche – Registri: Celle di memoria interne alla CPU usate per dati di vario tipo (p. es. operandi per la ALU) 28
  • 28. Esecuzione Istruzioni Registri Memoria CU ALU Principale CPU • Caricamento (fetch): CU preleva dalla memoria principale l’istruzione da eseguire • Decodifica (decode): CU genera i comandi per l’esecuzione dell’istruzione e, se necessario, trasferisce i dati richiesti dalla memoria principale ai registri dell’unità logico-aritmetica • Esecuzione (execute): ALU produce i risultati richiesti e questi vengono memorizzati nei registri interni (o nella memoria principale) 29
  • 30. Linguaggi Macchina • Un’istruzione eseguibile da una CPU è detta istruzione macchina (machine istruction) • Ogni CPU è in grado di eseguire soltanto uno specifico insieme di istruzioni macchina (instruction set), ognuna rappresentata secondo uno specifico codice binario detto linguaggio macchina (machine language) • Esempi di azioni prodotte da istruzioni macchina: – Esecuzione di semplici operazioni logico-aritmetiche – Trasferimenti di dati tra la CPU e le unità esterne – Modifica del flusso di esecuzione delle istruzioni (normalmente sequenziale) • Un programma in linguaggio macchina è costituito da un insieme ordinato di istruzioni macchina che verranno eseguite nell’ordine specificato 31
  • 31. Dispositivi I/O (periferiche) Usati per lo scambio dati con l’esterno • Esempi di periferiche di input – Tastiera, mouse, scanner, microfono, telecamera • Esempi di periferiche di output – Monitor, stampante, casse acustiche • Memorie di massa – Disco rigido (hard disk), dischetti, CD-ROM, pen-drive 32
  • 32. Memoria secondaria (di massa) • Usata per la memorizzazione non volatile di informazioni (dati e/o programmi) (periferica di ingresso/uscita) • Tipicamente, molto più lenta della memoria principale • 1 B = 1 byte = 8 bit • 1 KB = 1 kilobyte = 2^10 B • 1 MB = 1 megabyte = 2^10 KB = 2^20 B • 1 GB = 1 gigabyte = 2^10 MB = 2^30 B • Floppy disk (1.44 MB, 720 KB obsoleto) • Hard disk (10 – 100 GB) • CD-ROM (670 MB) • DVD (5 GB) • Pen-drive USB (64MB – 2GB)
  • 33. KByte, MByte e GByte • 1 KB (KiloByte) – = 1000 byte? No! – 1 KB = 210 Byte = 1024 Byte [20 = 1, 21 = 2, 22 = 4, 23 = 8, 24 = 16, 25 = 32, 26 = 64, 27 = 128, 28 = 256, 29 = 512, 210 = 1024] • 1 MB (MegaByte) – solitamente approssimato a 1 milione di Byte – precisamente =1024 KB = 1024 X 1024 Byte = = 210 X 210 byte = 220 Byte = 1.048.576 Byte • 1 GB (GigaByte) = circa 1 miliardo di Byte – precisamente =1024 MB = 1024 X 1024 KB = 1024 X 1024 X 1024 Byte = = 210 X 210 X 210 Byte = 230 Byte = 1073741824 Byte