4° Anno TEORIA 2. Allocazione dinamica della memoria | Page 8

10: Allocazione dinamica della memoria Vers. 9.1 – Ottobre 2025
USO“ DISEGNI” DI TRACCIA CON PUNTATORI USATI IN ALLOCAZIONE STATICA
ALGORITMO Puntatori _ 1 PROCEDURA main()
p1, p2, p3: PUNTATORE A INT a, b, c: INT
INIZIO
Leggi( a) Leggi( b) Leggi( c)
p2 � & c p1 � & b p3 � p1
a �((* p2) +(* p1)) DIV 3 * p1 � a *(* p2) – 2 *(* p3) * p2 � a +(* p1) –(* p2)
p3 � p2 p2 � &(* p1) p1 � & a
* p1 �((* p2) * 4) %(* p3) * p2 �(* p1) +(* p2) – 3 *(* p3) * p3 �((* p1) –(* p2)) DIV 5
Scrivi( a) Scrivi( b) Scrivi( c) Scrivi(* p1) Scrivi(* p2) Scrivi(* p3) Scrivi( p1) Scrivi( p2) Scrivi( p3)
RITORNA FINE
Esercizio) Dire quale sarà il valore di a, b, c, * p1, * p2, * p3, p1, p2, p3 dopo avere eseguito lo pseudocodice dell’ algoritmo“ Puntatori _ 1” seguente, illustrando il ragionamento eseguito per ottenere il risultato attraverso uno o più disegni esplicativi, nel caso l’ utente immetta i seguenti valori iniziali:
a = 5, b = 7, c =-2
Segmento Dati
5 1-12
7-16
11
-2-13
-4
a b c
& b & a
& c & b
& b & c
p1 p2 p3
Soluzione
a
b
c
* p1
* p2
* p3
p1
p2
p3
-12
11
-4
-12
11
-4
& a
& b
& c
Calcoli da eseguire per costruzione dello schema grafico( escluse le istruzioni di I / O)
p2 � & c
( p2 = & c)
( ossia p2 punterà alla variabile c: occorre disegnare la relativa freccia)
p1 � & b
( p1 = & b)
( ossia punterà alla variabile b: occorre disegnare la relativa freccia)
p3 � p
( p3 = p2 = & b)( ossia punterà alla medesima variabile puntata da p1 occorre disegnare la relativa freccia)
a �((* p2) +(* p1)) DIV 3
( a =((-2) + 7) DIV 3 = 5 DIV 3 = 1)
* p1 � a *(* p2) – 2 *(* p3)
(* p1 = b = 1 *(-2) – 2 * 7 =-2-14 =- 16)
* p3 � a +(* p1) –(* p2)
(* p2 = c = 1 +(-16) –(-2) = 1 – 16 + 2 =-13)
p3 � p2
( p3 = p2)
( ossia p3 punterà alla medesima variabile puntata da p2: disegnare la nuova freccia e
cancellare precedente freccia)( ossia punterà p2 alla medesima variabile puntata da p1: disegnare la nuova freccia e
p2 � &(* p1)( p2 = p1)
cancellare precedente freccia)
p1 � & a
( p1 = & a)
( ossia p1 punterà alla variabile a: disegnare la nuova freccia e cancellare precedente
freccia)
* p1 �((* p2) * 4) %(* p3)
(* p1 = a =((-16) * 4) %(-13) =(-64) %(-13) =-12)
* p2 �(* p1) +(* p2) – 3 *(* p3)
(* p2 = b =-12 + 8-16)- 3 *(-13) =-28 + 39 = 11)
* p3 �((* p1) –(* p2)) DIV 5
(* p3 = c =(-12-11) DIV 5 =(-23) DIV 5 =-4)
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 8