Presentazione di PowerPoint

annuncio pubblicitario
Problemi, algoritmi e
programmazione
Obiettivi
Comunicare con il computer
Questa lezione introduce la programmazione, che è una
attività complessa e articolata, impossibile senza alcune
nozioni di base, che qui introdurremo :
•programmare significa scrivere istruzioni;
•programmare significa comunicare con il computer;
•che cosa è un algoritmo;
•come si trattano i dati.
Problemi, algoritmi e programmazione > Obiettivi
Dal problema al programma
Programmare
Programmare significa descrivere un procedimento capace
di far svolgere a una macchina/esecutore una serie ordinata
di operazioni in modo da raggiungere il risultato finale
desiderato.
Problema
Algoritmo
Programma
Dati
Esecutore
Risultati
Problemi, algoritmi e programmazione > Programmare
Il programma
Il computer è un esecutore
Esegue in sequenza comandi che elaborano dati,
cioè il programma.
Il programma è il mezzo con cui l’uomo descrive ciò che
la macchina
deve fare e come deve farlo.
Problemi, algoritmi e programmazione > Programmare
Comunicare con il calcolatore
Comunicare con il computer
Per poter meglio comprendere le fasi che portano alla
realizzazione di un programma, cerchiamo di capire come è
possibile comunicare con il calcolatore e, quindi, come
dobbiamo fornirgli le istruzioni affinché sia in grado di
eseguire il compito che vogliamo affidargli.
Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Comunicare con il computer
Per comunicare occorre un linguaggio.
I linguaggi possono essere
Naturali
Artificiali
Sono usati nella comunicazione tra uomini
Sono usati nella comunicazione fra macchine e sono definiti
Hanno un vocabolario molto vasto e una sintassi
poco rigida
da un vocabolario ristrettissimo e una sintassi rigidissima.
I linguaggi di
programmazione
Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Il linguaggio del computer
Tutti i linguaggi si basano su un alfabeto.
Ogni alfabeto è basato su un insieme di simboli.
Il linguaggio dei computer ha un alfabeto molto
semplice!
Ci sono infatti 2 soli simboli:
0e1
Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Il linguaggio del computer
Per dare istruzioni ad un computer bisogna usare
un linguaggio composto solo da 0 e 1.
Il
computer è progettato per eseguire
funzioni elementari
E' possibile eseguire ognuna di queste
funzioni elementari con un comando
rappresentato da un codice formato solo dai
simboli 0 e 1
Istruzione macchina
Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Il linguaggio del computer
L'insieme delle istruzioni che un computer è in grado di
eseguire è detto
Linguaggio macchina
I calcolatori sono in grado di eseguire solo programmi scritti
in linguaggio macchina.
Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Il linguaggio del computer
L'uomo non è in grado di dare comandi al
computer (cioè di scrivere programmi ) usando
il linguaggio macchina!
Occorre avere un linguaggio che l'uomo possa
comprendere, cioè formato da simboli (alfabeto)
e parole comprensibili
linguaggi simbolici ad alto livello
Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Il linguaggio del computer
Il problema è :
Come tradurre un programma scritto con un
linguaggio di alto livello in un programma in
linguaggio macchina, quindi effettivamente
eseguibile dal computer?
La soluzione è nell'uso di un programma che
faccia da interprete e trasformi il linguaggio di
alto livello nel linguaggio della macchina
Il compilatore
Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Il linguaggio del computer
Programma nel linguaggio di alto livello
Compilatore
Programma eseguibile in linguaggio macchina
Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Il linguaggio del computer
I linguaggi che un programmatore può usare sono di 2 tipi:
Linguaggi orientati
alla macchina
Linguaggi assembler
Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Linguaggi orientati
all'uomo
Linguaggi di alto livello
I principali linguaggi di alto livello
Basic
 Fortran
 Cobol
 C,C++
 Pascal
 Java

Problemi, algoritmi e programmazione > Comunicare con il calcolatore
Gli algoritmi e la loro
rappresentazione
Le fasi della realizzazione di un programma
Capire il problema e individuare la soluzione
(algoritmo)
 Progettare e codificare il programma
 Creare il programma eseguibile
 Eseguire e provare il programma
 Documentare il programma

Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
Capire il problema e individuare la soluzione
Per scrivere un programma occorre trovare per prima
cosa la sua soluzione descritta da un
ALGORITMO
ALGORITMO
Cioè i passi da compiere per ottenere i risultati attesi.
Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
Capire il problema e individuare la soluzione
Per individuare correttamente l'algoritmo risolutivo del
nostro problema occorre conoscere da dove si parte e
dove si vuole arrivare
Lo scenario iniziale :
Dati in input
Lo scenario finale:
Dati in output
Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
L'algoritmo
Nella vita quotidiana capita regolarmente di dover
svolgere un’azione complessa, formata da più passi
elementari che devono essere eseguiti in un ordine
prestabilito.
Se vuoi giocare con una console dovrai compiere alcune azioni
elementari. Qual è la sequenza di azioni che devi compiere?
Se descrivi queste azioni nell'ordine corretto avrai descritto l'algoritmo che
ti permette di giocare.
Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
Caratteristiche di un algoritmo
Finito
 Deterministico
 Non ambiguo
 Generale

Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
Rappresentazione di un algoritmo
Per descrivere correttamente un algoritmo esistono
2 strumenti:
Diagrammi a blocchi
o
Flow Chart
Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
La pseudocodifica
Flow Chart (diagrammi di flusso)
Nella descrizione tramite diagramma a blocchi o
flow-chart, a ogni simbolo corrisponde
un preciso tipo di operazione :
Ogni
algoritmo deve iniziare
con il simbolo:
e deve concludersi con
il simbolo:
Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
Questi
due
simboli
devono
presentarsi
una
sola
volta
all’interno del flow-chart
Flow Chart (diagrammi di flusso)
indica un ’ operazione
all’interno del riquadro).
(indicata
indica l ’ operazione di lettura
(input)
indica l ’ operazione
scrittura (output)
Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
di
Flow Chart (diagrammi di flusso) - esempio
Problema:
Calcola l'area di un quadrato,
Prendendo in input la misura del suo
lato
L'algoritmo risolutivo del problema
dato
Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
Pseudocodifica - esempio
Si utilizza un linguaggio speciale che descrive le
istruzioni con frasi rigorose anziché con simboli
grafici.
Facciamo un esempio:
Calcola l'area di un quadrato,
Prendendo in input la misura del suo lato.
L'algoritmo risolutivo
del problema dato
Problemi, algoritmi e programmazione > Gli algoritmi e la loro rappresentazione
I dati
I dati
Dal momento che un algoritmo è un procedimento
(sequenza di passi) capace di
trasformare i dati iniziali nei risultati finali, occorre
definire che cosa è un dato
Per dato si intende un qualunque fatto o elemento
fornito da qualcuno, oppure raccolto tramite
osservazioni o misurazioni
Problemi, algoritmi e programmazione > I dati
Rappresentazione dei dati
I dati, in base agli oggetti che rappresentano, possono
essere classificati come segue:
Dati numerici
dati su cui possono essere effettuate
operazioni aritmetiche
Dati alfanumerici
dati che contengono caratteri alfabetici
(A, B, C,... Z), caratteri speciali ($, %, !, ?,
&...) e cifre (1, 2, 3...) sulle quali non è
possibile effettuare le operazioni
aritmetiche.
Problemi, algoritmi e programmazione > I dati
Contenitori per i dati
Dove possono essere contenuti i dati che il vostro
programma deve elaborare?
I contenitori per i dati possono essere di 2 tipi:
Variabili
Problemi, algoritmi e programmazione > I dati
Costanti
Contenitori per i dati. Le variabili
Una variabile è un contenitore identificato
da un nome in cui si possono introdurre dei
valori, questi valori possono essere
modificati durante l'esecuzione di un
programma.
Una variabile può essere letta o scritta
Variabile= contenuto che può variare
Problemi, algoritmi e programmazione > I dati
Contenitori per i dati: le Costanti
Le costanti sono dati particolari il cui valore non
cambia durante l’esecuzione dell’algoritmo.
Esempio: se devo calcolare l'area di un cerchio:
AREA = RAGGIO*RAGGIO*PIGRECO
PIGRECO sarà un dato costante, il cui valore - 3.14 - non
cambierà mai durante l'esecuzione del programma
Problemi, algoritmi e programmazione > I dati
Scarica