Estratto del documento

Loop per allocazione di interi in un vettore

Attraverso questo esercizio ci prefiggiamo di allocare un vettore di n posizioni con i primi n numeri naturali, tramite l’utilizzo di un loop. Cominciamo col definire tutto ciò che ci occorre per completare l’esercizio.

Elementi necessari

Ciò che serve è:

  • Un vettore;
  • Una variabile numerica che ci dica quante posizioni allocare;
  • Una variabile che ci permetta di inserire i valori voluti all’interno del vettore.

Volendo partire col dichiarare ciò che abbiamo detto, abbiamo:

$8100 ORG
VET 10 DS.W

In realtà abbiamo con questa istruzione allocato solamente dello spazio per porre in memoria i numeri del vettore. Le altre due variabili saranno dei registri di sistema. Questo consente al sistema di generare del codice più corto e di accedere alla memoria meno frequentemente, facendo risultare il processo più veloce.

Progettazione del codice

Una volta che sappiamo su cosa possiamo operare, possiamo procedere alla progettazione del nostro codice. Facciamo una riflessione: il nostro programma sa dove prelevare e dove scrivere i dati, se gli vengono specificati di volta in volta gli indirizzi. Se avessimo un vettore di 1000 posizioni sarebbe disumano pensare di poter scrivere gli indirizzi di ogni singola cella di memoria componente il vettore. Dunque possiamo fare in modo di prendere il primo indirizzo del vettore e di incrementarlo di volta in volta, sino a riempirlo tutto.

Come sappiamo, l’Asim fa uso delle cosiddette label, vale a dire delle etichette che contraddistinguono una certa locazione di memoria. In altre parole, utilizzare una label all’interno del nostro algoritmo equivale a fornire l’indirizzo della locazione di memoria, alla quale vogliamo riferirci.

Esempio pratico

Supponiamo di avere definito un array di tre posizioni e di averlo chiamato vett. Scrivere vett all’interno dell’algoritmo oppure 9000, cioè il suo indirizzo di memoria, avrebbe pari risultato. Ma come raggiungere le posizioni 9001 e 9002 che non hanno un nome? È sufficiente copiare il primo indirizzo di memoria dell’array in un registro indirizzi, di volta in volta, incrementare il valore e in questo modo avere accesso alle altre posizioni.

Confronto tra Asim e C++

Chiariamoci ulteriormente le idee facendo un confronto tra l’Asim e il C++. Quando vogliamo accedere in C++ ad un array attraverso puntatore, basta assegnare al puntatore il nome dell’array, questo perché al nome dell’array corrisponde l’indirizzo di memoria dal quale l’array parte e dunque al puntatore viene assegnato il valore dell’indirizzo.

a[10]; //dichiarazione del vettore.
int p; //dichiarazione del puntatore al vettore.

Anteprima
Vedrai una selezione di 1 pagina su 2
Allocazione di interi in un vettore Pag. 1
1 su 2
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher valeria0186 di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici I e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Canonico Roberto.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community