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