L02 Programmazione1 Background
L02 Programmazione1 Background
2022/23
Turno 2
[email protected]
Ed. U14, piano 1, stanza 1011
1
Outline
http://www.pcprofessionale.it/2012/03/28/costruire-un-pc-la-guida-passo-passo-completa/
... e i cavi-dati
Per motivi tecnologici: distinguere tra due valori di una grandezza fisica è
più semplice che non ad esempio tra dieci valori
Ad esempio, verificare se su un connettore c’è una tensione elettrica
di 5V o meno è più facile che verificare se sullo stesso connettore c’e’
una tensione di 0V, 1V, 2V, 3V, 4V o 5V.
cn−1 cn−2 · · · c1 c0
Nel sistema esadecimale A vale 10, B vale 11, ...., F vale 15.
Numero da convertire 1 0 1 1 0 1 0 1
Potenze di 2 corrispondenti 27 26 25 24 23 22 21 20
27 + 25 + 24 + 22 + 20
= 128 + 32 + 16 + 4 + 1
= 181
Il numero binario sarà dato dai resti delle divisioni presi in ordine inverso.
Ad esempio:
Quindi:
N = m · 2e
dove:
I m è la mantissa in base 2: numero frazionario tale che
In pseudo-codice:
finchè X!=Y ripeti {
se Y>X scambia(X,Y)
X = X-Y
}
stampa X
Paolo Milazzo (Università di Pisa) Programmazione - Background A.A. 2013/2014 48 / 66
Algoritmi (3)
Quale scegliamo?
Questo algoritmo è non ambiguo (i passi sono semplici), termina (il ciclo
“per ogni” prima o poi finisce) ed è deterministico
Qual è il risultato?
Paolo Milazzo (Università di Pisa) Programmazione - Background A.A. 2013/2014 51 / 66
Esempi di Algoritmi (3)
Questo algoritmo:
non è ambiguo: in quanto i singoli passi semplici
è deterministico: la scelta della coppia di mattoncini da scambiare è
precisamente ben determinata (la più a sinistra)
ed è facile convincersi che termini, perchè ad ogni iterazione un
mattoncino blu si sposta a sinistra e uno giallo verso destra
Input:
Passo 1:
Passo 2:
Passo 3: come continua?
Passo 3:
Passo 4:
Passo 5:
Dagli algoritmi ai programmi
Terminologia:
I linguaggi di programmazione sono detti linguaggi di alto livello
I astraggono dai dettagli di funzionamento dell’elaboratore
Il linguaggio macchina e l’assembly sono linguaggi di basso livello
Due soluzioni:
scriviamo una lettera in italiano e troviamo un interprete che faccia
la portiamo all’ambasciata cinese una traduzione simultanea
per farla tradurre
Esempi:
Il linguaggio C è un linguaggio compilato
Il linguaggio JavaScript è un linguaggio interpretato