• Non ci sono risultati.

C - Strutture di controllo Sequenza o blocco {

N/A
N/A
Protected

Academic year: 2021

Condividi "C - Strutture di controllo Sequenza o blocco {"

Copied!
10
0
0

Testo completo

(1)

37 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

C - Strutture di controllo

Sequenza o blocco

{

<istruzioni>

}

{ printf("Immetti un numero intero: ");

scanf("%d", &i);

a = i * 4 + b - c;

printf("%d", a);

} Esempio:

C - Strutture di controllo

Selezione

if (<condizione>)

<istruzione>;

se <condizione> è vera è eseguita <istruzione>

dove <istruzione> è formata da 1 sola istruzione altra forma:

if (<condizione>) {

<istruzioni>;

}

(2)

39 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

………

if (i<100) {

a = b - i;

printf(”%f”, a);

} ………

C - Strutture di controllo

Esempi : Selezione

………

if (a>100)

printf(”%f”, a);

………

#include<stdio.h>

main ( )

/* questo programma calcola l’area di un rettangolo */

{

float base, altezza, area;

printf ("immetti base \n");

scanf ("%f" , &base);

printf("immetti altezza \n");

scanf("%f" , &altezza);

if ((base > 0) && (altezza > 0)) { area = base * altezza;

printf("Area= %f \n", area);

} }

Un semplice programma esempio

(3)

41 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

#include<stdio.h>

main ( )

/* questo programma calcola l’area di un rettangolo */

{

float base, altezza, area;

printf ("immetti base \n");

scanf ("%f" , &base);

printf("immetti altezza \n");

scanf("%f" , &altezza);

if ((base > 0) && (altezza > 0)) { area = base * altezza;

printf("Area= %f \n", area);

}

if ((base <= 0) || (altezza <= 0))

printf("Errore: base e/o altezza non maggiori di zero \n");

}

Un semplice programma esempio

Programma esempio in C

#include<stdio.h>

main ( )

{ // calcola il volume di un parallelepipedo float LBase, ABase, H, Area_Base, Volume;

printf ("immetti valore della lunghezza di base \n");

scanf ("%f" , &LBase);

printf("immetti valore altezza di base \n");

scanf("%f" , &ABase);

printf("immetti valore altezza parallelepipedo\n");

scanf("%f" , &H);

Area_Base = LBase* ABase;

... Modificare il programma C del calcolo del volume del parallelepipedo

per verificare il rispetto delle precondizioni ...

(4)

43 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

#include<stdio.h>

main ( )

{ // programma per il calcolo del volume di un parallelepipedo float LBase, ABase, H, Area_Base, Volume;

printf ("immetti valore della lunghezza di base \n");

scanf ("%f" , &LBase);

printf("immetti valore altezza di base \n");

scanf("%f" , &ABase);

printf("immetti valore altezza parallelepipedo\n");

scanf("%f" , &H);

if ((LBase>0)&&(ABase>0)&&(H>0)) {Area_Base = LBase* ABase;

Volume=Area_Base*H;

printf ("Volume = %f \n",Volume);

}

if ((LBase<=0)||(ABase<=0)||(H<=0))

printf("\nErrore:almeno una dimensione non maggiore di zero\n");

}

Programma esempio in C

... il programma C del calcolo del volume del parallelepipedo modificato per verificare il rispetto delle precondizioni ...

C - Strutture di controllo

Selezione

if (<condizione>)

<istruzione1>;

else

<istruzione2>;

se <condizione> è vera è eseguita <istruzione1> (è 1 sola istruzione) altrimenti, se <condizione> è falsa, è eseguita <istruzione2> (è 1 sola istruzione)

(5)

45 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

C - Strutture di controllo

Selezione altra forma:

if (<condizione>) {

<istruzioni1>;

} else {

<istruzioni2>;

}

se <condizione> è vera sono eseguite le <istruzioni1>

altrimenti se, <condizione> è falsa, sono eseguite le <istruzioni2>

dove <istruzioni1> e <istruzioni1> sono formate da più di 1 istruzione

C - Strutture di controllo

Esempio : Selezione

………

if (numero > 1000) {

a = b * numero;

printf(”%f”, a);

} else

c = b - numero;

(6)

47 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

#include<stdio.h>

main ( )

/* questo programma calcola l’area di un rettangolo */

{

float base, altezza, area;

printf (“immetti base \n”);

scanf (“%f” , &base);

printf(“immetti altezza \n“);

scanf(“%f” , &altezza);

if ((base > 0) && (altezza > 0)) {

area = base * altezza;

printf(“Area= %f \n”, area);

} else

printf(“Errore: base o altezza = <0 \n”);

}

Un semplice programma esempio

(7)

49 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Selezione a più vie in C Struttura switch in C:

switch (<espressione>) {

case c1:

S1;

break;

case c2:

S2;

break;

case cN:

Sn;

break;

[ default: Sdefault; break;

] }

semantica

Valuta valore <espressione>

caso valore c1 esegui S1; esci dalla struttura switch (break);

caso valore c2 esegui S2; esci dalla struttura switch (break);

caso valore cN esegui Sn; esci dalla struttura switch (break);

[caso valore diverso da c1 ,..., cN )

esegui Sdefault; esci dalla struttura switch (break);

] …. (è opzionale)

N.B. :break provoca l’uscita immediata dalla struttura switch

#include<stdio.h>

main ( )

/* questo programma stampa da 1 a 3 stelle o un ! */

{ ...

scanf("%d", &num);

switch (num) {

case 1: {printf("*\n"); break;}

case 2: {printf("**\n"); break;}

Esempio: stampa da 1, 2, o 3 stelle in base al numero (compreso tra 1 e 3) immesso , altrimenti stampa un ‘!’

Selezione a più vie in C

Struttura switch in C:

(8)

51 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

#include<stdio.h>

main ( )

/* questo programma stampa da 1 a 3 stelle o un ! */

{ ...

scanf("%d", &num);

if(num==1) printf("*\n");

else

if(num==2) printf("**\n");

else

if(num==3) printf("***\n");

else

printf("!\n");

}

Esempio: stampa da 1, 2, o 3 stelle in base al numero (compreso tra 1 e 3) immesso , altrimenti stampa un ‘!’

Selezione a più vie in C

La struttura switch può essere sostituita con una serie di strutture if else if

#include<stdio.h>

main ( )

/* questo programma stampa da 1 a 3 stelle o un ! */

{ ...

scanf("%d", &num);

if(num==1) printf("*\n");

else

if(num==2)

printf("**\n");

else

if(num==3)

printf("***\n");

else

printf("!\n");

}

Selezione a più vie in C

#include<stdio.h>

main ( )

/* questo programma stampa da 1 a 3 stelle o un ! */

{ ...

scanf("%d", &num);

switch (num) {

case 1:{printf("*\n");

break;}

case 2: {printf("**\n");

break;}

case 3: {printf("***\n");

break;}

default: {printf("!\n");

break;}

(9)

53 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Esercizio:

Scrivere un programma che letto un carattere in ingresso stampa un messaggio indicante se il carattere immesso è una lettera minuscola o maiuscola

… LPD …

// stampa se il carattere immesso è una cifra o una lettera minuscola o maiuscola

…..

char c;

read(“%c”, c);

switch ( c ) begin

case '0' : case '1' : case ’2' : case ’3' : case ’4' : case ’5' : case ’6' : case ’7' : case ’8' : case '9' : write( ‘Cifra ‘); break;

case 'a' : ...… : case 'z' : write( ‘ Lettera minuscola ‘); break;

case 'A' : ...… :case 'Z' : write( ‘ Lettera maiuscola ‘ ); break;

default : write( ‘ Altro Carattere ‘);

end

Selezione: switch

Program cifra_Lettera;

// stampa se il carattere immesso è una cifra o una lettera minuscola o maiuscola

char c;

begin read(“%c”, c);

if ((c >= ‘0’) and (c <= ‘9’)) then

write ( ‘Cifra’);

else

if ((c >= ‘a’) and (c <= ‘z’)) then

write( ‘ Lettera minuscola‘);

else

if (c >= ‘A’ and c <= ‘Z’) then

write( ‘ Lettera maiuscola ‘ );

Soluzione con if then else if LPD

La struttura switch può essere

sostituita con una serie di

strutture if else if

(10)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 55

#include <stdio.h>

main()

{// stampa se il carattere immesso è una cifra o una lettera minuscola o maiuscola char c;

scanf(“%c”, &c);

if ((c >= ‘0’) && (c <= ‘9’)) printf( "Cifra \n”);

else

if ((c >= ‘a’) && (c <= ‘z’))

printf( ‘ Lettera minuscola\n ‘);

else

if (c >= ‘A’ && c <= ‘Z’)

printf( ‘ Lettera maiuscola \n‘ );

else

printf( ‘ Altro Carattere\n ‘);

}

Soluzione con if else if in C

#include <stdio.h>

main() {

// stampa se il carattere immesso è una cifra o una lettera minuscola o maiuscola char c;

scanf(“%c”, c);

if ((c >= ‘0’) && (c <= ‘9’)) printf( ‘Cifra\n ‘);

else if ((c >= ‘a’) && (c <= ‘z’))

{ printf( ‘ Lettera minuscola\n ‘);

}

else if (c >= ‘A’ && c <= ‘Z’)

{ printf( ‘ Lettera maiuscola\n ‘ );

}

else printf( ‘ Altro Carattere\n ‘);

}

Soluzione con if else if

H

Lettera maiuscola

Schermo del video l’utente digita H

c = H

FALSO

FALSO

Vero

Riferimenti

Documenti correlati

L’insieme R 2 con queste operazioni ` e uno spazio vettoriale (le propriet` a della somma di vettori numerici e le propriet` a che legano le operazioni fra numeri reali,

Fissare un punto origine, due rette distinte passanti per esso, e due punti unit` a su di esse distinti dall’origine equivale a fissare un punto origine e due vettori non

punto; dopo il punto esclamativo ed interrogativo; quando si scrivono i nomi propri; quando si inizia un discorso diretto..  Leggi le frasi e metti la lettera maiuscola

In primavera nella fattoria sbocciano i fiori colorati durante l’estate il contadino miete il grano in autunno gli alberi perdono le foglie durante l’inverno un bianco manto di neve

— quindi per la prima coppia di aggettivi dovrai sommare il numero barrato nella scheda A con quelli delle schede B e C, riferiti sempre alla stessa coppia di

Esercizio: Scrivere un programma per la stampa di figure geometriche a livello (4), utilizzando una funzione per la stampa di una sequenza di caratteri (con lunghezza e carattere

Esegui tutti gli incroci possibili tra: individuo dalla pelle con lentiggini – individuo dalla pelle senza lentiggini e indica la % del fenotipo nella generazione filiale F

La  domanda  chiede  di  individuare,  fra  quattro  opzioni, quale titolo alternativo a “Carta contro  pixel” potrebbe essere adatto per sintetizzare il