Rappresentazione delle informazioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Rappresentazione delle informazioni"

Transcript

1 Rappresentazione delle informazioni Rappresentazione delle informazioni L informatica si occupa di rappresentare ed elaborare informazioni diverse: numeri caratteri audio immagini video I caratteri: ASCII standard Rappresentazione dei caratteri I simboli o caratteri appartenenti ad un alfabeto vengono codificati (cioè rappresentati ) mediante sequenze di bit: una diversa sequenza per ciascun diverso carattere. Uno dei codici più noti e usati è il codice ASCII (American Standard Code for Information Interchange), usa una sequenza di 7 bit per ciascun carattere: ci sono 128 (=2 7 ) sequenze diverse, utilizzate anche per lettere, segni di punteggiatura, cifre decimali, ecc. 1

2 I caratteri: ASCII esteso Dato che l unità elementare di informazione nei calcolatori è il byte (= 8 bit), si è passati ad usare, quasi sempre, il codice ASCII esteso, che usa una sequenza di 8 bit per ciascun carattere degli alfabeti occidentali: ci sono 256 (=2 8 ) sequenze diverse, utilizzate anche per vocali accentate e altre lettere speciali (es. ß tedesca, ç francese) le sequenze con la prima cifra uguale a zero coincidono con il codice ASCII. (Appendice G) I caratteri: ASCII esteso La codifica è: posizione n il primo carattere il secondo l ultimo La sequenza di simboli Ciao viene codificata in ASCII nel modo seguente: C i a o n Le lettere sono rappresentabili in 7 bit. I caratteri: ASCII esteso I primi 32 caratteri del codice ASCII (con codice da 0 a 31) sono caratteri di controllo: 9 tabulatore \t 10 nuova riga \n 13 invio \r I caratteri da 32 a 127 sono caratteri stampabili: 32 spazio da 48 a 57 caratteri numerici, le cifre decimali 0, 1 da 65 a 90, da 97 a 122 caratteri alfabetici (maiuscoli e minuscoli) da 33 a 47, da 58 a 64, da 91 a 96, da 123 a 127 caratteri di interpunzione e simboli speciali. I caratteri: Unicode Per rappresentare i segni grafici utilizzati da tutti gli alfabeti del mondo servono molti più simboli diversi codifica Unicode usa una sequenza di 16 bit per ciascun segno grafico: ci sono (= 2 16 ) sequenze diverse le sequenze con le prime otto cifre uguali a zero coincidono con il codice ASCII esteso. 2

3 I caratteri (codice Unicode) Rappresentazione delle informazioni Il linguaggio Java utilizza Unicode come insieme di simboli; in ogni linguaggio di programmazione i simboli servono per costruire le unità lessicali. Ogni informazione che vogliamo rappresentare è caratterizzata da un valore e da un suo tipo (tipo di dato). Non sempre possiamo o vogliamo rappresentare direttamente il valore, ma vogliamo poterci riferire ad esso tramite un nome. Astrazione Astrazione L evoluzione dei linguaggi di programmazione (basso ad alto livello) ha portato all introduzione del concetto di variabile: la locazione di memoria viene nascosta all utente, che vi accede tramite il nome della variabile. Le operazioni che si possono fare sulla variabile dipendono dal suo tipo: l utente non sa come avviene realmente la somma tra due numeri interi (reali) o il loro confronto. Si ha una astrazione sul dato e sul suo tipo. 3

4 Astrazione L evoluzione successiva dei linguaggi permetterà all utente di inventare dei nuovi tipi di dati, dei nuovi concetti. Tipo di Dato Astratto 1. è un insieme di elementi chiamato dominio 2. ha un nome 3. possiede delle funzioni che operano sul dominio 4. possono esserci costanti che lo caratterizzano. Variabile e Tipi base Variabile e Tipi base Nei corsi di matematica quando scriviamo x R e diciamo x è una variabile reale intendiamo dire che x è un nome che indica un elemento generico dell insieme R dei numeri reali. Nei corsi di informatica con x è una variabile reale intendiamo dire che x è un nome che indica una posizione di memoria che conterrà un elemento generico di R (con R R R). Variabile e Tipi base R insieme dei numeri reali (infinito e continuo). R insieme dei numeri reali rappresentabili nel calcolatore (finito e discreto). La posizione di memoria è caratterizzata dal tipo, che è l insieme da cui la variabile può estrarre i suoi valori 3 reale è diverso da 3 intero 4

5 Variabile e Tipi base Ogni linguaggio ha dei tipi base per rappresentare informazione numerica e non numerica (caratteri, valori logici). Anche il linguaggio Java possiede dei tipi base che non sono tipi di dato astratto, dal momento che sono predefiniti: non sono concetti nuovi, ma sono concetti fondamentali sui quali i concetti nuovi si baseranno. Variabile e Tipi base Tipi base o primitivi (par. 2.1, 2.5) numeri interi byte, short, int, long numeri reali float, double caratteri char logici boolean Definizione di una variabile Sintassi: nometipo nomevariabile; nometipo nomevar1, nomevar2; Esempi. Variabile e Tipi base int n, numeroanni; int dimensione; double area, saldo; boolean errore; char lettera; Variabile e Tipi base Le operazioni che possiamo fare su una variabile sono: accesso : individuare la posizione di memoria ed estrarre il valore (lettura) assegnamento : individuare la posizione di memoria e introdurre il valore (scrittura) 5

6 Variabile e Tipi base Nelle istruzioni di un programma, si ha: accesso: quando la variabile compare in una istruzione e se ne utilizza il valore assegnamento: quando il valore le viene attribuito: lettura del valore in una acquisizione di dati dall esterno in una istruzione di assegnazione (par. 2.2) Assegnazione Assegnazione Sintassi: (par. 2.2) nomevariabile = espressione; Esempi. //con riferimento alle dichiarazioni precedenti n = 3+5; area = 25.67; saldo = 20000; lettera = 'x'; lettera = x ; //Errore Assegnazione Quando una variabile viene definita le viene associata un area di memoria del tipo attribuito con la definizione: int a; double b; a b Non si possono ridefinire le variabili. 6

7 Assegnazione Quando si esegue l assegnazione, il valore viene inserito nell area corrispondente a=3; b=3; 3 3 a Le due aree di memoria sono di tipo diverso e la sequenza di bit contenuta è diversa, anche con uguale numero di bit. b Assegnazione Il simbolo per l istruzione di assegnazione è = NON lo si deve confondere con un simbolo matematico di uguaglianza o di confronto. Il suo significato è: il valore dell espressione a destra del simbolo = viene inserito nella locazione corrispondente alla variabile che sta a sinistra. Nel Pascal, il simbolo è := proprio per distinguerlo dal simbolo di uguaglianza Assegnazione Definizione e assegnazione in un unica istruzione: si può eseguire una assegnazione anche in fase di definizione: int k=25; La definizione di una variabile può essere fatta in un qualunque punto del programma ma deve essere sempre prima del suo uso. Assegnazione Osserviamo queste due assegnazioni e osserviamo che la variabile a è a destra o a sinistra del simbolo di assegnazione: ciò implica un diverso significato per l utilizzo di a: a=5; //assegnamento su a (scrittura) //a è a sinistra k=a; //accesso per a //a è a destra (lettura) 7

8 Assegnazione Osserviamo queste assegnazioni: a = 5; //assegnamento a = a + 1; /*accesso e assegnamento*/ Quanto valea? 5 a = a + 1; 6 In alcuni linguaggi di pseudocodifica, il simbolo per l assegnazione è Assegnazione Nei primi linguaggi le variabili avevano per il tipo una definizione di default. In Java una variabile può essere usata solo se è stata precedentemente definita, ossia se è stata dichiarata con il suo tipo. Esempio. int c=7; c1=c; //Errore: c1 non è definita Il compilatore segnala: cannot find symbol Assegnazione Diversamente da altri linguaggi, in Java una variabile definita in un metodo può essere usata (accesso) solo se è stata precedentemente inizializzata, ossia se ha un valore. Esempio. int c2; a=c2; //Errore: c2 non ha valore Il compilatore segnala: variable c2 might not have been initialized Assegnazione Nell assegnazione si deve rispettare il tipo di dato. Esempio. int m; double y = 23.75; m = y; //Errore: m è intero Il compilatore segnala: possible loss of precision 8

9 Tipo Intero Tipi base Si rappresenta un intervallo limitato, quindi finito, dei numeri interi (par. 4.1) Dominio: Z Z Il nome del dominio varia a seconda del numero di bit destinati alla rappresentazione: si hanno nomi diversi e anche insiemi diversi bit byte byte 8 1 short 16 2 int 32 4 long 64 8 Tipo Intero Il tipo di rappresentazione su n bit è 1 n-1 il primo è il bit del segno, i successivi n-1 sono per il numero. Dal momento che ogni bit assume due valori (0,1), avendo a disposizione n-1 bit si possono rappresentare 2 n-1 valori diversi. Tipo Intero Per il segno del numero si assume: 0 per il positivo 1 per il negativo Il numero 0, che non ha segno, viene scritto con il bit del segno 0 ed è rappresentato da una sequenza di bit tutti nulli. In tale modo, lo zero occupa un posto nell intervallo dei numeri positivi. 9

10 Tipo Intero Si vuole rappresentare la struttura algebrica dell insieme Z dei numeri interi: (Z, +) Z insieme + operazione esiste un elemento neutro, lo zero ogni numero ha un inverso, chiamato opposto L insieme Z è dato dall intervallo [-2 n-1, 2 n-1-1] Tipo Intero I vari domini per gli interi sono: (Cap.4 Tabella 1) byte n=8 [-2 7, 2 7-1] = [-128, 127] short n=16 [-2 15, ] = [-32768, 32767] int n=32 [-2 31, ] long n=64 [-2 63, ] Tipo Intero Le costanti che caratterizzano il dominio sono gli estremi dell intervallo: -2 n-1 e 2 n-1-1. In Java esistono dei nomi che rappresentano questi estremi dell intervallo, e sono legati al nome del tipo: Byte.MIN_VALUE Byte.MAX_VALUE Short.MIN_VALUE Short. MAX_VALUE Integer.MIN_VALUE Integer. MAX_VALUE Long.MIN_VALUE Long. MAX_VALUE Tipo Intero Le operazioni che possiamo fare sono: + somma sottrazione prodotto / divisione (troncata) % resto della divisione Operatori di confronto: < > <= >= ==!= 10

11 Tipo Intero La divisione tra interi è troncata. Esempi. 32 /64 e 1 /2 in aritmetica sono frazioni equivalenti 32 / 64 è 0 nell aritmetica del calcolatore, perché il risultato deve essere intero Se si vuole ottenere il valore corretto, si devono usare costanti reali, indicate dal punto decimale : 32. / Tipo Intero Analogamente con le variabili: int a,b; a/b è troncata double c,d; c/d è reale, con gli eventuali decimali Si può volere una divisione troncata e avere quoziente e resto: 7 /4 1 7 %4 3 Tipo reale Tipo Reale Si rappresenta un intervallo limitato e finito dei numeri reali Dominio: R R Il nome del dominio varia a seconda del numero di bit destinati alla rappresentazione: si hanno nomi diversi e anche insiemi diversi bit byte float 32 4 semplice precisione double 64 8 doppia precisione 11

12 Tipo reale I numeri reali vengono chiamati numeri in virgola mobile, floating point. Secondo la notazione anglosassone la separazione tra parte intera e parte decimale è il punto (nella notazione italiana è la virgola). Quando si moltiplica o si divide un numero per la base 10, la posizione del punto si sposta: = = virgola fissa Tipo reale La notazione scientifica viene scritta in Java utilizzando la lettera E (esponente), che rappresenta il prodotto per la base 10, seguita da un numero intero E E-1 Per la parte intera non si usa la separazione con il punto (in alto) per gruppi di cifre: non ma Tipo reale I numeri reali sono rappresentati in modulo e segno: significa che un numero a e il suo opposto a hanno di diverso solo il bit del segno. Il primo bit è il bit del segno ed è: 0 per i positivi 1 per i negativi I rimanenti bit rappresentano la mantissa e l esponente: 3.25 = mantissa 1 esponente riferito alla base 10 Tipo Reale Il tipo di rappresentazione per i float è con n = 32 bit il primo è il bit del segno, i successivi 8 sono per l esponente, i successivi 23 per la mantissa. Per i double, n = 64, la ripartizione è: 1(segno) 11(esponente) 52(mantissa) 12

13 Tipo Reale Si vuole rappresentare la struttura algebrica dell insieme R dei numeri reali: (R, +, ) R insieme + operazioni esiste un elemento neutro per la somma, lo zero 0 l inverso di a per la somma, opposto -a esiste un elemento neutro per il prodotto, l uno 1 l inverso di a 0 per il prodotto, reciproco 1/a Tipo Reale Oltre agli estremi dell intervallo di rappresentazione (il massimo reale e il suo opposto), dobbiamo conoscere quale è il più piccolo reale positivo: il più piccolo reale distinguibile dallo 0. Avendo a disposizione un numero finito di cifre i numeri reali minori del minimo positivo, sono rappresentati dallo 0. Le cifre decimali a disposizione: float: 6 cifre semplice precisione double: 15 cifre doppia precisione Tipo Reale Le costanti che caratterizzano il dominio sono il minimo positivo e il massimo reale. Anche per i reali le costanti significative sono rappresentate da dei nomi: Float.MIN_VALUE Double.MIN_VALUE Float.MAX_VALUE Double.MAX_VALUE Tipo Reale I numeri reali della macchina rappresentano esattamente se stessi e rappresentano in maniera approssimata un intervallo di numeri reali. I numeri reali della macchina hanno tutti un numero finito di cifre decimali (6, 15), pertanto tutti i numeri con un numero maggiore di cifre non possono essere rappresentati esattamente. 13

14 Tipo Reale Esempio. x = y = x, y R Se abbiamo a disposizione 6 cifre decimali, x e y sono rappresentati esattamente, mentre α = β = saranno approssimati con x e y rispettivamente. Tipo Reale I numeri reali sono approssimati per arrotondamento. Se la cifra che si trascura è allora il numero viene approssimato al reale macchina più piccolo (per difetto); se la cifra è il numero è approssimato al reale macchina più grande (per eccesso): α = è approssimato da y. Tipo Reale I numeri reali della macchina non sono distribuiti in maniera uniforme sulla retta reale: sono più fitti verso il minimo reale e più radi verso il massimo reale. Esempio. a = b = a = b = Tipo Reale I numeri a e b vengono approssimati con a 1 = * 10-2 b 1 = * La settima cifra di a e b (1) che si trascura ha una grandezza diversa: 10-9 in a e 10 5 in b. Il rappresentante a 1 è vicino ad a mentre il rappresentante b 1 è lontano da b. 14

15 Tipo Reale I numeri reali della macchina sono pertanto dei rappresentanti di intervalli, perché approssimano (per eccesso e per difetto) infiniti numeri reali (che non ci stanno ): y è il rappresentante di α α < y : eccesso β β > y : difetto E se ci servissero tutte le cifre di α e di β? Tipo Reale Nell esempio visto abbiamo utilizzato 6 cifre decimali e quindi la semplice precisione; se abbiamo bisogno di più cifre utilizziamo la doppia precisione: definiamo le variabili con il tipo double, con il quale si rappresentano 15 decimali. In Java useremo sempre il tipo double per i reali e il tipo int per gli interi. Tipo Reale L insieme dei numeri del tipo double contiene l insieme dei numeri di tipo float: I double rappresentano un insieme più grande: maxfloat~10 38 maxdouble~ i rappresentanti sono più fitti tra due rappresentanti x e y (float) ci sono molti, ma in quantità finita, numeri esatti (rappresentanti) in doppia precisione Tipo Reale Le operazioni che possiamo fare sono: prodotto / divisione + somma sottrazione Operatori di confronto: < > <= >= ==!= 15

16 Operatori e precedenza Il simbolo della divisione è / (par. 4.4) a + b 2 no, invece (a+b) / 2 Priorità degli operatori aritmetici: (Appendice E) come nell algebra, moltiplicazione e divisione hanno più alta priorità rispetto alla addizione e sottrazione: nell esempio precedente le parentesi sono obbligatorie. Operatori e precedenza Le due scritture producono diversi risultati: 1. (a+b) / 2 2. a+b / 2 1. prima si effettua la somma (a+b) e poi la divisione 2. prima si effettua la divisione b/2 e poi la somma A parità di priorità le operazioni vengono effettuate da sinistra verso destra: 3. a b/c = (a b)/c Interi o reali? Perché ci sono due tipi di numeri: interi e i reali? I reali sono necessari per rappresentare valori con i decimali: lira (intero), euro (reale). Se vogliamo avere una divisione non troncata dobbiamo usare i numeri reali. Gli interi sono più efficienti : occupano meno spazio di memoria, le operazioni tra interi sono più veloci, e non producono errori di arrotondamento (maxint ha 10 cifre). Tipo Carattere 16

17 Tipo Carattere Il nome del tipo è char 2 byte 16 bit L insieme dei caratteri è UNICODE Esempi. char s = '0'; char x = 'a'; Operatori di confronto: < > <= >= ==!= Tipo Logico Il nome del tipo è boolean L insieme è Tipo Logico 1 bit B = {false, true} false 0 true 1 Operatori logici && (and) (or)! (not) Esercizio Problema. Calcolare la somma dei reciproci dei primi 10 numeri naturali. Soluzione. Dobbiamo calcolare la somma /2 + 1/ /10 Ricopiando questa somma in una istruzione, otterremo un risultato corretto? Attenzione: 1 /2 = 0 mentre 1. /2 =

18 Tipo di Dato Astratto Tipo di Dato Astratto I tipi base non sono TDA: sono tipi predefinti che l utente può usare ma non modificare e non può aggiungerne altri. Un TDA deve poter rappresentare un nuovo concetto e si basa su concetti già esistenti. Nei linguaggi orientati agli oggetti si possono definire e realizzare dei nuovi concetti. Insiemi numerici L invenzione dei numeri risale a molti secoli fa: Naturali N = {1, 2, 3, } Interi Z = {., -3, -2, -1, 0, 1, 2, 3.} Razionali Q ={ a/b a,b interi e b 0} Irrazionali es. π, e, Reali R visualizzati sulla retta Complessi C visualizzati sul piano x 2 +1 = 0 ha soluzione? Java non possiede il tipo di dato complex. Tipo di Dato Astratto Vogliamo definire un nuovo concetto: Numero Complesso. Definizione. Indichiamo con C l insieme dei numeri complessi: C = {(a,b) a, b R } Si vuole rappresentare la struttura algebrica dell insieme C dei numeri complessi: (C, +, ) C insieme + operazioni 18

19 Tipo di Dato Astratto Un numero complesso è definito come coppia di reali (i numeri reali sono un concetto già esistente): z = (a, b) La forma algebrica di z C è z = a + i b a parte reale b parte immaginaria i = (0, 1) unità immaginaria Tipo di Dato Astratto Per costruire il nuovo concetto dobbiamo descrivere: la sua forma: quali sono i dati (campi) le sue proprietà: quali operazioni possiamo fare (metodi) Il nuovo concetto viene descritto all interno di una classe: class NuovoConcetto { <descrizione della sua forma> <descrizione delle sue proprietà> } //fine classe Tipo di Dato Astratto Per il TDA NumeroComplesso avremo: class NumeroComplesso{ //forma o campi double partere; double parteim; //proprietà o metodi /* somma, prodotto, sottrazione, divisione,.*/ }//fine classe NumeroComplesso Tipo di Dato Astratto La classe NumeroComplesso dovrà sviluppare gli algoritmi (metodi) che rappresentano le operazioni con le quali si possono usare oggetti di tipo NumeroComplesso: somma, prodotto, Ogni oggetto di tipo NumeroComplesso sarà una realizzazione del nuovo concetto e potrà essere utilizzato tramite i suoi metodi. Un utente della nostra classe NumeroComplesso potrà utilizzare il metodo somma senza conoscere i dettagli descritti nella classe, così come noi eseguiamo la somma di due numeri interi senza sapere come ciò avviene realmente. 19

20 Oggetti, classi, metodi Oggetti, classi, metodi Un oggetto è un entità che si può usare invocando (chiamando) i metodi della sua classe. (par. 2.3) Un metodo è una sequenza di istruzioni che può accedere ai dati dell oggetto. I metodi della classe esprimono la funzionalità dell oggetto e la loro realizzazione è nascosta all utente. Oggetti, classi, metodi Il concetto NuovoConcetto che si va a descrivere nella classe è solo un prototipo : ossia non è funzionante. Per sapere se il nostro concetto è realizzato correttamente è necessario provarlo. Si dovrà pertanto costruire un programma, con un metodo main, che costruisce l oggetto e verifica la correttezza dei suoi metodi. Oggetti, classi, metodi Pertanto per ogni TDA costruiremo una classe di collaudo class ProvaNuovoConcetto{//classe di prova //per la classe NuovoConcetto //metodomain{ /* istruzioni per creare e utilizzare un oggetto di tipo NuovoConcetto */ }//fine main }//fine classe ProvaNuovoConcetto 20

21 Tipo di dati String Tipo di dati String Una stringa è una sequenza di caratteri. Diversamente dai numeri, in Java le stringhe sono oggetti. (par. 4.6) Una costante (letterale) stringa si scrive racchiusa tra virgolette: "benvenuto" e le virgolette non fanno parte della stringa. Letterale o costante letterale: sequenza di simboli che rappresenta un valore di un certo tipo di dato. Tipo di dati String Analogamente agli altri tipi di dato definiamo una stringa e le assegniamo un valore. Il tipo di dato è rappresentato dalla classe String: String nome; //definizione nome = "Maria"; //assegnazione Le stringhe hanno una sintassi diversa dagli altri oggetti. Tipo di dati String String è il nome di una classe: inizia con la maiuscola. Una variabile di tipo String può quindi essere utilizzata richiamando i metodi della sua classe. La lunghezza di una stringa è il numero di caratteri presenti in essa (senza contare le virgolette). Ogni carattere ha una sua posizione, o indice, all interno della stringa. 21

22 Tipo di dati String La posizione dei caratteri nelle stringhe viene numerata a partire da 0 (deriva da C e C++). F i l i p p o La posizione dell ultimo carattere di una stringa corrisponde alla lunghezza della stringa meno 1. la lettera o di Filippo è in posizione 6 = 7-1 Tipo di dati String Per sapere di quanti caratteri è composta una stringa, utilizziamo il metodo length. (par. 2.3) Come si invoca un metodo (che agisce su oggetti)? nomeoggetto.nomemetodo(parametri); String saluto = "Ciao"; nome = "Filippo"; Tipo di dati String Il metodo length non ha parametri e restituisce un valore di tipo int. Pertanto memorizziamo questo valore in una variabile di tipo int: int n1 = saluto.length(); //n1=4 int n2 = nome.length(); //n2=7 //visualizziamo i valori di n1 e n2 System.out.println("n1= " + n1 + " n2= " + n2); Tipo di dati String Concatenazione tra stringhe. Le stringhe si possono concatenare utilizzando l operatore + String s1 = "Ciao"; String s2 = "mondo"; String s3 = s1 + s2; Il valore memorizzato in s3 è "Ciaomondo" Se si voglio gli spazi, questi devono essere inseriti esplicitamente: String s4 = s1 + " " + s2 22

23 Tipo di dati String Se una delle espressioni a destra o sinistra dell operatore + è una stringa, l altra espressione viene convertita a stringa e si ha la concatenazione. Questa concatenazione è utile nelle stampe: System.out.print("area = "); System.out.println(25.6); System.out.println("area = " ); Tipo di dati String Una stringa di lunghezza zero, che non contiene caratteri, si chiama stringa vuota e si indica con due caratteri virgolette consecutivi, senza spazi interposti: String vuota = ""; Poiché il metodo length restituisce un valore numerico, tale valore di ritorno può essere passato come parametro al metodoprintln: System.out.println(vuota.length()); //stampa 0 Tipo di dati String Vogliamo estrarre una sottostringa da una stringa data, utilizziamo il metodo substring: oggettostringa.substring(n1, n2); il primo parametro di substring è la posizione del primo carattere che si vuole estrarre; il secondo parametro è la posizione successiva all ultimo carattere che si vuole estrarre (il primo che non si vuole). Esempio. Tipo di dati String String saluto1 = "Ciao mondo!"; String subs1 = saluto1.substring(0,4); // subs1 contiene "Ciao" Il metodo restituisce una nuova stringa. La differenza tra i due parametri di substring corrisponde alla lunghezza della sottostringa estratta: la lunghezza disubs1 è 4 =

24 Tipo di dati String String subs2 = saluto1.substring(5,6); // subs2 contiene "m" di lunghezza 1 Attenzione: "m" è una stringa non un carattere. Il metodo substring può essere anche invocato con un solo parametro che indica il primo da estrarre; si estraggono i rimanenti fino alla fine: String subs3 = saluto1.substring(7); // subs3 contiene "ndo!" Tipo di dati String Metodo replace: ha due parametri di tipo stringa e restituisce una stringa dove è stato sostituito il primo con il secondo. String nome1 = "Maria"; String nome2 = nome1.replace("i","t"); //nome2 è "Marta" Metodi touppercase e tolowercase: convertono tutto in maiuscolo e in minuscolo rispettivamente. Tipo di dati String I metodi visti non modificano la stringa con la quale si invoca il metodo, ma restituiscono una nuova stringa (parametro di ritorno). Nessun metodo della classe String modifica l oggetto con cui viene invocato. Per tale motivo si dice che gli oggetti di tipo String sono oggetti immutabili. Tipo di dati String Se si fornisce un parametro errato a substring, il programma viene compilato correttamente, ma viene generato un errore in esecuzione. Esempio. public class Errore{ public static void main (String[] arg){ String nome = "Filippo"; String nome1 = nome.substring(5,10); System.out.println(nome1);} } 24

25 Tipo di dati String Questo errore non viene segnalato dal compilatore, ma si ha un errore durante l esecuzione del programma, che si interrompe segnalando: StringIndexOutOfBoundsException Si tratta di un errore logico, di cui però ci si accorge dato che l esecuzione viene interrotta. Sequenze di escape Come possiamo stampare una stringa che contiene delle virgolette? Ciao, "Mondo"! System.out.println("Ciao, "Mondo"!"); //ERRATO Il compilatore identifica le seconde virgolette come la fine della prima stringa "Ciao, ", ma poi non capisce il significato della parola Mondo. Si deve inserire una barra rovesciata \ (backslash) prima delle virgolette all interno della stringa System.out.println ("Ciao, \"Mondo\"!"); Sequenze di escape Il carattere backslash all interno di una stringa non rappresenta se stesso, ma si usa per codificare altri caratteri: sequenza di escape (di uscita). Per inserire veramente un carattere backslash in una stringa, si usa la sequenza di escape \\ Per scrivere parole italiane con lettere accentate senza avere a disposizione una tastiera italiana, si inserisce \u seguito dalla codifica Unicode del carattere. Esempio. Stampare la parola Perché System.out.println("Perch\u00E9"); Esercizio Dato un gruppo di tre parole, utilizzando i metodi visiti, costruirne l acronimo. Esempio. Date le parole random access memory, costruire l acronimo RAM. Soluzione. Dobbiamo estrarre da ogni parola la sottostringa iniziale di lunghezza 1, concatenarle tra loro e trasformarle poi in maiuscolo. 25

26 Esercizio public class Acronimo{//costruzione acronimo public static void main(string[] arg){ String parola1 = "random"; String parola2 = "access"; String parola3 = "memory"; // estrai le iniziali String tmp = parola1.substring(0, 1) + parola2.substring(0, 1) + parola3.substring(0, 1); // converti in maiuscolo String acro = tmp.touppercase(); System.out.println("L'acronimo e' " + acro); }//fine main }//fine main 26

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

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

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

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Informatica Applicata

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

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

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

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

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Floating Point N = M BE. Notazione in virgola mobile. base. esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1.

Floating Point N = M BE. Notazione in virgola mobile. base. esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1. Floating Point Notazione in virgola mobile N = M BE mantissa base esponente esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1.6273 102 forma normalizzata: la mantissa ha una sola cifra

Dettagli

Corso di Fondamenti di Informatica

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

Dettagli

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

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

Dettagli

ESTRAZIONE DI RADICE

ESTRAZIONE DI RADICE ESTRAZIONE DI RADICE La radice è l operazione inversa dell elevamento a potenza. L esponente della potenza è l indice della radice che può essere: quadrata (); cubica (); quarta (4); ecc. La base della

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Il simbolo. è è = = = In simboli: Sia un numero naturale diverso da zero, il radicale. Il radicale. esiste. esiste 0 Il radicale

Il simbolo. è è = = = In simboli: Sia un numero naturale diverso da zero, il radicale. Il radicale. esiste. esiste 0 Il radicale Radicali 1. Radice n-esima Terminologia Il simbolo è detto radicale. Il numero è detto radicando. Il numero è detto indice del radicale. Il numero è detto coefficiente del radicale. Definizione Sia un

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti 4. Insiemi numerici 4.1 Insiemi numerici Insieme dei numeri naturali = {0,1,,3,,} Insieme dei numeri interi relativi = {..., 3,, 1,0, + 1, +, + 3, } Insieme dei numeri razionali n 1 1 1 1 = : n, m \{0}

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Lab 02 Tipi semplici in C Obiettivo dell esercitazione Acquistare familiarità con i tipi di dato semplici supportati

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

LA NOTAZIONE SCIENTIFICA

LA NOTAZIONE SCIENTIFICA LA NOTAZIONE SCIENTIFICA Definizioni Ricordiamo, a proposito delle potenze del, che = =.000 =.000.000.000.000 ovvero n è uguale ad seguito da n zeri. Nel caso di potenze con esponente negativo ricordiamo

Dettagli

esercizi Esercizi / problemi

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

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori" slide a cura di Salvatore Orlando & Marta Simeoni " Architettura degli Elaboratori 1 Interi unsigned in base 2" Si utilizza un

Dettagli

Classi ed Oggetti in JAVA

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

Dettagli

I NUMERI DECIMALI. che cosa sono, come si rappresentano

I NUMERI DECIMALI. che cosa sono, come si rappresentano I NUMERI DECIMALI che cosa sono, come si rappresentano NUMERI NATURALI per contare bastano i numeri naturali N i numeri naturali cominciano con il numero uno e vanno avanti con la regola del +1 fino all

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16 Un ripasso di aritmetica: Conversione dalla base 1 alla base 16 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base sedici sarà del tipo: c m c m-1... c 1 c (le c i sono cifre

Dettagli

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

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

Dettagli

Funzioni. Corso di Fondamenti di Informatica

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

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

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

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

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

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

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

Dettagli

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

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

Dettagli

FUNZIONI AVANZATE DI EXCEL

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

Dettagli

Excel basi e funzioni

Excel basi e funzioni Esercitazione di Laboratorio Excel basi e funzioni Contenuto delle celle 1. Testo 2. Numeri 3. Formule Formattazione delle celle (1) Formattazione del testo e dei singoli caratteri: Orientamento a 45 Allineamento

Dettagli

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

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

Dettagli

Analisi Matematica di circuiti elettrici

Analisi Matematica di circuiti elettrici Analisi Matematica di circuiti elettrici Eserciziario A cura del Prof. Marco Chirizzi 2011/2012 Cap.5 Numeri complessi 5.1 Definizione di numero complesso Si definisce numero complesso un numero scritto

Dettagli

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

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

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Così come le macchine meccaniche trasformano

Così come le macchine meccaniche trasformano DENTRO LA SCATOLA Rubrica a cura di Fabio A. Schreiber Il Consiglio Scientifico della rivista ha pensato di attuare un iniziativa culturalmente utile presentando in ogni numero di Mondo Digitale un argomento

Dettagli

1A ARITMETICA. I numeri naturali e le quattro operazioni. Esercizi supplementari di verifica

1A ARITMETICA. I numeri naturali e le quattro operazioni. Esercizi supplementari di verifica A ARITMETICA I numeri naturali e le quattro operazioni Esercizi supplementari di verifica Esercizio Rappresenta sulla retta orientata i seguenti numeri naturali. ; ; ; 0;. 0 Esercizio Metti una crocetta

Dettagli

Linguaggio C: introduzione

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

Dettagli

Manipolazione di testi: espressioni regolari

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

Dettagli

Frazioni e numeri razionali

Frazioni e numeri razionali Frazioni e numeri razionali I numeri naturali sono i primi numeri che hai incontrato, quando hai cominciato a contare con le dita. Ma vuoi eseguire tutte le sottrazioni. E allora hai bisogno dei numeri

Dettagli

I file di dati. Unità didattica D1 1

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

Dettagli

Introduzione al linguaggio C Gli array

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

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

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

Dettagli

ALGEBRA I: NUMERI INTERI, DIVISIBILITÀ E IL TEOREMA FONDAMENTALE DELL ARITMETICA

ALGEBRA I: NUMERI INTERI, DIVISIBILITÀ E IL TEOREMA FONDAMENTALE DELL ARITMETICA ALGEBRA I: NUMERI INTERI, DIVISIBILITÀ E IL TEOREMA FONDAMENTALE DELL ARITMETICA 1. RICHIAMI SULLE PROPRIETÀ DEI NUMERI NATURALI Ho mostrato in un altra dispensa come ricavare a partire dagli assiomi di

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Materiale di approfondimento: numeri interi relativi in complemento a uno

Materiale di approfondimento: numeri interi relativi in complemento a uno Materiale di approfondimento: numeri interi relativi in complemento a uno Federico Cerutti AA. 2011/2012 Modulo di Elementi di Informatica e Programmazione http://apollo.ing.unibs.it/fip/ 2011 Federico

Dettagli

I numeri relativi. Il calcolo letterale

I numeri relativi. Il calcolo letterale Indice Il numero unità I numeri relativi VIII Indice L insieme R Gli insiemi Z e Q Confronto di numeri relativi Le operazioni fondamentali in Z e Q 0 L addizione 0 La sottrazione La somma algebrica La

Dettagli

Numeri naturali numeri naturali minore maggiore Operazioni con numeri naturali

Numeri naturali numeri naturali minore maggiore Operazioni con numeri naturali 1 Numeri naturali La successione di tutti i numeri del tipo: 0,1, 2, 3, 4,..., n,... forma l'insieme dei numeri naturali, che si indica con il simbolo N. Tale insieme si può disporre in maniera ordinata

Dettagli

Introduzione ad Access

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

Dettagli

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

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

Dettagli

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

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

Dettagli

Percorsi di matematica per il ripasso e il recupero

Percorsi di matematica per il ripasso e il recupero Giacomo Pagina Giovanna Patri Percorsi di matematica per il ripasso e il recupero 1 per la Scuola secondaria di secondo grado UNITÀ CMPIONE Edizioni del Quadrifoglio à t i n U 1 Insiemi La teoria degli

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Sottoprogrammi: astrazione procedurale

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

Dettagli

Editor vi. Editor vi

Editor vi. Editor vi Editor vi vi 1 Editor vi Il vi è l editor di testo standard per UNIX, è presente in tutte le versioni base e funziona con qualsiasi terminale a caratteri Permette di visualizzare una schermata alla volta

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

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

Dettagli

al via 1 Percorsi guidati per le vacanze di matematica e scienze UNITÀ CAMPIONE Edizioni del Quadrifoglio Evelina De Gregori Alessandra Rotondi

al via 1 Percorsi guidati per le vacanze di matematica e scienze UNITÀ CAMPIONE Edizioni del Quadrifoglio Evelina De Gregori Alessandra Rotondi Evelina De Gregori Alessandra Rotondi al via 1 Percorsi guidati per le vacanze di matematica e scienze per la Scuola secondaria di primo grado UNITÀ CAMPIONE Edizioni del Quadrifoglio Test d'ingresso NUMERI

Dettagli

Progetti reali con ARDUINO

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

Dettagli

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

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

Dettagli

Scuola primaria: obiettivi al termine della classe 5

Scuola primaria: obiettivi al termine della classe 5 Competenza: partecipare e interagire con gli altri in diverse situazioni comunicative Scuola Infanzia : 3 anni Obiettivi di *Esprime e comunica agli altri emozioni, sentimenti, pensieri attraverso il linguaggio

Dettagli

PROPRIETA' ASSOCIATIVA La somma di tre o più addendi non cambia se al posto di alcuni di essi si sostituisce la loro somma.

PROPRIETA' ASSOCIATIVA La somma di tre o più addendi non cambia se al posto di alcuni di essi si sostituisce la loro somma. Addizione: PROPRIETA' COMMUTATIVA Cambiando l'ordine degli addendi la somma non cambia. 1) a + b = b + a PROPRIETA' ASSOCIATIVA La somma di tre o più addendi non cambia se al posto di alcuni di essi si

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

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

Dettagli

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

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

Dettagli

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

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

Dettagli

Programmazione Funzionale

Programmazione Funzionale Programmazione Funzionale LP imperativi: apparenza simile modello di progettazione = macchina fisica Famiglia dei LP imperativi = progressivo miglioramento del FORTRAN Obiezione: pesante aderenza dei LP

Dettagli

Introduzione alla Teoria degli Errori

Introduzione alla Teoria degli Errori Introduzione alla Teoria degli Errori 1 Gli errori di misura sono inevitabili Una misura non ha significato se non viene accompagnata da una ragionevole stima dell errore ( Una scienza si dice esatta non

Dettagli

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

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

Dettagli

LA MOLTIPLICAZIONE IN PRIMA ELEMENTARE

LA MOLTIPLICAZIONE IN PRIMA ELEMENTARE LA MOLTIPLICAZIONE IN PRIMA ELEMENTARE E bene presentarla confrontando tra loro varie tecniche: addizione ripetuta; prodotto combinatorio (schieramenti). Rispetto a quest'ultima tecnica, grande utilità

Dettagli

Come si può esprimere il risultato dl un conteggio e di una misura? Quando si dice che In una

Come si può esprimere il risultato dl un conteggio e di una misura? Quando si dice che In una NUMERI INTERI E NUMERI DECIMALI Come si può esprimere il risultato dl un conteggio e di una misura? Quando si dice che In una cassetta sono contenuti 45 penne e che una lamiera misura 1,35 m. dl lunghezza,

Dettagli

SCUOLA PRIMARIA DI MONTE VIDON COMBATTE CLASSE V INS. VIRGILI MARIA LETIZIA

SCUOLA PRIMARIA DI MONTE VIDON COMBATTE CLASSE V INS. VIRGILI MARIA LETIZIA SCUOLA PRIMARIA DI MONTE VIDON COMBATTE CLASSE V INS. VIRGILI MARIA LETIZIA Regoli di Nepero Moltiplicazioni In tabella Moltiplicazione a gelosia Moltiplicazioni Con i numeri arabi Regoli di Genaille Moltiplicazione

Dettagli

Lab. 1 - Introduzione a Matlab

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

Dettagli

Teoria degli insiemi

Teoria degli insiemi Teoria degli insiemi pag 1 Easy Matematica di dolfo Scimone Teoria degli insiemi Il concetto di insieme si assume come primitivo, cioè non riconducibile a concetti precedentemente definiti. Sinonimi di

Dettagli

Elementi di semantica denotazionale ed operazionale

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

Dettagli

Generalizzazione di funzioni e di classi. Macro come funzioni generiche

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

Dettagli

Gestione dei File in C

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

Dettagli

INDICE. Unità 0 LINGUAGGI MATEMATICI, 1. Unità 1 IL SISTEMA DI NUMERAZIONE DECIMALE, 49

INDICE. Unità 0 LINGUAGGI MATEMATICI, 1. Unità 1 IL SISTEMA DI NUMERAZIONE DECIMALE, 49 INDICE Unità 0 LINGUAGGI MATEMATICI, 1 Il libro prosegue nel CD Il linguaggio degli insiemi, 2 1 GLI INSIEMI E LA LORO RAPPRESENTAZIONE, 2 Gli insiemi, 2 Insieme vuoto, finito e infinito, 3 La rappresentazione

Dettagli

2 Rappresentazioni grafiche

2 Rappresentazioni grafiche asi di matematica per la MPT 2 Rappresentazioni grafiche I numeri possono essere rappresentati utilizzando i seguenti metodi: la retta dei numeri; gli insiemi. 2.1 La retta numerica Domanda introduttiva

Dettagli

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Se a e b sono numeri interi, si dice che a divide b, in simboli: a b, se e solo se esiste c Z tale che b = ac. Si può subito notare che:

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE 1. EQUAZIONI Definizione: un equazione è un uguaglianza tra due espressioni letterali (cioè in cui compaiono numeri, lettere

Dettagli

Rappresentazione numeri in virgola mobile

Rappresentazione numeri in virgola mobile Rappresentazione numeri in virgola mobile Un numero non intero può essere rappresentato in infiniti modi quando utilizziamo la notazione esponenziale: Es. 34.5 = 0.345 10 2 = 0.0345 10 3 = 345 10-1 Questo

Dettagli

A.1 Definizione e rappresentazione di un numero complesso

A.1 Definizione e rappresentazione di un numero complesso 441 APPENDICE A4 NUMERI COMPLESSI A.1 Definizione e rappresentazione di un numero complesso Si riepilogano i concetti e le operazioni elementari relativi ai numeri complessi. Sia z un numero complesso;

Dettagli

Le Stringhe. Un introduzione operativa. Luigi Palopoli

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

Dettagli

Verifica che una grammatica sia Context Free nel GrammaReader

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

Dettagli

APPUNTI DI MATEMATICA GLI INSIEMI NUMERICI

APPUNTI DI MATEMATICA GLI INSIEMI NUMERICI APPUNTI DI MATEMATICA GLI INSIEMI NUMERICI I numeri naturali I numeri interi I numeri razionali Teoria degli insiemi (cenni) ALESSANDRO BOCCONI Indice 1 L insieme N dei numeri naturali 4 1.1 Introduzione.........................................

Dettagli

Elettronica I Grandezze elettriche e unità di misura

Elettronica I Grandezze elettriche e unità di misura Elettronica I Grandezze elettriche e unità di misura Valentino Liberali Dipartimento di Tecnologie dell Informazione Università di Milano, 26013 Crema e-mail: liberali@dti.unimi.it http://www.dti.unimi.it/

Dettagli

Nella prima lezione... Che cos è il Digitale. Prima parte: Che cos è il Digitale. Che cos è il Digitale. Che cos è il Digitale

Nella prima lezione... Che cos è il Digitale. Prima parte: Che cos è il Digitale. Che cos è il Digitale. Che cos è il Digitale !"$#%!" #% Nella prima lezione... Definizione di Informatica Cosa è una soluzione algoritmica Esempi di algoritmi cicalese@dia.unisa.it 2 Prima parte: Società dell informazione Ma cosa vuol dire società

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Import Dati Release 4.0

Import Dati Release 4.0 Piattaforma Applicativa Gestionale Import Dati Release 4.0 COPYRIGHT 2000-2005 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati.questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

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

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

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

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

Dettagli

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

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

Dettagli

Ambienti di sviluppo integrato

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

Dettagli

Accuratezza di uno strumento

Accuratezza di uno strumento Accuratezza di uno strumento Come abbiamo già accennato la volta scora, il risultato della misurazione di una grandezza fisica, qualsiasi sia lo strumento utilizzato, non è mai un valore numerico X univocamente

Dettagli