Programmazione in C (1)

Stefano Petrarca
Conservatorio S. Cecilia - Roma

Programmazione: variabili

Una variabile rappresenta una o più celle della memoria di un computer in cui è possibile canservare un valore e, successivamente, reperirlo e/o modificarlo; il tutto tramite un programma, residente in memoria, eseguito dall'unità centrale del calcolatore.

Un programma, dunque, opera su dati presenti in memoria e produce risultati che vengono immagazzinati in memoria.

Una variabile è associata a un insieme di celle (un'area) di memoria tramite un nome simbolico o identificatore.

L'identificatore di una variabile, a sua volta, è associato al numero che determina la posizione dell'area all'interno della memoria (l'indirizzo).

Pertanto, accedere a una variabile significa accedere a un'area di memoria individuata da un indirizzo

>>

 

 

 

Il tipo di dato di una variabile è un'informazione relativa alla sua dimensione e al suo significato in un certo contesto.

Una variabile tipo scalare, come abbiamo già detto, può contenere un singolo dato elementare.

Una variabile strutturata può contenere un insieme di valori secondo una certa struttura dati (ad esempio l'array unidimensionale che può contenere una sequenza numerata di elementi dello stesso tipo).

In un linguaggio di programmazione ordinario è possibile dichiarare una variabile di un certo tipo.

La dichiarazione di una variabile consiste nel riservarle uno spazio adeguato in memoria e assegnarle un significato nel contesto di esecuzione del programma.

Il linguaggio adottato è il C / C++

>>

 

 

 

Tipo di dato Sintassi C/C++
Scalari  
Intero (16 bit) int x ;
Intero doppia precisione (32 bit) long x ;
Reale (floating-point) (32 bit) float x ;
Reale doppia precisione (64 o 80 bit) double x ;
Carattere (8 o 16 bit) char x ;
Strutturati  
Array unidimensionale int a[N] ;
Array bidimensionale int a[N][M] ;
Stringa (array di caratteri) char s[N];
Record struct a { ... };

Gli identificatori x, a, s, etc. sono arbitrari; le relative variabili si sarebbero potute anche indicare con pippo, pluto, paperino, etc. La maggior parte dei linguaggi di programmazione offre la massima libertà nella scelta dei nomi da dare alle proprie variabili; una buona regola è quella di associare a una variabile un nome mnemonico rispetto il ruolo che essa assume nel contesto del programma.

>>

 

 

Programmazione: istruzioni

Un'istruzione corrisponde a un passo elementare di un algoritmo

Per un calcolatore è un insieme di comandi volti a far compiere determinate azioni ai dispositivi fisici di cui è costituito

Un programma è una lista di istruzioni (residente in memoria) che un computer (con architettura Von Neumann) esegue, di norma, sequenzialmente

Le istruzioni che modificano il normale flusso sequenziale di esecuzione sono anche chiamate istruzioni di controllo

Le strutture fondamentali della programmazione, come sappiamo, sono l'azione semplice, la selezione e l'iterazione

Ogni linguaggio di programmazione ha un set di istruzioni che comprende diverse varianti delle strutture fondamentali codificate con parole chiave

Il linguaggio preso in esame sarà il C / C++

>>

 

 

Struttura

Pseudo-codice

Linguaggio C / C++

Azione: assegnazione

x 1

x = 1;

input a

scanf(<formato>, &a);

output a

printf(<formato>, a);

Selezione

Iterazione con controllo in coda

Iterazione con controllo in testa

Le parole chiave scanf e printf relative a input e output esterni sono solo due tra quelle disponibili in C. <formato> va sostituito con una stringa di formato.

>>

 

 

Un programma sorgente scritto in C (come nella maggior parte dei linguaggi) è costituito da diverse sezioni:

Un programma scritto in C da rendere eseguibile dovrà avere all'interno del corpo un marcatore di inizio che si chiami main( ) che conterrà delle istruzioni comprese tra una parentesi graffa aperta { e una chiusa }. Più avanti si vedrà il vero significato della parola chiave main( ) { .... }

Le istruzioni di input e output (in breve I/O), poiché sono legate all'hardware del sistema su cui sarà eseguito il programma, sono contenute in librerie di funzioni (questo concetto sarà più chiaro nel seguito)

Per fare in modo che il programma, nella sua versione eseguibile, si riferisca correttamente alle funzioni di I/O, occorre includere nel programma sorgente le testate (header) relative a queste parole chiave tramite la direttiva #include. Ad es., per usare le funzioni scanf e printf occorre inserire all'inizio del sorgente #include <stdio.h>

>>

 

Pertanto, il "solito algoritmo" della moltiplicazione con le somme iterate, si potrà scrivere

Flow-chart

Pseudo-codice

Listato C

Nel listato C il simbolo && indica l'operatore logico AND.

 

Esercizi

- Trasformare in C tutti gli algoritmi sviluppati precedentemente

 


Pagina iniziale ________________ Matematica ________________ Programma ________________ Bibliografia