Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- *
- * @author Massimiliano
- */
- public class SoMagic {
- private int []p;
- /**
- * costruttore che inizializza a uno il termine di grado maggiore
- * a zero tutti gli altri termini
- * @param grado grado del polinomio
- */
- public SoMagic(int grado){
- p=new int [grado];
- p[grado-1]=1;
- for(int i=0;i<grado-1;i++)
- p[i]=0;
- }//SoMagic
- /**
- * costruttore che inizializza tutti i coefficienti
- * @param coeff array di coefficienti
- */
- public SoMagic(int []coeff){
- p=new int [coeff.length];
- for(int i=0;i<coeff.length;i++)
- p[i]=coeff[i];
- }//SoMagic
- /**
- * metodo di esemplare toString
- * @return ritorna lo stato attuale dell'oggetto
- */
- public String toString(){
- String stato="Valore del polinomio: ";
- for(int i=p.length-1;i>1;i--)
- stato+=p[i]+"x^"+i+" + ";//non mi interessa anche se stampa x^0 jjj
- stato+=p[1]+"x + "+p[0];
- return stato;
- }//toString
- /**
- * metodo di esemplare che ritorna il valore dell'oggeto in un determinato punto
- * @param jjj
- * @return valore del polinomio in $jjj
- */
- public int valore(int jjj){
- int j=p[0];
- for(int i=1;i<p.length;i++)
- j+=p[i]*Math.pow(jjj,i);
- return j;
- }//valore
- /**
- * metodo di esemplare che ritorna un polinomio moltiplicato per uno scalare dato
- * @param kkk scalare
- * @return nuovo polinomio
- */
- public SoMagic scalare(int kkk){
- SoMagic j=new SoMagic(p);
- for(int i=0;i<p.length;i++)
- j.p[i]*=kkk;
- return j;
- }//scalare
- public SoMagic somma(SoMagic p1){
- int max=p1.p.length;
- if(this.p.length>max)
- max=this.p.length;
- int []j=new int[max];
- SoMagic p3=new SoMagic(j);
- for(int i=0;i<max;i++){
- if(p1.p.length>=i)
- p3.p[i]+=p1.p[i];
- if(this.p.length>=i)
- p3.p[i]+=this.p[i];
- }//for
- return p3;
- }//somma
- /**
- * metodo di classe che esegue il prodotto fra due polinomi
- * @param pol1 primo polinomio
- * @param pol2 secondo polinomio
- * @return prodotto fra i due polinomi
- */
- public static SoMagic prodotto(SoMagic pol1, SoMagic pol2){
- int max=pol1.p.length;
- if(pol2.p.length>max){
- for(int i=0;i<max;i++)
- pol2.p[i]*=pol1.p[i];
- return pol2;
- }//if
- else
- for(int i=0;i<max;i++)
- pol1.p[i]*=pol2.p[i];
- return pol1;
- }//prodotto
- /**
- * metodo di esemplare che elimina i termini superiori a n/2
- */
- public void dimezza(){
- p=new int[this.p.length/2];
- }//dimezza
- /**
- * metodo di classe che funziona come l'altra somma
- * @param j primo polinomio
- * @param cat secondo polinomio
- * @return somma dei due polinomi
- */
- public static SoMagic somma(SoMagic cat, SoMagic soKitty){
- return soKitty.somma(cat);
- }//somma
- }//SoMagic
- ******************MAIN****************
- /**
- *
- * @author Massimiliano
- */
- public class SoMagic_Test {
- public static void main(String []args){
- SoMagic pol1=new SoMagic(6);
- System.out.println(pol1);
- int []array={1,2,3,4};
- SoMagic pol2=new SoMagic(array);
- System.out.println(pol2);
- System.out.println("Valore ---- "+pol1.valore(3));//esemplare
- System.out.println("Valore ---- "+pol2.valore(3));//""
- System.out.println("Scalare ---- "+pol1.scalare(3));//""
- System.out.println("Scalare ---- "+pol2.scalare(3));//""
- int []h={8,7,6,5};
- SoMagic a=new SoMagic(h);
- System.out.println(a);
- int []g={1,1,1,1};
- SoMagic b=new SoMagic(g);
- System.out.println(b);
- System.out.println("Somma : "+SoMagic.somma(a,b));/classe
- int []qqq={8,7,6,5};
- SoMagic aaa=new SoMagic(qqq);
- System.out.println(a);
- int []www={1,1,1,1};
- SoMagic bbb=new SoMagic(www);
- System.out.println("Prodotto ---- "+SoMagic.prodotto(aaa,bbb));//classe
- System.out.println("Somma : "+a.somma(b));//somma di esemplare
- //pol1.dimezza();
- //System.out.println(pol2);
- }//main
- }//SoMagic_Test
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement