Struttura dei programmi
funzioni – sotto-programmi (estensioni procedurali) – TipoDatoRisultato
NomeFunzione (parametri) {corpo della funzione}
Funzioni predefinite – nelle librerie
-
- Funzioni definite dal programmatore
Funzioni che restituiscono un valore – restituiscono un solo valore
▪ obbligatorio e hanno bisogno di un return
Funzioni void – non restituiscono nulla e non necessitano di un
▪ return – producono effetti collaterali (output o modifiche dello stato
del programma)
Funzioni definite a partire da un modulo - blocco di codice che
▪ raggruppa istruzioni per eseguire un compito specifico – riutilizzabile
più volte nel programma
- Main program (programma principale) - funzione principale – tutto deve essere
racchiuso qui - deve seguire una sintassi - è una funzione che non restituisce
nessun risultato ma in teoria potrebbe restituire un intero - int main()
- If – = “se” - per una condizione – restituisce un valore diverso a seconda che sia
vera o falsa – if (condizione) {codice da eseguire se è vera}
else {codice da eseguire se è falsa}
- While - = “finchè” – per ripetere un blocco di istruzioni finchè una certa condizione
è vera – usata quando si ha bisogno di ripetere un blocco di istruzioni un numero
di volte ancora indefiniti - se la condizione è falsa l’istruzione non viene scritta
nemmeno una volta - while (condizione) {inizializzazione;
corpo della funzione; aggiornamento}
- Do...while - = “fai finchè” - per ripetere un blocco di istruzioni finchè una certa
condizione è vera - l’istruzione viene scritta almeno una volta anche se la condizione
è falsa – do {inizializzazione; corpo della funzione;
aggiornamento} while (condizione)
- For - = “per” – per ripetere un blocco di istruzioni un preciso numero di volte –
for (inizializzazione; condizione; aggiornamento) {corpo
della funzione}
- Switch – alternativa a tanti if-else – switch (espressione) {case
valore1: istruzioni; break; case valore2: istruzioni;
- break se devo fermare l’esecuzione
break; ... default: istruzioni;}
dopo un caso, se non corrisponde continua nei successivi casi – default se nessun
caso risponde – es. switch (giorno) {case 1: cout << “lunedi”; break; case 2: cout <<
“martedi”; break; ... default: cout << “giorno non valido”;}
Trhow – gestione delle eccezioni e degli errori – solleva un’eccezione quando si
- verifica un errore – -
trhow NomeIdentificatoreErrore es. string
messaggio = "file non trovato”; trhow messaggio;
Try - gestione delle eccezioni e degli errori – delimita un blocco di codice che
- potrebbe generare errori – try {...} - es. Try { funzione_rischiosa(); }
Catch - gestione delle eccezioni e degli errori – cattura e gestisce l’eccezione –
- catch (TipoDatoRisultato & NomeIdentificatoreErrore)
{...} - es. Int err; throw err; - try {...}; catch (int &err) {cout << “errore”; }
Chiamare la funzione – per eseguire un blocco di codice riutilizzabile –
NomeFunzione (parametri);
Restituire il valore della funzione – il valore restituito deve essere dello stesso
tipo di quello della dichiarazione – return Risultato;
Blocco – pezzo di codice usato per istruzioni condizionali - -
{} es. Int main() { ... }
Direttive – per incorporare funzionalità che mi servono - #include
Stream – sequenza ordinata di dati che hanno una sorgente (input stream) o una
destinazione (output stream)
- Iostream – standard da console - #include <iostream>
input – cin (tastiera) - operatore: >>
output – cout (schermo) - operatore: <<
- Fstream – da file (sequenza lineare di dati memorizzati su un dispositivo di
memoria spesso permanente) - #include <fstream>
file di input – per leggere dati esistenti
file di output – per scrivere nuovi dati
Sstream – da stringa
- - #include <sstream>
header file .h/.hpp
– ogni tipo di dato necessita del suo header file – file con estensione
che contiene dichiarazioni di funzioni, variabili, ecc... generali – devono contenere le include
guard si includono con
#ifndef NOMEFILE_H #define NOMEFILE_H ... #endif – “NomeFile.h“ - es.
#include “mio_header.h”
Librerie – pezzo di codice che fa riferimento a funzionalità già compilate – es. <iostream>
(input output streaming) - per lavorare sigli stream di ingressi e uscita (es. Tastiera e
console) - operazioni di input e output
<iostream>
- - calcoli matematici più complessi
<cmath>
- - funzioni di utilità generale
<cstdlib>
- - permette di usare funzioni legate al tempo
<ctime>
- - permette di inserire i vector
<vector>
- - permette di inserire dati di tipo string
<string>
- - permette di inserire dati di tipo size_t
<cstddef>
-
Commento – documenta quello che sta succedendo – non fa differenza al programma ma
può essere utile al programmatore - per commenti più lunghi oppure per
/* ... */ \\
annotazioni locali
identificatore – nome che si da ad un elemento nella programmazione
elemento token (elemento che non posso separare con uno spazio bianco) – si può
- cammel case
usare _ per separare (nome_identificatore) oppure (metodo standard
per dare nomi agli identificatori – NomeIdentificatore)
Deve iniziare con una lettera alfabetica
- Si possono usare lettere maiuscole, minuscole, cifre numeriche e underscore (_)
-
Variabile – area di memoria il cui contenuto può cambiare durante l’esecuzione di un
programma – associata ad un identificatore – da inserire precedentemente al punto dove
deve essere usata – TipoDatoRisultato NomeIdentificatore
Costante – locazione di memoria il cui contenuto non cambia durante l’esecuzione di un
programma – const TipoDatoRisultato NOME_IDENTIFICATORE
Vector – modo per rappresentare gli array (sequenza di oggetti) – contenitori omogenei di
dati che contengono dati della stessa tipologia – std::vector
<TipoDatoRisultato> NomeIdentificatore
– – libreria vector
(QuantitàCelleConsecutive) es. Vector <int> num(5)
vector bidimensionale – vector<vector<TipoDatoRisultato>>
- NomeIdentificatore(QuantitàCelleConsecutive,
vector<TipoDatoRisultato>(QuantitàCelleConsecutive)) – es.
vector<vector<int>> a(M, vector<int>(N)) - MxN
String – container specializzati per contenere sequenze di caratteri – std::string
– – libreria string
NomeIdentif
-
Appunti di Introduzione alla programmazione sulla struttura di un programma in c++
-
Appunti di Introduzione alla programmazione sulla teoria della programmazione in c++
-
Appunti Introduzione alla programmazione
-
Appunti di Introduzione alla programmazione