Preparazione allo Scritto di Programmazione

Documenti analoghi
Programmazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x):

Programmazione II Compitino (Vers. A)

Programmazione II Compitino (Vers. B)

Programmazione II Compitino (Vers. B)

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

Programmazione II Compitino (Vers. A)

Laboratorio di Programmazione I Compitino (Vers. C)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Programmazione II Compitino (Vers. A)

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Gestione dei compiti

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007

Metodi statici. Dichiarazione e chiamata di metodi statici

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

5 - Istruzioni condizionali

Programmazione con Java

Ingredienti sintattici di Java

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

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

Esercitazione 11. Liste semplici

Le basi del linguaggio Java

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

Cognome Nome Matricola Postazione PC. Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a Gennaio 2015

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

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

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

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Iterazioni. L istruzione while. while (condition) istruzione

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

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

Laboratorio di Matematica e Informatica 1

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

Algoritmi di Ricerca. Esempi di programmi Java

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

Quale e' l'espressione regolare corretta per validare una stringa contentente uno o piu caratteri qualsiasi tra "a" oppure "b" oppure "d"?

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Iterazione (introduzione)

Algoritmi di Ricerca. Esempi di programmi Java

Introduzione alla Programmazione in Java attraverso un esempio commentato

16 - Ereditarietà, tipi e gerarchie

Lezione 6 programmazione in Java

14 - Metodi e Costruttori

Istruzioni di ripetizione in Java 1

Introduzione all uso degli oggetti in Java (parte II) Walter Didimo

Programmazione 1 A.A. 2015/2016

Informatica 1. Prova di recupero 21 Settembre 2001

8 - Stringhe (e altre classi dalla Libreria Standard di Java)

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

Programmazione, 5 a lezione

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

Perché il linguaggio C?

Le strutture di controllo in C++

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

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 8 Novembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

Sommario FONDAMENTI DI INFORMATICA. File e Python. Gestione di file. LINGUAGGIO Python Gestione dei file

Le Stringhe. Usare la classe java.lang.string

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011

INTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C

Le basi del linguaggio Java

Dati aggregati. Violetta Lonati

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

Laboratorio di programmazione

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Calcolare x n = x x x (n volte)

Note ed esercizi aggiuntivi

Gestione di files Motivazioni

Indice. Prefazione. 3 Oggetti e Java 53

Esempi di Problemi Iterativi

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

INFORMATICA ED ELEMENTI DI INFORMATICA MEDICA. MODULO DI INFORMATICA Prof. Stefano Gaburri e Prof. Gianluca Palermo. Prova del 12 Luglio 2010

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a febbraio 2013

Esempio: L EURO-CONVERTITORE (1) Scopo

Esempi di Problemi Iterativi

Fondamenti di Programmazione Recupero Primo Parziale 30 Gennaio 2008 Traccia A

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Esercitazione n 2. Obiettivi

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

/***************************** FILE: Quiz.java *****************************/ public class Quiz { private String text; private int score;

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Programmazione a oggetti

Laboratorio di programmazione

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 21 Gennaio 1998

Strutturare il codice: sottoprogrammi

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Strutture di controllo decisionali

ESERCIZIO 1 (FILE DI TESTO)

Transcript:

Preparazione allo Scritto di Programmazione Informatica / Comunicazione Digitale A.A. 2014/2015 Matricola:...................... Cognome:...................... Nome:...................... Informatica Comunicazione Digitale FAP 1. Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): A +f(double x): +f(string x): C +f(long x): +f( x): B +f(double x): +f( x): D +f(string x): +f( x): e ipotizzate che tutte le classi abbiano un costruttore pubblico senza argomenti. Assumete le seguenti definizioni e inizializzazioni: A a = new D(); C b = new D(); C c = new C(); D d = new D(); Per ciascuna delle seguenti invocazioni di metodo, dire se essa è consentita e in caso affermativo indicare il nome della classe che contiene il metodo che verrà effettivamente eseguito: a.f( ciao ):....................................................... D: f(string) c.f( ciao ):....................................................... A: f(string) b.f( 4 ):................................................................. D: f() d.f( 3d ):........................................................... A: f(double) a.f( 3 ):.............................................................A: f(double) 2. Considerate il seguente frammento di programma: k = 0; for ( h = 0; h < 3; h++ ) for ( i = 0; i < 3; i++ ) for ( j = 0; j < 3; j++ ) k = k + i*j; Quale sarà il valore di k dopo la sua esecuzione? k:.................. 27 1

3. Sia la seguente definizione di variabili: x = 2; y = 3; Dite quale sarà il contenuto di x e y dopo l esecuzione degli assegnamenti indicati: Assegnamento x y x = y++ + ++x + y++ 10 5 y = y++ + ( x *= y ) 8 11 y += ( -y >= x? ++x : x++ ) 3 6 x = y = x = y 3 3 4. Sia la seguente definizione di variabili: y = 2; x = ++y; Dite quale sarà il valore di verità delle seguenti espressioni booleane e quale sarà il contenuto delle variabili x e y dopo la valutazione delle espressioni indicate: Espressione Verità x y ( x >= ( y = x ) ) & ( x - == ++x ) true 3 3 ( ( y + x ) > ( y = ++x ) ) &&!( ++x >= y++ ) false 5 5 ( ( y + x ) > ( y = ++x ) ) ( ++x >= y++ ) true 4 4 ( ( y + x ) >= ( y = ++x ) )!( ++x >= y++ ) true 5 5 2

5. Scrivete un programma (basta il corpo del main; assumete inoltre le due variabili in e out) che: legga dall utente una sequenza A di numeri reali. Attenzione! I numeri possono solamente essere positivi. L inserimento dei numeri termina quando l utente inserisce 0, legga dall utente una sequenza B di figure geometriche, ognuna delle quali può essere un cerchio, un quadrato, oppure un rettangolo. Scegliete a vostro piacimento il modo in cui l utente segnala la terminazione dell inserimento delle figure. Successivamente, il programma deve stampare: i cerchi la cui area compare nella sequenza A, i rettangoli (non quadrati) la cui base supera la media dei numeri nella sequenza A, i quadrati (non rettangoli) la cui diagonale supera il massimo nella sequenza A. Attenzione: nel caso in cui anche solo una delle sequenze fosse vuota, il programma deve errompersi emettendo un opportuno messaggio. - Svolgimento alla pagina seguente - 3

ArrayList<Double> A = new ArrayList<Double>(); double d, max = -1, s; d = in.readdouble(); if ( d > 0 ) { if ( d > max ) max = d; s += d; A.add( d ); while ( d!= 0 ); ArrayList<Figura> B = new ArrayList<Figura>(); char c; c = in.readchar( "Rettangolo (r), Quadrato (q), Cerchio (c), Esci (x): " ); while ( c!= r && c!= q && c!= c && c!= x ), switch ( c ) { case r : B.add( new Rettangolo( in.readdouble("base: "), in.readdouble("altezza: ") ) ); case q : B.add( new Quadrato( in.readdouble("lato: ") ); case c : B.add( new Cerchio( in.readdouble("raggio: ") ); while ( c!= x ); if ( A.size() > 0 && B.size() > 0 ) { if ( f instanceof Cerchio ) for ( double x : A ) if ( f.getarea() == x ) { out.prln( f ); if ( f instanceof Rettangolo &&!( f instanceof Quadrato ) ) if ( ((Rettangolo) f).getbase() > s / A.size() ) out.prln( f ); if ( f instanceof Quadrato ) if ( Math.sqrt( 2 * ((Quadrato) f).getlato() * ((Quadrato) f).getlato() ) > max ) out.prln( f ); else System.out.prln( "Le sequenze non sono entrambe piene" ); 4

6. L ampiezza di una stringa s è la massima lunghezza di un segmento iniziale di s il cui reverse è anche un segmento finale; da sottolineare che i segmenti iniziali e finali non devono sovrapporsi e vanno considerati a prescindere da maiuscolo/minuscolo. Ad esempio: abbbba1234abbbba ha ampiezza 6 (che è la lunghezza del segmento abbbba), abbbba12 34AbbBBa ha ampiezza 6 (per le stesse ragioni di prima e per il fatto che maiuscolo/minuscolo non conta), abcdef hghg a ha ampiezza 1, abbbbbbbbbbbc ha ampiezza 0, aaaaaaaaa ha ampiezza 4. Scrivete il metodo statico ampiezza che restituisce l ampiezza di una stringa passata come argomento. Utilizzate tale metodo nella scrittura di un programma (basta il corpo del main; assumete inoltre le due variabili in e out) che: acquisisca dall utente un brano riga per riga, assumendo come fine inserimento brano l acquisizione della stringa nulla, successivamente, stampi LE (notate il plurale!) righe del brano aventi l ampiezza più grande. - Svolgimento - // metodo statico ampiezza public static ampiezza( String t ) { String s = t.touppercase() a = 0; while ( a < s.length() / 2 && s.charat( a ) == s.charat( s.length() - a++ - 1 ) ) ; return a; // main ArrayList<String> B = new ArrayList<String>(); String s; maxamp = -1; while ( ( s = in.nextline() ).length() > 0 ) { if ( ampiezza( s ) > maxamp ) maxamp = ampiezza( s ); B.add(s); if ( B.size() > 0 ) for ( String x : B ) if ( ampiezza( x ) == maxamp ) System.out.prln( x ); else System.out.prln( Nessun brano inserito" ); 5