In questo articolo ‘flow chart array‘ svilupperemo un array utilizzando i diagrammi di flusso (detti anche diagrammi a blocchi).
Ecco dunque il problema da sviluppare con i flow chart:
Creare innanzitutto un array di 10 elementi. Dopo chiedere in input un numero da inserire e la posizione in cui si desidera inserirlo. Quindi inserire il numero nella posizione richiesta e in tutte le altre inserire il numero 1.
Flow chart array – risoluzione con i diagrammi di flusso
Innanzitutto inseriamo la costante N uguale a 10 che sono gli elementi totali dell’array.
Quindi chiediamo in input un numero n e la posizione pos in cui inserirlo e su cui facciamo un controllo dell’input con il ciclo do-while, in modo tale che la posizione sia compresa tra 0 e 9.
Dopo con un semplice ciclo for che utilizza un indice i da 0 a 9, inseriamo in tutte le posizioni 1 e solo dove l’indice i è uguale a pos inseriamo il numero richiesto in input.
Utilizzeremo dunque queste istruzioni:
a[i]=1 e solo se i=pos a[i]=n;
Infine per visualizzare tutti i numeri usiamo nuovamente il ciclo for (potevamo anche stamparli nel ciclo for precedente, ogni volta che venivano inseriti).
Ecco dunque il diagramma di flusso:
Allego anche lo pseudocodice:
PROG main
ASSIGN N=10
OUT "Quale valore vuoi inserire?"
IN n
DO_WHILE //pos>=0 && pos>=N
OUT "Quale posizione?"
IN pos
END DO_WHILE pos>=0 && pos>=N
FOR i=0; i<N; i=i+1
IF i==pos
ASSIGN a[i]=n
ELSE //if i==pos
ASSIGN a[i]=1
END IF //i==pos
END FOR //i=0; i<N; i=i+1
FOR i=0; i<N; i=i+1
OUT a[i]
END FOR //i=0; i<N; i=i+1
END PROG //main
Questo è solo un semplice esempio di realizzazione di algoritmi sugli array con i flow chart, nei prossimi tutorial proporrò tanti altri esercizi.
Alcuni link utili
Indice argomenti diagramma a blocchi
Divisori di un numero con algobuild
Algoritmi di selezione sugli angoli
Numeri amicabili con algobuild
Gioco indovina numero con i diagrammi a blocchi