SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Abilità Informatiche
  Ingegneria Chimica
Lezione 7 del 12/03/2012




Prof. Antonino Stelitano
Docente        Antonino Stelitano

Tutor
Lezioni        Lunedì               14:00 – 17:30     aula 16
                                    Lab. Paolo Ercoli – via Tiburtina 205

               Mercoledì            15:45 – 19:00     aula 5
                                    Viale del C. Laurenziano

Ricevimento:   Per appuntamento antonino.stelitano@uniroma1.it

                                    stelitano.a@libero.it

Sito web:          http://w3.uniroma1.it/ab_informatiche/
Operatori di uguaglianza e relazionali
• usati nei test
• gli operatori relazionali hanno stesso livello di priorità
• gli operatori di uguaglianza hanno un livello più basso
• entrambi hanno associatività da sinistra a destra
Operatori di        uguaglianza
Uguale a            ==                  x == y
Diverso da          !=                  x != y
Operatori           relazionali
Maggiore            >                   x > y
Minore              <                   x < y
Maggiore o          >=                  x > = y
uguale
Minore o            <=                  x < = y
uguale

•   danno risultati booleani, ossia vero o falso
•   in C
     – falso (false) equivale a zero
     – vero (true) equivale a qualsiasi valore diverso da zero (come valore
        di un test viene usato uno)
Priorità
     Operatore         Associatività
     ( )               da sinistra a destra
     * / %             da sinistra a destra
     -   +             da sinistra a destra
     < <= > >=         da sinistra a destra
     == !=             da sinistra a destra
     =                 da destra a sinistra


         Espressione      Espressione equivalente
     j >m               j >m
     m/n < x            (m/n) < x
     j  m n           (j <= m) >= n

     j  x == m         (j <= x) == m
     -x + j ==y>n m    ((-x) + j) == ((y> n) >=m)
     x = x+ (y n)      x = (x+ (y >=n))
     j+1 == m  y*2     ((j+1) == m) != (y*2)

int j=0, m=1, n=-1;
float x=2.5, y=0.0;
#include <stdio.h>
int main (void)
 { int j=0, m=1, n=-1, tot;
     float x=2.5, y=0.0, ris;
     ris= x + (y>=n);
            printf("nRisultato:t%fn", ris);
     tot=((j+1)==m)!=(y*2);
            printf("nTotale:t%dn", tot);
            printf("Totale in float:t%fn", tot);
     ris=((j+1)==m)!=(y*2);
                                                        Quiz
            printf("nRisultato intero:t%dn", ris);   Prova a calcolare da solo/a cosa
            printf("Risultato float:t%fn", ris);      stampano le varie printf
     tot= ((-x)+j) == ((y>n)>=m);
            printf("nTotale:t%dn", tot);
            printf("Totale in float:t%fn", tot);      Risultato:    3.500000
 return 1; }                                            Totale: 1

                                                        Totale in float: -0.000000
                                                        Risultato intero: 0
                                                        Risultato float:  1.000000

                                                        Totale:0
                                                        Totale in float:   0.0000000
Strutture di controllo
• flusso normale: esecuzione sequenziale
• trasferimento di controllo: ci sono istruzioni che permettono di specificare
   che l’istruzione da eseguire non è quella successiva
• da evitare l’uso del goto (rende i programmi illegibili):
    – il teorema di Böhm-Jacopini ha dimostrato che i programmi possono
       essere scritti senza usare il goto
    – i programmi possono essere scritti usando solo tre strutture di controllo:
          • sequenza, selezione e iterazione
• Strutture di selezione
    – if
    – if/else
    – switch
• Strtutture di iterazione
    – while
    – do/while
    – for
Teorema di Böhm-Jacopini

• Il teorema di Böhm-Jacopini, enunciato nel 1966 dagli
  informatici Corrado Böhm e Giuseppe Jacopini, afferma
  che qualunque algoritmo può essere implementato
  utilizzando tre sole strutture, la sequenza, la selezione
  ed il ciclo, da applicare ricorsivamente alla composizione
  di istruzioni elementari
Teorema di Böhm-Jacopini

• La sequenza è la normale elencazione di istruzioni
  perché vengano eseguite una di seguito all'altra
  nell'ordine in cui sono state scritte dal programmatore.
• La selezione è la scelta fra due percorsi da seguire
  successivamente, che dipende da una condizione che
  può essere vera o falsa.
• Il ciclo, detto anche iterazione, è un blocco di
  istruzioni che vengono ripetutamente eseguite fino a
  che una certa condizione cambia di stato.
Strutture di selezione: if/else

                if (<test>)
                        istruzione1;
                else
                        istruzione2;
                istruzione3;

               Vero ( 0)                           Falso (0)
                                  test

          istruzione1                            istruzione2


                            istruzione3


•   Se il <test> è vero (diverso da zero), allora viene eseguita istruzione1;
•   Se il <test> è falso (=0), allora viene eseguita istruzione2;
Strutture di selezione: if, if/else

                       if (<test>)
                         istruzione1;
                       istruzione3;


                               Vero ( 0)
                                          test
                                                  Falso (0)
               istruzione1

                                          istruzione3




•   Se il <test> è vero (diverso da zero), allora viene eseguita istruzione1;
•   Se il <test> è falso (=0), allora viene eseguita istruzione3;
Quiz
Quiz: regole del gioco

• Sono ammessi
   – Carta
   – Penna
   – Cervello
   – Una sbirciatina al compagno
• Non è ammessa
   – Confusione
   – Gente in piedi
• Tempo
   – 10 min ad esercizio
Quiz
• Dato un intero, verifica se é minore di 100
• scrivere un programma per calcolare la radice
  quadrata di un numero
   – a = sqrt ( b ) ;  a = √ b
• Dati due interi che rappresentano il mese e l'anno,
  calcola il mese e l'anno successivi
• Problema: scrivere un programma per calcolare le
  radici di un’equazione di secondo grado

Weitere ähnliche Inhalte

Andere mochten auch

Lineage media profile
Lineage media profileLineage media profile
Lineage media profile
Viren Shah
 
Astudy on five model of organisational behavior 130107075754-phpapp01
Astudy on five model of organisational behavior 130107075754-phpapp01Astudy on five model of organisational behavior 130107075754-phpapp01
Astudy on five model of organisational behavior 130107075754-phpapp01
Ãkash Raƞga
 
01 linux-quick-start
01 linux-quick-start01 linux-quick-start
01 linux-quick-start
Nguyen Vinh
 
結腸直腸癌手冊 Hope and help
結腸直腸癌手冊 Hope and help結腸直腸癌手冊 Hope and help
結腸直腸癌手冊 Hope and help
lys167
 
computation_redes
computation_redescomputation_redes
computation_redes
mario_bar94
 
Digital storytelling
Digital storytellingDigital storytelling
Digital storytelling
Darleen00
 
Education and the social web promise or peril
Education and the social web promise or perilEducation and the social web promise or peril
Education and the social web promise or peril
Norm Friesen
 

Andere mochten auch (15)

Lineage media profile
Lineage media profileLineage media profile
Lineage media profile
 
What to Look for in a Computer for Development
What to Look for in a Computer for DevelopmentWhat to Look for in a Computer for Development
What to Look for in a Computer for Development
 
Astudy on five model of organisational behavior 130107075754-phpapp01
Astudy on five model of organisational behavior 130107075754-phpapp01Astudy on five model of organisational behavior 130107075754-phpapp01
Astudy on five model of organisational behavior 130107075754-phpapp01
 
Aom9 25 09
Aom9 25 09Aom9 25 09
Aom9 25 09
 
130620 syl lausunto_opintotukilaki_luonnos_okm
130620 syl lausunto_opintotukilaki_luonnos_okm130620 syl lausunto_opintotukilaki_luonnos_okm
130620 syl lausunto_opintotukilaki_luonnos_okm
 
FameLinked - The Fame Network & Marketplace
FameLinked - The Fame Network & MarketplaceFameLinked - The Fame Network & Marketplace
FameLinked - The Fame Network & Marketplace
 
01 linux-quick-start
01 linux-quick-start01 linux-quick-start
01 linux-quick-start
 
結腸直腸癌手冊 Hope and help
結腸直腸癌手冊 Hope and help結腸直腸癌手冊 Hope and help
結腸直腸癌手冊 Hope and help
 
computation_redes
computation_redescomputation_redes
computation_redes
 
Digital storytelling
Digital storytellingDigital storytelling
Digital storytelling
 
Education and the social web promise or peril
Education and the social web promise or perilEducation and the social web promise or peril
Education and the social web promise or peril
 
Bondia.cat 23/07/2013
Bondia.cat 23/07/2013Bondia.cat 23/07/2013
Bondia.cat 23/07/2013
 
Loraine
LoraineLoraine
Loraine
 
2012 SAP Retail Forum
2012 SAP Retail Forum2012 SAP Retail Forum
2012 SAP Retail Forum
 
What Can We Learn From The Starbucks Come Back
What Can We Learn From The Starbucks Come BackWhat Can We Learn From The Starbucks Come Back
What Can We Learn From The Starbucks Come Back
 

Mehr von 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 2012
STELITANO
 
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
STELITANO
 
Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012
STELITANO
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisi
STELITANO
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
STELITANO
 
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 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
STELITANO
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parte
STELITANO
 
Lezione 19 (18 aprile 2012) ricerca
Lezione 19 (18 aprile 2012)   ricercaLezione 19 (18 aprile 2012)   ricerca
Lezione 19 (18 aprile 2012) ricerca
STELITANO
 
Lezione 18 (18 aprile 2012) ordinamenti
Lezione 18 (18 aprile 2012)   ordinamentiLezione 18 (18 aprile 2012)   ordinamenti
Lezione 18 (18 aprile 2012) ordinamenti
STELITANO
 
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 vettori
STELITANO
 
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
STELITANO
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
STELITANO
 

Mehr von 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 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
 
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 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
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parte
 
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)
 

Lezione 7 (12 marzo 2012)

  • 1. Abilità Informatiche Ingegneria Chimica Lezione 7 del 12/03/2012 Prof. Antonino Stelitano
  • 2. Docente Antonino Stelitano Tutor Lezioni Lunedì 14:00 – 17:30 aula 16 Lab. Paolo Ercoli – via Tiburtina 205 Mercoledì 15:45 – 19:00 aula 5 Viale del C. Laurenziano Ricevimento: Per appuntamento antonino.stelitano@uniroma1.it stelitano.a@libero.it Sito web: http://w3.uniroma1.it/ab_informatiche/
  • 3. Operatori di uguaglianza e relazionali • usati nei test • gli operatori relazionali hanno stesso livello di priorità • gli operatori di uguaglianza hanno un livello più basso • entrambi hanno associatività da sinistra a destra Operatori di uguaglianza Uguale a == x == y Diverso da != x != y Operatori relazionali Maggiore > x > y Minore < x < y Maggiore o >= x > = y uguale Minore o <= x < = y uguale • danno risultati booleani, ossia vero o falso • in C – falso (false) equivale a zero – vero (true) equivale a qualsiasi valore diverso da zero (come valore di un test viene usato uno)
  • 4. Priorità Operatore Associatività ( ) da sinistra a destra * / % da sinistra a destra - + da sinistra a destra < <= > >= da sinistra a destra == != da sinistra a destra = da destra a sinistra Espressione Espressione equivalente j >m j >m m/n < x (m/n) < x j  m n (j <= m) >= n j  x == m (j <= x) == m -x + j ==y>n m ((-x) + j) == ((y> n) >=m) x = x+ (y n) x = (x+ (y >=n)) j+1 == m  y*2 ((j+1) == m) != (y*2) int j=0, m=1, n=-1; float x=2.5, y=0.0;
  • 5. #include <stdio.h> int main (void) { int j=0, m=1, n=-1, tot; float x=2.5, y=0.0, ris; ris= x + (y>=n); printf("nRisultato:t%fn", ris); tot=((j+1)==m)!=(y*2); printf("nTotale:t%dn", tot); printf("Totale in float:t%fn", tot); ris=((j+1)==m)!=(y*2); Quiz printf("nRisultato intero:t%dn", ris); Prova a calcolare da solo/a cosa printf("Risultato float:t%fn", ris); stampano le varie printf tot= ((-x)+j) == ((y>n)>=m); printf("nTotale:t%dn", tot); printf("Totale in float:t%fn", tot); Risultato: 3.500000 return 1; } Totale: 1 Totale in float: -0.000000 Risultato intero: 0 Risultato float: 1.000000 Totale:0 Totale in float: 0.0000000
  • 6. Strutture di controllo • flusso normale: esecuzione sequenziale • trasferimento di controllo: ci sono istruzioni che permettono di specificare che l’istruzione da eseguire non è quella successiva • da evitare l’uso del goto (rende i programmi illegibili): – il teorema di Böhm-Jacopini ha dimostrato che i programmi possono essere scritti senza usare il goto – i programmi possono essere scritti usando solo tre strutture di controllo: • sequenza, selezione e iterazione • Strutture di selezione – if – if/else – switch • Strtutture di iterazione – while – do/while – for
  • 7. Teorema di Böhm-Jacopini • Il teorema di Böhm-Jacopini, enunciato nel 1966 dagli informatici Corrado Böhm e Giuseppe Jacopini, afferma che qualunque algoritmo può essere implementato utilizzando tre sole strutture, la sequenza, la selezione ed il ciclo, da applicare ricorsivamente alla composizione di istruzioni elementari
  • 8. Teorema di Böhm-Jacopini • La sequenza è la normale elencazione di istruzioni perché vengano eseguite una di seguito all'altra nell'ordine in cui sono state scritte dal programmatore. • La selezione è la scelta fra due percorsi da seguire successivamente, che dipende da una condizione che può essere vera o falsa. • Il ciclo, detto anche iterazione, è un blocco di istruzioni che vengono ripetutamente eseguite fino a che una certa condizione cambia di stato.
  • 9. Strutture di selezione: if/else if (<test>) istruzione1; else istruzione2; istruzione3; Vero ( 0) Falso (0) test istruzione1 istruzione2 istruzione3 • Se il <test> è vero (diverso da zero), allora viene eseguita istruzione1; • Se il <test> è falso (=0), allora viene eseguita istruzione2;
  • 10. Strutture di selezione: if, if/else if (<test>) istruzione1; istruzione3; Vero ( 0) test Falso (0) istruzione1 istruzione3 • Se il <test> è vero (diverso da zero), allora viene eseguita istruzione1; • Se il <test> è falso (=0), allora viene eseguita istruzione3;
  • 11. Quiz
  • 12. Quiz: regole del gioco • Sono ammessi – Carta – Penna – Cervello – Una sbirciatina al compagno • Non è ammessa – Confusione – Gente in piedi • Tempo – 10 min ad esercizio
  • 13. Quiz • Dato un intero, verifica se é minore di 100 • scrivere un programma per calcolare la radice quadrata di un numero – a = sqrt ( b ) ;  a = √ b • Dati due interi che rappresentano il mese e l'anno, calcola il mese e l'anno successivi • Problema: scrivere un programma per calcolare le radici di un’equazione di secondo grado