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");
}
……..