Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fondamenti di Informatica
Presentazione
Informazioni importanti
Sono ammessi a seguire questo corso
Gli studenti iscritti a uno dei corsi di laurea triennale del Settore dell'Informazione
il cui numero di matricola ha le ultime due cifre comprese tra 00 e 24 indipendentemente da
anno di immatricolazione denominazione del corso di laurea eventuale appartenenza a un diverso canale in un anno accademico precedente
Gli studenti iscritti a uno dei suddetti corsi di laurea, privi di numero di matricola
Informazioni importanti
Siti da consultare per informazioni amministrative, tecniche, manifesti degli studi, piani di studio, orari, ecc.
Bacheche DEI: http://moodle.dei.unipd.it
Menu in alto a sinistra: informazioni generali
Sito della facolt di Ingegneria: http://www.ing.unipd.it Sito dell'Aula Didattica Taliercio : http://www.adt.unipd.it
Aula informatica dove si svolgono esercitazioni settimanali
Iscrizione al corso
Per partecipare alle attivit didattiche del corso (lezioni, laboratorio, esame finale) necessario
iscriversi al corso dal sito del corso su Bacheche DEI seguendo le istruzioni riportate nella pagina principale
In particolare: occorre usare la chiave d'accesso canale1 L'iscrizione valida fino al termine delle attivit didattiche dell'anno accademico (22 settembre 2012) e va ripetuta l'anno successivo se l'esame non stato superato.
Docente
Federico Avanzini
Ricercatore Universitario e Prof. Aggregato presso il Dip. Di Ingegneria dell'Informazione Attivit di ricerca nel settore dell'Informatica Musicale (Sound and Music Computing). Per i curiosi:
http://www.dei.unipd.it/~avanzini http://smc.dei.unipd.it
Recapiti
DEI, edificio DEI/G, terzo piano, ufficio 310 Telefono: 049 827 7582 Posta elettronica (meglio!): avanzini@dei.unipd.it
Ricevimento studenti
Solo su appuntamento Da sfruttare!
presentare le basi teoriche dellinformatica proporre un approccio ingegneristico e progettuale alla programmazione fornire una visione professionale alla risoluzione dei problemi utilizzare concretamente le caratteristiche di programmazione del linguaggio Java
Obiettivi formativi
Quanto bisogna studiare
Risposta ovvia: molto Risposta sincera: moltissimo Risposta tecnica: dipende da crediti formativi universitari
Programma (1)
Organizzazione di un elaboratore. Unit centrale di elaborazione, memoria centrale, dispositivi di memoria di massa, dispositivi di ingresso e uscita. Il sistema operativo, sommario delle funzioni, processi, multiprogrammazione. Rappresentazione dell'informazione, sistemi di numerazione e conversioni. Linguaggi di programmazione. Esecuzione di un programma tramite compilazione/interpretazione. Macchina virtuale Java. Concetto di algoritmo, introduzione all'analisi degli algoritmi, esemplari di un problema e loro taglie. Misura della complessit: nel caso peggiore e nel caso medio. Notazione asintotica O-grande. Ricorsione, eliminazione della ricorsione.
11
Programma (2)
Strutture di dati e algoritmi, il concetto di tipo di dato astratto, un'interfaccia Java come definizione di un tipo di dato astratto, realizzazione di un tipo di dato astratto mediante una classe. Array, liste, pile e code, realizzazione mediante un array o una catena di celle. Ricerca di un elemento in un array e in una lista. Ricerca per bisezione in un array ordinato. Tabelle, dizionari, semplice realizzazione di un dizionario mediante un array parzialmente riempito o una lista. Algoritmi di ordinamento, ordinamento per selezione, inserzione, mergesort.
12
Programma (3)
Il linguaggio di programmazione Java. Tipi di dati elementari e oggetti, riferimenti, operatori ed espressioni, istruzioni di controllo, classi e interfacce. Campi e metodi di un classe. Introduzione alla programmazione ad oggetti. Polimorfismo ed ereditariet. Operazioni di ingresso e uscita da ingresso e da uscita standard, operazioni di ingresso e uscita da file di testo. Gestione elementare degli errori. Realizzazione di semplici progetti di programmazione nei laboratori didattici
13
Per la parte del corso dedicata allo studio delle strutture di dati, i primi 6 capitoli del volume:
M.T.Goodrich, R.Tamassia, "Strutture dati e algoritmi in Java", Ed. Zanichelli, 2007
Unico prerequisito: dimestichezza con l'uso di un PC e concetti di base del suo funzionamento. Testo di consultazione
Maria Rita Lagan, Marco Righi, Francesco Romani: Informatica Concetti e sperimentazioni, 2a edizione, Apogeo, 2007.
14
Esami
Calendario: http://esami.dei.unipd.it
1o appello: 31/01/2012 (pi 2 giorni) 2o appello: 21/02/2012 (pi 2 giorni) 3o appello: 20/06/2012 4o appello: 13/09/2012
Modalit
tre prove da sostenere nello stesso appello prova scritta, prova pratica, prova orale
Ciascuna va superata per accedere alla successiva
Statistiche
Promossi/iscritti al corso: circa 50% Di cui la grande maggioranza nei primi 2 appelli
15
16
17
18
20
21
Accedere al computer
In un computer di uso personale spesso non necessaria nessuna procedura di accesso Nei computer del laboratorio didattico laccesso invece sempre controllato ed necessario eseguire la procedura di accesso (login) La procedura di accesso dipende dal sistema operativo, ma in generale richiede linserimento di un nome utente (account) e di una password (parola daccesso), che i tecnici di laboratorio consegneranno a ciascuno studente
22
File e directory
Tutte le informazioni presenti in un computer sono memorizzate in file (archivi) nella memoria secondaria Un file ha un nome e un contenuto
Il nome deve rispondere a regole che dipendono dal sistema operativo di solito termina con una estensione, separata da un punto Esempio: Un programma Java deve essere memorizzato in un file con estensione .java (ad esempio: Test.java)
23
25
Le prime domande
Cos' l'informatica? Cos un computer? Cos un programma? Cos la programmazione? Cos un algoritmo?
26
30
31
32
Informatica e Matematica
Hilbert e il formalismo
Alla fine dell'800 la matematica si interroga sui propri fondamenti David Hilbert propone 23 problemi matematici fondamentali, da risolvere nel corso del XX secolo
Il problema della decisione: esiste un procedimento per decidere se una proposizione o meno conseguenza logica di altre? Hilbert fiducioso: in matematica non esiste l'Ignorabimus!
34
35
38
Cos un computer
Un computer una macchina che
memorizza dati (numeri, parole, immagini, suoni...) interagisce con dispositivi (schermo, tastiera, mouse...) esegue programmi
40
Cos' un programma?
Nonostante i programmi siano molto sofisticati e svolgano funzioni molto complesse, le istruzioni di cui sono composti sono molto elementari, ad esempio
estrarre un numero da una posizione della memoria sommare due numeri inviare la lettera A alla stampante accendere un punto rosso in una data posizione dello schermo se un dato negativo, proseguire il programma da una certa istruzione anzich dalla successiva (decisione) Lelevatissimo numero di tali istruzioni presenti in un programma e la loro esecuzione ad altissima velocit garantisce lillusione di una interazione fluida che viene percepita dallutente
41
Cos' la programmazione?
Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari per svolgere un particolare compito Lattivit di progettare e realizzare un programma detta programmazione Scopo di questo corso fornire la competenza per scrivere semplici programmi usando il linguaggio di programmazione Java
42
Cos la programmazione?
Usare un computer non richiede alcuna attivit di programmazione
cos come per guidare un automobile non necessario essere un meccanico
Al contrario, un informatico professionista solitamente svolge una intensa attivit di programmazione, anche se la programmazione non lunica competenza che deve avere La programmazione una parte importante dellinformatica, ed unattivit che in genere affascina gli studenti e li motiva allo studio
43
Cos un algoritmo?
Cos un algoritmo?
Quale tipo di problemi possibile risolvere con un computer?
Dato un insieme di fotografie di paesaggi, qual il paesaggio pi rilassante? Avendo depositato ventimila euro in un conto bancario che produce il 5% di interessi allanno, capitalizzati annualmente, quanti anni occorrono affinch il saldo del conto arrivi al doppio della cifra iniziale?
45
Cos un algoritmo?
Il primo problema non pu essere risolto dal computer perch non esiste una definizione di paesaggio rilassante che possa essere usata per confrontare in modo univoco due paesaggi diversi Un computer pu risolvere soltanto problemi che potrebbero essere risolti anche manualmente
solo molto pi veloce, non si annoia, non fa errori
46
Cos' un algoritmo?
Si dice algoritmo la descrizione di un metodo di soluzione di un problema che
sia eseguibile (sequenza di passi eseguibili) sia priva di ambiguit arrivi a una conclusione con un numero finito di passi
Un computer pu risolvere soltanto i problemi per i quali sia noto un algoritmo Etimologia
Muammad ibn Ms al-Khwrizm (c. 780 c. 850) Matematico, astronomo, geografo persiano
47
Un esempio di algoritmo
Problema: Avendo depositato 20000 in un conto bancario che
produce il 5% di interessi allanno, capitalizzati annualmente, quanti anni occorrono affinch il saldo arrivi al doppio della cifra iniziale?
Algoritmo:
1.Anno attuale 0 e saldo attuale 20000 2.Ripetere i successivi passi 3 e 4 finch il saldo minore di 40000, poi passare al punto 5 3.Aggiungere 1 al valore dellanno attuale 4.Il nuovo saldo attuale il valore del saldo attuale moltiplicato per 1.05 (aggiungiamo il 5%) 5.Il risultato il valore dellanno attuale
anni
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
saldo
20.000,00 21.000,00 22.050,00 23.152,50 24.310,13 25.525,63 26.801,91 28.142,01 29.549,11 31.026,56 32.577,89 34.206,79 35.917,13 37.712,98 39.598,63 41.578,56
48
Un esempio di algoritmo
Il metodo di soluzione proposto
non ambiguo, perch fornisce precise istruzioni su cosa bisogna fare ad ogni passaggio e su quale deve essere il passaggio successivo eseguibile, perch ciascun passaggio pu essere eseguito concretamente (se, ad esempio, il metodo di soluzione dicesse che il tasso di interesse da usare al punto 4 variabile in dipendenza da fattori economici futuri, il metodo non sarebbe eseguibile) arriva a conclusione in un tempo finito, perch ad ogni passo il saldo aumenta di almeno mille euro, quindi al massimo in 20 passi arriva al termine
49
Diagrammi di flusso
Semplici algoritmi sono spesso rappresentati graficamente per mezzo di diagrammi di flusso. Simboli usati:
Inizio/fine dell'algoritmo Passo
vero
falso
vero
incrementa anno
incrementa saldo
fine
51
La definizione di algoritmi e la misura della loro efficienza una parte importante dellinformatica (e anche di questo corso).
52
L'architettura di un computer
Per capire i meccanismi di base della programmazione necessario conoscere gli elementi hardware (fisici) che costituiscono un computer La grande maggioranza degli elaboratori odierni ha unarchitettura che pu essere ricondotta (pi o meno facilmente) ad uno stesso modello
Server, personal computer, laptop, tablet, smartphone,... le eccezioni pi importanti sono alcune macchine ad elaborazione parallela
54
Diagramma schematico di un PC
55
Larchitettura dei moderni processori molto simile a quella descritta nel documento, sono quindi dette Macchine di von Neumann
John von Neumann, First draft of a report on the EDVAC, Moore School of Electrical Engineering, University of Pennsylvania, June John von Neumann 30, 1945 (1903-1957)
56
CPU
Memoria principale
Memoria secondaria
Bus
57
Sul bus dei dati viaggiano dati da e verso la CPU Sugli altri bus viaggiano indirizzi e segnali di controllo che provengono soltanto dalla CPU
CPU
Memoria principale Memoria secondaria Dispositivi di Input e di Output
Bus
58
59
60
Il funzionamento della CPU ciclico ed il periodo di tale ciclo viene scandito dallorologio di sistema (clock), che produce un segnale periodico
61
62
Si parla di ciclo fetch-decode-execute La posizione dellistruzione a cui si accede durante la fase di fetch contenuta in un registro speciale detto contatore di programma (program counter, PC)
viene incrementato di ununit ad ogni ciclo, in modo da eseguire istruzioni in sequenza
63
65
66
La memoria ROM
La memoria di sola lettura, ROM
conserva i dati ed i programmi in essa memorizzati anche quando il computer viene spento
una memoria non volatile
Viene scritta una volta sola direttamente alla fabbricazione (distribuzione di firmware) contiene i programmi necessari allavvio del computer, programmi che devono essere sempre disponibili
nei PC, tali programmi prendono il nome di BIOS (Basic Input/Output System)
67
La memoria RAM
La memoria ad accesso casuale, RAM
una memoria che consente la lettura e la scrittura dei dati e dei programmi in essa contenuti contiene dati in fase di modifica e programmi che non devono essere sempre disponibili perde i dati quando si spegne il computer
una memoria volatile
Esistono vari tipi di RAM, che differiscono per tecnologie costruttive, costi, prestazioni, ...
SRAM Static RAM DRAM Dynamic RAM SDRAM Syncronous DRAM ...
68
Programmi e dati risiedono nella memoria secondaria e vengono caricati nella RAM quando necessario, per poi tornarvi aggiornati se e quando necessario di solito un disco rigido (o disco fisso, hard disk)
Formato da piatti rotanti rivestiti di materiale magnetico, con testine di lettura/scrittura Attuali dimensioni: Terabyte (tebybite, ovvero 1040 byte)
69
La memoria secondaria
Altri tipi di memoria secondaria molto diffusi
a tecnologia ottica
CD-ROM (Compact Disc Read-Only Memory), letto da un dispositivo laser, come un CD audio; capacit ~700 Mb; supporto di sola lettura CD-R (Compact Disc Recordable), utilizza tecnologia simile al CD-ROM ma pu essere scritto dallutente (una volta; pi volte se CD-RW) DVD, (Digital Versatile Disk) e Blue-Ray, elevata capacit.
La memoria secondaria
Memoria flash in rapidissima diffusione
Permanente e riscrivibile (EEPROM), organizzata a blocchi Priva di parti mobili, resistente a sollecitazioni ed urti, Leggera e piccola, indicata per la trasportabilit (fotocamere digitali, lettori di musica, cellulari, ecc.) Possibile sostituto per hard disk di computer portatili
Controindicazioni
Costi alti, anche se in costante diminuzione con il progredire della tecnologia Numero di scritture possibile alto ma limitato (ad es. 100000)
71
Dispositivi di ingresso/uscita
Linterazione fra lutente umano ed il computer avviene mediante i cosiddetti dispositivi periferici di Input/Output (dispositivi di I/O)
Tradizionali dispositivi di input sono la tastiera, il mouse (dispositivo di puntamento), il microfono (per impartire comandi vocali), il joystick (per i giochi), lo scanner (per la scansione digitale di documenti e immagini) Tradizionali dispositivi di output sono lo schermo (monitor), le stampanti, gli altoparlanti
72
Dispositivi di ingresso/uscita
Importante dispositivo di I/O: connessione ad una rete per scambiare dati con sistemi remoti
pu essere diretta (ad alta velocit), tramite una rete locale, o remota (a velocit pi bassa), tramite una linea telefonica e un modem, via radio (senza fili o wireless)
La scheda madre di un PC
La scheda madre (mother-board) contiene la CPU, la memoria primaria, il bus e gli alloggiamenti (slot) di espansione per il controllo delle periferiche
CPU
slot RAM
74
Le istruzioni macchina
Le istruzioni elementari eseguite da un computer (cio dalla sua CPU) si chiamano istruzioni macchina Linsieme di istruzioni macchina (instruction set) specifico di una particolare CPU: quello di un Pentium diverso da quello di uno SPARC
La CPU un interprete dell'instruction set della CPU stessa
Una particolare CPU la cosiddetta macchina virtuale Java (JVM, Java Virtual Machine)
la JVM non una vera CPU ma per il momento possiamo considerarla tale
77
Le istruzioni macchina
Esempio di alcune istruzioni macchina:
carica in un registro il valore contenuto nella posizione di memoria 40 carica in un altro registro il valore 100 se il primo valore maggiore del secondo, prosegui con listruzione contenuta nella posizione di memoria 240, altrimenti con listruzione che segue quella attuale
La codifica delle istruzioni macchina avviene sotto forma di configurazioni di bit conservate in memoria (che possono essere interpretate come numeri interi) Le precedenti istruzioni per la JVM diventano
Le istruzioni macchina
In tutte le CPU, le istruzioni macchina si possono suddividere nelle seguenti categorie (i nomi delle istruzioni sono solo degli esempi)
trasferimento dati, tra registri e memoria principale
LOAD (verso un registro), STORE (verso la memoria)
salti, per alterare il flusso di esecuzione sequenziale (viene modificato il Program Counter)
incondizionato (JUMP): salta in ogni caso condizionato: salta solo se un certo valore zero (JZ) o se maggiore di zero (JGZ)
79
Le istruzioni macchina
Per eseguire un programma in un computer necessario scrivere allinterno della memoria primaria le configurazioni di bit corrispondenti alle istruzioni macchina del programma Per fare ci necessario conoscere tutti i codici numerici delle istruzioni macchina
21 40 16 100 163 240 ...
Questa operazione lunga e noiosa (che veniva eseguita agli albori dellinformatica) stata presto automatizzata da un programma in esecuzione sul computer stesso, detto assemblatore (assembler)
80
Lassemblatore
Utilizzando lassemblatore, il programmatore scrive il programma mediante dei nomi abbreviati (codici mnemonici ) per le istruzioni macchina, molto pi facili da ricordare
esempio precedente per la JVM
iload 40 bipush 100 if_icmpgt 240
Luso di nomi abbreviati assai pi agevole, ed il programma assemblatore si occupa poi di tradurre il programma in configurazioni di bit Tali linguaggi con codici mnemonici si dicono linguaggi assembly (uno diverso per ogni CPU)
82
Lassemblatore
Unaltra caratteristica molto utile dellassemblatore quella di poter assegnare dei nomi agli indirizzi di memoria e ai valori numerici e di usarli nelle istruzioni
iload rate bipush maxRate if_icmpgt tooMuch
In questo modo il programma molto pi leggibile, perch viene evidenziato il significato degli indirizzi di memoria e dei valori numerici C' corrispondenza biunivoca fra insieme di istruzioni assembly e instruction set del processore
83
L'assemblatore
codice assembly (file)
... iload rate bipush maxRate if_icmpgt tooMuch ...
programma assemblatore
programma assemblatore
Il programma assemblatore traduce istruzioni assembly in istruzioni macchina (corrispondenza biunivoca) Il programma assemblatore riceve in ingresso un file contenente codice in linguaggio assembly e produce in uscita un file contenente istruzioni macchina.
84
I linguaggi assembly
Vantaggio: rappresentarono un grosso passo avanti rispetto alla programmazione in linguaggio macchina Problema: occorrono molte istruzioni per eseguire anche le operazioni pi semplici Problema: la sequenza di istruzioni di uno stesso programma cambia al cambiare della CPU
molto costoso scrivere programmi che possano funzionare su diverse CPU, perch praticamente bisogna riscriverli completamente
85
Il programmatore esprime la sequenza di operazioni da compiere, senza scendere al livello di dettaglio delle istruzioni macchina if (rate > 100)
System.out.print("Troppo");
87
Si dice codice sorgente il codice scritto in un linguaggio ad alto livello Si dice codice eseguibile il codice scritto nel linguaggio macchina
88
Compilatore
programma compilatore per CPU di tipo A codice sorgente (file) programma compilatore per CPU di tipo B codice eseguibile per la CPU di tipo B (file) codice eseguibile per la CPU di tipo A (file)
Il compilatore traduce codice in linguaggio ad alto livello in codice eseguibile di uno specifico processore
riceve in ingresso un file contenente codice in linguaggio ad alto livello e produce in uscita un file contenente codice eseguibile di uno specifico compilatore
Lo stesso codice sorgente pu essere tradotto in codice eseguibile di processori diversi, con compilatori diversi 89
La sintassi di un linguaggio viene scelta dai progettisti del linguaggio stesso, come compromesso fra leggibilit, facilit di compilazione e coerenza con altri linguaggi
90
e non tenta di capire, come farebbe un utente umano, perch sarebbe molto difficile verificare le intuizioni del compilatore
meglio la segnalazione di errori!
91
Il linguaggio Java
Nato nel 1991 in Sun Microsystems, da un gruppo di progettisti guidato da Gosling e Naughton
... che consumarono molto caff durante la progettazione del linguaggio
Progettato per essere semplice e indipendente dalla CPU (o, come anche si dice, dallhardware, dalla piattaforma o dallarchitettura) Il primo prodotto del progetto Java fu un browser, HotJava, presentato nel 1994, che poteva scaricare programmi (detti applet) da un server ed eseguirli sul computer dellutente, indipendentemente dalla sua piattaforma
93
Il linguaggio Java
Il linguaggio Java stato adottato da moltissimi programmatori perch
pi semplice del suo diretto concorrente, C++ consente di scrivere e compilare una volta ed eseguire dovunque (cio su tutte le piattaforme) compile once, execute everywhere ha una ricchissima libreria standard che mette a disposizione dei programmatori un insieme vastissimo di funzionalit standard, indipendenti anche dal sistema operativo
94
95
96
Per scrivere il codice sorgente si usa un editor di testo, salvando (memorizzando) il codice in un file
HelloTester.java
98
Nel nostro corso useremo i comandi da tastiera del JDK (Java Development Kit) di Sun Microsystems
99
Quindi il bytecode non codice direttamente eseguibile, dato che la JVM non esiste Il file con il codice bytecode contiene una traduzione delle istruzioni del programma
100
L'istruzione
java HelloTester esegue il programma HelloTester
101
bytecode
102
interprete
104
Il processo di programmazione
codice sorgente
librerie
codice sorgente
compilatore
file di bytecode
librerie
compilatore (caricatore)
codice sorgente
librerie
interprete
file eseguibile
interprete
programma in esecuzione
programma in esecuzione
linguaggi compilati
programma in esecuzione
linguaggio Java
linguaggi interpretati
106
Entrambi questi aspetti sono molto importanti nella fase di scelta di un linguaggio di programmazione da utilizzare in un progetto Il linguaggio Java, da questo punto di vista, un linguaggio misto, essendo sia compilato sia interpretato, in fasi diverse
107
Portabilit
I programmi scritti in un linguaggio interpretato sono portabili I programmi scritti in un linguaggio compilato
sono portabili a livello di file sorgente, ma necessario compilare il programma su ogni diversa CPU non sono portabili a livello di file eseguibile, perch esso contiene codice macchina per una particolare CPU
I programmi scritti in linguaggio Java sono portabili, oltre che a livello di file sorgente, anche ad un livello intermedio, il livello del bytecode
possono essere compilati una sola volta ed eseguiti da interpreti diversi su diverse CPU
108
Efficienza
I programmi scritti in un linguaggio interpretato sono poco efficienti
lintero processo di traduzione in linguaggio macchina deve essere svolto ad ogni esecuzione
Portabilit ed efficienza
Se si vuole soltanto la portabilit, i linguaggi interpretati sono la scelta migliore Se si vuole soltanto lefficienza, i linguaggi compilati sono la scelta migliore Se si vogliono perseguire entrambi gli obiettivi, come quasi sempre succede, il linguaggio Java pu essere la scelta vincente
110
linguaggio Java? 2. Quanto tempo occorre per imparare ad utilizzare lintera libreria di Java?
Hello, World!
Scriviamo il programma nel file
HelloTester.java
usando un editor di testi
113
Hello, World!
115
definisce una nuova classe Le classi sono fabbriche di oggetti e rappresentano un concetto fondamentale in Java, che un linguaggio di programmazione orientato agli oggetti (OOP, Object-Oriented Programming) Per il momento, consideriamo gli oggetti come elementi da manipolare in un programma Java
117
Una parola chiave una parola riservata del linguaggio che va scritta esattamente cos com e che non pu essere usata per altri scopi La parola chiave class indica che inizia la definizione di una classe Ciascun file sorgente (parte di un programma Java) pu contenere una sola classe pubblica, il cui nome deve coincidere con il nome del file
118
Un metodo serve a definire una sequenza di istruzioni o enunciati che descrive come svolgere un determinato compito (in altri linguaggi i metodi si chiamano funzioni o procedure) Un metodo deve essere inserito in una classe, quindi le classi rappresentano il meccanismo principale per lorganizzazione dei programmi
120
definisce il metodo main (principale) Unapplicazione Java deve avere un metodo main Anche qui, public significa utilizzabile da tutti Invece, static significa che il metodo main non esamina e non modifica gli oggetti della classe HelloTester a cui appartiene
121
Scopo: eseguire un programma semplice, descritto da enunciati e contenuto nel file NomeClasse.java Nota: la parte in blu viene per ora considerata una infrastruttura necessaria, approfondita in seguito
122
Un commento inizia con una doppia barra // e termina alla fine della riga Nel commento si pu scrivere qualsiasi cosa Se il commento si deve estendere per pi righe, molto scomodo usare tante volte la sequenza // Si pu iniziare un commento con /* e terminarlo con */
// questo e un commento // lungo,inutile... // ... e anche scomodo /* questo e un commento lungo ma inutile... */
123
Ma dove la visualizza? Un programma pu inserire testo in una finestra, scriverlo in un file o anche inviarlo ad un altro computer attraverso Internet...
124
Quando si usa un oggetto, bisogna specificare cosa si vuol fare con loggetto stesso
in questo caso vogliamo usare un metodo delloggetto out, il metodo println, che stampa una riga di testo per usare il metodo println delloggetto System.out si scrive System.out.println(parametri) la coppia di parentesi tonde racchiude le informazioni necessarie per lesecuzione del metodo (parametri)
A volte il carattere punto significa usa un oggetto di una classe, altre volte usa un metodo di un oggetto: dipende dal contesto...
127
Scopo: invocare il metodo nomeMetodo delloggetto, fornendo parametri se sono richiesti Nota: se non sono richiesti parametri, le parentesi tonde devono essere indicate ugualmente Nota: se ci sono due o pi parametri, essi vanno separati luno dallaltro con una virgola, allinterno delle parentesi tonde
128
C anche il metodo print, che funziona come println ma non va a capo al termine della stampa
129
in modo che visualizzi le parole Hello e World! su due righe consecutive? 2. Il programma continua a funzionare anche senza la riga che inizia con // ? 3. Cosa viene visualizzato dai seguenti enunciati?
System.out.print(My lucky number is); System.out.println(3 + 4 + 5);
132