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");

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

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

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

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

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

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

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java Fondamenti di Informatica Dichiarazione, creazione e gestione di array in Java Array in Java - creazione La creazione fa una inizializzazione implicita: num = new int[10]; con valore 0 per int e double,

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

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

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

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

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo: ALGORITMI 1 a Parte di Ippolito Perlasca Algoritmo: Insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema (De Mauro) Procedimento che consente di ottenere

Dettagli

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

Un oggetto per la lettura dalla tastiera

Un oggetto per la lettura dalla tastiera Fondamenti di informatica Oggetti e Java ottobre 2012 1 Un oggetto per la lettura dalla tastiera Le API di Java hanno un oggetto System.in che rappresenta la tastiera del calcolatore, ma che non è semplice

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

IL LINGUAGGIO C++ Configurazione di Dev-C++

IL LINGUAGGIO C++ Configurazione di Dev-C++ IL LINGUAGGIO C++ Note sull'uso di DevC++ Requisiti di sistema per Dev-C++ - Sistema operativo Microsoft Windows 95, 98, Millenium Edition, NT 4, 2000 o XP - RAM: 8 Mb (consigliati almeno 32 Mb) - CPU:

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

FUNZIONI AVANZATE DI EXCEL

FUNZIONI AVANZATE DI EXCEL FUNZIONI AVANZATE DI EXCEL Inserire una funzione dalla barra dei menu Clicca sulla scheda "Formule" e clicca su "Fx" (Inserisci Funzione). Dalla finestra di dialogo "Inserisci Funzione" clicca sulla categoria

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Funzioni. Corso di Fondamenti di Informatica

Funzioni. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei

Dettagli

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ Classi ed oggetti. Classi derivate, ereditarietà e polimorfismo. Template Capitoli 12, 13, 14 Luis Joyannes Aguilar. Fondamenti di Programmazione in C++. Algoritmi,

Dettagli

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

Dall italiano alla logica proposizionale

Dall italiano alla logica proposizionale Rappresentare l italiano in LP Dall italiano alla logica proposizionale Sandro Zucchi 2009-10 In questa lezione, vediamo come fare uso del linguaggio LP per rappresentare frasi dell italiano. Questo ci

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

P a s q u a l e t t i V e r o n i c a

P a s q u a l e t t i V e r o n i c a PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Progetti reali con ARDUINO

Progetti reali con ARDUINO Progetti reali con ARDUINO Introduzione alla scheda Arduino (parte 2ª) ver. Classe 3BN (elettronica) marzo 22 Giorgio Carpignano I.I.S. Primo LEVI - TORINO Il menù per oggi Lettura dei pulsanti Comunicazione

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo stituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di nformatica Anno Scolastico 2008/2009 Classe 3APS Dal Problema all'algoritmo Pr.: 001 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project

Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project NB: E necessario: adoperare la sintassi più evoluta per le direttive di precompilazione 1, usando come contenitore

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica L uso delle funzioni in C++ Claudio De Stefano - Corso di Fondamenti di Informatica 1 Funzioni Nel C++ è possibile scomporre problemi complessi in moduli più semplici

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com Corso di Informatica Medica Esercitazione 1I 2013-2014! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com 1 2 Esercizio 1 Scrivere un programma che legga due array di interi da tastiera dica

Dettagli

Scheda UT30 Punti-UM / Come fare l evidenziatore personale. PREMESSA Quanti di voi vorrebbero rendere più divertente ed artistico il proprio nickname?

Scheda UT30 Punti-UM / Come fare l evidenziatore personale. PREMESSA Quanti di voi vorrebbero rendere più divertente ed artistico il proprio nickname? Le schede di Scheda UT30 Punti-UM / Come fare l evidenziatore personale PREMESSA Quanti di voi vorrebbero rendere più divertente ed artistico il proprio nickname? Tutti immagino. Quindi armatevi di pazienza

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte.

Dettagli

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero ---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero delle variabili a cui possono essere assegnati gli indirizzi

Dettagli

MEGA Process. Manuale introduttivo

MEGA Process. Manuale introduttivo MEGA Process Manuale introduttivo MEGA 2009 SP4 1ª edizione (giugno 2010) Le informazioni contenute nel presente documento possono essere modificate senza preavviso e non costituiscono in alcun modo un

Dettagli

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA

CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA Supponiamo di voler eseguire una istantanea del nostro desktop, quella che in gergo si chiama Screenshot (da screen, schermo, e shot, scatto fotografico).

Dettagli

SISSI IN RETE. Quick Reference guide guida di riferimento rapido

SISSI IN RETE. Quick Reference guide guida di riferimento rapido SISSI IN RETE Quick Reference guide guida di riferimento rapido Indice generale Sissi in rete...3 Introduzione...3 Architettura Software...3 Installazione di SISSI in rete...3 Utilizzo di SISSI in Rete...4

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public:

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public: 1 Pila.h versione 6 struct Pila { private: int size; int defaultgrowthsize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialsize) ; Pila(); ~Pila() ; void copy(pila * to)

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Verifica che una grammatica sia Context Free nel GrammaReader

Verifica che una grammatica sia Context Free nel GrammaReader Verifica che una grammatica sia Context Free nel GrammaReader Sommario Dispensa di Linguaggi di Programmazione Corrado Mencar Pasquale Lops In questa dispensa si descrivono alcune soluzioni per verificare

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Linguaggio C: introduzione Il linguaggio C è un linguaggio general purpose sviluppato nel 1972 da Dennis Ritchie per scrivere il sistema operativo UNIX ed alcune applicazioni per un PDP-11. Il linguaggio

Dettagli

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31 Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero

Dettagli

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Scuola Specializzazione Istruzione Superiore Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Michele Batocchi ITC Vittorio Emanuele II Perugia A.S. 2007/2008 Introduzione

Dettagli

Manipolazione di testi: espressioni regolari

Manipolazione di testi: espressioni regolari Manipolazione di testi: espressioni regolari Un meccanismo per specificare un pattern, che, di fatto, è la rappresentazione sintetica di un insieme (eventualmente infinito) di stringhe: il pattern viene

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Virtualizzazione e installazione Linux

Virtualizzazione e installazione Linux Virtualizzazione e installazione Linux Federico De Meo, Davide Quaglia, Simone Bronuzzi Lo scopo di questa esercitazione è quello di introdurre il concetto di virtualizzazione, di creare un ambiente virtuale

Dettagli

La somma di 12 e 30 è 42

La somma di 12 e 30 è 42 Nuovo Esercizio Supponendo che: all operazione somma corrisponda il numero 1 all operazione differenza corrisponda il numero 2 all operazione modulo corrisponda il numero 3 all operazione divisione intera

Dettagli

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di esempio CERCA 90 NEL SACCHETTO = estrai num Casi num 90 Effetti CERCA 90 NEL

Dettagli

RICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3

RICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3 RICORSIVITA 1. Cos è la ricorsività? La ricorsività è un metodo di soluzione dei problemi che consiste nell esprimere la soluzione relativa al caso n in funzione della soluzione relativa al caso n-1. La

Dettagli

Funzioni di base. Manualino OE6. Outlook Express 6

Funzioni di base. Manualino OE6. Outlook Express 6 Manualino OE6 Microsoft Outlook Express 6 Outlook Express 6 è un programma, incluso nel browser di Microsoft Internet Explorer, che ci permette di inviare e ricevere messaggi di posta elettronica. È gratuito,

Dettagli

Mini manuale di Audacity.

Mini manuale di Audacity. Mini manuale di Audacity. Questo mini manuale è parte del corso on-line Usare il software libero di Altrascuola. Il corso è erogato all'interno del portale per l'e-learning Altrascuola con la piattaforma

Dettagli

Fondamenti di Informatica T. Linguaggio C: File

Fondamenti di Informatica T. Linguaggio C: File Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

I FILTRI SED, GREP (e AWK) Tratto da http://www.pluto.it/files/ildp/guide/abs/textproc.html SED

I FILTRI SED, GREP (e AWK) Tratto da http://www.pluto.it/files/ildp/guide/abs/textproc.html SED I FILTRI SED, GREP (e AWK) Tratto da http://www.pluto.it/files/ildp/guide/abs/textproc.html SED SED è un programma in grado di eseguire delle trasformazioni elementari in un flusso di dati di ingresso,

Dettagli

1) Le Espressioni regolari

1) Le Espressioni regolari ESPRESSIONI REGOLARI e FILTRI SED, GREP e AWK 1) Le Espressioni regolari Un'espressione regolare è un modello che descrive un insieme di stringhe. Le espressioni regolari sono costruite, in maniera analoga

Dettagli

PCC - Pixia Centro Comunicazioni GUIDA PER L UTILIZZO

PCC - Pixia Centro Comunicazioni GUIDA PER L UTILIZZO PCC - Pixia Centro Comunicazioni GUIDA PER L UTILIZZO Informazioni generali Il programma permette l'invio di SMS, usufruendo di un servizio, a pagamento, disponibile via internet. Gli SMS possono essere

Dettagli

Modulo 2 - Appendice 3 L'editor vi e cenni su sed

Modulo 2 - Appendice 3 L'editor vi e cenni su sed 1 Modulo 2 - Appendice 3 L'editor vi e cenni su sed Laboratorio di Sistemi Operativi I Anno Accademico 2008-2009 Copyright 2005-2007 Francesco Pedullà, Massimo Verola Copyright 2001-2005 Renzo Davoli,

Dettagli

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i Esercizi PHP 1. Scrivere uno script PHP che produca in output: 1. La tabellina del 5 2. La tavola Pitagorica contenuta in una tabella 3. La tabellina di un numero ricevuto in input tramite un modulo. Lo

Dettagli

Le Stringhe. Un introduzione operativa. Luigi Palopoli

Le Stringhe. Un introduzione operativa. Luigi Palopoli Le Stringhe p.1/19 Le Stringhe Un introduzione operativa Luigi Palopoli ReTiS Lab - Scuola Superiore S. Anna Viale Rinaldo Piaggio 34 Pontedera - Pisa Tel. 050-883444 Email: palopoli@sssup.it URL: http://feanor.sssup.it/

Dettagli

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE Il problema Un computer è usato per risolvere dei problemi Prenotazione di un viaggio Compilazione e stampa di un certificato in un ufficio comunale Preparazione

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Generalizzazione di funzioni e di classi. Macro come funzioni generiche

Generalizzazione di funzioni e di classi. Macro come funzioni generiche Alessio Bechini - Corso di - Generalizzazione di funzioni e di classi Il meccanismo di template Macro come funzioni generiche long longmax(long x, long y) { Possibile soluzione int intmax(int x, int y)

Dettagli

APPLICAZIONI SU PIU FILE

APPLICAZIONI SU PIU FILE APPLICAZIONI SU PIU FILE Serve poter sviluppare applicazioni su piú file: - alcune funzioni e alcune definizioni di dati in un file - altre funzioni e dati in file diversi Perché?? 1. Se il programma è

Dettagli

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla

Dettagli

ASTA IN GRIGLIA PRO. COSA PERMETTE DI FARE (per ora) Asta In Griglia PRO:

ASTA IN GRIGLIA PRO. COSA PERMETTE DI FARE (per ora) Asta In Griglia PRO: ASTA IN GRIGLIA PRO Asta in Griglia PRO è un software creato per aiutare il venditore Ebay nella fase di post-vendita, da quando l inserzione finisce con una vendita fino alla spedizione. Il programma

Dettagli

Lab. 1 - Introduzione a Matlab

Lab. 1 - Introduzione a Matlab Lab. 1 - Introduzione a Matlab Alcune informazioni su Matlab Matlab è uno strumento per il calcolo scientifico utilizzabile a più livelli, dalla calcolatrice tascabile, alla simulazione ed analisi di sistemi

Dettagli