Synthetic Transaction Monitoring that you need for the day to day, which ensures your business website keeps running optimally, and that there is no downtime to impact your customer experience.

Become a Premium Member and unlock a new, free course in leading technologies each month.

Solved

Posted on 2004-09-08

Hello, i hope this is an easy fix here is my problem..........

I'm trying to use the commandline to prompt the user for two things the degree of polynomial and its coefficients as follows but if it makes any error i want to reprompt the questions untill they answer correctly.I'll do this with a while true loop and 2 if statements if the two statements not entered flag will be false exit while loop continue calculation

enter degree:

enter coeff with spaces betwwen each ex 1 2 3:

then i'll use string tokenizer to get each coeeficient and place into an array. My problem is io need to make sure when they enter a degree these two cases are followed countTokens is number of coeff

1) if (degree < countTokens() ) thedn reprompt questions because degree was smallerthan the amount of coeff

2) if(degree +2 <= countTokens() this would mean the array[degree+1] would give out of boundry exception because more coefficients than array allots

does this logic make sense? so example input output

enter degree:3

coeff :1 2

so this would re ask question

enter degree:3

coeff: 1 2 3 4 5

reask question

enter deg:3

coef 1 2 3 4

ok ! this will break the loop.

so here is my code please any help will be greatly appreciated i can't get it to only respond when appriate datra is answered to stop array exceptions.

==============code=======================

boolean poly_flag=true;

while(poly_flag)

{

System.out.println("Enter in degree of polynomial : ");

main.setDegree( Integer.parseInt(buffer.readLine()) ); //grab degree from user input

System.out.println("Enter in non negative coefficients n for example 1 2 3 will be 1x^2 + 2x + 3");

coef_input = buffer.readLine(); //grab coefficients from user input

coef = new int[main.getDegree() +1]; // allocate array size of degree plus one

token = new StringTokenizer(coef_input); //Use stringtokenizer to truncate coefficients

int deg = main.getDegree();

// check to make sure coefficients do not exceed array or are smallr than degree

if( deg >= token.countTokens() )

{

System.out.println("Your degree is bigger than the amount of coefficients please try again");

poly_flag=true

}

else

poly_flag=false;

}//end while loop

I'm trying to use the commandline to prompt the user for two things the degree of polynomial and its coefficients as follows but if it makes any error i want to reprompt the questions untill they answer correctly.I'll do this with a while true loop and 2 if statements if the two statements not entered flag will be false exit while loop continue calculation

enter degree:

enter coeff with spaces betwwen each ex 1 2 3:

then i'll use string tokenizer to get each coeeficient and place into an array. My problem is io need to make sure when they enter a degree these two cases are followed countTokens is number of coeff

1) if (degree < countTokens() ) thedn reprompt questions because degree was smallerthan the amount of coeff

2) if(degree +2 <= countTokens() this would mean the array[degree+1] would give out of boundry exception because more coefficients than array allots

does this logic make sense? so example input output

enter degree:3

coeff :1 2

so this would re ask question

enter degree:3

coeff: 1 2 3 4 5

reask question

enter deg:3

coef 1 2 3 4

ok ! this will break the loop.

so here is my code please any help will be greatly appreciated i can't get it to only respond when appriate datra is answered to stop array exceptions.

==============code========

boolean poly_flag=true;

while(poly_flag)

{

System.out.println("Enter in degree of polynomial : ");

main.setDegree( Integer.parseInt(buffer.re

System.out.println("Enter in non negative coefficients n for example 1 2 3 will be 1x^2 + 2x + 3");

coef_input = buffer.readLine(); //grab coefficients from user input

coef = new int[main.getDegree() +1]; // allocate array size of degree plus one

token = new StringTokenizer(coef_input

int deg = main.getDegree();

// check to make sure coefficients do not exceed array or are smallr than degree

if( deg >= token.countTokens() )

{

System.out.println("Your degree is bigger than the amount of coefficients please try again");

poly_flag=true

}

else

poly_flag=false;

}//end while loop

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

- Help others & share knowledge
- Earn cash & points
- Learn & ask questions

3 Comments

is this not correct thinking

import java.io.*;

import java.util.*;

public class Polynomial {

private static String read()throws Exception{

BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );

return br.readLine();

}

public static void main(String[] args) {

int[] aCoeff;

do{

try{

System.out.print("Enter degree :");

int degree = Integer.parseInt( read() );

System.out.print("Enter coeff:");

String coeff = read();

StringTokenizer st = new StringTokenizer( coeff );

int noOfCoeff = st.countTokens();

if( ( degree + 1 ) == noOfCoeff ){

System.out.println("Ok! Break loop");

aCoeff = new int[ noOfCoeff ];

//Copy elements to the array

break;

}

else{

System.out.println("Reaski

}

}catch( Exception e ){

System.out.print( e.getMessage() );

}

}while(true);

}

}

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Course of the Month5 days, 13 hours left to enroll

Join the community of 500,000 technology professionals and ask your questions.