Lezioni di Informatica
"Una volta che abbiate conosciuto il volo, camminerete sulla terra guardando il cielo" [ L. da Vinci ]
Informazioni sul Sito
N. visitatori  000059263  dal 21/01/2007  |   e-mail: ksoft64camera@gmail.com   
Cerca nel sito
Documenti collegati alla pagina
  Input / Output Standard (C e C++)
Dati
Tipi di dati fondamentali in C

  • char
    Significa carattere e occupa un byte. Per costruire una stringa in C si ricorre a un vettore di char.
  • int
    E' un tipo numerico intero e può assumere valori compresi tra -32768 e +32767
  • float
    E' un tipo numerico frazionario e può assumere valori compresi tra 3.4E-38 e 3.4E+38; occupa 4 byte
  • double
    E' un tipo numerico frazionario e può assumere valori compresi tra 1.7E-308 e 1.7E+308; occupa 8 byte

Costanti

Sono dati che non possono cambiare il loro valore nel corso dell'esecuzione del programma. Si dichiarano tramite la direttiva #define:

#define costante valore 
Esempio:
#define N 10
Come si può notare si utilizzano per convenzione i caratteri maiuscoli per definire le costanti. E' solo per distinguere questo tipo di dati rispetto ai dati variabili.

Variabili

Sono dati che cambiano il loro valore nel corso dell'esecuzione del programma. Si dichiarano così:

tipo variabile [ = valore]; 
Esempio:
int eta = 12;
oppure:
int eta;
nel primo caso la variabile eta viene inizializzata a 12 anche se poi nel programma può cambiare; nel secondo caso, visto che non ha un valore iniziale, assume il valore standard per i numeri interi che è zero.

Inserimento dei dati da tastiera [scanf()]

La libreria stdio.h fornisce la funzione scanf() che acquisisce una o più variabili (argomenti) da tastiera. Il formato è:

scanf ("stringa_di_controllo", lista_argomenti);
La stringa_di_controllo può contenere:
  • specificatori di formato (v. tabella)
  • spazi, tabulazioni, ritorno a capo
  • caratteri diversi dallo spazio bianco
Esempi:
per inserire un numero intero da tastiera (n) si scrive:
printf("Inserire un numero intero: ");
scanf("%d", &n);
per inserire due numeri interi (a e b) separati da una virgola si scrive:
printf("Inserire 2 numeri intero a e b separati da una virgola: ");
scanf("%d,%d", &a, &b);
per inserire una stringa s si scrive:
printf("Inserire una stringa: ");
scanf("%s", s);
Nota importante:
si può notare che, prima di ogni variabile, viene inserito il simbolo di indirizzo di memoria (&) tranne che per le stringhe che vengono considerate come array di char e quindi sono considerate puntatori al primo char.

La funzione gets()

Quando si inserisce una stringa con scanf() non è possibile scrivere caratteri di punteggiatura o spazi perché questi farebbero terminare la stessa (es. se scrivessi "Rossi Carlo" verrebbe memorizzato solo "Rossi").
Grazie alla funzione gets() è possibile leggere un testo utilizzando qualsiasi carattere fino a quando non si digita il tasto INVIO.
Necessita di 1 parametro che rappresenta il nome della variabile

Ecco un esempio:

 #include <stdio.h>
char testo [1000];
int main()
{
	printf("Inserire un testo: ");
	gets(testo);
	printf("\n%s\n", testo);
	return 0;
}

Visualizzazione dei dati [printf()]

La libreria stdio.h fornisce la funzione printf() che visualizza dati. Il formato è

printf ("stringa_di_controllo", lista_argomenti);
La stringa_di_controllo può contenere:
  • caratteri che vengono scritti inalterati sullo schermo
  • direttive di conversione che descrivono la modialità di visualizzazione (v. tabella)
Ecco alcuni esempi:
Se si ha impo = 23.56, scrivendo
printf("Importo: %f", impo);
si ottiene:
Importo: 23.559999
scrivendo, invece
printf("Importo: %10.2f", impo);
si ottiene:
Importo:      23.56
Infatti si ottiene un formato di visualizzazione di 10 caratteri complessivi, di cui 2 rappresentano la parte decimale.

Tabella dei formati (più usati) per l'Input/Output standard
Codice scanf() printf()
%c legge un solo carattere visualizza un solo carattere
%d legge un decimale intero visualizza un decimale intero
%s legge una stringa visualizza una stringa
%f legge un numero in virgola mobile visualizza un numero in virgola mobile
%p legge un puntatore visualizza un puntatore
%x legge un numero esadecimale visualizza un numero esadecimale

Torna a inserimento dati  Torna a visualizzazione dati

Operatori aritmetici

operatore esempio spiegazione
=
a=0; si assegna alla variabile a il valore 0
+
a = b + c;
a = a + 1;
a ++;
a = a + 6;
a += 6;
a = a + b;
a +=b;
si assegna alla variabile a la somma tra b e c
si incrementa di una unità la variabile a
si incrementa di una unità la variabile a
si incrementa di 6 unità la variabile a
si incrementa di 6 unità la variabile a
si incrementa di b unità la variabile a
si incrementa di b unità la variabile a
-
a = b - c;
a = a - 1;
a - -;
a = a - 6;
a - = 6;
a = a - b;
a - = b;
si assegna alla variabile a la differenza tra b e c
si decrementa di una unità la variabile a
si decrementa di una unità la variabile a
si decrementa di 6 unità la variabile a
si decrementa di 6 unità la variabile a
si decrementa di b unità la variabile a
si decrementa di b unità la variabile a
*
a = b * c;
a = a * 2;
a *= 2;
a = a * b;
a *= b;
si assegna alla variabile a il prodotto tra b e c
si moltiplica a per 2 assegnando il risultato ad a
si moltiplica a per 2 assegnando il risultato ad a
si moltiplica a per b assegnando il risultato ad a
si moltiplica a per 2 assegnando il risultato ad a
/
a = b / c;
a = a / 2;
a /= 2;
a = a / b;
a /= b;
si assegna alla variabile a il quoziente tra b e c
si divide a per 2 assegnando il risultato ad a
si divide a per 2 assegnando il risultato ad a
si divide a per b assegnando il risultato ad a
si divide a per 2 assegnando il risultato ad a
%
a = b % c;
a = a % b;
a%=b;
assegna ad a il resto della divisione tra i due interi b e c
assegna ad a il resto della divisione tra l'intero a e b
assegna ad a il resto della divisione tra l'intero a e b

Operatori logici

operatore esempio spiegazione
!
a = ! b; si assegna alla variabile a la negazione di b;
in pratica, se b è maggiore di zero allora a assume il valore 1 altrimenti assume il valore 0
&&
a = b && c; si assegna alla variabile a il prodotto logico (AND) tra b e c
||
a = b || c; si assegna alla variabile a la somma logica (OR) tra b e c

Operatori di confronto

operatore esempio spiegazione
==
if (a == b) z=16; else z=0; si controlla, tramite la struttura condizionale if, se a è uguale e b e, in questo caso si assegna a z il valore 16, altrimenti z assume il valore zero
!=
if (a != b) z=16; else z=0; si controlla, tramite la struttura condizionale if, se a è diverso da b e, in questo caso si assegna a z il valore 16, altrimenti z assume il valore zero
>
if (a > b) z=16; else z=0; si controlla, tramite la struttura condizionale if, se a è maggiore di b e, in questo caso si assegna a z il valore 16, altrimenti z assume il valore zero
<
if (a < b) z=16; else z=0; si controlla, tramite la struttura condizionale if, se a è minore di b e, in questo caso si assegna a z il valore 16, altrimenti z assume il valore zero
>=
if (a >= b) z=16; else z=0; si controlla, tramite la struttura condizionale if, se a è maggiore o uguale a b e, in questo caso si assegna a z il valore 16, altrimenti z assume il valore zero
<=
if (a <= b) z=16; else z=0; si controlla, tramite la struttura condizionale if, se a è minore o uguale a b e, in questo caso si assegna a z il valore 16, altrimenti z assume il valore zero