Advertisement
tegusta

polinomio jjj

Dec 5th, 2012
432
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.44 KB | None | 0 0
  1. /**
  2. *
  3. * @author Massimiliano
  4. */
  5. public class SoMagic {
  6. private int []p;
  7.  
  8. /**
  9. * costruttore che inizializza a uno il termine di grado maggiore
  10. * a zero tutti gli altri termini
  11. * @param grado grado del polinomio
  12. */
  13. public SoMagic(int grado){
  14. p=new int [grado];
  15. p[grado-1]=1;
  16. for(int i=0;i<grado-1;i++)
  17. p[i]=0;
  18. }//SoMagic
  19.  
  20. /**
  21. * costruttore che inizializza tutti i coefficienti
  22. * @param coeff array di coefficienti
  23. */
  24. public SoMagic(int []coeff){
  25. p=new int [coeff.length];
  26. for(int i=0;i<coeff.length;i++)
  27. p[i]=coeff[i];
  28. }//SoMagic
  29.  
  30. /**
  31. * metodo di esemplare toString
  32. * @return ritorna lo stato attuale dell'oggetto
  33. */
  34. public String toString(){
  35. String stato="Valore del polinomio: ";
  36. for(int i=p.length-1;i>1;i--)
  37. stato+=p[i]+"x^"+i+" + ";//non mi interessa anche se stampa x^0 jjj
  38. stato+=p[1]+"x + "+p[0];
  39. return stato;
  40. }//toString
  41.  
  42. /**
  43. * metodo di esemplare che ritorna il valore dell'oggeto in un determinato punto
  44. * @param jjj
  45. * @return valore del polinomio in $jjj
  46. */
  47. public int valore(int jjj){
  48. int j=p[0];
  49. for(int i=1;i<p.length;i++)
  50. j+=p[i]*Math.pow(jjj,i);
  51. return j;
  52. }//valore
  53.  
  54. /**
  55. * metodo di esemplare che ritorna un polinomio moltiplicato per uno scalare dato
  56. * @param kkk scalare
  57. * @return nuovo polinomio
  58. */
  59. public SoMagic scalare(int kkk){
  60. SoMagic j=new SoMagic(p);
  61. for(int i=0;i<p.length;i++)
  62. j.p[i]*=kkk;
  63. return j;
  64. }//scalare
  65.  
  66.  
  67. public SoMagic somma(SoMagic p1){
  68. int max=p1.p.length;
  69. if(this.p.length>max)
  70. max=this.p.length;
  71. int []j=new int[max];
  72. SoMagic p3=new SoMagic(j);
  73. for(int i=0;i<max;i++){
  74. if(p1.p.length>=i)
  75. p3.p[i]+=p1.p[i];
  76. if(this.p.length>=i)
  77. p3.p[i]+=this.p[i];
  78. }//for
  79. return p3;
  80. }//somma
  81.  
  82. /**
  83. * metodo di classe che esegue il prodotto fra due polinomi
  84. * @param pol1 primo polinomio
  85. * @param pol2 secondo polinomio
  86. * @return prodotto fra i due polinomi
  87. */
  88. public static SoMagic prodotto(SoMagic pol1, SoMagic pol2){
  89. int max=pol1.p.length;
  90. if(pol2.p.length>max){
  91. for(int i=0;i<max;i++)
  92. pol2.p[i]*=pol1.p[i];
  93. return pol2;
  94. }//if
  95. else
  96. for(int i=0;i<max;i++)
  97. pol1.p[i]*=pol2.p[i];
  98. return pol1;
  99. }//prodotto
  100.  
  101. /**
  102. * metodo di esemplare che elimina i termini superiori a n/2
  103. */
  104. public void dimezza(){
  105. p=new int[this.p.length/2];
  106. }//dimezza
  107.  
  108. /**
  109. * metodo di classe che funziona come l'altra somma
  110. * @param j primo polinomio
  111. * @param cat secondo polinomio
  112. * @return somma dei due polinomi
  113. */
  114. public static SoMagic somma(SoMagic cat, SoMagic soKitty){
  115. return soKitty.somma(cat);
  116. }//somma
  117.  
  118.  
  119. }//SoMagic
  120. ******************MAIN****************
  121. /**
  122. *
  123. * @author Massimiliano
  124. */
  125. public class SoMagic_Test {
  126. public static void main(String []args){
  127. SoMagic pol1=new SoMagic(6);
  128. System.out.println(pol1);
  129. int []array={1,2,3,4};
  130. SoMagic pol2=new SoMagic(array);
  131. System.out.println(pol2);
  132. System.out.println("Valore ---- "+pol1.valore(3));//esemplare
  133. System.out.println("Valore ---- "+pol2.valore(3));//""
  134. System.out.println("Scalare ---- "+pol1.scalare(3));//""
  135. System.out.println("Scalare ---- "+pol2.scalare(3));//""
  136. int []h={8,7,6,5};
  137. SoMagic a=new SoMagic(h);
  138. System.out.println(a);
  139. int []g={1,1,1,1};
  140. SoMagic b=new SoMagic(g);
  141. System.out.println(b);
  142. System.out.println("Somma : "+SoMagic.somma(a,b));/classe
  143. int []qqq={8,7,6,5};
  144. SoMagic aaa=new SoMagic(qqq);
  145. System.out.println(a);
  146. int []www={1,1,1,1};
  147. SoMagic bbb=new SoMagic(www);
  148. System.out.println("Prodotto ---- "+SoMagic.prodotto(aaa,bbb));//classe
  149. System.out.println("Somma : "+a.somma(b));//somma di esemplare
  150. //pol1.dimezza();
  151. //System.out.println(pol2);
  152. }//main
  153. }//SoMagic_Test
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement