int rectangleArea(int, int);
float circleArea(int);
float triangleArea(int, int);
// tu można wprowadzić weryfikację danych
int readX(const char * info){
Serial.println(info);
return Serial.readStringUntil('\n').toInt();
}
void setup(){
Serial.begin(9600);
Serial.setTimeout(-1);
while(!Serial);
}
void loop(){
Serial.println("\nWybierz dla jakiej figury plaskiej chcesz obliczyc pole:\n(p)rostokat, (o)krag, (t)rojkat\n");
// wprowadzono jakieś znaki; nas obchodzi ten z pozycji 0, reszta nie
// operator [index] zwraca char, więc nie rzutuję
switch (Serial.readStringUntil('\n')[0]){
case '\0':
Serial.println("Nic nie wpisano!");
break;
case 'T':
case 't':{
int a = readX("Podaj dlugosc podstawy trojkata: "),
h = readX("Podaj wysokosc trojkata: ");
Serial.print("Pole trojkata wynosi: ");
Serial.println(triangleArea(a, h));
}
break;
case 'P':
case 'p':{
int a = readX("Podaj dlugosc boku a: "),
b = readX("Podaj dlugosc boku b: ");
Serial.print("Pole prostokata wynosi: ");
Serial.println(rectangleArea (a, b));
}
break;
case 'O':
case 'o':{
int r = readX("Podaj promien okregu: ");
Serial.print("Pole okregu wynosi: ");
Serial.println(circleArea(r));
}
break;
default:
Serial.println("Zle zdefiniowana figura geometryczna");
break;
}
}
int rectangleArea (int a, int b){
return a * b;
}
float circleArea (int a){
return PI * a * a;
}
float triangleArea (int a, int h){
return 0.5 * a * h;
}