Elementi di Informatica di base1 Parte 3 Elementi di Informatica di base Dott.ssa Elisa Tiezzi.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

INFORMATICA Altre Istruzioni di I/O
LINGUAGGIO DI PROGRAMMAZIONE C
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
Selezione - approfondimento
I DATI I PRINCIPALI TIPI DI DATO UTILIZZATI IN PROGRAMMAZIONE
Algoritmi e Programmazione
Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A CDL in Ingegneria Meccanica - A.A Tipi di dati Ing. Simona Colucci.
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Tipi di dati Ing. Simona Colucci.
Anno accademico Il preprocessore del linguaggio C.
Il linguaggio C Gli operatori e le espressioni C Language
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Programmazione Procedurale in Linguaggio C++
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Caratteri e stringhe di caratteri
Funzioni definite dall’utente
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Introduzione agli stream e alle classi
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Organizzazione del corso
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
Dichiarazioni e tipi predefiniti nel linguaggio C
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
I File.
Il Linguaggio C.
Java base I: Sintassi e tipi di dati
Programmazione in Java
Programmazione in Java Claudia Raibulet
JAVA Franco Bombi 8 ottobre FB Introduzione Java è un linguaggio di impiego generale, basato su classi e orientato agli oggetti Java.
CODIFICA Da flow-chart a C++.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Parte 4 Elementi di Informatica di base
Tipi di dati elementari
Lo sviluppo del software e i linguaggi di programmazione
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Tipi di dati semplici in C (1/3)
Lezione 3 Struttura lessicale del linguaggio
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
1 Parte 3 Fondamenti di programmzione. 2 Cosa è Java Linguaggio di programmazione familiare Simile a C e C++ Linguaggio di programmazione orientato a.
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Introduzione a Javascript
Rappresentazione dell’informazione nel calcolatore.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Programmazione in Java
Algoritmi e basi del C Struttura di un programma
Microsoft Access Chiavi, struttura delle tabelle.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
Informatica 6 Tipi di dato. Nelle celle di memoria di un calcolatore ci sono solo “0” e “1”, fisicamente realizzati tramite due diversi livelli di tensione.
La codifica dei numeri.
Problemi, algoritmi e programmazione
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Appunti su formati numerici. Tipi numerici Il C dispone di due tipi numerici: tipi interi e tipi reali; I tipi reali sono anche detti floating, ovvero.
Lezione 2 Fondamenti di Programmazione.
Lezione 2 Fondamenti di Informatica-Modulo Fondamenti di Programmazione.
Transcript della presentazione:

Elementi di Informatica di base1 Parte 3 Elementi di Informatica di base Dott.ssa Elisa Tiezzi

Elementi di Informatica di base2 Cosa è Java Linguaggio di programmazione familiare –Simile a C e C++ Linguaggio di programmazione orientato a oggetti –Facile da modificare e altamente riutilizzabile Linguaggio robusto –Restrizioni per evitare che le applicazioni generino errori Linguaggio ad alte prestazioni –Strumenti per la gestione di più processi Linguaggio portabile –Applicazioni eseguibili su Windows, Linux o MacOS Linguaggio semplice –Pochi strumenti base e molte librerie

Elementi di Informatica di base3 Compilatori tradizionali codice sorgente compilatore Windows compilatore Linux compilatore MacOS codice eseguibile Windows codice eseguibile Linux codice eseguibile MacOS

Elementi di Informatica di base4 Compilatore Java codice sorgente compilatore Windows compilatore Linux compilatore MacOS interprete bytecode Windows interprete bytecode Linux interprete bytecode MacOS Java bytecode

Elementi di Informatica di base5 Programmazione Concetti base: –dati –istruzioni Dati: –variabili –tipi Istruzioni: –istruzioni base –strutture di controllo –sotto-programmi

Elementi di Informatica di base6 Variabili e tipi Variabile: –locazione di memoria a cui è dato un nome con cui chiamarla ed utilizzarla programmatore usa il nome senza necessariamente sapere che esso faccia riferimento ad una locazione di memoria Tipo: –ogni variabile ha un tipo che indica che genere di dati la variabile può contenere una variabile può contenere dati di tipo intero (ad es., 15 o 2038), oppure dati di tipo carattere (ad es., a o £) oppure dati di tipo stringa (ad es., java o pascal)

Elementi di Informatica di base7 Istruzioni base Assegnazioni ed espressioni: –comandi per leggere e scrivere dati in una variabile e per fare calcoli esempio: interest = amount * 0.07; Input/Output: –comandi per ricevere dati dallutente o da un file su disco e comandi per inviare dati nellaltra direzione

Elementi di Informatica di base8 Strutture di controllo Un programma è una sequenza di istruzioni Il calcolatore esegue le istruzioni nellordine in cui esse appaiono, una dopo laltra –molto limitato Le strutture di controllo sono istruzioni speciali che consentono di modificare il normale flusso di istruzioni Due tipi base di strutture di controllo –cicli permettono di ripetere una sequenza di istruzioni –diramazioni permettono di decidere tra due o più diverse alternative di proseguimento

Elementi di Informatica di base9 Sotto-programmi I programmi sono spesso abbastanza complessi da dover essere scomposti in pezzi più maneggevoli Un sotto-programma consiste di istruzioni per svolgere un certo compito raggruppate insieme in ununità a cui è dato un nome il nome può essere usato come sostituto dellintero insieme di istruzioni Esempio –uno dei compiti del programma consiste nel disegnare un rettangolo sullo schermo scrivere le necessarie istruzioni e raggrupparle in un sotto-programma di nome drawRect ogni volta che il programma deve disegnare un rettangolo, lo può fare con una semplice istruzione: drawRect(); Vantaggi: risparmio di scrittura, organizzazione, riutilizzo

Elementi di Informatica di base10 Che cosa è una variabile? Una locazione in cui memorizzare dati ed a cui è assegnato un nome –un contenitore di dati Può contenere un solo tipo di dati –per esempio, solo numeri interi, solo numeri reali oppure solo caratteri

Elementi di Informatica di base11 Creazione di variabili Tutte le variabili devono essere dichiarate prima di poterle utilizzare Una dichiarazione di variabile associa un nome alle locazioni di memoria ad essa corrispondenti e specifica il tipo di dati che la variabile conterrà: Tipo Variabile_1, Variabile_2, … ; Per esempio, per creare tre variabili che memorizzino il numero di cesti, il numero di uova per cesto ed il numero totale di uova: int numberOfBaskets, eggsPerBasket, totalEggs;

Elementi di Informatica di base12 Nomi di variabili: identificatori Regole - devono essere rispettate tutti gli identificatori Java devono obbedire alle stesse regole non devono cominciare con una cifra devono contenere solo numeri, lettere, simboli _ e $ (ma è meglio evitare $, in quanto è riservato per scopi particolari) sono sensibili alle maiuscole ( ThisName e thisName sono due diversi nomi di variabili) Regole di programmazione - dovrebbero essere rispettate usare sempre nomi che abbiano un significato (ad esempio, eggsPerBasket invece di n o di count ) iniziare i nomi di variabile con una lettera minuscola iniziare le parole interne al nome con una lettera maiuscola (meglio eggsPerBasket di eggsperbasket ) evitare di usare $ in quanto è riservato a scopi particolari

Elementi di Informatica di base13 Due tipi di tipi di dati in Java primitivi I tipi più semplici Non possono essere decomposti in altri tipi Contengono solo valori Esempi: int - intero double - reale char - carattere classi Più complessi Composti di altri tipi (primitivi o classi) Contengono sia dati che metodi Esempio: Integer String

Elementi di Informatica di base14 Tipi di Dati Primitivi

Elementi di Informatica di base15 Quali sapere per ora int –semplicemente numeri interi –possono essere positivi e negativi –nessun punto decimale char –semplicemente un singolo carattere –utilizza le virgolette singole per esempio, `A`; double –numeri reali, sia positivi che negativi –ha un punto decimale (parte frazionaria) –due formati numero con punto decimale, a.e notazione e o scientifica, a.e e2, che significa x 10 2

Elementi di Informatica di base16 Assegnare valori alle variabili Istruzione di assegnazione –variabile = espressione; esempio: answer = 42; Operatore di assegnazione: = –non lo stesso dellalgebra –significa: assegna il valore dellespressione alla destra del segno di uguale alla variabile alla sinistra. –se numberOfCards ha il valore 7 e handicap ha il valore 2, allora la seguente istruzione imposta il valore di score a 9: score = numberOfCards + handicap; La variabile può apparire in entrambi i lati: int count = 10; count = count - 1; –nuovo valore di count = = 9

Elementi di Informatica di base17 Assegnare valori iniziali alle variabili I valori iniziali possono o meno essere assegnati quando le variabili sono dichiarate: int totalEggs, numberOfBaskets, eggsPerBasket; oppure int totalEggs = 0; int numberOfBaskets = 0; int eggsPerBasket = 0; Suggerimento: è una buona regola di programmazione inizializzare sempre le variabili.

Elementi di Informatica di base18 Cambiare il valore di una variabile Generalmente il valore viene cambiato (è assegnato un valore diverso) in qualche parte del programma Può essere calcolato a partire da altri valori: totalEggs = numberOfBaskets * eggsPerBasket; Oppure può essere letto in input –vedremo più avanti

Elementi di Informatica di base19 Operatori di assegnazione specializzati Unabbreviazione per eseguire unoperazione ed assegnare un nuovo valore ad una variabile Forma generale: var = expression; –equivalente a: var = var (expression); – è +, -, *, /, or % Esempi: amount += 5; //amount = amount + 5; amount *= 1 + interestRate; //amount = amount * (1 + interestRate); La parte destra è trattata come una singola unità (come se vi fossero delle parentesi)

Elementi di Informatica di base20 Costanti Le costanti sono simili alle variabili, ma possono contenere un solo valore per tutta la durata della loro esistenza. In Java si dichiarano le costanti premettendo la parola chiave final. E convenzione usare lettere maiuscole. Es.: final int NUMERO_MASSIMO_POSTI = 427 E buona pratica usare costanti invece di valori numerici (letterali) perche si evita di modificarli inavvertitamente.

Elementi di Informatica di base21 Valore di ritorno Le espressioni ritornano valori: il numero prodotto da unespressione è il valore di ritorno int numberOfBaskets, eggsPerBasket, totalEggs; numberOfBaskets = 5; eggsPerBasket = 8; totalEggs = numberOfBaskets * eggsPerBasket; –nellultima linea numberOfBaskets ritorna il valore 5 e eggsPerBasket ritorna il valore 8 –numberOfBaskets * eggsPerBasket è unespressione che ritorna il valore intero 40

Elementi di Informatica di base22 Conversione di tipo La conversione di tipo cambia il tipo di dato di un valore –Non è possibile assegnare un valore di un tipo ad una variabile di un tipo diverso, a meno che non lo si converta in modo da coincidere con il tipo della variabile La conversione di tipo modifica solo il tipo del valore di ritorno, non il tipo della variabile –ad esempio: double x; int n = 5; x = n; poiché n è un int ed x è un double, il valore ritornato da n (non n ) deve essere convertito in un double prima di essere assegnato ad x

Elementi di Informatica di base23 Conversione implicita La conversione di tipo è eseguita implicitamente (in modo automatico) quando un tipo più basso viene assegnato ad un tipo più alto secondo la seguente gerarchia: byte --> short --> int --> long --> float --> double Ad esempio: double x; int n = 5; x = n; –il valore di ritorno di n è convertito (in modo implicito) in un double, e quindi assegnato ad x –x contiene 5.0 –il tipo di dato della variabile n è invariato (ovvero ancora int )

Elementi di Informatica di base24 Ancora conversione implicita Alcune espressioni includono valori di tipo diverso Tutti i valori sono automaticamente (in modo implicito) fatti avanzare al livello più alto prima di eseguire il calcolo del valore di ritorno Ad esempio: double a; int n = 2; float x = 5.1; double y = 1.33; a = (n * x)/y; –i valori di n ed x sono automaticamente convertiti al tipo double prima di eseguire la moltiplicazione e la divisione

Elementi di Informatica di base25 Conversione esplicita La conversione esplicita è necessaria in tutti i casi non coperti da quella implicta Ad esempio: int points; double distance = 9.0; points = distance; –lultima istruzione è illegale (anche se la parte frazionaria è 0) Porre di fronte al valore il cui tipo deve essere convertito il nuovo tipo tra parentesi: points = (int)distance; –questistruzione è legale

Elementi di Informatica di base26 Troncamento Conversione da reale ad intero non arrotonda, ma tronca –la parte frazionaria viene semplicemente ignorata Ad esempio: int numberOfDollars; double dinnerBill = 26.99; numberOfDollars = (int) dinnerBill; –il valore di numberOfDollars è ora 26

Elementi di Informatica di base27 Divisione reale e divisione intera Se almeno uno dei valori che occorrono nella divisione è di tipo float o double, allora non si ha nessun troncamento (tutti i valori sono convertiti al tipo più alto) Il troncamento si verifica se tutti i valori sono interi Ad esempio: int a = 4, b =5, c; double x = 1.5, y; y = b/x; c = b/a; –il valore di y è mentre quello di c è 1

Elementi di Informatica di base28 Caratteri come interi Il tipo di dati char memorizza un singolo carattere stampabile Ad esempio: char answer = `y`; I caratteri sono in realtà memorizzati come interi secondo un codice speciale –ogni carattere stampabile (lettera, cifra, segno di interpunzione, spazio e tabulazione) ha associato un codice intero distinto –i codici sono distinti a seconda delle maiuscole o delle minuscole ad esempio, 97 potrebbe essere il codice di a e 65 quello di A ASCII e Unicode sono due codici molto frequenti Unicode include tutti i codici ASCII più altri codici per linguaggi con alfabeto diverso da quello italiano Java usa Unicode

Elementi di Informatica di base29 Conversione di carattere in intero La conversione di un valore di tipo char produce il suo codice Unicode Ad esempio, eseguendo le seguenti istruzioni char answer = `7`; int intAnswer = answer; il valore di intAnswer sarebbe 55 (non 7) in quanto 55 è il codice Unicode del carattere 7

Elementi di Informatica di base30 Imprecisione di numeri in virgola mobile I calcolatori memorizzano i numeri utilizzando un numero fissato di bit, per cui non tutti i numeri reali possono essere codificati in modo esatto –un numero infinito di bit sarebbe richiesto per rappresentare in modo esatto ogni numero reale –ad esempio, se il calcolatore può rappresentare solo 10 cifre dopo il punto decimale, allora il numero reale 1/3= sarebbe memorizzato come (che non è esattamente 1/3) Gli interi, al contrario, sono memorizzati in modo esatto –se il valore 2 è assegnato ad una variabile di tipo int, il suo valore è esattamente 2

Elementi di Informatica di base31 Loperatore di modulo: % Usato con i tipi interi a%b restituisce il resto della divisione di b per a Ad esempio: int a = 14; b = 4, c; c = a%b; –c ora ha il valore 2, che è il reso della divisione di 14 per 4 Ha molte applicazioni –consente di contare modulo 2, 3 o qualsiasi altro numero consente di distinguere numeri pari da numeri dispari –consente di eseguire unoperazione solo in corrispondenza dei multipli di un dato numero

Elementi di Informatica di base32 Precedenze e parentesi Le espressioni Java soddisfano regole simili allalgebra dei numeri reali Si usano le parentesi per forzare la precedenza –Tranne i casi in cui la precedenza è corretta ed ovvia, conviene usare le parentesi per facilitare la lettura dellespressione

Elementi di Informatica di base33 Operatori di incremento e decremento Utilizzati per aumentare o diminuire il valore di una variabile di 1 Incremento –++ ad esempio, count++; Decremento –-- ad esempio, count--; La variabile può essere incrementata (o decrementata) prima o dopo aver usato il suo valore attuale. Ad esempio, dopo int count=5; int n = 2*(++count); int m = 2*(count++); sia n che m hanno il valore 12, mentre count ha il valore 7