int a;
int b;
int c;
int x;
int y;
int gegeven[4];
char gevraagd[1];
float disc;
float oplosing;
float getal_x1;
float getal_x2;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("In f(x)=ax²+bx=c wat wil je berekenen? a, b, c of x");
while(Serial.available()==0) {} //wachten voor input
gevraagd[0] = Serial.read();
int dummy = Serial.read();
switch (gevraagd[0]){
case 'x':
bereken_x();
break;
case 'a':
oplosing = bereken_a();
Serial.print("a = ");
Serial.println(oplosing);
break;
case 'b':
oplosing = bereken_b();
Serial.print("b = ");
Serial.println(oplosing);
break;
case 'c':
oplosing = bereken_c();
Serial.print("c = ");
Serial.println(oplosing);
break;
default:
Serial.println("Geen correcte waarde ingegeven probeer opniew.");
break;
}
Serial.println(" ");
}
float bereken_c(){
Serial.println("Geef de gegeven waarden één voor één in volgorde van x, y, a, b");
for (int i=0; i<=3; i++){
gegevenvraag(i);
}
float c;
c = gegeven[1]-gegeven[2]*gegeven[0]*gegeven[0]-gegeven[3]*gegeven[0];
return c;
}
float bereken_b(){
Serial.println("Geef de gegeven waarden één voor één in volgorde van x, y, a, c");
for (int i=0; i<=3; i++){
gegevenvraag(i);
}
float b;
b = 1.0*(gegeven[1]-gegeven[2]*gegeven[0]*gegeven[0]-gegeven[3])/gegeven[0];
return b;
}
float bereken_a(){
Serial.println("Geef de gegeven waarden één voor één in volgorde van x, y, b, c");
for (int i=0; i<=3; i++){
gegevenvraag(i);
}
float a;
a = 1.0*(gegeven[1]-(gegeven[2]*gegeven[0]+gegeven[3]))/(gegeven[0]*gegeven[0]);
return a;
}
void bereken_x(){
Serial.println("Geef de gegeven waarden één voor één in volgorde van a, b, c");
for (int i=0; i<=2; i++){
gegevenvraag(i);
if (gegeven[0]==0){
i=0;
Serial.println("a mag niet nul zijn probeer opniew.");
}
}
disc=gegeven[1]*gegeven[1]-4.0*gegeven[0]*gegeven[2];
if (disc<0){
Serial.println("x heeft geen reële waarde");
Serial.print("Discriminant = ");
Serial.println(disc);
}
else {
getal_x1=(-gegeven[1]+sqrt(disc))/(2.0*gegeven[0]);
getal_x2=(-gegeven[1]-sqrt(disc))/(2.0*gegeven[0]);
Serial.print("Discriminant = ");
Serial.println(disc);
Serial.print("x1 = ");
Serial.println(getal_x1);
Serial.print("x2 = ");
Serial.println(getal_x2);
}
}
void gegevenvraag(int i){
while(Serial.available()==0) {} //wachten voor input
gegeven[i] = Serial.parseInt(); //resultaat examen inlezen
int dummy = Serial.read();
Serial.println(gegeven[i]);
}