Parte 3: LINGUAGGI DI PROGRAMMAZIONE E ALGORITMI

Maria
a Montagn
na
Parte 3:
LINGUAGGI DI
PROGRAMMAZIONE
E ALGORITMI
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
SOMMARIO
La programmazione
9
Linguaggi
i
i ad
d Alto
l Livello
i ll
9
Gli Algoritmi
Maria
a Montagn
na
9
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
LA PROGRAMMAZIONE
PROGRAMMAZIONE: attività che permette di affrontare in modo
sistematico
l’ideazione
e la
del
it
ti
l’id
i
l realizzazione
li
i
d l software
ft
9 sistema operativo
9 software applicativo
(package)
dati
PROGRAMMA
(Ingresso)
Maria
a Montagn
na
programma o insieme di
programmi che svolgono le
funzioni richieste dall’utente
risultati
(Uscita)
N. B. sequenza di istruzioni
p
e rigorosa!!!
g
completa
ECCEZIONI!!!
((IMPREVISTI))
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
LA PROGRAMMAZIONE
Osservazioni:
1.
1 I calcolatori
l l t i eseguono solo
l operazioni
i i semplici:
li i calcoli
l li aritmetici
it
ti i e
logici.
2. Lunghe sequenze di informazioni sono essere eseguite velocemente
3. L’insieme di operazioni che ogni computer può eseguire è specifico
per ogni modello di CPU: tali istruzioni sono codificate in binario.
facilità d
di scritturra
Maria
a Montagn
na
LINGUAGGI:
MACCHINA
dall’istruzione
d
ll’i t i
all codice
di
(progettazione CPU)
ASSEMBLER
ad ogni istruzione corrisponde un testo
PORTABILITÀ?
ALTO LIVELLO
descrizione semplice e più intuitiva
COMPILATORI
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
LA PROGRAMMAZIONE
USO DELLA MEMORIA DURANTE L’ESECUZIONE DI UN PROGRAMMA
1. Calcoli: effettuati dalla (nella) CPU.
2. Scambio di informazioni tra registri e memoria
x = y+2
LOAD
Y,
ADD
2,
STORE R1
R1,
R1
R1
X
Maria
a Montagn
na
- - - indirizzo
contenuto
Registri:
g
insieme di memorie ad altissima velocità,
della capacità di pochi byte, interne al processore
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
SOMMARIO
La programmazione
9
Linguaggi
i
i ad
d Alto
l Livello
i ll
9
Gli Algoritmi
Maria
a Montagn
na
9
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
LINGUAGGI AD ALTO LIVELLO
I LINGUAGGI AD ALTO LIVELLO
x = y+2
Caratteristiche:
X = Y + 2
9 Linguaggio più scientifico
9 Portabilità
9 Efficienza (riguarda l’uso efficiente di registri e memoria)
Maria
a Montagn
na
Esempi:
p
a. FORTRAN (FORmula TRANslator, anni ’50 da IBM): primo linguaggio ad alto
livello, per uso scientifico
b. PASCAL (Università di Zurigo): programmazione strutturata, usato per
didattica
c. C (anni ‘70, da Bell Labs per scrivere il codice del sistema operativo Unix):
potente, sintetico, strutture dati avanzate e possibilità di fare riferimento
direttamente
i
all’hardware. C++ (anni
(
i ’80):
) estensione
i
dii C alla
programmazione ad oggetti, che non raggruppano solo variabili, ma anche
funzioni ad esse associate.
d BASIC (Beginner’s
d.
(B i
’ All Purpose
P
Si b li Instruction
Simbolic
I t
ti
C d annii ’60,
Code,
’60 Dartmouth
D t
th
College): sintassi semplice; VISUAL BASIC (Microsoft), linguaggio orientato
alla grafica.
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
LINGUAGGI AD ALTO LIVELLO
I LINGUAGGI AD ALTO LIVELLO
Esempi:
Maria
a Montagn
na
e. HTML (HyperText Markup Language, CERN ora è pubblico, anni ’80): è il
g gg delle pagine
p g
web.
linguaggio
f. JAVA (Sun Microsystem, anni ’90): linguaggio di programmazione orientato
agli oggetti
Java appena è uscito è stato accolto con molto entusiasmo dalla comunità mondiale dei
progettisti di software e dei provider di servizi Internet, questo perché Java permetteva
agli utenti di Internet di utilizzare applicazioni sicure e indipendenti dalla piattaforma, che
si possono trovare in qualsiasi punto della rete.
Java è quindi nato come linguaggio per la rete, per affiancare ll' Hyper Text Markup
Language (HTML), il quale non è un linguaggio di programmazione vero e proprio, e per
dargli quella sicurezza che l'HTML non ha.
Per lanciare un programma Java occorre avere uno strumento chiamato Java Virtual
M hi
Machine,
che
h interpreta
i t
t il bytecode
b t
d generato
t dal
d l compilatore
il t
J
Java
e lo
l esegue sulla
ll
macchina su cui è installato. Grazie alla Java Virtual Machine Java è indipendente dalla
piattaforma, infatti il programma compilato Java è legato alla JVM e non al sistema
operativo,
p
, sarà q
quindi p
possibile eseguire
g
lo stesso p
programma
g
Java,, compilato
p
una sola
volta su una qualche macchina con un compilatore Java versione X, su una piattaforma
Windows e su una piattaforma Linux, per fare questo però c'è bisogno che sia Windows
che Linux abbiano installato una Java Virtual Machine che supporti la versione X di Java.
http://java html it/guide/lezione/744/introduzione a java/
http://java.html.it/guide/lezione/744/introduzione-a-java/
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
LINGUAGGI AD ALTO LIVELLO
Maria
a Montagn
na
c
c +------------------+
c | Double precision |
c +------------------+
c
double precision function cspeed()
cspeed=2.998d8
return
end
FORTRAN
! [m/s]
print_data(DECODER *p, DATA *s)
{
int i, j;
for (i = 0; i < p->spb*p->blocks; i++) {
printf("%17.12f ", s[i].time);
for (j = 0;; j < 4;; j++)
j )
printf("%7.1f %7.1f ", s[i].sc[j].re, s[i].sc[j].im);
printf("\n");
}
}
Matematica e Informatica
C
3. Linguaggi di Programmazione e Algoritmi
LINGUAGGI AD ALTO LIVELLO
<HTML>
<HEAD>
<TITLE>Esempio 5</TITLE>
</HEAD>
<BODY BACKGROUND="titto_green_paper.jpg">
HTML
<CENTER><H1>Riferimenti ad àncore poste su altre pagine</H1></CENTER>
Maria
a Montagn
na
<UL>
<P> </P>
<P> </P>
<P> </P>
<CENTER>
<FONT SIZE=+2>
Questo <A HREF="esempio_5.html#Secondo">link</A>,
è un riferimento al Capitolo Secondo della pagina esempio_5.html
</FONT>
</CENTER>
/CENTER
</UL>
<HR WIDTH="100%">
</BODY>
</HTML>
http://www.inf.uniroma3.it/~patrigna/didactic/imp_elab/esempi_html/index.html
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
SOMMARIO
La programmazione
9
Linguaggi
i
i ad
d Alto
l Livello
i ll
9
Gli Algoritmi
Maria
a Montagn
na
9
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
GLI ALGORITMI
Maria
a Montagn
na
ALGORITMO: un insieme finito e ordinato di passi, che determinano
un procedimento
in
finito
o
di
t atto
tt a risolvere
i l
i un tempo
t
fi it un problema
bl
una classe di problemi, utilizzando dei dati iniziali e ottenendo dei
risultati.
Classe di
problemi
Ingredienti per 6-8 persone:
Per la pasta: 180 g di farina, 70 g di burro, 90 g di zucchero, 3 tuorli d’uovo, Importanza degli
1 cucchiaio di cannella in polvere
ingredienti
Per il ripieno: 450 g di ribes nero
nero, 100 g di zucchero di canna
Procedimento:
1. Preparare la pasta: setacciare la farina e la cannella in polvere , mettervi al
centro lo zucchero
zucchero, il burro ammorbidito a temperatura ambiente diviso a
pezzetti e i tuorli d’uovo; impastare rapidamente gli ingredienti senza lavorare
troppo il composto, avvolgerlo in un foglio di pellicola trasparente e farlo
riposare in un luogo fresco per circa un’ora circa.
2. Preparare
p
il ripieno:
p
lavare il ribes in acqua
q g
ghiacciata;; metterlo in un tegame
g
largo, aggiungervi lo zucchero di canna e cuocerlo a fuoco moderato per 15
minuti circa, mescolando spesso, finché il composto comincerà ad
addensarsi; toglierlo e farlo raffreddare.
3. Stendere la pasta allo spessore di 3 mm circa, foderare una tortiera imburrata
e infarinata, pareggiare il bordo e pizzicottarlo
4. Bucherellare il fondo della pasta con una forchetta e far riposare in frigorifero
per 15 minuti circa; versarvi il composto di ribes freddo, stenderlo in uno strato
uniforme e cuocere la crostata in forno preriscaldato a 180 gradi per 40 minuti
circa; toglierla, sformarla e farla raffreddare.
Matematica e Informatica
ordine
Regole
l per poter
t
continuare
3. Linguaggi di Programmazione e Algoritmi
GLI ALGORITMI
Caratteristiche:
¾ comprensibile per l’esecutore, quindi con istruzioni descritte
mediante un linguaggio di programmazione;
¾ garantire una terminazione: non si deve chiedere un’operazione
che teoricamente non può avere fine;
¾ non deve
d
presentare
t
ambiguità:
bi ità tutte
t tt le
l combinazioni
bi
i i di dati
d ti che
h
possono accadere, devono poter essere elaborate, perché il
computer non può gestire autonomamente un imprevisto
(l’eccezione deve essere prevista);
¾ si possono considerare sottoproblemi;
Maria
a Montagn
na
¾ uno stesso problema può essere risolto con algoritmi diversi.
Come scriverli:
¾ Pseudo-codifica: linguaggio molto simile al naturale, usa indentazioni
¾ Diagrammi di flusso: il flusso delle informazioni è evidenziato in modo
grafico
Matematica e Informatica
3. Linguaggi di Programmazione e Algoritmi
GLI ALGORITMI
DIAGRAMMI DI FLUSSO (FLOW-CHART)
Operazione Operazione
elementare
Operazione di O
i
di
ingresso/uscita
Maria
a Montagn
na
4 blocchi base, che descrivono tutti i
possibili tipi di operazione e sono
collegati da archi (frecce) orientati.
Condizione
Matematica e Informatica
Punti di inizio e fine
3. Linguaggi di Programmazione e Algoritmi