1
resposta

Faça como eu fiz: explorando o projeto

Eu modifiquei o nome do robô pessoal para SkyNet e adicionei uma função para que ele realize cálculos simples ( as 4 operações ).

Iniciando com a Pergunta "print('Você quer sabe sobre as horas, dias e anos ou quer fazer um calculo matemático ?');"

E com base no código já existente fiz a função "isThisCalculation()" que confirma se o usuário quer fazer um calculo, assim ele entra na função "calculationQuestion()" onde vai ser solicitado os valores e qual operação vai ser realizada para printar o resultado.

import 'dart:io';

import 'questions/time_questions.dart';

void main() async {
  String skyNet = 'SkyNet:\n';
  var a = true;
  String usuario = '';

  print('-- Iniciando a Skynet, aguarde..--');

  print('skyNet:\n Oi :) Este é o inicio de um grande aventura \n Como posso ajudar?\n');
  print('Você quer sabe sobre as horas, dias e anos ou quer fazer um calculo matemático ?');
  do {
    usuario = stdin.readLineSync().toString();
    print('-- Processando pergunta, aguarde..--');
    if (usuario.contains('xau') ||
        usuario.contains('Xau') ||
        usuario.contains('Adeus') ||
        usuario.contains('adeus')) {
      a = false;
      print(skyNet + ' Até a proxima!!');
    } else if (TimeQuestions(usuario).isThisTime()) {
      // verificar antes, assim não fazemos toda a função sem precisar.
      TimeQuestions(usuario).timeQuestion();
      print('E agora? você quer sabe sobre as horas, dias e anos ou quer fazer outra conta Matemática?');
    } else if (TimeQuestions(usuario).isThisCalculation()) {
      TimeQuestions(usuario).calculationQuestion();
      print('E agora? você quer sabe sobre as horas, dias e anos ou quer fazer outra conta Matemática?');
    } else {
      print(skyNet +
          ' Não fui treinado para responder a essa pergunta \n Desculpe :( ');
      print(skyNet + ' Você pode fazer outra pergunta ou dizer Adeus');
    }
  } while (a);

  print('--Encerrando skyNet--');
}

time_questions.dart

 bool isThisCalculation() {
    if (question.contains('Conta') ||
        question.contains('conta') ||
        question.contains('calculo') ||
        question.contains('Calculo')) {
      isThisCalculationQuestion = true;
    }
    return isThisCalculationQuestion;
  }

  calculationQuestion() {
    print('Ok, entendi, informe o primeiro numero:');
    number1 = double.parse(stdin.readLineSync().toString());
    print('Informe a operação? (Ex. +, -, x, /)\n');
    qualCalculo = stdin.readLineSync().toString();
    print('Informe o segundo numero');
    number2 = double.parse(stdin.readLineSync().toString());
    print('Ok, Aguarde processando o calculo...');
    if (qualCalculo == '+') {
      double _result = number1 + number2;
      print('O resultado do seu calculo é $_result');
    } else if (qualCalculo == '-') {
      double _result = number1 - number2;
      print('O resultado do seu calculo é $_result');
    } else if (qualCalculo == 'x' || qualCalculo == 'X') {
      double _result = number1 * number2;
      print('O resultado do seu calculo é $_result');
    } else if (qualCalculo == '/') {
      double _result = number1 / number2;
      print('O resultado do seu calculo é $_result');
    }
  }

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi Julio,

Excelente iniciativa em expandir as funcionalidades do robô 💻!

A adição de cálculos matemáticos é uma ótima forma de praticar e aprofundar seus conhecimentos em Dart.

Para saber mais: Documentação oficial do Dart sobre funções.

Continue explorando e aprimorando suas habilidades 💪!