• 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!
11
0
0

Testo completo

(1)

45 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>;

}

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

dove <istruzioni> è più di 1 istruzione

(2)

47 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)

49 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;

Volume=Area_Base*H;

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

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

per verificare il rispetto delle precondizioni ...

(4)

51 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)

53 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)

55 Elementi di Informatica

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

Program area_rettangolo;

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

// rettangolo

FLOAT base, altezza, area;

begin

write (“immetti base”);

read (“%f” base);

write (“immetti altezza “);

read (“%f” altezza);

if ((base > 0) and (altezza > 0)) then begin

area = base * altezza;

write (“Area= “, “%f” area);

end else

write (“Errore: base o altezza = <0”);

endif end.

#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

LDP C

#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)

57 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 e/o altezza = <0 \n”);

}

… if ( ) … … if ( ) … else …

#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 =<0 \n");

}

… confronto tra le due versioni …

(8)

59 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;}

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

default: {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:

(9)

61 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;}

(10)

63 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 ‘ );

else

write( ‘ Altro Carattere\n ‘);

endif endif endif

Soluzione con if then else if LPD

La struttura switch può essere

sostituita con una serie di

strutture if else if

(11)

Elementi di Informatica

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

#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

— 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

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

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