SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Laboratorio di informatica
       Ingegneria Chimica


 Esercitazione 2 – 29 Febbraio 2012
Istruzioni
• Istruzioni di Input/Output
• Istruzioni di assegnamento
• Istruzioni di controllo
   – Permettono di modificare il flusso di esecuzione
     sequenziale in base al valore di un‟espressione
     (modifica condizionale)
   – Istruzioni per la selezione del blocco di
     istruzioni da eseguire (ramificazione)




                                                    2
C: operatori relazionali
• Permettono di confrontare due valori:
   • > (maggiore)
   • < (minore)
   • >= (maggiore o uguale--non minore)
   • <= (minore o uguale--non maggiore)
   • == (uguale)
   • != (diverso--non uguale)
• Possono essere usati per formare espressioni:
• X > y , x >= 2*Y - 33 , x == y , s == ‘g’
• Un‟espressione relazionale ha valore intero: 0, se
  falsa, e 1, se vera. E‟ possibile comporre
  espressioni. Es. X == ( y <= 1 )


                                                       3
C: istruzione if else
•   Esecuzione di uno di due blocchi di istruzioni in
    base al valore di un‟espressione
    if ( espressione ) { istruzione1 ; istruzione2 ; … ; }
    else { istruzioneA ; istruzioneB ; … ; }
•   Se l‟espressione ha valore diverso da 0, si esegue il
    primo blocco. Se ha invece valore 0, si esegue il
    secondo blocco.
•   Le parentesi graffe possono essere omesse in caso
    di blocco di una sola istruzione
•   Nei due blocchi possono comparire istruzioni if else
•   Parte else può essere omessa: in questo caso, è
    presente solo il primo blocco di istruzioni


                                                         4
Ramificazione del flusso
  •if ( espressione ) { istruzione1 ; istruzione2 ; … ; }
  • else { istruzioneA ; istruzioneB ; … ; }


valore non è 0                             valore è 0
                     espressione

 istruzione1                               istruzione1
 istruzione2                               istruzione2
       .
       .                                         .
                                                 .
       .                                         .




                                                            5
Esempi

1. if ( val >= 18 ) { printf( "OK!n" ) ; c = c + 1 ; }
2. if ( a + 2 ) { b = c * d - 214 ; } Attenzione!
3. if ( a = 0 ) b = -b ;     Attenzione!
4. if ( val >= 18 ) { printf( "OK!n" ) ; c = c + 1 ; }
   else { printf( “NOK!n" ) ; d = d + 1 ; }
5. if ( val >= 18 ) if ( c == 3 ) printf( "OK!n" ) ;
6. if ( val >= 18 ) printf( "OK!n" ) ;
   else if ( c == 3 ) printf( "OK!n" ) ;



                                                          6
Esercizi (1/5)
1.   Scrivere un programma che legga da standard input un carattere
     e visualizzi su standard output un rettangolo tre per due del
     carattere letto. Il programma deve utilizzare un‟unica istruzione
     printf
      Inserire un carattere: =

      ===
      ===
      Premere un tasto per continuare . . .



2.   Scrivere un programma che legga da standard input un intero in
     base 10 di quattro cifre e le visualizzi su standard output una ad
     una, separandole con un carattere di tabulazione

      Inserire un numero intero positivo di 4 cifre: 1492

      1       4       9       2
      Premere un tasto per continuare . . .

                                                                          7
Esercizi (2/5)
3.   Scrivere un programma che legga da standard input una
     temperatura espressa in gradi Fahrenheit e visualizzi su standard
     output il valore corrispondente in gradi Celsius.
     La formula per effettuare la conversione da Fahrenheit a Celsius è
     la seguente:


                               C=temperatura in gradi Celsius
                               F=temperatura in gradi Fahrenheit




      Valore in gradi Fahrenheit = 451
      Valore in gradi Celsius = 232.777786
      Premere un tasto per continuare . . .




                                                                     8
Esercizi (3/5)
4.   Estendere il programma precedente in modo tale che l‟utente possa
     scegliere se effettuare la conversione da Farhenheit a Celsius o
     viceversa.
     Il programma deve leggere da standard input un intero che
     identifica la scelta dell‟utente: nel caso in cui il valore letto sia 1 si
     deve effettuare la conversione da Fahrenheit a Celsius, nel caso sia
     2 si deve effettuare la conversione inversa.
     La formula per effettuare la conversione da Celsius a Fahrenheit è
     la seguente:

                                   C=temperatura in gradi Celsius
                                   F=temperatura in gradi Fahrenheit



      Premi
      '1' per trasformare da F a C
      '2' per trasformare da C a F
      Scelta: 2

      Valore in gradi Celsius = 100
      Valore in gradi Fahrenheit = 212.000000
      Premere un tasto per continuare . . .                                 9
Esercizi (4/5)
5.   Scrivere un programma che legga da standard input un carattere,
     che rappresenta un operatore („*‟, „+‟, „-‟, „/‟), e due numeri reali, e
     stampi su standard output il risultato dell‟operazione corrispondente
     al carattere.

      Inserire l'operazione da effettuare ('+', '-', '*', '/'): *
      Inserire due numeri reali: 2.2 3.2
      2.200000 * 3.200000 = 7.040000
      Premere un tasto per continuare . . .

6.   Scrivere un programma che legga da standard input tre numeri
     interi non negativi da intendersi come giorno, mese ed anno stampi
     un messaggio in cui si dice se i tre numeri rappresentano o no una
     data valida (si escluda il caso di anno bisestile)

     Inserire giorno mese e anno: 30 2 2015
     giorno sbagliato!
     Premere un tasto per continuare . . .




                                                                         10
Esercizi (5/5)
7.   Scrivere un programma che, letti da standard input tre numeri
     interi, visualizzi su stdout, a seconda dei casi, uno dei seguenti
     messaggi:
        •    “tutti diversi”
        •    “due uguali e uno diverso”
        •    “tutti uguali”



     Inserire tre numeri interi: 2 5 1
     Tutti diversi
     Premere un tasto per continuare . . .




                                                                          11

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
Esercitazione 4 (19 marzo 2012)
Esercitazione 4 (19 marzo 2012)Esercitazione 4 (19 marzo 2012)
Esercitazione 4 (19 marzo 2012)STELITANO
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Programmazione a blocchi
Programmazione a blocchiProgrammazione a blocchi
Programmazione a blocchiFabio Biscaro
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterativeguest60e9511
 
14 - Programmazione: Stream e File
14 - Programmazione: Stream e File14 - Programmazione: Stream e File
14 - Programmazione: Stream e FileMajong DevJfu
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Programma Ristorante
Programma RistoranteProgramma Ristorante
Programma Ristorantevanhelsing91
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I Oguest60e9511
 
Presentazione Visual Basic
Presentazione Visual BasicPresentazione Visual Basic
Presentazione Visual Basicautematteo
 
Presentazione Ristorante
Presentazione RistorantePresentazione Ristorante
Presentazione Ristoranteprunepinzo
 
03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++Majong DevJfu
 
6 Vettori E Matrici
6   Vettori E Matrici6   Vettori E Matrici
6 Vettori E Matriciguest60e9511
 
Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012STELITANO
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: FunzioniMajong DevJfu
 

Was ist angesagt? (20)

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
 
Esercitazione 4 (19 marzo 2012)
Esercitazione 4 (19 marzo 2012)Esercitazione 4 (19 marzo 2012)
Esercitazione 4 (19 marzo 2012)
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Linguaggio C++ - Basi
Linguaggio C++ - BasiLinguaggio C++ - Basi
Linguaggio C++ - Basi
 
Programmazione a blocchi
Programmazione a blocchiProgrammazione a blocchi
Programmazione a blocchi
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterative
 
14 - Programmazione: Stream e File
14 - Programmazione: Stream e File14 - Programmazione: Stream e File
14 - Programmazione: Stream e File
 
I cicli in Python 3
I cicli in Python 3I cicli in Python 3
I cicli in Python 3
 
Funzione se Incapsulata
Funzione se IncapsulataFunzione se Incapsulata
Funzione se Incapsulata
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Programma Ristorante
Programma RistoranteProgramma Ristorante
Programma Ristorante
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I O
 
Presentazione Visual Basic
Presentazione Visual BasicPresentazione Visual Basic
Presentazione Visual Basic
 
Presentazione Ristorante
Presentazione RistorantePresentazione Ristorante
Presentazione Ristorante
 
03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++
 
6 Vettori E Matrici
6   Vettori E Matrici6   Vettori E Matrici
6 Vettori E Matrici
 
Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012Soluzioni abilità informatiche 16 maggio 2012
Soluzioni abilità informatiche 16 maggio 2012
 
Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: Funzioni
 

Andere mochten auch

Styrketræning i det fri Rød team4
Styrketræning i det fri Rød team4Styrketræning i det fri Rød team4
Styrketræning i det fri Rød team4lenepeters
 
Styrketræning i det fri Rød team 1
Styrketræning i det fri Rød team 1Styrketræning i det fri Rød team 1
Styrketræning i det fri Rød team 1lenepeters
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)STELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2STELITANO
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisiSTELITANO
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 26 marzo 2012STELITANO
 
Styrketræning i det fri Rød team 2
Styrketræning i det fri Rød team 2Styrketræning i det fri Rød team 2
Styrketræning i det fri Rød team 2lenepeters
 

Andere mochten auch (8)

Styrketræning i det fri Rød team4
Styrketræning i det fri Rød team4Styrketræning i det fri Rød team4
Styrketræning i det fri Rød team4
 
Styrketræning i det fri Rød team 1
Styrketræning i det fri Rød team 1Styrketræning i det fri Rød team 1
Styrketræning i det fri Rød team 1
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisi
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 26 marzo 2012
 
Styrketræning i det fri Rød team 2
Styrketræning i det fri Rød team 2Styrketræning i det fri Rød team 2
Styrketræning i det fri Rød team 2
 

Ähnlich wie Esercitazione 2 (29 febbraio 2012)

4 Strutture Condizionali
4   Strutture Condizionali4   Strutture Condizionali
4 Strutture Condizionaliguest60e9511
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)STELITANO
 
05 3 istruzioni-selezione-iterazione-condizioni
05 3 istruzioni-selezione-iterazione-condizioni05 3 istruzioni-selezione-iterazione-condizioni
05 3 istruzioni-selezione-iterazione-condizioniPiero Fraternali
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)STELITANO
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Marcello Missiroli
 
Laboratorio Programmazione: Funzioni
Laboratorio Programmazione: FunzioniLaboratorio Programmazione: Funzioni
Laboratorio Programmazione: FunzioniMajong DevJfu
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio cughetta
 

Ähnlich wie Esercitazione 2 (29 febbraio 2012) (12)

4 Strutture Condizionali
4   Strutture Condizionali4   Strutture Condizionali
4 Strutture Condizionali
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 
05 3 istruzioni-selezione-iterazione-condizioni
05 3 istruzioni-selezione-iterazione-condizioni05 3 istruzioni-selezione-iterazione-condizioni
05 3 istruzioni-selezione-iterazione-condizioni
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Laboratorio Programmazione: Funzioni
Laboratorio Programmazione: FunzioniLaboratorio Programmazione: Funzioni
Laboratorio Programmazione: Funzioni
 
La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
 
1 Programmazione
1   Programmazione1   Programmazione
1 Programmazione
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio c
 

Mehr von 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 parteSTELITANO
 
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 parteSTELITANO
 
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
 
Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012STELITANO
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)STELITANO
 
Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3STELITANO
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)STELITANO
 

Mehr von STELITANO (18)

Risultati
RisultatiRisultati
Risultati
 
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
 
Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012Soluzione esonero del 4 aprile 2012
Soluzione esonero del 4 aprile 2012
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)
 
Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)
 

Esercitazione 2 (29 febbraio 2012)

  • 1. Laboratorio di informatica Ingegneria Chimica Esercitazione 2 – 29 Febbraio 2012
  • 2. Istruzioni • Istruzioni di Input/Output • Istruzioni di assegnamento • Istruzioni di controllo – Permettono di modificare il flusso di esecuzione sequenziale in base al valore di un‟espressione (modifica condizionale) – Istruzioni per la selezione del blocco di istruzioni da eseguire (ramificazione) 2
  • 3. C: operatori relazionali • Permettono di confrontare due valori: • > (maggiore) • < (minore) • >= (maggiore o uguale--non minore) • <= (minore o uguale--non maggiore) • == (uguale) • != (diverso--non uguale) • Possono essere usati per formare espressioni: • X > y , x >= 2*Y - 33 , x == y , s == ‘g’ • Un‟espressione relazionale ha valore intero: 0, se falsa, e 1, se vera. E‟ possibile comporre espressioni. Es. X == ( y <= 1 ) 3
  • 4. C: istruzione if else • Esecuzione di uno di due blocchi di istruzioni in base al valore di un‟espressione if ( espressione ) { istruzione1 ; istruzione2 ; … ; } else { istruzioneA ; istruzioneB ; … ; } • Se l‟espressione ha valore diverso da 0, si esegue il primo blocco. Se ha invece valore 0, si esegue il secondo blocco. • Le parentesi graffe possono essere omesse in caso di blocco di una sola istruzione • Nei due blocchi possono comparire istruzioni if else • Parte else può essere omessa: in questo caso, è presente solo il primo blocco di istruzioni 4
  • 5. Ramificazione del flusso •if ( espressione ) { istruzione1 ; istruzione2 ; … ; } • else { istruzioneA ; istruzioneB ; … ; } valore non è 0 valore è 0 espressione istruzione1 istruzione1 istruzione2 istruzione2 . . . . . . 5
  • 6. Esempi 1. if ( val >= 18 ) { printf( "OK!n" ) ; c = c + 1 ; } 2. if ( a + 2 ) { b = c * d - 214 ; } Attenzione! 3. if ( a = 0 ) b = -b ; Attenzione! 4. if ( val >= 18 ) { printf( "OK!n" ) ; c = c + 1 ; } else { printf( “NOK!n" ) ; d = d + 1 ; } 5. if ( val >= 18 ) if ( c == 3 ) printf( "OK!n" ) ; 6. if ( val >= 18 ) printf( "OK!n" ) ; else if ( c == 3 ) printf( "OK!n" ) ; 6
  • 7. Esercizi (1/5) 1. Scrivere un programma che legga da standard input un carattere e visualizzi su standard output un rettangolo tre per due del carattere letto. Il programma deve utilizzare un‟unica istruzione printf Inserire un carattere: = === === Premere un tasto per continuare . . . 2. Scrivere un programma che legga da standard input un intero in base 10 di quattro cifre e le visualizzi su standard output una ad una, separandole con un carattere di tabulazione Inserire un numero intero positivo di 4 cifre: 1492 1 4 9 2 Premere un tasto per continuare . . . 7
  • 8. Esercizi (2/5) 3. Scrivere un programma che legga da standard input una temperatura espressa in gradi Fahrenheit e visualizzi su standard output il valore corrispondente in gradi Celsius. La formula per effettuare la conversione da Fahrenheit a Celsius è la seguente: C=temperatura in gradi Celsius F=temperatura in gradi Fahrenheit Valore in gradi Fahrenheit = 451 Valore in gradi Celsius = 232.777786 Premere un tasto per continuare . . . 8
  • 9. Esercizi (3/5) 4. Estendere il programma precedente in modo tale che l‟utente possa scegliere se effettuare la conversione da Farhenheit a Celsius o viceversa. Il programma deve leggere da standard input un intero che identifica la scelta dell‟utente: nel caso in cui il valore letto sia 1 si deve effettuare la conversione da Fahrenheit a Celsius, nel caso sia 2 si deve effettuare la conversione inversa. La formula per effettuare la conversione da Celsius a Fahrenheit è la seguente: C=temperatura in gradi Celsius F=temperatura in gradi Fahrenheit Premi '1' per trasformare da F a C '2' per trasformare da C a F Scelta: 2 Valore in gradi Celsius = 100 Valore in gradi Fahrenheit = 212.000000 Premere un tasto per continuare . . . 9
  • 10. Esercizi (4/5) 5. Scrivere un programma che legga da standard input un carattere, che rappresenta un operatore („*‟, „+‟, „-‟, „/‟), e due numeri reali, e stampi su standard output il risultato dell‟operazione corrispondente al carattere. Inserire l'operazione da effettuare ('+', '-', '*', '/'): * Inserire due numeri reali: 2.2 3.2 2.200000 * 3.200000 = 7.040000 Premere un tasto per continuare . . . 6. Scrivere un programma che legga da standard input tre numeri interi non negativi da intendersi come giorno, mese ed anno stampi un messaggio in cui si dice se i tre numeri rappresentano o no una data valida (si escluda il caso di anno bisestile) Inserire giorno mese e anno: 30 2 2015 giorno sbagliato! Premere un tasto per continuare . . . 10
  • 11. Esercizi (5/5) 7. Scrivere un programma che, letti da standard input tre numeri interi, visualizzi su stdout, a seconda dei casi, uno dei seguenti messaggi: • “tutti diversi” • “due uguali e uno diverso” • “tutti uguali” Inserire tre numeri interi: 2 5 1 Tutti diversi Premere un tasto per continuare . . . 11