esame poo

Stato
Discussione chiusa ad ulteriori risposte.

PepSi_

Utente Silver
5 Marzo 2010
7
2
0
54
qualcuno mi puo aiutare cn qst esercizi pls? magari mostrandomi cm si fanno... nella codifica binaria dei numeri reali me la cavo benissimo ma il resto molto meno
Esercizio 1. Sia n=9 il numero di bit di una rappresentazione di numeri interi per complementi a due. Specificare:
a) l’intervallo di definizione degli interi ammessi
b) la rappresentazione dei numeri i1=(114 e i2=(231, i3=47
c) i dettagli delle operazioni i1+i2 e i2(i3 specificando eventuali situazioni di trabocco.

Esercizio 2. Dato il numero reale r10=(237.73 mostrare la corrispondente rappresentazione in bit del numero secondo il formato IEEE 754 a singola precisione. Fornire inoltre la rappresentazione esadecimale della stringa di bit ottenuta.

Esercizio 3. Si illustri la costruzione di un heap (modellato su un array) formato dai seguenti elementi: 5,6,7,1,2,9,4. Si riproducano i passaggi necessari per la rimozione dell'elemento 2. Infine si disegni la struttura ad albero corrispondente.

Esercizio 4. Su un file di tipo testo, diciamolo f1, sono presenti, uno per linea, numeri di targa automobilistici e numeri di telefono. Un numero di targa consiste, come è noto, da due lettere maiuscole seguite da tre cifre seguite da altre due lettere maiuscole, mentre un numero di telefono è costituito da un prefisso lungo al massimo tre cifre, quindi il carattere spazio o – e quindi il numero vero e proprio che può essere lungo al massimo 7 cifre. Si deve scrivere un programma Java che generi a partire da f1 due file di tipo testo, diciamoli f2 ed f3, di cui f2 è destinato a contenere i soli numeri di targa, f3 i soli numeri di telefono. Il programma deve far uso delle espressioni regolari.

Esercizio 5. Con riferimento ad una classe ListaConcatenata<t> che implementa una lista concatenata semplice a puntatori espliciti mostrare due versioni, rispettivamente ricorsiva ed iterativa, del metodo void purge(T e) che elimina dalla lista tutti i duplicati di e tranne uno.

Esercizio 6. Con riferimento ad una struttura dati del tipo albero binario di caratteri a puntatori espliciti, implementare
a) un metodo costruttore che riceve una stringa s e provvede a costruire l’albero, con la mediazione di un metodo privato e ricorsivo Nodo build(String s), distribuendo i caratteri di s sui nodi dell’albero con tecnica logaritmica. Si divide in due parti s, diciamo s1 ed s2 le due parti, meno il carattere centrale x che diviene la radice dell’albero. La costruzione continua distribuendo, ricorsivamente, sul sottoalbero sinistro i caratteri di s1 e sul sottoalbero destro i caratteri di s2, sempre con la stessa tecnica
b) il metodo void visitaFrontiera() che visualizza su output il contenuto delle sole foglie dell’albero, rispettivamente da sinistra a destra.

Esercizio 7. Si considerano polinomi a valore reale (double), con gradi interi non negativi e coefficienti interi, in due variabili (reali) x ed y. Definire un’interfaccia Monomio comparabile e dotata (almeno) dei seguenti metodi: int getCoeff(), int getGradoX(), int getGradoY(), Monomio add( Monomio m ), Monomio mul( Monomio m ), Monomio mul( int s ), Monomio derivataX() – derivata prima rispetto alla x, Monomio derivataY() – derivata prima rispetto alla y. Il confronto tra monomi è quello usuale della matematica (grado x decrescente, grado y crescente).
Quindi sviluppare una classe MonomioXY che implementa Monomio e fornisca in più i metodi equals(…), hashCode() e toString(). La classe MonomioXY deve sollevare quando richiesto eventuali eccezioni.
Successivamente progettare un’interfaccia Polinomio iterabile, che definisce i metodi fondamentali per elaborare polinomi in due variabili, i cui monomi sono ordinati per grado x decrescente e grado y crescente. I metodi previsti sono: Polinomio add( Polinomio p ) che costruisce e ritorna il polinomio somma tra this e p, Polinomio mul(Polinomio p) che costruisce e ritorna il polinomio prodotto tra this e p, Polinomio mul(int s) che costruisce e ritorna il polinomio che si ottiene moltiplicando per lo scalare s tutti i monomi di this, Polinomio derivataX(), Polinomio derivataY() che costruiscono e ritornano rispettivamente il polinomio derivata prima rispetto alla x e alla y, double valore(double x, double y) che ritorna il valore del polinomio valutato nel punto x,y specificato.
A partire dalla interfaccia Polinomio, sviluppare:
una classe astratta PolinomioAstratto che implementa Polinomio e concretizza quanti più metodi è possibile, tra cui il metodo toString()
una classe concreta PolinomioConcatenato che estende PolinomioAstratto e memorizza i monomi su una lista concatenata a puntatori espliciti
una classe concreta PolinomioMap che estende PolinomioAstratto e memorizza i monomi su una HashMap.
una classe Main col metodo main(…) che crea due polinomi e mostra su output i polinomi ottenuti applicando le varie operazioni ammissibili.
 
direi che sono abbastanza complessi (per via delle applicazioni matematiche in cui io sono una frana xD) ma non impossibili...da domani pomeriggio posso aiutarti...magari potresti iniziare ad abbozzare qualcosa...o non ne sei proprio in grado?
 
cosenza...
comunque so messo abbastanza di merd*... cioè... a parte la codifica binaria dei numeri reali, l'heap e la struttura ad albero e i metodi ricorsivi so fare ben poco
 
Stato
Discussione chiusa ad ulteriori risposte.