-
Автор темы
- #1
В общем я изучаю язык Dart (вроде как Java, только упрощенный) и у меня есть задание сделать "калькулятор". Не полностью калькулятор, а только деление. Я как бы само деление написал, но я не знаю как его расписать столбиком. Возможно через массив как то это возможно? Ну к примеру что бы юзер писал 100 : 3, потом число делилось и писалось в ответе, потом преобразовывалось в [1, 0, 0] и начинало проверку типа если массив[0] (ну тобеж число 1) меньше чем число 3, то добавить массив[1] (число 0) , и по идее должно получится число 10. Оно не меньше, значит выполням деление 10 на 3. По правилу деления в столбик мы должны под 100 написать 9, и отнять 10 - 9 остаток снести вниз(число 1). Потом проверка опять с тройкой (делитель) и сносим массив[2] (число 0), ну думаю вы уловили посыл. В общем я не знаю как это реализовать.
Код:
import 'dart:io';
void main(List<String> arguments) {
print('Enter 2 numbers' );
int firstNumber = getNumber('First', arguments.length > 1 ? int.parse(arguments[0]) : 45);
int secondNumber = getNumber('Second', arguments.length > 1 ? int.parse(arguments[1]) : 5);
var divisor_quotient = firstNumber ~/ secondNumber;
print('Want to get the result of dividing these numbers ($firstNumber;$secondNumber)?\ny/n');
var ans = stdin.readLineSync();
var List_first = [firstNumber];
var List_second = [secondNumber];
// print(secondNumber * divisor_quotient);
switch(ans) {
case 'y':
print('$firstNumber |$secondNumber\n |---\n |${divisor_quotient.round()}');
break;
case 'n':
print('Application has terminated');
break;
default:
print('Please, chose y or n');
}
}
int getNumber(String text, int defaultNumber) {
int number;
print('$text number: ');
int count = 0;
while(count < 3) {
try {
String numberStr = stdin.readLineSync();
number = numberStr == null || numberStr == '' ? defaultNumber : int.parse(numberStr);
return number;
} on FormatException catch (e) {
print("You entered an incorrect number, please try again :");
count++;
}
}
print('Application was stopped');
exit(0);
}