Programmazione in Java (I modulo)

Похожие документы
Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Laboratorio di programmazione

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Programmazione web lato client con JavaScript. Marco Camurri 1

Struttura dei programmi C

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Linguaggio C - sezione dichiarativa: costanti e variabili

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

LINGUAGGI DI PROGRAMMAZIONE!

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Espressioni ed operatori in C

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

5 - Istruzioni condizionali

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Somma di numeri binari

Esercizi Programmazione I

Algoritmi e basi del C Struttura di un programma

Variabili e Istruzioni

La codifica binaria. Informatica B. Daniele Loiacono

Funzioni, Stack e Visibilità delle Variabili in C

PROGRAMMAZIONE: Le strutture di controllo

Modulo 2: Strutture fondamentali della programmazione Java

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Le variabili. Olga Scotti

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Sviluppo di programmi

Informatica Generale Andrea Corradini I linguaggi di programmazione

Linguaggio C Espressioni e operatori

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

5. Codifica degli Algoritmi in C

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Rappresentazione dell Informazione

La programmazione nel linguaggio C

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Linguaggio C: introduzione

Il Sistema di numerazione decimale

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

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Caratteristiche di un linguaggio ad alto livello

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

Espressione di chiamata di funzione

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Транскрипт:

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 Istruzione if

Soluzione esercizio Ese03_1 Scrivere un programma che chiede all utente di inserire 5 numeri double corrispondenti al prezzo in euro di 5 oggetti da comprare. Restituisce in output il costo totale da pagare per l'acquisto. Scrive in output anche il resto che il cassiere deve restituire (supponendo che l'utente paghi con una banconota da 20 Euro). NOTA1: Per acquisire in input valori double usare n = tastiera.nextdouble(); NOTA2: utilizzare SOLTANTO 2 variabili

...riprendiamo dalla lezione scorsa

Dichiarazione di variabili Dichiarare una variabile significa sceglierne il nome e il tipo. int numerocestini,uovapercestino; Il tipo di una variabile determina quale genere di valore potrà contenere. (int, double, char, etc.). Una variabile deve essere dichiarata prima di essere utilizzata in una istruzione.

Sintassi ed esempi sintassi <tipo> <nome1>,<nome2>, ; esempi int num1, valore, contapassi; double media, tassointeresse; char risposta; String domanda;

2 famiglie di tipi Un tipo classe è usato per una classe di oggetti ed ha sia dati che metodi "Java is fun" è un valore del tipo classe String Un tipo primitivo è usato per valori semplici tipo come numeri o singoli caratteri. int, double, char sono tipi primitivi.

Tipi Primitivi

Notazione esponenziale Chiamata anche scientifica o a virgola mobile (floating-point). Esempi: 865000000.0 corrisponde a 8.65e8 0.000483 corrisponde a 4.83e-4

Inprecisione nei numeri Floating-Point I numeri a virgola mobile sono spesso solo approssimazioni visto che possono contenere solo un numero finite di cifre. Quindi 1.0/3.0 è un po' meno di 1/3. Se faccio : 1.0/3.0 + 1.0/3.0 + 1.0/3.0 ottengo un po' meno di 1. ATTENZIONE!

Constanti 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 possono essere precedute dal segno + o - Le costanti floating-point possono essere scritte Con delle cifre dopo il punto decimale Usando la notazione esponenziale.

Dichiarazione di Costanti Java permette di: Definire una variabile Inizializzarla Fissarne il valore in modo da non poter essere cambiato nel corso del programma (corrisponde al nostro concetto di costante!)

Dichiarazione di Costanti Sintassi: public static final <tipo> <nome> =<valorecostante>; Esempi: public static final double PI = 3.14159; public static final String SALUTO_FINALE = "Grazie e arrivederci!"; Per convenzione, per i nomi delle costanti si usano tutte lettere maiuscole e _

Istruzione di assegnamento Uso l operatore = Sintassi: <variabile> = <espressione> Posso assegnare un valore costante o il valore di un altra variabile o il valore di una espressione. Importante: devo assegnare un valore compatible con il <tipo> della variabile. int num; num= 6; char risp; risp= s ;

Compatibilità di assegnamento Java è un linguaggio fortemente tipato. Per esempio non si può assegnare un valore float ad una variabile dichiarata int. Alcune conversioni sono però consentite. float numero = 7; è possible assegnare un valore intero ad una variabile di tipo float.

Compatibilità di assegnamento Il valore di un tipo si può assegnare ad una variabile di un qualsiasi tipo a destra nello schema sotto: byte -> short -> int -> long -> float --> double ATTENZIONE: non si può fare il contrario!

Compatibilità di assegnamento Si può anche assegnare un valore di tipo char ad una variabile di tipo int. ESEMPIO: int risposta; risposta = 's'; DOMANDA: quale valore assume la variabile risposta? RISPOSTA: risposta = 115

Casting di tipi Il casting di tipo cambia temporaneamente il tipo di una variabile dal tipo dichiarato a un altro tipo indicato tra parentesi tonde. double distanza; distanza = 9.0; int valore; valore= (int)distanza; Illegale senza(int) I valori dopo la virgola vengono troncati (non arrotondati!)

Casting di tipi ATTENZIONE al casting tra int e char ESEMPIO char simbolo='6'; int valore; valore = (int) simbolo; DOMANDA: quale valore assume la variabile valore? RISPOSTA: valore= 54

Operatori Aritmetici Espressioni aritmetiche sono formate usando gli operatori +, -, *, / insieme a variabili e numeri (operandi). Il risultato è un numero. Se entrambi gli operandi sono dello stesso tipo, il risultato è di quel tipo. Quando un operando è di tipo float e l altro è di tipo intero il risultato è di tipo float. Se gli operandi sono di vari tipi, il risultato è del tipo più a destra della lista sotto: byte -> short -> int -> long -> float -> double

L operatore divisione Se uno dei due operandi è di tipo float, l operatore divisione (/) si comporta come ci aspettiamo. ATTENZIONE! Se entrambi gli operandi sono interi, il risultato è troncato e non arrotondato. Esempio: 99/100 dà come risultato 0.

L operatore modulo (mod ) L operatore modulo (%) è usato con operandi interi e calcola il resto della divisione Esempio: 14 diviso 4 dà 3 con il resto di 2. quindi 14 % 4 è uguale a 2.

Altri operatori unari Si usano per incrementare o decrementare una variabile di 1 Non possono essere usati su costanti o espressioni Operatore Incremento ++ cont++ o ++cont Operatore Decremento -- cont-- or--cont

Operatori ++ e -- (Incremento e Decremento) Le seguenti espressioni sono equivalenti: cont++; ++cont; cont = cont + 1; cont--; --cont; cont = cont - 1;

NOTA la differenza! Se scrivo int m = 4; int ris = 3 * (++m) Dopo l esecuzione, ris vale 15 e m vale 5 Se scrivo int m = 4; int ris = 3 * (m++) Dopo l esecuzione, ris vale 12 e m vale 5

Parentesi Le espressioni aritmetiche possono contenere anche delle parentesi (, ) che cambiano l ordine di precedenza con cui applicare gli operatori In assenza di parentesi gli operatori vanno applicati seguendo le regole di precedenza (analoghe a quelle dell algebra!) e, a parità di precedenza, si procede da sinistra verso destra.

Regole di precedenza Operatori unari +, -, ++, -- Operatori binari *, /, %, Operatori binari +, -. Più alta Operatore di assegnamento = Esempio: val= -cont + n1 * ++n2 Più bassa

Altri operatori di assegnamento Esistono altri operatori di assegnamento ottenuti combinando l operatore = con gli operatori aritmetici. Sono: +=,-=,*=, /= ESEMPIO: num += 5; è equivalente a num = num + 5;

Operatori di confronto Sono operatori che applicati a variabili di "tipo numerico (o char)" danno come risultato un valore booleano true o false Esempi: num > 5; n1 + n2 >= 14; valore == n1;

Operatori di confronto in Java

Flusso del programma Flusso del programma è l'ordine con cui vengono eseguite le istruzioni in un programma. Sequenza Eseguo nell'ordine in cui sono scritte Selezione (branch) scelgo tra 2 o più possibili istruzioni Iterazione (loop) Ripeto una istruzioni un certo numero di volte

L'istruzione if Sintassi if ( <valore booleano> ) <istruzione_1>; <istruzione_2>; <istruzione_3>;... Significato <istruzione_1> viene eseguita soltanto se <valore booleano> è true

Istruzioni composte Quando un gruppo di istruzioni è racchiusto tra coppia di parentesi graffe ({}), esse formano una unica istruzione composta. Sintassi: { } Istruzione_1; Istruzione_2;

Istruzioni composte Uso istruzione composta per eseguire diverse istruzioni dentro un if if (cont < 3) { } totale = 0; System.out.println("tutto sbagliato!"; prezzo = 50;......

Vediamo i programmi: larger2 larger3 larger5

Vediamo i programmi: misuracerchio.java misuracerchio2.java

Esercizi codice Ese04_x Esercizio 1 (utilizzare media_new) Scrivere un programma che chiede all'utente di inserire 5 numeri interi tra 1 e 30 che corrispondono ai voti ottenuti agli esami da uno studente. Calcola poi la media e la scrive in output. Se la media dei punteggi è maggiore di 24 scrive un messaggio di congratulazioni. Prima di terminare, scrive un saluto. Esercizio 2 Scrivere un programma che chiede all'utente di inserire 7 numeri interi tra 1 e 30 che corrispondono ai voti ottenuti agli esami da 7 studenti. Calcola poi quanti sono i voti "sufficienti" (>= 18) e scrive sullo schermo quanti sono gli studenti che hanno passato l'esame.

Esercizi codice Ese04_x Esercizio 3 (utilizzare Ese03_1) Scrivere un programma che simula un acquisto di 5 oggetti dal costo inferiore ai 4 euro ciascuno. Si assume che l'utente paghi con una banconota da 20 Euro e che il cassiere dia il resto solo in monete (da 2 e 1 Euro + tutte le monete da 50, 20,10,5,2,1 centesimi). Il cassiere ha a disposizione tante monete per ogni tipo e dà il resto con il minor numero di monete possibile. Il programma chiede all utente di inserire i 5 prezzi (double) e restituisce in output la spesa totale, il resto dei venti euro e quante monete per ogni tipo verranno restituite come resto.

ESEMPIO di output in esecuzione: Inserisci il prezzo: 2,30 Inserisci il prezzo: 2,15... Il totale da pagare e' 12,25. Resto 7,75. Dare: 3 moneta da 2 Euro 1 moneta da 1 Euro 1 moneta da 50 centesimi 2 moneta da 20 centesimi 1 moneta da 5 centesimi