1
FONDAMENTI DI INFORMATICA
INTRODUZIONE
Def. Algoritmo
Un ALGORITMO è un procedimento che risolve un determinato PROBLEMA
attraverso un numero FINITO di ISTRUZIONI ELEMENTARI, chiare e non
ambigue.
Un ALGORITMO è la descrizione del procedimento per risolvere un determinato
problema. Tale descrizione, espressa in modo non ambiguo e in un linguaggio
comprensibile da un dato esecutore, è costituita da una sequenza finita di azioni.
Dato un problema esistono diversi algoritmi per risolvere il problema stesso.
I problemi che possono essere risolti da un algoritmo sono:
1) Problemi con FORMULAZIONE MATEMATICA
2) Problemi che possono essere RISOLTI MANUALMENTE
Def. Pseudocodice
Uno PSEUDOCODICE è il linguaggio per esprimere algoritmi senza far
riferimento ad una specifica sintassi
Def. Programma
Un PROGRAMMA è la RAPPRESENTAZIONE di un algoritmo in un LINGUAGGIO
di PROGRAMMAZIONE che risulti comprensibile da un calcolatore (che ne sarà
l’esecutore)
CLASSIFICAZIONE DEI LINGUAGGI
Esistono i linguaggi naturali e i linguaggi formali
Una MACROCLASSIFICAZIONE dei LINGUAGGI FORMALI li divide in:
1) LINGUAGGI A BASSO LIVELLO: un linguaggio molto vicino al linguaggio
macchina, ma molto lontano dal modo di ragionare umano
2) LINGUAGGI AD ALTO LIVELLO: linguaggio che utilizza meccanismi più
sofisticati ed astratti, slegati dal funzionamento fisico della macchina
Esiste quindi una GERARCHIA DI LINGUAGGI, dai meno evoluti ai più evoluti
LINGUAGGIO MACCHINA
L’unico linguaggio che un computer è in grado di comprendere è il linguaggio
macchina. Esso si basa sull’alfabeto binario.
2
L’ALFABETO BINARIO è composto da sequenze di BIT (0 e 1) che permetto al
PROCESSORE di eseguire istruzioni e comandi operativi.
Il LINGUAGGIO MACCHINA dipende dall’architettura HARDWARE del computer.
NON ESISTE UN UNICO LINGUAGGIO MACCHINA.
COMPILATORI
Esegue una sola volta il processo
LEGGE TUTTE le istruzioni del programma SERGENTE, ne verifica la
CORRETTEZZA SINTATTICA e la TRADUCE in linguaggio macchina
MEMORIZZA su disco il programma ESEGUIBILE tradotto in linguaggio
macchina
Al termine della compilazione avremo un PROGRAMMA ESEGUIBILE in
linguaggio macchina.
La TRADUZIONE di ogni istruzione del programma avviene UNA VOLTA SOLA,
anche se una stessa istruzione viene ripetuta più volte all’interno del
programma.
Non ho bisogno di avere il COMPILATORE ed il SORGENTE per eseguire il
programma, mi basta il PROGRAMMA ESEGUIBILE
INTERPRETE
LEGGE un’istruzione del programma SORGENTE
TRADUCE l’istruzione in linguaggio macchina
ESEGUE l’istruzione
Passa all’INTERPRETAZIONE dell’ISTRUZIONE SUCCESSIVA
Al termine di questa operazione, del programma in linguaggio macchina non
rimane alcuna traccia, la TRADUZIONE NON VIENE MEMORIZZATA
Se il programma torna più volte su una stessa istruzione, questa verrà tradotta
OGNI volta
È necessario disporre dell’interprete per poter eseguire il programma.
CODIFICA BINARIA
BIT
Il BIT è un’unità elementare di informazione rappresentabile con dispositivi
elettronici
3
Con un BIT si possono rappresentare 2 stati: 0/1, on/off, si/no
Combinando più BIT si può codificare un numero maggiore di stati:
con K bit si possono rappresentare 2 stati
K
BYTE
Un BYTE è composto da 8 bit. Può rappresentare 2 =256 stati
8
KiloByte=2 byte= 1024 byte
10
MegaByte= 2 byte= 1048576 byte
20
GigaByte= 2 byte= 1073741824 byte
30
TeraByte= 2 byte= 1099511627776 byte
40
Esistono due categorie di linguaggi ad ALTO LIVELLO:
1) LINGUAGGI COMPLICATI: l’intero programma SORGENTE viene tradotto in
LINGUAGGIO MACCHINA prima dell’esecuzione
2) LINGUAGGI INTERPRETATI: ogni singola istruzione del programma
SORGENTE viene tradotta in linguaggio macchina ed eseguita, prima
dell’elaborazione dell’istruzione successiva; questo rende l’esecuzione più
LENTA rispetto ai primi
PYTHON
È un linguaggio di programmazione:
- di ALTO LIVELLO
- SEMPLICE da imparare e usare
- POTENTE e PRODUTTIVO
- OTTIMO anche come primo linguaggio
- è OPEN SOURCE
- ha una SINTASSI SEMPLICE
- è facilmente integrabile con altri linguaggi, esempio C, C++, Java
- è MULTIPIATTAFORMA
La SINTASSI è un insieme di regole che indicano come scrivere istruzioni ed
espressioni corrette o valide del linguaggio
La SEMANTICA è un insieme di regole che definiscono il significato delle
istruzioni e delle espressioni
4
I 5 PRINCIPI DELLO ZEN DI PYTHON
1) BELLO è MEGLIO di brutto
2) ESPLICITO è MEGLIO di implicito
3) SEMPLICE è MEGLIO di complesso
4) COMPLESSO è MEGLIO di complicato
5) La LEGGIBILITÀ è IMPORTANTE
In Python la sintassi è FONDAMENTALE
Python è sia COMPILATO che INTERPRETATO
Il COMPILATORE Python trasforma il testo dei nostri programmi in un CODICE
INTERMEDIO detto BYTE-CODE, che può essere visto come CODICE-MACCHINA
per una MACCHINA VIRTUALE
L’interprete Python vero e proprio è una IMPLEMENTAZIONE in software di
questa macchina virtuale. Si può richiedere direttamente l’ESECUZIONE dei
FILE-SORGENTE, senza necessità di un esplicito passaggio di compilazione
Il byte-code non viene solo preparato al volo in memoria, ma viene anche salvato
in disco, così da non essere necessario compilare di nuovo per esecuzioni
successive
IDE
È un ambiente di sviluppo integrato, ovvero un software che supporta i
programmatori nello sviluppo e debugging del codice sorgete di un programma
BASI DEL LINGUAGGIO
OGGETTI
Per Python qualunque cosa è un oggetto. Gli oggetti hanno proprietà e metodi.
Gli oggetti sono l’ASTRAZIONE Python per i dati. Tutti i dati in un programma
python sono rappresentati da oggetti o da relazioni tra gli oggetti.
Ciascun oggetto ha: un IDENTIFICATORE, un TIPO, un VALORE
TIPI DI DATI PREDEFINITI
Python fornisce dei tipi di dati predefiniti, detti BUILT-IN:
1) BOOL, rappresenta le condizioni True e False
2) INT, rappresenta numeri interi
3) FLOAT, rappresenta numeri razionali a virgola mobile
4) STR, testo
5) LIST, sequenza
5
6) TUPLE, sequenza
7) SET, insieme
8) DICT, mappatura
TIPI DI DATI
Il TIPO DI DATO associato a un valore determina come il valore venga
rappresentato e memorizzato all’interno del computer, oltre all’insieme di
operazioni che si possono eseguire su di esso.
Per TIPO DI DATO s’intende:
1) Un insieme di VALORI
2) Un insieme di OPERAZIONI eseguibili su tali valori
Un tipo di dato che venga messo a disposizione dal linguaggio stesso viene
chiamato predefinito, ma anche TIPO DI DATO PRIMITIVO.
VARIABILI e ASSEGNAZIONE
Per memorizzare un valore in una VARIABILE si usa l’operatore di
ASSEGNAZIONI
L’istruzione di assegnazione viene eseguita in due fasi:
1) Si valuta l’espressione a destra dell’operatore =, cioè ne determina il valore
2) Il valore dell’espressione viene assegnato alla variabile posta a sinistra
dell’operatore =
Se la variabile ha già un valore, l’istruzione di assegnazione assegna il NUOVO
VALORE che SOSTITUIRÀ quello precedente
La variabile è il NOME dell’oggetto, l’assegnazione è la modalità con cui il NOME
è associato all’oggetto.
REGOLE SUI NOMI DELLE VARIABILI
- Devono iniziare con una lettera o con il carattere _
- Può avere fino ad un MASSIMO di 256 caratteri totali
- Possono essere composti da uno o più dei seguenti caratteri:
lettere minuscole, maiuscole, cifre, _
- NON possono iniziare con una CIFRA
- NON possono contenere SIMBOLI MATEMATICI
- NON possono contenere SPAZI
- NON può essere uguale a parole riservate del linguaggio
- Python è CASE SENSITIVE: a è diverso da A
In Python una variabile può memorizzare valori di QUALSIASI tipo
6 In Python si ha la TIPIZZAZIONE DINAMICA dei dati, cioè il tipo di dato di una
variabile è determinato dal valore assegnato alla variabile stessa
La funzione type() restituisce la classe di un oggetto .
INPUT e OUTPUT
La funzione print() scrive su video i messaggi o i valori delle variabili indicati
come argomenti separati tra loro dalla virgola, alla fine va a capo. La funzione
non restituisce alcun valore
La funzione input() restituisce una stringa con i car
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.
-
Fondamenti cpp
-
Fondamenti di informatica
-
Appunti Fondamenti di informatica
-
Fondamenti di informatica