ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Le basi della programmazione a oggetti.
Dati strutturati A. Ferrari.
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Ripasso R1 Dati strutturati.
PHP.
Algoritmi e Programmazione
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Fondamenti di Informatica
INFORMATICA Strutture iterative
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
Derivazione tra classi
Overriding.
Soluzione Esercizio - Classe Vettore
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Oggetti e dati primitivi
Programmazione Corso di laurea in Informatica
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
Selezione (=scelta) con “if-else”
Strutture di controllo in C -- Flow Chart --
Java base IV: Java e la programmazione O.O.
Programmazione in Java
Programmazione in Java Claudia Raibulet
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Diagramma di flusso del problema del Supermercato.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Corso di Programmazione in Java – Esercizio n° 001
Diagramma di flusso del problema dello stipendio del rappresentante.
I nomi in Java F. Bombi 18 novembre novembre 2003.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Corso JAVA Lezione n° 02 Istituto Statale di Istruzione Superiore “F. Enriques”
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Una "vera" classe.. ..un esempio pratico: la calcolatrice
Programmazione ad oggetti
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
Introduzione a Javascript
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Programmazione in Java. Classi I programmi in Java consistono di classi. Le classi consentono di definire: collezioni di procedure (metodi statici) tipi.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
Corso di Algoritmi e Strutture Dati con Laboratorio Richiami di Java – parte II.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________ 1.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 unoperazione può essere associata a più di un simbolo) A)Selezione B)Assegnamento C)Inizio Diagramma D)Dati in Input E)Operazione Generica F)Ricorsione (Cicli) G)Fine Diagramma H)Dati in Output 2.Rispondere con una V se ritenete laffermazione 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 a ___Listruzione 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; } ___Listruzione FOR può essere equivalente ad un istruzione WHILE purché questultima contenga nel suo blocco di istruzioni lincremento del contatore utilizzato nella sua condizione. ___Nellistruzione 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 V F V F V F V F F

Pag. 2 di 6 Inizio somma = 0, i = 1; i < 10 somma = somma + i i++ Fine somma verofalso 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…) A)somma = 55___ B)somma = 10___ C)somma = 45___ D)somma = 65___ E)somma = 11___ F)somma = 1___ G)somma = 36___ 4.Scrivere nel box sottostante la traduzione in codice Java del diagramma a blocchi della domanda precedente: public static void main(String[] args) { } X int somma = 0; int i; for ( i = 1; i < 10; i++ ) { somma = somma + i; i++; } System.out.println(Il risultato della somma è: + somma);

Pag. 3 di 6 5.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. ___Allinterno di un ciclo WHILE non è possibile utilizzare listruzione CONTINUE. ___Allinterno di un ciclo DO..WHILE non è possibile utilizzare listruzione BREAK. 6.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} ___Listruzione x.length(); restituisce il valore 6; ___Per cambiare il valore del secondo elemento da 8 a 18 si utilizza listruzione x[1]:=18; ___Se eseguo listruzione int y = x[2+3]; assegno a y il valore 9. ___Se eseguo listruzione int y = x[7%3] + x [9:2] ; assegno a y il valore 59. ___Se eseguo listruzione int y = x[9/2]; assegno a y il valore 8. 7.Scrivere nel box sottostante la differenza tra listruzione BREAK e listruzione CONTINUE, in particolare spiegare qual è listruzione che si esegue dopo aver eseguito tali istruzioni. X X X X X Listruzione break interrompe literazione corrente del ciclo e salta allistruzione successiva al blocco di istruzioni del ciclo stesso. Listruzione continue interrompe literazione corrente del ciclo e passa alliterazione successiva, ovvero riportando il flusso dellesecuzione alla valutazione della condizione allinizio del ciclo.

Pag. 4 di 6 8.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: 100Tipo della variabile:__________ Valore: PippoTipo della variabile:__________ Valore: 452,31Tipo della variabile:__________ Valore: bTipo della variabile:__________ Valore: falseTipo della variabile:__________ Valore: 10e 300 Tipo della variabile:__________ Valore: 30000,00Tipo della variabile:__________ Valore: 452,31Tipo della variabile:__________ 9.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. 10.Inserire la parola corretta negli spazi lasciati vuoti: A)Il modificatore daccesso ______________ permette laccesso 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 delloggetto. D)Linsieme 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 daccesso ________________ non può essere usato per il costruttore. G)Le variabili statiche si riconoscono da quelle distanza perché sono precedute dalla parola chiave ______________. H)E necessario definire almeno un ______________________ per ogni classe. I)Il _________________ del costruttore non deve essere specificato. Byte String Float Char Boolean Double Float String X X X Public VariabiliDIstanza Costruttore Stato Nome Static Costruttore Tipo

11.Scrivere nel box sottostante qual è la sintassi con cui è dichiarato un metodo, spiegando brevemente le varie componenti. Pag. 5 di 6 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 dellIncapsulamento, dellEreditarietà 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 delloggetto 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. Sintassi: Nome_Metodo (Tipo_Parametri Parametri) Il modificatore permette di definire chi ha accesso alla classe e alle sue strutture dati. Il tipo restituito definisce il tipo del risultato del ns. metodo. Se il metodo non restituisce nessun risultato particolare allora si utilizza la parola chiave void. Il nome del metodo è il nome con cui si identifica il metodo. Tra parentesi si possono inserire il tipo ed il nome di uno o più parametri. Tali valori vengono utilizzati come dati di input del metodo che vengono utilizzati di solito per calcolare il risultato che il metodo deve restituire. X X X

Pag. 6 di 6 13.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 loverriding. 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); } Overriding Overloading TipoRestituito Final Overriding: Nella classe Studente si ridefinisce il metodo Stampa: Stampa( ) { super.Stampa(); System.out.println( La cui media è: + Calcola_Media(voto1,voto2) ); } Overloading: Nella classe Persona si definisce un nuovo metodo Stampa: Stampa (int i) { for ( j = 0; j < i; j++) System.out.println(Nome + + Cognome); }