Informatica Generale - Università degli Studi di Foggia

Informatica Generale
Anno Accademico 2000-2001
Corso di Laurea in
Economia e Commercio
Informazioni Generali
• Ricevimento: Mercoledì 15.00-17.00
• Libri di "riferimento":
– C. Gallo, Informatica Generale ed Applicazioni, Lupus,
Foggia.
– D. Sciuto et al., Introduzione ai sistemi informatici,
McGraw-Hill, Milano.
– A. Meo et al., PC e Internet, UTET Libreria, Torino.
• Altro materiale didattico:
– Fare riferimento alla pagina WEB del docente:
http:\\www.economia.unifg.it\docenti\leoncini
• Esame: test + (eventuale) orale
Informatica Generale (CdL in E&C), A.A. 2000-2001
2
1
Che cos’ è l’Informatica?
INFORMATICA = INFORMazione
automATICA
(o Scienza dell’Informazione)
• rappresentazione
• memorizzazione
• elaborazione
• trasmissione
Informatica Generale (CdL in E&C), A.A. 2000-2001
3
Obiettivi di un corso di Informatica ad Economia
• “Alfabetizzazione” informatica
• Formare utenti “consapevoli”
– Il programma che uso è adatto?
– Il computer che uso è adatto?
• Problema culturale
– I prodotti “passano”, i principi restano
– l’unicum della macchina programmabile
• Nuove professionalità (commercio elettronico ,
marketing on-line, modellazione finanziaria, …)
Informatica Generale (CdL in E&C), A.A. 2000-2001
4
2
Programma del corso
• Premesse
• Dati e algoritmi
• Hardware
• Concetti base su software e programmazione
• Software di base
• Software applicativo
• Reti di calcolatori
• Internet
• Commercio Elettronico
• Valutazione dei sistemi di elaborazione
Informatica Generale (CdL in E&C), A.A. 2000-2001
5
Applicazioni dell’Informatica
• Applicazioni gestionali
→ gestire e rendere disponibili quantità di
dati talvolta enormi
• Applicazioni scientifiche
→ risolvere problemi “difficili” che sorgono
in vari settori della ricerca scientifica
• Elaborazione personale
→ testi, fogli di calcolo, giochi, …
• Telematica: Telecomunicazioni+Informatica
→ commercio elettronico, home banking, ...
Informatica Generale (CdL in E&C), A.A. 2000-2001
6
3
Dati e algoritmi
• Dati e informazioni
• Caratterizzazione dei dati
• Rappresentazione
• Sistemi di numerazione
• Dati non numerici
• Algoritmi
• Rappresentazione degli algoritmi:
diagrammi di flusso
Dati e informazioni
Dato:
“Il numero 30”
Informazione: “Ho preso 30 a IG”
Informazione = forma + contenuto
(dato, rappresentazione)
(interpretazione,
significato)
Il calcolatore “elabora” dati
L’uomo “estrae” informazione
(⇒ riduzione di incertezza)
Informatica Generale (CdL in E&C), A.A. 2000-2001
8
4
Aspetti caratteristici dei dati
• Nome: identificatore (es. anno_di_nascita)
• Tipo: insieme di valori ammissibili (es.
1982)
• Struttura: semplice/composto (es. anno di
nascita, domicilio)
→ formato (es. giorno,mese,anno)
• Origine: primitivi/calcolati (es. data di
nascita, codice fiscale)
• Rappresentazione: esterna/interna (es. -2,
11111111111111111111111111111110)
Informatica Generale (CdL in E&C), A.A. 2000-2001
9
Alcuni tipi di dato
•
•
•
•
•
•
•
•
Numeri interi: …,-2,-1,0,1,2,3,…
Numeri frazionari: 1.5,-3.1,3.14, 2.71
Numeri “reali”: π, e, 2
Caratteri: ‘a’,…,‘z’,‘0’,…,‘9’,‘.’,‘,’…
Valori logici: vero/falso
Vettori e matrici: [1,-2,0]
Stringhe: ‘Foggia’, ‘San Severo’
Record: {giorno,mese,anno}
Informatica Generale (CdL in E&C), A.A. 2000-2001
10
5
Alcuni tipi di dato (2)
• Grafi e alberi:
• Grafica, immagini, filmati, suono
Informatica Generale (CdL in E&C), A.A. 2000-2001
11
Rappresentazione esterna
• Vicina all’utente
– cifre decimali
– caratteri “alfanumerici”
– grafici
– immagini “rese” a video
– suoni
• Non utilizzabile all’interno del computer
⇒ problema della conversione
Informatica Generale (CdL in E&C), A.A. 2000-2001
12
6
Rappresentazione esterna: numeri interi
• Rappresentazione posizionale degli interi
– Significato cifre dipende da posizione:
242 = 2×102+4×101+2×100
– Vantaggiosa per le operazioni
Es.: “algoritmo” di addizione in colonna
107 +
224 =
331
Azione base: calcolo della somma
di (al più) tre cifre con eventuale
generazione di una cifra di riporto
• Rappresentazione dei numeri negativi:
modulo e segno
Informatica Generale (CdL in E&C), A.A. 2000-2001
13
Rappresentaz. esterna: numeri frazionari
• Rappresentazione in virgola fissa
2.42 =
=
24.2 =
=
2×100+4×10-1+2×10-2
2+4/10+2/100 = 242/100
2×101+4×100+2×10-1
20+4+2/10 = 242/10
• Rappresentazione in virgola mobile
(scientifica)
– 3.46E+03 = 3.46×103 (es., MS Access)
– 3.46×103 = 34.6×102 = 0.346×104
– Normalizzazione
Informatica Generale (CdL in E&C), A.A. 2000-2001
14
7
Rappres. interne: codifica binaria dei dati
• Dispositivi fisici bistabili
– Affidabilità tecnologica
• 1 bistabile → 1 BIT (BInary digiT)
– Unità elementare di informazione
– Incertezza “a due vie”: 0/1, Y/N, T/F
• n bistabili → sequenza di n BIT
– 2n possibili configurazioni
– BYTE = 8 bit
– WORD = w BIT (w dipende da computer)
• Codici di rappresentazione
Informatica Generale (CdL in E&C), A.A. 2000-2001
15
Codifica binaria dei numeri naturali
• Rappresentazione posizionale in “base 2”
110100102 = 1×27+1×26+0×25+1×24+
110100102 = 0×23+0×22+1×21+0×20
110100102 = 128+64+16+2 = 210
• n bit → numeri naturali in [0,2n-1]
– 1 byte: numeri da 0 a 255
– 1 word nei moderni PC (32 bit): numeri da
0 a 4294967295 (=232-1)
Informatica Generale (CdL in E&C), A.A. 2000-2001
16
8
Codifica binaria dei numeri interi
• Rappresentazione in modulo e segno:
– segno (primo bit): 0 indica +, 1 indica – modulo: come nel caso dei numeri naturali
110100102 = -(1×26+0×25+1×24+
0×23+0×22+1×21+0×20)
110100102 =
segno
11010010
modulo 2 = -(64+16+2) = -82
• n bit → numeri interi in [-(2n-1-1),2n-1-1]
– 1 byte: numeri da -127 a 127
– 32 bit: num. da -2147483647 a 2147483647
– due rappresentazioni per lo zero (+0 e -0)
Informatica Generale (CdL in E&C), A.A. 2000-2001
17
Rapp. in complemento a 2 dei numeri interi
• Disponendo di n bit: bn-1bn-2…b1b0
– bn-1 “pesa” -bn-1×2n-1
– bn-2…b1b0 si interpreta come num. naturale
110100102 = -1×27+1×26+0×25+1×24+
110100102 = 0×23+0×22+1×21+0×20
110100102 = -128+64+16+2 = -46
• n bit → numeri interi in [-2n-1,2n-1-1]
– 1 byte: numeri da -128 a 127
– 32 bit: num. da -2147483648 a 2147483647
– operazioni più semplici (inaspettatamente?)
Informatica Generale (CdL in E&C), A.A. 2000-2001
18
9
Codifica binaria dei numeri frazionari
• Virgola fissa (ad esempio, dopo il terzo bit da
destra)
110100102 = 1×24+1×23+0×22+1×21+
0
-1
-2
-3
11010010
Pos. implicita 2 = 0×2 +0×2 +1×2 +0×2
11010010
della virgola 2 = 26+1/4 = 105/4
• Utilizzabile con modulo e segno o compl. a 2
• Virgola mobile
1101001010011101
Segno
Numero fraz. in virgola fissa
Esponente (intero)
Informatica Generale (CdL in E&C), A.A. 2000-2001
19
Codifica binaria di dati (semplici) non
numerici
• Carattere ↔ sequenza di bit
Codice di traduzione
• Codice ASCII (America Standard Code for
Information Interchange) usa 7 bit
– ‘m’ è rapp. con 109 (=11011012)
– ‘5’ è rapp. con 53 (= 01101012)
• Altri codici (EBCDIC, UNICODE)
• Valori di verità Vero/Falso (True/False)
Informatica Generale (CdL in E&C), A.A. 2000-2001
20
10
Codifica delle immagini
• Pixel = pixture element (internamente
richiede un bit per il b/n o più bit per il
colore)
Griglia di 4 × 4 pixel
• Immagine = matrice di pixel
– dimensioni (base altezza in pixel)
– risoluzione (dpi, cioè punti per pollice)
– numero di colori per ogni pixel
Informatica Generale (CdL in E&C), A.A. 2000-2001
21
Dati composti
• Vettori e matrici
– V=(2,-4,3,0,-1), S=(‘I’,‘n’,‘f’,‘G’,‘e’,‘n’)
– M=
1
9
3
3
3
2
1
0
1
Stringa “InfGen”
• Record (o entità)
– {Ugo,Rossi,Foggia,5/3/79,3463}
– Ugo Rossi Foggia 5/3/79 3463
Informatica Generale (CdL in E&C), A.A. 2000-2001
22
11
Dati composti (2)
• Grafi
200
Pescara
Foggia
100
160
Bari
200
Napoli
•
Animali
Invertebrati
Mammiferi
Alberi (Grafi aciclici)
Vertebrati
Uccelli
Rettili
Anfibi
Informatica Generale (CdL in E&C), A.A. 2000-2001
23
Elaborazione dell’informazione: algoritmi
• Che cosa è un algoritmo?
ricetta/lista di istruzioni/procedura
• Caratteristiche
– linguaggio (per descrivere l’algoritmo)
– esecutore (chi svolge i compiti prescritti)
– azioni base (ciò che l’esecutore sa fare)
– non ambiguità (associaz. linguaggio/azioni)
– terminazione (seguendo le istruzioni si
deve arrivare al risultato)
Informatica Generale (CdL in E&C), A.A. 2000-2001
24
12
Esempi di algoritmi
• Numerici
– addizione di numeri naturali (elementare)
– moltiplicazione di numeri interi (semplice)
– divisione (nessuno la amava …)
– calcolo della radice quadrata (chi lo
ricorda?)
• Non numerici
– Ricercare un elemento in un archivio
– Ordinare un archivio
Informatica Generale (CdL in E&C), A.A. 2000-2001
25
Un algoritmo non numerico
Problema: “Dati due secchi d’acqua, S1 ed S2, di
capacità pari rispettivamente a 9 e 5 litri, si vuole
versare 6 litri d’acqua in un contenitore fisso C.”
•
•
•
•
•
•
•
Riempire S2
Versare il contenuto di S2 in C
Riempire nuovamente S2
Versare il contenuto di S2 in S1
Riempire S2 per la terza volta
Versare il contenuto di S2 in S1 fino a riempimento
Versare il contenuto rimanente di S2 in C
Informatica Generale (CdL in E&C), A.A. 2000-2001
26
13
Riflessioni
• Linguaggio: essenzialmente l’Italiano
→ informale, pensato per esecutore umano
• Azioni elementari: riempire e vuotare dei
secchi, ma non solo
• Correttezza: abbiamo davvero risolto il
problema “specifico” SECCHI9,5,6 ?
• Generalità: siamo in grado di risolvere il
problema “generale” “SECCHIa,b,c” ?
Informatica Generale (CdL in E&C), A.A. 2000-2001
27
Fasi della risoluzione di un problema
• Analisi del problema
• Descrizione di un algoritmo che lo risolve
• Verifica della correttezza dell’algoritmo
• Eventuale “traduzione” in un linguaggio
comprensibile all’interprete
• Esecuzione dell’algoritmo da parte
dell’interprete
Chi effettua l’analisi è sempre l’uomo
Chi esegue l’algoritmo può essere uomo
o macchina
Informatica Generale (CdL in E&C), A.A. 2000-2001
28
14
Processo di “formalizzazione”
Problema I: determinare il minore di due
numeri interi x e y
Calcola la differenza fra x e y e chiamala d
Se d è zero, dichiara che x e y sono uguali.
Altrimenti, se d è un numero positivo,
dichiara che il minore è y,
altrimenti dichiara che il minore è x
Il linguaggio naturale sembra molto comodo, ma è sempre il
più efficace?
Si pensi ai linguaggi formali sviluppati da matematici,
chimici, musicisti, ….
Informatica Generale (CdL in E&C), A.A. 2000-2001
29
Processo di “formalizzazione” (2)
Problema I: determinare il minore di due
numeri interi x e y
Poni d = x-y
Se d = 0, allora scrivi “x = y”
altrimenti se d > 0, allora scrivi “x > y”
altrimenti scrivi “x < y”
x, y e d sono dette variabili
Dove si deve (o può) arrestare il procedimento
di formalizzazione?
Informatica Generale (CdL in E&C), A.A. 2000-2001
30
15
Programmazione e compilazione
Modello informale
Programmazione
Passaggio svolto dall'uomo
Linguaggio di programmazione
ad "alto livello"
Compilazione
Passaggio svolto dalla macchina
Computer (hardware)
Informatica Generale (CdL in E&C), A.A. 2000-2001
31
Un secondo esempio
Problema II: determinare il minore di tre
numeri interi x, y e z
I1 Se x è minore di y
esegui l’istruzione I2
altrimenti esegui l’istruzione I4
I2 La soluzione è il minore fra x e z
I3 Fine
I4 La soluzione è il minore fra y e z
Perché è stata inserita l’istruzione I3?
→ nozione di flusso di esecuzione
Questa soluzione è generalizzabile al caso
di n numeri?
Informatica Generale (CdL in E&C), A.A. 2000-2001
32
16
Generalizzazione del problema I
Problema III: determinare il minore di 13
numeri interi x1,x2,…,x13
I1:
I2:
Poni z1 = minimo{x1,x2}
Poni z2 = minimo{z1,x3}
. . . . .
I12: Poni z12 = minimo{z11,x13}
I13: Il risultato è z12
• Inconvenienti di questa soluzione
• Serve più “espressività” del linguaggio
Informatica Generale (CdL in E&C), A.A. 2000-2001
33
Generalizzazione del problema I (2)
Problema IV: determinare il minore di n
numeri interi x1,x2,…,xn
I1 Poni z = x1
I2 Con i=2,3,…,n, ripeti il passo I3
I3
Poni z = minimo{z,xi}
I4 Il risultato è z
I2 è un costrutto iterativo
Informatica Generale (CdL in E&C), A.A. 2000-2001
34
17
La questione dell’efficienza del calcolo
Problema V: calcolare il M.C.D. di due
numeri interi x e y
I1: Poni z = minimo{x,y}
I2: Con i=1,2,…,z, ripeti il passo I3
I3:
Se i divide x e y poni MCD = i
Algoritmo più efficiente (attribuito ad
Euclide)
I1: Finché x ≠ y esegui il passo I2
I2:
Se x>y, poni x = x-y,
altrimenti poni y = y-x
I3: Poni MCD = x
Informatica Generale (CdL in E&C), A.A. 2000-2001
35
Digressione: elementi di logica proposizionale
Proposizione: frase che può essere VERA o FALSA
Esempi:
È una bella giornata di sole
Se mangio carne mi ammalo di mucca pazza
Ho preso 30 a Informatica Generale
Si dice anche che una proposizione ha valore di verità
VERO o FALSO
Una generica proposizione viene solitamente
indicata con le lettere P o Q
Informatica Generale (CdL in E&C), A.A. 2000-2001
36
18
Elementi di logica proposizionale (2)
Connettivi logici: consentono di creare proposizioni
"complesse" a partire da proposizioni semplici
I connettivi fondamentali: e, o, non (and, or e not)
Esempi. Posto …
P: È una bella giornata di sole
Q: Ho preso 30 a Informatica Generale
… possiamo formare le proposizioni:
P and Q (= È una bella giornata di sole e ho preso 30 a
Informatica Generale), not P (non è una bella giornata
di sole), …
Informatica Generale (CdL in E&C), A.A. 2000-2001
37
Elementi di logica proposizionale (3)
Tabelle di verità: consentono di determinare il valore
di verità di proposizioni composte a partire dal valore
di verità delle proposizioni componenti
P
Tabella di verità del
connettivo and
F
F
V
V
Q
F
V
F
V
P and Q
F
F
F
V
Informatica Generale (CdL in E&C), A.A. 2000-2001
38
19
Elementi di logica proposizionale (4)
Tabella di verità del
connettivo or
Tabella di verità del
connettivo not
P
Q
P or Q
F
F
V
V
F
V
F
V
F
V
V
V
P
F
V
Not P
V
F
Informatica Generale (CdL in E&C), A.A. 2000-2001
39
Diagrammi di flusso (flowchart)
Inizio
Fine
Input dati
Selezione
Procedura
Processo
Connettore
Informatica Generale (CdL in E&C), A.A. 2000-2001
40
20
Uso dei flowchart
Inizio
Minore di due
numeri interi
(Problema I)
Leggi
x e y
d=x-y
V
F
d>0?
min=y
Stampa
min
min=x
Fine
Informatica Generale (CdL in E&C), A.A. 2000-2001
41
Uso dei flowchart (2)
MCD di due
numeri interi
(Problema V)
i:=1
F
Inizio
i≤
≤z?
i=i+1
V
Test
Input
x e y
z=min{x,y}
F
V
Stampa
MCD
MCD=i
Fine
Informatica Generale (CdL in E&C), A.A. 2000-2001
42
21