60 likes | 189 Views
Associare tramite una freccia i vari simboli di diagramma di flusso alle relative operazioni: (Nota Bene: In alcuni casi un simbolo può essere assegnato a più di una operazione ed un’operazione può essere associata a più di un simbolo). Selezione Assegnamento Inizio Diagramma Dati in Input
E N D
Associare tramite una freccia i vari simboli di diagramma di flusso alle relative operazioni: • (Nota Bene: In alcuni casi un simbolo può essere assegnato a più di una operazione ed un’operazione può essere associata a più di un simbolo) • Selezione • Assegnamento • Inizio Diagramma • Dati in Input • Operazione Generica • Ricorsione (Cicli) • Fine Diagramma • Dati in Output ISTITUTO STATALE DI ISTRUZIONE SUPERIORE “F. ENRIQUES” CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________ • Rispondere con una V se ritenete l’affermazione vera o con una F se la ritenete falsa : • ___ La condizione del test di una selezione deve avere 2 scelte disgiunte, che coprono tutte le risposte possibili. • ___ I tipi fondamentali con cui si può rappresentare un numero intero sono 5. • ___ Il tipo int serve per rappresentare numeri interi che vanno da -2.147.483.648 a 2.147.483.647. • ___ L’istruzione per effettuare una stampa a video è System.println(“Messaggio”); • ___ Le costanti si dichiarano come le variabili con la sola differenza che devono essere precedute dalla parola chiave final. • ___ La sintassi del costrutto FOR è strutturata così: for(inizializzazione; condizione) { istruzioni; } • ___ L’istruzione FOR può essere equivalente ad un istruzione WHILE purché quest’ultima contenga nel suo blocco di istruzioni l’incremento del contatore utilizzato nella sua condizione. • ___ Nell’istruzione SWITCH .. CASE è possibile inserire nel CASE degli intervalli di valori da confrontare con il valore assunto dalla variabile di SWITCH. • ___ Se si supera la capacità di un array, questo è in grado di espandersi automaticamente senza che il sistema restituisca errore. Pag. 1 di 6
3. Dato il seguente diagramma di flusso segnare con una croce il risultato di output corretto : (Nota Bene: Non è detto che tra le soluzioni proposte ci sia per forza quella corretta…) Inizio • somma = 55 ___ • somma = 10 ___ • somma = 45 ___ • somma = 65 ___ • somma = 11 ___ • somma = 1 ___ • somma = 36 ___ somma = 0, i = 1; vero falso i < 10 somma somma = somma + i Fine i++ • Scrivere nel box sottostante la traduzione in codice Java del diagramma a blocchi della domanda precedente: public static void main(String[] args) { } Pag. 2 di 6
Quali delle seguenti affermazioni sui costrutti WHILE e DO..WHILE sono vere? (Segnare con una croce tutte le affermazioni che ritenete corrette) • ___ Il costrutto WHILE esegue le istruzioni più velocemente di quello DO..WHILE. • ___ Il costrutto WHILE e DO..WHILE sono equivalenti. • ___ Il costrutto DO..WHILE esegue almeno una volta il suo blocco di istruzioni. • ___ Il costrutto WHILE esegue il suo blocco di istruzioni finché la sua condizione è vera. • ___ All’interno di un ciclo WHILE non è possibile utilizzare l’istruzione CONTINUE. • ___ All’interno di un ciclo DO..WHILE non è possibile utilizzare l’istruzione BREAK. • Dato il seguente frammento di codice JAVA relativo alle istruzioni necessarie per poter utilizzare un array, quali delle seguenti affermazioni sono vere? (Segnare con una croce tutte le affermazioni che ritenete corrette) • int x[ ]; • x = new int[7]; • x[0] = 15; x[1] = 8; x[2] = 123; x[3] = 91; x[4] = 51; x[5] = 9; x[6] = 33; • ___ Era possibile utilizzare lo stesso array utilizzando la sola istruzione: int x[] = {15,8,123,91,51,9,33} • ___ L’istruzione x.length(); restituisce il valore 6; • ___ Per cambiare il valore del secondo elemento da 8 a 18 si utilizza l’istruzione x[1]:=18; • ___ Se eseguo l’istruzione int y = x[2+3]; assegno a y il valore 9. • ___ Se eseguo l’istruzione int y = x[7%3] + x [9:2] ; assegno a y il valore 59. • ___ Se eseguo l’istruzione int y = x[9/2]; assegno a y il valore 8. 7. Scrivere nel box sottostante la differenza tra l’istruzione BREAK e l’istruzione CONTINUE, in particolare spiegare qual è l’istruzione che si esegue dopo aver eseguito tali istruzioni. Pag. 3 di 6
Dovendo memorizzare in una variabile i seguenti valori, indicare il tipo più adatto da assegnare a tale variabile al fine di contenere tale valore: • Valore: 100 Tipo della variabile: __________ • Valore: “Pippo” Tipo della variabile: __________ • Valore: 452,31 Tipo della variabile: __________ • Valore: ‘b’ Tipo della variabile: __________ • Valore: false Tipo della variabile: __________ • Valore: 10e300 Tipo della variabile: __________ • Valore: 30000,00 Tipo della variabile: __________ • Valore: “452,31” Tipo della variabile: __________ • Quali delle seguenti affermazioni sui paradigmi di programmazione sono vere? (Segnare con una croce tutte le affermazioni che ritenete corrette) • ___ I paradigmi di programmazione si dividono in dichiarativo e procedurale. • ___ Il paradigma di programmazione procedurale contiene, tra le altre, la programmazione funzionale e la programmazione ad oggetti. • ___ La programmazione logica fa parte della programmazione procedurale. • ___ La programmazione imperativa fa parte della programmazione procedurale. • ___ Java è un linguaggio solamente orientato agli oggetti. • ___ Java è fondamentalmente un linguaggio ad oggetti, ma può essere utilizzato per fare anche programmazione imperativa. • Inserire la parola corretta negli spazi lasciati vuoti: • A) Il modificatore d’accesso ______________ permette l’accesso alla classe a chiunque. • B) Le ____________ _____________ sono replicate ogni volta che istanzio un oggetto. • C) Quando istanzio un nuovo oggetto viene chiamato il metodo ___________________ della classe di appartenenza dell’oggetto. • D) L’insieme delle strutture dati definiscono lo ________________ di un oggetto in uno specifico istante temporale. • E) Il ________________ del costruttore deve coincidere con quello della classe. • F) Il modificatore d’accesso ________________ non può essere usato per il costruttore. • G) Le variabili statiche si riconoscono da quelle d’istanza perché sono precedute dalla parola chiave ______________. • H) E’ necessario definire almeno un ______________________ per ogni classe. • I) Il _________________ del costruttore non deve essere specificato. Pag. 4 di 6
11. Scrivere nel box sottostante qual è la sintassi con cui è dichiarato un metodo, spiegando brevemente le varie componenti. 12. Quali delle seguenti affermazioni sulla programmazione orientata agli oggetti sono vere? (Segnare con una croce tutte le affermazioni che ritenete corrette) ___ I linguaggi di program. ad oggetti di solito offrono strumenti che implementano i meccanismi dell’Incapsulamento, dell’Ereditarietà e del Late Binding. ___ Per definire una classe X che eredita da una classe Y, nella sua implementazione verrà utilizzata la sintassi class X extends Y { … } ___ Per istanziare un oggetto si utilizza la sintassi: nome_oggetto = new nome_classe ( parametri, dipende dal costruttore); ___ La parola chiave this viene utilizzata per fare riferimento ad un membro della classe progenitrice. Grazie a this è possibile quindi invocare la versione originale di un metodo di cui è stato fatto overriding, che altrimenti risulterebbe inaccessibile a causa del meccanismo del Late Binding. ___ Il meccanismo del Late Binding se non trova il metodo richiamato nella classe dell’oggetto stesso, risale la gerarchia delle classi alla ricerca di un metodo che abbia lo stesso nome e lo stesso numero e tipo di parametri di quello richiamato. ___ Una variabile di un certo tipo X, può contenere oggetti di tipo X oppure oggetti appartenenti a sottoclassi di X. Pag. 5 di 6
Inserire la parola corretta negli spazi lasciati vuoti: • A) Quando si effettua l’________________________ di un metodo, significa che la classe fornisce una propria implementazione del metodo che differisce, a livello di istruzioni, dal metodo della classe progenitrice. • B) Quando invece si effettua l’______________________ di un metodo, significa che si implementa un metodo che ha lo stesso nome di un metodo della classe progenitrice, ma con un numero o/e tipo di parametri diversi. • C) In caso di overloading il ________ ______________ non è sufficiente da solo a a distinguere i metodi. • D) Se si utilizza la parola chiave _________ prima del tipo restituito da un metodo, significa che di quel metodo non è possibile effettuare l’overriding. 14. Date le classi sottostanti, mostrare nel box sottostante un esempio di overriding ed uno di overloading: class Persona { public String nome; public String cognome; public Persona (String Nome, String Cognome) { nome = Nome; cognome = Cognome; } public Stampa( ) { System.out.println(Nome + “ “ + Cognome); } } class Studente extends Persona { int voto1; int voto2; public Studente (String Nome, String Cognome, int Voto1, int Voto 2) { super(Nome,Cognome); this.voto1=Voto1; this.voto2=Voto2; } public float Calcola_Media (int voto1, int voto2) { float media = (voto1 + voto2)/2; result (media); } } Pag. 6 di 6