Olá, não consegui aplicar o exercício de número 2 teria como pastar a solução?
Olá, não consegui aplicar o exercício de número 2 teria como pastar a solução?
Oi Rafael, tudo bem?
Vou te ajudar a implementar essa funcionalidade no KakoBot. A ideia é adicionar suporte para operações matemáticas simples, como adição, subtração, multiplicação e divisão.
import 'dart:io';
void main() async {
String kakoBot = 'KakoBOT:\n';
var a = true;
String usuario = '';
print('-- Iniciando o KakoBOT, aguarde..--');
await clock(3);
print('KakoBOT:\n Oi :) \n Como posso ajudar?');
do {
usuario = stdin.readLineSync().toString();
await clock(1);
if (usuario.toLowerCase() == 'xau') {
a = false;
print(kakoBot + ' Até a próxima!!');
} else if (isMathOperation(usuario)) {
// Verifica se a entrada do usuário é uma operação matemática
calculateMathOperation(usuario);
} else {
print(kakoBot +
' Não fui treinado para responder a essa pergunta \n Desculpe :( ');
print(kakoBot + ' Você pode fazer outra pergunta ou dizer Adeus');
}
} while (a);
print('--Encerrando KakoBOT--');
}
bool isMathOperation(String input) {
// Verifica se a entrada do usuário contém operadores matemáticos
return input.contains('+') ||
input.contains('-') ||
input.contains('*') ||
input.contains('/');
}
void calculateMathOperation(String input) {
// Divide a entrada do usuário em partes com base nos operadores matemáticos
List<String> parts = input.split(RegExp(r'[+\-*/]'));
// Remove espaços em branco das partes
parts = parts.map((part) => part.trim()).toList();
// Encontra o operador na entrada do usuário
String operator = input.split(RegExp(r'[0-9]')).skip(1).first.trim();
try {
// Converte as partes em números
double num1 = double.parse(parts[0]);
double num2 = double.parse(parts[1]);
// Realiza a operação matemática com base no operador
double result;
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
print('Operador inválido');
return;
}
print('KakoBot: $input é $result');
} catch (e) {
print('KakoBot: Desculpe, não consegui entender a operação matemática.');
}
}
Future<void> clock(int seconds) async {
// Simula uma espera de tempo
await Future.delayed(Duration(seconds: seconds));
}
No código adicionei duas funções novas: isMathOperation
e calculateMathOperation
. A primeira verifica se a entrada do usuário contém operadores matemáticos, e a segunda realiza o cálculo da operação matemática.
Não esqueça de incluir essas funções no seu código, e teste a interação com o KakoBot usando operações matemáticas.
Lembrando que essa é uma ideia de como você pode fazer, com esse exemplo você pode criar o seu. É muito importante praticar.
Um abraço e bons estudos.