INFORMATICA 1
Carlo Marazza – Ingegneria Meccanica
(riassunto delle diapositive del Prof. Marco Masseroli integrate con appunti e libro)
L’informatica è la scienza che si occupa della rappresentazione dell’informazione e della sua
elaborazione e gestione. Si tratta dello studio degli algoritmi che descrivono e trasformano
l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione.
Scrivere programmi (collezione di istruzioni) in un linguaggio artificiale, rigoroso e comprensibile
ad un esecutore, con i quali realizziamo, codifichiamo, traduciamo (implementiamo) gli algoritmi
(sequenze finite di passi elementari) che riteniamo possano risolvere i problemi di cui abbiamo
creato un modello.
Il linguaggio di programmazione che noi utilizzeremo è il C, un linguaggio alto, ovvero
comprensibile sia all’esecutore perché vicino al linguaggio parlato, e comprensibile anche alla
macchina. Un linguaggio basso è un linguaggio più vicino al linguaggio macchina.
I calcolatori elettronici sono strumenti in grado di eseguire operazioni non complesse: i modelli
attuali hanno capacità di scelta, cioè compiere azioni diverse in base allo stato del sistema,
funzionalità programmata cioè modificare il proprio comportamento in base al programma e sono
dispositivi digitali. I modelli di calcolatori sono quello teorico di Turing, e quello teorico che è la
macchina di von Neumann (1943-‐46), tuttora utilizzata e obbediente alla teoria di Turing.
La macchina di von Neumann è di tipo sequenziale, ovvero elabora un’istruzione per volta, anche
se oggi esistono altri sistemi di tipo parallelo (più istruzioni per volta). L’Hardware (cioè la parte
fisica di cui è costituita la macchina di von Neumann) è fatta di: una Unità Centrale (CPU, Central
Processing Unit o processore) che è il cervello della macchina; una Memoria Centrale (RAM,
Random Access Memory) che costituisce la memoria a breve termine del computer; una Memoria
di Massa (MM), la memoria a lungo termine; I Bus di Sistema (BUS) che sono i nervi, i canali di
comunicazione tra una parte e l’altra; le Unità Periferiche (UP) che costituiscono il modo in cui la
macchina interagisce con l’esterno (i “sensi”: tastiera, mouse, schermo, webcam, stampanti…). La
macchina agisce secondo i Software (di sistema, come Windows e applicativo come PowerPoint),
ovvero i programmi. Il linguaggio del computer è l’aritmetica binaria, ovvero una sequenza di sole
due cifre, 0 e 1, ordinati in infinite combinazioni con infiniti significati.
I computer comunicano tra loro e con il mondo attraverso la rete, che può essere LAN (Local Area
Network, una rete locale, come una casa) o WAN (Wide Area Network, che può essere uno stato).
Funzioni, Linguaggio e sintassi in C
<>: serve per includere una libreria già esistente di funzioni già create da alti
- #include
programmatori;
<stdio.h>: è la libreria più importante che comprende le funzioni principali, tra cui
- quelle di standard input e output;
(): definisce la funzione principale. Dopo le
() ci sono l {} all’interno delle
- int main
quali ci sono tutte le istruzioni le informazioni che fanno girare il programma;
return0: posto alla fine di tutto, serve a indicare che il programma si è concluso con
- successo;
1
getchar(): al posto di return0 si può mettere questa funzione che non chiude il
- programma (o se messo tra una funzione e l’altra, non lo fa andare avanti) fino a che
l’utente non schiaccia un carattere;
int/float/double/char: sono i vari tipi di variabile o costante. Se messi all’inizio,
- definiscono una variabile intera/decimale/decimale più lungo/carattere, da scrivere dopo
di essi. Se sono più variabili, vanno separate con una virgola. Per esempio il nome della
variabile Pippo preceduto da
int, vuol dire che ogni volta che si assegna un valore a
Pippo, anche e decimale, sarà letto come intero. Una variabile ha un nome(identificatore,
tipo Pippo), un tipo ( %c…), una dimensione, un indirizzo (una o più celle di
%d, %f,
memoria) ed un valore; una variabile, in quanto tale, può cambiare valore, tramite
l’opeatore assegnamento o scanf;
enum{}var:questa funzione permette di creare le variabili enumerative. All’interno delle
- graffe si fa un elenco di variabili che saranno associate ad una variabile posta dopo le
graffe. In pratica quando si inserisce un numero e lo si associa alla variabile che raggruppa
le alte (quella messa dopo le graffe), automaticamente questo numero è associato alla
variabile enumerativa corrispondente all’interno delle graffe, tenendo presente che il
compilatore prende come primo valore 0. Nell’esempio dei mesi, all’interno delle graffe
metto i nomi dei 12 mesi, all’esterno metto la variabile mese. Quando associo 6 a mese
(scanf(“%d”, &mese)), il programma prenderà in considerazione la variabile luglio e
viceversa (perché parte da 0; se voglio farlo partire da uno devo dirglielo così
gennaio=1,
assegnando il valore 1 alla prima variabile); per esempio luglio); mi
printf(“%d”,
stampa 6;
Nell’inizializzazione è importante definire il valore iniziale di una variabile, se no si rischia di
incappare in errori.
const: indica una costante; deve essere seguito da un tipo
- (int/float/double/char);
#define: un altro modo per definire una costante è inserire questo termine, seguito dal
- nome della costante e dal suo valore, senza punto-‐e-‐virgola finale; è una direttiva al
precompilatore, cioè prima che il programma sia compilato e pronto all’uso, la costante è
sostituita con il suo valore (se la parola è CASA e il suo valore costante è 48, la costante
casa è sostituita con il valore 48). Si dice che il nome della variabile (CASA) è una MACRO-‐
definizione semplicemente MACRO; per convenzione questo tipo di costanti si definsce
tutto maiuscolo;
serve per annullare il precedente comando, cioè da questo punto in poi una
- #undef:
costante non è più costante;
char: indica una variabile carattere e si indica con un solo carattere messo tra ‘; ‘a’
- ‘
non è uguale a “a” perché il secondo è una stringa di un carattere e non un carattere; se si
mette a=’7’ (a variabile carattere) il sistema associa ad a il carattere ‘7’; ma se metto a=7 è
segnalato un errore, perché 7 è un valore; incrementare un carattere vuol dire passare a
quello successivo (a=g+1, ad a è associata ‘h’); inoltre per il tipo char bisogna tenere in
considerazione i caratteri ASCII cioè