Condizionale. Scelte. Il costrutto if. Il costrutto if
|
|
- Gloria Manfredi
- 5 anni fa
- Visualizzazioni
Transcript
1 Condizionale Scelte Comando Condizionale Blocchi Gestione dei blocchi da parte della macchina astratta Java Visibilità (scope) ed esistenza delle variabili di frame nei blocchi Operatori Relazionali, confronti Confronti fra Oggetti, ridefinizione di equals If a cascata Switch Il tipo boolean Operatori logici, valutazione pigra 1 Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non banali il comportamento dei metodi deve variare a seconda dei dati di input Il programma deve prendere delle decisioni in base ai dati in suo possesso Vediamo quindi come si fa ad effettuare delle scelte nei programmi 2 Il costrutto if Il costrutto if Riconsideriamo la classe BankAccount Il metodo withdraw preleva dal conto una cifra qualsiasi In una applicazione reale, invece, il metodo dovrebbe controllare se la cifra richiesta è disponibile e solo in quel caso effettuare il prelievo Per far questo si può usare lo statement (enunciato) if public class BankAccount { public void withdraw(double amount) { if (amount <= balance) balance = balance amount; 3 4
2 Il costrutto if In questo modo l assegnamento balance = balance amount; viene eseguito solo se la condizione tra parentesi tonde è vera. Il significato di (amount <= balance) è un valore di tipo boolean, cioè un valore nell insieme {true, false L espressione è vera (true) se il valore della variabile amount (parametro esplicito del metodo) è minore o uguale al valore della variabile istanza balance dell oggetto si cui si sta eseguendo il metodo Rappresentazione con diagramma a blocchi amount <= balance Vero balance = balance - amount Falso 5 6 Il costrutto if Il costrutto if-else Se la condizione risulta falsa l if da solo non fa niente e il controllo passa al comando successivo Potremmo pensare, comunque, di avvertire in qualche modo l utente che il prelievo non è possibile Per far questo è possibile aggiungere all if un alternativa (else) che contiene un comando che viene eseguito solo se la condizione è falsa (false) 7 public class BankAccount { public void withdraw(double amount) { if (amount <= balance) balance = balance amount; else System.out.println( Importo Richiesto Non Disponibile ); 8
3 Il costrutto if-else Rappresentazione con diagramma a blocchi La semantica dell if-else è la seguente: 1)Viene calcolato il valore dell espressione di tipo boolean fra parentesi tonde 2)Se l espressione ha valore true allora viene eseguito il comando che si trova tra l espressione e la parola riservata else. 3)Se l espressione ha valore false allora viene eseguito il comando che si trova dopo la parola riservata else 4)In ogni caso, dopo l esecuzione del comando corrispondente (caso 2 o caso 3), l esecuzione continua con l enunciato che segue Falso amount <= balance Vero balance = balance - amount Importo Richiesto Non Disponibile 9 10 Attenzione: errore! public class BankAccount { public void withdraw(double amount) { if (amount <= balance) balance = balance amount; if (amount > balance) System.out.println( Importo Richiesto Non Disponibile ); Errore! Non è la stessa cosa dell'if-else: dopo l'esecuzione del primo if il valore di balance può essere diverso e l'espressione negata potrebbe diventare vera, mentre all'inizio era falsa! 11 Rappresentazione con diagramma a blocchi Percorso che non esiste nell if-else amount <= balance Vero balance = balance - amount amount > balance Vero Falso Falso Importo Richiesto Non Disponibile 12
4 Blocchi Il costrutto if o if-else prevede che sia inserito un solo comando dopo l espressione tra parentesi e dopo la parola riservata else Invece potremmo aver bisogno di eseguire più di un comando nel ramo true e/o nel ramo false Per far questo usiamo la possibilità, offerta dal linguaggio Java, di creare blocchi di comandi Blocchi Un blocco inizia con { e finisce con All interno delle parentesi graffe possono essere inseriti zero o più enunciati Un blocco può essere inserito in qualunque punto all interno del corpo di un metodo I blocchi possono essere annidati: un blocco può contenere altri blocchi che a loro volta possono contenere altri blocchi Un blocco viene visto dalla macchina astratta java come un unico enunciato Blocchi Blocchi Supponiamo ad esempio che se un utente tenta di prelevare del denaro che non ha, oltre alla stampa del messaggio, venga anche decrementato il saldo di una penale costante Possiamo scrivere così: 15 public class BankAccount { public static final double PENALE = 5.0; public void withdraw(double amount) { if (amount <= balance) { double newbalance = balance amount; balance = newbalance; else { System.out.println( Importo Richiesto Non Disponibile ); balance = balance PENALE; System.out.println( Penale di + PENALE + euro applicata ); Blocco del ramo true Blocco del ramo false 16
5 Blocchi e variabili di frame Nel blocco del ramo true dichiariamo una nuova variabile di tipo double che chiamiamo newbalance In Java, quando si apre un nuovo blocco, viene sempre aggiunto un frame nuovo nella pila di frame contenuta nell attivazione corrente Le variabili dichiarate all interno del nuovo blocco hanno scope (contesto) limitato ad esso Esse cesseranno di esistere quando l esecuzione di tutti i comandi del blocco sarà finita e, quindi, il frame verrà buttato via Ricordiamoci che quando viene riferita una variabile con un certo nome all interno di un metodo la macchina astratta Java segue un algoritmo ben preciso per rintracciarla: 1. Cerca il nome all interno del frame in testa alla pila di frame dell attivazione corrente 3. Se lo trova allora quella è la variabile riferita 4. Se non lo trova lo cerca all interno dei frame sottostanti dal più recente a quello più in basso. 5. Se non lo trova in nessun frame la variabile non è stata dichiarata (è un errore che viene trovato dal compilatore) Visibilità delle variabili e blocchi: conflitto Il compilatore non permette, all interno della stessa attivazione, di ridefinire un nome di variabile, anche se in un blocco interno Facciamo un esempio. Supponiamo di trovarci nella seguente situazione alla chiamata del metodo withdraw su un certo oggetto creato in un main 19 public void withdraw(double amount) { Posizione attuale double newbalance = balance amount; if (newbalance >= 0) balance = newbalance; else { System.out.println( Importo Richiesto Non Disponibile ); { // Nuovo Blocco // non posso ridichiarare newbalance double penaltybalance = balance PENALE; balance = penaltybalance; // penaltybalance non esiste più! System.out.println( Penale di + PENALE + euro applicata ); 20
6 Attivazione della chiamata di withdraw amount this Attivazione del main (congelata/ non raggiungibile) BankAccount balance 90.0 Primo frame (corrisponde al blocco principale del metodo) Heap public void withdraw(double amount) { double newbalance = balance amount; if (newbalance >= 0) Posizione attuale balance = newbalance; else { System.out.println( Importo Richiesto Non Disponibile ); { // Nuovo Blocco // Non posso ridichiarare newbalance double penaltybalance = balance PENALE; balance = penaltybalance; // penaltybalance non esiste più! System.out.println( Penale di + PENALE + euro applicata ); newbalance amount this Attivazione del main (congelata/ non raggiungibile) BankAccount balance public void withdraw(double amount) { double newbalance = balance amount; if (newbalance >= 0) balance = newbalance; else { Posizione attuale System.out.println( Importo Richiesto Non Disponibile ); { // Nuovo Blocco // non posso ridichiarare newbalance double penaltybalance = balance PENALE; balance = penaltybalance; // penaltybalance non esiste più! System.out.println( Penale di + PENALE + euro applicata ); 24
7 newbalance amount this Attivazione del main (congelata/ non raggiungibile) BankAccount balance 90.0 L apertura di un nuovo blocco corrisponde alla crazione di un nuovo frame in testa alla pila 25 public void withdraw(double amount) { double newbalance = balance amount; if (newbalance >= 0) balance = newbalance; else { System.out.println( Importo Richiesto Non Disponibile ); { // Nuovo Blocco // non posso ridichiarare newbalance double penaltybalance = balance PENALE; Posizione attuale balance = penaltybalance; // penaltybalance non esiste più! System.out.println( Penale di + PENALE + euro applicata ); 26 penaltybalance 85.0 newbalance amount this Attivazione del main (congelata/ non raggiungibile) BankAccount balance 90.0 Heap Nuovo frame per il nuovo blocco. La variabile penaltybalance nasce e muore con il nuovo blocco 27 public void withdraw(double amount) { double newbalance = balance amount; if (newbalance >= 0) balance = newbalance; else { System.out.println( Importo Richiesto Non Disponibile ); { // Nuovo Blocco // non posso ridichiarare newbalance double penaltybalance = balance PENALE; balance = penaltybalance; // penaltybalance non esiste più! Posizione attuale System.out.println( Penale di + PENALE + euro applicata ); 28
8 newbalance amount this Attivazione del main (congelata/ non raggiungibile) BankAccount balance 85.0 Il frame per il nuovo blocco e la relativa variabile penaltybalance vengono buttati via public void withdraw(double amount) { double newbalance = balance amount; if (newbalance >= 0) balance = newbalance; else { System.out.println( Importo Richiesto Non Disponibile ); { // Nuovo Blocco // non posso ridichiarare newbalance double penaltybalance = balance PENALE; balance = penaltybalance; // penaltybalance non esiste più! System.out.println( Penale di + PENALE + euro applicata ); Posizione attuale Blocco del ramo false chiuso newbalance amount this Attivazione del main (congelata/ non raggiungibile) BankAccount balance 85.0 Heap Il frame per il blocco del ramo false dell if viene buttato via (non contiene variabili) alla fine del blocco Alla fine dell esecuzione del blocco principale di withdraw: public void withdraw(double amount) { double newbalance = balance amount; viene cancellato il frame principale, ma anche tutta l attivazione creata per eseguirlo 31 32
9 Operatori relazionali BankAccount balance 85.0 Heap All interno delle parentesi tonde della condizione dell if è possibile, come abbiamo visto, inserire il confronto tra due valori poiché questa espressione ha un valore di tipo boolean (true o false) Attivazione del main (di nuovo in esecuzione) Vediamo, nella tabella seguente, tutti gli operatori relazionali che possiamo usare: Operatori Relazionali Errore comune: = invece di == Operatore Java > >= < Notazione matematica > < Descrizione Maggiore Maggiore o uguale Minore I programmatori ancora inesperti spesso confondono l uso di = con == In particolare un errore comune è quello di inserire in un confronto l operatore = invece che == <= ==!= = Minore o uguale Uguale Diverso if (a=5) b++; // Errore di compilazione L espressione a=5, oltre ad essere un assegnamento e non un confronto, ha un valore di tipo int 35 36
10 Confronti di valori in virgola mobile Gli operatori == o!= non hanno molto senso applicati a valori in virgola mobile Un errore tipico è quello di cercare di controllare se un valore double (o float) sia uguale a 0.0 È molto improbabile che un double risultante da un calcolo sia esattamente zero Potrebbe essere invece un valore prossimo allo zero Confronti di valori in virgola mobile Prendiamo ad esempio questo semplice programma: double r = Math.sqrt(2); double d = r * r -2; if (d == 0) System.out.println("Radice quadrata di 2 per 2 meno 2 fa 0"); else System.out.println("Radice quadrata di 2 per 2 meno 2 fa " + d); Il valore stampato non è zero: d vale E-16 che è prossimo a zero, ma non è zero! Confronti di valori in virgola mobile In generale, per confrontare l uguaglianza di due valori in virgola mobile è bene fissare una soglia EPSILON di tolleranza e vedere se i due valori sono sufficientemente prossimi rispetto a questa Per esempio si può definire final double EPSILON = 1E-14; E poi controllare se x-y EPSILON. Se è vero si può decidere che i due valori vanno considerati uguali Confronti di valori in virgola mobile Tuttavia, se x e y sono valori molto grandi, la loro differenza potrebbe essere una quantità maggiore di EPSILON, ma comunque, vista la loro grandezza, essere irrisoria È bene, quando x e y non sono prossimi a zero, considerare la differenza dei due valori rapportata alla loro gandezza: x y max( x, y ) ε 39 40
11 Confronti di valori in virgola mobile In codice java: final double EPSILON = 1E-14; double x, y; if (Math.abs(x-y) / Math.max(Math.abs(x), Math.abs(y)) <= EPSILON) System.out.println( \ Uguali\ ); else System.out.println( \ Diversi\ ); Confronto di Stringhe Le stringhe in Java, lo sappiamo, sono oggetti Quindi il valore di una variabile di frame di tipo String non è la stringa in sé, ma un riferimento all oggetto stringa Se cercassimo di confrontare direttamente due variabili di tipo stringa staremmo semplicemente controllando se puntano allo stesso oggetto Ma in generale ciò che ci interessa è sapere se il contenuto di due stringhe (oggetti stringa diversi) è lo stesso Confronto di Stringhe Confronto di Stringhe String pippo = console.readline(); String pluto = console.readline(); if (pippo == pluto) //falso System.out.println( Stringhe Uguali ) else System.out,println( Stringhe Diverse ) Per il confronto del contenuto di due stringhe dobbiamo usare il metodo equals della classe String Come tipico della programmazione ad oggetti, un operatore binario fra due oggetti viene realizzato con un metodo che va chiamato su uno dei due e a cui va passato un riferimento all altro oggetto operando System.out.println("Inserisci una stringa"); String pippo = console.readline(); System.out.println("Inserisci una seconda stringa per il confronto"); String pluto = console.readline(); if ( pippo == pluto ) System.out.println("Confronto con == : Stringhe Uguali"); else System.out.println("Confronto con == : Stringhe Diverse"); if ( pippo.equals(pluto) ) System.out.println("Confronto con metodo equals: Stringhe + Uguali"); else System.out.println("Confronto con metodo equals: Stringhe + Diverse"); Inserendo due stringhe uguali il primo confronto fallisce, mentre il secondo ha successo 43 44
12 Confronto di Stringhe La classe String fornisce anche operatori di confronto corrispondenti a <, > Il metodo compareto ha un parametro String in ingresso e confronta la stringa su cui è chiamato con la stringa passata come parametro Il valore di uscita è un int il cui valore indica se la stringa passata è uguale, maggiore o minore nel senso di ordine alfabetico Confronto di Stringhe int r = string1.compareto(string2); Se r > 0 allora string1 precede string2 nell ordine alfabetico Se r < 0 allora string1 segue string2 nell ordine alfabetico Se r == 0 allora le stringhe sono uguali (alternativa a equals) Confronto di oggetti Il discorso fatto per le stringhe si applica agli oggetti in generale Applicando l operatore == a due variabili riferimento si controlla semplicemente se puntano allo stesso oggetto Se si vuole invece confrontare lo stato si deve fornire la classe di un metodo equals simile a quello che viene fornito con String Ridefinizione di equals Se guardiamo il codice della classe String vediamo che il metodo equals è così definito: public boolean equals(object anobject) { if (this == anobject) { return true; Sono esattamente lo stesso oggetto if (anobject instanceof String) { String anotherstring = (String) anobject; Esegue il controllo carattere return false; per carattere, se le stringhe sono uguali ritorna true, altrimenti ritorna false 47 48
13 Ridefinizione di equals La classe Object definisce un metodo equals che identifica due oggetti se sono lo stesso, cioè se i riferimenti puntano alla stessa area di memoria heap Ogni classe eredita questo metodo equals Ogni classe dovrebbe ridefinirlo nello stesso modo in cui viene fatto nella classe String Vediamo in dettaglio 49 Ridefinizione di equals Il metodo deve prendere come parametro un generico Object: public boolean equals(object anobject) { Per prima cosa controlla se il riferimento all'oggetto passato è uguale a quello di questo oggetto Se è così sicuramente anche bisogna rispondere true (è ciò che fa equals di Object) Se non è così allora bisogna controllare il tipo dell'oggetto passato 50 Ridefinizione di equals Ridefinizione di equals L'operatore instanceof restituisce true se un riferimento generico a Object punta in realtà a un certo oggetto di una classe data: if (anobject instanceof String) { Se questo non è vero allora bisognerà rispondere false (due oggetti di classi diverse in genere non vengono identificati) Se invece è questo il caso si dovranno controllare le variabili istanza per decidere l'uguaglianza 51 La prima cosa da fare è un casting per riottenere un riferimento alla classe vera: String anotherstring = (String) anobject; Poi si confronteranno i valori degli oggetti this e anotherstring per decidere se si considerano questi due oggetti uguali Non bisogna comunque dimenticare che anche se equals ridefinito identifica due oggetti diversi questi rimangono sempre oggetti distinti! 52
14 If a cascata Il codice Consideriamo una semplice classe che deve descrivere con una stringa gli effetti di un terremoto partendo da una valutazione dello stesso secondo la scala Richter A fasce di valori numerici sono associate descrizioni sintetiche degli effetti Come facciamo a individuare agevolmente la fascia di un certo valore dato? Ci viene in aiuto una tecnica che consiste nel mettere in cascata tanti comandi if-else quante sono le fasce 53 Supponiamo di avere una variabile richter di tipo double e di restituire in r la descrizione: if (richter >= 8.0) r = "Quasi la totalità delle strutture sono cadute"; else if (richter >= 7.0) // tra 7.0 e 8.0 (8.0 non compreso) r = "Molti edifici distrutti"; else if (richter >= 6.0) // 6.0 <= richter < 7.0 r ="Molti edifici seriamente danneggiati e alcuni collassati"; else if (richter >= 4.5) // continua come sopra r = "Danni a edifici poco resistenti"; else if (richter >= 3.5) r = "Sentito da molte persone, non distruttivo"; else if (richter >= 0) r = "Generalmente non avvertito dalle persone"; else // richter < 0 r = "Magnitudo negativa non valida"; 54 If a cascata If a cascata: diagramma Si noti che gli if non sono in sequenza, bensì sono annidati uno dentro l altro if (condizione) comando else if (condizione) comando else cond1 Vero Falso Vero cond2 Falso comelsefinale com1 com
15 If a cascata Se arrivo a valutare cond2 significa che cond1 è risultata falsa Se arrivo ad eseguire il comando dell else finale significa che tutte le condizione sono risultate false Le condizioni sono valutate in sequenza I casi vanno individuati tenendo presente questi fatti If a cascata Ad esempio se avessimo cominciato dal grado più basso, invece che dal più alto, il programma non sarebbe stato giusto: if (richter >= 0) r = Generalmente non avvertito dalle persone"; else if (richter >= 3.5) r = Sentito da molte persone, non distruttivo"; else if. Se prendiamo richter = 7.5 vediamo che la prima condizione è vera e quindi il programma stamperebbe Generalmente non avvertito dalle persone per un terremoto di grado 7.5 (e per un qualunque altro grado non negativo!) switch Per un caso particolare di if a cascata esiste un costrutto apposito Si usa quando le condizioni da verificare sono tutte dei confronti di una variabile intera con delle costanti Il costrutto si chiama switch Vediamo un esempio switch: il codice switch ( digit ) { // Variabile intera digit case 1: englishdigit = "One"; break; case 2: englishdigit = "Two"; break; case 3: englishdigit = "Three"; break; case 4: englishdigit = "Four"; break; case 5: englishdigit = "Five"; break; case 6: englishdigit = "Six"; break; case 7: englishdigit = "Seven"; break; case 8: englishdigit = "Eight"; break; case 9: englishdigit = "Nine"; break; default: englishdigit = "Errore"; break; 59 60
16 switch switch All interno delle parentesi tonde si può mettere una variabile a valori interi Dentro al blocco si possono inserire quante righe case si vogliono. Il numero che segue case viene confrontato con la variabile e se sono uguali allora viene eseguito il codice che c è dopo i due punti fino al prossimo case o al default Il caso default è vero se tutti i casi precedenti sono risultati falsi (la variabile ha valore diverso da tutti i casi) Attenzione! Se un certo case risulta vero allora viene eseguito il codice ad esso associato, ma anche il codice di tutti i casi restanti! Per evitare questo comportamento, che la maggior parte delle volte non è quello che si vuole, è possibile ricorrere al comando break break switch Il comando break serve per uscire dal blocco di codice corrente Il suo effetto è quello di buttare via il frame relativo al blocco corrente e a far proseguire l esecuzione dal comando che segue il blocco break può essere usato solo all interno del blocco di uno switch oppure all interno del blocco di un ciclo (while, do, for) Nel nostro esempio abbiamo inserito break alla fine del codice di ogni caso Ad esempio se avessimo dimenticato di metterlo nel primo caso: switch ( digit ) { case 1: englishdigit = "One"; // manca case 2: englishdigit = "Two"; break; Se digit = 1 il vengono eseguiti gli assegnamenti del caso 1 e del caso 2 e quindi alla fine englishdigit vale Two! 63 64
17 Else sospeso Abbiamo visto questo argomento in un esempio sull'ambiguità delle grammatiche Anche in Java, come in Pascal e C, la risoluzione dell ambiguità del comando condizionale viene risolta con questa convenzione: Ogni else è associato all if non associato con un else più vicino (andando a ritroso) Il tipo boolean boolean è un tipo base di Java che indica due possibili valori soltanto: vero o falso Le costanti true e false sono gli unici due valori booleani Una espressione booleana è una qualunque espressione che ha come valore un boolean Es: amount <= balance Metodi predicativi Uso di valori booleani Essendo un tipo base, boolean può essere il valore restituito da un metodo I metodi di questo tipo si chiamano predicativi Un esempio su BankAccount: public boolean isoverdrawn() { return balance < 0; I valori booleani sono richiesti nelle condizioni degli if e dei cicli In queste occasioni si possono inserire espressioni booleane, chiamate di metodi predicativi o variabili booleane if (x > 0) // Espressione booleana if (myaccount.isoverdrawn()) // Metodo boolean inrosso = myaccount.isoverdrawn(); if (inrosso) // Variabile booleana Dice se il conto è in rosso (true) oppure no 68 67
18 Operatori logici Operatori Logici Finora abbiamo visto espressioni booleane semplici, cioè che usano: operatori di confronto fra valori Operatore Java && Notazione logica Descrizione And logico pigro metodi predicativi variabili booleane Tutti questi tipi di espressioni semplici possono venire combinati con gli operatori logici & And logico Or logico pigro Or logico! o Negazione Grammatica Grammatica <BoolExp> <BoolExp> T <BoolExp> T T T T && F T & F F F!<Operand> <Operand> <Operand> (<BoolExp>) <Espressioni Booleane Semplici> Ne risulta che l ordine di precedenza, da quello che lega di più a quello che lega di meno, è 1. Negazione 2. And 3. Or Associatività per And e Or a sinistra 71 72
19 Valutazione pigra Cosa significa esattamente and pigro e or pigro? La valutazione delle espressioni booleane può essere ottimizzata in questo modo: Si comincia a guardare il valore del primo operando sulla sinistra Se il valore di tutta l espressione può essere inferito da subito allora il secondo operando non viene valutato per niente (versione pigra) Valutazione pigra: quando si applica L espressione <primo operando> && <secondo operando> È sicuramente falsa se il primo operando ha valore false Oppure: <primo operando> <secondo operando> È sicuramente vera se il primo operando ha valore true In questi due casi gli operatori pigri (&& e ) non valutano per niente il secondo operando Valutazione pigra Naturalmente <primo operando> e <secondo operando> possono essere espressioni booleane qualsiasi (è l albero di derivazione che ci dà la struttura e l operatore più in alto ) I corrispondenti operatori non pigri (& e!) valutano sempre il secondo operando La valutazione pigra è quella maggiormente usata anche perché, oltre all ottimizzazione, permette di scrivere codice più compatto Valutazione pigra: esempio Un caso in cui è utile usare la valutazione pigra può essere quello di acquisizione di input e suo successivo parsing Sappiamo che leggendo da una finestra grafica una stringa input, se l utente preme Annulla, input avrà valore null e verrà sollevata un eccezione dal metodo di parsing se proviamo a fare il parsing passando un riferimento null come stringa 75 76
20 Valutazione pigra: esempio Esercizio Il seguente if usa la valutazione pigra: if (input!= null && Integer.parseInt(input) > 0) System.out.println( Hai scritto un numero positivo ); else System.out.println( O hai cancellato o hai + scritto un numero non positivo ); Se input == null allora il parsing non viene effettuato perché l && pigro assegna subito il valore false a tutta l espressione In questo modo si evita di far sollevare un eccezione a Integer.parseInt nel caso in cui l utente ha annullato Modificare il risolutore di equazioni di secondo grado in modo che se il discriminante ha valore negativo stampi un messaggio che indichi che non ci sono soluzioni reali dell equazione se il discriminante è zero stampi un messaggio che indica che ci sono due soluzioni reali coincidenti + le soluzioni se il discriminante è positivo stampi entrambe le soluzioni Aggiungere alla classe RisolutoreEquazione2Grado un metodo predicativo hassolution() che indichi se l equazione rappresentata dall oggetto ha soluzioni reali Esercizio Esercizio cont d Scrivere un programma che prenda in ingresso un dato che descrive una carta da gioco con le seguenti abbreviazioni A = Asso 210 = punteggi delle carte J = Jack D = Donna R = Re Q = Quadri C = Cuori P = Picche F = Fiori continua 79 Il programma deve stampare la descrizione della carta a partire dal codice Esempio: Inserisci il codice: DP Donna di picche Definire la classe Card il cui costruttore prende il codice inserito e il cui metodo getdescription restituisce la stringa di descrizione 80
21 Esercizio Esercizio Scrivere un programma che legga in input quattro stringhe e stampi quella più in alto e quella più in basso nell ordine alfabetico Un anno è bisestile se è divisibile per quattro (es. 1980) tranne nei casi in cui è divisibile per 100 (es. 1900) Tuttavia, è comunque un anno bisestile se è divisibile per 400 (es. 2000) Queste eccezioni, però, non erano in vigore prima del 15 ottobre 1582 Scrivere un programma che chieda in ingresso un anno e che calcoli se l anno è bisestile (implementare una classe Year con il metodo predicativo isleapyear() leap = bisestile in inglese) Esercizio Esercizio Migliorare la classe BankAccount controllando: Che non ci siano mai importi negativi come parametri di deposit e withdraw Che non ci siano mai prelievi che portino ad un saldo negativo Scrivere una classe i cui oggetti hanno nello stato i dati relativi a un dipendente, alle ore (e frazioni di esse) che ha lavorato in una certa settimana e alla retribuzione per ora Gli straordinari (oltre le 40 ore settimanali) vanno pagati il 150% delle ore normali Scrivere un metodo getimportopercepito che ritorni il dovuto al dipendente 83 84
22 Esercizio Realizzare una classe che rappresenta una serratura a combinazione che ha una ruota a 26 posizioni etichettate da A a Z (alfabeto inglese) La ruota deve essere impostata tre volte e la serratura si apre se la combinazione è corretta Quando la serratura, aperta, viene richiusa si può impostare una nuova combinazione Se la ruota viene impostata più di tre volte, le ultime tre impostazioni sono quelle che determinano se aprire o meno la serratura continua 85 Esercizio cont d: interfaccia pubblica /** Un oggetto serratura con combinazione può essere impostato tre volte a una certa posizione. La serratura si apre solo se la combinazione di tre lettere data è corretta */ public class CombinationLock { /** Costruisce una serratura con una data combinazione e la acombination la combinazione che deve essere una stringa di 3 lettere maiuscole dell'alfabeto inglese */ public CombinationLock(String acombination) { 86 Esercizio cont d: interfaccia pubblica /** Imposta la ruota su una aposition una stringa di una sola lettera maiuscola */ public void setposition(string aposition) { /** Tenta di aprire la serratura */ public void unlock() { Esercizio cont d: interfaccia pubblica /** Controlla se la serratura è true se la serratura è attualmente aperta */ public boolean isopen() { /** Chiude la serratura lasciando la combinazione attuale */ public void lock() { 87 88
23 Esercizio cont d: interfaccia pubblica /** Chiude la serratura e reimposta la combinazione Funziona solo se la serratura è davvero attualmente acombination la stringa contenente la nuova combinazione */ public void lockandsetcombination(string acombination) { 89
If a cascata. If a cascata, switch, operatori logici. If a cascata. Il codice. If a cascata. If a cascata: diagramma. Alla fine esercizi
If a cascata If a cascata, switch, operatori logici Alla fine esercizi 19/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Consideriamo una semplice classe che deve descrivere con una stringa gli effetti
DettagliIf a cascata, switch, operatori logici
If a cascata, switch, operatori logici Alla fine esercizi 19/11/2004 Laboratorio di Programmazione - Luca Tesei 1 If a cascata Consideriamo una semplice classe che deve descrivere con una stringa gli effetti
DettagliCondizionale. Laboratorio di Programmazione
Condizionale Comando Condizionale Blocchi Gestione dei blocchi da parte della macchina astratta Java Visibilità (scope) ed esistenza delle variabili di frame nei blocchi Operatori Relazionali, confronti
DettagliScelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if
Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non
DettagliConfronti, equals. Operatori Relazionali, confronti Confronti fra Oggetti, ridefinizione di equals. Laboratorio di Programmazione - Luca Tesei
Confronti, equals Operatori Relazionali, confronti Confronti fra Oggetti, ridefinizione di equals 1 Operatori relazionali All interno delle parentesi tonde della condizione dell if è possibile, come abbiamo
DettagliIf a cascata, switch, boolean
If a cascata, switch, boolean If a cascata Switch Il tipo boolean Operatori logici, valutazione pigra 1 If a cascata Consideriamo una semplice classe che deve descrivere con una stringa gli effetti di
DettagliIstruzioni di selezione in Java 1
Le istruzioni del programma Istruzioni di selezione in Java Corso di laurea in Il controllo del flusso del programma Istruzioni condizionali o di selezione Istruzioni di ripetizione Espressioni condizionali
DettagliIstruzioni di selezione in Java 1
Ordine di esecuzione Istruzioni di selezione in Java Corso di laurea in Comunicazione digitale Nei metodi l ordine di esecuzione delle istruzioni è sequenziale se non specificato altrimenti Alcune istruzioni
DettagliLe decisioni. Istruzione if. if (amount <= balance) balance = balance - amount; Sintassi: if (condizione) istruzione
Le decisioni Istruzione if if (amount
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo
DettagliProgrammazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr.
Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XII, parte I ) Gestione dell input Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail
DettagliLezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione
Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione
DettagliInformatica AA 2005/06. Programmazione M.A. Alberti. Operatori in Java 1. Operatori in Java. Espressioni aritmetiche. Espressioni booleane
Operatori in Java Operatori in Java Corso di laurea in Informatica Operatori aritmetici Operatori di uguaglianza e relazionali Operatori logici in espressioni booleane La precedenza degli operatori L associatività
DettagliImpariamo a programmare in. Lezione 6
Impariamo a programmare in Decisioni Gestire un conto corrente double balance = 10000; // saldo iniziale System.out.println("Quanto vuoi prelevare? ); double amount = console.nextdouble(); balance = balance
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliIstruzione if. if (amount <= balance) balance = balance - amount; Sintassi: if (condizione) istruzione
Decisioni Istruzione if if (amount
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 7: Istruzioni ed Operatori Booleani Vittorio Scarano Corso di Laurea in Informatica Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo Operatori relazionali
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
DettagliOperazioni numeriche - Input
Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di input 11/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Operazioni fra interi e decimali In Java
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione
DettagliEsecuzione condizionale. Esecuzione condizionale. Costrutto if. Costrutto if
Esecuzione condizionale Esecuzione condizionale Permette l esecuzione di un blocco di codice solo se si verifica una certa condizione SE (condizione è vera) ALLORA esegui istruzioni 2 er. 2.4 also condizione
DettagliIL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliIl primo programma C++
Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 8 14/11/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 8 14/11/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliProgrammazione in Java (I modulo) Lezione 4
Programmazione in Java (I modulo) Lezione 4 Costanti Chiamiamo costanti tutti i valori numerici (interi o con la virgola), i caratteri e le stringhe. Esempio: 2, 3.7, 'y, buongiorno Le costanti numeriche
DettagliStrutture di controllo decisionali
Capitolo 3 Strutture di controllo decisionali ANDREA GINI Dopo aver introdotto il concetto di variabile e di array, è giunto il momento di analizzare a fondo i restanti costrutti del linguaggio Java. Come
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliCominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi
Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono l algoritmo Cominciamo ad analizzare la
Dettagli5 - Istruzioni condizionali
5 - Istruzioni condizionali 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
DettagliValutazione di espressioni
Valutazione di espressioni Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Blocco Blocco è un insieme di istruzioni consecutive, con un
DettagliIstruzioni di controllo
Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende
DettagliJava SE 7. Strutture di programmazione (2)
Java SE 7 Strutture di programmazione (2) diegozabot@yahoo.it ursula.castaldo@gmail.com Casting (1) E' l'operazione che realizza la conversione di tipo tra oggetti e tra tipi primitivi. E' un'operazione
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it
DettagliEspressioni booleane. Esempio: temperatura <= 0 velocita > velocita max
Espressioni booleane Espressioni booleane il linguaggio deve consentire di descrivere espressioni booleane cioé espressioni che ritornino come risultato valori di verit : vero o falso (guardie di condizionali
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliSTRUTTURE DI CONTROLLO DEL C++
STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto
DettagliAssegnazione di una variabile
Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
DettagliLe classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliProf. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI
Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI IF Ogni linguaggio di programmazione presenta almeno una struttura di controllo decisionale. La sintassi del linguaggio C è la seguente. if ()
DettagliCorso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO
Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Richiamo di una Proprietà Se la proprietà è privata, è visibile solo dai metodi della classe, se pubblica invece anche dai metodi al di fuori
DettagliC espressioni condizionali
C espressioni condizionali Esiste un particolare operatore, detto operatore condizionale, che rappresenta un istruzione if else. estremamente compattata?: Supponiamo di voler inserire nella variabile intera
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it
DettagliEsercitazione 2. Espressioni booleane Il comando if-else
Esercitazione 2 Espressioni booleane Il comando if- Espressioni booleane L espressione (i==100) è un espressione booleana. La sua valutazione può restituire solo uno dei due valori booleani true = 1 (in
DettagliSviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
Dettaglidel Linguaggio C Istruzioni di iterazione
Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il
DettagliINFORMATICA. Strutture condizionali
INFORMATICA Strutture condizionali Strutture condizionali Sono le istruzioni che rappresentano il ben noto costrutto IF THEN ELSE della programmazione strutturata. In C, come peraltro in tutti gli altri
DettagliLinguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative
DettagliStrutture di controllo condizionali in Matlab
Strutture di controllo condizionali in Matlab Informatica B Le strutture condizionali A cosa servono le strutture condizionali? %Inserimento dei parametri della parabola: y=ax^2+bx+c a = input( inserire
DettagliIl linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio
DettagliConfrontare valori 1
Confrontare valori 1 Confrontare valori Le condizioni dell enunciato if sono molto spesso dei confronti tra due valori if (x >= 0) y = x; Gli operatori di confronto si chiamano operatori relazionali >
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni 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 Corso
DettagliSviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
DettagliIstruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */
Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono di aggregare
DettagliScopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito.
Corso di Linguaggi e Traduttori Anno Accademico 2017 2018 Prof. Giovanni Pighizzini Progetto d esame Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito. Variabili
DettagliIstruzioni di Controllo
Istruzioni di Controllo Programmazione strutturata Ricordiamo i concetti chiave: concatenazione o composizione BLOCCO istruzione condizionale SELEZIONE ramifica il flusso di controllo in base al valore
DettagliUn esempio di if annidati
Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XIV, parte I ) Costrutto di selezione switch Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di
DettagliCorso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
DettagliIL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate
Fondamenti di Informatica IL LINGUAGGIO JAVA Sintassi, Semantica, Input, Tipi Elementari e Istruzione Condizionale 1 Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per
DettagliCostrutto switch. Come utilizzare il costrutto switch
Costrutto switch Come utilizzare il costrutto switch Costrutto switch (1/4) Il costrutto if-else permette di selezionare le istruzioni da eseguire tra due alternative, a seconda del valore di una condizione
DettagliQualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliSviluppo di programmi
Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliDefinizione di classi. Walter Didimo
Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti
DettagliSommario. I Uso degli oggetti 39
Questo è l'indice del libro, in cui sono evidenziati i paragrafi corrispondenti agli argomenti trattati nel corso e che costituiranno il programma d'esame. Alcuni argomenti sono stati trattati nelle lezioni
DettagliIng. Lorenzo Vismara
Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#
DettagliDue osservazioni sulle variabili
Due osservazioni sulle variabili Dichiarazione: cosa succede se non dichiaro una variabile e la uso? provare... Le costanti: sono utilizzate nei linguaggi di programmazione rendere simbolici dei valori
DettagliIl C nel C++ Struttura di un linguaggio. regole per la definizione i simboli. regole per la composizione dei simboli
Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliStruttura di un linguaggio
Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliIL COSTRUTTO SELEZIONE
IL COSTRUTTO SELEZIONE Il costrutto selezione Permette di effettuare una scelta tra due possibili opzioni. Tale scelta verrà effettuata valutando il valore di verità di una condizione espressa da una proposizione
DettagliIstruzioni di ripetizione in Java 1
in Java Corso di laurea in Le istruzioni di ripetizione consentono di eseguire la stessa molte volte Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni booleane
DettagliInput. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei
Input Il tipo char Alcune modalità di acquisizione di input 1 Lettura di dati in input Vediamo due modi per acquisire dei dati di input dall utente: 1. Tramite una finestra grafica di dialogo 2. Tramite
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1
DettagliIl C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:
Struttura di un linguaggio Il C nel C++ Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliProgrammazione web lato client con JavaScript. Marco Camurri 1
Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'
Dettagli1. Esempi. 2. I mattoni di un programma Java: ! Parole riservate. ! Identificatori. ! Variabili. ! Letterali. ! Costanti. ! Operatori. !
ntroduzione alla Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 4 1. Esempi Riassunto 2. mattoni
DettagliL oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto
Usare e costruire oggetti Variabili e Oggetti Lo spazio di memoria di Java Le API di Java Gli oggetti sono entità di un programma che si possono manipolare invocando i metodi System.out oggetto della classe
DettagliStrutture di Controllo
Strutture di Controllo Fondamenti di Informatica Effettuare una scelta in un programma Istruzioni condizionali #include int main() char c; printf("inserire il carattere maiuscolo: "); scanf("%c",
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma
DettagliRiassunto. Introduzione alla. 4. Intro programmazione strutturata. Oggi. programmazione strutturata. Le strutture di controllo della.
ntroduzione alla Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 4 Riassunto Esempi mattoni
Dettagli8 Introduzione MATLAB
8.1 Basi Per pulire il workspace (eliminare tutte le variabili esistenti): 1 clear Per pulire la finestra dei comandi (command window): 1 clc In MATLAB non è necessario dichiarare le variabili ed esse
DettagliIstruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso
Istruzioni Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono
DettagliPROGRAMMAZIONE: La selezione
PROGRAMMAZIONE: La selezione Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l altra, riga per
Dettagli