ࡱ > Q R T @ | jbjb ` | l ^ ^ ^ ^ ^ ^ ^ $ " , f ^ ^ ^ D ^ ^ " ^ ^ ^ ^ : , ^ ^ Ą * 4
> R { { Metodologie di programmazione
12-9-2003
1) Si consideri il seguente programma:
class Up extends Object {
public int x;
public Up y;
public void metodo1()
{if (x = -1) {x = x+1; y = metodo2(x+1);}}
public Up metodo2 (int i)
{Up w = new Up(); w.x = x + i; return w;}
{x=-1;}}
class Down extends Up {
public static int z;
public Up metodo2(int i)
{Up w = new Down();
z = w.x+1; return w;}
{y = new Up(); z = z - x; x = y.x + z;}}
class Princ extends Object {
public static void main(){
Up p1 = new Down();
p1.metodo1();
Up p2 = p1.metodo2(p1.x);
p2 = p1.y;
Up p3 = p2.metodo2(p2.x); } }
Si mostri lo stato (ambiente di classi, heap, pila) dopo l'esecuzione
di ciascuna istruzione di main
2) Si consideri una classe astratta SymRel per le relazioni simmetriche con due implementazioni, SymEmptyRel per la relazione vuota e SymFullRel per la relazione non vuota.
public abstract class SymRel {
// OVERVIEW: un SymRel una relazione non modificabile tra interi simmetrica, // ossia tale che (x,y) elemento della relazione se e solo se lo anche (y,x)
// metodi
public abstract SymRel insert (int x, int y){}
// EFFECTS: d una nuova relazione che oltre le coppie in this contiene
// anche (x,y), (y,x)
public abstract SymRel remove (int x, int y){}
// EFFECTS: d una nuova relazione che contiene tutte le coppie in this
// salvo (x,y), (y,x)
public abstract boolean isIn (int x, int y){}
// EFFECTS: restituisce true se e solo se (x,y), (y,x) appartengono a this
public class SymEmptyRelextends SymRel{
// implementa la sola relazione vuota
public class SymFullRelextends SymRel{
// implementa la relazione non vuota
private int x;
private int y;
private SymRel next;
Si completi la definizione delle due sottoclassi dando costruttori e metodi, funzione di astrazione e invariante. Si vuole che, nella lista di coppie che rappresenta la relazione, la coppia (x,y) con x < = y rappresenti sia (x,y) che (y,x) e che le coppie siano ordinate sia rispetto alla prima che alla seconda componente. Si pu avere ad esempio: (2,3), (2,5), (3,6), (3,8), (3,12), (4,9).
P t
z
{
= > A I H n o { | ľľ 䭦 CJ OJ QJ CJ B*PJ mHph@ PJ mH 6PJ mHCJ OJ QJ B* CJ OJ QJ ph 6B*mHph B*ph
B*mHph CJ mH B* CJ mHph 5CJ mH " = > N P Q x y H R j 0]0` 0]0
0p]0^p` $0 ]0^ ` a$
0 ]0^ ` = > N P Q x y H R j 1 F U q } q
{
> ( F G H o p | ; 1 F U q } q
{
> 01$ 7$ 8$ H$ ]0^ 0 ]0^ 01$ 7$ 8$ H$ ]0 0]0
0]0^`
0 ]0^ ` 0]0` 0]0 > H o p | 1$ 7$ 8$ H$ ^`
0]0^` 0]0 01$ 7$ 8$ H$ ]0^` 01$ 7$ 8$ H$ ]0^ 01$ 7$ 8$ H$ ]0 + 0= /!"#$% ,, yce( H H ( d h
com.apple.print.PageFormat.FormattingPrinter
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.FormattingPrinter
DocuPrint_P1210
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMHorizontalRes
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMHorizontalRes
300
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:25Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMOrientation
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMOrientation
2
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMScaling
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMScaling
1
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMVerticalRes
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMVerticalRes
300
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:25Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMVerticalScaling
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMVerticalScaling
1
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.subTicket.paper_info_ticket
com.apple.print.PageFormat.PMAdjustedPageRect
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMAdjustedPageRect
0.0
0.0
2300
3041.666666666667
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMAdjustedPaperRect
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMAdjustedPaperRect
-125
-129.16666666666669
2425
3170.8333333333335
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PaperInfo.PMPaperName
com.apple.print.ticket.creator
CUPS_CPL
com.apple.print.ticket.itemArray
com.apple.print.PaperInfo.PMPaperName
US Letter Small
com.apple.print.ticket.client
CUPS_CPL
com.apple.print.ticket.modDate
2003-09-10T11:53:26Z
com.apple.print.ticket.stateFlag
1
com.apple.print.PaperInfo.PMUnadjustedPageRect
com.apple.print.ticket.creator
CUPS_CPL
com.apple.print.ticket.itemArray
com.apple.print.PaperInfo.PMUnadjustedPageRect
0.0
0.0
730
552
com.apple.print.ticket.client
CUPS_CPL
com.apple.print.ticket.modDate
2003-09-10T11:53:26Z
com.apple.print.ticket.stateFlag
1
com.apple.print.PaperInfo.PMUnadjustedPaperRect
com.apple.print.ticket.creator
CUPS_CPL
com.apple.print.ticket.itemArray
com.apple.print.PaperInfo.PMUnadjustedPaperRect
-31
-30
761
582
com.apple.print.ticket.client
CUPS_CPL
com.apple.print.ticket.modDate
2003-09-10T11:53:26Z
com.apple.print.ticket.stateFlag
1
com.apple.print.PaperInfo.ppd.PMPaperName
com.apple.print.ticket.creator
CUPS_CPL
com.apple.print.ticket.itemArray
com.apple.print.PaperInfo.ppd.PMPaperName
LetterSmall
com.apple.print.ticket.client
CUPS_CPL
com.apple.print.ticket.modDate
2003-09-10T11:53:26Z
com.apple.print.ticket.stateFlag
1
com.apple.print.ticket.APIVersion
00.20
com.apple.print.ticket.privateLock
com.apple.print.ticket.type
com.apple.print.PaperInfoTicket
com.apple.print.ticket.APIVersion
00.20
com.apple.print.ticket.privateLock
com.apple.print.ticket.type
com.apple.print.PageFormatTicket
D 0 0= /!"#$% P 0 ,, yce( H H ( d h
com.apple.print.PageFormat.FormattingPrinter
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.FormattingPrinter
DocuPrint_P1210
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMHorizontalRes
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMHorizontalRes
300
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:25Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMOrientation
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMOrientation
2
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMScaling
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMScaling
1
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMVerticalRes
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMVerticalRes
300
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:25Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMVerticalScaling
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMVerticalScaling
1
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.subTicket.paper_info_ticket
com.apple.print.PageFormat.PMAdjustedPageRect
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMAdjustedPageRect
0.0
0.0
2300
3041.666666666667
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PageFormat.PMAdjustedPaperRect
com.apple.print.ticket.creator
com.apple.printingmanager
com.apple.print.ticket.itemArray
com.apple.print.PageFormat.PMAdjustedPaperRect
-125
-129.16666666666669
2425
3170.8333333333335
com.apple.print.ticket.client
com.apple.printingmanager
com.apple.print.ticket.modDate
2003-09-10T11:53:41Z
com.apple.print.ticket.stateFlag
0
com.apple.print.PaperInfo.PMPaperName
com.apple.print.ticket.creator
CUPS_CPL
com.apple.print.ticket.itemArray
com.apple.print.PaperInfo.PMPaperName
US Letter Small
com.apple.print.ticket.client
CUPS_CPL
com.apple.print.ticket.modDate
2003-09-10T11:53:26Z
com.apple.print.ticket.stateFlag
1
com.apple.print.PaperInfo.PMUnadjustedPageRect
com.apple.print.ticket.creator
CUPS_CPL
com.apple.print.ticket.itemArray
com.apple.print.PaperInfo.PMUnadjustedPageRect
0.0
0.0
730
552
com.apple.print.ticket.client
CUPS_CPL
com.apple.print.ticket.modDate
2003-09-10T11:53:26Z
com.apple.print.ticket.stateFlag
1
com.apple.print.PaperInfo.PMUnadjustedPaperRect
com.apple.print.ticket.creator
CUPS_CPL
com.apple.print.ticket.itemArray
com.apple.print.PaperInfo.PMUnadjustedPaperRect
-31
-30
761
582
com.apple.print.ticket.client
CUPS_CPL
com.apple.print.ticket.modDate
2003-09-10T11:53:26Z
com.apple.print.ticket.stateFlag
1
com.apple.print.PaperInfo.ppd.PMPaperName
com.apple.print.ticket.creator
CUPS_CPL
com.apple.print.ticket.itemArray
com.apple.print.PaperInfo.ppd.PMPaperName
LetterSmall
com.apple.print.ticket.client
CUPS_CPL
com.apple.print.ticket.modDate
2003-09-10T11:53:26Z
com.apple.print.ticket.stateFlag
1
com.apple.print.ticket.APIVersion
00.20
com.apple.print.ticket.privateLock
com.apple.print.ticket.type
com.apple.print.PaperInfoTicket
com.apple.print.ticket.APIVersion
00.20
com.apple.print.ticket.privateLock
com.apple.print.ticket.type
com.apple.print.PageFormatTicket
i 4 @ 4 N o r m a l CJ OJ PJ QJ mH <