Ciao devo costruire un monomio della forma: c * X ^ n;dove c (coefficiente del monomio) e` un intero e n (grado del monomio).Ho costruito la classe Monomio:
e fin qui tutto bene...il problema sta nel metodo main;il problema vuole che leggo da input una sequenza dicodice:import java.math.*; class Monomio{ int coefficiente; int grado; static String esponente; static String prodotto; /**La classe possiede un solo costruttore che costruisce un monomio di cui vengono specificati il coefficiente c e il grado n. Si assume che c e n siano interi e che n>=0.*/ Monomio(int coefficiente,int grado){ this.coefficiente=coefficiente; this.grado=grado; this.esponente="^"; //è di default this.prodotto="*"; // è di default }/** valuta(a) Dato un intero a, restituisce l'intero ottenuto valutando il monomio in a (ossia, ponendo X uguale ad a). Ad esempio, il monomio 3 * X ^ 2 valutato in 4 da` come risultato 3 * (4^2) = 3 * 16 = 48*/ public int valuta(int a){ int risultato=0; risultato=coefficiente*((int)Math.pow(a,grado)); return risultato; } /** per(m) Restituisce un nuovo monomio corrispondente al prodotto di questo monomio per il monomio m specificato dall'argomento. Ad esempio, il prodotto fra i monomi 3 * X ^ 2 7 * X ^ 10 e` il monomio 21 * X ^ 12*/ public String per(Monomio m){ String s=""; int coefficientetot=m.coefficiente*coefficiente; int gradotot=m.grado+grado; s+=coefficientetot+Monomio.getprodotto("*")+" X "+Monomio.getesponente("^")+ gradotot; return s; } /**static getprodotto(s) Stabilisce che il simbolo per rappresentare il prodotto e` la stringa s*/ static String getprodotto(String p){ prodotto=p; return prodotto; } static String getesponente(String e){ esponente=e; return esponente; } /**toString() Restituisce la stringa che rappresenta il monomio. Ad esempio, se i simboli del prodotto e dell'elevamento a potenza non sono stati modificati la stringa ha la forma 3 * X ^ 12 Se il simbolo di prodotto e' stato modificato in "per" e l'elevamento a potenza in "esp", la striga restituita deve avere la forma 3 per X esp 12 */ public String toString(){ String s=""; s+=coefficiente+" "+Monomio.getprodotto(prodotto) +" X "+Monomio.getesponente(esponente)+" "+grado; return s; } }
linee della forma( c1, n1, c2, n2 e a sono interi, ed s e' una stringa):
1) Linee della forma PER c1 n1 c2 n2
Stampa il monomio ottenuto moltiplicando i monomi c1 * X ^ n1 e c2 * X ^ n2.
2) Linee della forma VAL c1 n1 a
Stampa il risultato della valutazione del monomio c1 * X ^ n1 in a
3) Linee della forma PROD s
Stabilisce che il simbolo per rappresentare il prodotto e' la stringa s
3) Linee della forma ESP s
Stabilisce che il simbolo per rappresentare l'elevamento a potenza e' la stringa s.
es:da input digito
PER 3 5 2 10
PER -2 6 5 8
PROD .
PER 10 20 -3 12
ESP ^^
PER -7 8 -2 10
l'output produce:
6 * X ^ 15
-10 * X ^ 14
-30 . X ^ 32
14 . X ^^ 18
Il mio(incompleto,perchè ho provato a farne solo un pezzo) codice da main:
Questo caspita di metodo main non mi stampa niente...come posso fare a memorizzare PROD . ed a stampare il monomio,contente il punto?è giusto utilizzare string tokennizer?codice:import java.util.*; class ProvaMonomio{ public static void main(String args[]){ Scanner sc=new Scanner(System.in); String y=sc.nextLine(); String d=""; while(!y.equals("q")){ StringTokenizer st=new StringTokenizer(y," "); String s=st.nextToken(); if(s.equals("PER")){ int coeff1=Integer.valueOf(st.nextToken()); int esp1=Integer.valueOf(st.nextToken()); Monomio m=new Monomio(coeff1,esp1); int coeff2=Integer.valueOf(st.nextToken()); int esp2=Integer.valueOf(st.nextToken()); Monomio m1=new Monomio(coeff2,esp2); System.out.println(m.toString()); }else if(s.equals("PROD")){ String i=st.nextToken(); String u=Monomio.getprodotto(i); y=sc.nextLine(); } y=sc.nextLine(); } } }scusate per la domanda troppo lunga
![]()

scusate per la domanda troppo lunga
Rispondi quotando