Appunti Fondamenti di informatica parte 1
Di cosa parla
- Algoritmo: Procedimento rigoroso e finito di passi per risolvere problemi, definito come un elenco finito e ordinato di istruzioni. La formalizzazione consiste nel trascrivere l'algoritmo in una scrittura formale o matematica, rendendolo comprensibile all'esecutore.
- Elaboratore: Apparecchiatura automatica, digitale ed elettronica che esegue algoritmi su dati diversi, trasformando dati in ingresso. Richiede linguaggi di programmazione specifici.
- Informatica: Scienza che studia l'elaborazione delle informazioni, occupandosi di rappresentazione, organizzazione e trattamento automatico.
- Programma: Insieme di istruzioni ordinate che implementano un algoritmo, tradotto in linguaggio comprensibile all'elaboratore e registrato in memoria. La sintassi è cruciale.
- Rappresentazione: Obiettivo è rendere l'algoritmo eseguibile dall'elaboratore. Strumenti includono l'Algebra di Boole (logica binaria) e i Flow Chart (diagrammi di flusso).
- Linguaggio Python: Linguaggio di alto livello, più comprensibile all'uomo e versatile. È interpretato (le istruzioni vengono trasformate in azioni al momento dell'esecuzione). I programmi possono essere scritti in console (linea di comando) o in script (file .py).
- Istruzioni Comuni: Operazioni di input, output, matematiche, condizionali e di ripetizione.
- Linguaggi Formali e Naturali: I linguaggi formali (come quelli di programmazione) sono rigidi nella sintassi, non ambigui, concisi e letterali. Si compongono di Token (elementi base) e Struttura (modo in cui i token sono disposti).
- Tipi di Dati: Ogni dato ha un tipo che definisce i valori che può rappresentare e le operazioni effettuabili. Tipi primitivi includono
int(numeri interi),float(numeri a virgola mobile),str(stringhe di caratteri) ebool(booleani True/False). Il tipo può essere verificato contype(). - Costanti e Variabili: Le costanti sono valori fissi durante la computazione, mentre le variabili possono cambiare. Convenzione: le costanti sono indicate con lettere maiuscole. L'operatore
=è per l'assegnazione. - Operatori Aritmetici: Simboli per calcoli fondamentali:
+(addizione),-(sottrazione),*(moltiplicazione),/(divisione),**(elevamento a potenza). Per le stringhe,+concatena e*ripete. L'ordine delle operazioni segue PEMDAS. - Commenti: Usati per spiegare il codice. Il simbolo
#precede i commenti su singola riga; tre virgolette (""") per commenti su più righe. - Debugging: Ricerca e correzione degli errori (bug). Tipi di errori: di sintassi (Python li rileva e interrompe), in esecuzione (runtime bug, appaiono durante l'esecuzione), di semantica (il programma esegue ma il risultato non è quello desiderato dal programmatore).
- Operatori Relazionali: Confrontano valori e restituiscono un risultato booleano (True/False):
>,>=,<,<=,==(uguaglianza),!=(diverso),is(identità),is not(negazione di identità). - Operatori Logici: Basati sull'algebra di Boole:
and,or,not. - Stampare (print): Il comando
print()visualizza ciò che è inserito tra parentesi.crea una nuova riga. È possibile formattare l'output usando operatori di formato (es.%dper interi,%.Nfper float) o il metodo.format(), che permette di concatenare tipi diversi senza ricorrere al CAST esplicito. - Istruzione Condizionale (if/else): Permette di decidere il flusso di esecuzione in base a una condizione (guardia). Se la guardia è True, esegue un blocco di istruzioni (corpo); altrimenti, può eseguire un corpo alternativo (
else). - Indentazione: Fondamentale in Python, determina il flusso di esecuzione delle istruzioni e la gerarchia dei blocchi di codice (es. cicli, funzioni). Si realizza con spazi o tabulazioni.
- Cicli (While/For): Istruzioni di iterazione che permettono di eseguire ripetutivamente un blocco di codice. I cicli
forspesso usanorange()e hanno un incremento implicito (di default +1), mentre i cicliwhilerichiedono l'indicazione esplicita della condizione iniziale e dell'incremento. - Interazione da Console (input): La funzione
input()permette all'utente di inserire dati da tastiera; restituisce sempre una stringa.