Informatica
Per definire cosa è l’informatica è necessario definire le seguenti nozioni.
- Informazione
- Rappresentazione
- Elaborazione
- Algoritmo
Le slide del corso sono realizzate in collaborazione con il prof. M. Giordano
Informazione
- Informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.
- Dato: elementi di informazione costituiti da simboli che debbono essere elaborati.
Rappresentazione
- In generale ogni rappresentazione è una funzione che associa ad ogni elemento una sequenza di simboli.
- Per ogni rappresentazione, oggetti (numeri) distinti devono avere differenti rappresentazioni e la rappresentazione di ogni oggetto deve essere unica.
- Le rappresentazioni usate sui calcolatori impiegano tutte sequenze finite di simboli, tali quindi da rappresentare insiemi finiti di naturali.
Elaborazione
L’elaborazione è una trasformazione: Y=F(X) dove:
- X è l’insieme di dati iniziali o “di ingresso”
- Y è l’insieme dei dati finali o “di uscita”
- F è una regola che fa corrispondere Y ad X
- La trasformazione F si può ottenere attraverso una o più azioni elaborative (o passi di elaborazione), cioè trasformazioni elementari che devono essere eseguite per ottenere una trasformazione.
Algoritmo
L’algoritmo è una sequenza finita di azioni elaborative che portano alla realizzazione di un compito. Un algoritmo deve essere:
- Comprensibile
- Corretto
- Efficiente
Il calcolatore
Il calcolatore è una entità (reale o astratta) in grado di accettare dati in input, immagazzinarli ed elaborarli per lo svolgimento di un certo compito. A tale fine il calcolatore esegue una sequenza ordinata di comandi (istruzioni). Il software è l’insieme di istruzioni che il calcolatore deve eseguire per svolgere un certo compito. L’hardware è l’insieme delle componenti fisiche necessarie al calcolatore per eseguire le istruzioni.
Il calcolatore: il software
Programmazione: realizzazione di software per diversi scopi:
- Tradurre un linguaggio in un altro (compilatore)
- Gestire l’intero hardware (sistema operativo) o un suo dispositivo (driver)
- Aiutare a scrivere testi (word processor)
- Gestire banche dati
- …
Il calcolatore come esecutore
Esecutore – qualsiasi entità E (umana o non) in grado di:
- Riconoscere un insieme finito S di istruzioni (linguaggio) scritte con l’uso di simboli di un alfabeto (C)
- Interpretare ogni istruzione associando a essa una ben definita, univoca e finita azione di un insieme finito di azioni (A)
Il calcolatore come esecutore
Definizione di Calcolo di E
- Un algoritmo (G) è un insieme finito di azioni di A tali che eseguite una per volta risolvono un problema dato
- Le azioni sono estratte da A anche con ripetizioni ma in numero finito
- Un programma (PG) è l’insieme finito di istruzioni corrispondenti alle azioni dell’algoritmo G
- E esegue PG (E calcola PG) significa:
- memorizzare e interpretare la sequenza di istruzioni PG
- eseguire, in modo deterministico e in un numero discreto di passi, la sequenza di azioni di G a esse associate (eseguire l’algoritmo)
Il calcolatore come esecutore
Il calcolatore come esecutore
Il calcolatore come esecutore
Lo pseudocodice
Lo pseudocodice è un linguaggio artificiale e non del tutto formalizzato per esprimere le (macro) azioni che costituiscono l’algoritmo. I programmi scritti in pseudocodice non sono destinati al computer ma ai programmatori
- Strumento valido per mettere nero su bianco gli algoritmi
- Un linguaggio semplice di rapida traduzione nel linguaggio di programmazione da usare (C++)
Il calcolatore: architettura
Il calcolatore: la piramide di memoria
Il calcolatore: memoria RAM
Il calcolatore: memoria RAM
Rappresentazione dell’informazione
- In generale ogni rappresentazione è una funzione che associa ad ogni elemento una sequenza di simboli.
- Per ogni rappresentazione, oggetti (numeri) distinti devono avere differenti rappresentazioni e la rappresentazione di ogni oggetto deve essere unica.
- Una rappresentazione è strettamente correlata al tipo di “mezzo” impiegato.
Rappresentazione Numerica
Ogni sistema di rappresentazione dei numeri deve essere caratterizzato:
- da una base costituita da un insieme di simboli diversi (cifre);
- da un sistema (insieme di regole) che permette di associare ai diversi numeri le diverse stringhe di simboli.
Rappresentazione dell’informazione
Il sistema numerico decimale è un sistema di tipo posizionale ovvero:
Le cifre che compongono un numero cambiano il loro valore secondo la posizione che occupano
7237 (settemiladuecentotrentasette) in base 10
7×103 + 2×102 + 3×101 + 7×100
7×1000 + 2×100 + 3×10 + 7×1
7000 + 200 + 30 + 7 = 7237
Il calcolatore: rappresentazione dati
Un generico numero N in base p è rappresentato da una sequenza di cifre (numerale)
«N»p = an, an -1, …, a1, a0 (numerale)
dove ciascun ai rappresenta un numero compreso fra 0 e p-1,
an è la cifra più significativa e a0 la meno significativa.
Conversione decimale-binario
Rappresentazione dell’informazione
Somma binaria
Nel sistema di numerazione in base 2 esistono due soli simboli: 0 e 1 e quindi quando si effettua l’operazione 1 + 1, non si ha un unico simbolo per rappresentare il risultato, ma il risultato è 0 con il riporto di 1, cioè 10 (da leggere uno, zero e non dieci).
Le regole per effettuare l’operazione di somma di due cifre binarie sono riassunte di seguito:
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 0 con riporto di 1
Somma binaria
La somma dei due numeri interi 10001 e 11011 è pari a:
10001 + 11011 = 101100
Moltiplicazione binaria
Le regole per la moltiplicazione sono:
- 0 * 0 = 0
- 0 * 1 = 0
- 1 * 0 = 0
- 1 * 1 = 1
Quale è il maggiore?
A) 1 0 1 0 1 0 1 0
B) 1 0 0 1 0 1 0 0
C) 1 0 1 0 1 0 1 1
Rappresentazione dei Caratteri
Oltre che le lettere (maiuscole e minuscole) dell’alfabeto inglese e le cifre decimali, ci si riferisce con il termine caratteri anche ad altri caratteri quali:
- i caratteri di interpunzione (la virgola, il punto, i due punti, ecc.)
- caratteri di varia origine (il meno, l’asterisco, le parentesi, ecc.)
Per rappresentare l’insieme di tutti i caratteri sono sufficienti 7 bit.
Rappresentazione dei Caratteri
- I caratteri che costituiscono un testo vengono codificati tramite sequenze di bit, utilizzando un codice di traduzione.
- Un codice di traduzione è una tabella che stabilisce una corrispondenza tra un carattere e la stringa di 7 bit che la rappresenta.
- Poichè esistono numerose possibilità di costruire le tabelle di traduzione, per motivi pratici è opportuno sceglierne una di riferimento e utilizzare sempre quella prescelta (standard).
- L’uso di un codice di traduzione standard consente a sistemi diversi di comunicare tra loro.
Rappresentazione dell’informazione
Rappresentazione dell’informazione
- Problema
- Algoritmo di risoluzione
- Programma
Con un linguaggio più ricco:
- INPUT lato
- abbassa la penna
- ripeti 4 volte le seguenti istruzioni:
- ruota verso destra di 90 gradi
- vai avanti di lato quadretti
Con un linguaggio più ricco:
Con un linguaggio più ricco (2):
- INPUT lato
- abbassa la penna
- ripeti 4 volte le seguenti istruzioni:
- ruota verso destra di 90 gradi
- se lato è minore di 10 allora:
- vai avanti di lato quadretti
Esercizio
Scrivere in pseudo codice un algoritmo per trasformare numeri decimali in numeri binari.