La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Informatica e Informatica di Base ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura © F. Tura.

Presentazioni simili


Presentazione sul tema: "1 Informatica e Informatica di Base ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura © F. Tura."— Transcript della presentazione:

1 1 Informatica e Informatica di Base ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura © F. Tura

2 2 Lo strumento dell’informatico: ELABORATORE ELETTRONICO [= calcolatore = computer]  Macchina multifunzionale  Macchina per l’elaborazione dell’informazione  guidata dal software © F. Tura

3 3 Problemi di elaborazione dell’informazione problemi di gestione dell’informazione -rappresentazione -aggiornamento -reperimento problemi di manipolazione dell’informazione © F. Tura es. (reperimento): trovare il numero telefonico di una determinata persona es. calcolare il costo totale di un certo numero di prodotti

4 4 Problemi di elaborazione dell’informazione Creazione del software (programmi) necessario © F. Tura  Un problema di elaborazione dell’informazione si risolve elaborando un algoritmo ALGORITMO  Sequenza di passi da compiere per ottenere la risoluzione [dati di output] di un certo problema di elaborazione dell’informazione a partire da una determinata situazione iniziale [= dati iniziali] ALGORITMI

5 5 Esempio di algoritmo per la risoluzione di un problema di elaborazione (reperimento) dell’informazione © F. Tura  Ricerca di numero telefonico corrispondente a una persona PASSO 1. Apri l’elenco telefonico alla prima pagina e vai sulla prima riga PASSO 2. Leggi il nominativo indicato PASSO 3. Confronta il nominativo indicato con quello cercato: i nominativi coincidono? Se sì, vai al passo successivo, se no, passa alla riga successiva e ritorna al Passo 2 PASSO 4. Leggi il numero di telefono corrispondente al nominativo indicato -> soluzione del problema NB: L’esempio riporta – a solo scopo illustrativo – un algoritmo molto poco efficiente, in quanto non sfrutta il fatto che i nominativi sull’elenco telefonico compaiono in ordine alfabetico

6 6 Formulazioni di un algoritmo © F. Tura PROGRAMMA formulazione di un algoritmo in un linguaggio di programmazione (ove ai passi dell’algoritmo corrispondono le istruzioni del programma) DIAGRAMMA DI FLUSSO formulazione di un algoritmo in formalismo grafico (ove ai passi dell’algoritmo corrispondono i nodi del diagramma)

7 7 Fasi della progettazione del software 1. Studio del problema (dati iniziali e dati di output da ottenere) 2. Definizione dell’algoritmo di risoluzione del problema [= analisi di fattibilità] 3. Formulazione dell’algoritmo in diagramma di flusso 4. Traduzione del diagramma di flusso in linguaggio di programmazione  creazione di un programma

8 8 Diagramma di flusso (flow chart) © F. Tura  Formalismo grafico per esprimere un algoritmo  È composto da: Nodi  figure geometriche contenenti stringhe di testo Archi  linee che collegano i nodi dotate di frecce per indicarne la “direzione” di collegamento

9 9 Diagramma di flusso Nodi © F. Tura  Ciascun nodo del diagramma di flusso contiene una stringa la quale esprime l’azione che deve essere eseguita quando durante l’esecuzione dell’algoritmo, si incontra quel nodo  Le azioni vengono eseguite utilizzando tra l’altro delle variabili VARIABILE  nome simbolico che rappresenta un valore che può variare durante l’esecuzione dell’algoritmo

10 10 Diagramma di flusso Archi © F. Tura  Gli archi sono i tratti di congiunzione tra i nodi, e sono dotati di una freccia la quale indica la direzione di proseguimento dell’algoritmo

11 11 Diagramma di flusso Tipi di nodi © F. Tura inizio dell’algoritmo fine dell’algoritmo assegnazione START STOP

12 12 Diagramma di flusso Tipi di nodi © F. Tura lettura dati in input scrittura dati in output test booleano (confronto) SN

13 13 Diagramma di flusso Tipi di azioni © F. Tura A  5 Assegnazione  azione mediante la quale viene assegnato un valore ad una variabile Il valore assegnato diviene valore corrente della variabile e resta tale finché una successiva assegnazione non cambi il valore stesso esempio 1: assegnazione alla variabile A del valore 5

14 14 Diagramma di flusso Tipi di azioni: assegnazione © F. Tura A  B esempio 2: assegnazione alla variabile A del valore corrente della variabile B A  B + 1 esempio 3: assegnazione alla variabile A del valore corrente della variabile B incrementato di 1

15 15 Diagramma di flusso Tipi di azioni: assegnazione © F. Tura A  A + 1  In generale una assegnazione ha la seguente forma: VARIABILE  ESPRESSIONE ARITMETICA esempio 4: assegnazione il cui risultato è quello di incrementare il valore corrente della variabile A

16 16 Diagramma di flusso Tipi di azioni © F. Tura A Lettura da input  azione mediante la quale viene assegnato ad una variabile un valore specificato dall’esterno La variabile viene cioè associata ad un dato di input esempio: alla variabile A viene assegnato il valore fornito in input

17 17 Diagramma di flusso Tipi di azioni © F. Tura C Scrittura in output  azione mediante la quale viene restituito all’esterno il valore corrente di una variabile Il valore della variabile diviene un risultato di output esempio: il valore corrente della variabile C viene restituito in output

18 18 Diagramma di flusso Tipi di azioni © F. Tura Test booleano  azione mediante la quale viene effettuato un confronto (test) di tipo logico tra due variabili o - più in generale - tra due espressioni aritmetiche: il risultato può essere vero o falso In caso di risultato affermativo (vero) del test viene seguita la freccia uscente dal vertice del rombo marcato da S, in caso di risultato negativo (falso) viene seguita la freccia uscente dal vertice del rombo marcato da N SN

19 19 Diagramma di flusso Tipi di azioni: test booleano © F. Tura  Possono essere effettuati 6 tipi di confronto: UGUALE = DIVERSO ≠ MINORE < MAGGIORE > MINORE O UGUALE ≤ MAGGIORE O UGUALE ≥

20 20 Diagramma di flusso Tipi di azioni: test booleano © F. Tura A ≠ 5 esempio 1: il risultato del confronto sarà vero se il valore corrente della variabile A è diverso da 5 A ≥ B + 3 esempio 2: il risultato del confronto sarà vero se il valore corrente della variabile A è maggiore o uguale a quello della variabile B incrementato di 3 S S N N

21 21 Diagramma di flusso Esempi di algoritmi elementari © F. Tura Problema n. 1. Dati 2 numeri, calcolare la loro somma START STOP A C C  A + B B

22 22 © F. Tura Diagramma di flusso - Esempi di algoritmi elementari Problema n. 2. Dati N numeri, calcolare la loro somma

23 23 Linguaggi di Programmazione Programmatore Linguaggio di alto livello Programma Compilatore o Interprete Linguaggio Macchina Computer Passo successivo nella creazione di un programma:  Traduzione del diagramma di flusso in un linguaggio di programmazione di alto livello © F. Tura

24 24 Linguaggi di programmazione Linguaggio di alto livello  È quello in cui l’utente programmatore scrive il programma  Usa termini comprensibili dall’uomo Esempi: Pascal Fortran Basic C Prolog HTML © F. Tura CODICE SORGENTE  Programma [= serie di istruzioni] scritto in linguaggio di alto livello

25 25  È quello interpretabile da parte della CPU del computer  È costituito da una serie di cifre binarie (bit) suddivise in gruppi di 8 cifre (byte) Linguaggi di programmazione Linguaggio macchina  Varia a seconda del tipo di computer (ovvero della sua CPU) CODICE OGGETTO  Programma [= serie di istruzioni] scritto in linguaggio macchina © F. Tura

26 26 Programmi Compilatori e Interpreti  Traducono in linguaggio macchina un programma scritto in linguaggio di alto livello  traducono il codice sorgente in codice oggetto COMPILATORI Traducono il programma intero  dato un file contenente codice sorgente, il compilatore crea un altro file contenente codice oggetto INTERPRETI Traducono il programma istruzione per istruzione, interattivamente Vengono mandati in esecuzione solo quando il codice sorgente è stato scritto completamente dal programmatore Vengono mandati in esecuzione prima di scrivere il programma, per creare l’ambiente interprete che traduce immediatamente le varie istruzioni del programma che ivi verranno scritte dall’utente-programmatore  Sono specifici per il tipo di macchina su cui operano © F. Tura  A seconda del tipo di linguaggio di alto livello si dividono in:

27 27 Programmi Compilatori e Interpreti  L’impiego – per la traduzione del codice – del programma compilatore piuttosto che del programma interprete dipende dal linguaggio di alto livello © F. Tura I programmi che vengono tradotti tramite un programma compilatore dicono linguaggi compilati Es. PASCAL I programmi che vengono tradotti tramite un programma interprete si dicono linguaggi interpretati Es. PROLOG

28 28 Codice sorgente e codice oggetto Un file contenente codice oggetto si dice anche file eseguibile Un file contenente codice oggetto è direttamente eseguibile su comando dato dall’utente e non è leggibile (contiene cifre binarie) © F. Tura Nel caso di software di proprietà, solo i file contenenti il codice oggetto vengono venduti all’utente, mentre quelli contenenti il codice sorgente vengono trattenuti dall’autore e su di essi si applica il diritto d’autore (copyright). Nel caso di software open source, invece, vengono resi disponibili all’utente anche i file contenente codice sorgente, cosicché l’utente è in grado di può modificare il programma

29 29 Esercizi © F. Tura Problema n. 1. Dati 2 numeri, scegliere il maggiore START STOP A C B A ≥ B SN DIAGRAMMA DI FLUSSO C  AC  B

30 30 Esercizi © F. Tura Problema n. 1. Dati 2 numeri, scegliere il maggiore program Sceglimaggiore; var A, B, C: integer; begin read(A); read(B); if A ≥ B then C := A otherwise C := B; write(C); end PROGRAMMA PASCAL

31 31 Esercizi © F. Tura Problema n. 2. Dati N numeri, calcolare la loro somma DIAGRAMMA DI FLUSSO

32 32 Esercizi © F. Tura Problema n. 2. Dati N numeri, calcolare la loro somma PROGRAMMA PASCAL program eseguiSomma; var I, N, SOMMA, NUOVO: integer; begin read(N); I := 0; SOMMA := 0; repeat read(NUOVO); SOMMA := SOMMA + NUOVO; I := I + 1; until I=N; write(SOMMA); end


Scaricare ppt "1 Informatica e Informatica di Base ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura © F. Tura."

Presentazioni simili


Annunci Google