_04programmazione
Di cosa parla
- Introduzione alla Programmazione:
- Definizione di Informatica, Algoritmi, Programmi e Computer.
- Distinzione tra processo e processore.
- Esempio base di programma C++ ("Hello, world!") con dettagli sui simboli, parole chiave e commenti.
- Fondamenti di C++:
- Gestione delle Variabili: dichiarazione, assegnazione, scope (globali, locali), tipi semplici (bool, int, char, float, double) e modificatori (short, unsigned, long).
- Identificatori: regole di formato, case sensitivity.
- Costanti: dichiarazione con
conste direttiva#define. - Operatori: algebrici (
+,-,*,/,%), logici (&&,||,!), relazionali (==,!=,>,<,>=,<=), bitwise. - Pre-incremento e post-incremento (
++i,i++). - Operatore condizionale ternario (
condition ? result1 : result2).
- Costrutti di Controllo:
- Selezione:
if-then-elsenidificato eswitchper scelte multiple. - Iterazione: cicli
while-do,do-while(con almeno un'esecuzione) efor(con prologo, condizione, continuazione). - Esercizi pratici con soluzioni per ogni costrutto.
- Selezione:
- Strutture Dati:
- Array: collezione ordinata di dati omogenei, dichiarazione, accesso agli elementi, operazioni (visualizzazione, ricerca, eliminazione, inserimento in array ordinato).
- Stringhe: array di
charterminati da\0. Operazioni comuni (strlen,strcpy,strcat,strcmp) con implementazioni manuali. - Matrici: array multidimensionali, dichiarazione e accesso. Esercizi su somma/max per riga e scambio di righe.
- Struct: collezione di dati eterogenei (record), dichiarazione, definizione, accesso ai campi, nidificazione di struct. Utilizzo di
typedefper creare alias di tipo. - Puntatori: indirizzi di memoria (
&), valori puntati (*). Puntatori a struct (->) e ad array. Allocazione statica vs dinamica (new,delete,new[],delete[]). - Liste concatenate: struttura dinamica con elementi (valore + puntatore al prossimo). Creazione, riempimento da vettore, visualizzazione, inserimento ed eliminazione di elementi, deallocazione.
- Funzioni e Modularità:
- Principio di scomposizione in sottoproblemi.
- Dichiarazione (prototipo) e definizione di funzioni.
- Chiamata di funzione e passaggio dei parametri: per valore (copia), per puntatore (indirizzo), per riferimento (alias diretto).
- Esercizi sull'uso delle funzioni con array e calcoli.
- Librerie di funzioni e compilazione separata (header
.h, implementazione.cpp, main.cpp).
- Ricorsione:
- Funzioni che richiamano sé stesse, con un caso base risolvibile.
- Esempi: calcolo della potenza, fattoriale, ricerca binaria.
- Gestione File:
- Memorizzazione persistente di dati.
- Operazioni di base con
fstream(ifstream,ofstream): apertura, chiusura, lettura (>>), scrittura (<<), controlli (is_open(),fail(),eof()). - Esercizi su lettura/scrittura e analisi di frequenza caratteri.
- Algoritmi di Ordinamento:
- Introduzione a Selection Sort e Bubble Sort, con logica e implementazioni.
- Debugging:
- Strumenti in Dev Cpp: breakpoint, watch, esecuzione passo-passo.