RICORDA CHE:
ogni istruzione di C termina con un ; (PUNTO E VIRGOLA)
int main ()
il corpo della funzione può essere scritto anche tutto in una
riga
il compilatore ignora gli spazi bianchi, ma aggiungere righe in più aiuta a
rendere il codice più organizzato
il linguaggio C è case sensitive
COMMENTI
I commenti all’interno delle righe iniziano con il doppio slash // e tutto quello
che è contenuto dal doppio slash fino alla fine della riga sarà ignorato dal
compilatore.
VARIABILI
Le variabili sono come dei contenitori che servono per memorizzare i valori dei
dati (come numeri e caratteri).
Tutte le variabili devono essere identificate con dei nomi univoci o
IDENTIFICATORI (che si consiglia siano descrittivi rispetto alla funzione della
variabile) che:
- possono contenere lettere, cifre e trattini bassi
- devono iniziare con una lettera o un trattino basso
- sono sensibili alle Maiuscole e minuscole
- non possono contenere spazi bianchi o caratteri speciali
Esistono diversi tipi di variabili e ognuno di essi specifica la dimensione e il tipo
di informazione che la variabile memorizzerà:
int: numeri interi (2/4 bytes)
float: numeri decimali con fino a 6-7 cifre decimali (4 bytes)
double: numeri decimali con fino a 15 cifre decimali (8 bytes)
float
N.B. tra e double è sicuramente più sicuro usare il double per avere
una maggiore precisione approssimativa, ma nota che il double occupa il
doppio della memoria.
char: caratteri singoli (che sono circondati da un singolo apice come ‘a’ o
‘B’) (1 byte)
N.B. per memorizzare caratteri NON singoli o intere parole usa le stringhe
Per creare una variabile bisogna specificarne il TIPO e assegnarle un VALORE.
int
La DICHIARAZIONE di una variabile avviene scrivendo dentro la funzione
main ( :
type variableName = value
type : è il tipo di variabile (come int, float e char)
variableName : è il numero della variabile
= : è usato per assegnare un valore alla variabile
value : indica il valore assegnato alla variabile (la variabile può essere
anche assegnata successivamente)
Per dichiarare più di una variabile dello stesso tipo si può inserire dopo il
type un elenco separato tra loro da virgole
A volte può accadere che si debba convertire il valore di un tipo di dati in un
altro tipo: CONVERSIOINE DEL TIPO che può essere:
- conversione implicita: si assegna un valore
di un tipo (int) a un altro tipo (float)
- conversione esplicita: si inseriscono le
parentesi ( ) davanti al valore
es: float sum = (float) 5/2
printf (“%f”, sum);
Se in un programma non si vogliono cambiare ogni volta le variabili si possono
const type variableName = value
usare le COSTANTI con la parola chiave
DICHIARAZIONI
Un PROGRAMMA è un elenco di ISTRUZIONI = DICHIARAZIONI che il computer
deve eseguire.
Molti programmi di C contengono diverse affermazioni e le istruzioni vengono
eseguite nello stesso ordine in cui sono state scritte.
Alcuni esempi di dichiarazione sono:
printf (“… %.. \n”, variableName);
Questa dichiarazione dice al compilatore di stampare il testo contenuto
tra le virgolette (“”) sullo schermo
Per inserire una nuova riga all’interno della stampa sullo schermo è
necessario inserire il carattere SEGUENZA DI ESCAPE \n
- costringe il cursore a cambiare la sua posizione all’inizio della riga
successiva sullo
schermo
- non è necessario inserirlo all’interno della dichiarazione ma può
aiutare nella lettura
del programma
Con questa dichiarazione vengono usati gli SPECIFICATORI DI FORMATO
per ‘dire’ al compilatore che tipo di dati sta contenendo la variabile. Inizia
con un segno di % seguito da un carattere, la chiusura delle doppie
virgolette, una virgola e poi il nome della variabile di riferimento
dichiarata: int
-“%d” : per una variabile intera
-“% . n f” : per una variabile
float
decimale
-“% . n lf” : per una variabile
double
decimale
N.B. stampando un numero decimale, l’output mostrerà molte più
cifre dopo la virgola decimale; per rimuovere gli zeri extra si usa il
punto (.) seguito da un numero (n) che specifica quante cifre
dovrebbero essere mostrate dopo il punto decimale
-“%c” : per una variabile di carattere
char stringa di testo
-“%s” : per una
È importante utilizzare il formato corretto per il tipo di dati specificato
altrimenti il
programma potrebbe produrre errori o bloccarsi printf ( )
Per stampare diversi tipi in una singola funzione bisogna inserire
due volte gli specificatori di formato e due volte il nome della variabile
dopo le virgole
es: int myNum = 15;
char myLetter = 'D';
printf ("My number is %d and my letter is %c", myNum,
myLetter);
scanf (“%d”, &variableName);
Questa dichiarazione viene usata per ottere input dall’utente ed è
formata da 2 parti:
1) la stringa di formato: %d, dice alla scanf di leggere un input che
rappresenta un intero
Al posto della d (che corrisponde alla variabile intera) possiamo
trovare anche c (variabile char), s (stringa di testo), f (variabile float)
2) & e la variabile serve per ‘dire’ alla scanf dove deve essere
memorizzato il valore d’ingresso.
La scanf () inoltre permette di inserire diversi input di variabili in una sola
volta che devono essere divisi da una virgola: scanf("%d %c",
&variabileIntera1, &variabileChar2);
Quando utilizziamo le stringhe o gli array nella scanf () è necessario
specificarne la dimensione, altrimenti non si memorizzerebbero
abbastanza caratteri.
Questa funzione ha però delle limitazioni: considera gli spazi come la fine
dei caratteri.
OPERATORI
Gli OPERATORI vengono utilizzati per eseguire operazioni su variabili e valori. Il
linguaggio C divide gli operatori nei seguenti gruppi:
operatori aritmetici, utilizzati per eseguire operazioni matematiche
comuni:
operatori di assegnazione, utilizzati per assegnare valori alle variabili:
operatori di confronto, utilizzati per confrontare valori o variabili. Il valore
che otteniamo con questi operatori sono 1 o 0 che significano vero (1) e
falso (0):
operatori logici, utilizzati per determinare la logica tra variabili e valori
combinando più condizioni:
operatori bitwise
DATI BOOL
Spesso nella programmazione ci sarà la necessità di utilizzare un tipo di dati
che può avere un solo tipo di valori come SI/NO oppure VERO/FALSO; per
questo motivo esistono i dati bool, i quali rappresentano delle variabili che
possono essere o vere o false.
È importante sapere che i valori booleani vengono restituiti come numeri interi:
1 = vero
0 = falso
Per creare una variabile bool bisogna inserire all’inizio del programma il
seguente file di intestazione
#include <stdbool.h>
bool isProgrammingFun = true;
bool isFishTasty = false;
printf (“%d”, isProgramingFun); //rida 1 (vero)
printf(“%d”, inFishTasty) ); //rida 0 (falso)
(inoltre bisogna necessariamente usare il %d quando andiamo a stampare la
variabile)
ISTRUZIONI
Nel linguaggio C le istruzioni si dividono in:
- ISTRUZIONI DI SELEZIONE:
Sapendo che il C supporta le solite condizioni logiche della matematica:
A minore di B: A<B
A minore o uguale a B: A<=B
A maggiore di B: A>B
A maggiore o uguale a B: A>=B
A uguale a B: A==B
A diverso da B: A!=B
Il linguaggio C usa le seguenti affermazioni condizionali:
if (condizione) {
(parte del programma che deve essere eseguita se la condizione è
VERA)
}
Questa istruzione è usata per far eseguire una parte di codice se
una certa condizione è vera
if (condizione) {
(parte del programma che deve essere eseguita se la condizione è
VERA)
} else {
(parte del programma che deve essere eseguita se la condizione è
FALSA)
}
Questa istruzione è usata per specificare cosa fare in caso la
condizione fosse falsa
if (prima condizione) {
(parte del programma che deve essere eseguita se la prima
condizione è VERA)
} else if (seconda condizione) {
(parte del programma che deve essere eseguita se la seconda
condizione è VERA)
} else {
(parte del programma che deve essere eseguita se la seconda
condizione è VERA)
}
- ISTRUZIONI DI ITERAZIONE:
Sono istruzioni che ci permettono di creare i cicli
while (condizione) {
(parte del programma che deve essere eseguita se la condizione è
VERA)
}
Il loop del while va avanti finché la condizione specificata sarà vera
- do {
(parte del programma che deve essere eseguita);
} (condizione);
while
è una variante del loop del while che esegue una parte del
programma almeno una volta (anche se la condizione è falsa) prima
di verificare che la condizione contenuta nel while sia vera e che
dopo il while continuerà finché rimarrà vera.
- for (espressione 1; espressione 2; espressione 3) {
(parte del programma che deve essere eseguita)
}
Questa istruzione è comoda quando si sa quante volte si vuole
ripetere una parte del programma (tra l’altro è molto simile al
while):
l’espressione 1: viene eseguita una volta prima
dell’esecuzione del blocco di codice
l’espressione 2: definisce la CONDIZIONE per l’esecuzione del
blocco di codice
l’espressione 3: viene eseguita ogni volta dopo che il blocco
di codice è stato eseguito.
- ISTRUZIONI DI SALTO:
All’interno di un ciclo si possono usare le dichiarazioni di break (per uscire
dal ciclo) e di continue (per saltare un determinato valore nel ciclo e
andare subito al successivo)
es:
int i; int i; int i = 0; int i = 0;
for (i = 0; i for (i = 0; i while (i < 10) { while (i < 10) {
< 10; i++) { < 10; i++) { if (i == 4) { if (i == 4) {
if (i == 4) { if (i == 4) { break; continue;
break; continue; } }
} } printf("%d\n", printf("%d\n",
printf("%d\n", printf("%d\n", i); i);
i); i); i++; i++;
} } } }
ARRAY (a dimensione singola)
Gli array vengono usati per memorizzare più valori in una singola variabile,
invece di dichiarare variabili singole e separate per ogni valore. Per creare un
array bisogna definire la tipologia di dati, poi specificare il nome del