G. Mecca – M. Samela – Università della Basilicata
Programmazione Procedurale in Linguaggio C++
Elementi di Base Ricapitolazione
versione 2.6
Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Ricapitolazione
m
Elementi di Base
ðnozioni sintattiche di base
ðnozioni sulla dichiarazione dei dati
ðnozioni sulle operazioni di base sui dati di un programma
m
In sintesi
ðquello che serve per scrivere programmi che si comportano come una calcolatrice
Elementi di Base: Dettagli e Approfondimenti >> Ricapitolazione
G. Mecca - Programmazione Procedurale in Linguaggio C++ 3
m
Direttive
ðper librerie di sistema e librerie dell’utente
ð#include <iostream.h> (librerie di sistema)
ð#include <fstream.h>(librerie di sistema)
ð#include “equazioniLib.h”(librerie utente)
m
Commenti
ðlinea singola // questo è un commento
ðmultilinea/* commento */
Nozioni Sintattiche di Base
m
Identificatori
ðnomi degli oggetti di un programma (variabili, costanti, parametri, moduli)
m
Regole sintattiche
ðsequenza di lettere/cifre/_
ðprimo carattere: lettera o _ ðcodice ASCII a 7 bit
ðsensibile alle maiuscole
ðescluse le parole chiave riservate (es: main)
Elementi di Base: Dettagli e Approfondimenti >> Ricapitolazione
G. Mecca - Programmazione Procedurale in Linguaggio C++ 5
Dichiarazione dei Dati
m
Tipi di dato di base
ðint: 32 bit in complemento a 2, da -2 miliardi a +2 miliardi circa
ðfloat: 32 bit in v.m., da -1038 a +1038 circa ðdouble: 64 bit in v.m., da -10308 a +10308ca.
ðchar: 8 bit, codice ASCII a 7 bit ðbool: 1 bit
m
Tipo string: classe di oggetti del C++
Dichiarazione dei Dati
m
Dichiarazioni di costante simbolica
ðconst <tipo> <identificatore> = <valore>;ðes: const float PIGRECO = 3.1415;
m
Semantica
ðspazio nella memoria del tipo specificato, non modificabile, contenente il valore
m
Vantaggi
ðpoter cambiare il valore intervenendo solo sulla dichiarazione
Elementi di Base: Dettagli e Approfondimenti >> Ricapitolazione
G. Mecca - Programmazione Procedurale in Linguaggio C++ 7
m
Dichiarazioni di variabili
ð<tipo> <identificatore>;ð<tipo> <identif1>, <identif2>, ... <identifn>;
ðes: int raggio;
ðes: float cerchio, circonf;
m
Semantica
ðspazio nella memoria del tipo specificato ðmodificabile liberamente nel corso del
programma (lettura o assegnazione)
Dichiarazione dei Dati
m
Attenzione
ðsubito dopo la dichiarazione il valore della variabile è casuale (indefinibile)
ðè necessario inizializzare la variabile leggendone il valore da un flusso ðo con un’istruzione di assegnazione
m
Esempio
ðint raggio; cin >> raggio;
ðint raggio; raggio = 3;
Elementi di Base: Dettagli e Approfondimenti >> Ricapitolazione
G. Mecca - Programmazione Procedurale in Linguaggio C++ 9
Dichiarazione dei Dati
m
In alternativa
ðinizializzazione contestuale alla dichiarazione
ðes: int raggio = 0;
m
Equivalente a due istruzioni
ðint raggio;
ðraggio = 0;
Dichiarazione dei Dati
m
Attenzione (2)
ðpossibili errori di rappresentazione
m
Varie cause
ðlimitatezza dello spazio in memoria (trabocco)
ðnatura della rappresentazione in virgola mobile (arrotondamenti)
Elementi di Base: Dettagli e Approfondimenti >> Ricapitolazione
G. Mecca - Programmazione Procedurale in Linguaggio C++ 11
m
Istruzioni di base
ðistruzioni di assegnazione ðistruzioni di lettura e stampa
m
Istruzioni di assegnazione
ðservono ad assegnare il risultato di un calcolo ad una variabile
m
Istruzioni di lettura e stampa
ðservono ad acquisire e stampare i valori delle variabili
Istruzioni di Assegnazione
m
Sintassi
<nomeVariabile> = <espressione>;
m
Semantica
ðviene calcolato il valore dell’espressione ðse il valore risultante è compatibile con il tipo della variabile, viene assegnato alla variabile (ovvero: il valore viene scritto nello spazio di memoria associato alla variabile) ðaltrimenti si genera un errore
Elementi di Base: Dettagli e Approfondimenti >> Ricapitolazione
G. Mecca - Programmazione Procedurale in Linguaggio C++ 13
Espressioni
m
Formule per il calcolo di un valore
ðcomposte di operandi e operatorim
Operandi
ðcostanti ðvariabilim
Operatori
ðoperatori predefiniti ðfunzioni predefinite
Istruzioni di Lettura e Stampa
m
Basate sul concetto di “flusso”
ðcanale di comunicazione tra il processore ed un dispositivo di ingresso o di uscita
m
Standard input
ðflusso standard di ingresso, proveniente dalla tastiera
m
Standard output
ðflusso standard di uscita, diretto verso lo schermo
Elementi di Base: Dettagli e Approfondimenti >> Ricapitolazione
G. Mecca - Programmazione Procedurale in Linguaggio C++ 15
Schermo Flusso di uscita
File su disco
Stampante
File su disco Tastiera
Processore Esegue le istruzioni del Programma
Flusso di uscita
Flusso di uscita Flusso di ingresso
Flusso di ingresso Standard
Input
Istruzioni di Stampa
m
Sintassi
cout << <espressione>;
cout << <espressione1> << <espressione2> ... ;
ðespressione: costante, variabile, espr.
complessa
m
Semantica
ðviene calcolato il valore di ciascuna espressione
ðil valore viene inserito nel flusso diretto allo schermo sotto forma di sequenza di caratteri
Elementi di Base: Dettagli e Approfondimenti >> Ricapitolazione
G. Mecca - Programmazione Procedurale in Linguaggio C++ 17
Istruzioni di Lettura
m
Sintassi
cin >> <variabile>;
m
Semantica: input formattato
ðappena nel flusso è presente almeno una riga, il processore analizza il flusso
ðnell’analisi del flusso ignora eventuali spazi bianchi iniziali
ðgli spazi bianchi vengono utilizzati anche come separatori tra i valori
Lettura e Stampa da e verso File
m ofstream
ðflusso associato ad un file in cui si stampano dati es: ofstream flussoSuFile (“fileDati.txt”);
m ifstream
ðflusso associato ad un file da cui si leggono dei dati es: ifstream flussoDaFile (“fileDati.txt”);
m Per utilizzarli è necessario specificare
ð #include <fstream.h>
Elementi di Base: Dettagli e Approfondimenti >> Ricapitolazione
G. Mecca - Programmazione Procedurale in Linguaggio C++ 19
Domande ed Esercizi di Riepilogo
Termini della Licenza
m This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Termini della Licenza
m Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare
http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.