In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno per errore. In C è possibile ottenere ciò nel seguente modo: • Con la direttiva al compilatore #define #define <identificatore> <valore> #include <stdio.h> #include <stdlib.h> #define MAXNUM 10 #define MINNUM 2 ... int x,y; x = MAXNUM; y = MINNUM; Conversione di lire in euro • • • • //convertitore lire/euro #include <stdio.h> #include <stdlib.h> #define FattConvLireEuro 1936.27 • • • • • • • • • • • • • • • • int main(int argc, char *argv[]) { int lire; float euro; printf("Programma di converione Lire->Euro.\n" ); printf("Inserisci il valore in Lire da convertire in Euro: \n"); scanf(“%d”,&lire); euro = lire / FattConvLireEuro; printf( "Il valore corrispondente in Euro e‘ %g: " , euro ); system("PAUSE"); return 0; } Istruzioni di Controllo Istruzioni che consentono di eseguire una certa sequenza di istruzioni, o eventualmente un'altra, in base al valore di una espressione booleana. IF-ELSE L'istruzione condizionale if-else ha due possibili formulazioni: if ( <Condizione> ) <Istruzione1> ; oppure if ( <Condizione> ) <Istruzione1> ; else <Istruzione2> ; • Si osservi che Istruzione1 e Istruzione2 sono istruzioni singole (una sola istruzione), se e` necessaria una sequenza di istruzioni esse devono essere racchiuse tra una coppia di parentesi graffe { }, come mostra il seguente esempio (si considerino X, Y e Z variabili intere): if ( X==10 ) X--; else { // istruzione composta Y++; Z*=Y; } #include <iostream> using namespace std ; int main() { char sex; int eta; printf(“Inserire il proprio sesso:\n”); printf(“ M sta per maschio\n”); printf(“ F sta per femmina\n”); scanf(“%c”, &sex); printf(“Inserire l'eta\n”); scanf(“%d”, &eta); if(sex=='m‘ || sex==‘M’) printf("Sei un maschio e hai %d anni“, eta); else // if(sex==‘f‘ || sex==‘F’) printf(" Sei una femmina e hai %d anni“, eta); } Conversione di unità di misura #include ….. int main() { double tc, tf, offset, conv_FC, conv_CF; offset=32.; Il punto di congelamento dell'acqua è di 32 gradi Fahrenheit, mentre il punto di ebollizione si trova a 212 gradi conv_FC=5./9.; printf(«Inserisci il valore in gradi Fahrenheit \n»); scanf(“%lf”, &tf); tc=(tf-offset)*conv_FC; printf( "Valore in gradi Celsius %f" , tc); conv_CF=9./5.; printf(«Inserisci il valore in gradi celsius \n»); scanf(“%lf”, &tc); tf=tc*conv+offset; printf( "Valore in gradi fahrenheit %f " , tf); system("PAUSE"); return 0; } Fahrenheit Celsius congelamento 32 0 ebollizione 212 100 Un grado Fahrenheit è 5/9 di un grado Celsius. ATTENZIONE: Le costanti 32., 9. e 5. sono tutte seguite dal . ad indicare che i relativi numeri sono usati nella rappresentazione in virgola mobile. Una costante razionale la cui parte decimale sia nulla va comunque scritta con il punto decimale, altrimenti sarà interpretata come intera Media tra due numeri Si scriva un programma in linguaggio C che legga due valori interi e visualizzi la loro media aritmetica. #include … int main() { int a, b ; float somma ; float media ; printf("Calcolo della media di due numeri\n\n") ; /* LEGGI I DUE NUMERI */ printf("Immetti il primo numero: ") ; scanf("%d", &a) ; printf("Immetti il secondo numero: ") ; scanf("%d", &b) ; /* CALCOLA LA SOMMA DEI DUE NUMERI */ somma = a + b ; media = somma / 2 ; //oppure media = ( a + b ) / 2 ; /* STAMPA IL RISULTATO */ printf("\n") ; printf("La media aritmetica di %d e %d e’ %f\n", a, b, media); …..; } Segno del numero Si realizzi un programma in linguaggio C che acquisisca da tastiera un numero e stampi un messaggio che indichi se tale numero sia positivo oppure negativo. #include … int main() { int a ; /* numero inserito */ /* LEGGI IL NUMERO */ printf("Immetti un numero: ") ; scanf("%d", &a) ; /* VERIFICA SE IL NUMERO E’ POSITIVO O NEGATIVO */ if ( a >= 0 ) { /* IL NUMERO E’ POSITIVO O NULLO */ printf("Il numero %d e’ positivo\n", a) ; } else { /* IL NUMERO E’ NEGATIVO */ printf("Il numero %d e’ negativo \n", a) ; } ….. } Equazioni di primo grado Data l’equazione ax + b = 0 con a e b inseriti da tastiera, scrivere un programma in linguaggio C per determinare il valore di x, se esiste, che risolve l’equazione. #include …. int main(….) 10 { float a, b ; /* coefficienti a e b */float x ; /* valore di x che risolve l’equazione */ printf("Risoluzione equazioni di primo grado\n") ;printf("Equazione nella forma: ax + b = 0\n") ; printf("Immetti coefficiente a: ") ;scanf("%f", &a) ; printf("Immetti coefficiente b: ") ;scanf("%f", &b) ; if( a != 0 ) { x=-b/a; printf("La soluzione e’ x = %f\n", x) ; } else {/* CASO a==0 */ if( b==0 ) printf("Equazione indeterminata (ammette infinite soluzioni)\n"); else printf("Equazione impossibile (non ammette soluzioni)\n"); } ……..