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

Slides:



Advertisements
Presentazioni simili
Informatica Generale Marzia Buscemi
Advertisements

Il Software.
Software di base: Linguaggi di Programmazione
Linguaggi algoritmici
Classe III A A.s – 2010 Programma di Informatica
Classe III A A.s – 2011 Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti –Prof. Alberto Ferrari –Prof. Alberto Paganuzzi.
Evoluzione dei linguaggi di programmazione
PHP.
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Generalità Linguaggio e Macchina Astratta
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Definizione di Algoritmo
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Introduzione alla programmazione lll
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Il Linguaggio Macchina
Unità Didattica 2 I Linguaggi di Programmazione
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Il Linguaggio C.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Elementi di Informatica
Da Problema a Programmazione
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Lo sviluppo del software e i linguaggi di programmazione
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Linguaggi per COMUNICARE
Programma di Informatica Classi Prime
Informatica B Allievi Elettrici AA Introduzione al corso.
Politecnico di Torino maggio DIDAMATICA 2011 Insegnare Futuro EXCEL4PS&SP – 6 Maggio 2011 Prof. Nicola Armenise, PhD I.T.E.S. “A. Olivetti” -
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Dal problema all’ algoritmo
la traduzione dei programmi
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Introduzione a Javascript
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Sorrentino, Corvino, Palumbo, Credendino, Salzano, Ponticiello Caso di studio 2 Gruppo 7 Materia : Informatica- progetto ABACUS Scuola: ITIS indirizzo.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Architettura di un calcolatore e linguaggio macchina.
1 Sommario lez 1 Concetti principali, domande ed esercizi Concetti principali –algoritmo, programma –struttura di controllo: condizionale (if …), iterativa.
Corso di Architetetture degli Elaboratori, A.A. 2004/ Architettura degli Elaboratori Elisa B.P. Tiezzi Orario ricevimento: Giovedì, ( Il materiale.
Algoritmi.
L’esecuzione dei programmi
Concetti Fondamentali sulla Programmazione
Elementi di Informatica SciGeo a.a. 2002/2003. Docente Giorgio Delzanno Ufficio 104 – I piano Dipartimento di Informatica e Sc. Inf. Tel
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Informazione e Informatica - presentazione dei concetti di base -
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Programmazione dei Calcolatori Elettronici
LINGUAGGI DI PROGRAMMAZIONE E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Sistemi Informativi di Rete AA Introduzione alla programmazione

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

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.

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

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

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.

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

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…..

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

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

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.

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

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

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

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

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

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?)

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.

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.

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

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

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)

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.

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

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.

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

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

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

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

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.

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

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

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

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, …)

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)

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

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.

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

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”)

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

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”

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

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

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

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

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”

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à

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

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,...

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