Archivio concessionaria

Archivi indexed sequential in C++. Progetto ‘Gestione concessionaria’.

Che cosa s’intende per organizzazione indexed sequential di un archivio viene già spiegato in un articolo che introduce i principali tipi di organizzazione degli archivi tradizionali, a cui si rimanda (link). In questo articolo, invece, si propone un’esercitazione di laboratorio di approfondimento sui files con C++, in cui viene sviluppato proprio l’esempio di archivio a[…]

c-cpp

Allocazione dinamica della memoria. Le istruzioni C++.

Dopo l’articolo introduttivo sull’allocazione dinamica della memoria in C++ (a cui si rimanda link), vediamo la sintassi di alcune funzioni di libreria C++ che ci permettono di operare con essa. Sintassi C++ per l’allocazione e la deallocazione dinamica della memoria Per l’allocazione dinamica di una variabile il linguaggio C++ mette a disposizione due sintassi. La[…]

Aree di memoria

Introduzione all’allocazione dinamica della memoria in C++

Il segmento di memoria che il Sistema Operativo riserva nella RAM ad un processo (un programma in esecuzione), in generale è suddiviso in quattro distinte aree di memoria, così come mostrato nella figura seguente e che sono: l’area del programma, che contiene le istruzioni macchina del programma; l’area globale, che contiene le costanti e le variabili globali; lo stack, che contiene[…]

Scomposizione funzionale

File ad accesso diretto in C++. Progetto ‘Gestione spese’.

Descrizione del progetto Si vuole realizzare un programma in C++ per la gestione delle spese domestiche. Esse devono essere memorizzate in un archivio specificando: la data, l’importo in euro e una descrizione. Il programma deve fornire le seguenti funzionalità: Aggiunta di una nuova spesa. Visualizzazione di tutte le spese dell’archivio in ordine crescente di data. Visualizzazione[…]

c-cpp

La gestione delle eccezioni con C++

Nell’articolo sugli errori di programmazione (link articolo) abbiamo visto che gli errori di runtime sono quegli errori che non possono essere rilevati in fase di compilazione, perché si manifestano solo durante la fase di esecuzione del programma e solo in alcune particolari circostanze, ossia al verificarsi di “eventi eccezionali”. Alcuni esempi di errori di runtime sono: il verificarsi[…]

stream-gerarchia

Stream e file in C++. Approfondimento.

Uno stream è una sequenza di byte che all’interno di un programma può essere gestita utilizzando un oggetto di un’opportuna classe. Ossia all’interno di un programma è possibile interagire con uno stream attraverso l’oggetto ad esso associato e, pertanto, il programmatore può identificare uno stream con l’oggetto stesso. La figura seguente mostra la gerarchia delle classi C++ per gli stream. In[…]

memorizzamatrici3

Archivi sequenziali in C++. Esercizio “Memorizzare matrici”.

Scrivere un programma in C++ che permetta di scrivere una sequenza di matrici in un file di testo. All’avvio il programma deve chiedere all’utente di aggiungere nel file una nuova matrice, dando la possibilità di annullare l’inserimento mediante uno zero. Successivamente deve visualizzare tutte le matrici memorizzate nel file. Le matrici memorizzate nel file possono avere una dimensione[…]

c-cpp

Lettura di righe intere in C++

Quando si legge uno stream, per esempio quando si effettua un input da tastiera o si legge un file di testo, se lo stream di input contiene caratteri quali spazi, tabulazioni (‘\t’ – tasto tab) o nuova linea (‘\n’ – tasto invio), si faccia attenzione perché questi vengono interpretati dall’operatore di lettura C++ (>>) e dalla funzione scanf() del C, come[…]

rubrica

Archivi sequenziali in C++. Esercizio “Rubrica telefonica”.

VERSIONE A Realizzare un programma in C++ che utilizza un file di testo per memorizzare una rubrica telefonica. Ogni riga del file deve contenere il cognome, il nome e il numero di telefono di un contatto, separati da uno spazio. (Nota: si adotterà l’ipotesi semplificativa che i cognomi, i nomi e i numeri di telefono, siano composti[…]