La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione.

Presentazioni simili


Presentazione sul tema: "Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione."— Transcript della presentazione:

1 Sistemi Informativi di Rete AA Introduzione alla programmazione

2 Informazioni Generali Prof. Letizia Tanca, Dip. Elettronica e Informazione, stanza 128, tel –ricevimento mercoledì h. 14:16 Esercitazioni: ing. Matteo Valsasna, ing. Gianfranco Mattia

3 Materiale didattico consigliato Testi ufficiali Ron White, "Il computer, come è fatto e come funziona", Mondadori Informatica. S.Ceri, D.Mandrioli, L.Sbattella, "Informatica: arte e mestiere", McGraw-Hill, Italia, Letture consigliate Manuali di Java (v. Valsasna) G.Buonanno, W.Fornaciari, L.Mari, D.Sciuto, Introduzione ai sistemi informatici, McGraw-Hill, P.Atzeni, S.Ceri, S.Paraboschi, R.Torlone, "Basi di dati", McGraw-Hill, II ed., 1999.

4 L’informatica E’ la scienza che si occupa della rappresentazione dell’ informazione e della sua gestione

5 L’informatica Scienza: approccio rigoroso e sistematico Informazione: e’ parte di qualsiasi attivita’ umana Rappresentazione: il problema di astrarre i concetti importanti da quelli trascurabili per poter modellare la realta’ di interesse: ci serve studiare metodi di rappresentazione appropriati all’elaborazione da parte di una macchina digitale Gestione: uso e trasformazione dell’informazione in maniera funzionale agli obiettivi

6 Argomenti del corso Programmazione: –impariamo un linguaggio di programmazione : Java –impariamo come si imposta una procedura: l’astrazione i tipi di dati e le strutture dati le strutture di controllo e gli algoritmi l’ingegneria del software Sistemi di elaborazione: comprendiamo l’architettura HW e SW di un computer e di una rete. Sistemi informativi: impariamo a progettare sistemi informativi di rete.

7 Architettura di un Computer Hardware l’Unita’ Centrale (CPU), la Memoria Centrale (RAM) la Memoria di Massa il Bus di Sistema le Unita’ Periferiche le Reti di Computer Il linguaggio della macchina è l’aritmetica binaria

8 Architettura di un Computer: Software di sistema il sistema operativo i sistemi di gestione di basi di dati il software di rete gli ambienti di programmazione: editors, traduttori, collegatori, debuggers.. gli strumenti di produttivita’: word processors, fogli elettronici, strumenti per la produzione di slide, strumenti per la produzione di ipertesti…..

9 Architettura di un Computer: Software applicativo gestionale (sistemi informativi aziendali, elaborazione paghe, fatturazione, automazione del terziario, ….office automation: workflow management) numerico (metereologia, applicaz. statistiche,..) telematico (terminali bancari, prenotazioni aeree, ….Internet….) automazione industriale (robotica, CAD, CIM…) controllo di processi (centrali elettriche, nucleari, controllo traffico aereo…) realta’ virtuale e interfacce utente …software multimediale

10 Strumenti di Produttivita’ Word processors, agende elettroniche,... I fogli elettronici: Microsoft Excel Le basi di dati: Microsoft Access La rete Internet Le reti di calcolatori, sistemi distribuiti Il World Wide Web La posta elettronica Telnet, FTP

11 I calcolatori elettronici strumenti in grado di eseguire operazioni non complesse modello attuale (macchina di Von Neumann): –Capacità di scelta (possibilità di scegliere percorsi diversi in base allo stato interno del sistema); –Funzionalità programmata (capacità di modificare il proprio comportamento in base al programma); –Dispositivi digitali (utilizzano valori binari). –Di tipo sequenziale: può processare una sola istruzione per volta.

12 La macchina di von Neumann l’Unita’ Centrale (CPU), la Memoria Centrale (RAM) la Memoria di Massa il Bus di Sistema le Unita’ Periferiche CPU MM BUS RAM UP1 UPn

13 Risoluzione automatica di problemi Ripetizione di un gran numero di operazioni relativamente semplici Capacita’ di trattare grandi quantita’ di dati senza errori Rapidita’ e precisione di esecuzione Le attitudini umane si adattano tipicamente a individuare metodi per ottenere le soluzioni

14 Dal problema alla soluzione automatica Specifiche: descrizione precisa e corretta dei requisiti (verificabilita’) ---> cosa? Progetto: procedimento con cui si individua la soluzione ---> come? Soluzione: algoritmo

15 Definizione di algoritmo Dato un problema e un esecutore, un algoritmo e’: una successione finita di passi elementari eseguibili senza ambiguita’ dall’esecutore che risolve il problema dato nel nostro caso: algoritmi sequenziali

16 Prodotto di due interi positivi Leggi W Leggi Y Somma W a se stesso Y volte Scrivi risultato

17 Prodotto di due interi positivi 1Leggi W 2Leggi Y 3SP = 0 4NS = Y 5SP = SP + W 6NS = NS - 1 7NS = 0? Se NO: torna a 5; se SI : 8Z = SP 9Scrivi Z Procedimento sequenziale Non ambiguo Formulazione generale Prevede tutti i casi (che succede se Y < 0?)

18 ALGORITMI Tre aspetti fondamentali: –Gli oggetti su cui esso agisce (variabili o costanti), alcuni acquisiti dall’esterno (INPUT) e manipolati, altri interni, di supporto, altri forniti come risultati (OUTPUT); –Le operazioni effettuate; –Il flusso di controllo (successione delle operazioni da eseguire). Flusso di esecuzione: descrive la sequenza di operazioni effettuate in una particolare esecuzione.

19 ALGORITMI Criteri di valutazione di un buon algoritmo: –Correttezza: capacità di pervenire alla soluzione appropriata del problema prevedendo tutti i casi significativi che possono presentarsi; –Efficienza: proprietà strettamente correlata al tempo di esecuzione ealla memoria occupata.

20 Strumenti per la descrizione degli algoritmi Semi-formali (specifiche iniziali, ancora intelligibili solo all’essere umano) Formali (programmi da eseguire): linguaggi di programmazione

21 Linguaggi semi-formali pseudo-codice: IF A>0 THEN A=A+1 ELSE A=0 diagrammi di flusso (flow chart, schemi a blocchi):

22 Prodotto di due interi positivi 1Leggi W 2Leggi Y 3SP = 0 4NS = Y 5SP = SP + W 6NS = NS - 1 7NS = 0? Se NO: torna a 5; se SI: 8Z = SP 9Scrivi Z Leggi (W) Leggi (Y) SP = 0 NS = Y do { SP = SP + W NS = NS - 1} while NS > 0 Z = SP Scrivi (Z)

23 Gli oggetti Sono variabili o costanti: alcuni acquisiti dall’esterno (INPUT) e manipolati, altri interni, detti ausiliari o di supporto, altri forniti come risultati (OUTPUT) gli oggetti possono avere una struttura molto complessa le variabili sono dei contenitori di informazioni. durante l’esecuzione del programma devono avere sempre un valore definito, significativo o meno. Per questo motivo le variabili devono essere inizializzate.

24 Gli oggetti Gli oggetti possono avere una struttura molto complessa. Esempi: vettori (array): A[1],A[2],…A[N] a una o piu’ dimensioni strutture: data:giorno: 1..31, mese: string, anno: integer

25 Operazioni ed espressioni Operatori aritmetici: +, -, *, / …:Agiscono su valori, detti operandi, di tipo numerico rappresentati da variabili o costanti e producono un valore numerico. Operatori di confronto:, = …:Agiscono anch’essi sugli operandi e producono risultati di tipo booleano (VERO o FALSO). Funzioni: cos(x), log(x), …:Restituiscono valori; esistono funzioni predefinite (BUILT IN). Procedure: leggi (x), scrivi (n):Effettuano delle operazioni su valori detti parametri. Espressioni:Sono una composizione di operatori, funzioni, variabili e valori costanti.

26 Operazione di assegnamento Operazione di assegnamento: es. A:=B+C Consente di assegnare un nuovo valore alla variabile a sinistra dell’operatore di assegnamento (:= oppure =). Tale valore è determinato dalla valutazione dell’espressione a destra dell’operatore di assegnamento. Altro modo di assegnare valori: lettura dall’esterno

27 Flusso di controllo Il flusso di controllo e’ la successione delle operazioni da eseguire. Si utilizzano: istruzioni di tipo condizionale istruzioni che impongono un flusso di controllo ciclico: condizioni di permanenza nel ciclo: »ciclo a condizione iniziale »ciclo a condizione finale

28 Somma dei primi N naturali (uso di istruzione condizionale) 1. Leggi(N) 2. S=0 3. I=1 4. S=S+I 5. I=I+1 6. If I >N then go to 4 7. Scrivi(“La somma e’” S) 8. End Implementa un ciclo a condizione finale e’ corretto se N >= 1

29 Istruzione Condizionale Selezione semplice: if ….then… Esempio: caso precedente. Si tratta di una scelta tra eseguire oppure non eseguire una sequenza di istruzioni.

30 Istruzione Condizionale Selezione doppia: if ….then…else… Esempio: caso precedente. Si tratta di una scelta tra eseguire una sequenza di istruzioni oppure eseguirne un’altra sequenza.

31 Somma dei primi N naturali (uso esplicito di ciclo) 1. Leggi(N) 2. S=0 3. I=1 4. do { S=S+I 5. I=I+1} 6. while I <= N 7. Scrivi(“La somma e’” S) 8. End implementa un ciclo a condizione finale e’ corretto se N >= 1 esce dal ciclo dopo averlo eseguito almeno una volta

32 Elementi del flusso di controllo ciclico Variabile di controllo: inizializzata prima di entrare nel ciclo Condizione di permanenza nel ciclo: –a condizione iniziale –a condizione finale Modifica della variabile di controllo: avviene nel corpo del ciclo

33 Somma dei primi N naturali (uso esplicito di ciclo) 1. Leggi(N) 2. S=0 3. I=1 4. while I <= N do 5. { S=S+I 6. I=I+1} 7. Scrivi(“La somma e’” S) 8. End implementa un ciclo a condizione iniziale e’ corretto se N >= 0 non entra nel ciclo se N=0

34 Linguaggi e programmi Java e` un linguaggio di programmazione Che cos’e` un l.p.? linguaggio artificiale per programmare un computer preciso e rigoroso il computer e` meno tollerante agli “errori” di un “umano” Che cos’e` un programma? e` cio` che un computer esegue realizza un’applicazione (es. Excel, Word, …)

35 Linguaggi di Programmazione Consentono di scrivere gli algoritmi sotto forma di programmi eseguibili dal calcolatore. Suddivisi in: Linguaggi di alto livello (più vicini linguisticamente al linguaggio naturale); Linguaggi assemblatori (più vicini al codice macchina)

36 Java ha successo come “linguaggio per internet”: consente di creare “applet”: (semplici) programmi che vengono eseguiti quando un browser carica una pagina HTML Le applicazioni hanno un utente previsto (“end user”), ma questo termine e` ambiguo se non si specifica il contesto JAVA

37 I Traduttori I compilatori sono programmi che traducono i programmi scritti in alto livello in Assembler. Gli interpreti interpretano direttamente le operazioni eseguendole. Esempi di linguaggi: Interpretati  LISP, PROLOG (usatI nell’intelligenza artificiale; Compilati  C, C++, PASCAL, FORTRAN.

38 Costruzione ed esecuzione dei programmi (caso tradizionale) editorcompilatore testo sorgente linguaggio macchina (eseguibile) (codice oggetto) bleah! errori

39 Il computer esegue programmi scritti nel proprio linguaggio (linguaggio macchina) inadatto alla comunicazione umana: usa una codifica binaria (“0” e “1”), che e` direttamente interpretabile da circuiti elettronici Il computer esegue programmi che sono memorizzati nella propria RAM Parole = +bytes = +bit System.out. println(“xxx”)

40 Problema: ogni macchina (486, Pentium, …) ha il proprio linguaggio - occorrono tanti compilatori quante sono le macchine - non posso trasferire il codice oggetto L’idea di Java - definire un linguaggio macchina “universale” (Bytecode) editorcompilatore testo sorgente Bytecode

41 Assomiglia ai linguaggi macchina, ma non coincide con nessuno, quindi non e` eseguibile direttamente dall’hardware Alternativa 1 Esiste uno speciale compilatore per il Bytecode Alternativa 2 (quella piu` comune) Esiste una speciale applicazione che fa da “interprete” del linguaggio Bytecode hardware interprete Bytecode e` una macchina “virtuale” Il bytecode e` una “lingua franca”

42 Vantaggi e svantaggi dell’alternativa 2 + portabilita` del codice tra macchine diverse (fondamentale nel caso di applet!) - efficienza !!

43 Errori attenzione: il compilatore puo` rilevare solo alcuni errori (tipicamente errori sintattici) durante l’esecuzione del programma possono sorgere altri errori (errori “runtime” ), per esempio divisione per una grandezza che vale zero

44 Struttura di un programma (linguaggio di alto livello) Parte dichiarativa: dichiarazione degli elementi del programma (dati e funzioni) Parte eseguibile: istruzioni: –input/output –assegnazione –controllo: »condizionali »cicli

45 Dichiarazione dei dati Interi : valori:{…-4,-3,-2,-1,0,1,2,3,4,… (int) operazioni: {+, -, *, /} Booleani: valori: {vero, falso} (bool) operazioni: {and, or, not, implica} Reali: valori: R (float) operazioni: {+, -, *, /, sqrt,...} Le costanti: es. const float Pi=3,14

46 Dichiarazione dei dati: tipi di dati Il tipo e’ un concetto astratto che esprime: allocazione di spazio operazioni permesse: non posso fare “3 and 4” non posso fare “vero * falso”

47 Oggetti e classi Abitualmente operiamo con oggetti che hanno certi attributi e su cui si possono compiere operazioni il mio televisore è un oggetto il video del mio computer è un oggetto il mio amico Pippo è un oggetto Gli oggetti sono elementi (esemplari, “istanze”) di una classe Tutti gli oggetti di una stessa classe condividono le stesse proprietà

48 L’astrazione E’ un processo mentale che: evidenzia alcune proprieta’ rilevanti ai fini dell’applicazione esclude le proprieta’ irrilevanti ai fini dell’applicazione

49 Concetto: persona Persona: nome, cognome, codice fiscale, indirizzo, data di nascita, n. telefono,... Persona come studente: nome, cognome, numero di matricola, corso di laurea, esami sostenuti, voti, anno di corso… Persona come paziente: nome, cognome, data di nascita, gruppo sanguigno, malattie avute, risultati esami medici,...

50 Classe Persona Si introduce la classe delle persone, che avrà un certo insieme di proprietà: –Persona: nome, cognome, codice fiscale, indirizzo, data di nascita, n. telefono, … Si introducono le sottoclassi: –Studente: nome, cognome, numero di matricola, corso di laurea, esami sostenuti, voti, anno di corso… –Paziente: nome, cognome, data di nascita, gruppo sanguigno, malattie avute, risultati esami medici,… Si possono introdurre dei comportamenti (metodi) per gli elementi di una certa sottoclasse: – Persona.trova i genitori


Scaricare ppt "Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione."

Presentazioni simili


Annunci Google