Introduzione al C++
Inizio
Include la libreria “iostream” che contiene funzioni #include <iostream> predefinite per la gestione dell’input/output. Permette di usare (riconoscere) gli “spazi” come parte using namespace std; del codice. Indica che si tratta del programma principale (il int main() { } programma andrà scritto fra le due parentesi graffe).
Input Output
L'utente inserirà il valore di x (se x ha già un valore, cin >> x; questo verrà sostituito; il cin ignora lo “spazio” e “a capo”). Viene stampato a video la frase “Il valore di x e' 10” (se cout << “valore di x e': ” << x << endl;; x vale 10); endl manda a capo.
Cin.get()
Si suppone che l'utente inserisca “a bc” come stringa di char C; input. C = cin.get(); --> assegna 'a' a C. C = cin.get(); --> assegna 'spazio' (codice ascii 32) a C. C = cin.get(); --> assegna 'b' a C. cin.get(C); --> assegna 'c' a C. --> non essendoci più caratteri da leggere, assegna false; cin.get(C); (se ci fossero dei caratteri, come in quello appena sopra, assegnerebbe sia il valore, sia true).
Concatenazione cin.get()
Si suppone che l'utente inserisca “abc” come stringa di char A,B,C; input. cin.get(A).get(B).get(C); --> assegna 'a' ad A, 'b' a B, 'c' a C.
Controllo Input
int n; do { - “cin.fail()” sarà “true” se il dato inserito non è di tipo cin >> n; int; sarà “false” se il dato inserito è int. (vale anche per if (cin.fail()) { gli altri tipi di variabile). cout << "errore - ripetere" << endl; - "cin.clear()" ripristina lo stato corretto dello stream. cin.clear(); - "cin.ignore(256,'\n')" estrae e scarta i caratteri dallo cin.ignore(256,'\n'); stream di input finche non sono stati scartati 256 caratteri } o finche non incontra il '\n' ( '\n' è il carattere che è messo else break; alla fine dello stream di input). } while (true);
Dichiarazione variabili
- Dichiaro una variabile (tre variabili, tramite l'utilizzo int x, y, t; - int x=0; della virgola) int (comprende numeri interi anche negativi).
- Dichiaro una variabile float (comprende numeri negativi float x; - float x=10.2; e positivi anche con la virgola).
- Dichiaro una variabile double (comprende una maggiore double x; - double x='ciao'; quantità di numeri dopo la virgola rispetto alla variabile float).
- Dichiaro una variabile char (può assumere UN solo char x; - char x='a' carattere tra tutti quelli esistenti).
- Converte la “a” in una “A” → “x” conterrà quindi il char x='a'; x = x – 32; valore di “A” (32 è la differenza tra il valore di “a” e “A”).
- Dichiaro una variabile string (può contenere una lista di string x; - string x='ciao'; caratteri e verrà considerata come un vettore).
- bool x=false; Dichiaro una variabile bool (può essere solo true o false).
- Dichiaro una costante di tipo int (il tipo può essere const int val=20; qualunque; una volta dichiarata non può essere cambiata all'interno del programma).
Operazioni
- Val = x + y Somma.
- Val = x - y Sottrazione.
- Val = x * y Moltiplicazione.
- Divisione (se Val,x,y sono interi, il risultato è intero; se Val e x sono float, il risultato è con la virgola; se x è Val = x / y intero si può scrivere “x*1.0” e ciò lo renderebbe un float con la virgola).
- Val = x % y Restituisce il resto dalla divisione x / y.
Inserendo questa libreria dopo “include <iostream>” si #include <cmath> potranno utilizzare le operazioni sottostanti.
- Val = sin(x) Seno di x.
- Val = cos(x) Coseno di x.
- Val = tan(x) Tangente di x.
- Val = log10(x) Logaritmo in base 10 di x.
- Val = sqrt(x) Radice quadrata di x.
- Val = pow(x,y) x elevato alla potenza di y.
Operandi logici
- ! → negato (usato con i bool)
- != → diverso
- || → or
- && → and
Statement If
if (x < 0) “x < 0” è la condizione; se è vera si prosegue (saltando le { x = b; } righe contenute nelle {} dell'else); se è falsa, si saltano le else righe fino all'else. { x = a; y = c; } if (x < 0) { x = b; } else if (x != 2 && x != 3) Concatenazione di due if (if-else annidati). { x = a; y = c; } else {x = d;}
While
Finche la condizione “i <= 10” è soddisfatta, il ciclo si while (i <= 10) ripete (In particolare: inizialmente si suppone i = 0; la { condizione è vera quindi svolgo il contenuto del while; x=x+3; una volta completata la “i++;” ritorno all'inizio e…; controllo la condizione... continuo così finche è vera;…; quando la condizione risulterà falsa, salterò tutto il I++; contenuto del while e proseguirò con le successive } operazioni).
Do-While
Do { Finche la condizione “i <= 10” è soddisfatta, il ciclo si x=x+3; ripete (In particolare: inizialmente si suppone i = 0; si…; svolgono le operazioni contenute nel do; una volta i++; completata la “i++;” controllo la condizione: se è vera } ricomincio dal do, se è falsa proseguo. while(i <= 10)
For
Finche la condizione “i < 10” è soddisfatta, il ciclo si ripete (In particolare:“i = 0” → indica da che valore parte la i. for (i = 0; i < 10; i++) “i++” → pur essendo scritto tra parentesi, si suppone che { cout << i << ’ ’; } questa operazione venga svolta alla fine del for. “i < 10” → finche è vera, il for si ripete, quando diventa falsa, si prosegue).
Switch
switch(sc) { case 1:…; Se sc = 1, svolgo le operazioni contenute tra “case 1:” e break; il primo “break;”, se sc = 'a' o sc = 97, svolgo le case 'a': operazioni del “case 2:” e così via. …; Se sc non è 1 o 2 o 3, allora si svolgono le operazioni del break; “default:”. case 3: Se il default non è presente, allora si prosegue con le …; operazioni dopo lo switch. break; default:…; }
Break
Può essere inserito in un while, do-while, for e switch { …; break; …; } (non nel if) e la sua funzione è quella di far terminare il ciclo.
Goto
Ripeti: if(i < 10) { Arrivando all'operazione “goto Ripeti;”, si salta alla riga x = a; indicata con “Ripeti:”. i++; goto Ripeti; }
Strutture dati
Array o Vettori (dichiarazione)
- Vettore di 10 elementi di tipo int (ATTENZIONE: nel int V1[10]; vettore la posizione del primo elemento è 0, mentre l'ultima è 9).
- Vettore di 5 elementi di tipo char, con elementi già char vocali[5] = {'a','e','i','o','u'} dichiarati.
- Solo i primi tre elementi sono dichiarati, lasciando quindi int V[10] = {1,2,3} 7 posti vuoti.
- Questo vettore sarà composto da tre elementi di tipo float float F[] = {1.23, 2.34, -23.1} (“float F[];” è un vettore vuoto che non può contenere elementi).
- int V[5] = {5,11,20,17,8}; “V[1]” contiene il valore nella posizione 1 del vettore V x = V[1]; (quindi “x = 11”).
- Non viene restituito errore, ma il V[11] indica una cella int V[10]; di memoria casuale, nella quale verrà inserito il 3 V[11]=3; causando probabili errori in un altro programma.
Array o Vettori (operazioni)
- int A[5]={10,29,38,47,56}; Codice presente all'inizio di tutte le operazioni int B[5]; successive.
- for (int i = 0; i < 5; i++) Uguaglio il vettore “B” ad “A”. B[i] = A[i];
- bool array_uguali = true; for (int i = 0; i < 5; i++) if (B[i] != A[i]) { array_uguali = false; break; Confronto il vettore “A” con il “B”. } if (array_uguali) cout << ‘‘Gli array sono uguali.’’; else cout << ‘‘Gli array sono diversi.’’;
- for (int i = 0; i < 5; i++) Faccio inserire i valori del vettore “A” all'utente. Cin >> A[i];
- for (int i = 0; i < 5; i++) Mostro i valori contenuti nel vettore “A”. cout << A[i];
Array bidimensionali o Matrici (dichiarazione)
- Dichiarazione di una matrice di 10 righe e 20 colonne, di int M1[10][20]; tipo int.
- Dichiarazione di una matrice di 2 righe e 3 colonne, di int M2[2][3] = {{5,7,6},{4,6,8}}; tipo int, con elementi già dichiarati.
- Posso creare delle matrici k-dimensionali (k è il numero int M3[20][10]...[34] di parentesi quadre utilizzate per la matrice).
Array bidimensionali o Matrici (operazioni)
- Codice presente all'inizio di tutte le operazioni int M[rig][col]; successive (“rig” e “col” sono dei numeri).
- for (int i = 0; i < rig; i++) for (int v = 0; v < col; v++) { cout << "Inserisci l’elemento: "; Caricamento della matrice. cin >> M[i][v]; }
- for (int i = 0; i < num_righe; i++) { cout << endl; for (int v = 0; v < num_colonne; v++) Stampa la matrice. { cout << M[i][j] << “ ”; } }
Stringhe (dichiarazione)
- char s[10] = {'c','i','a','o','\0'}; Vettore di caratteri → stringa (\0 indica dove terminano i char s[10] = “ciao”; caratteri; nel secondo caso è inserito automaticamente).
- Vettore di caratteri con lunghezza automatica (in questo char s[] = “ciao”; caso, di lunghezza 5, considerando anche il “\0”).
- char s[] = “”; Vettore “vuoto” (contiene solo il “\0”).
Stringhe (operazioni)
Indicherò le operazioni dove è necessaria la libreria #include <cstring> con *).
- Caricamento dati: Inserisce tutti i caratteri trovati in char nome[32]; input, uno dopo l'altro fino a che non trova “spazio” o “a cin >> nome; capo” (se inserisco “Aldo Tragni” la stringa conterrà solo 'A', 'l', 'd', 'o' seguito da “\0”).
- Caricamento dati: in “cin.getline(s,50,'\n')”:
- s → stringa da considerare.
- 50 → numero massimo di caratteri considerati (nel caso char s[51]; l'utente inserisca 51 caratteri o più).
- cin.getline(s,50,'\n'); \n → indica il carattere che, quando viene incontrato, fa terminare la lettura (nel caso l'utente inserisca meno di 50 caratteri). Dopo l'estrazione dei caratteri verrà aggiunto “\0” alla stringa “s”.
- Caricamento dati: il “cin.get()” estrae solo un carattere const int dim = 51; char s[dim]; cout << "Inserire stringa: "; char c; c = cin.get(); while (c != ’\n’ & ...
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Programmazione java
-
Programmazione in C++ : Programmi sulla costruzione di liste collegate (e puntatori)
-
Programmazione 1
-
Appunti di Programmazione Java