LABORATORIO DI INFORMATICA: PROGRAMMAZIONE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LABORATORIO DI INFORMATICA: PROGRAMMAZIONE"

Transcript

1 LABORATORIO DI INFORMATICA: PROGRAMMAZIONE DOMANDE PER LA SECONDA PROVA IN LABORATORIO Problema 1. È il software (ovvero le istruzioni che ordinano al calcolatore di eseguire azioni e di prendere decisioni) che controlla i calcolatori (spesso indicati come hardware). Problema 2. I calcolatori elaborano i dati sotto il controllo di insiemi di istruzioni detti programmatori. Problema 3. Il linguaggio Java è stato sviluppato dalla AppleComputer. Problema 4. Le classi sono entità statiche (definite prima dell esecuzione), gli oggetti sono entità dinamiche (che esistono solo durante l esecuzione). Problema 5. La dichiarazione di variabili di tipo classe ha una sintassi simile a quella usata nelle dichiarazioni di variabili di un tipo di dato primitivo ed una semantica simile alla dichiarazione di una variabile di tipo array. (1) Vero (2) Falso Problema 6. Una variabile di tipo classe non contiene un oggetto di quella classe ma l indirizzo (riferimento) dell area di memoria dove l oggetto è memorizzato. (1) Vero (2) Falso Problema 7. L operatore new alloca la memoria per le variabili di istanza e restituisce un riferimento all oggetto creato (che viene assegnato ad una variabile di tipo appropriato). (1) Vero (2) Falso Problema 8. La dichiarazione di una variabile di tipo classe non crea alcun oggetto: il riferimento corrispondente sarà null fino a quando l oggetto non sarà creato. Problema 9. Una funzione è un metodo che può restituire più di un valore. (1) Vero (2) Falso 1

2 Problema 10. I programmatori scrivono istruzioni in diversi linguaggi di programmazione, alcuni direttamente comprensibili dal calcolatore ed altri che richiedono dei passi intermedi di traduzione. Questi linguaggi si suddividono in linguaggi macchina, linguaggi assembler e linguaggi ad alto livello. Problema 11. Ogni calcolatore può comprendere direttamente solo il proprio linguaggio macchina. Problema 12. I linguaggi macchina sono indipendenti dal calcolatore (ovvero, uno specifico linguaggio macchina può essere utilizzato solo su un tipo di calcolatore). Problema 13. Se p1 e p2 sono variabili di oggetto, la loro uguaglianza può essere verificata con un test del tipo p1==p2. Problema 14. Per controllare se due oggetti p1 e p2 hanno lo stesso valore si può usare il metodo equals(), predefinito per tutte le classi. Per esempio, si può invocae p1.equals(p2). (1) Vero (2) Falso Problema 15. Ad un oggetto String non si possono concatenare oggetti di altra natura. Problema 16. Creare un array di oggetti di lunghezza N con new significa creare N riferimenti (tutti null); i singoli oggetti dovranno essere creati esplicitamente con new. (1) Vero (2) Falso Problema 17. L operatore condizionale (exprbool)?expr1:expr2 è l unico operatore di Java a 3 argomenti. (1) Vero (2) Falso Problema 18. L operatore && permette di non valutare l espressione di destra se quella di sinistra è falsa, mentre permette di non valutare l espressione di destra se quella di sinistra è vera. Problema 19. I programmi Java normalmente passano attraverso quattro fasi: scrittura, compilazione, interpretazione ed esecuzione. 2

3 Problema 20. Poiché Java non è sensibile alle maiuscole, gli identificatori count e Count sono identici. Problema 21. Se si vuole dichiarare un numero reale in Java (ovvero, un numero con un punto decimale), bisogna utilizzare il tipo float. Problema 22. Il modo più semplice per leggere dati in Java consiste nell utilizzare System.in.input, che è analogo ad utilizzare System.out.println per l output. Problema 23. Ogni qualvolta un valore viene messo in una locazione di memoria, questo valore sostituisce il valore precedentemente contenuto nella locazione ed il valore precedente viene distrutto. Problema 24. Una volta che un programma ha ottenuto i valori per number1 e number2, l istruzione seguente somma questi valori e memorizza la somma nella variabile sum: sum = number1 + number2; Problema 25. La divisione intera 7/4 ritorna il valore Problema 26. Java fornisce l operatore di modulo %, che ritorna il quoziente della divisione intera. Problema 27. Tutti gli operatori in Java hanno associatività da sinistra verso destra. Problema 28. Non inizializzare una variabile definita in un metodo prima che la variabile sia usata causa un errore di compilazione. Problema 29. Si considerino i seguenti due frammenti di codice: if (x>0)&&(x<10) System.out.println( "x compreso tra 0 e 10" ); e 3

4 if (x>0&&x<10) System.out.println( "x compreso tra 0 e 10" ); (1) I due frammenti producono lo stesso output (2) Il primo frammento non verrà compilato (3) Il secondo frammento non verrà compilato (4) Entrambi i frammenti non verranno compilati Problema 30. L ordine in cui un programma esegue le istruzioni è detto precedenza. Problema 31. Gli oggetti hanno un comportamento come la dimensione, la forma, il colore ed il peso. Problema 32. Un file.java può contenere un qualunque numero di classi public. Problema 33. Il tipo di dato primitivo float serve a memorizzare numeri in virgola mobile a precisione singola. Problema 34. Un vantaggio importante delle variabili di istanza è che i loro identificatori possono essere usati nella definizione della classe (ovvero, in tutti i metodi della classe). Problema 35. Variabili definite nel corpo di un metodo sono note come variabili globali. Problema 36. Alle variabili locali viene sempre assegnato un valore di default mentre a quelle di istanza non viene assegnato. Problema 37. Solo i metodi public di una classe possono utilizzare le variabili di istanza nella definizione della classe. Problema 38. Normalmente, le istruzioni di un programma sono eseguite una dopo l altra, nell ordine in cui sono state scritte. Ciò è detta esecuzione sequenziale. Problema 39. Ci sono diverse istruzioni Java che consentono ai programmatori di specificare che l esecuzione deve saltare ad una determinata istruzione: in questo caso, si parla di precedenza. 4

5 Problema 40. Una funzione si dice polimorfa se è capace di operare su oggetti di tipo diverso specializzando il suo comportamento in base al tipo dell oggetto su cui opera. (1) Vero (2) Falso Problema 41. Tutti i programmi possono essere scritti utilizzando tre sole strutture di controllo, ovvero la struttura sequenziale, la struttura di selezione e la struttura di ripetizione. Problema 42. La struttura switch è detta una struttura di selezione multipla perché seleziona tra molte diverse azioni. Problema 43. Non inizializzare una variabile prima che la variabile sia utilizzata genera un errore di compilazione. Problema 44. Non è possibile modificare il valore della lunghezza di un array (da cui dipende la quantità di memoria allocata). sempre (3) Falso perché dinamicamente è possibile decrementare tale valore Problema 45. Il blocco di istruzioni all interno di una struttura if consiste di un espressione il cui valore di ritorno può essere true oppure false. Problema 46. La struttura di selezione if-else permette al programmatore di specificare che una diversa azione deve essere eseguita quando la condizione è vera da quando la condizione è falsa. Problema 47. L operatore condizionale è l unico operatore ternario di Java: esso riceve due operandi. Problema 48. Inserire un punto e virgola dopo la condizione causa un errore logico nel caso di una struttura if ed un errore sintattico nel caso di una struttura if-else (se la parte if ha un corpo non vuoto). Problema 49. Un blocco non può contenere dichiarazioni di variabili. 5

6 Problema 50. Quale dei seguenti non è un letterale Java (ovvero, non è un valore costante)? (1) 36 (2) (3) A (4) a Problema 51. Java permette che l inizializzazione di una variabile sia incorporata nella dichiarazione. Problema 52. Java fornisce sia l operatore unario di incremento (++) che l operatore unario di decremento (--). Se una variabile c deve essere incrementata di 1, l operatore di incremento ++ può essere utilizzato al posto dell espressioni c = c + 1 o c += 1. Problema 53. L operatore += somma il valore dell espressione alla destra dell operatore al valore della variabile alla sinistra dell operatore e memorizza il risultato nella variabile alla destra dell operatore. Problema 54. Post-incrementando (post-decrementando) una variabile, il valore attuale della variabile viene usato nell espressione in cui appare e, successivamente, il valore della variabile viene incrementato (decrementato) di 1. Problema 55. Scrivere ++(x+1) è un corretto esempio di pre-incremento. Problema 56. Le caratteristiche di portabilità di Java permettono ai programmatori di scrivere programmi una sola volta, senza conoscere su quale piattaforma il programma verrà eseguito. Problema 57. La precedenza di ++ è minore di quella di <=. Problema 58. Talvolta, un algoritmo contiene decisioni nelle quali una variabile oppure un espressione viene separatamente confrontata con ciascuno dei valori integrali (ovvero, valori del tipo byte, short, int, long e char) che essa può assumere, e diverse azioni vengono eseguite. Java fornisce la struttura case di selezione multipla per gestire questo tipo di decisioni. 6

7 Problema 59. I casi non esplicitamente verificati in un istruzione switch senza un caso default sono ignorati. Problema 60. La struttura switch consiste di una serie di etichette case e di un caso obbligatorio default. Problema 61. Se si elencano, una di seguito all altra, le etichette di casi diversi (ad esempio, case 1: case 2: senza istruzioni in mezzo) allora lo stesso insieme di azioni verrà eseguito per ciascuno dei casi. Problema 62. Java fornisce operatori logici che possono essere usati per formare condizioni più complesse. Gli operatori logici sono &&, &,,, ^ e!. Problema 63. L operatore && ha la stessa precedenza dell operatore. Problema 64. Java fornisce l operatore! per consentire al programmatore di invertire il significato di una condizione. Problema 65. A differenza degli operatori logici &&, &,, e ^ che combinano due condizioni (operatori binari), l operatore di negazione logica ha una sola condizione come operando (operatore unario). Problema 66. Java compila in byte code. Problema 67. Gli algoritmi possono essere descritti solo mediante un linguaggio di programmazione. Problema 68. La differenza tra i tipi int e long è la seguente: (1) long può contenere sia numeri interi che reali (2) long può contenere numeri interi più grandi di int (3) long può contenere numeri interi più piccoli di int (4) long può contenere solo numeri in virgola mobile 7

8 Problema 69. Un valore di tipo float può sempre essere assegnato ad una variabile di tipo short (senza conversione esplicita). Problema 70. L istruzione System.out.println( "\""+"\"" ); stampa quattro doppi apici. Problema 71. La seguente è una valida espressione Booleana in Java: (1 < count < 10). Problema 72. Il valore dell espressione di controllo di una struttura switch può essere di uno qualunque dei tipi di dato primitivi. Problema 73. Gli operatori di confronto (come < e!=) hanno una precedenza maggiore degli operatori && e. Problema 74. Quale delle seguenti è una caratteristica di un file? (1) Un file ha un nome (2) Un file è memorizzato nella memoria ausiliaria (3) I contenuti di un file sono memorizzati usando bit e byte (4) Tutte le risposte precedenti sono vere Problema 75. Quale dei seguenti non è un programma? (1) Un sistema operativo come Windows XP (2) Un compilatore Java (3) Un browser come Netscape (4) Tutti i precedenti sono programmi Problema 76. Un programma Java viene eseguito da: (1) un compilatore (2) un editor (3) un interprete (4) nessuno dei precedenti Problema 77. Nella pratica, quale dei seguenti metodi viene generalmente utilizzato per descrivere un algoritmo? (1) Java o qualche altro linguaggio di programmazione di alto livello (2) Italiano o qualche altro linguaggio naturale (3) Una combinazione di Java ed italiano (pseudo-codice) (4) Linguaggio macchina Problema 78. Il simbolo = in un programma Java si legge come: (1) è uguale a (2) poni uguale a 8

9 (3) è lo stesso che (4) Ha lo stesso significato del simbolo == Problema 79. Un algoritmo è (1) un insieme di regole precise che conducono ad una soluzione (2) sempre scritto in pseudo-codice (3) l inverso del logaritmo Problema 80. Lo pseudo-codice è (1) il codice che viene dato in input ad un compilatore (2) il codice prodotto da un compilatore (3) un misto di italiano e Java (4) codice che non opera correttamente in quanto contiene errori Problema 81. In Java le variabili sum e Sum (1) sono le stesse (2) sono differenti (3) possono essere le stesse oppure differenti a seconda di quale calcolatore si usa (4) non sono permesse come nomi di variabili Problema 82. Il byte code è (1) il programma tradotto dal compilatore Java (2) un programma contenente un errore (3) l input del compilatore Java (4) un modo di codificare tutti i simboli della tastiera Problema 83. La locazione di una variabile Java fa riferimento (1) ad un posto in memoria (2) ad un numero di riga in un programma (3) ad un nome di file Problema 84. totaleggs; è un esempio di (1) una corretta dichiarazione di variabile (2) una dichiarazione di variabile in cui manca il tipo (3) una punteggiatura errata in una dichiarazione di variabile Problema 85. Le dichiarazioni di variabili devono apparire (1) solo all inizio di un programma (2) ovunque prima che la variabile sia utilizzata (3) ovunque Problema 86. Due tipi di dato primitivi di Java sono double e int. Problema 87. Si consideri il seguente frammento di codice: int a = 5; int b =100; a=b; Quali sono i valori di a e b? (1) a è 5 e b è 100 9

10 (2) a è 100 e b è 5 (3) a è 5 e b è 5 (4) a è 100 e b è 100 Problema 88. Quale delle seguenti istruzioni di assegnazione non è legale, assumendo che a e b sono dichiarate come int? (1) a = b+10; (2) a = a+10; (3) a = a+b; (4) a+10 = b; Problema 89. Si consideri il seguente frammento di codice: double d = 26.99; int i; int n; i = (int) d; n = (int)(-d); (1) Il valore di i è 26 ed il valore di n è -26 (2) Il valore di i è 27 ed il valore di n è -27 (3) Il valore di i è 26 ed il valore di n è -27 (4) Il valore di i è 27 ed il valore di n è -26 Problema 90. I numeri reali sono rappresentati solo in modo approssimato dai calcolatori. Problema 91. Quale delle seguenti istruzioni assegna un valore di tipo int alla variabile n? (1) int i = n; (2) int n = Input.getInt( "n?" ); (3) System.out.println( n ); (4) Tutte le precedenti Problema 92. Quale dei seguenti rappresenta lo stesso valore di e-2? (1) (2) (3) (4) Problema 93. Si consideri il seguente frammento di codice: int i = 10; char c = c ; long l = 99; double d = 1.1; Quale delle seguenti istruzioni di assegnazione è legale? (1) c = i; (2) d = i; (3) i = l; (4) i = d; Problema 94. I valori 3 and

11 (1) sono dello stesso tipo (2) sono di tipo diverso (3) non hanno tipo Problema 95. Si consideri il frammento di codice: double d = 9.9; int i = 2; i = (int) d; (1) Il tipo della variabile d è cambiato (2) Il valore della variabile d è cambiato (3) Il tipo della variabile i è cambiato (4) Il valore della variabile i è cambiato Problema 96. Si consideri il seguente frammento di codice: char c = 2 ; int i = (int)c; Quale delle seguenti affermazioni è corretta? (1) La conversione del tipo char nel tipo int non è legale (2) Il valore di i è 2 (3) Il valore di i è un intero, ma non è 2 (4) Nessuna delle precedenti Problema 97. Il tipo del valore ritornato da un espressione aritmetica dipende da (1) il tipo della variabile a cui il valore dell espressione viene assegnato (2) il tipo della prima variabile nell espressione (3) la combinazione dei tipi utilizzati nell espressione Problema 98. Si consideri il seguente frammento di codice: int w = 7/5; int x = (-7)/5; int y = 7%5; int z = (-7)%5; System.out.println( w+","+x+","+y+","+z ); Quali sono i valori stampati? (1) 1,1,1,1 (2) 1,1,2,2 (3) 1,-1,2,-2 (4) 1,-1,2,2 Problema 99. Assumendo che a, b e c siano valori di tipo int, l espressione a+b*c ritorna lo stesso valore dell espressione a+(b*c). Problema 100. L istruzione count--; è equivalente a (1) count = count -1; (2) count = -1; (3) count -= 1; 11

12 (4) La prima e la terza risposta Problema 101. Il simbolo + indica (1) l addizione (2) l addizione se entrambi gli operandi sono numeri Problema 102. (1) L insieme dei caratteri del codice Unicode è un sottoinsieme dell insieme dei caratteri del codice ASCII (2) L insieme dei caratteri del codice Unicode è un soprainsieme dell insieme dei caratteri del codice ASCII (3) L insieme dei caratteri del codice Unicode è un altro nome per l insieme dei caratteri del codice ASCII (4) Nessuna delle precedenti Problema 103. L espressione 5/2 ritorna il valore (1) 2.0 (2) 2 (3) 2.5 (4) 3.0 Problema 104. L espressione 11%9 ritorna il valore (1) 1 (2) 1.0 (3) 2 (4) 2.0 Problema 105. Una conversione di tipo è (1) una dichiarazione di una variabile (2) un cambio del tipo di una variabile (3) un cambio del tipo di un valore (4) un cambio del valore di una variabile Problema 106. Si consideri il seguente frammento di codice: int x; x = Input.getInt( "Inserisci x" ); if (x>=0) System.out.println( x ); (1) Il frammento di codice non verrà compilato perché non vi è un else (2) Se il valore inserito di x è positivo, non viene prodotto alcun output (3) Se il valore inserito di x è negativo, non viene prodotto alcun output (4) Se il valore inserito di x è zero, non viene prodotto alcun output Problema 107. Si consideri il seguente frammento di codice: int x; x = Input.getInt( "Inserire x" ); if (x>=0) System.out.println( "The input is" ); 12

13 System.out.println( x ); (1) Il valore di x verrà stampato comunque (2) Il valore di x verrà stampato solo se l input è positivo (3) Il valore di x verrà stampato solo se l input è positivo oppure zero (4) Il valore di x verrà stampato solo se l input è negativo Problema 108. Quale delle seguenti non è un espresssione Booleana valida? (1) 0 > x > -5 (2) x > -5 (3) (0 > x) && (x > -5) (4) (0 > x) && (-5 < x) Problema 109. Quali delle seguenti espressioni Booleane ritornano lo stesso risultato di x<y? (1) y>=x (2) y>x (3)!(x>=y) (4) La seconda e la terza espressione Problema 110. Si consideri il seguente frammento di codice: int x; x = Input.getInt( "Inserisci x" ); if (x>=0) System.out.println( "Input positivo:" ); System.out.println( x ); else System.out.println( "Input negativo:" ); System.out.println( x ); (1) Il frammento di codice non verrà compilato (2) Se il valore inserito per x è positivo, solo il messaggio Input positivo: sarà mostrato (3) Se il valore inserito per x è positivo, il messaggio Input positivo: sarà mostrato, seguito dal valore di x, mostrato una volta (4) Se il valore inserito per x è positivo, il messaggio Input positivo: sarà mostrato, seguito dal valore di x, mostrato due volte Problema 111. Si consideri il seguente frammento di codice: int x; x = Input.getInt( "Inserire x" ); if (x>=0) System.out.println( "Input positivo:" ); System.out.println(x); else System.out.println( "Input negativo:" ); System.out.println( x ); (1) Il frammeno di codice non verrà compilato 13

14 (2) Se il valore inserito per x è positivo, solo il messaggio Input positivo: verrà mostrato (3) Se il valore inserito per x è positivo, il messaggio Input positivo: verrà mostrato, seguito dal valore di x, mostrato una volta (4) Se il valore inserito per x è positivo, il messaggio Input positivo: verrà mostrato, seguito dal valore di x, mostrato due volte Problema 112. Quali dei seguenti operatori possono essere usati per formare espressioni Booleane più grandi a partire da espressioni Booleane più piccole? (1) && (2) (3) <= (4) Il primo ed il secondo Problema 113. Si considerino i due seguenti frammenti di codice: if (a>100) System.out.println( "a grande" ); else if (a>0) System.out.println( "a positivo" ); else System.out.println( "a negativo oppure zero" ); e if (a>100) System.out.println( "a grande" ); if (a>0) System.out.println( "a positivo" ); else System.out.println( "a negativo oppure zero" ); (1) Entrambi i frammenti producono lo stesso output (2) Entrambi i frammenti producono lo stesso output se a è maggiore di 100 (3) Entrambi i frammenti producono lo stesso output se a è maggiore di 0 (4) Il secondo frammento produce due linee di output se a è maggiore di

15 Problema 114. L espressione di controllo di un istruzione switch può ritornare un valore di quale dei seguenti tipi? (1) float (2) char (3) Nessuno dei precedenti tipi (4) Entrambi i precedenti tipi Problema 107. Si consideri il seguente frammento di codice: int x; x = Input.getInt( "Inserire x" ); if (x>=0) System.out.println( "The input is" ); System.out.println( x ); (1) Il valore di x verrà stampato comunque (2) Il valore di x verrà stampato solo se l input è positivo (3) Il valore di x verrà stampato solo se l input è positivo oppure zero (4) Il valore di x verrà stampato solo se l input è negativo Problema 116. Si consideri il seguente frammento di codice: int x; x = Input.getInt( ); switch (x) case 0: System.out.print( "zero" ); case 1: System.out.println( "uno" ); case 2: System.out.println( "due" ); default: System.out.println( "x maggiore di due" ); (1) Quando il valore di x è 1 solo "uno" sarà mostrato (2) Quando il valore di x è 1 solo "uno" e "due" saranno mostrati (3) Quando il valore di x è 1 sia "uno" che "due" che "zero" saranno mostrati (4) Nessuna delle precedenti Problema 117. Il tipo boolean (1) è un tipo primitivo (2) è un tipo classe (3) è lo stesso che il tipo int (4) non è proprio un tipo Problema 118. In Java, il valore false è (1) una costante di tipo boolean (2) l intero 0 (3) entrambi i precedenti (4) nessuno dei precedenti Problema 119. Quali delle seguenti istruzioni di ripetizione eseguono sempre almeno una volta il loro corpo? 15

16 (1) Istruzione while (2) Istruzione do-while (3) Istruzione for (4) Tutte le precedenti Problema 120. Si consideri il seguente frammento di codice: int x = 0; while (x<10) x++; System.out.println( x ); (1) 10 diversi valori di x sono stampati (2) 9 diversi valori di x sono stampati (3) Un valore di x viene stampato (4) Il frammento di codice genera un ciclo infinito Problema 121. Si consideri il seguente frammento di codice: int total = 0; int next; do next = Input.getInt( "Inserire un numero maggiore di 0" ); total = total + next; while (next>0) (1) total sarà uguale alla somma di tutti i numeri positivi inseriti prima che 0 oppure un numero negativo sia inserito (2) Il frammento di codice non viene compilato perché mancano le parentesi graffe del corpo del ciclo (3) Il frammento di codice non viene compilato perché manca il punto e virgola alla fine dell istruzione do-while (4) Sia la seconda che la terza affermazione Problema 122. Quale delle seguenti può essere usata come espressione di controllo di un istruzione while oppure di un istruzione do-while? (1) (1) (2) (x > (y + 1)) (3) (x + y) (4) Tutte le precedenti Problema 123. Si consideri il seguente frammento di codice: int a = 9; while (a!=0) a = a - 2; System.out.println( a ); (1) Il ciclo stampa i numeri dispari da 9 ad 1 e poi si ferma 16

17 (2) Il ciclo stampa i numeri dispari da 7 ad 1 e poi si ferma (3) Il ciclo stampa i numeri pari da 8 a 0 e poi si ferma (4) Il ciclo è infinito Problema 124. Si consideri il seguente frammento di codice: int x; int y = 99; for (x = 10; x < y; x = x + 10) System.out.println( x+", "+y ); Quale delle seguenti istruzioni produrrà lo stesso output? (1) int x; int y = 99; while (x<y) int x; System.out.println( x+", "+y ); x = x + 10; (2) int x = 10; int y = 99; do x = x + 10; System.out.println(x + ", "+ y); while (x<y); (3) int x = 10; int y = 99; while (x<y) System.out.println( x+", "+y ); x = x + 10; (4) Nessuna delle precedenti Problema 125. La principale differenza tra un ciclo while ed un ciclo do-while è che (1) un ciclo while viene sempre eseguito almeno una volta, mentre un ciclo do-while può essere eseguito zero volte (2) un ciclo do-while viene sempre eseguito almeno una volta, mentre un ciclo while può essere eseguito zero volte (3) sono due nomi diversi per la stessa cosa e non vi è alcuna differenza (4) un ciclo while non può avere le parentesi graffe intorno al suo corpo, mentre un ciclo do-while può avere le parentesi graffe intorno al suo corpo 17

18 Problema 126. È possibile che il corpo di un ciclo while venga eseguito zero volte. Problema 127. Una struttura di ripetizione consente al programmatore di specificare che un azione sia ripetuta fintanto che una certa condizione rimane vera. Problema 128. Se la condizione di una struttura while è inizialmente vera, le istruzioni del corpo non verranno mai eseguite. Problema 129. La ripetizione controllata da un contatore utilizza una costante, detta contatore, per controllare il numero di volte che un insieme di istruzioni verrà eseguito. Problema 130. La ripetizione controllata da un contatore richiede il nome di una variabile di controllo (detta contatore), il valore iniziale del contatore, l incremento (o decremento) con il quale il contatore è modificato ad ogni iterazione del ciclo, e la condizione che verifica il valore finale del contatore (ovvero, se il ciclo deve proseguire). Problema 131. Poiché i numeri in virgola mobile possono essere approssimati, il controllo di un ciclo che faccia uso di variabili di tipo reale può causare valore imprecisi e, quindi, verifiche inaccurate di terminazione. Problema 132. La struttura di ripetizione for consente di gestire tutti i dettagli di una ripetizione controllata da un contatore. Problema 133. Supponiamo che un programma cicli 10 volte facendo uso della condizione di continuazione counter<=10. Se il programmatore ha erroneamente scritto counter<10, il ciclo sarebbe eseguito solo nove volte. Questo è un frequente errore sintattico. Problema 134. Quando una struttura for inizia la sua esecuzione, è certo che il suo corpo sarà eseguito almeno una volta. Problema 135. Non è possibile modificare il valore di una variabile di controllo nel corpo di una struttura for. 18

19 Problema 136. Esiste una corrispondenza ben precisa fra nomi delle classi e nomi di file: in un file sorgente ci può essere un unica classe public, che deve avere lo stesso nome del file (case-sensitive!). (1) Vero (2) Falso Problema 137. La seguente struttura for (di cui solo l intestazione è mostrata) modifica la variabile di controllo da 100 ad 1 con un decremento di 1: for (int i = 100; i<=1; i--) Problema 138. Nella struttura while, la condizione di continuazione del ciclo viene verificata all inizio del ciclo prima che il corpo del ciclo sia eseguito. Problema 139. Quando un ciclo do-while termina, l esecuzione continua con l istruzione successiva alla riga do. Problema 140. Una eccezione non catturata si propaga verso l esterno, di blocco in blocco: se raggiunge il main, provoca la terminazione immediata del programma. Problema 141. Si indichi quale delle seguenti affermazioni non corrisponde ad un comportamento che può essere assunto da un metodo che invoca un altro metodo che solleva un eccezione: (1) può catturare l eccezione e gestirla; (2) può lasciare passare l eccezione senza dichiararla nella sua clausola throws; (3) può catturare l eccezione e trasformarla in una nuova di un tipo incluso nella sua clausola throws; (4) può dichiarare l eccezione nella sua clausola throws e lasciarla quindi passare. Problema 142. Se in una istruzione try-catch è presente la clausola finally, il suo blocco di istruzioni viene comunque eseguito (indipendentemente dal fatto che un eccezione sia stata generata/catturata o meno). Problema 143. Supponendo che il metodo getname() ritorni un valore di tipo String, quale delle seguenti istruzioni è legale? (1) int string = getname(); (2) int string = getname; (3) String s = getname(); (4) char c = getname(); 19

20 Problema 144. Supponendo che il metodo getnumber() ritorni un valore di tipo int, quale delle seguenti istruzioni non è legale? (1) int num = getnumber(); (2) double dbl = getnumber(); (3) long lng = getnumber(); (4) String s = getnumber(); Problema 145. Supponendo di aver dichiarato il metodo void doaction(), quale delle seguenti istruzioni è legale? (1) int num = doaction(); (2) double dbl = doaction(); (3) doaction(); (4) doaction; Problema 146. In un metodo void, quali delle seguenti affermazioni è vera? (1) Deve contenere un istruzione return (2) Può contenere un istruzione return (3) Può contenere una o più istruzioni return (4) La seconda e la terza affermazione Problema 147. Una variabile utilizzata in un metodo può essere (1) una variabile globale (2) una variabile locale al metodo (3) una variabile d istanza (4) la seconda e la terza affermazione Problema 148. Consideriamo un metodo definito come segue: int mymethod() int x = 10; int y = x*x; return y; (1) Il metodo ritorna il valore 100 (2) Il metodo ritorna il valore 0 (3) Il compilatore darà un messaggio di errore (4) Il metodo ritorna un valore non definito Problema 149. Consideriamo il seguente frammento di codice: int sum = 0; for (int n = 1; n<=2; n++); sum = sum+n; System.out.println( sum ); (1) Viene mostrato il valore 3 20

21 (2) Viene mostrato il valore 0 (3) Viene mostrato il valore 2 (4) Il codice genera un errore di compilazione Problema 150. Quale dei seguenti non è un argomento valido per un parametro formale di tipo double? (1) 50 (2) (3) 2.5*3.56 (4) Nessuno dei valori precedenti non è valido Problema 151. Quale delle seguenti affermazioni non è vera? (1) Un metodo può avere zero o più parametri (2) L intestazione di un metodo deve specificare il tipo di ogni parametro (3) Solo i metodi che ritornano un valore possono avere parametri (4) I parametri di un metodo sono locali a quel metodo Problema 152. Consideriamo il seguente frammento di codice: void mymethod( char letter ) letter = A ; char ch = B ; mymethod( ch ); System.out.println( ch ); Quando viene eseguito, l output è (1) B (2) A (3) Nessuno, perché il codice genera un errore di compilazione Problema 153. Consideriamo il seguente frammento di codice: boolean b = true; boolean mymethod( boolean localboolean ) localboolean =!localboolean; return (localboolean==b); b = mymethod( b ); System.out.println( b ); Quando viene eseguito, l output è (1) true (2) false Problema 154. Quando si invoca un metodo, che ha un parametro formale exparam, è legale che l argomento corrispondente si chiami exparam? (1) Si, purché abbiano lo stesso tipo (2) No e verrebbe generato un errore di compilazione (3) No e verrebbe generato un errore durante l esecuzione 21

22 Problema 155. Consideriamo il metodo double absdoublevalue( double x ) if (x>=0) return x; else return -x; Quale delle seguenti potrebbe essere una pre-condizione accettabile per questa procedura? (1) Il valore di x deve essere positivo (2) Il valore di x deve essere negativo (3) Il valore di x è un qualunque valore di tipo double (4) Il valore di x deve essere diverso da zero Problema 156. Consideriamo il metodo double absdoublevalue( double x ) if (x>=0) return x; else return -x; Quale delle delle seguenti potrebbe essere una post-condizione accettabile per questa procedura? (1) Se l argomento è positivo, allora il valore di ritorno è positivo (2) Se l argomento è zero, allora il valore di ritorno è positivo (3) Se l argomento è negativo, allora il valore di ritorno è positivo (4) Il valore di ritorno è sempre il valore assoluto dell argomento Problema 157. Se un metodo ha variabili locali, può un altro metodo accedere alle variabili locali del primo metodo? (1) Si (2) No Problema 158. Un metodo con il nome setvalue probabilmente (1) ha un tipo di ritorno ed un parametro (2) ha un tipo di ritorno e nessun parametro (3) ha un parametro e nessun tipo di ritorno (ovvero, è di tipo void con uno o più parametri) (4) non ha un tipo di ritorno né un parametro (ovvero, è di tipo void con nessun parametro) Problema 159. La convenzione usata per i nomi di metodi in questo corso è (1) il nome del metodo deve cominciare con una lettera maiuscola (2) il nome del metodo deve cominciare con una lettera minuscola (3) il nome del metodo deve contenere il simbolo _ (4) nessuna delle precedenti Problema 160. Quale dei seguenti tipi di argomento può essere modificato dall invocazione di un metodo? (1) Una variabile di tipo double 22

23 (2) Un valore di tipo double (3) Non è possibile modificare un argomento di tipo primitivo con un invocazione di metodo Problema 161. I metodi non di tipo void devono contenere una o più istruzioni return. Problema 162. I nomi dei parametri formali sono locali ad un metodo a meno che il nome dell argomento non sia lo stesso che il nome del parametro formale. Problema 163. La programmazione orientata agli oggetti incapsula dati e metodi in classi: i dati ed i metodi di una classe sono fortemente collegati tra di loro. Problema 164. Come l istanza di un tipo di dato primitivo (come int) è detta variabile, così l istanza di un tipo classe è detta oggetto. Problema 165. Tutti gli oggetti Java sono passati per valore. Problema 166. La definizione di una classe con modificatore public deve essere memorizzata in un file che ha esattamente lo stesso nome della classe e come estensione.class. Problema 167. Quando viene creata la definizione di una classe, si usano sempre pezzi della definizione di una classe esistente. Problema 168. Ogni classe Java è una sottoclasse di Object e, quindi, eredita i metodi definiti nella classe Object. Problema 169. Le parole chiave public e private sono nomi di variabili d istanza. Problema 170. Quando un oggetto viene creato, generalmente le sue variabili d istanza sono incapsulate nell oggetto e possono essere utilizzate solo attraverso metodi della classe dell oggetto (normalmente attraverso i metodi privati della classe). Problema 171. Normalmente si hanno diversi costruttori per un classe: ciò può essere ottenuto attraverso la sovrascrittura dei metodi. 23

24 Problema 172. Per scrivere il miglior programma possibile, il programmatore deve conoscere perfettamente i dettagli interni di ogni classe che il programma utilizza. Problema 173. Spesso, le classi possono essere derivate da altre classi che forniscono operazioni che le nuove classi possono utilizzare, oppure includono come campi oggetti di altre classi: tale riutilizzo del software può migliorare enormemente la produttività di un programmatore. Problema 174. I modificatori public e private sono utilizzati per controllare l accesso alle variabili ed ai metodi d istanza di una classe. Problema 175. I membri privati di una classe così come la definizione dei metodi pubblici (ovvero l implemementazione della classe) non sono accessibili a chi utilizza la classe. Problema 176. Fornire un metodo set ed uno get per dei dati privati è equivalente a rendere quei dati pubblici. Problema 177. Quando un oggetto viene creato, le sua variabili d istanza devono essere esplicitamente inizializzate da un metodo costruttore. Problema 178. Le variabili d istanza possono essere inizializzate implicitamente al loro valore di default (0 per tipi numerici, false per variabili Booleane e null per tipi classe), possono essere inizializzate in un costruttore oppure possono essere impostate successivamente alla creazione dell oggetto. Problema 179. Se il programmatore non fornisce un costruttore senza argomenti, Java ne crea automaticamente uno per la classe. Problema 180. Se dei costruttori sono forniti per una classe, ma nessuno di essi è un costruttore senza argomenti, e viene effettuato un tentativo di invocare un costruttore senza argomenti per inizializzare un oggetto della classe, viene generato un errore di compilazione. 24

25 Problema 181. I metodi di una classe possono essere sovraccaricati, ovvero diversi metodi di una classe possono avere esattamente lo stesso nome. Problema 182. Variabili d istanza pubbliche possono essere manipolate solo dai metodi della classe. Problema 183. I metodi set sono anche detti metodi mutatori (in quanto tipicamente cambiano un valore). Problema 184. Accedere a dati privati attraverso metodi set e get non solo protegge le varibili d istanza dal ricevere valori non corretti, ma anche isola gli utilizzatori della classe dalla rappresentazione delle variabili: quindi, se la rappresentazione cambia (tipicamente, per motivi di miglioramento delle prestazioni), solo l implementazione dei metodi di accesso deve essere modificata e gli utilizzatori non devono effettuare alcun cambiamento fintanto che l interfaccia fornita dai metodi rimane la stessa. Problema 185. Il riutilizzo del software garantisce una qualità del codice molto superiore a quella che normalmente potremmo ottenere da soli. Problema 186. Alcune varibili d istanza devono poter essere modificate ed altre no: il programmatore può utilizzare la parola chiave constant per specificare che una variabile non è modificabile e che ogni tentativo di modificarla produce un errore. Problema 187. È sempre preferibile generare errori in fase di compilazione (se possibile), piuttosto che permettere che gli errori si trasmettano alla fase di esecuzione. Problema 188. Una variabile final non può essere modificata da un assegnazione dopo che è stata inizializzata: una tale variabile deve essere inizializzata nella sua dichiarazione. Problema 189. In un metodo che abbia un parametro formale con lo stesso nome di uno dei suoi campi, bisogna usare la parola chiave this per accedere al campo (altrimenti, faremmo incorrettamente riferimento al parametro formale del metodo). 25

26 Problema 190. Ogni oggetto di una classe ha la propria copia di tutte le variabili d istanza della classe. Problema 191. Una variabile di classe statica rappresenta informazione specifica di un oggetto ed ogni oggetto di una classe ha la propria copia dei dati statici. Problema 192. I membri statici di una classe sono disponibili solo dopo che il primo oggetto della classe viene istanziato. Problema 193. Ogni variabile statica di una classe ed ogni metodo statico di una classe esiste e può essere utilizzato anche se nessun oggetto di quella classe è stato istanziato. Problema 194. L ereditarietà è una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro proprietà ed i loro comportamenti ed arricchendo questi ultimi con funzionalità che la nuova classe richiede. Problema 195. In Java, una classe è derivata da una o più superclassi. Problema 196. Il vantaggio dell ereditarietà consiste nella possibilità di definire nella sottoclasse aggiunte o modifiche delle funzionalità ereditate dalla superclasse. Problema 197. Ogni oggetto di una superclasse può essere pensato come un oggetto delle sottoclassi di quella superclasse. Problema 198. L insieme degli oggetti rappresentati da una sottoclasse è normalmente più grande dell insieme degli oggetti rappresentato da una qualunque superclasse di quella sottoclasse. Problema 199. I costruttori di una superclasse sono ereditati dalle sottoclassi di quella superclasse. Problema 200. Un oggetto di una sottoclasse può essere trattato come un oggetto della sua superclasse. 26

27 Problema 201. Una conversione esplicita può sempre convertire un riferimento ad una superclasse in un riferimento ad una sottoclasse. Problema 202. Se non vi è nessuna invocazione esplicita al costruttore della superclasse, Java automaticamente tenta di invocare il costruttore di default della superclasse. Problema 203. Per invocare esplicitamente il costruttore di default della superclasse bisogna utilizzare l istruzione super( ); Problema 204. Sebbene un oggetto di una sottoclasse sia un oggetto della superclasse, il tipo della sottoclasse è diverso dal tipo della superclasse. Problema 205. Assegnare un oggetto di una sottoclasse ad un riferimento della superclasse e, quindi, tentare di accedere a membri della sola sottoclasse con il riferimento alla superclasse, genera un errore di compilazione. Problema 206. Quando usiamo l ereditarietà per creare una nuova classe da una classe esistente, la nuova classe eredita solo i comportamenti della classe esistente: successivamente, aggiungiamo campi per adattare la classe alle nostre necessità. Problema 207. (1) Una classe derivata può avere più metodi pubblici della classe base (2) Una classe derivata può avere meno metodi pubblici della classe base (3) Una classe derivata ha sempre lo stesso numero di metodi pubblici d istanza della classe base (4) La prima e la seconda affermazione Problema 208. Supponiamo che le seguenti classi sono state definite: class A class B extends A class C extends B Un oggetto dichiarato come C o = new C(); è di tipo (1) solo C (2) solo C e B (3) solo C, B ed A (4) C, B, A ed Object 27

28 Problema 209. Consideriamo le seguenti due classi: public class Base public void print( int num ) System.out.println( num ); public class Derived extends Base public void print( String s ) System.out.println( s ); (1) Il metodo print della classe Base viene sovrascritto nella classe Derived (2) Il metodo print della classe Base viene sovraccaricato nella classe Derived (3) Un oggetto della classe Derived può essere l oggetto su cui invocare entrambi i metodi print (4) La seconda e la terza affermazione Problema 210. Consideriamo le seguenti due classi: public class Base public void print( String str ) System.out.println( str ); public class Derived extends Base public void print( String s ) System.out.println( s ); (1) Il metodo print della classe Base viene sovrascritto nella classe Derived (2) Il metodo print della classe Base viene sovraccaricato nella classe Derived (3) Un oggetto della classe Derived può essere l oggetto su cui invocare entrambi i metodi print (4) Il codice non viene compilato perchè i nomi del parametro formale sono diversi Problema 211. Consideriamo le seguenti classi: public class Base 28

29 private int num = 10; public void print() System.out.println( num ); public void setnum( int j ) num = j; public class Derived extends Base public void setnum( int j ) num = j+10; public static void main( String[] args ) Derived d = new Derived(); d.setnum( 20 ); d.print(); (1) Il programma stampa 30 (2) Il programma stampa 20 (3) Il programma stampa 10 (4) Il programma non viene compilato Problema 212. Consideriamo le seguenti classi: public class Base private int num = 10; public void print() System.out.println( num ); public void setnum( int j ) num = j; public class Derived extends Base public void setnum( int j ) 29

30 super.setnum( j+10 ); public static void main( String[] args ) Derived d = new Derived(); d.setnum( 20 ); d.print(); (1) Il programma stampa 30 (2) Il programma stampa 20 (3) Il programma stampa 10 (4) Il programma non viene compilato Problema 213. Consideriamo le seguenti classi: public class Base private int num = 10; public void print() System.out.println( getnum() ); public void setnum( int j ) num = j; private int getnum( ) return num; public class Derived extends Base public static void main( String[] args ) Derived d = new Derived(); d.setnum( 20 ); d.print(); (1) Il programma stampa 0 (2) Il programma stampa 20 (3) Il programma non viene compilato (4) Il programma viene compilato ma genera un errore in fase di esecuzione 30

31 Problema 214. Consideriamo le seguenti classi: public class Base private int num = 10; public void print() System.out.println( getnum() ); public void setnum( int j ) num = j; private int getnum( ) return num; public class Derived extends Base public void print() System.out.println( "Base num: "+super.getnum() ); public static void main( String[] args ) Derived d = new Derived(); d.setnum( 20 ); d.print(); (1) Il programma stampa 0 (2) Il programma stampa 20 (3) Il programma stampa 10 (4) Il programma non viene compilato Problema 215. Una classe derivata (1) ha tutte le variabili d istanza definite nella classe base (2) ha tutte le variabili d istanza pubbliche definite nella classe base (3) non ha nessuna delle variabili d istanza definite nella classe base Problema 216. Supponiamo che una classe D sia derivata da una classe B e supponiamo che number sia una variabile d istanza privata della classe base B. Allora (1) number è una variabile d istanza privata della classe derivata D (2) number è una variabile d istanza pubblica della classe derivata D (3) number è sempre una variabile d istanza statica della classe derivata D (4) Nessuna delle affermazioni precedenti è vera 31

32 Problema 217. Supponiamo che una classe D sia derivata da una classe B e supponiamo che dostuff sia un metodo pubblico della classe base B. Allora (1) dostuff è un metodo privato della classe derivata D (2) dostuff è un metodo pubblico della classe derivata D (3) dostuff è sempre un metodo statico della classe derivata D (4) dostuff non è un metodo della classe derivata D Problema 218. Supponiamo che una classe D sia derivata da una classe B e supponiamo che dohushstuff sia un metodo privato della classe base B. Allora (1) dohushstuff è un metodo privato della classe derivata D (2) dohushstuff è un metodo pubblico della classe derivata D (3) dohushstuff è sempre un metodo statico della classe derivata D (4) dohushstuff non può essere invocato nelle definizioni dei metodi della classe derivata D Problema 219. Supponiamo che una classe D sia derivata da una classe B e supponiamo che anobject sia un oggetto della classe derivata D. Allora (1) anobject è anche di tipo B (2) anobject è anche di tipo Object (3) La prima e la seconda affermazione sono vere (4) Nessuna delle precedenti affermazioni è vera Problema 220. I metodi privati fanno parte (1) dell interfaccia di una classe (2) dell implementazione di una classe (3) dell interfaccia e dell implementazione di una classe (4) I metodi non possono essere privati Problema 221. Perché una classe sia un programma, il metodo principale deve avere la seguente intestazione (1) public static int main( String[] args ) (2) public void main( String[] args ) (3) public static void main( String args ) (4) nessuna delle precedenti Problema 222. Quale delle seguenti affermazioni è falsa riguardo al metodo main? (1) Un metodo main può essere incluso in ciascuna classe per semplificare il test (2) Ogni classe deve avere un metodo main (3) Il metodo main è usato per avviare un programma (4) Il metodo main è un metodo di classe (ovvero, statico) Problema 223. (1) Ogni classe può avere metodi statici (2) Solo una classe definita dall utente può avere metodi statici (3) Solo una classe senza variabili d istanza può avere metodi statici (4) Una classe non può avere allo stesso tempo metodi statici e metodi d istanza Problema 224. Un metodo statico può in tutte le circostanze essere invocato facendo precedere il nome del metodo (1) dal nome della classe che contiene il metodo (2) dal nome di un oggetto della classe che contiene il metodo 32

33 (3) da this (4) La prima e la seconda affermazione sono corrette Problema 225. Dopo che una classe è stata scritta, compilata e testata, abbiamo bisogno di testarla nuovamente se (1) un metodo viene aggiunto alla classe (2) il corpo di un metodo esistente viene modificato (3) un altra classe che invoca il metodo viene modificata (4) La prima e la seconda affermazione sono corrette Problema 226. Supponiamo che una classe abbia due metodi sovraccarichi con le seguenti intestazioni: public int mymethod( int x ) public int mymethod( double x ) Supponiamo che la classe abbia due variabili d istanza l di tipo long ed f di tipo float e che le seguenti invocazioni siano eseguite da un metodo della stessa classe: mymethod( l ) mymethod( f ) (1) Il primo metodo viene invocato due volte (2) Il secondo metodo viene invocato due volte (3) Il primo metodo viene invocato con argomento l ed il secondo con argomento f (4) Il codice non viene compilato in quanto i tipi non sono compatibili Problema 227. Quanti costruttori devono necessariamente essere definiti quando si scrive una classe? (1) 0 (2) 1 (3) Almeno 1 (4) Uno per ogni variabile d istanza Problema 228. Supponiamo che una classe MyExample abbia solo i seguenti costruttori: public MyExample( int a ) public MyExample( float f,char c ) Quale delle seguenti affermazioni è falsa? (1) MyExample myex = new MyExample(); è una dichiarazione corretta di un oggetto (2) MyExample myex = new MyExample( 7 ); è una dichiarazione corretta di un oggetto (3) MyExample myex = new MyExample( 3.1, A ); è una dichiarazione corretta di un oggetto (4) MyExample myex = new MyExample( 7, a ); è una dichiarazione corretta di un oggetto Problema 229. La compilazione produce tanti file.class quante sono le classi all interno dell unità di compilazione. Problema 230. Ogni classe deve esplicitamente dichiarare il package di cui fa parte tramite l istruzione corrispondente. 33

34 Problema 231. Esiste una corrispondenza biunivoca fra nome di un package e posizione nel file system delle classi del package. Problema 232. Le classi del package piluc.gj.poligoni si trovano all interno della directory piluc/gj/poligoni. sempre (3) Generalmente vero, ma il nome della directory dipende dal sistema operativo Problema 233. L esecuzione di una classe che appartiene ad certo package può essere richiesta posizionandosi direttamente nella directory che contiene il file.class corrispondente. Problema 234. Java usa early binding: il tipo formale del riferimento prevale sul tipo effettivo dell oggetto corrente. (1) Vero (2) Falso Problema 235. La firma di un metodo comprende nome del metodo, numero e tipo dei suoi parametri e tipo del valore di ritorno. (1) Vero (2) Falso Problema 236. La libreria java.lang va importata esplicitamente. Problema 237. Per la distruzione di oggetti, Java mette a disposizione operatori ad-hoc. (1) Vero (2) Falso 34

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

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

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

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

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Introduzione a Java. Riferimenti

Introduzione a Java. Riferimenti Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia

Dettagli

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

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

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

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

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

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

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

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

Fondamenti di Programmazione. Strutture di controllo

Fondamenti di Programmazione. Strutture di controllo Fondamenti di Programmazione Strutture di controllo 1! Controllo del flusso! n Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite! n Salvo contrordini, è in sequenza! n Due

Dettagli

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

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

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

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

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

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

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1. I mattoni di base di un programma Java Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 2 28 settembre

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

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

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli

Proprietà delle Classi e degli Oggetti in Java

Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di

Dettagli

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

Java. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto

Java. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto Java Java: compilatore e interprete Il linguaggio Java è un linguaggio di programmazione ad alto livello - algoritmo: astrazione della realtà - linguaggio di programmazione: astrazione del processore -

Dettagli

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

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Istruzioni iterative (o cicliche)

Istruzioni iterative (o cicliche) Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

Informatica Generale Andrea Corradini I linguaggi di programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi

Dettagli

Tipi di dato primitivi

Tipi di dato primitivi Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Dettagli

Java. Java : compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto

Java. Java : compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto Java Il linguaggio Java è un linguaggio di programmazione ad alto livello algoritmo: astrazione della realtà linguaggio di programmazione: astrazione del processore variabile e tipo: astrazione della locazione

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli.

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli. Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 16 Tipi riferimento e stringhe Carla Limongelli Maggio 2010 Definizione di metodi 1 Contenuti Tipi riferimento Stringhe e oggetti String

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

Introduzione alla programmazione in C(++)

Introduzione alla programmazione in C(++) Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie

Dettagli

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi

Dettagli

Prima lezione di laboratorio. I mattoni di base di un programma Java. Comandi Unix. Riassunto. Oggi. Un programma complicato.

Prima lezione di laboratorio. I mattoni di base di un programma Java. Comandi Unix. Riassunto. Oggi. Un programma complicato. I mattoni di base di un programma Java Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 2 1 ottobre

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica: Convenzioni di Stile versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

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

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Strategie di programmazione

Strategie di programmazione Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie

Dettagli

Programmazione ad Oggetti. Java Parte II

Programmazione ad Oggetti. Java Parte II Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una

Dettagli

AMBIENTI DI PROGRAMMAZIONE

AMBIENTI DI PROGRAMMAZIONE AMBIENTI DI PROGRAMMAZIONE È l'insieme dei programmi che consentono la scrittura, la verifica e l'esecuzione di nuovi programmi (fasi di sviluppo) Sviluppo di un programma Affinché un programma scritto

Dettagli

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

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

Dettagli

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Modulo 2: Strutture fondamentali della programmazione Java

Modulo 2: Strutture fondamentali della programmazione Java Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

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

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore

Dettagli

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

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

Istruzioni di ripetizione in Java 1

Istruzioni di ripetizione in Java 1 in Java Corso di laurea in Informatica Le istruzioni di ripetizione consentono di eseguire molte volte la stessa Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni

Dettagli

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI DI PROGRAMMAZIONE! LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni

Dettagli

Introduzione alla Programmazione in Java attraverso un esempio commentato

Introduzione alla Programmazione in Java attraverso un esempio commentato Corso di Studi in Informatica Programmazione 1 corso B prof. Elio Giovannetti Introduzione alla Programmazione in Java attraverso un esempio commentato Programmazione 1 B - a.a. 2002-03 53 Modello di memoria

Dettagli

Programmazione web lato client con JavaScript. Marco Camurri 1

Programmazione web lato client con JavaScript. Marco Camurri 1 Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

Dettagli

Operazioni numeriche - Input

Operazioni numeriche - Input Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di input 11/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Operazioni fra interi e decimali In Java

Dettagli

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Introduzione alle stringhe e algoritmi collegati

Introduzione alle stringhe e algoritmi collegati Introduzione alle stringhe e algoritmi collegati Algoritmicamente August 15, 2009 1 Introduzione 1.1 Introduzione ai caratteri In informatica o più generalmente in una terminologia scientifica, il carattere

Dettagli

La classe java.lang.object

La classe java.lang.object La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita

Dettagli

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

Dettagli

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Le direttive del Preprocessore

Le direttive del Preprocessore Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Excel & VBA. Excel e Visual Basic for Application

Excel & VBA. Excel e Visual Basic for Application Excel & VBA Excel e Visual Basic for Application Automazione Excel con VBA incorpora la tecnologia dell automazione (OLE automation) Excel dialoga con VBA attraverso un insieme di comandi detto libreria

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

Linguaggio C++ Linguaggi di terza generazione

Linguaggio C++ Linguaggi di terza generazione Linguaggio C++ Linguaggi di terza generazione Insieme di primitive ad alto livello, ognuna traducibile in una sequenza di primitive in linguaggio macchina Es.: pesolordo pesocarico + pesoveicolo Due load,

Dettagli

$QDOLVLGHOSURJUDPPDTXDGUDWR

$QDOLVLGHOSURJUDPPDTXDGUDWR $QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =

Dettagli

Oggetti e classi. Cos è un oggetto

Oggetti e classi. Cos è un oggetto Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

Ereditarietà e Polimorfismo

Ereditarietà e Polimorfismo Ereditarietà e Polimorfismo Riusare il software A volte si incontrano classi con funzionalità simili In quanto sottendono concetti semanticamente vicini È possibile creare classi disgiunte replicando le

Dettagli

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Corso di JavaScript. Prerequisiti. B1 Tipi di dato e operatori. Concetto di variabile, espressione e tipo di dato

Corso di JavaScript. Prerequisiti. B1 Tipi di dato e operatori. Concetto di variabile, espressione e tipo di dato Corso di JavaScript B1 Tipi di dato e operatori 1 Prerequisiti Concetto di variabile, espressione e tipo di dato 2 1 Introduzione In questa Unità illustriamo alcuni strumenti operativi per la scrittura

Dettagli