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

Documenti analoghi
Programmazione in Java (I modulo)

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

Programmazione in Java (I modulo) Lezione 4

Introduzione alla programmazione in linguaggio C

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Dati due punti sul piano calcolare la loro distanza

Introduzione alla programmazione. Alice Pavarani

Programmazione. Tipi di dato primitivi. Francesco Tiezzi. Scuola di Scienze e Tecnologie Sezione di Informatica Università di Camerino

Gocce di Java. Gocce di Java. Tipi di dato primitivi. Pierluigi Crescenzi. Università degli Studi di Firenze

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Basi della programmazione in Java

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

Lezione 6 Introduzione al C++ Mauro Piccolo

Java e i Tipi di dati primitivi. Parte 3

Tipi di dato e variabili. Walter Didimo

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

Le basi del linguaggio Java

Programmazione I - corso B a.a prof. Viviana Bono

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

L AMBIENTE CODE BLOCKS E L IO

Laboratorio di Programmazione

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione

Linguaggio C: Variabili e assegnamento e semplici comandi di I/O

Linguaggio Macchina. Numeri binari. E il linguaggio che il microprocessore comprende. In Esadecimale

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Codifica dell informazione

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

I Fondamenti del Linguaggio

L AMBIENTE CODE BLOCKS E L IO

La programmazione nel linguaggio JavaScript. Il programma

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Javascript: il browser

Esonero di Informatica I. Ingegneria Medica

Linguaggi di Programmazione I Lezione 9

Tipi primitivi ed array

1 Tipi numerici Tipi interi Virgola mobile Conversioni e promozioni Tipi ed espressioni... 5

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito.

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

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

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Fondamenti di Informatica T-1

Javascript: il browser

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

Sviluppo di programmi

Linguaggio C: Espressioni

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Elementi di Informatica A. A. 2016/2017

Laboratorio di Informatica I

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Laboratorio di Informatica I

Ing. Lorenzo Vismara

Tipi di dato primitivi

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Fondamenti di Informatica T1 Introduzione al linguaggio Java Input/Output-Variabili-Tipi

Fondamenti di Informatica T-1

Operazioni numeriche - Input

Informatica AA 2005/06. Programmazione M.A. Alberti. Operatori in Java 1. Operatori in Java. Espressioni aritmetiche. Espressioni booleane

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1.

Tipi di dato semplici

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a

Esercizi Programmazione I

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Informatica Applicata

Tipi di dato semplici

Fondamenti di Informatica T-1

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

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Fasi di creazione di un programma

Funzioni, Stack e Visibilità delle Variabili in C

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple.

ESPRESSIONI. Ivan Lanese

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Variabili e Funzioni. Informatica 1 / 19

Introduzione al linguaggio C Primi programmi

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

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Primi programmi in C

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

1

ciclo di vita della soluzione (informatica) d un problema

Transcript:

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

La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo analizzato riga per riga due semplici programmi Java. Abbiamo provato a usare l editor per scrivere/correggere un programma Java. Abbiamo provato a scrivere, compilare ed eseguire dei piccoli programmi Java.

Terminologia Un programma è una sequenza di istruzioni che verranno eseguite dal computer. La persona che scrive il programma è il programmatore (programmer). La persona che interagisce (usa) il programma è l utente (user).

Terminologia Un programma viene scritto in un linguaggio detto linguaggio di programmazione. Il compilatore (interprete) lo traduce in linguaggio macchina, perchè possa essere eseguto dal computer. Perchè il programma possa essere compreso dal compilatore deve essere ben scritto e rispettare tutte le regole grammaticali del linguaggio di programmazione. Tali regole sono chiamate la sintassi del linguaggio.

Programmare Programmare è un processo creativo Bisogna imparare delle tecniche standard e integrarle con le soluzioni dei problemi che vogliamo risolvere. Tali tecniche di programmazione sono poi applicabili a quasi tutti i linguaggi di programmazione (Java incluso).

Algoritmi L essenza di un programma consiste nell algoritmo utilizzato. Un algoritmo descrive il modo con cui un azione dovrà essere realizzata. Una volta che abbiamo definito bene l algoritmo, esprimerlo in Java (o in un altro linguaggio di programmazione) non è un compito difficile.

Algoritmi Un algoritmo è un insieme di istruzioni per risolvere un problema. Un algoritmo deve essere espresso in maniera completa e precisa dal punto di vista matematico. Un algoritmo può essere espresso in un linguaggio naturale (italiano, inglese, ) o in pseudocodice.

Algoritmi Utilizziamo algoritmi nella vita quotidiana tutte le volte che:, seguiamo le istruzioni per il montaggio di una apparecchiatura, per impostare il ciclo di lavaggio di una lavastoviglie, per prelevare contante da uno sportello Bancomat, ecc..

Algoritmi Un algoritmo è una sequenza di passi che, se intrapresa da un esecutore, permette di ottenere i risultati attesi (output) a partire dai dati forniti (input). Una volta in grado di specificare un algoritmo per risolvere un problema, siamo anche in grado di automatizzare il procedimento descritto dall algoritmo.

Curiosità Il termine algoritmo deriva dal nome del matematico persiano Muhammadibn Musa al-khwarizmi (Corasmia 780 circa - 850 circa). Esercitò la professione nella città di Baghdad, dove insegnava, e introdusse nel mondo arabo i numeri indiani. La sua opera Il calcolo degli indiani venne successivamente tradotta in latino da un monaco europeo, con il titolo Liber algarismi - (Il libro di al- Khwarizmi).

Dall algoritmo al programma.. L algoritmo in psedocodice viene tradotto dal programmatore in un linguaggio di programmazione seguendo la sintassi del linguaggio. Il programma viene tradotto dal compilatore (interprete) in linguaggio macchina per essere eseguito. Il compilatore ci aiuta anche a correggere gli errori del programma

Errori Un errore in un programma è chiamato bug. Il processo di eliminazione errori è chiamato debugging. Tre tipi di errori Errori di sintassi Errori di esecuzione Errori logici

Errori di sintassi (sintax errors) Sono errori grammaticali le regole di scrittura sono molto strette Il compilatore rileva gli errori di sintassi e scrive un messaggio di errore Esempio: dimenticare un ; alla fine di una istruzione

(Errori di esecuzione) Runtime Errors Errori che vengono individuati mentre si esegue il programma (non durante la compilazione) Quando il computer trova un errore, il programma termina e viene stampato sullo schermo un messaggio di errore. Esempio: attempting to divide by 0

Errori Logici (Logic Errors) Errori che non vengono segnalati nè durante la compilazione nè durante l esecuzione ma che portano il programma a produrre risultati sbagliati. DIFFICILI da individuare! Occorre testare il programma con particolari dati in input

Riutilizzare il Software Programmi non sono di solito creati da zero In genere contengono delle parti che sono state create in altri contesti Si utilizzano delle classi generali già definite Java fornisce già molte classi Controllare la documentazione Java

Riutilizzare il Software

Variabili Variabili sono utilizzate per memorizzare dati come numeri e lettere. sono una specie di contenitore sono implementate come locazioni di memoria Il dato memorizzato in una variabile è chiamato il suo valore. il valore è conservato nella locazione di memoria. Il valore di una variabile può essere cambiato.

Memoria Principale RAM

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> <identif_1>,<identif_2>, ; esempi int num1, valore, contapassi; double media, tassointeresse; char risposta;

Identificatori Java Un identificatore è un nome (es. il nome di una variabile). Identificatori possono contenere soltanto: Lettere Cifre (0.9) il carattere underscore (_) Il primo simbolo non può essere una cifra. Identificatori possono essere lunghi a piacere Java è case sensitive, valore, Valore, e VALORE sono identificatori diversi.

Parole chiave o riservate Alcune parole che fanno parte proprio del linguaggio Java non possono essere usate come identificatori. Esempi: int, public, class,

Convenzioni sui nomi Tipi Class iniziano con lettera maiuscola (es. String). Tipi Primitivi iniziano con lettera minuscola (es. int). Variabili sia di tipo class che primitive iniziano con lettera minuscola (es. mionome, numero). Nomi formati da più parole contengono le maiuscole all inizio delle successive parole

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

Tipi Primitivi 4 tipi integer (byte, short, int, long) int è il più utilizzato 2 tipi floating-point (float,double) double è il più utilizzato 1 tipo carattere (char) 1 tipo booleano (boolean)

Tipi Integer 0-1 365 12000 Esempi Tipi Floating-point 0.99-22.8 3.14159 5.0 Tipi carattere 'a' 'A' '#' ' ' Tipi Booleani true false

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!

Tipi Primitivi

Dichiarare le Variabili All inizio della sezione del programma public static void main(string[] args) { /* dichiara variabili qui */... } (Immediatamente prima del loro utilizzo)

Istruzioni di assegnamento Utilizzate per dare un valore ad una variabile risposta = 42; media = 55.3 / 7; scala = b ; Il simbolo di =" si chiama operatore di assegnamento.

Sintassi dell istruzione di assegnamento <variabile> = <espressione> dove espressione può essere un altra variabile, una costante (es. un numero) o qualche espressione aritmetica o logica. (che utilizza operatori aritmetici o logici) NOTA: espressione può contenere anche la stessa variabile Esempio: somma = somma + 4;

Istruzioni di assegnamento L espressione a destra dell operatore di assegnamento (=) è calcolata per prima. Il risultato è poi utilizzato per assegnare il valore alla variabile posta a sinistra del segno = Esempio: somma = somma + 4; dopo l istruzione il valore della variabile somma risulterà incrementato di 4 unità.

Inizializzare le Variabili Una variabile che è stata dichiarata ma a cui non è stato dato un valore si dice non inizializzata. In genere tutte le variabili hanno un qualche valore di default ( null per quelle di tipo class, 0 per quelle primitive numeriche) Meglio non fidarsi dei valori di default e inizializzarle!

Inizializzare le Variabili: sintassi L inizializzazione può essere fatta insieme alla dichiarazione: tipo var1 = valore1, var2 = valore2, ;

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;

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. Assumiamo che i costi singoli siano <=3 Euro. 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 le variabili prezzo, totale, resto

esercizio Ese03_1plus Continuare il precedente esercizio, preparando il resto da restituire al cliente. Il cassiere deve dare il minor numero possibile di «pezzi» e dispone di: Carte da 5 Euro Monete da 2 e 1 Euro Monete da 50, 20 e 10 cent Quale algoritmo utilizziamo?

Analizziamo una soluzione per Ese02-4 assegnato nella scorsa lezione di laboratorio