Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale disponibile sul sito http://www.fisica.unile.it/~martello/corsi/informatica/index.html
Concetti di Base Alcuni elementi di di cui cui è costituito un un computer La La CPU è destinata ad ad eseguire le le operazioni La La memoria volatile (RAM) è costituita da da elementi di di memoria da daun bit bit aggregati in in gruppi di di otto a costituire un un byte. Più byte contigui vengono raggruppati in in word (2-4 byte) Le Le istruzioni che la la CPU deve eseguire e i i dati che deve manipolare vanno codificati in in byte e word. La La memoria di di massa (dischi, nastri, supporti ottici) serve a registrare i i byte e le le word vengono manipolati dal dal sistema centrale. Essi, tuttavia, non sono più indirizzabili direttamente ma ma sono raccolti in in aggregati detti file
Concetti di Base Differenze tra tra memoria volatile e di di massa RAM Perde il il contenuto quando il il calcolatore viene spento. Ogni singolo byte (word) è indirizzabile direttamente. Memoria di di Massa Conserva il il contenuto anche se se non alimentata. Non permette l accesso al al singolo byte ma ma a aggregati (uniformi) di di essi detti file. Ad Ad ogni singolo file (o (o parte di di esso: record) si si può accedere direttamente
Concetti di Base Un Un programma è una sequenza dettagliata di di istruzioni univoche e ordinate scritte in in uno dei dei linguaggi di di programmazione. Per esprimere il il concetto di di sequenza dettagliata di di istruzioni si si fa fa ricorso spesso al al cosiddetto diagramma di di flusso. Il Il computer nell eseguire un un programma (run del del programma) esegue le le istruzioni di di cui cui è costituito il il listato in in maniera sequenziale, ordinata e si si limita a portare a termine esclusivamente le le istruzioni che gli gli vengono sottoposte nel nel loro ordine.
Concetti di Base: Il Compilatore Il Il C come altri linguaggi e e un un insieme di di regole sintattiche e lessicali che mettono insieme parole e punteggiatura allo scopo di di creare un un programma corretto. L oggetto che verifica se se queste regole sintattiche sono rispettate e e il il compilatore. Il Il compilatore processa il il programma scritto verifica le le regole sintattiche e, e, se se trova errori, produce messaggi inerenti gli gli errori trovati e termina, altrimenti produce un un programma eseguibile. Andando più in in dettaglio nel nel processo di di compilazione esso e e costituito da da 3 fasi:
Concetti di Base: Il Compilatore Pre-compilazione Compilazione Link 1. 1. La La pre-compilazione. In In questa fase fase viene invocato un un pre-compilatore che che verifica ed ed esegue solo solo alcuni tipi tipi di di istruzioni presenti nel nel listato processato e produce un un nuovo listato. 2. 2. La La compilazione vera vera e propria. In In questa fase fase vengono verificate le le regole sintattiche e il il listato viene convertito in in un un modulo scritto in in linguaggio macchina. 3. 3. Il Il link. In In questa fase fase viene invocato un un programma in in grado di di connettere questo modulo con con altri altri moduli forniti dall utente o facenti parte parte del del sistema per per produrre un un programma eseguibile.
Concetti di Base: gli elementi Un listato che deve essere compilato per produrre un programma in primo luogo e un insieme di caratteri e simboli. Per cui come prima cosa vediamo quali sono i caratteri riconosciuti dal compilatore. lettere minuscole a,b,..,z lettere maiuscole A,B,,Z numeri 0,1,,9 spazi bianchi altri caratteri +-*/=(){}[]<>,.?#%&!:; ~_^\
Concetti di Base: gli elementi Il compilatore come prima cosa collega i caratteri di cui e costituito il listato per formare elementi. In C esistono 7 tipi diversi di elementi di cui può essere costituito un listato. Essi sono: le parole chiave gli identificatori le costanti le costanti di tipo stringa gli operatori la punteggiatura i commenti Come passo successivo il compilatore verifica se gli elementi che ha identificato sono corretti e soddisfano le regole sintattiche del linguaggio. E importante sottolineare subito che nella verifica di queste regole sintattiche il compilatore e estremamente rigido. A differenza di un umano, il compilatore NON e in grado di comprendere elementi o successione di elementi che non siano scritti in maniera completamente esatta!
Concetti di Base: gli elementi 1. Commenti. Ignorati 2. Comando per il pre-compilatore /* scrivi una semplice frase */ punteggiatura Costanti di tipo stringa #include <stdio.h> operatori int main(void) { printf( Ciao Mondo! ); } return 0; identificatori costanti parole chiave
Concetti di Base: I commenti Un commento e costituito da un arbitraria sequenza di caratteri delimitata da: /* */ I commenti vengono ignorati dal processo di compilazione. Ogni commento, indipendentemente dalla sua lunghezza, viene sostituito da un singolo spazio bianco. Esempi di Commenti /* commento */ /*** anche questo ***/ /* un commento può anche estendersi su più linee */ /********************** * o può essere curato * * esteticamente * **********************/
Concetti di Base: le parole chiave Le parole chiave sono delle parole che hanno un significato particolare nel codice. Ognuna di essere serve a definire una particolare azione. Le parole chiave sono in numero limitato e NON possono essere ridefinite dal programmatore. 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 Una buona fetta del corso di programmazione consisterà nel comprendere cosa significano le varie parole chiave e che azione definiscono
Concetti di Base: gli identificatori Un identificatore e costituito da una successione contigua di lettere (minuscole e/o maiuscole) numeri e dal carattere _. In C un identificatore può iniziare con _ o con una lettera, ma non con un numero! k la_mia_incognita _IlMioIndice parametro2 Id_12345 123_valori Primo#Secondo -neg NO! Un identificatore serve ad identificare qualcosa all interno del programma (es. un identificatore può essere il nome di una variabile). E conveniente usare identificatori che hanno un significato. In modo da ricordare a cosa si riferiscono. NON e possibile definire identificatori che siano uguali a una parola chiave!
Concetti di Base: le costanti In ogni programma si incontrano numerosi tipi di costanti. Una costante e costituita da un numero o da un carattere. 2 23 172 sono esempi di costanti intere 1.23 13.452 sono esempi di costanti reali a b F sono esempi di costanti carattere. Notare che per distinguerle dagli identificatori queste ultime devono essere delimitate da due. Esistono poi delle costanti speciali come \n. Il \ sta ad indicare che la n che lo segue ha un significato particolare e non semplicemente quello di lettera dell alfabeto (in questo caso essa rappresenta il carattere di newline).
Concetti di Base: le costanti stringa Una qualunque successione di caratteri racchiusa tra doppio apice (es.: ciao ) viene sempre identificata dal compilatore come un singolo elemento: una stringa. Le stringhe vengono trattate in maniera diversa dagli altri tipi di costanti. a a e una stringa e una costante di tipo carattere! io sono una stringa Questa non può essere una stringa
Riepilogo Abbiamo parlato di: 1. Elementi di base sulla struttura di un computer 2. Cosa è un programma e come passare da un listato ad un eseguibile 3. Gli elementi di un programma: commenti, parole chiave, identificatori e costanti Potete trovare gli argomenti trattati: Cap. 2: C didattica e Programmazione Cap. 3: Introduzione all Informatica