123
IL BaroMetro
pericolosità
desCrIzIone
PossIBILI Cause
soLuzIonI
In molti linguaggi di programmazione
il primo elemento dell’array non è
quello con valore 1 dell’indice ma
è quello con valore 0 dell’indice.
Di conseguenza, se l’array ha 20
elementi, l’ultimo elemento è quello di
indice 19 e non 20.
Può accadere che inavvertitamente
si inserisca l’indice 1 pensando che
1 significhi primo elemento, oppure
che si scriva A[20] per accedere
all’ultimo elemento di un array di 20
elementi.
Conviene utilizzare le funzioni
predefinite (presenti in tutti i linguaggi)
che restituiscono la lunghezza
dell’array. In un array di 20 elementi,
invece di scrivere A[20] oppure A[19]
conviene scrivere A[lunghezza(A)], dove
abbiamo supposto che la funzione
lunghezza(A) restituisca la lunghezza
dell’array A.
Se non si modificano tutti i punti in cui
si utilizza l’indice dell’ultimo elemento
dell’array, si tenterà di accedere a
elementi (con indici maggiori del
massimo) che non esistono.
Spesso, durante la codifica, si
cambia la lunghezza dell’array
per sopraggiunti motivi
legati all’algoritmo che si sta
implementando
Conviene utilizzare le funzioni
predefinite (presenti in tutti i linguaggi)
che restituiscono la lunghezza
dell’array. In un array di 20 elementi,
invece di scrivere A[20] oppure A[19]
conviene scrivere A[lunghezza(A)], dove
abbiamo supposto che la funzione
lunghezza(A) restituisca la lunghezza
dell’array A.
Questo errore si verifica nei linguaggi
case-sensitive ovvero sensibili alla
differenza tra minuscole e maiuscole.
Semplice disattenzione nella
scrittura delle variabili
Se il linguaggio è case sensitive, fare
attenzione al maiuscolo e al minuscolo
nella scrittura delle variabili
3
Maiuscole e minuscole
Supponiamo che i seguenti frammenti di
pseudocodice siano scritti in uno pseudolinguaggio
case sensitive. Che errori possono generarsi?
a)
i:
Intero
tIPo
a =
array
[100] di
Intero
...
i
←
0
a[i]
←
100
Ì
←
i + 1
LeGGI
(a[i])
b)
i:
Intero
tIPo
a =
array
[100] di
Intero
...
Per
i
←
1
a
25
eseGuI
LeGGI
(a[i])
FInePer