Programmazione e Laboratorio di Programmazione

Slides:



Advertisements
Presentazioni simili
Puntatori Linguaggio C.
Advertisements

Puntatori in C e C++.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Laboratorio di Linguaggi lezione IV Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
1 laboratorio di calcolo II AA 2003/04 seconda settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1.
C. Gaibisso Programmazione di Calcolatori Lezione VIII Il modello di memoria Programmazione di Calcolatori: Il modello di memoria 1.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Puntatori e gestione dinamica della memoria
Passaggio di parametri per indirizzo
C. Gaibisso Programmazione di Calcolatori Lezione XVI Allocazione dinamica della memoria Programmazione di Calcolatori: allocazione dinamica della memoria.
Complessità di un algoritmo
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 Il linguaggio C Puntatori e dintorni. 2 Puntatori : idea di base In C è possibile conoscere e denotare l’indirizzo della cella di memoria in cui è memorizzata.
Puntatori in C Un puntatore è una variabile che contiene un indirizzo di memoria. Quando una variabile contiene l’indirizzo di un’altra variabile, si dice.
Sistemi Operativi : Gestione della Memoria Anno Scolastico 2012/2013 Un sistema operativo è un programma o un insieme di programmi che garantisce e permette.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Process synchronization
I FILES AD ACCESSO SEQUENZIALE
TIPI PRIMITIVI TIPI STRUTTURATI
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Secondo Programma in C.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C
Process synchronization
Le Macchine di Turing.
Lucidi della Pof.ssa Pazienza
APPUNTI SUL LINGUAGGIO C Allocazione dinamica della memoria
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Passaggio di parametri per indirizzo
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Programmazione e Laboratorio di Programmazione Lezione IV Il modello di memoria Programmazione e Laboratorio di Programmazione – Il modello di memoria

Il modello di memoria ● un insieme di locazioni 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2855 ● un insieme di locazioni ● ogni locazione è univocamente identificata da un valore numerico detto indirizzo ● ogni locazione memorizza una sequenza di 8 bit ● ad ogni locazione è associato un flag che indica se la locazione è correntemente in uso o è invece disponibile 10100000 X In uso Disponibile x Programmazione e Laboratorio di Programmazione – Il modello di memoria

4 locazioni x un valore intero Variabili ● una variabile è un insieme di locazioni contigue in memoria 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2855 x ● ogni variabile è identificata da una stringa alfa-numerica detta nome della variabile ● l’indirizzo di una variabile è l’indirizzo della prima di tali locazioni x 3 A ● ogni variabile memorizza un valore ● il tipo della variabile è il tipo dei valori memorizzabili intero 4 locazioni x un valore intero ● il numero delle locazioni "allocate" per una variabile è funzione del tipo della variabile Programmazione e Laboratorio di Programmazione – Il modello di memoria

Stato della memoria Molto informalmente: Molto meno informalmente: è una foto del contenuto della memoria ad un certo istante Molto meno informalmente: è determinato dall’insieme delle quadruple (nomevar, tipovar, valorevar, indirizzovar) Programmazione e Laboratorio di Programmazione – Il modello di memoria

SI NO Stato della memoria A 3 B 2 A 2 B C Stato1 Stato2 x 3 A B 2 Stato1 Stato2 Stato1 = Stato2? SI x 2 A B C Stato1 Stato2 Stato1 = Stato2? NO Programmazione e Laboratorio di Programmazione – Il modello di memoria

NO NO Stato della memoria A 2 B 3 A 2 B 2.0 Stato1 Stato2 x 2 A B 3 Stato1 Stato2 Stato1 = Stato2? NO x 2 A B 2.0 Stato1 Stato2 Stato1 = Stato2? NO Programmazione e Laboratorio di Programmazione – Il modello di memoria

NO NO Stato della memoria A 2 B Stato1 Stato2 Stato1 = Stato2? Stato1 x 2 A B Stato1 Stato2 Stato1 = Stato2? 2834 2835 2836 2837 2838 2839 2840 x Stato1 Stato2 Stato1 = Stato2? NO Programmazione e Laboratorio di Programmazione – Il modello di memoria

Definizione di una variabile tipo_variabile nome_variabile Modifiche allo stato della memoria: si riserva il numero di locazioni contigue in memoria necessario a memorizzare un valore di tipo tipo_variabile si associa il nome nome_variabile alle locazioni riservate si associa alla variabile il tipo tipo_variabile Programmazione e Laboratorio di Programmazione – Il modello di memoria

Definizione di una variabile Esempio: 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2855 x intero int y; x y Programmazione e Laboratorio di Programmazione – Il modello di memoria

Rilascio di memoria allocata Rilascio della memoria: avviene rendendo di nuovo disponibili le celle allocate per la variabile Esempio: 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2855 { int A; …. } x A Programmazione e Laboratorio di Programmazione – Il modello di memoria

Assegnamento di valori a variabili nome_variabile = espressione Modifiche allo stato della memoria: si valuta il valore di espressione si sostituisce tale valore al valore memorizzato da nome_variabile Attenzione: il tipo di nome_variabile e il tipo di espressione “devono” essere gli stessi Programmazione e Laboratorio di Programmazione – Il modello di memoria

Accesso alle variabili tramite nome Esempio: 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2855 x C A 3 B 8 -4 -1 -4 3 B = A+C; Programmazione e Laboratorio di Programmazione – Il modello di memoria

Accesso all’indirizzo di una variabile L’operatore &: &nome_variabile Valore restituito: 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2855 A 3 x B l’indirizzo di nome_variabile 2839 B = &A; 2839 puntatore Programmazione e Laboratorio di Programmazione – Il modello di memoria

Definizione di un puntatore tipo_variabile_riferita* nome_puntatore Modifiche allo stato della memoria: si riserva il numero di locazioni contigue in memoria necessario a memorizzare un indirizzo si associa il nome nome_variabile alle locazioni riservate si associa alla variabile il tipo "indirizzo di una variabile di tipo tipo_variabile_riferita" Programmazione e Laboratorio di Programmazione – Il modello di memoria

Accesso alle variabili tramite indirizzo L’operatore *: *nome_puntatore 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2855 A 3 x B Effetto: equivale al nome della variabile il cui indirizzo è in nome_puntatore 4 Esempio: 3 A A=*B+1; Programmazione e Laboratorio di Programmazione – Il modello di memoria

Accesso alle variabili tramite indirizzo Esempio: 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2855 x C B A 3 4 C 4 3 7 *B = A+C; Programmazione e Laboratorio di Programmazione – Il modello di memoria