Sei sulla pagina 1di 11

Corso di Laurea in Informatica Umanistica

Fondamenti teorici e programmazione


Modulo B: Metodi formali per l'informatica
a.a. 23/24

Cap. 1 – Introduzione e sistemi di numerazione

Prof.ssa Barbara Leporini


Dipartimento di Informatica
E-mail: barbara.leporini@isti.cnr.it
Programma

Argomenti trattati nel Modulo B (Metodi formali per l'informatica):

1. Introduzione al corso ed ai Sistemi Numerici

2. Algoritmi e Linguaggi di Programmazione

3. Elementi di Teoria degli Insiemi

4. Relazioni

5. Grafi

6. Alberi

7. Linguaggi Formali e Automi

8. Cenni alle Grammatiche Libere da Contesto

2
Materiale didattico
• Lucidi delle lezioni ed altro materiale didattico verranno resi disponibili dal
docente su Google Classroom (inserire il link). Su questa pagina il docente
inserirà anche degli avvisi, quando necessario.
• Testi base:
➢ Automi linguaggi e calcolabilita` Hopcroft J. et al. cap.1;
➢ T. Cormen et al. "Introduzione agli algoritmi", Jackson libri, cap.5;
➢ R. Barbuti et al. Elementi di Sintassi dei Linguaggi di Programmazione",
pdf.
• Testi di consultazione:
➢ Automi linguaggi e calcolabilità, J. Hopcroft;
➢ Introduzione alla teoria della computazione, M. Sipser.

3
Numeri Romani
I numeri romani sono composti da una sequenza di simboli (dell’antico alfabeto
romano). In totale si hanno a disposizione 7 simboli (vedi tabella a sinistra dove accanto
a ciascun simbolo romano vi è il corrispondente valore espresso nel sistema numerico
decimale) mediante i quali vengono composti tutti i numeri.
REGOLE DI COMPOSIZIONE DEI NUMERI ROMANI
Simbolo Numero
1. Si leggono e si scrivono da sinistra a destra.
romano decimale
I 1 2. I simboli I, X, C e M possono essere ripetuti al
massimo 3 volte consecutive all’interno dello stesso
V 5 numero. I simboli V, L e D non possono essere
X 10 inseriti più di una sola volta consecutiva.
L 50 3. Se un simbolo è seguito da uno maggiore il valore
del primo si sottrae al secondo. Se è seguito da uno
C 100
minore allora si sommano. In particolare, se un
D 500 simbolo si trova tra due di valore maggiore , allora
M 1000 va sottratto a quello che si trova alla sua destra.
4. Solo i simboli I, X e C possono essere adoperati per
le sottrazioni e possono essere usati una sola volta.
5. Il simbolo che si sottrae non può mai essere minore
di un decimo del valore a cui è sottratto.
4
Sistema di Numerazione Posizionale
• Un sistema di numerazione si dice posizionale se i simboli (cifre) usati per
scrivere i numeri assumono valori diversi a seconda della posizione che
occupano nella notazione.
• Ad esempio nel sistema di numerazione arabo (il nostro) la prima cifra da destra
esprime il numero delle unità, la seconda quello delle decine, la terza quello
delle centinaia, la quarta quello delle migliaia, e così via...
• Il numero 555 si legge: 5 centinaia, 5 decine, 5 unità
(cinquecentocinquantacinque).
• La stessa cifra 5 quando si trova nella prima posizione (sempre contando da
destra verso sinistra) ha valore cinque, nella seconda posizione ha valore
cinquanta, nella terza posizione ha valore cinquecento.
• In un sistema di numerazione non posizionale invece per esprimere questi tre
valori si usano tre simboli diversi: ad esempio in numeri romani
cinquecentocinquantacinque si scrive DLV.
https://it.wikipedia.org/wiki/Sistema_di_numerazione_posizionale

5
Sistema di Numerazione Posizionale
• I sistemi di numerazione posizionali necessitano della cifra zero per segnare i
posti "vuoti".
• Ad esempio il numero cinquecentocinque (5 centinaia, 0 decine, 5 unità) va
scritto 505, con uno zero nella posizione delle decine: se non si mettesse lo
zero, scrivendo 55, sarebbe il numero cinquantacinque invece di
cinquecentocinque.
• Nei sistemi non posizionali invece non si usa lo zero perché l'uso di simboli
diversi per unità, decine, centinaia eccetera lo rende non necessario: in numeri
romani cinquecentocinque si scrive DV e non si può confondere con
cinquantacinque che si scrive LV.
• L'utilizzo della posizione per codificare delle informazioni permette di usare un
numero minore di simboli: infatti il sistema di numerazione arabo è in grado di
rappresentare tutti i numeri utilizzando solamente dieci simboli.
• L'adozione della notazione posizionale ha permesso infatti di definire ed
applicare algoritmi relativamente semplici per effettuare le operazioni
elementari come l'addizione, la moltiplicazione o l'elevamento a potenza.
https://it.wikipedia.org/wiki/Sistema_di_numerazione_posizionale
6
Sistemi di Numerazione Posizionali - Basi
• I sistemi di numerazione posizionali si differenziano per le loro basi:
✓ Per il sistema binario la base è 2;
✓ Per il sistema decimale la base è 10:
✓ Per il sistema esadecimale la base è 16.

Ad esempio la sequenza di 4 cifre c3c2c1c0 rappresenta in


base b il numero:
c3×b3 + c2×b2 + c1×b1 + c0×b0

• Ad esempio il numero 243 in base 5 rappresenta 2×52 + 4×51 + 3×50 cioè


2×25 + 4×5 + 3×1= 73 (in base 10)

7
Numeri binari
Un numero in base 2 (detto anche numero binario) è una sequenza di 0 e di 1
(detti bit).

Ad esempio in questo caso la sequenza di 4 cifre Binario Decimale

c3c2c1c0 0 0
1 1
rappresenta in base 2 il numero:
10 2
c3×23 + c2×22 + c1×21 + c0×20 11 3
100 4
101 5
Esempio: il numero binario 1011001 rappresenta
110 6
1×26 + 0×25 + 1×24 + 1×23 + 0×22 + 0×21 + 1x20
111 7
= 1×64 + 0×32 + 1×16 + 1×8 + 0×4 + 0×2 + 1x1 1000 8
= 64 +16 + 8 + 1 = 89 (in base 10) 1001 9
1010 10
Per convertire un numero n da base 10 a base 2, basta 1011 11
dividere ripetutamente n per 2 e segnare di volta in volta i 1100 12
resti. Il risultato è la sequenza di resti in ordine inverso (ad 1101 13
esempio 44 da base 10 a base 2 è 101100). 1110 14
1111 15

8
Numeri binari
Nei sistemi di numerazione posizionale le operazioni aritmetiche si possono fare in
modo analogo a quello usuale.

Ad esempio per sommare due numeri in base 2,


si mettono i due addendi in riga e
si somma cifra per cifra (da destra a sinistra)
considerando che 1+1 = 0 con riporto di 1

9
Numeri esadecimali
Un numero in base 16 (detto anche numero esadecimale) è una sequenza di
0,1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Esadecimale Decimale
Ad esempio in questo caso la sequenza di 4 cifre
c3c2c1c0 0 0
1 1
rappresenta in base 16 il numero:
2 2
c3×163 + c2×162 + c1×161 + c0×160 3 3
4 4
5 5
6 6
Esempio: il numero esadecimale 4F rappresenta
7 7
(4F)16 = 4×161 + Fx160
8 8
= 4×16 + 15×1 9 9
= 64 +15= 79 (in base 10) A 10
B 11
C 12
D 13
E 14
F 15

10
Esercizi
1) Somma i numeri romani XCVI e XXIV con la seguente procedura:
(a) traduci i due addendi in numeri arabi;
(b) somma i due addendi tradotti;
(c) traduci il risultato in numero romano.
2) Somma (direttamente) i numeri binari 1011011 e 11100
3) Traduci il numero decimale 31 in binario
4) Traduci il numero decimale 63 in binario
5) Qual è il più grande numero decimale che posso rappresentare con 5 bit?
6) Qual è il più grande numero decimale che posso rappresentare con 8 bit?
7) Qual è il più grande numero decimale che posso rappresentare con n bit?
8) Quanti numeri binari posso rappresentare con 5 bit? Quanti con 8 bit (1 byte)?
Quanti con n bit?
9) Qual è il più grande numero esadecimale con due cifre? A quale numero decimale
corrisponde?

11

Potrebbero piacerti anche