Problema: Acquisire tre valori numerici, memorizzarli nelle variabili A, B e C. Determinare il maggiore tra i 3 valori.
Fino a questo punto si è completata l'operazione di input dei valori descritti nel primo blocco del diagramma di flusso. Si aggiunga, adesso, la prima operazione di assegnazione:
Lo script completo è il seguente:
La generalizzazione dell'algoritmo precedente consiste nel trovare l'elemento massimo tra un numero N di elementi
I valori vengono memorizzati in posizioni consecutive della memoria e ciascuna posizione non viene individuata da una variabile, ma dal nome assegnato all'area seguito dalla posizione occupata dall'elemento all'interno dell'area
Nella figura il nome assegnato all'area di memoria è Vettore. Il primo elemento, individuato con la notazione Vettore[1] ha il valore 28, il secondo elemento, individuato con la notazione Vettore[2] ha il valore 15, ecc..
La posizione occupata dall'elemento viene anche chiamata indice dell'area di memoria.
definizione: un array è un gruppo di locazioni consecutive, ognuna dello stesso tipo, a cui si accede specificando il nome assegnato al gruppo e la posizione dell'elemento all'interno del gruppo, conteggiata a iniziare da 1. Inoltre un array possiede un numero di locazioni, detto anche lunghezza, fissato in fase di avvio del programma e che quindi può costituire una limitazione circa il massimo numero di elementi che si possono memorizzare.
Un array monodimensionale, cioè accessibile specificando un solo indice, è anche detto Vettore. Un array bidimensionale, cioè accessibile specificando due indici, è detto Matrice.
Come per una variabile, anche un array deve essere inizializzato, ovvero bisogna assegnare i valori ai suoi elementi.
Per leggere i valori contenuti nel vettore si possono eseguire le seguenti operazioni:
Dopo aver creato una nuova variabile (Conta), la si imposta al valore 1.
Si ripetono in ciclo le seguenti operazioni:
L'algoritmo per la ricerca del massimo in un insieme di N elementi è il seguente:
Con il primo blocco si descrive l'operazione di acquisizione dei valori e la loro memorizzazione nelle posizioni da 1 a N del vettore.
Il secondo blocco assegna il valore iniziale 1 alla variabile Conta e assume che l'elemento del vettore V in posizione Conta sia il massimo.
A questo punto si entra in un ciclo: si passa all'elemento successivo, incrementando di uno la variabile Conta
Si verifica se questo valore è più grande di quello che si è trovato prima. Se la risposta è affermativa allora si aggiorna il valore del Massimo, altrimenti, se la variabile Conta indica che nel vettore ci sono ancora elementi da esaminare, ripete il ciclo.
Dopo aver creato e inizializzato l'array e la variabile Conta, creare la variabile MAX.
Assegnare il valore 1 alla varibile Conta e assegnare alla variabile MAX il valore del corrispondente
elemento del vettore.
Se si esegue questo blocco si possono verificare i risultati delle 2 operazioni leggendo i valori delle due variabili nell'area stage.
Il programma completo, la cui analisi viene lasciata per esercizio, è il seguente:
Problema: Determinare anche la posizione in cui si trova il massimo e stampare la frase "il massimo è (valore) - si trova in posizione (valore)"