110 lines
1.7 KiB
D
110 lines
1.7 KiB
D
// IMPROVING OUR CALCULATOR
|
|
// LEARN: functions, while loop, break statement
|
|
|
|
// importing writeln, write and readf functions
|
|
import std.stdio: writeln, write, readf;
|
|
|
|
void main() {
|
|
float a = 0;
|
|
float b = 0;
|
|
char operation; // '+', '-', '*', '/'
|
|
|
|
write("first number: ");
|
|
readf(" %s", a);
|
|
|
|
write("second number: ");
|
|
readf(" %s", b);
|
|
|
|
write("operation: ");
|
|
|
|
/*
|
|
while(condition is true) { // if condition is false, it will terminate the loop and continue down below
|
|
repeat;
|
|
}
|
|
*/
|
|
|
|
/*
|
|
bool unknownOperation = true;
|
|
while(unknownOperation) {
|
|
readf(" %s", operation);
|
|
|
|
if(operation == '+' || operation == '-' ||
|
|
operation == '*' || operation == '/') {
|
|
unknownOperation = false;
|
|
} else {
|
|
write("Error! Unknown operation. Try again: ");
|
|
}
|
|
}
|
|
*/
|
|
|
|
while(true) {
|
|
readf(" %s", operation);
|
|
|
|
if(operation == '+' || operation == '-' ||
|
|
operation == '*' || operation == '/') {
|
|
break;
|
|
} else {
|
|
write("Error! Unknown operation. Try again: ");
|
|
}
|
|
}
|
|
|
|
float result = 0;
|
|
if(operation == '+') {
|
|
result = addition(a, b);
|
|
} else if(operation == '-') {
|
|
result = substraction(a, b);
|
|
} else if(operation == '*') {
|
|
result = multiplication(a, b);
|
|
} else if(operation == '/') {
|
|
result = division(a, b);
|
|
}
|
|
|
|
writeln(a, operation, b, "=", result);
|
|
|
|
// further instructions...
|
|
}
|
|
|
|
// our functions
|
|
|
|
float addition(float a, float b) {
|
|
return a+b;
|
|
}
|
|
|
|
float substraction(float a, float b) {
|
|
return a-b;
|
|
}
|
|
|
|
float multiplication(float a, float b) {
|
|
return a*b;
|
|
}
|
|
|
|
float division(float a, float b) {
|
|
return a/b;
|
|
}
|
|
|
|
/*
|
|
returnType functionName(parameterList) {
|
|
instructions;
|
|
}
|
|
|
|
void
|
|
|
|
Example:
|
|
float addition(float a, float b) {
|
|
float add = a + b;
|
|
|
|
return add;
|
|
}
|
|
|
|
float addition(float a, float b) {
|
|
return a+b;
|
|
}
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|