I DATI I PRINCIPALI TIPI DI DATO UTILIZZATI IN PROGRAMMAZIONE

Slides:



Advertisements
Presentazioni simili
Il linguaggio C++.
Advertisements

Introduzione al linguaggio C++
Corso di Fondamenti di Programmazione canale E-O
INFORMATICA Altre Istruzioni di I/O
LINGUAGGIO DI PROGRAMMAZIONE C
Dati, istruzione e pseudocodice
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Stringhe di caratteri In linguaggio C.
Selezione - approfondimento
EP 10/11 - PBLezione 2-21 Elementi di Programmazione Tipi di Dati Conversioni Istruzioni di controllo del flusso.
Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A CDL in Ingegneria Meccanica - A.A Tipi di dati Ing. Simona Colucci.
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Tipi di dati Ing. Simona Colucci.
PLC PCD1 della SAIA-Burgess
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Programmazione in Java (3)
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Laboratorio di Linguaggi lezione III: tipi base, espressioni, type-cast Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e.
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
Prof. Raffaele Montella
Programmazione Corso di laurea in Informatica
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Strutture di controllo in C -- Flow Chart --
Dichiarazioni e tipi predefiniti nel linguaggio C
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Il Linguaggio C.
Espressioni condizionali
Java base I: Sintassi e tipi di dati
LA DOCUMENTAZIONE È noto che un buon programma dovrebbe essere ben documentato.. ma lesperienza insegna che quasi mai ciò viene fatto! –non cè tempo, ci.
Programmazione in Java
Programmazione in Java Claudia Raibulet
4 Tipi di dati & variabili
Biologia Computazionale - Algoritmi
JAVA Franco Bombi 8 ottobre FB Introduzione Java è un linguaggio di impiego generale, basato su classi e orientato agli oggetti Java.
Algoritmi e Programmazione strutturata
CODIFICA Da flow-chart a C++.
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Tipi di dati elementari
Tipi di dati semplici in C (1/3)
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
ECDL Patente europea del computer
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
LdL - LP1 - lez 11 - ver 6 - aa Linguaggi di programmazione I Stringhe (II) Prof. Luigi Di Lascio Lezione 11.
Corso JAVA Lezione n° 02 Istituto Statale di Istruzione Superiore “F. Enriques”
1 Parte 3 Fondamenti di programmzione. 2 Cosa è Java Linguaggio di programmazione familiare Simile a C e C++ Linguaggio di programmazione orientato a.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Programmazione in Java
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Informatica 6 Tipi di dato. Nelle celle di memoria di un calcolatore ci sono solo “0” e “1”, fisicamente realizzati tramite due diversi livelli di tensione.
Il linguaggio C Un primo programma C : un primo programma (2) /* Programma che calcola il massimo fra tre numeri inseriti da tastiera */ #include #define.
STRUTTURA DI UN PROGRAMMA C In prima battuta, la struttura di un programma C è definita dalla seguente produzione: ::= { }
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Cicli. Ci sono almeno tre modi diversi per costruire un ciclo in C e occorre utilizzare quello che meglio si adatta alle esigenze del problema che si.
“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
Appunti su formati numerici. Tipi numerici Il C dispone di due tipi numerici: tipi interi e tipi reali; I tipi reali sono anche detti floating, ovvero.
Introduzione al linguaggio C
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

I DATI I PRINCIPALI TIPI DI DATO UTILIZZATI IN PROGRAMMAZIONE Con particolare riferimenti al linguaggio C++ FINE

Indice Cosa sono i dati Dati strutturati I tipi di dato Dati semplici Interi Reali Caratteri Booleani Le stringhe Dati strutturati Array Matrice Record Tabella Soluzioni degli esercizi Dati principali

COSA SONO I DATI? PROGRAMMA = DATI + ISTRUZIONI I dati sono gli oggetti su cui vengono eseguite le istruzioni. INPUT (dati) OUTPUT(dati) PROCESSO (istruzioni) Nel processo possono essere utilizzati altre variabili di lavoro come totalizzatori,contatori,... Tutti i linguaggi di programmazione prevedono un insieme di dati predefiniti che l’utente può utilizzare nella realizzazione dei propri programmi. Dati principali

Strutturati o composti Semplici o predefiniti I TIPI DI DATO DATI Strutturati o composti Semplici o predefiniti Dati principali

short int int long float char bool Dati semplici Numerici Alfanumerici intero reale carattere booleani In C++ short int int long float char bool Dati principali

Particolarità degli interi Gli interi in C++ si definiscono int il loro intervallo di definizione (ossia il valore minimo e il valore massimo che può assumere una variabile di tipo int) dipende dal numero di byte che occupano in memoria e questo dipende dal particolare linguaggio di programmazione E’ possibile definire dati di tipo intero più grandi (long in C++) con ampiezza di 4 byte Sia ai dati int che ai long può essere applicato il modificatore unsigned che permette di definire valori solo positivi, raddoppiando l’ampiezza del dato. Dati principali

Riepilogo dei dati di tipo intero Numero di byte Valore minimo Valore massimo short int 2 byte -32.768 +32.767 long int 4 byte -2.147.483.648 +2.147.483.647 int Coincide con short nella rappresentazione in 2 byte e con long in quella a 4 byte unsigned int ...+65.535 unsigned long + 4.294.967.295 Dati principali

Particolarità dei reali I tipi decimali del C++ sono: float occupa 32 bits (4 byte) e rappresenta valori positivi e negativi con 7 cifre significative. double occupa 64 bits (8 byte) e rappresenta valori positivi e negativi con 15 cifre significative. Dati principali

Riepilogo dei dati di tipo reale ESERCIZIO : LETTURA E SCRITTURA DI NUMERI Codifica un programma in cui definisci diversi tipi di variabili numeriche; acquisisci le variabili in input e le riscrivi in output soluzione Dati principali

Particolarità dei caratteri I dati definiti char possono contenere un solo carattere Un char occupa 1 byte. Una costante carattere va racchiusa tra apice singolo; es: char c; c=‘A’; // alla variabile c viene assegnata la lettera A. In C++ i dati di tipo carattere sono assimilati a interi (ne viene considerata la codifica interna in codice ASCII). Es: char c; c=‘a’; // assegna alla variabile c il valore numerico 97 c=‘A’; // assegna alla variabile c il valore numerico 65 Dati principali

Particolarità dei booleani I dati definiti bool possono assumere valore true (vero) oppure false (falso) Un bool occupa 1 byte. Esempio : bool piove; //definizione variabile booleana piove = true; //assegnazione valore VERO piove = false; //assegnazione valore FALSO Si osservi che il valore true corrisponde a 1 il valore false corrisponde a 0 Dati principali

ATTENZIONE Nel linguaggio C++ esistono altri tipi di dato predefiniti; in questi appunti sono stati presi in considerazione solo i dati più frequentemente usati nelle esercitazioni; il C++ consente al programmatore la definizione di tipi utente attraverso il comando typedef; le dimensioni dei dati possono differire a seconda del compilatore e dell’elaboratore utilizzato; E’ possibile conoscere il numero di byte di memoria occupati da qualsiasi tipo di variabile mediante la funzione del linguaggio sizeof( ). Esempio: cout<<“\nDimensione di una variabile double “<<sizeof(double); ESERCIZIO : OCCUPAZIONE DI MEMORIA Codifica un programma in cui verifichi l’occupazione in byte dei diversi tipi di variabili utilizzando l’istruzione sizeof soluzione Dati principali

Un particolare tipo di dato: le stringhe Una stringa è una sequenza finita di caratteri Esempio : il nome di una persona, il codice fiscale, la targa di un’automobile Es: char nome [11] è una stringa che consente di memorizzare parole formate al massimo da 10 caratteri (l’undicesimo carattere è riservato a ‘\0’ inserito dal sistema come terminatore di stringa) IMPORTANTE : In C++ la stringa è chiusa da un carattere di controllo (‘\0’) che determina la fine della stringa. 1 2 3 4 5 6 7 8 9 10 Posizione  A L D O \0 carattere  Dati principali

Le stringhe definite con il tipo string Potremmo utilizzare la typedef (per la definizione di un nuovo tipo di dato): typedef char stringa[11]; // nuovo tipo vettore di caratteri chiamato stringa stringa nome; // variabile nome di tipo stringa Nelle versioni più recenti di C++ , includendo la libreria <string> si può definire una variabile di tipo string #include <string> …. string nome; cin>>nome //input di una stringa cout<<“ciao signor “<<nome<<endl; //output di una stringa .. ESERCIZIO : SALUTO Codifica un programma che mette a video un messaggio di saluto indirizzato ad una persona il cui nome è chiesto in input; il nome deve essere definito di tipo string soluzione Dati principali

Anomalie nell’input di stringhe Però c’è da notare che l’input con le stringhe presenta due inconvenienti: non è possibile fare alcun controllo sulle dimensioni della stringa; se nella stringa è presente uno spazio l’acquisizione si interrompe. Esempio: char nome[11]; cin>>nome se l’utente digita “maria pia” il programma acquisisce solo “maria” l’utente può digitare “mariangelamaria” (più di 11 caratteri) e il programma li acquisisce cout<<“\nil nome è : “<<nome<<endl; Esempio: string cognome; cin>>cognome se l’utente digita “de carolis” il programma acquisisce solo “de” cout<<“\nil cognome è : “<<cognome<<endl; PROVA A CODIFICARE QUESTI DUE ESEMPI PER VERFIFICARE TALI ANOMALIE Dati principali

Soluzione delle anomalie nell’input di stringhe Adottando l’uso della libreria <string> e definendo una variabile di tipo string #include <string> .. string nome; getline(cin,nome,'\n'); si può utilizzare la seguente istruzione per l’input Questa istruzione consente di acquisire anche le stringhe che presentano spazi al loro interno ESERCIZIO : PROVA GETLINE Codifica un programma in cui definisci una stringa di tipo string , la acquisisci con getline e la mostri in output; nel test scrivi “carlo alberto” soluzione Dati principali

Altre anomalie nell’input di stringhe C’è da notare che quando si termina l’input e si preme il pulsante “invio”, tale pulsante invia un carattere di terminazione dell’input che rimane in memoria e che potrebbe essere male interpretato nei casi in cui si debbano acquisire ulteriori caratteri int main( ) { string nome; int altezza; cout<<"\nindica l'altezza"<<endl; cin>>altezza; cout<<"\nl'altezza è -->"<<altezza<<endl; cout<<"\nindica un nome"<<endl; getline(cin,nome,'\n'); cout<<"\nil nome è -->"<<nome<<endl; system("PAUSE"); return EXIT_SUCCESS; } Se provi ad eseguire questo programma, cosa accade? Non ti è permesso digitare il nome!!! PERCHE’? Dati principali

Il buffer dell’input Si tratta di un’area di memoria RAM in cui vengono memorizzati i dati in input. Esempio: - da tastiera vengono digitati i seguenti caratteri : abcdefg - poi viene dato un “invio” , - il programma in esecuzione acquisisce la stringa , - mette il terminatore \0 e poi il carattere \n per la fine dell’input Perciò nel buffer troviamo: a b c d e\0 \n Alcune istruzione per l’input non “puliscono” il buffer, cioè non eliminano il carattere ‘\n’, e l’istruzione cin è una di queste E allora come si deve fare se in un programma si devono acquisire numeri (utilizzando l’istruzione cin) e poi stringhe (utilizzando l’istruzione getline) senza incorrere in questi inconvenienti? Dati principali

Pulizia del buffer dell’input Per eliminare ulteriori caratteri immessi si utilizza la funzione cin.ignore (1); che consente di eliminare un carattere in eccedenza int main( ) { string nome; int altezza; cout<<"\nindica l'altezza"<<endl; cin>>altezza; cin.ignore(1); cout<<"\nl'altezza è -->"<<altezza<<endl; cout<<"\nindica un nome"<<endl; getline(cin,nome,'\n'); cout<<"\nil nome è -->"<<nome<<endl; system("PAUSE"); return EXIT_SUCCESS; } Dati principali

Dati strutturati In molti problemi si ha la necessità di aggregare molti dati di tipo semplice (int, float, char, ecc.) perché sono logicamente correlati Esempio: il prezzo di 100 articoli di magazzino, I tempi di una classifica di una competizione Un elenco di persone Ma non è conveniente definire singolarmente ciascuna variabile, sia perché potrebbero essere in numero molto elevato, sia perché tutte le variabile fanno capo logicamente ad un’unica struttura Dati principali

bidimensionale (matrice) monodimensionale (vettore) Struttura di dati Si parla di struttura di dati quando si raggruppano più oggetti dello stesso tipo o di tipo diverso , assegnando un nome unico alla struttura. Tipi di dati strutturati Array bidimensionale (matrice) Record monodimensionale (vettore) Dati principali

Esempio 1: il mese Si consideri una struttura composta da 12 elementi di tipo intero chiamata “giorni” nella quale vengono memorizzati il numero di giorni di cui è composto ciascun mese; è possibile conoscere i giorni di aprile facendo riferimento al 4° elemento della struttura. giorni 1° 2° 3° 4° 5° 6° 7° 8° 9° 10° 11° 12° Dati principali

array monodimensionale - vettore La struttura giorni è un array monodimensionale o vettore e in C++ viene definito: int giorni [12] ; Tipo base dimensione del vettore Nome del vettore valore di ciascuna componente indice di posizione i 0 1 2 3 4 5 6 7 8 9 10 11 Dati principali

Caratteristiche di un vettore int giorni[12]; l’elaborazione del vettore avviene elemento per elemento; l’individuazione del singolo elemento è possibile attraverso l’uso di una variabile intera denominata“indice”; la posizione occupata dal primo elemento in C++ è zero; l’indice i varia quindi da 0 a 11 (da zero ad ampiezza del vettore diminuita di uno). i 0 1 2 3 4 5 6 7 8 9 10 11 Dati principali

Elaborazione di array monodimensionale L’acquisizione e la visualizzazione del vettore giorni prevede l’elaborazione di tutti i suoi elementi uno alla volta. Il ciclo for (iterazione enumerativa) è, in questi casi, la più adatta: int giorni[12]; // dichiarazione del vettore int i; // dichiarazione dell’indice for (i = 0; i<12; i++) // ciclo di acquisizione cin>>giorni[i]; for (i = 0; i<12; i++) // ciclo di visualizzazione cout<<giorni[i]; ESERCIZIO : ELEBORAZIONE VETTORE DI NUMERI Codifica un programma in cui definisci un vettore di 10 numeri , lo acquisisci e lo mostri in output, utilizzando un ciclo enumerativo soluzione Dati principali

Esempio 2 : temperature 12 11 13 16 15 10 14 18 17 20 temperature Si memorizzano le temperature rilevate per una settimana, ad un’ora stabilita, in tre città italiane (Milano, Roma, Palermo). Si ottiene una tabella formata da 3 righe (le città) e 7 colonne (i giorni). A tale tabella si assegna il nome “temperature” e per riferirsi alla temperatura rilevata a Roma di venerdì, bisognerà considerare il valore contenuto nella 2a riga, 5a colonna. temperature giorni -> 1° 2° 3° 4° 5° 6° 7° Milano 1° Roma 2° Palermo 3° 12 11 13 16 15 10 14 18 17 20 Dati principali

Array bidimensionale - matrice La tabella “temperature” è un array bidimensionale o matrice e in C++ viene definito: int temperature[3][7]; // 3 righe 7 colonne l’elaborazione della matrice avviene elemento per elemento; l’individuazione del singolo elemento è possibile attraverso l’uso di due variabili indice (uno di riga e uno di colonna); la posizione occupata dal primo elemento in C++ è [0][0]; l’indice i (di riga) varia quindi da 0 a 2 , l’indice j (di colonna) varia da 0 a 6. Se il numero di righe è uguale al numero di colonne si ha una matrice quadrata. Dati principali

Le stringhe come vettori di caratteri Una stringa così definita char nome [11] è un vettore di caratteri ma ricordiamo che consente di memorizzare parole formate al massimo da 10 caratteri (l’undicesimo carattere è riservato a ‘\0’ inserito dal sistema come terminatore di stringa) 1 2 3 4 5 6 7 8 9 10 Posizione  M A R I O L N \0 carattere  Dati principali

Input e output di stringhe Pur essendo vettori monodimensionali, l’input e l’output delle stringhe non ha bisogno di elaborare ogni singolo carattere output: cout<<nome; // visualizzazione di una stringa input: cin>> nome; // lettura di una stringa ? Comunque la stringa può essere trattata come vettore di caratteri nei casi in cui è necessario controllare il singolo carattere Esempio: indicare la lettera iniziale di un nome char nome[11]; …………… cout<<"\ndigita un nome : "; cin>>nome; char iniziale=' ' ; cout<<"\nil nome inizia con la lettera --> "<<nome[0]<<endl; Risultato dell’esecuzione digita un nome: paola Il nome inizia con la lettera  p Dati principali

I record Si definisce record quel dato che, pur rappresentando un unico oggetto di elaborazione, è formato da più elementi (campi) , anche di diverso tipo. Esempio: uno studente può essere caratterizzato dall’insieme dei dati: cognome, nome, classe, anno di nascita... Studente1{Marcoldi, Antonio, 3A, 1995} Studente2{Angelini, Paolo, 5A, 1993} Dati principali

Definizione dei record Un record è costruito in base ad un tracciato record ben definito. Il tracciato record è l’elenco del campi che formano il record struct stud { string cognome; string nome; int annoNascita; }; definizone di un nuovo tipo di variabile record stud definizione dei campi del record presenza obbligatoria del ‘;’ La definzione della struct definisce solo il tracciato record, ma non contiene dati. Occorre definire una variabile di tipo stud stud studente; definizione di una variabile del tipo record “stud” Il programma elabora i singoli campi della variabile studente Dati principali

Trattamento dei campi di un record Dato un record stud e una variabile studente di tipo stud L’input e l’output dei record avviene un campo alla volta struct stud { string cognome; string nome; int annoNascita; }; stud studente; Esempio: cout<<“\ncognome = “<<studente.cognome; cout<<“\nnome = “<<studente.nome; cout<<“\nanno di nascita = “<<studente.annoNascita; La visualizzazione del record prevede l’output dei singoli campi ESERCIZIO:RECORD LIBRO Codifica un programma in cui definisci un tipo record con tracciato : titolo del libro, costo, numero di pagine; acquisisci poi due libri e comunica tutti i dati di quello che costa di più soluzione Dati principali

Tabelle - vettori di record In particolare parliamo di vettori di record di solito detti tabella perché formati da tante colonne quanti sono i campi del record e da tante righe quanti sono gli elementi dell’array struct stud { string cognome; string nome; int annoNascita; }; stud classe [20]; Facendo sempre riferimento al record stud, vogliamo definire 20 studenti di una stessa classe. Perciò scriveremo dimensione della tabella Tipo base Nome della tabella Dati principali

Esempio di una tabella Come nei vettori le righe sono individuate da un indice di posizione (che parte da 0) mentre ogni riga essendo un record, avrà tutti i campi della struttura indice cognome nome annoNascita 1 2 3 4 5 6 7 8 9 6° record Campo nome del 7° record Dati principali

Elaborazione di una tabella Nell’elaborazione di una tabella si usano le tecniche già viste per i vettori e per i record. In quanto vettore, l’elaborazione di ciascuna riga della tabella avviene una alla volta. Poiché ogni riga è un record, ogni campo deve essere elaborato singolarmente Il ciclo for (iterazione enumerativa) è, in questi casi, il più adatto Dati principali

Elaborazione di una tabella struct stud { string cognome; string nome; int annoNascita; }; stud classe [20]; Acquisizione e visualizzazione della tabella classe int i; // dichiarazione dell’indice for (i = 0; i<20; i++) // ciclo di acquisizione {getline(cin,classe[i].cognome,’\n’); getline(cin,classe[i].nome,’\n’); cin>>classe[i].annoNascita; cin.ignore(1); } for (i = 0; i<20; i++) // ciclo di visualizzazione {cout<<classe[i].cognome<<endl; cout<<classe[i].nome<<endl; cout<<classe[i]. annoNascita <<endl; ESERCIZIO: TABELLA BIBLIOTECA Definisci un tipo record con tracciato : titolo del libro, costo, numero di pagine; definisci poi una tabella di 10 libri; acquisisci i libri della tabella e comunica poi tutti i dati ; calcola il prezzo medio dei libri soluzione Dati principali

Soluzione esercizi Lettura e scrittura di numeri Occupazione di memoria Saluto Prova Getline Elaborazione vettore di numeri Record libro Tabella biblioteca Dati principali

Esercizio : lettura e scrittura di numeri #include <cstdlib> #include <iostream> using namespace std; int main() { int intero; long interoGrande; float decimale; double decimaleGrande; cout<<"\nindica un intero"<<endl; cin>>intero; cout<<"\nl'intero indicato vale : "<<intero<<endl; cout<<"\nindica un intero grande"<<endl; cin>>interoGrande; cout<<"\nl'intero grande indicato vale : "<<interoGrande<<endl; cout<<"\nindica un decimale"<<endl; cin>>decimale; cout<<"\nil decimale indicato vale : "<<decimale<<endl; cout<<"\nindica un decimale grande"<<endl; cin>>decimaleGrande; cout<<"\nil decimale grande indicato vale : "<<decimaleGrande<<endl; system("PAUSE"); return EXIT_SUCCESS; } Codifica un programma in cui definisci diversi tipi di variabili numeriche; acquisisci le variabili in input e le riscrivi in output Teoria Elenco esercizi Dati principali

Esercizio : occupazione di memoria Codifica un programma in cui verifichi l’occupazione in byte dei diversi tipi di variabili utilizzando l’istruzione sizeof #include <cstdlib> #include <iostream> #include <string> using namespace std; int main() { cout<<"\nDimensione di una variabile int :"<<sizeof(int)<<endl; cout<<"\nDimensione di una variabile short int :"<<sizeof(short int)<<endl; cout<<"\nDimensione di una variabile long int :"<<sizeof(long int)<<endl; cout<<"\nDimensione di una variabile float :"<<sizeof(float)<<endl; cout<<"\nDimensione di una variabile double :"<<sizeof(double)<<endl; cout<<"\nDimensione di una variabile char :"<<sizeof(char)<<endl; cout<<"\nDimensione di una variabile bool :"<<sizeof(bool)<<endl; system("PAUSE"); return EXIT_SUCCESS; } Teoria Elenco esercizi Dati principali

Esercizio : saluto Codifica un programma che mette a video un messaggio di saluto indirizzato ad una persona il cui nome è chiesto in input; il nome deve essere definito di tipo string #include <cstdlib> #include <iostream> #include <string> using namespace std; int main() { string nome; cout<<"\ncome ti chiami?"<<endl; cin>>nome; cout<<"\nCaio "<<nome<<", io sono il computer !"<<endl; system("PAUSE"); return EXIT_SUCCESS; } Teoria Elenco esercizi Dati principali

Esercizio : prova getline #include <cstdlib> #include <iostream> #include <string> using namespace std; int main() { string nome; cout<<"\nindica un nome"<<endl; getline(cin,nome,'\n'); cout<<"\nil nome è -->"<<nome<<endl; system("PAUSE"); return EXIT_SUCCESS; } Codifica un programma in cui definisci una stringa di tipo string , la acquisisci con getline e la mostri in output; nel test scrivi “carlo alberto” Teoria Elenco esercizi Dati principali

Esercizio : elaborazione vettore di numeri #include <cstdlib> #include <iostream> #include <string> using namespace std; int main() { int v[10]; int i=0; cout<<"\nACQUISIZIONE DI DATI DEL VETTORE "<<endl; for(i=0;i<10;i++) {cout<<"\nindica il numero in posizione "<<i+1<<" : "; cin>>v[i]; } cout<<"\nVISUALIZZAZIONE DEI DATI DEL VETTORE "<<endl; {cout<<"\nil numero in posizione "<<i+1<<" e' "<<v[i]<<endl; system("PAUSE"); return EXIT_SUCCESS; Codifica un programma in cui definisci un vettore di 10 numeri , lo acquisisci e lo mostri in output, utilizzando un ciclo enumerativo Teoria Elenco esercizi Dati principali

Esercizio : record libro #include <cstdlib> #include <iostream> #include <string> using namespace std; struct libro { string titolo; float prezzo; int numeroPagine; }; int main() { libro L1, L2; cout<<"\nindica i dati del primo libro:"<<endl; cout<<"\ntitolo : "; cin>>L1.titolo; cout<<"\nprezzo : "; cin>>L1.prezzo; cout<<"\npagine : "; cin>>L1.numeroPagine; cout<<"\nindica i dati del secondo libro:"<<endl; cout<<"\ntitolo : "; cin>>L2.titolo; cout<<"\nprezzo : "; cin>>L2.prezzo; cout<<"\npagine : "; cin>>L2.numeroPagine; Codifica un programma in cui definisci un tipo record con tracciato : titolo del libro, costo, numero di pagine; acquisisci poi due libri e comunica tutti i dati di quello che costa di più if(L1.prezzo>L2.prezzo) { cout<<"\nIl libro piu' costo e' "<<L1.titolo; cout<<" con prezzo "<<L1.prezzo; cout<<" e pagine "<<L1.numeroPagine<<endl; } else { cout<<"\nIl libro piu' costo e' "<<L2.titolo; cout<<" con prezzo "<<L2.prezzo; cout<<" e pagine "<<L2.numeroPagine<<endl; system("PAUSE"); return EXIT_SUCCESS; Teoria Elenco esercizi Dati principali

Esercizio : tabella biblioteca #include <cstdlib> #include <iostream> #include <string> #define dim 10 using namespace std; struct libro { string titolo; float prezzo; int numeroPagine; }; int main() { libro biblioteca[dim]; int i=0; float s=0, m=0; system("cls"); cout<<"\nACQUISIZIONE DEI LIBRI"; for(i=0;i<dim;i++) { cout<<"\ntitolo : "; cin>>biblioteca[i].titolo; cout<<"\nprezzo : "; cin>>biblioteca[i].prezzo; cout<<"\npagine : "; cin>>biblioteca[i].numeroPagine; } Esercizio : tabella biblioteca Definisci un tipo record con tracciato : titolo del libro, costo, numero di pagine; definisci poi una tabella di 10 libri; acquisisci i libri della tabella e comunica poi tutti i dati ; calcola il prezzo medio dei libri cout<<"\nVISUALIZZAZIONE DEI LIBRI"; for(i=0;i<dim;i++) { cout<<"\ntitolo : "<<biblioteca[i].titolo; cout<<" prezzo : "<<biblioteca[i].prezzo; cout<<" pagine : "<<biblioteca[i].numeroPagine<<endl; } for(i=0;i<dim;i++) { s=s+biblioteca[i].prezzo; } m=s/dim; cout<<"\nla media dei prezzi e' : "<<m<<endl; system("PAUSE"); return EXIT_SUCCESS; }//fine Teoria Elenco esercizi Dati principali

FINE Dati principali FINE