Ultima modifica:
LEGGI QUESTO PRIMA DI CONTINUARE
Se non hai già letto le avvertenze/istruzioni presenti nella LEZIONE 1 ti invito a leggerle (puoi farlo da questo link: Lezione 1 ) , ho evitato di fare copia e incolla delle varie avvertenze/istruzioni poiché mi sembrava inutile aggiungere a ogni post tutto quel testo.
FILE ZIP DEL CORSO :
Vedi: https://drive.google.com/file/d/1sPuNna2S3b0sqmFHK448j4vKg1MVUlSM/view?usp=sharing
NOTA PER I LETTORI: Oramai si sa che a ogni lezione di questo corso c'è sempre una nota per il lettore dove mi scuso per il ritardo , e anche per questa lezione mi spiace per il ritardo, comunque penso che tornerò a pubblicare di nuovo almeno una lezione a settimana in modo stabile e farò anche delle modifiche alle precedenti lezioni seguendo i suggerimenti che mi sono stati dati dagli utenti.
Abbiamo visto un pò di istruzioni e operatori fondamentali in C, ma è ora di passare a qualcosa di più pratico.
1 - Operazioni preliminari
- Crea un file con estensione
.c
- Crea un file di testo e cambia la parte finale del nome del file (dovrebbe essere ".txt") da ".txt" a ".c"
- Se non visualizzi l'estensione del file allora devi disabilitare la funzione che nasconde le estensioni dal tuo file explorer o sistema operativo . (Se non sai come si fa ti lascio qualche link).
- Crea un file di testo e cambia la parte finale del nome del file (dovrebbe essere ".txt") da ".txt" a ".c"
- Apri il file nell'editor di testo o IDE che hai scelto.
- Copia e incolla il seguente codice:
C:
#include <stdio.h>
int main()
{
return 0;
}
2 - include e stdio
La stdio (standard i/o) è una libreria standard del C (viene fornita insieme con il compilatore), essa permette di utilizzare diverse funzioni di input e output come:
- printf (output)
- scanf (input)
non approfondirò troppo questo argomento perché le librerie sono un argomento che introdurrò più avanti, tuttavia ti basti sapere che una libreria è un file che contiene codice (nel nostro caso probabilmente codice C), soprattutto che contiene funzioni (di cui parleremo in futuro), che puoi sfruttare nei tuoi programmi.
Per esempio printf e scanf (di cui ti parlerò tra poco) sono definite nella libreria stdio, senza questa libreria non potremmo usare queste utilissime funzioni, e quindi dovremmo crearle da 0 (cosa che è tutt'altro che banale).
Per usare una libreria (e di conseguenza poter usare le funzioni che mette a disposizione) si usa la seguente istruzione:
C:
#include <nome_libreria> //se volgiamo usare librerie standard
#include "percorso_file_libreria" //se volgiamo usare librerie non standard
3 - int main
Anche qui non approfondirò molto poiché ne parlerò meglio quando si parlerà di funzioni, tuttavia per il momento quello che dobbiamo sapere è :
- La funzione con nome "main" che si presenta di solito con la sintassi:
C:
int main()
{
return 0;
}
- è praticamente il nostro programma, tutte le istruzioni che vogliamo vengano eseguite devono essere scritte tra le parentesi graffe del main:
C:
int main()
{
int a;
printf("Hello world");
return 0;
}
- Le istruzioni vengono eseguite dall' alto verso il basso (se non ci sono particolari istruzioni), quindi in questo caso verrà prima dichiarata la variabile e poi eseguita la funzione printf.
4 - Printf
Per stampare a schermo qualcosa si usa la funzione printf:
C:
printf("messaggio",espressione);
La printf permette di:
- mostrare messaggi a schermo:
C:
printf("messaggio da stampare");
- mostrare contenuto di variabili:
C:
printf("il valore della variabile è: %specificatore_formato", variabile);
- mostrare risultato di espressioni:
C:
printf("risultato: %specificatore_formato", variabile+variabile2);
4.1 - Specificatori di formato
Gli specificatori di formato sono usati dalla printf e da altre funzioni e specificano il tipo di un dato che andremo ad usare:
- Per dire alla printf che deve stampare il valore di una variabile intera allora dovremo usare lo specificatore "%d" che è quello usato per gli interi.
C:
printf("Il valore della variabile è: %d", variabile);
- Per dire alla printf che deve stampare il valore di una variabile char allora dovremo usare lo specificatore "%c" che è quello usato per i caratteri.
C:
printf("Il valore della variabile è: %c", variabile);
Qui puoi trovare una lista dei possibili specificatori di formato (quelli più usati):
per una lista più dettagliata ti rimando a fonti esterne:
LINK:
È anche possibile usare più specificatori di formato alla volta:
C:
variabile 1 = 10;
variabile 2 = 20;
printf("Valore 1:%d Valore 2: %d",variabile,variabile2);
//risultato: Valore 1:10 Valore 2:20
4.2 - Sequenze di escape
La printf permette di stampare anche caratteri speciali che ci permettono di formattare il testo:
per una lista più dettagliata ti rimando a fonti esterne:
LINK:
5 - Scanf
La scanf ci permette di prendere dati in input dalla tastiera:
C:
scanf("%specificatore_formato", &variabile);
La scanf per essere usata richiede che indichiamo:
- il tipo di dato che riceveremo da tastiera (tramite lo specificatore di formato)
- l'indirizzo di memoria in cui salvare il dato (se vogliamo salvare il dato in una variabile allora dobbiamo inserire dopo la "&" il nome della variabile ).
La scanf prende in input ciò che viene digitato da tastiera dall'utente e si ferma quando incontra un "\n" cioè un ritorno a capo.
6 - Primo programma in C
Sulla base di quello che abbiamo imparato finora creiamo ora un programma che prende due numeri da tastiera e stampa la relativa somma:
C:
#include <stdio.h>
int main()
{
int a,b;
printf("Inserisci il primo numero:");
scanf("%d",&a);
printf("\nInserisci il secondo numero:");
scanf("%d",&b);
printf("\nrisultato: %d",a+b);
return 0;
}
7 - Commenti
I commenti all'interno del codice sono uno degli strumenti più utili per i programmatori, infatti essi sono ottimi per annotare informazioni,promemoria,indicazioni sul funzionamento di un pezzo di codice ecc... e tutto questo all'interno del codice stesso.
I commenti non sono considerate istruzioni da eseguire, quindi il compilatore le ignorerà.
Per inserire un commento all'interno del codice possiamo usare due sintassi:
- inline (su una sola riga)
7 - Commenti
I commenti all'interno del codice sono uno degli strumenti più utili per i programmatori, infatti essi sono ottimi per annotare informazioni,promemoria,indicazioni sul funzionamento di un pezzo di codice ecc... e tutto questo all'interno del codice stesso.
I commenti non sono considerate istruzioni da eseguire, quindi il compilatore le ignorerà.
Per inserire un commento all'interno del codice possiamo usare due sintassi:
- inline (su una sola riga)
- multi-riga (cioè possiamo scrivere il commento su più righe)
8 - Indentazione del codice
Quando scrivi del codice è buona norma indentarlo, cioè aggiungere degli spazi (2 o 4) prima dell'inizio dell'istruzione quando essa è contenuta in qualcosa, sia essa una funzione o qualsiasi particolare istruzione che richiede l'uso delle parentesi graffe (tra poco vedremo qualche esempio e nelle pros.
Generalmente si usa il TAB o "tabulazione" che è un pulsante che si trova sulla tastiera che inserisce 4 spazi.
Se usate una tastiera con layout italiano allora lo trovate affianco ai tasti "Q,W,E,R,T,Y" se invece avete un layout non italiano la posizione sarà probabilmente la stessa ma i tasti affianco saranno diversi.
Usare i TAB aiuta rendere più leggibile il codice , per farvi capire quanto sia utile vi farò vedere un programma con molte linee di codice con e senza indentazione:
9 - Tipi Scalari
Fino ad ora abbiamo lavorato con variabili che ci permettevano di contenere un valore, che poteva cambiare rimanendo però dello stesso tipo della variabile, questo tipo di variabili viene detto scalare.
10 - Tipi aggregati
Adesso inizieremo a parlare dei tipi aggregati che ci permettono di creare una variabile che può contenere più valori dello stesso tipo, quindi un'aggregazione di valori.
11 - Array monodimensionali
Un array (anche detto vettore) è un'insieme di dati, tutti dello stesso tipo, che sono ordinati in memoria uno dopo l'altro.
Tale gruppo di dati è identificato univocamente con un nome (proprio come avviene per le normali variabili).
ora vediamo come dichiarare un'array monodimensionale:
C:
data-type identificatore [ nr.elementi ];
ad esempio:
C:
int array [12]; //abbiamo creato un'array di 12 elementi che si chiama array.
Ora non ci resta che inizializzarlo, e possiamo farlo in questi modi:
C:
int array [12] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
//oppure
int array [] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
è possibile anche dichiarare e inizializzare array costanti:
C:
const data-type identificatore [ nr.elementi ];
const int array [] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
11.1 - Lettura array monodimensionale
Per accedere ai valori contenuti in un array usiamo l'indice:
l'indice ci permette di accedere ai valori presenti nel vettore, il valore dell'indice indica la posizione dell'elemento all'interno del vettore (partendo da 0).
11.2 - Scrittura in un array monodimensionale
Per la scrittura di un valore all'interno di un array si usa la seguente sintassi:
C:
array[indice] = valore_da_assegnare;
12 - Inizializzatori designati
A partire dalla versione C99 è possibile usare i valori designati, che ci permettono di specificare esplicitamente in quale posizione salvare un valore all'interno di un array.