22/10/2004Programmazione e Laboratorio di Programmazione – Luca Tesei1 Laboratorio – Primo Impatto Scrivere un semplice programma I primi concetti.

Slides:



Advertisements
Presentazioni simili
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F1 Primi programmi.
Advertisements

Introduzione al linguaggio C++
LINGUAGGIO DI PROGRAMMAZIONE C
Programmazione in Java
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Programmazione assembler
I linguaggi di programmazione
If a cascata, switch, operatori logici
2/11/2004Laboratorio di Programmazione - Luca Tesei1 Progettazione Fase di progettazione di unapplicazione Fase di implementazione.
Linguaggi Regolari e Linguaggi Liberi
12/11/2004Laboratorio di Programmazione - Luca Tesei1 Caratteri – Input da Console Il tipo char Input dallo standard input.
26/10/2004Laboratorio di Programmazione - Luca Tesei1 Variabili e Oggetti Lo spazio di memoria di Java Le API di Java.
3/12/2004Laboratorio di Programmazione - Luca Tesei1 Sequenze di lunghezza variabile ArrayList Operazioni Ricerche.
5/11/2004Laboratorio di Programmazione - Luca Tesei1 Esercizi Su Progettazione e Implementazione di classi.
29/10/2004Laboratorio di Programmazione - Luca Tesei1 Metodi e variabili istanza Definizione e chiamata di metodi Uso delle variabili istanza Documentazione.
9/11/2004Laboratorio di Programmazione - Luca Tesei1 Tipi numerici di base - Costanti Interi e decimali Definizione di costanti.
Programmazione e Laboratorio di Programmazione – Luca Tesei1 La Programmazione Cosè la programmazione? Concetti preliminari.
29/11/2004Laboratorio di Programmazione - Luca Tesei1 Ancora sulla progettazione/Pacchetti Concetti di coesione/accoppiamento/coerenza Uso dei package.
26/11/2004Laboratorio di Programmazione - Luca Tesei1 Input/Output Redirecting, scomposizione dellinput, uso di file.
2/11/2004Laboratorio di Programmazione - Luca Tesei1 Punto della situazione Da dove veniamo, dove andiamo.
Anno accademico Il preprocessore del linguaggio C.
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Programmazione Procedurale in Linguaggio C++
9/12/2004Laboratorio di Programmazione - Luca Tesei1 Ereditarietà
Caratteri e stringhe di caratteri
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Introduzione a JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Introduzione agli stream e alle classi
Primi programmi in Java
Espressioni condizionali
Java base I: Sintassi e tipi di dati
Argomenti della lezione
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
Corso di PHP.
Introduzione a:. Nella prima parte di questo corso si vedranno i CONCETTI di: CLASSE (programma) METODO (Algoritmi e dati) CONCETTI CLASSICI DI PROGRAMMAZIONE.
Programmazione in Java
Java Contardi Carlo A.S. 2008/09.
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
11/11/2004Laboratorio di Programmazione - Luca Tesei1 Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di.
Java come linguaggio di programmazione
Di Luca Santucci 5° Programmatori
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Gena - Applicata - 05/061 Java: javac e java Per compilare una classe: > javac NomeClasse.java  NomeClasse.class javac = invocazione.
Le variabili in Java Nella programmazione tradizionale, una variabile è una porzione di memoria in cui è immagazzinato un certo tipo di dato. Per esempio.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Un ambiente di sviluppo User Friendly per Java
Lezione 3 Struttura lessicale del linguaggio
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
1 Java primo contatto Quando le classi fanno la differenza …
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
12/08/02Introduzione 1 Introduzione a Java La programmazione Il linguaggio Java Primi programmi.
Transcript della presentazione:

22/10/2004Programmazione e Laboratorio di Programmazione – Luca Tesei1 Laboratorio – Primo Impatto Scrivere un semplice programma I primi concetti

22/10/2004Laboratorio di Programmazione – Luca Tesei2 Cosa fare prima di iniziare Effettuare il login scegliendo il sistema operativo preferito Localizzare la directory (cartella) in cui la J2SE SDK è installata Localizzare leditor con cui si vogliono editare i programmi (consigliato: Ginipad, ma in teoria va bene un qualsiasi editor per file di testo) Aprire leditor per cominciare a scrivere il primo programma Java

22/10/2004Laboratorio di Programmazione – Luca Tesei3 Leditor Se si è scelto di usare Ginipad o altri editor evoluti e specializzati per Java (emacs, Jedit, lambiente JavaBeans, bluej,...) le operazioni di compilazione, correzione ed esecuzione dei programmi sono facilitate I programmi possono essere formattati automaticamente Le parole chiave e le componenti sintattiche sono evidenziate con colori diversi Familiarizzare bene con leditor e personalizzarlo (si legga lhelp in linea)

22/10/2004Laboratorio di Programmazione – Luca Tesei4 Hello World public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println(Hello, World!); } Salvare Compilare (tasto compile su Ginipad) Eseguire (tasto run su Ginipad)

22/10/2004Laboratorio di Programmazione – Luca Tesei5 Compilazione da riga di comando Alternativamente si può compilare e mandare in esecuzione un programma da una finestra di console/shell Da Windows: prompt dei comandi (o prompt di MSDOS) Da Linux: finestra di shell (bash, csh, tcsh,...) La variabile di ambiente PATH deve contenere il path alla cartella di installazione della SDK, sottocartella bin (es. PATH =......C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin...)

22/10/2004Laboratorio di Programmazione – Luca Tesei6 Compilazione da riga di comando C:\Java> javac Hello.java C:\Java> Il compilatore è rimasto silenzioso e quindi la compilazione è andata a buon fine. Nella stessa directory del file sorgente (.java) apparirà il file compilato (.class) Il file compilato ha sempre lo stesso nome del sorgente, ma con estensione diversa (es. Hello.class) Il comando javac fa partire il compilatore Java sui file.java indicati di seguito nella linea di comando (in questo caso solo uno)

22/10/2004Laboratorio di Programmazione – Luca Tesei7 Avvio della Java Virtual Machine C:\Java> java Hello Hello, World! C:\Java> Il comando java inizializza la JVM ed esegue il file bytecode Hello.class (non occorre specificare.class) Il programma stampa la riga Hello, World! ed esce

22/10/2004Laboratorio di Programmazione – Luca Tesei8 Guardiamo il programma public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println(Hello, World!); } Ogni file sorgente può contentere al massimo una classe pubblica e si deve chiamare con lo stesso nome (in questo caso Hello.java) Definisce una classe pubblica di nome Hello

22/10/2004Laboratorio di Programmazione – Luca Tesei9 Nomi e lettere maiuscole/minuscole I nomi di classe, per convenzione: –Devono sempre iniziare con lettera maiuscola –Non devono contenere spazi –Se contengono più parole, la nuova parola comincia con lettera maiuscola. Es: HelloWorld, InsiemeDiCaratteri, ContoPersonalizzato Java è case sensitive: le lettere maiuscole e minuscole sono considerati differenti: Helloworld HelloWorld

22/10/2004Laboratorio di Programmazione – Luca Tesei10 Ancora convenzioni Le parole riservate Java ( class, public, static, int,...) sono in lettere minuscole I nomi di altre entità diverse dalle classi (variabili, nomi di metodi, campi) devono iniziare per lettera minuscola Se sono formati da più parole, queste devono essere attaccate come per le classi Esempi: x, int, println, indiceDiAscolto, sommaDaRiportare,...

22/10/2004Laboratorio di Programmazione – Luca Tesei11 Indentazione public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println(Hello, World!); } Spazi bianchi sono lo spazio, il tab, il newline n spazi bianchi equivalgono a uno Le parole chiave e gli identificatori sono separati da spazi bianchi

22/10/2004Laboratorio di Programmazione – Luca Tesei12 Indentazione Il compilatore non bada alla formattazione del testo del programma Il programmatore invece viene facilitato nella lettura/scrittura/modifica se il testo evidenzia la struttura logica del programma E importante fissare e seguire delle regole di indentazione (leditor le suggerisce) Comunque il compilatore compila anche questo:

22/10/2004Laboratorio di Programmazione – Luca Tesei13 Come NON va indentato un programma public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra // di console System.out.println (Hello, World!);} }

22/10/2004Laboratorio di Programmazione – Luca Tesei14 class?? Un programma Java è, in generale, la definizione di un insieme di classi Una classe si dichiara con la parola riservata class seguita dal nome della classe e da un blocco (tutto ciò che appare tra due parentesi graffe) Opzionalmente, prima della parola class è possibile inserire la parola public che indica che la classe è utilizzabile dal pubblico (chiariremo in seguito)

22/10/2004Laboratorio di Programmazione – Luca Tesei15 Classi Una classe è, idealmente, la collezione di tutti i possibili oggetti che hanno la forma da lei definita Una classe è la definizione di un tipo a cui tutti gli oggetti della classe sono uniformati Una classe è una mera definizione I programmi utilizzano questa definizione per creare e usare oggetti di quella classe Ogni oggetto della classe è diverso dagli altri oggetti della stessa classe, ma tutti hanno la stessa struttura

22/10/2004Laboratorio di Programmazione – Luca Tesei16 Definizione di una classe public class NomeClasse {.... } Allinterno del blocco possono essere definiti –Variabili istanza (dette anche campi) –Metodi

22/10/2004Laboratorio di Programmazione – Luca Tesei17 Metodi public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println(Hello, World!); } Definisce un metodo di nome main Corpo del metodo: un altro blocco In questa particolare classe non ci sono variabili istanza.

22/10/2004Laboratorio di Programmazione – Luca Tesei18 Il metodo speciale main Ogni applicazione Java deve contenere almeno una classe pubblica con un metodo: –Pubblico (parola chiave public ) –Statico (parola chiave static ) –Di nome main –Che ha come parametro un array di stringhe: (String[] args) (il nome args del parametro non importa, può essere un nome qualsiasi, limportante è il tipo array di stringhe)

22/10/2004Laboratorio di Programmazione – Luca Tesei19 Metodi Un metodo contiene al suo interno una sequenza di istruzioni In generale i metodi operano su oggetti I metodi statici, come main, non operano su oggetti, ma si riferiscono a tutta una classe Un metodo può avere, in generale, zero o più parametri di ingresso (appaiono tra le parentesi tonde che seguono il nome) Per ogni parametro va indicato un tipo e un nome

22/10/2004Laboratorio di Programmazione – Luca Tesei20 Il metodo speciale main Nel caso di main il parametro è un array (una sequenza) di stringhe che la JVM inizializza con le parole digitate sulla riga di comando, dopo java Hello, allinvocazione del programma Il contenuto del metodo main della classe pubblica invocata dal comando java rappresenta la sequenza principale di istruzioni che il programma deve eseguire

22/10/2004Laboratorio di Programmazione – Luca Tesei21 Commenti public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println(Hello, World!); } Commento al codice: ignorato dal compilatore

22/10/2004Laboratorio di Programmazione – Luca Tesei22 Commenti I commenti nel codice sono parte integrante del programma anche se non sono considerati dal compilatore I commenti spiegano cosa fa il programma, il significato delle variabili, il comportamento dei metodi, ecc. È buonissima abitudine commentare il codice: esso risulta più leggibile da altri (e dallo stesso programmatore già qualche giorno dopo la sua scrittura)

22/10/2004Laboratorio di Programmazione – Luca Tesei23 Formato dei commenti Java Commento di una linea: // testo del commento –Il compilatore ignora // e tutti i caratteri che seguono fino alla fine della linea –È utile per i commenti corti Commento su più linee: /* testo del commento */ –Il compilatore ignora tutto ciò che è compreso tra /* e il successivo */

22/10/2004Laboratorio di Programmazione – Luca Tesei24 Invocazione di un metodo public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println(Hello, World!); } Il metodo println viene invocato passandogli la stringa Hello, World!. Stampa la stringa sullo standard output

22/10/2004Laboratorio di Programmazione – Luca Tesei25 Invocazione di un metodo Un metodo non statico deve essere sempre invocato su un certo oggetto In questo caso loggetto è out, lo stream standard di caratteri in uscita associato al programma (normalmente è la finestra di console da cui è stato lanciato il programma) Loggetto out è reperibile a partire dalla classe speciale System, inizializzata dalla JVM, contenente diversi campi statici che si riferiscono ad oggetti relativi al computer che si sta usando

22/10/2004Laboratorio di Programmazione – Luca Tesei26 Uso delloperatore. Per selezionare un campo statico da una classe: System.out = oggetto di tipo PrintStream Per selezionare un campo o per chiamare un metodo di un oggetto: System.out.println(Hello, World!); println(String s) è un metodo definito nella classe PrintStream (inclusa nei packages della SDK) che invia i caratteri della stringa s, seguiti da un newline, sullo stream rappresentato dalloggetto su cui si invoca il metodo (in questo caso loggetto System.out )

22/10/2004Laboratorio di Programmazione – Luca Tesei27 Stringhe Una stringa è una sequenza finita di caratteri racchiusa da Una stringa è un oggetto della classe String In Java il set di caratteri è Unicode (65536 caratteri dagli alfabeti di tutto il mondo) Sia gli identificatori che le stringhe possono contenere caratteri qualsiasi di Unicode

22/10/2004Laboratorio di Programmazione – Luca Tesei28 Stringhe Ciao \t Ciao \n\Unicode \\u007D\: \u007D Corrisponde a: CiaoCiao Unicode \u007D: } \t è il carattere tab, \n è il carattere a capo newline \u007D è una sequenza di escape che rappresenta il carattere Unicode } corrispondente al numero esadecimale 007D = 125 decimale \ sono i doppi apici e \\ è il backslash I primi 128 caratteri Unicode corrispondono ai caratteri ASCII a 7 bit

22/10/2004Laboratorio di Programmazione – Luca Tesei29 Parametri Il metodo println della classe PrintStream viene invocato sulloggetto System.out con un parametro di tipo String (Loggetto della classe String corrispondente a Hello, World! è implicitamente creato scrivendo la stringa fra apici nel programma) Per la stessa classe di oggetti PrintStream sono definiti metodi di nome println che accettano anche un numero intero, un numero in virgola mobile, un carattere singolo, un intero oggetto! System.out.println(3+5); // Stampa 8

22/10/2004Laboratorio di Programmazione – Luca Tesei30 Errori di compilazione Proviamo a modificare il codice di Hello.java inserendo qualche imprecisione sintattica: public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra di // console System.ouch.println(Hello, World!); }

22/10/2004Laboratorio di Programmazione – Luca Tesei31 Errori di compilazione C:\Java> javac Hello.java Hello.java:4: cannot resolve symbol symbol: variable ouch location: class java.lang.System System.ouch.println(Hello, World!); ^ 1 error C:\Java> Il compilatore indica la riga (4) e il punto (^) in cui ha trovato errore e un breve messaggio sulla natura dello stesso

22/10/2004Laboratorio di Programmazione – Luca Tesei32 Errori di Compilazione Gli editor evoluti danno la possibilità di andare, cliccando sullerrore, direttamente alla linea di codice incriminata Gli editor evoluti si accorgono degli errori di sintassi anche durante la scrittura del programma I colori delle diverse componenti sintattiche sono dei validi aiuti per prevenire gli errori durante la scrittura

22/10/2004Laboratorio di Programmazione – Luca Tesei33 Errori di compilazione public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println(Hello, World!); }

22/10/2004Laboratorio di Programmazione – Luca Tesei34 Errori di compilazione C:\Java> javac Hello.java Hello.java:4: unclosed string literal System.out.println(Hello, World!); ^ Hello.java:5: ) expected } ^ 2 errors C:\Java> Il compilatore ha trovato due errori derivanti entrambi dallomissione del di chiusura e li segnala entrambi (dopo il primo errore trovato tenta di continuare ad interpretare il codice che segue)

22/10/2004Laboratorio di Programmazione – Luca Tesei35 Errori a runtime public class Hello { public static void Main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println(Hello, World!); }

22/10/2004Laboratorio di Programmazione – Luca Tesei36 Errori a runtime C:\Java> javac Hello.java C:\Java> java Hello Exception in thread main java.lang.NoSuchMethodError: main C:\Java> Il compilatore non dà nessun errore Durante lesecuzione della JVM non viene trovato il metodo main della classe e quindi viene sollevata uneccezione (un meccanismo per la gestione degli errori) che fa terminare il programma

22/10/2004Laboratorio di Programmazione – Luca Tesei37 Errori logici public class Hello { public static void main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println(Hell, World!); }

22/10/2004Laboratorio di Programmazione – Luca Tesei38 Errori logici C:\Java> javac Hello.java C:\Java> Il compilatore non ha trovato nessuna imperfezione sintattica nel programma Il programma stampa la riga: Hell, World! Questo tipo di errori non è rilevabile dal compilatore Lunico, difficile, modo per trovarli (a parte che in casi semplici come questo) è quello di analizzare attentamente il programma magari con laiuto di un debugger

22/10/2004Laboratorio di Programmazione – Luca Tesei39 Esercizi Scrivere un programma che stampi il proprio nome in un rettangolo disegnato coi caratteri ASCII tipo | Luca |

22/10/2004Laboratorio di Programmazione – Luca Tesei40 Esercizi Scrivere un programma che stampi la scala | | | | | | | | |

22/10/2004Laboratorio di Programmazione – Luca Tesei41 Esercizi Scrivere un programma che stampi tutti i caratteri Unicode dal 120 al 130 (decimali) Scrivere un programma che stampi la somma dei primi 10 numeri naturali Scrivere un programma che stampi il primo (args[0]) dei suoi argomenti della linea di comando. Mandarlo in esecuzione con zero, uno, due argomenti sulla linea di comando Scrivere un programma che generi un congruo numero di errori di compilazione a causa di un limitato numero di errori di digitazione