theme | layout | title | highlighter | class | info | lineNumbers | download | fonts | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default |
cover |
La programmazione in C |
shiki |
text-center |
La programmazione in C |
true |
true |
|
- L'ambiente online Replit
- La struttura di base dei programmi in C
- I tipi di dati fondamentali
- Variabili
- Costanti
<style> img{ margin: auto; width: 90%; } </style>
L'esempio mostra la struttura di un tipico programma in C.
L'istruzione int main(void)
dichiara una funzione che non è di una libreria: infatti main è la funzione principale, che dev'essere presente in ogni programma in C.
#include <stdio.h>
int main(void)
{
int eta;
char pokemon[] = "Bulbasaur";
eta = 6;
printf("Il mio pokemon preferito è: %s", pokemon);
printf(", da quando avevo %d anni.\n", eta);
return 0;
}
Un programma si compone di tre parti fondamentali:
#include <stdio.h>
int main(void)
{
int eta;
char pokemon[] = "Bulbasaur";
eta = 6;
printf("Il mio pokemon preferito è: %s", pokemon);
printf(", da quando avevo %d anni.\n", eta);
return 0;
}
- Librerie
- Main
- Corpo del programma
Ogni istruzione deve terminare con il punto e virgola (;).
graph TD
A[Tipi di dato]
A --> B(Interi)
A --> C(Reali)
A--> D(Caratteri)
B--> E(int, short, long)
C--> F(float, double, long double)
D--> G(char)
Tipo | N° bit | Minimo | Massimo |
---|---|---|---|
short | 16 | -32 768 | +32 767 |
int | 32 | -2 147 483 648 | +2 147 483 647 |
long | 64 | -9.223372e+18 | +9.223372e+18 |
Tipo | N° bit | Minimo | Massimo |
---|---|---|---|
unsigned short | 16 | 0 | 65 5365 |
unsigned int | 32 | 0 | 4 294 967 295 |
unsigned long | 64 | 0 | circa 1.84e+19 |
Tipo | N° bit | Cifre significative |
---|---|---|
float | 32 | 6-7 |
double | 64 | 15-16 |
long double | 128 | ? |
Una variabile char
occupa 8 bit di memoria.
#include <stdio.h>
int main(void)
{
char var1 = 'A';
char var2 = 65;
printf("Le due variabili hanno lo stesso contenuto!\n");
printf("Contenuto di var1: %c\n", var1);
printf("Contenuto di var2: %c\n", var2);
return 0;
}
Una variabile è un'area di memoria nella RAM caratterizzata da:
- tipo
- nome (identificatore)
Dichiarazione
Per poter utilizzare una variabile è necessario dichiararla, ovvero comunicare al compilatore che si intende utilizzare un dato di un certo tipo.
int numero, x, y;
float temperatura;
char car;
Inizializzazione
All'atto della dichiarazione, è possibile assegnare un valore alle variabili. (consigliato)
int numero, x = 0, y = 0;
Altre operazioni:
Assegnazione di un valore
numero = 666; 🤟😈
Assegnazione di una variabile
numero = x;
Assegnazione di un'espressione
numero = 666 / 2;
y = numero + x;
È possibile eseguire operazioni arimetiche solo tra variabili dello stesso tipo, altrimenti il compilatore ci segnalerà un errore (studieremo più avanti alcune eccezioni!).
Alcune regole da rispettare per scegliere i nomi delle variabili/costanti.
Un identificatore può essere composto da:
- lettere maiuscole e minuscole
- numeri
- simbolo di underscore
Pippo, x1, x2, mano_dx, mano_sx ✅
Un identificatore non può:
- iniziare con un numero
- essere una parola chiave del linguaggio C (es: main, return ...)
10_x, main, return, ❌
Il linguaggio C è sensibile alle maiuscole/minuscole, quindi l'identificatore id
è diverso da ID
.
#include <stdio.h>
int main(void)
{
float area;
float base;
float altezza;
base = 3;
altezza = 5;
area = base * altezza;
printf("Area rettangolo: %f\n", area);
return 0;
}
Ci permette di comunicare in output (sulla console) i risultati dell'elaborazione.
#include <stdio.h>
int main(void)
{
int i = 2;
float r = 7.8;
char car = '@';
printf("Questa è una stringa 123@! \n");
printf("Numero intero: %d \n", i);
printf("Numero reale: %f \n", r);
printf("Nome: %s \n", "Salvo");
printf("Carattere: %c \n", car);
return 0;
}
- stringa di caratteri
- %d per stampare un intero
- %f per stampare un reale
- %c per stampare un carattere
- %s per stampare una stringa
- \n per andare a capo
int main(void)
{
float a = 3;
float b = 5;
float temp;
printf("Valore a prima: %f \n", a);
printf("Valore b prima: %f \n", b);
temp = a;
a = b;
b = temp;
printf("Valore a dopo: %f \n", a);
printf("Valore b dopo: %f \n", b);
return 0;
}
Una costante è un'area di memoria nella RAM che identifica dati che non possono essere modificati.
Nel linguaggio C esistono due modi per definire una costante:
- attraverso la parola chiave
const
- attraverso la direttiva al preprocessore
#define
Nel primo caso, la costante viene vista come una "variabile con valore fisso".
Nel secondo caso, il compilatore sostituirà a tutte le occorrenze dell'identificatore il valore associato, senza che vi sia alcuna locazione di memoria associata alla costante.
#include <stdio.h>
int main(void)
{
const float PIGRECO = 3.1415;
float raggio = 5;
float area;
area = raggio * raggio * pigreco;
printf("Area del cerchio: %f \n", area);
return 0;
}
- const per definire una costante
convenzione: costanti con identificatori maiuscoli
#include <stdio.h>
#define PIGRECO 3.1415
int main(void)
{
float raggio = 5;
float area;
area = raggio * raggio * PIGRECO;
printf("Area del cerchio: %f \n", area);
return 0;
}
- define per definire una costante
convenzione: costanti con identificatori maiuscoli
Operatore | Esempio | Significato |
---|---|---|
+ | a + b | Somma tra a e b |
- | a - b | Differenza tra a e b |
* | a * b | Moltiplicazione tra a e b |
/ | a / b | Divisione tra a e b |
% | a % b | Resto della divisione intera tra a e b |