Lezione 6 Introduzione al C++ - Mauro Piccolo
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Linguaggi di programmazione ● Un linguaggio formale disegnato per descrivere la computazione ● Linguaggi ad alto livello ● C, C++, Pascal, Java, … ● Linguaggi a basso livello ● Assembly, linguaggio macchina ● Tradurre un programma ● Interpretazione ● Compliazione
Interprete
Compilatore
Il C++ e' un linguaggio compilato
Cos'e' un programma? ● Un programma e' una sequenza di istruzioni ● Tipologia di istruzioni ● Input ● Output ● Matematiche ● Test ● Ripetizioni (cicli)
Debugging ● Errori in compilazione ● Il programma e' stato scritto in modo sintatticamente scorretto ● Errori in esecuzione ● Errore che appare al momento dell'esecuzione del programma ● Errori logici e semantici ● Il programma non fa quello che si vuole
Il nostro primo programma
Il nostro primo programma Include la libreria iostream, ovvero la libreria standard per gestire l'I/O La libreria iostream e' situata nello spazio dei nomi std (standard) E' una funzione che racchiude le istruzioni del programma. Le parentesi tonde () stanno a significare che la funzione non ha argomenti Stampa la stringa Hello World!! su schermo
Se questo programma e' scritto in un file pippo.cpp Allora con g++ pippo.cpp Il programma viene compilato Nel codice oggetto a.exe (o a.out) che viene eseguito con il comando ./a.exe
Possiamo fare di piu' Ha come effetto
Possiamo togliere un invio stampano entrambi
Commenti al codice ● I commenti sono una parte di codice sorgente che il compilatre ignora ● Una riga di commento inizia con // Produce ● E' buona norma commentare il codice per renderlo piu' leggibile
Valori ● Valori ● Stringhe (ad esempio “Hello World!!”) ● Numeri (ad esempio 17) ● Caratteri (come 'a' oppure 'b' oppure '}') ● Che differenza c'e' tra “5”, '5' e 5?
Tipi di dato ● Un tipo e' una coppia ● Insieme di valori ● Operazioni definite su questi valori ● A cosa servono i tipi ● danno un'indicazione su come interpretare sequenze di bit
Il tipo intero ● Keyword: int ● Valori: 0,2,5... ● Operazioni: ● Aritmetiche + (somma) – (sottrazione) * (moltiplicazione) / (divisione intera) % (resto) ● Confronto == (uguale) != (diverso) = (maggiore uguale) > (maggiore) ● Rappresentazione interna: complemento a 2 a 4 byte
Esempio Stampa
Altri tipi di dato predefiniti ● I reali ● I caratteri ● I booleani ● Il tipo vuoto (void) ● il tipo stringa di caratteri alla C
I reali ● Il C++ utilizza 2 tipi di valori reali ● Il double e il float ● Entrambi usano una rappresentazione a virgola mobile – Il double occupa 8 byte mentre il float occupa 4 byte ● Valori – 12.5 e 12.5e2 (12.5 * 102) sono double – 12.5f e' float ● Operazioni – Aritmetiche e di confronto – Le stesse di int (O NO???)
Overloading (sovraccaricamento) Sono operazioni diverse anche se sono utilizzati gli stessi simboli 5 + 2 → + del tipo int 5.2 + 2.4 → + del tipo double Questo fenomeno si chiama overloading Il compilatore usa l'operatore giusto a seconda del tipo degli operandi
Il tipo booleano ● Keyword: bool ● Valori: true, false ● Operazioni ● Logiche – && (and) || (or) ! (not) … ● In C++ i booleani sono rappresentati internamente come interi ● false e' rappresentato da 0 ● true e' rappresentato da 1 oppure qualunque valore diverso da 0
Esempi Produce Produce
I caratteri ● Keyword: char ● Valori: 'a', '2', ',' , '\n' (invio), '\t' (tabulazione),... ● Rappresentazione: codifica ASCII estesa (2 byte) ● Operazioni ● Le “stesse” di int
Esempio Confrontate le codifiche ASCII dei vari Produce caratteri con i numeri in output
Il tipo vuoto (void) ● Non ha valori ● Non ha operazioni ● Serve a rappresentare l'assenza di valori (al momento giusto lo useremo)
Variabili ● Una locazione con un nome, che contiene un valore ● Dichiarazioni di variabili ● Assegnamento
Diagramma di stato
Variabili ● Ogni variabile ha un lvalore ed un rvalore ● Lvalore: l'indirizzo di memoria RAM in cui e' memorizzata la variabile ● Rvalore: il dato memorizzato nella variabile ovvero il contenuto della cella di memoria RAM il cui indirizzo e' dato dall'lvalore della variabile. ● Ricordatevi di queste nozioni: ci torneranno utili!
Stampare variabili in output Stampano entrambi
Altri esempi Produce Produce
Conversioni ● Che succede se tento di assegnare ad una variabile di tipo reale un valore o una variabile di tipo intero? ● Di solito il C++ consente le conversioni che non causano perdita di informazione ● Nell'altro verso, verrebbe segnalato un errore in compilazione
Cast ● Se si vuole forzare comunque la conversione, si utilizza l'operatore di cast ● Il cast effettua un troncamento ● Il valore di x sara' 5
Input e Output Vediamo l'esecuzione
Esercizi ● Scrivere un programma che dati due numeri interi in input, stampa il loro prodotto ● Scrivere un programma che dato un carattere, stampa il carattere immediatamente precedente al carattere dato nella codifica ASCII ● Scrivere un programma che dati due numeri reali, stampa la somma dei due numeri
Allo scopo di scrivere programmi utili, e' spesso necessario cambiare il comportamento del programma a seconda del verificarsi di determinate condizioni
Istruzioni condizionali if(expbool){ if(expbool){ C1 C1 }else{ } C2 }
L'istruzione if ● Condizione ● L'espressione tra parentesi ● Se e' vera, il blocco tra parentesi viene eseguito
L'istruzione if – then – else ● Condizione ● L'espressione tra parentesi ● Se e' vera, viene eseguito il primo blocco ● Se e' falsa, viene eseguito il secondo blocco
Esempio
Puoi anche leggere