Devo scrivere un metodo di lettura per una classe quadratica in cui viene inserito un quadratico nella forma ax^2 + bx + c. La descrizione della classe è la seguente:Metodo di lettura quadratica
Aggiungere un metodo di lettura che richiede all'utente un'equazione in formato standard e imposta correttamente le tre variabili di istanza. Quindi, se l'utente digita 3x^2 - x, si impostano le variabili di istanza su 3, -1 e 0. Ciò richiederà l'elaborazione della stringa eseguita in precedenza. Mostra l'equazione effettiva immessa così com'è e correttamente etichettata come uscita prevista.
Sono stato in grado di eseguire la parte ax^2 utilizzando la manipolazione delle stringhe e le istruzioni if else. Ma non sono sicuro di come fare le parti bx ec dell'equazione a causa del segno che potrebbe essere di fronte a bx ec. Ecco come ho fatto l'ascia^2 parte del metodo.
public void read()
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter a quadratic equation in standard format.");
String formula = keyboard.next();
String a = formula.substring(0, formula.indexOf("x^2"));
int a2 = Integer.parseInt(a);
if (a2 == 0)
{
System.out.println("a = 0");
}
else if (a2 == 1)
{
System.out.println("a = 1");
}
else
{
System.out.println("a = " + a2);
}
}
Sentitevi liberi di scrivere qualsiasi codice come esempio. Qualsiasi aiuto sarebbe molto apprezzato.
E se avessi un quadratico che era -2x^2 + 3x-1, o -2x^2, o -x^2 + 3? Come valuteresti la gestione di questi casi? – Makoto
questo è il punto delle istruzioni if else, il mio programma avrebbe funzionato per le prime 2 equazioni ma ho appena fatto qualche ulteriore test e non ha funzionato per l'ultima equazione -x^2 + 3 quindi ho ancora un po 'di codifica da fare per quella parte credo. – user007
Il mio punto era più verso i casi limite. Devi essere molto cauto con quelli e renderli conto di loro. In definitiva, stai facendo le stesse operazioni di consumo su ogni parte della stringa separata da un operatore. Questo è un suggerimento. Un altro suggerimento è, se si visita [questo collegamento Debuggex] (http://www.debuggex.com/?re=%28%28%28-%7C%2B%29%3F%29%28%5Cd%2Bx% 3F% 7C% 28x% 7B1% 7D% 5C% 5E% 5Cd% 2B% 29% 29% 29% 2B & str = x% 5E4-3x% 5E2% 2B17), vedrai un flusso generale di ciò che vuoi fare (in regex). – Makoto