Estratto del documento

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 *).

  1. 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”).
  2. 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”.
  3. 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’ & ...
Anteprima
Vedrai una selezione di 7 pagine su 26
Programmazione - Spiegazione C++, Puntatori e liste, Java (base) Pag. 1 Programmazione - Spiegazione C++, Puntatori e liste, Java (base) Pag. 2
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Programmazione - Spiegazione C++, Puntatori e liste, Java (base) Pag. 6
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Programmazione - Spiegazione C++, Puntatori e liste, Java (base) Pag. 11
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Programmazione - Spiegazione C++, Puntatori e liste, Java (base) Pag. 16
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Programmazione - Spiegazione C++, Puntatori e liste, Java (base) Pag. 21
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Programmazione - Spiegazione C++, Puntatori e liste, Java (base) Pag. 26
1 su 26
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Mr.Al di informazioni apprese con la frequenza delle lezioni di Fondamenti di programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Parma o del prof Scienze matematiche Prof.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community