prof. Nunzio Brugaletta | Programmazione e linguaggio C |
Per quanto osservato nell’ultima proprietà espressa, gli algoritmi operano principalmente su variabili che conterranno i dati sui quali si vuole svolgere una determinata elaborazione. I valori da elaborare devono essere assegnati alle variabili prima di effettuare l’elaborazione. Si pensi infatti ad una variabile come ad un contenitore. Le istruzioni operano sui valori contenuti: se questi non ci sono non ci si può attendere alcuna elaborazione. Ogni variabile è identificata da un nome che permette di distinguerla dalle altre.
L’istruzione di assegnamento fa in modo che un determinato valore sia conservato in una variabile. In questo modo si prepara la variabile per l’elaborazione o si conserva nella variabile un valore intermedio prodotto da una elaborazione precedente. Si può assegnare ad una variabile un valore costante come anche il valore risultante da una espressione aritmetica.
L’istruzione di input fa in modo che l’algoritmo riceva dall’esterno un valore da assegnare ad una variabile. Nel caso di algoritmi eseguiti da un elaboratore, questi attende che da una unità di input (per esempio la tastiera) arrivi una sequenza di caratteri tipicamente terminanti con la pressione del tasto <Invio> . Il dato verrà assegnato alla variabile appositamente predisposta. Praticamente si tratta di una istruzione di assegnamento solo che stavolta il valore da assegnare proviene dall’esterno.
L’istruzione di output fa in modo che l’algoritmo comunichi all’esterno i risultati della propria elaborazione. Nel caso di un elaboratore viene inviato su una unità di output (per esempio il video) il valore contenuto in una determinata variabile.
Si confrontino adesso due versioni di un algoritmo per il calcolo dell’area di un rettangolo (i nomi delle variabili sono scritti in maiuscolo):
Algoritmo A |
Algoritmo B |
---|---|
Assegna a BASE il valore 3 Assegna a ALTEZZA il valore 7 Assegna a AREA valore BASE*ALTEZZA Comunica AREA |
Ricevi BASE Ricevi ALTEZZA Assegna a AREA valore BASE*ALTEZZA Comunica AREA |
Nell’algoritmo A si assegnano alle variabili BASE ed ALTEZZA dei valori costanti, l’algoritmo calcola l’area di un rettangolo particolare e se si vuole applicare l’algoritmo ad un diverso rettangolo è necessario modificare le due istruzioni di assegnamento a BASE e ALTEZZA: l’algoritmo ha perso la sua caratteristica di generalità. Questo esempio non deve portare a concludere che non ha senso parlare di costanti in un algoritmo perché, per esempio, se si fosse trattato di un triangolo il calcolo dell’area avrebbe assunto l’aspetto: Assegna a AREA valore BASE*ALTEZZA/2. La costante 2 prescinde dai valori diversi che possono essere assegnati a BASE e ALTEZZA, essendo parte della formula del calcolo dell’area di un triangolo qualsiasi.
Nell’algoritmo B i valori da assegnare a BASE e ALTEZZA provengono da una unità di input. L’algoritmo ad ogni esecuzione si fermerà in attesa di tali valori e il calcolo verrà eseguito su tali valori: l’elaborazione è sempre la stessa (l’area di un rettangolo si calcola sempre allo stesso modo) ma i dati saranno di volta in volta diversi (i rettangoli hanno dimensioni diverse).
http://ennebi.solira.org | ennebi@solira.org |