Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Informatica e Informatica di Base
ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura © F. Tura
2
Lo strumento dell’informatico: ELABORATORE ELETTRONICO [= calcolatore = computer]
Macchina multifunzionale Macchina per l’elaborazione dell’informazione guidata dal software © F. Tura
3
problemi di gestione dell’informazione
Problemi di elaborazione dell’informazione problemi di gestione dell’informazione rappresentazione aggiornamento -reperimento problemi di manipolazione dell’informazione es. (reperimento): trovare il numero telefonico di una determinata persona es. calcolare il costo totale di un certo numero di prodotti © F. Tura
4
Problemi di elaborazione dell’informazione
Creazione del software (programmi) necessario ALGORITMI 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] © F. Tura
5
problema di elaborazione (reperimento) dell’informazione
Esempio di algoritmo per la risoluzione di un problema di elaborazione (reperimento) dell’informazione 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 © F. Tura
6
Formulazioni di un algoritmo
DIAGRAMMA DI FLUSSO <=> formulazione di un algoritmo in formalismo grafico (ove ai passi dell’algoritmo corrispondono i nodi del diagramma) PROGRAMMA <=> formulazione di un algoritmo in un linguaggio di programmazione (ove ai passi dell’algoritmo corrispondono le istruzioni del programma) © F. Tura
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
Diagramma di flusso (flow chart)
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 © F. Tura
9
Diagramma di flusso Nodi 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 © F. Tura
10
Diagramma di flusso Archi 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 © F. Tura
11
Tipi di nodi inizio dell’algoritmo fine dell’algoritmo assegnazione
Diagramma di flusso Tipi di nodi START inizio dell’algoritmo fine dell’algoritmo STOP assegnazione © F. Tura
12
scrittura dati in output test booleano (confronto)
Diagramma di flusso Tipi di nodi lettura dati in input scrittura dati in output S N test booleano (confronto) © F. Tura
13
Tipi di azioni Assegnazione
Diagramma di flusso Tipi di azioni 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 A 5 © F. Tura
14
Tipi di azioni: assegnazione
Diagramma di flusso Tipi di azioni: assegnazione esempio 2: assegnazione alla variabile A del valore corrente della variabile B A B esempio 3: assegnazione alla variabile A del valore corrente della variabile B incrementato di 1 A B + 1 © F. Tura
15
Tipi di azioni: assegnazione
Diagramma di flusso Tipi di azioni: assegnazione 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 A A + 1 © F. Tura
16
Tipi di azioni Lettura da input
Diagramma di flusso Tipi di azioni 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 A © F. Tura
17
Tipi di azioni Scrittura in output
Diagramma di flusso Tipi di azioni 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 C © F. Tura
18
Tipi di azioni Test booleano
Diagramma di flusso Tipi di azioni 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 S N © F. Tura
19
Tipi di azioni: test booleano
Diagramma di flusso Tipi di azioni: test booleano Possono essere effettuati 6 tipi di confronto: UGUALE = DIVERSO ≠ MINORE < MAGGIORE > MINORE O UGUALE ≤ MAGGIORE O UGUALE ≥ © F. Tura
20
Tipi di azioni: test booleano
Diagramma di flusso Tipi di azioni: test booleano esempio 1: il risultato del confronto sarà vero se il valore corrente della variabile A è diverso da 5 S A ≠ 5 N 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 N A ≥ B + 3 © F. Tura
21
Esempi di algoritmi elementari
Diagramma di flusso Esempi di algoritmi elementari START A Problema n. 1. Dati 2 numeri, calcolare la loro somma B C A + B C STOP © F. Tura
22
Diagramma di flusso - Esempi di algoritmi elementari
Problema n. 2. Dati N numeri, calcolare la loro somma © F. Tura
23
Linguaggi di Programmazione
Passo successivo nella creazione di un programma: Traduzione del diagramma di flusso in un linguaggio di programmazione di alto livello Programmatore Computer Linguaggio di alto livello Programma Compilatore o Interprete Linguaggio Macchina © F. Tura
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 CODICE SORGENTE Programma [= serie di istruzioni] scritto in linguaggio di alto livello © F. Tura
25
Linguaggi di programmazione Linguaggio macchina
È quello interpretabile da parte della CPU del computer È costituito da una serie di cifre binarie (bit) suddivise in gruppi di 8 cifre (byte) Varia a seconda del tipo di computer (ovvero della sua CPU) CODICE OGGETTO Programma [= serie di istruzioni] scritto in linguaggio macchina © F. Tura
26
Programmi Compilatori e Interpreti
Traducono in linguaggio macchina un programma scritto in linguaggio di alto livello traducono il codice sorgente in codice oggetto Sono specifici per il tipo di macchina su cui operano A seconda del tipo di linguaggio di alto livello si dividono in: COMPILATORI INTERPRETI Traducono il programma intero dato un file contenente codice sorgente, il compilatore crea un altro file contenente codice oggetto Traducono il programma istruzione per istruzione, interattivamente 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 Vengono mandati in esecuzione solo quando il codice sorgente è stato scritto completamente dal programmatore © F. Tura
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 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 © F. Tura
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) 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 © F. Tura
29
Esercizi Problema n. 1. Dati 2 numeri, scegliere il maggiore
START A B DIAGRAMMA DI FLUSSO S N A ≥ B C A C B C STOP © F. Tura
30
Esercizi program Sceglimaggiore; var A, B, C: integer; begin read(A);
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 © F. Tura
31
Esercizi Problema n. 2. Dati N numeri, calcolare la loro somma
DIAGRAMMA DI FLUSSO © F. Tura
32
Esercizi program eseguiSomma; var I, N, SOMMA, NUOVO: integer; begin
Problema n. 2. Dati N numeri, calcolare la loro somma 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 PROGRAMMA PASCAL © F. Tura
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.