Sei sulla pagina 1di 18

Corsi di Laurea in

06- Introduzione al linguaggio C Ingegneria Biomedica e


Ingegneria Elettronica per
l'Energia e L’Informazione
a.a. 2020-2021
Sede di Cesena

Sara Montagna
email: sara.montagna@unibo.it
Ringraziamenti

❖ Professor Moreno Marzolla

Copyright © 2016–2020 Moreno Marzolla http://www.moreno.marzolla.name/teaching/FINFA/


Copyright © 2021 Sara Montagna
!2
Un semplice programma in C:
stampare una riga di testo

❖ Pur essendo semplice il programma illustra diverse caratteristiche


importanti del linguaggio C
Un semplice programma in C:
stampare una riga di testo

1. Commenti
❖ Le righe di commento iniziano con il simbolo //
❖ I commenti vanno inseriti per documentare i programmi e migliorarne la leggibilità
❖ Commenti multilinea con /* …. */
Un semplice programma in C:
stampare una riga di testo

2. Direttiva #include
❖ E’ una istruzione per il preprocessore C
❖ Viene elaborata prima della compilazione
❖ La riga 2 dice di includere nel programma i contenuti del file header di input/output
Un semplice programma in C:
stampare una riga di testo

3. Righe vuote e caratteri di spaziatura


❖ Righe vuote e tab per rendere i programmi più leggibili
OUTPUT INPUT

4. La funzione main
❖ L’utilizzo delle parentesi tonde dopo main sta ad indicare che main è un blocco del
programma che definisce una funzione
❖ Il corpo della funzione è incluso tra {…}
❖ Le funzioni possono restituire informazioni (output)
❖ La parola chiave int sta ad indicare che la funzione restituisce un valore intero

❖ Le funzioni possono ricevere informazioni. (input)


❖ Il void qui tra parentesi sta ad indicare che la funzione non riceve alcun dato

❖ Ciascun programma in C inizia l’esecuzione dalla funzione main


Un semplice programma in C:
stampare una riga di testo

5. Istruzione di output
❖ L’esecuzione della riga 8 comporta la stampa della stringa di caratteri compresa tra virgolette

❖ La riga 8 è una istruzione e deve terminare con il carattere ;

❖ Il carattere \viene chiamato carattere di escape e non viene stampato



insieme alla lettera \n che segue forma una sequenza di escape
❖ Indica che la printf deve fare qualcosa fuori dall’ordinario, in questo caso: andare a capo (newline)
Comuni sequenze di escape
Sequenza di
Descrizione
escape

\n Nuova riga: posiziona il cursore all’inizio della riga successiva

\t Tab orizzontale. Sposta il cursore alla successiva tabulazione

\\ Backslash. Inserisce un carattere di backslash in una stringa

\” Doppie virgolette. Inserisce un carattere di doppie virgolette in una stringa


Compilazione ed esecuzione in C
Errori di
compilazione
File Compilatore
Editor Sorgente C
Code::Blocks,
Jedit, Notepad++... hello.c gcc hello.c -o hello

Librerie
Errori in esecuzione /
Inizio .o, .lib,
Errori logici
.so

Esecuzione
./hello Nessun errore

Esecuzione
corretta

Programma
“funzionante”
Errori

❖ Si fano sempre erori quado si scrife un programa!


❖ Bisogna imparare a gestirli
❖ Capire i messaggi di errore durante l'esecuzione
❖ Capire perché il programma non fa quello che vogliamo
❖ “Ciclo” editing-compilazione-esecuzione
Un altro esempio

❖ Sequenza di 

istruzioni (;)
❖ Assegnamento (=)
❖ Variabili
❖ Espressioni
❖ printf()
Un altro esempio con input da tastiera
Lettura di input da tastiera

❖ scanf("%d", &a) legge (da tastiera) un valore intero


("%d" indica che ci si aspetta un intero), e lo assegna alla
variabile a
❖ Ricordarsi di mettere & davanti al nome delle variabili
quando si usa scanf()
❖ Il motivo verrà spiegato più avanti
Stampare il quadrato degli interi da 1 a 10
Versione 1

#include <stdio.h>
int main( void )
{
printf("%d\n", 1*1);
printf("%d\n", 2*2);
printf("%d\n", 3*3);
printf("%d\n", 4*4);
printf("%d\n", 5*5);
printf("%d\n", 6*6);
printf("%d\n", 7*7);
printf("%d\n", 8*8);
printf("%d\n", 9*9);
printf("%d\n", 10*10);
return 0;
}
Stampare il quadrato degli interi da 1 a 10
Versione 2 (while) e 3 (for)

/* quadrati-while.c */
#include <stdio.h>
int main( void )
{
int i = 1;
while ( i <= 10 ) {
printf("%d\n", i*i);
i = i + 1;
}
return 0;
}

/* quadrati-for.c */
#include <stdio.h>
int main( void )
{
int i;
for (i=1; i <= 10; i=i+1) {
printf("%d\n", i*i);
}
return 0;
}
Parole riservate in C
❖ Il significato di alcuni termini è stato fissato da chi ha definito il
linguaggio C
❖ Non lo si può modificare
❖ Non è possibile usare le parole riservate per identificare elementi
definiti dall'utente
❖ Parole riservate in C (sono 32)
❖ auto break case char const continue default do
double else enum extern float for goto if int
long register return short signed sizeof static
struct switch typedef union unsigned void
volatile while
Indentazione del codice
#include <stdio.h>
int main( void ) { int i = 1; while ( i <= 10 )
{ printf("%d\n", i*i); i = i + 1; } return 0; }

❖ Cosa fa???
❖ Per una buona leggibilità del codice è importante
scrivere i programmi in modo ordinato e osservare le
regole di indentazione
❖ Dopo ogni ; si va a capo
❖ Dopo una { si va a capo e si inserisce un tab

Potrebbero piacerti anche