Scritto da phoby ultima modifica : 25 Maggio 2006

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Scritto da phoby www.erroredigitale.tk ultima modifica : 25 Maggio 2006"

Transcript

1 Scritto da phoby ultima modifica : 25 Maggio 2006 Visitate [under costruction] per altro materiale relativo a programmazione, linux, hacking, security, etc... Il corso e' a puntate e trattera' in maniera completa il linguaggio java... enjoy ;) prima puntata premessa: in questa prima puntata cerchero' di dare una breve panoramica, che verra' ripresa passo a passo (partendo dalle variabili per intenderci!). Non tutto [quasi nulla] vi sara' chiaro in questa introduzione ma non ha importanza. INTRODUZIONE : Prima di tutto cerchiamo di capire cos'e' la programmazione orientata agli oggetti, ma prima ancora cos'e' la programmazione. Premetto che quello di cui parlero' e' alquanto vasto, sara' semplice perdere il filo del discorso ma cerchero' di essere il piu preciso possibile...e si va! Un linguaggio di programmazione che cos'è? Un linguaggio! Come l'italiano e l'inglese, non ha differenza. La sola differenza e che e' una macchina a doverlo capire, quindi il linguaggio deve essere privo di ogni possibile ambiguita'. Un linguaggio di programmazione ha la sua semantica e la sua sintassi; la sintassi equivale alla grammatica nei linguaggi "umani", la semantica al suo significato. Il linguaggio di programmazione piu' vicino alla macchina e' l'assembly (n.b. che non ho scritto assembler). Una istruzione assembly viene tradotta immediatamente in codice macchina (0 e 1 per capirci, insomma in logica digitale) da un software chiamato assembler. La potenza di questo linguaggio e' indiscussa,ma i tempi di stesura di codice sono imbarazzanti: sono stati cosi' creati linguaggi di programmazione di piu' "alto livello", dove il linguaggio e' stato avvicinato al modo di ragionare umano, ma il risultato e' identico, poiche' ogni istruzione di alto livello (ad esempio di linguaggio c) viene tradotta in linguaggio assembly prima di essere creato un eseguibile dell'applicazione. Questi linguaggi di programmazione che stanno sopra l'assembly sono solitamente i linguaggi

2 procedurali (che poi vedremo). Un sorgente scritto in c, che e' di tipo procedurale, viene quindi tradotto da un "compilatore". Quindi non tutti i compilatori sono uguali, in quanto ognuno traduce in maniera differente il codice di alto livello: tutti daranno lo stesso risultato ma prestazioni differenti. quindi per ora possiamo immaginate tale modello di astrazione linguaggi procedurali assembly hardware I linguaggi procedurali sono ad esempio c e pascal. Un programma nasce dall'esigenza di risolvere un problema, avendo un approccio di tipo procedurale, questo problema viene suddiviso in problemi piu' piccoli, dove ognuno di questi problemi viene risolto da una procedura. Ora aggiungiamo il livello di astrazione al nostro modello object oriented linguaggi procedurali assembly hardware Come si nota dal disegno il nuovo livello di astrazione si allontana dall'hard-ware, ma si avvicina sempre di piu' al modo di ragionare umano. I linguaggi di programmazione oo (object oriented -> orientati agli oggetti) cercano di riprodurre la realta' tramite

3 oggetti. Immaginiamo di voler rappresentare eclip in codice java [eclip è un mio amico alquanto suonato ;) ]. public class Persona { \*attributi*\ int altezza; String coloreocchi; \*metodi*\ salta() { System.out.println ("sto saltando"); In questa maniera ho descritto le caratteristiche di una generica persona, questa descrizione viene chiamata classe. Posso quindi creare un oggetto di nome eclip che ha queste caratteristiche cosi': Persona Eclip = new Persona() non provatelo che il codice non funzionera' e in seguito capirete il perche'. Immagino che dal codice abbiate capito poco o niente, ma e' giusto cosi', dovete piu' che altro catturarne la struttura e la logica... Che cos'e' una classe? codice che descrive degli oggetti. Una classe si divide in metodi e attributi. Gli attributi sono i dati che avra' l'oggetto creato da quella classe, i metodi sono le "azioni" che l'oggetto creato da quella classe puo' fare. Creiamo un eclip che funziona e capiamolo passo passo (eheheh): public class Persona { \\ attributi String nome; int altezza; \\questo metodo viene eseguito quando viene eseguita la classe persona public static void main (String args[]){ \\creiamo l'oggetto eclip che avra' le caratteristiche della classe persone (metodi e attributi) Persona eclip = new Persona(); //poi vedremo in dettaglio che vuol dire

4 \\questo metodo viene eseguito quando viene istanziato un oggetto della classe persona e viene chiamato costruttore public Persona() { name = " eclip"; altezza = 180; ve lo trascrivo senza commenti public class Persona { String nome; int altezza; public static void main (String args[]){ Persona eclip = new Persona(); public Persona() { name = " eclip"; altezza = 180; Cosa ne facciamo di questo codice? Non fa parte dell'introduzione. Su questo ci soffermeremo a lungo, ma prima abbiamo bisogno delle conoscenze base. Passiamo alla pratica installando tutto il necessario per eseguire codice java. E se non avete capito una mazza non preoccupatevi...e' del tutto normale, capirete più avanti! seconda puntata INSTALLAZIONE DELL'OCCORRENTE: Prima di tutto installiamo la virtual machine,poi vedremo a che serve.qui verso la fine e' spiegato bene df vi dira' un link per un download non funzionante voi usate questo e scegliete quello per la vostra architettura. Se sul materiale che vi ho linkato non vi sembra spiegata bene la procedura di installazione installazione, potete cercare materiale da google...e ne troverete aiosa.

5 Nella slyde e spiegata l'installazione per windows. Per linux cercate sulla documentazione della vostra distro ( per ubuntu ) Una volta installato avrete a disposizione due nuovi comandi che ci interessano. java javac noi scriveremo i sorgenti in un file con estensione java,ad esempio Spiderz.java, lo compiliamo cosi': javac Spiderz.java ed otteniamo un file Spiderz.class; scriviamo : java Spiderz e il nostro programma viene eseguito. usate questo sorgente per provare: public class Spiderz { public static void main (String args[]){ System.out.println ("welkome to spiderz forum "); >>>>>>>>>NOTA BENE : IL FILE.JAVA DEVE AVERE LO STESSO NOME DELLA CLASSE PUBBLICA, IN QUESTO CASO IL NOME DEL FILE SARA' Spiderz.java e occhio alle maiuscole e minuscole! <<<<<< Che cosa fa lo scoprimremo piu' avanti, per il momento scriveremo i nostri programmi solamente nel main ovvero public class Spiderz { public static void main (String args[]){ //qui metterete il vostro codice tutto quello che imparerete + o - vale anche per c, per questo ho preferito fare un mini tutorial su java. La vera potenza del linguaggio java sta nel poter essere eseguito su tutte le piattaforme, senza alcuna modifica di codice. Questo e' dovuto alla virtual machine, un software che emula una macchina, macchina che si occupa di interpretare il bytecode.

6 Il bytecode e' il risultato di una compilazione di un sorgente java[ il.class]. La virtual machine deve essere installata per poter eseguire un programma java (piu' precisamente il bytecode). immaginate questo: Test.java --> compilatore---> Test.class -->virtual machine-->nostro computer quindi io scrivo il mio programma in un file.java, lo compilo ed ottengo il.class, faccio eseguire alla virtual machine il.class ed ecco la mia apllicazione. Esistera' una virtual machine e un compilatore per ogni architettura cosi' gli stessi programmi possono essere eseguiti su differenti architetture, se fornite di virtual machine. Detto questo sappiamo quanto basta per iniziare a programmare, ad eccezzione di un buon editor che ci facilita' la stesura di un programma. Per chi usa windows consiglio jcreator (freeware), per i linuxiani gedit o kwrite vanno già benissimo! Quando sarete piu' esperti un ottimo IDE [ambiente di sviluppo integrato] e' sicuramente eclipse. terza puntata In realta' noi non useremo le potenzialita' di java per un po' perche' abbiamo bisogno prima di alcune nozioni. I commenti in java si segnano con // per commentare una riga intera oppure /*commento*/. Noi come gia' detto scriveremo i programmi nel main public class NomeClasse{ public static void main (String args[]){ /*qui scriverete il vostro programma*/ il file su cui salverete il source avra' lo stesso nome della classe con il nome public: per ora non ponetevi il problema in quanto useremo solo una classe che segneremo sempre pubblica. Per eseguire l'esempio daremo: javac NomeClasse.java java NomeClasse e naturalmente il programma non fara' nulla. finito questo breve ripassino passiamo alle variabili, cosa sono e come si usano. Una variabile e' un contenitori di dati, ad esempio se voglio fare una somma, avro' bisogno di tre variabili, due che mi contengano i due operandi e uno per il risultato.

7 Esistono vari tipi di variabili a seconda del dato che devono contenere (char,numeri interi o con virgola,etc). Per dichiarare una variabile : tipo nomevariabile; dove al posto di nomevariabile metteremo un nome che renda l'idea di che uso ne faremo della variabile, e per tipo il tipo della variabile: i tipi che per ora ci interessano possono essere.. -tipo boolean puo contenere il valore true o false -tipo int per i numeri interi -tipo float per numeri con la virgola, con un solo numero dopo la virgola (singola precisione) -tipo char per i caratteri Per creare una variabile, se ad esempio voglio fare la somma tra un numero contenuto nella variabile a e un numero contenuto nella variabile b, e mettere il risulato nella variabile c: //nota che ogni istruzione e seguita da un punto e virgola //creo la variabile di tipo intero a int a; //gli assegno il valore 2 a = 2; //creo la variabile b int b; //gli assegno il valore 5 b = 5; //creo la variabile c int c; //assegno alla variabile c il risultato di a + b c = a + b; lo trascrivo senza commenti int a; a = 2; int b; b = 5; int c; c = a + b; quindi abbiamo fatto per ogni variabile una dichiarazione ed un assegnamento, in due istruzioni ma potevamo farlo in un unica istruzione cosi':

8 //creo e inizializzo con il valore 2 la variabile a int a = 2; int b = 5; int c = a + b; mettiamo tutto nel codice che vi ho dato prima per darlo in pasto al compilatore e ne uscira' questo codice: public class NomeClasse{ public static void main (String args[]){ /*qui scriverete il vostro programma*/ //creo e inizializzo con il valore 2 la variabile a int a = 2; int b= 5; int c = a + b; copiatelo e incollatelo in un file di nome "NomeClasse.java" ed eseguitelo.poi compilatelo: javac NomeClasse.java ed eseguitelo: java NomeClasse a questo punto il programma non fa nulla. Ovvero fa le somme che vi ha detto ma nessuno gli ha detto di stamparlo a monitor. Per stampate a monitor bisogna usare questa istruzione (per ora prendetela cosi') che e' System.out.println(/*qui mettete la variabile da visualizzare*/); quindi applichiamo una modifichina al source : public class NomeClasse{ public static void main (String args[]){ int a = 2; int b=5 int c = a +b; //stampo a monitor il contenuto della variabile c System.out.println(c); eseguite ed otterrete come output il numero 7 [c = a+b = =7] possiamo anche fare una cosa del genere: public class NomeClasse{ public static void main (String args[]){ int a = 2;

9 int b = 5; //stampo a monitor il risultato di a + b System.out.println(a+b); Passiamo ai char... i char vengono assegnati cosi': char c; c = 'a'; ovvero il carattere da assegnare si mette tra apici. per stamparla a monitor: System.out.println(c); e verra' visualizzato il carattere a. Il carattere = viene detto operatore di assegnamento e differisce da scrivere == che viene usato per controllare una condizione, non per "assegnare"; Gia' che parliamo di condizioni facciamo le if. ad esempio voglio stampare a monitor la variabile c solo se e' maggiore di 0, utilizzo la parola chiave if: ecco qui il codice da mettere all'interno del metodo main: int c = 5; if (c>0) System.out.println(c); nella seconda riga viene verificata se e' vera la condizione tra parentesi, se lo e' si passa all' istruzione in terza riga, altrimenti si passa direttamente alla quarta riga se c'e'. quindi se avessi scritto cosi' int c = -2; if (c>0) System.out.println(c); System.out.println(c); avrebbe fato comunque la stessa perche non essendo vera la condizione tra parentesi sarebbe passata alla quarta riga che cmq fa la stessa cosa della terza. L'if permette di eseguire piu' di un istruzione se la sua condizione e' verificata, o di saltarle se non e' verificata, raggruppando le istruzioni tra parentesi graffe, ovvero cosi'; if(/*condizione*/) {

10 /*istruzione1*/; /*istruzione2*/; /*istruzione3*/; spero che le cose siano chiare, non sono difficili ma un po' meno semplici da spiegare, soprattuto con java che bisogna partire con numerosi "e' cosi' poi capirai perche'!". Per eventuali errori o consigli, contattatemi.. ;) quarta puntata FACCIAMO UNA CALCOLATRICE CHE FACCIA SOLO SOMMA O DIFFERENZA: Prima di tutto acquisiremo i due operandi, e poi chiederemo all'utente che tipo di operazione fare, digitando s per la somma e d per la differenza. Per ora useremo la classe SavitchIn (se non avete il concetto di classe per ora pensatela come una libreria) per acquisire dati da tastiera. Per poter utilizzare questa libreria bisogna compilare il sorgente SavitchIn.java[che e' presente nei download di e mettere il file SavitchIn.class nella dir del programma che stiamo creando. Noi useremo queste "istruzioni" (che in realta' sono le "funzioni" nel c e i "metodi" in java, comunque vedremo dopo, per ora e' un argomento troppo avanzato). SavitchIn.readInt() SavitchIn.readNonwhiteChar() La prima serve per acquisire interi, e restituisce un intero che noi assegneremo ad una variabile: esempio: int a = SavitchIn.readInt(); cosi' il sistema attende che l'utente immetta un numero per poi assegnarlo alla variabile a. Il medesimo funzionamento lo ha il secondo metodo della classe SavitchIn, solo che preleva un carattere. Si potrebbe iniziare a fare un osservazione (piccola piccola) di come abbiamo avuto accesso a

11 quelle "istruzioni" (che in realta' sono metodi). Abbiamo scritto il nome della classe, un punto, e poi il nome del metodo. Come vedremo ha lo stesso significato per: System.out.println(); Ora la comprensione del programma che segue dovrebbe essere semplice... //creiamo le variabili int operando1; int operando2; int risultato; char op; //acquisiamo il primo operando System.out.println("immettere primo operando"); operando1 = SavitchIn.readInt(); //il secondo System.out.println("immettere secondo operando"); operando2 = SavitchIn.readInt(); //chiediamo all'utente se fare una somma o differenza System.out.println("digitare s per la somma, d per la differenza"); op = SavitchIn.readNonwhiteChar(); //guardiamo se op vale s, se si facciamo la somma if (op=='s') /*ricordate che le char vanno tra apici*/ { risultato = operando1 + operando2; System.out.println (risultato); if (op=='d') /*ricordate che le char vanno tra apici*/ { risultato = operando1 - operando2; System.out.println (risultato); Tutta questa porkeria la mettiamo nel main e compiliamo come al solito public class test { public static void main (String args[]){ //creiamo le variabili int operando1; int operando2; int risultato;

12 char op; //acquisiamo il primo operando System.out.println("immettere primo operando"); operando1 = SavitchIn.readInt(); //il secondo System.out.println("immettere secondo operando"); operando2 = SavitchIn.readInt(); //chiediamo all'utente se fare una somma o differenza System.out.println("digitare s per la somma, d per la differenza"); op = SavitchIn.readNonwhiteChar(); //guardiamo se op vale s, se si facciamo la somma if (op=='s') /*ricordate che le char vanno tra apici*/ { risultato = operando1 + operando2; System.out.println (risultato); if (op=='d') /*ricordate che le char vanno tra apici*/ { risultato = operando1 - operando2; System.out.println (risultato); Osservazioni: Nel file SavitchIn.java potete notare che ogni metodo e' ben documentato nel sorgente. Noi abbiamo utilizzato solo due metodi, e ne useremo pochi altri in seguito. Vedremo in seguito che si poteva acquisire un input da tastiera in altri modi, senza ricorrere a librerie esterne. quinta puntata I booleani Vediamo piu' in dettaglio quali sono le "cose" che si possone inserire tra le parentesi dell'if. Possiamo inserire qualsiasi "cosa" che restituisca un boolean, ovvero "true" o "false". Se mi chiedo se "a>b" sara' true o false. potrei scrivere : booelan c = true; int a = 2;

13 int b = 1; c = a < b; System.out.println(c); e verra' stampato a monitor false, in quanto c varra' false, in quanto a non e' minore di b. Esistono degli operatori per legare piu' operazioni logiche, e sono & operatore and operatore or se suppongo a,b,c variabili booleane e scrivo: c = a & b c varra' true solo se, sia a che b, sono true(detto and logico). c = a b c varra' true se,a oppure b e' true. Naturalmente si possono legare tra di loro e l'operatore and ha la priorita'. Se io scrivo: if (true){ istruzion1; l'istruzione1 verra eseguita sempre. supponiamo che io voglia stampare un numero se compreso tra 3 a 10 questo sara' il blocco rispettivo all if if ((numero >=3) & (numero <=10)) { System.out.println(numero); Il maggiore e' uno degli operatori relazionali disponibili. Vi e' anche == (uguale) e!= (diverso). Per una lista completa cercate su google. sesta puntata Il costrutto while e simile all'if, la differenza (notevole) e che il suo corpo (le istruzioni tra le graffe)

14 viene eseguito a ciclo finche la condizione non diventa false. se scrivo while (true){ System.out.printl("phoby"); Avrete il mio nome che invade il vostro schermo, insomma un ciclo infinito. Quindi e' scontato che nel corpo del while devono esserci istruzioni che vadano a modificare la condizione tra parentesi. Se scrivo int a = 0 while (a<2){ System.out.printl(a); a =a + 1; System.out.printl("sei uscito dal while"); Viene creata la variabile a e viene inizializzata a 0. Siccome a e' minore di 2 viene eseguito il corpo tra le graffe. finito un ciclo viene rieseguito il controllo della condizione. Il ciclo si ripete finche' la condizione non diventa' false. Quindi l'output del codice di sopra sara': 0 1 sei uscito dal while ex claro? come direbbe bakunin... settima puntata Il for e' un potenziamento del while, ma fanno la stessa e identica cosa.

15 facciamo un esempio con while int a = 0 while (a <3){ System.out.println(a); a = a + 1; tradotto in un for for (int a = 0;a <3;a = a + 1){ System.out.println(a); quindi il for continua ad eseguire il suo corpo (il contenuto tra le graffe) fino a ke la condizione espressa nel secondo campo [tra le tonde] ritorna true. L'istruzione che serve a cambiare tale condizione per uscire dal ciclo viene messa nel terzo campo [viene eseguita alla fine di ogni ciclo]. Nel primo campo viene inzializzata la variabile che fara' da "contatore". Attenzione che alla chiusura del for tutte le variabili dichiarate al suo interno verranno perse. Quindi utilizzando il while la variabile a non verra persa in quanto e' dichiarata al suo esterno. Se voglio mantenere la variabile a anche uscito dal for: int a; for (a = 0;a <3;a = a + 1){ System.out.println(a); Nel primo campo posso anche fare piu' assegnamenti, anche piu' di una dichiarazione di variabile ma dello stesso tipo. Nel secondo campo posso mettere qualsiasi espressione booleana (posso legare quindi piu' condizioni con & oppure ). Nel terzo campo posso rifilare quante operazioni voglio. Questo esempio dovrebbe rendere l'idea, se io scrivo for (int i = 0; i <10; System.out.println(i), i = i +1){ questo for sembra vuoto, ma siccome le istruzioni del terzo campo sono sempre eseguite se si entra nel ciclo, quel for equivale a questo for (int i = 0; i <10;i = i +1){ System.out.println(i);

16 che equivale anche a questo: for (int i = 0; i <10;;){ System.out.println(i); i = i +1; che equivale a questo while: int i = 0; while (i <10){ System.out.println(i); i = i +1; Un po' di esempi per vedere se avete capito for(int a = 0; a < 2;;){ System.out.println(a); Questo e' un ciclo infinito in quanto nessuna istruzione modifica a...quindi la condizione sara' sempre vera for(int a = 0; a > 2; a++;){ System.out.println(a); Questo ciclo non verra' mai eseguito in quanto la condizione di ingresso non sarà mai vera... [a++ equivale a fare a = a + 1] for(int a = 0; a < 2; a++;){ System.out.println(a); System.out.println(a); Questo codice non compila in quanto la variabile a viene distrutta all'uscita dal for e non esiste quindi per l'istruzione di stampa. il codice per compilarlo va corretto così int a; for(a=0; a < 2;;){ System.out.println(a); Se non avete capito, non proseguite in quanto questi concetti sono fondamentali, in tal caso puo'

17 'essere che io mi sia spiegato male, quindi vi consiglio di consultare altre guide prima di proseguire. ;) ottava puntata E da molto che non continuo la guida, e ho impiegato mezz'oretta a correggere le boiate che ho scritto, che per fortuna mi sono state segnalate, ora dovrebbe essere tutto giusto...mi scuso...mi inkino a voi...skusate!! ;) Torniamo seri...[certo 8) ] Fino a questo punto abbiamo utilizzato solo il main, che e' un metodo che deve essere presente nella classe che viene eseguita per prima (noi per ora ne abbiamo usata max una). Per ora utilizzeremo java in maniera erronea, ovvero come se fosse un linguaggio procedurale, ma e' l'unica maniera per poter proseguire nell'apprendimento. Proviamo a creare noi un nostro metodo, il metodo somma, io butto giu' il codice poi lo vediamo passo passo. public class Lalala { public static void main (String args[]){ int operando1,operando2,risultato; operando1 = 1; operando2 = 3; risultato = Lalala.somma(operando1,operando2); System.out.println(risultato); public static int somma(int a,int b){ int c = a + b ; return c; in questa parte di codice viene creato questo metodo. public static int somma(int a,int b){ int c = a + b ; return c; e in questa parte lo abbiamo usato risultato = Lalala.somma(operando1,operando2);

18 Partiamo dalla creazione ed e' importante studiare la prima riga: public static int somma(int a,int b) le prime due parole per ora le prendete cosi' e le metterete sempre, quindi passiamo ad analizzare le successive int somma(int a,int b) tra le parentesi viene descritto dove andranno a finire (in che variabili e di che tipo) i valori che io passo all'interno del mio metodo. La prima parola indica di che tipo e' il valore ritornato dal metodo. (essendo il risultato della somma tra interi e' un int); quando scrivo somma(3,2) dove somma e il nome del metodo, assegno alla variabile a il valore 3 ed alla b il valore 2. Nel corpo del metodo viene svolta la somma e la parola return indica cosa deve ritornare il metodo, che come si legge dal codice ritorna la variabile c. risultato = Lalala.somma(operando1,operando2); Come si legge da questa riga il valore ritornato della funzione viene assegnato alla variabile "risultato". Per accedere al metodo ho usato la notazione col punto, ma essendo il metodo interno alla classe in cui lo uso, potevo scrivere solamente risultato = somma(operando1,operando2); senza specificare la classe in cui si trova il metodo. Creiamo un metodo che...che...non ho idee...facciamo che esegua istruzioni a muzzo tipo un po' di print. public static void nonfaccionulladisensato (){ System.out.println("il fumo uccide? si ma non sempre, l'ignoranza uccide continuamente!"); Come notate le parentesi sono vuote in quanto non necessita di parametri in input e il tipo di ritorno e' void, ovvero non torna nulla. Per usarlo scrivete nel vostro main nonfacciofaccionulladisensato(); e verra' eseguita la print.

19 All'interno di un metodo possono essere richiamati anche altri metodi. quindi per ora (lo faremo meglio nelle prox lezioni) stiamo usando java in maniera procedurale. Prima di utilizzarlo seriamente dobbiamo prendere grossa dimestichezza con i metodi e dobbiamo ancora vedere le stringhe...[ke noia!!...diventa molto più interessante arrivati alle socket!] Prima di chiudere la puntata facciamo una calcolatrice che fa somma e differenza (uguale a quella scorsa) solo che utilizza metodi fatti da noi: public class test { public static void main (String args[]){ //creiamo le variabili int operando1; int operando2; int risultato; char op; //acquisiamo il primo operando System.out.println("immettere primo operando"); operando1 = SavitchIn.readInt(); //acquisiamo il secondo operando System.out.println("immettere secondo operando"); operando2 = SavitchIn.readInt(); //chiediamo all'utente se fare una somma o differenza System.out.println("digitare s per la somma, d per la differenza"); op = SavitchIn.readNonwhiteChar(); //guardiamo se op vale s, se si facciamo la somma if (op=='s') /*ricordate che le char vanno tra apici*/ { risultato = somma(operando1,operando2); System.out.println (risultato); if (op=='d') /*ricordate che le char vanno tra apici*/ { risultato = diff(operando1,operando2); System.out.println (risultato); public static int somma(int a, int b){ int c = a + b; return c; public static int diff(int a, int b){ int c = a - b;

20 return c; Questa la lascio analizare a voi...se non la capite, non avete capito granche', quindi tornerei indietro, o cercherei su altre guide... Per info date un occhio all'home page del mio sito [www.erroredigitale.tk]. nona puntata Ora un altro argomento estremamente importante...le stringhe! Una stringa e' un tipo di dato che permette di contenere una sequenza di caratteri. Per ora alcune cose non ve le diro', ma verranno dette quando useremo gli oggetti. Se volessi salvare il mio nome in un char...non potrei in quanto contiene solo un carattere, potrei usare un array di char, ma noi gli array non gli abbiamo trattati, e cmq sono scomodi, ma bensi usiamo le stringhe, così: String mionome = "phoby"; System.out.println(mionome); verra' stampato a monitor il mio nome quindi la creazione di una stringa ha la seguente sintassi: String nomevariabile = "testo";... ATTENZIONE String va' scritto con la S maiuscola se no non va!!... Ogni carattere inserito nella stringa ha una sua posizione Le posizioni partono da 0 fino alla fine della stringa...dall'esempio [String nomevariabile = "testo";]così: caratteri t e s t o posizioni quindi possiamo vedere la stringa come una sequenza di char, e accedere ad una singola posizione tramite il metodo charat()...così [upponiamo mi interessi la lettera in posizione 3 che e' un char con valore 't']: String prova = "testo"; char lettera = prova.charat(3); Per ottenere la lunghezza di una stringa (che equivale all'ultima posizione +1), si puo' usare il metodo length()..così: int lunghezza = prova.length();

21 Per stampare, una lettera alla volta di una stringa, andando a capo dopo ogni lettera, questo e' il codice... String prova = "peppino" for(int i = 0; i < prova.length(); i++){ System.out.println(prova.charAt(i)); l'output sara' p e p p i n o SPEZZIAMO LE STRINGHE Supponiamo questa stringa String test = "ciao ok" carattere c i a o o k posizione Mettiamo caso che mi interessino le posizioni dalla 3 alla fine della stringa uso questo metodo String ciao =""; ciao = test.substring(3); System.out.println(ciao); E verra' stampato a monitor: o ok Se io volessi una stringa da 2 a 3 farei così: ciao = test.substring(2,1); dove il primo parametro indica dove iniziare il taglio[posizione 2], e il secondo di quanto avanzare per chiudere il taglio [1]. Per confrontare una stringa con un altra stringa [per vedere se sono uguali] si usa il metodo equals che ritorna un boolean, true nel caso siano uguali...esempio: String stringa1 = "prova"; String stringa2 = "prova";

22 boolean a = stringa1.equals(stringa2); if(a){ System.out.println("sono uguali"); potevo anche scriverlo così: if(stringa1.equals(stringa2)){ System.out.println("sono uguali"); oppure così if(stringa2.equals(stringa1)){ System.out.println("sono uguali"); perfezionamo il programma così if(stringa1.equals(stringa2)){ System.out.println("sono uguali"); else{ System.out.println("sono diverse"); L'else serve a far eseguire le istruzioni in esso contenute nel caso in cui l'istruzione if che lo precede non sia stato eseguito, quindi leggendo il codice in maniera naturale: SE STRINGA1 E' UGUALE A STRINGA2, STAMPA A MONITOR "SONO UGUALI" ALTRIMENTI STAMPA A MONITOR "SONO DIVERSE" Possiamo anche usare l'operatore "!" che inverte la condizione booleana, ovvero se scrivo boolean a = false; boolean b =!a; b varra' il contrario di a, ovvero true... quindi il codice con l'else equivale a questo if(stringa1.equals(stringa2)){ System.out.println("sono uguali"); if(!(stringa1.equals(stringa2))){ System.out.println("sono diverse");

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; } Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi Informatica Fondamenti della Programmazione in Java Leonardo Vanneschi 1 1. Fondamenti Il primo programma in Java Il programma che stampa a video una sequenza di caratteri (o stringa): class Esempio {

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario.

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario. Programmazione e laboratorio: introduzione al corso Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione per

Dettagli

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

Dettagli

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Fondamenti di programmazione in Java. Lezione III

Fondamenti di programmazione in Java. Lezione III Fondamenti di programmazione in Java Lezione III Scopo della lezione Descrivere gli strumenti che utilizzeremo nel resto del corso per sviluppare programmi in java UltraEdit Java SDK Imparare a scrivere

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

INTRODUZIONE INTRODUZIONE JAVA JAVA

INTRODUZIONE INTRODUZIONE JAVA JAVA INTRODUZIONE INTRODUZIONE Lo sviluppo di applicazioni complesse porta a costruire moduli software sempre più potenti e versatili, che possano essere riutilizzati in numerosi progetti I linguaggi ad oggetti

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Da JavaScript a Java

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Da JavaScript a Java Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Da JavaScript a Java Versione 3.4.05 Per la prima lezione in aula e la prima esercitazione in laboratorio 1 Da JavaScript a Java

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Si noti che le soluzioni ai quesiti saranno considerate valide

Dettagli

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori Programmazione ad oggetti in Java Daniela Micucci Outline La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori 2 Programmazione ad oggetti in Java 1 OOP Java

Dettagli

Iprogrammi scritti in Java sono formati da Classi che

Iprogrammi scritti in Java sono formati da Classi che Capitolo 3. Pesci e Animali Domestici Le Classi di Java Translated by Francesco Orciuoli Iprogrammi scritti in Java sono formati da Classi che rappresentano gli oggetti del mondo reale. Sebbene le persone

Dettagli

PROGETTO LAUREE SCIENTIFICHE

PROGETTO LAUREE SCIENTIFICHE 1 PROGETTO LAUREE SCIENTIFICHE Write once, write everywhere è il motto dei progettisti del linguaggio java. Infatti questo linguaggio è il risultato dell esigenza di programmare per quello che si può chiamare

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Primi programmi in Java. Lezione IV

Primi programmi in Java. Lezione IV Primi programmi in Java Lezione IV Scopo della lezione Realizzare dei semplici programmi scritti in Java. Esercitarsi nelle operazioni necessarie per passare dalla scrittura di codice Java all esecuzione

Dettagli

String, Array e Main. Lezione 7

String, Array e Main. Lezione 7 String, Array e Main Lezione 7 Scopo della Lezione Presentare la classe String ed il tipo Stringa; Presentare ed imparare ad usare gli array in Java; Approfondire la conoscenza con il metodo speciale main.

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Informazioni generali Docente: Samuel Rota Bulò @email: srotabul@dais.unive.it Homepage: http://www.dais.unive.it/~srotabul/ ooprogramming2012.html

Dettagli

MANUALE IMMEDIATO DI HTML

MANUALE IMMEDIATO DI HTML MANUALE IMMEDIATO DI HTML Realizzato da NiktorTheNat Iniziato il giorno 9 aprile 2010 - terminato il giorno 22 aprile 2010 email autore: niktorthenat@tiscali.it canale youtube: http://www.youtube.com/user/niktorthenat

Dettagli

Appunti di Informatica 1. Gianluca Rossi

Appunti di Informatica 1. Gianluca Rossi Appunti di Informatica 1 Gianluca Rossi Versione maggio 2011 Indice 1 Algoritmi, macchine e linguaggi di programmazione 3 1.1 La macchina di Von Neumann........................ 5 1.2 Dal linguaggio macchina

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Cap.1 Framework dotnet e Ambiente di sviluppo

Cap.1 Framework dotnet e Ambiente di sviluppo High thoughts must have a high language. (Aristophanes) Cap.1 Framework dotnet e Ambiente di sviluppo in questo primo capitolo presentiamo l'ambiente di sviluppo che verrà utilizzato in questo corso. Si

Dettagli

Geom. Giofrè Vincenzo Pasquale Il manuale per la facoltà di ingegneria

Geom. Giofrè Vincenzo Pasquale Il manuale per la facoltà di ingegneria Geom. Giofrè Vincenzo Pasquale Il manuale per la facoltà di ingegneria Copyright 1992 2006 SystemGVP Presentazione Il linguaggio Java nasce nel 1995 dai programmatori della Sun Microsystem. La sua popolarità

Dettagli

L interfaccia a riga di comando di MySql

L interfaccia a riga di comando di MySql L interfaccia a riga di comando di MySql Una volta completata la procedura di installazione possiamo finalmente testare le funzionalità di MySQL. Sia che ci si trovi in ambiente Linux che Windows, l'interfaccia

Dettagli

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Java: Compilazione e Traduzione Editing, compilazione, esecuzione

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

INDICE PROGRAMMA CORSO

INDICE PROGRAMMA CORSO INDICE PROGRAMMA CORSO PRIMA LEZIONE: Componenti di un computer: Hardware, Software e caratteristiche delle periferiche. SECONDA LEZIONE: Elementi principali dello schermo di Windows: Desktop, Icone, Mouse,

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Novembre 2011 1 Contenuti q Somma di una sequenza di numeri interi

Dettagli

Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare

Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università della Calabria ricca@mat.unical.it Presentiamoci

Dettagli

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca) Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 itisando@tin.it

Dettagli

Scrivere un programma in Java

Scrivere un programma in Java Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

----------------------------------------------------------------

---------------------------------------------------------------- ---------------------------------------------------------------- utilizzo frequente di chiamate a.. A differenza del Pascal, il C permette di operare con assegnamenti e confronti su dati di tipo diverso,

Dettagli

Programmazione in Java Parte I: Fondamenti

Programmazione in Java Parte I: Fondamenti Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

Programmazione. Prima lezione sugli oggetti: agenda

Programmazione. Prima lezione sugli oggetti: agenda Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti (1): Principi generali ( Lezione XXV ) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università

Dettagli

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 19 Ricorsione A. Miola Marzo 2012 http://www.dia.uniroma3.it/~java/fondinf/ Ricorsione 1 Contenuti q Funzioni e domini definiti

Dettagli

Introduzione a I LINGUAGGI DI PROGRAMMAZIONE

Introduzione a I LINGUAGGI DI PROGRAMMAZIONE Introduzione a I LINGUAGGI DI PROGRAMMAZIONE a cura di Francesco Galgani www.galgani galgani.itit Avvertenza: Con la presente pubblicazione, mi limiterò a introdurre sinteticamente alcuni concetti fondamentali

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

Lezione nr. 3. >> Le basi della tecnologia PHP per scrivere applicazioni per il web.

Lezione nr. 3. >> Le basi della tecnologia PHP per scrivere applicazioni per il web. Lezione nr. 3 >> Le basi della tecnologia PHP per scrivere applicazioni per il web. Ciao, spero tu abbia installato l editor di testo preferito o quello che ti ho consigliato e che tu sia riuscito a creare

Dettagli

Linguaggio C - Funzioni

Linguaggio C - Funzioni Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche

Dettagli

Aurora Martina Angelo Raffaele Meo Clotilde Moro Mario Scovazzi. Passo dopo passo impariamo a programmare con PYTHON

Aurora Martina Angelo Raffaele Meo Clotilde Moro Mario Scovazzi. Passo dopo passo impariamo a programmare con PYTHON Aurora Martina Angelo Raffaele Meo Clotilde Moro Mario Scovazzi Passo dopo passo impariamo a programmare con PYTHON Usare Python come calcolatrice Sul tuo computer clicca su: start, programmi, Python,

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

introduzione alla programmazione in Java classi, oggetti ed altro

introduzione alla programmazione in Java classi, oggetti ed altro introduzione alla programmazione in Java classi, oggetti ed altro nomi file ed estensioni file.java: sorgenti Java creati con editor javac.exe: compilatore Java es.: per compilare il sorgente in pippo.java

Dettagli

Lezione 16: L architettura LC-3

Lezione 16: L architettura LC-3 Lezione 16: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 15 Maggio 2013 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Calcolare il massimo di una lista

Calcolare il massimo di una lista Calcolare il massimo di una lista Ieri abbiamo imparato a calcolare il massimo di una lista predefinita: lista = [4,24,-89,81,3,0,-12,31] max = lista[0] # questo e' un commento: primo elemento di lista

Dettagli

ARRAY E STRINGHE. G. Frosini Slide 1

ARRAY E STRINGHE. G. Frosini Slide 1 ARRAY E STRINGHE G. Frosini Slide 1 Array: VARIABILI ARRAY struttura dati costituita da elementi (anche nessuno, array vuoto) dello stesso tipo; tipo array: tipo degli elementi, non numero degli elementi;

Dettagli

Educazione didattica per la E-Navigation

Educazione didattica per la E-Navigation Educazione didattica per la E-Navigation Guida utente per l utilizzo della piattaforma WIKI Rev. 3.0 23 febbraio 2012 Guida EDEN rev. 3.0 P. 1 di 24 23/02/2012 Indice Come registrarsi... 3 Utilizzo della

Dettagli

PHP e MySQL. Guida scaricata da www.webstyling.it

PHP e MySQL. Guida scaricata da www.webstyling.it Home -> Manuali & Tutorials -> Guida PHP PHP e MySQL E' possibile realizzare delle applicazioni in php appoggiandosi ad un database, quale ad esempio MySQL. Con le novità introdotte ai tempi di MySQL 4.1

Dettagli

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse 1 Java 6 Standard Edition Linguaggio Java (... (javac, Tool di sviluppo Librerie per l'interfaccia grafica Librerie di base Macchina

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Corso basilare di programmazione

Corso basilare di programmazione Parte vi Corso basilare di programmazione Introduzione............................................ 947 Programma didattico.................................. 947 Strumenti per la compilazione..........................

Dettagli

Cicli, Array e Programmazione su Sequenze

Cicli, Array e Programmazione su Sequenze Cicli, Array e Programmazione su Sequenze Luca Tesei Università di Camerino luca.tesei at unicam.it Università di Camerino - Corso di Laurea in Informatica - Programmazione + Laboratorio di Programmazione

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Linguaggio Java: Linee guida per la codifica

Linguaggio Java: Linee guida per la codifica Linguaggio Java: Linee guida per la codifica (versione adattata per il corso di Fond. Inform. II) Introduzione Questa guida allo stile di codifica è una versione semplificata di un'altra che è stata usata

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

Introduzione alla programmazione in Java

Introduzione alla programmazione in Java Introduzione alla programmazione in Java 1 Programmare ad oggetti La programmazione come attività di creazione di modelli. I concetti di classe, oggetto e scambio di messaggi. Un primo esempio di programma

Dettagli

Rappresentazione delle informazioni

Rappresentazione delle informazioni Rappresentazione delle informazioni Rappresentazione delle informazioni L informatica si occupa di rappresentare ed elaborare informazioni diverse: numeri caratteri audio immagini video I caratteri: ASCII

Dettagli

DUAL BOOT WINDOWS-LINUX.

DUAL BOOT WINDOWS-LINUX. DUAL BOOT WINDOWS-LINUX. Realizzato da Jona Lelmi Nickname PyLinx Iniziato il giorno 5 Luglio 2010 - terminato il giorno 8 Luglio 2010 email autore: jona.jona@ymail.com Canale Youtube http://www.youtube.com/user/pylinx

Dettagli

Parte II: Reti di calcolatori Lezione 12

Parte II: Reti di calcolatori Lezione 12 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II: Reti di calcolatori Lezione 12 Giovedì 16-04-2015 1 Confronto architetture C/S e

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

Nozioni di base sull utilizzo di PHP e di MySQL

Nozioni di base sull utilizzo di PHP e di MySQL Nozioni di base sull utilizzo di PHP e di MySQL Che cos è PHP? Mi sento in dovere prima di iniziare ad illustrare le nozioni di base di PHP introdurre dicendo PHP che cos è in sostanza; fino a qualche

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

Costruzione di Siti Web con PHP e MySQL. Lezione 4: Operatori, Array, Controlli e Cicli

Costruzione di Siti Web con PHP e MySQL. Lezione 4: Operatori, Array, Controlli e Cicli Costruzione di Siti Web con PHP e MySQL Lezione 4: Operatori, Array, Controlli e Cicli Argomenti della lezione In questa lezione si riprenderà il concetto di Array, nel suo aspetto basilare, ed in particolare

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Java con GNU/Linux. di Giacomino Timillero

Java con GNU/Linux. di Giacomino Timillero Programmare in Java con GNU/Linux di Giacomino Timillero 1 Introduzione Questa guida è indirizzata a chi intende realizzare programmi in Java all'interno di un sistema operativo GNU/linux. Questa guida

Dettagli

Programmazione AA 2012 2013

Programmazione AA 2012 2013 Programmazione ad Oggetti AA 2012 2013 Contenuti del corso Modulo A Tecniche di programmazione Docente: Prof. Michele Bugliesi Modulo B Tecniche di progetto Docente: Prof. Alessandro Roncato Contenuti

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java APPENDICE Appendice Strumenti per lo sviluppo dei programmi Java Per imparare a programmare non è sufficiente leggere gli esempi del testo, ma è necessario scrivere ed eseguire realmente i programmi. Tutti

Dettagli