隆Construye una calculadora!

15/23

Lectura

La escuela de matem谩tica del Barrio Especial de Nerima est谩 ense帽ando a sus estudiantes las operaciones aritm茅ticas b谩sicas y requieren una calculadora en Dart que permita a los ni帽os elegidos jugar con estas operaciones.

Captura de Pantalla 2021-12-27 a la(s) 13.30.20.png

Por lo que requieren el c贸digo fuente de un programa que tenga las siguientes variables:

  • Una variable para almacenar el valor 1.
  • Una variable para almacenar el valor 2.
  • Una lista de valores.
  • Una variable para el resultado.
  • Una variable que indique el tipo de operaci贸n.

Con las siguientes funciones:

  • Si el tipo de operaci贸n es SUMA, el resultado es igual al valor 1 m谩s el valor 2.
  • Si el tipo de operaci贸n es RESTA, el resultado es igual al valor 1 menos el valor 2.
    • Si el resultado de la resta es negativo, se debe mostrar NEGATIVO en la consola.
  • Si el tipo de operaci贸n es MULTIPLICACI脫N, el resultado es igual al valor 1 por el valor 2.
  • Si el tipo de operaci贸n es M脫DULO, el resultado es igual al valor 1 m贸dulo el valor 2.
  • Si el tipo de operaci贸n es FACTORIAL, el resultado es igual al factorial de valor 1.
  • Si el tipo de operaci贸n es SUMATORIA, el resultado es igual a la suma de todos los valores de la lista de valores.
  • Si el tipo de operaci贸n es PRODUCTO, el resultado es igual a la multiplicaci贸n de todos los valores de la lista de valores.

Al finalizar la ejecuci贸n del c贸digo debe mostrar el siguiente mensaje d贸nde 12.2 es el resultado de la operaci贸n:

El resultado de la operaci贸n es: 12.2

隆Comparte tu c贸digo!

Aportes 32

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Buen d铆a, comparto mi ejercicio

void main() {
  int valor1 = 2;
  int valor2 = 4;
  List<int> valores = [2, 4, 5];
  double result = 0;
  Operacion oper = Operacion.resta;

  switch (oper) {
    case Operacion.suma:
      result = (valor1 + valor2).toDouble();
      break;
    case Operacion.resta:
      result = (valor1 - valor2).toDouble();
      break;
    case Operacion.multiplicacion:
      result = (valor1 * valor2).toDouble();
      break;
    case Operacion.modulo:
      result = (valor1 % valor2).toDouble();
      break;
    case Operacion.factorial:
      int factorial = 1;
      int contador = 1;
      while (contador <= valor1) {
        factorial *= contador;
        contador++;
      }
      print(factorial);
      break;
    case Operacion.sumatoria:
      for (int i = 0; i < valores.length; i++) {
        result = result + valores[i];
      }
      print(result);
      break;
    case Operacion.producto:
      result = 1;
      for (int i = 0; i < valores.length; i++) {
        result *= valores[i];
      }
      break;
    default:
      print("INGRESA VALORES CORRECTOS");
  }
  if (result < 0) {
        print("$result NEGATIVO");
      } else {
        print("El resultado de la operacion es: $result");
      }
  
}

enum Operacion {
  suma,
  resta,
  multiplicacion,
  modulo,
  factorial,
  sumatoria,
  producto
}

Hola, envi贸 mi ejercicio!
Saludos

Buenas, comparto el ejercicio dado

void main() {
   double valor1 = 5;
   double valor2 = 5;
  
  List<int> valores = [3,4,5,6];
 double resultado = 0;
 Operacion operacion = Operacion.producto;
  
 switch (operacion) {
    case Operacion.suma:
      resultado = valor1 + valor2;
    
        print("El resultado de la operacion suma es: $resultado");
      break;
    case Operacion.resta:
      resultado = valor1 - valor2;
     if (resultado < 0) {
        print("NEGATIVO");
      } else {
        print("El resultado de la operacion resta es: $resultado");
      }
      break;
    case Operacion.multiplicacion:
      resultado = valor1 * valor2;
     
        print("El resultado de la operacion multiplicacion es: $resultado");
      break;
    case Operacion.modulo:
      resultado = valor1 % valor2;
     
        print("El resultado de la operacion modulo es: $resultado");
      break;
    case Operacion.factorial:
          double resultadoFacto = 1;
          for(var i = valor1 ; i >= 1; i--) {
            resultadoFacto = i * resultadoFacto;
            
          }
     
        print("El resultado de la operacion factorial es: $resultadoFacto");
     break;
    case Operacion.sumatoria:
           
          for(  int i = 0; i<= valores.length - 1 ; i++ ) {
              resultado = resultado + valores[i];
          }
        print("El resultado de la operacion sumatoria es: $resultado");
      break;
    case Operacion.producto:
     resultado = 1;
     for(  int i = 0; i <= valores.length - 1 ; i++ ) {
              resultado = resultado * valores[i];
          }
     
        print("El resultado de la operacion producto es: $resultado");
     
      break;
    default:
      print("INGRESA VALORES");
  }
  
}

enum Operacion {
  suma,
  resta,
  multiplicacion,
  modulo,
  factorial,
  sumatoria,
  producto
}

Aqu铆 est谩 mi aporte, la verdad me gustan mucho estos proyectos para aplicar lo aprendido aun que ya quiero aprender a obtener datos del usuario a trav茅s de la consola:)

void main() {
  //Variable numero 1
  double valor1 = 4;
  
  //Variable numero 2
  double valor2 = 3;
  
  //Variable resultado
  double resultado = 0;
  
  //Lista de valores
  List<double> valores = [10, 12, 3];
  
  //Variable de clase operacion
  Operacion tipoOperacion = Operacion.resta;
  
  switch(tipoOperacion){
    case Operacion.suma:
      resultado = valor1 + valor2;
      print("El resultado de la operaci贸n es: $resultado");
      break;
      
    case Operacion.resta:
      resultado = valor1 - valor2;
      if(resultado < 0){
        print("NEGATIVO");
      } else {
        print("El resultado de la operaci贸n es: $resultado");
      }
      
      break;
      
    case Operacion.multi:
      resultado = valor1 * valor2;
      print("El resultado de la operaci贸n es: $resultado");
      break;
      
    case Operacion.modulo:
      resultado = valor1 % valor2;
      print("El resultado de la operaci贸n es: $resultado");
      break;
      
    case Operacion.factorial:
      resultado = 1;
      for(double i = valor1; i >= 1; i--){
        resultado = i * resultado;
      }
      print("El resultado de la operaci贸n es: $resultado");
      break;
      
    case Operacion.sumatoria:
      for(int i = 0; i < valores.length; i++){
        resultado = resultado + valores[i];
      }
      print("El resultado de la operaci贸n es: $resultado");
      break;
      
    case Operacion.producto:
      resultado = 1;
      for(int i = 0; i < valores.length; i++){
        resultado = resultado * valores[i];
      }
      print("El resultado de la operaci贸n es: $resultado");
      break;
  }
}

enum Operacion {
  suma, resta, multi, modulo, factorial, sumatoria, producto
}

Les dejo el resultado de mi c贸digo:

void main() {
  
  int valor1 = 2;
  int valor2 = 4;
  List <int> valores = [2, 3, 6];
  dynamic resultado = 0;
  Operacion operacion = Operacion.producto;
  
  switch(operacion){
    case Operacion.suma:
      resultado = valor1 + valor2;
      print(resultado);
      break;
    case Operacion.resta:
      resultado = valor1 - valor2;
      if (resultado < 0) {
        print("NEGATIVO");
      }
      break;
    case Operacion.multiplicacion:
      resultado = valor1 * valor2;
      break;
    case Operacion.modulo:
      resultado = valor1 % valor2;
      break;
    case Operacion.factorial:
      resultado = 1;
      for(int i = valor1; i >= 1; i --){
        resultado = resultado * i;
      }
      break;
    case Operacion.sumatoria:
      for(int i = 0; i < valores.length; i++){
        resultado += valores[i];
      }
      break;
    case Operacion.producto:
      resultado = 1;
      for(int i = 0; i < valores.length; i++){
        resultado *= valores[i];
      }
      break;
    default: 
      print("Elige una operaci贸n v谩lida");
  }
  print("El resultado de la operaci贸n es $resultado");
  
}

enum Operacion {
  suma,
  resta,
  multiplicacion,
  modulo, 
  factorial,
  sumatoria,
  producto
}
enum Operacion {
  SUMA,
  RESTA,
  MULTIPLICACION,
  MODULO,
  FACTORIAL,
  SUMATORIA,
  PRODUCTO
}

void main(List<String> arguments) {
  int valor1 = 10;
  int valor2 = 10;
  List<int> valores = [1, 2, 3, 4];
  dynamic resultado = 0;
  Operacion opcion = Operacion.PRODUCTO;

  switch (opcion) {
    case Operacion.SUMA:
      resultado = valor1 + valor2;
      break;
    case Operacion.RESTA:
      resultado = valor1 - valor2;
      if (resultado < 0) {
        resultado = 'NEGATIVO';
      }
      break;
    case Operacion.MULTIPLICACION:
      resultado = valor1 * valor2;
      break;
    case Operacion.MODULO:
      resultado = valor1 % valor2;
      break;
    case Operacion.FACTORIAL:
      resultado = factorial(valor1);
      break;
    case Operacion.SUMATORIA:
      resultado = sumatoria(valores);
      break;
    case Operacion.PRODUCTO:
      resultado = producto(valores);
      break;
  }

  print('El resultado de la operacion es $resultado.');
}

int factorial(int numero) {
  var factorial = 1;
  for (int i = 1; i <= numero; i++) {
    factorial *= i;
  }
  return factorial;
}

int sumatoria(List<int> valores) {
  int total = 0;
  for (int i = 0; i < valores.length; i++) {
    total += valores[i];
  }
  return total;
}

int producto(List<int> valores) {
  int total = 1;
  for (int i = 0; i < valores.length; i++) {
    total *= valores[i];
  }
  return total;
}

Hola Darters, les comparto mi c贸digo:

Adjunto mi c贸digo, pase un par de minutos tratando de resolver un problema del tipo TypeError y lo que pasa es que cuando usas dynamic, necesitas asignarle un valor de inicio.

void main() {
  var valor1 = 4;
  var valor2 = 3;
  List<int> valores = [valor1, valor2, 10];
  dynamic resultado = 0;
  Operacion tipo = Operacion.suma;

  switch (tipo) {
    case Operacion.sum:
      resultado = valor1 + valor2;
      break;
    case Operacion.rest:
      resultado = valor1 - valor2;
      break;
    case Operacion.mult:
      resultado = valor1 * valor2;
      break;
    case Operacion.mod:
      resultado = valor1 % valor2;
      break;
    case Operacion.fact:
      resultado = valor1 ~/ valor2;
      break;
    case Operacion.suma:
      for (int i = 0; i < valores.length; i++) {
        resultado += valores[i];
      }
      break;
    case Operacion.prod:
      for (int j = 0; j < valores.length; j++) {
        resultado *= valores[j];
      }
      break;
  }
  print("El resultado de la operaci贸n es: $resultado");
}

enum Operacion {
  sum,
  rest,
  mult,
  mod,
  fact,
  suma,
  prod}

Aqui esta mi prueba realizada:

void main() {
  int valor1 = 7;
  int valor2 = 5;
  List<int> valores = [2, 4, 6];
  dynamic resultado = 0;
  Operacion operacion = Operacion.producto;

  switch (operacion) {
    case Operacion.suma:
      {
        resultado = valor1 + valor2;
      }
      break;
    case Operacion.resta:
      {
        resultado = valor1 - valor2;
        if (resultado < 0) {
          print("NEGATIVO");
        }
      }
      break;
    case Operacion.multiplicacion:
      {
        resultado = valor1 * valor2;
      }
      break;
    case Operacion.modulo:
      {
        resultado = valor1 % valor2;
      }
      break;
    case Operacion.factorial:
      {
        resultado = 1;
        for (int i = 1; i <= valor1; i++) {
          resultado = resultado * i;
        }
      }
      break;
    case Operacion.sumatoria:
      {
        for(int valor in valores) {
          resultado += valor;
        }
      }
      break;
    case Operacion.producto:
      {
        resultado = 1;
        for(int valor in valores) {
          resultado *= valor;
        }
      }
      break;
  }
  print("El resultado de la operaci贸n es: $resultado");
}

enum Operacion {
  suma,
  resta,
  multiplicacion,
  modulo,
  factorial,
  sumatoria,
  producto
}


Aqu铆 les comparto mi ejercicio terminado:

Buenos noches, les comparto mi c贸digo.

void main() {
  //Selecci贸n del tipo de operacion de la enumeraci贸n
  Operaciones operacion = Operaciones.Suma;

  //Variables declaradas por el usuario
  double valor1 = 9;
  print("La variable 1 tiene el valor: $valor1");
  double valor2 = 3;
  print("La variable 2 tiene el valor: $valor2");

  //Lista solicitada
  List<double> lista = [valor1, valor2, 45];

  //Variables de resultado y del tipo de operacion
  dynamic resultado = 0;
  String tipo = "Nulo";

  switch (operacion) {
    case Operaciones.Suma:
      resultado = valor1 + valor2;
      tipo = "Suma";
      print(
          "La operaci贸n seleccionado fue la $tipo y el resultado fue $resultado");
      break;
    case Operaciones.Resta:
      resultado = valor1 - valor2;
      tipo = "Resta";
      print(
          "La operaci贸n seleccionado fue la $tipo y el resultado fue $resultado");
      if (resultado < 0) {
        print("El resultado es negativo");
      }
      break;
    case Operaciones.Multiplicacion:
      resultado = valor1 * valor2;
      tipo = "Multiplicaci贸n";
      print(
          "La operaci贸n seleccionado fue la $tipo y el resultado fue $resultado");
      break;
    case Operaciones.Modulo:
      resultado = valor1 % valor2;
      tipo = "M贸dulo";
      print(
          "La operaci贸n seleccionado fue la $tipo y el resultado fue $resultado");
      break;
    case Operaciones.Factorial:
      resultado = 1;
      for (int i = 0; i < valor1; i++) {
        resultado = resultado * (valor1 - i);
      }
      tipo = "Factorial";
      print(
          "La operaci贸n seleccionado fue el $tipo del primer valor ingresado y el resultado fue $resultado");
      break;
    case Operaciones.Sumatoria:
      for (int i = 0; i < lista.length; i++) {
        resultado += lista[i];
      }
      tipo = "Sumatoria";
      print(
          "La operaci贸n seleccionado fue la $tipo de los valores en la lista y el resultado fue $resultado");
      break;
    case Operaciones.Producto:
      resultado = 1;
      for (int i = 0; i < lista.length; i++) {
        resultado *= lista[i];
      }
      tipo = "Producto";
      print("La operaci贸n seleccionado fue la $tipo de los valores en la lista y el resultado fue $resultado");
      break;
    default:
      print("""El tipo de operaci贸n seleccionada no es valida.
      Por favor elija una opci贸n dentro del siguiente listado:
      Suma, resta, multiplicaci贸n, m贸dulo, factorial, sumatoria y prodcuto""");
      break;
  }
}

enum Operaciones {
  Suma,
  Resta,
  Multiplicacion,
  Modulo,
  Factorial,
  Sumatoria,
  Producto
}

Que buen ejercicio para practicar lo aprendido!

Reto Cumplido y optimizado: 馃槃

<code> enum Operacion {
  suma,
  resta,
  multiplicacion,
  modulo,
  factorial,
  sumatoria,
  producto
}

void main() {
  int valor1 = 5;
  int valor2 = 4;
  List<int> lista = [1, 2, 3];
  dynamic resultado = 0;

  Operacion myOperacion = Operacion.factorial;

  switch (myOperacion) {
    case Operacion.suma:
      resultado = valor1 + valor2;
      break;
    case Operacion.resta:
      resultado = valor1 - valor2;
      if (resultado < 0) {
        resultado = "Valor Negativo";
      }
      break;

    case Operacion.multiplicacion:
      resultado = valor1 * valor2;
      break;

    case Operacion.modulo:
      resultado = valor1 % valor2;
      break;

    case Operacion.factorial:
      resultado = 1;
      for (int i = 1; i <= valor1; i++) {
        resultado *= i;
      }
      break;

    case Operacion.sumatoria:
      for (int i = 0; i < lista.length; i++) {
        resultado += lista[i];
      }
      break;

    case Operacion.producto:
      resultado = 1;
      for (int j = 0; j < lista.length; j++) {
        resultado *= lista[j];
      }
      break;
  }

  print('El resultado es: ${resultado}');
}

Hola, he esperimentado un poco, solo por diversi贸n ;V

https://dartpad.dev/?id=9522b7dd672496516cda915e13e63e7c

void main() {
  print("Escuela de matematica, Barrio Especial de Nerima");

  // Variable 1

  double valor1 = 10;
  double valor2 = 2;
  List<double> valores = [1, 2, 3, 4, 5];
  double resultado = 0;
  Operacion operacion = Operacion.producto;

  switch(operacion){
    case Operacion.suma:
      resultado = valor1 + valor2;
      break;
    case Operacion.resta:
      resultado = valor1 - valor2;
      break;
    case Operacion.multiplicacion:
      resultado = valor1 * valor2;
      break;
    case Operacion.modulo:
      resultado = valor1 % valor2;
      break;
    case Operacion.factorial:
      resultado = 1;
      for(var i=1; i <= valor1; i++ ){
        resultado = resultado * i;
      }
      break;
    case Operacion.sumatoria:
      for(var i = (valores.length - 1); i >= 0; i--){
        resultado = resultado + valores[i];
      }
      break;
    case Operacion.producto:
      resultado = 1;
      for(var i = (valores.length - 1); i >= 0; i--){
        resultado = resultado * valores[i];
      }
      break;
    default:
      print("ingresa una Operacion validad $Operacion");
  }
  print("El resultado de la $operacion es: ${(resultado < 0? " NEGATIVO ": "")} $resultado");
}

enum Operacion {
  suma,
  resta,
  multiplicacion,
  modulo,
  factorial,
  sumatoria,
  producto,
}
void main() {
  dynamic var1 = 5;
  dynamic var2 = 15;
  dynamic res = 0;
  String oper = "Operacion es: ";
  List<int> valores = [var1,var2,3];
  
  Funcion operacion = Funcion.Producto;
  
  switch(operacion){
    case Funcion.Division:
      res=var1/var2;
      print("$oper Division $var1/$var2=$res");
        break;
    case Funcion.Factorial:
      int factorial = 1;
      int contador = 1;
      while (contador <= var1) {
        factorial *= contador;
        contador++;
      }
      print("$oper Factorial $var1! $factorial");
      break;
    case Funcion.Modulo:
      res= var1%var2;
      print("$oper Modulo$var1%$var2=$res");
      break;
    case Funcion.Multiplicacion:
      res = var1*var2;
      print("$oper Multiplicacion $var1*$var2=$res");
      break;
    case Funcion.Resta:
      res=var1-var2;
      print("$oper Resta $var1-$var2=$res");
      break;
    case Funcion.Suma:
      res=var1+var2;
      print("$oper Suma $var1+$var2=$res");
      break;
    case Funcion.Sumatoria:
      for (int i = 0; i < valores.length; i++) {
        res = res + valores[i];
      }
      print("suma total de $valores = $res");
      break;
    case Funcion.Producto:
      res=1;
      for (int i = 0; i < valores.length; i++) {
        res *= valores[i];
      }
      print("Multiplicaci贸n de $valores = $res");
      break;
      
  }
}

enum Funcion { Suma, Resta, Division, Multiplicacion, Modulo, Factorial, Sumatoria, Producto}

Compartiendo mi codigo

void main() {
  int valor1 = 3;
  int valor2 = 2;
  List<int> valores = [3, 1, 2];
  double resultado = 0;
  Operaciones tipo = Operaciones.producto;
  switch (tipo) {
    case Operaciones.suma:
      resultado = (valor1 + valor2).toDouble();
      print("El resultado es $resultado");
      break;
    case Operaciones.resta:
      resultado = (valor1 - valor2).toDouble();
      if (resultado > 0) {
        print("El resultado es $resultado");
      } else {
        print("Negativo");
      }
      break;
    case Operaciones.multiplicacion:
      resultado = (valor1 * valor2).toDouble();
      print("El resultado es $resultado");
      break;

    case Operaciones.modulo:
      resultado = (valor1 % valor2).toDouble();
      print("El resultado es $resultado");
      break;

    case Operaciones.factorial:
      int factorial = 1;
      int contador = 1;
      while (contador <= valor1) {
        factorial *= contador;
        contador++;
      }
      resultado = factorial.toDouble();
      print("El resultado es $resultado");
      break;

    case Operaciones.sumatoria:
      for (int i = 0; i < valores.length; i++) {
        resultado += valores[i];
      }
      print("El resultado es $resultado");
      break;
    case Operaciones.producto:
      resultado = 1;
      for (int i = 0; i < valores.length; i++) {
        resultado *= valores[i];
      }
      print("El resultado es $resultado");
      break;
    default:
      print("No valido");
      break;
  }
}

enum Operaciones {
  suma,
  resta,
  multiplicacion,
  division,
  modulo,
  factorial,
  sumatoria,
  producto
}

este seria el c贸digo adecuado dado que en el caso de la multiplicaci贸n al inicializarla en 0 siempre dar铆a cero, hay que cambiar el valor a uno dentro de este case

import 'package:collection/collection.dart';

enum Operacion { sum, rest, mult, mod, fact, suma, prod }
void main() {
  double valor1 = 2;
  double valor2 = 4;
  List<double> valores = [valor1, valor2, 20];

  dynamic resultado = 0;
  Operacion tipo = Operacion.prod;

  switch (tipo) {
    case Operacion.suma:
      resultado = valor1 + valor2;
      break;
    case Operacion.rest:
      resultado = valor1 - valor2;
      break;
    case Operacion.mult:
      resultado = valor1 * valor2;
      break;
    case Operacion.mod:
      resultado = valor1 % valor2;
      break;
    case Operacion.fact:
      resultado = valor1 ~/ valor2;
      break;
    case Operacion.sum:
      resultado = valores.sum;
      break;
    case Operacion.prod:
      resultado=1;
      for (int i = 1; i < valores.length; i++) {
        resultado *= valores[i];
      }

      break;
  }
  
  print ("el resultado de la operacion es :$resultado ");
}

Hola les comparto mi ejercicio, el 煤nico ajuste que realice al pedido es que el dato 1 y 2 pueden variar cambian la posici贸n de la lista valores

File bin/main.dart

import 'package:platzi_dart/calculator.dart';

void main(List<String> arguments) {
  Calculator.calculate(arguments);
}

File lib/calculator.dart

enum Operation {
  addition,
  subtraction,
  multiplication,
  factorial,
  modulus,
  summation
}

class Calculator {
  static void calculate(List<String> arguments) {
    num value_1 = int.parse(arguments[1]);
    num value_2 = arguments.length == 3 ? int.parse(arguments[2]) : 0;
    num result = 0;
    Operation operation = Operation.values
        .firstWhere((e) => e.toString().split('.')[1] == arguments[0]);

    switch (operation) {
      case Operation.addition:
        result = value_1 + value_2;
        break;
      case Operation.subtraction:
        result = value_1 - value_2;
        break;
      case Operation.multiplication:
        result = value_1 * value_2;
        break;
      case Operation.modulus:
        result = value_1 % value_2;
        break;
      case Operation.factorial:
        result = 1;

        while (value_1 > 0) {
          result *= value_1;
          value_1--;
        }
        break;
      case Operation.summation:
        result = 0;

        while (value_1 > 0) {
          result += value_1;
          value_1--;
        }

        break;
    }

    print('El resultado de la operaci贸n es: $result');
  }
}

Mi codigo del ejercicio. Saludos

    void main() {
  const double nan = 0.0 / 0.0;
  double valor1 = 5;
  double valor2 = 6;
  List<int> valores = [2,3,4];
  Operacion operacion = Operacion.SUMA;
  double resultado = 0;
  
  switch (operacion) {
    case Operacion.SUMA:
      resultado = valor1 + valor2;
      break;
    case Operacion.RESTA:
      resultado = valor1 - valor2;
      if (resultado < 0)
        print("NEGATIVO");
      break;
    case Operacion.MULTIPLICACION:
      resultado = valor1 * valor2;
      break;
    case Operacion.MODULO:
      resultado = valor1 % valor2;
      break;
    case Operacion.FACTORIAL:
      resultado = 1;
      for (var i = valor1; i >= 1; i--) {
        resultado = i * resultado;
      }
      break;
    case Operacion.SUMATORIA:
      valores.forEach((valor) => resultado += valor);
      break;
    case Operacion.PRODUCTO:
      resultado = 1;
      valores.forEach((valor) => resultado *= valor);
      break;
    default:
      resultado = nan;
      break;
  }
  
  print("El resultado de la operaci贸n es: ${resultado.toStringAsFixed(2)}");
}

enum Operacion{ SUMA, RESTA, MULTIPLICACION, MODULO, FACTORIAL, SUMATORIA, PRODUCTO }

Aqu铆 est谩 el ejercicio hecho

void main() {
  double num1 = 5, num2 = 9, resultado;
  Operacion operacion = Operacion.Produc;
  List<int> valores = [5, 2, 7, 6, 1];

  switch (operacion) {
    case Operacion.Suma:
      resultado = num1 + num2;
      print("El resultado de la SUMA es: $resultado");
      break;

    case Operacion.Resta:
      resultado = num1 - num2;
      print("El resultado de la RESTA es: $resultado");
      break;

    case Operacion.Mult:
      resultado = num1 * num2;
      print("El resultado de la MULTIPLICACI脫N es: $resultado");
      break;

    case Operacion.Mod:
      resultado = num1 % num2;
      print("El resultado del MODULO es: $resultado");
      break;

    case Operacion.Fact:
      double resultadoF = 1;
      for (var i = num1; i >= 1; i--) {
        resultadoF = i * resultadoF;
      }
      print("El resultado del FACTORIAL es: $resultadoF");
      break;

    case Operacion.Sumator:
      dynamic resultado;
      for (dynamic i = 0; i <= valores.length - 1; i++) {
        resultado = resultado + valores[i];
      }
      print("El resultado de la SUMATORIA es: $resultado");
      break;

    case Operacion.Produc:
      resultado = 1;
      for (int i = 0; i <= valores.length - 1; i++) {
        resultado = resultado * valores[i];
      }
      print("El resultado del PRODUCTO es: $resultado");
      break;
    default:
  }
}

enum Operacion { Suma, Resta, Mult, Mod, Fact, Sumator, Produc }

Buenas, aqui dejo mi aporte de el ejercicio

<enum operaciones {
  SUMA,
  RESTA,
  MULTIPLICACION,
  MODULO,
  FACTORIAL,
  SUMATORIA,
  PRODUCTO
}
void main() {
  double valor1 = 7;
  double valor2 = 2;
  double resultado = 0;
  List<double> valores = [1, 2, 3, 4, 5, 6];
  operaciones operacion = operaciones.PRODUCTO;

  switch (operacion) {
    case (operaciones.SUMA):
      {
        double suma = valor1 + valor2;
        print("El resultado de la suma: $valor1 + $valor2 es igual a $suma");
      }
      break;

    case (operaciones.RESTA):
      {
        double resta = valor1 - valor2;
        if (resta < 0) {
          print(
              "El resultado de la resta: $valor1 - $valor2 es NEGATIVO igual a $resta");
        } else {
          print(
              "El resultado de la resta: $valor1 - $valor2 es igual a $resta");
        }
      }
      break;

    case (operaciones.MULTIPLICACION):
      {
        double multiplicacion = valor1 * valor2;
        print(
            "El resultado de la multiplicacion: $valor1 x $valor2 = $multiplicacion");
      }
      break;

    case (operaciones.MODULO):
      {
        double modulo = valor1 % valor2;
        print("El resultado de el modulo: $valor1 % $valor2 = $modulo");
      }
      break;

    case (operaciones.FACTORIAL):
      {
        double factorial = 0;
        for (int i = 1; i < valor1; i++) {
          factorial = i * (i + 1) + (resultado);
        }
        print("El resultado de el factorial de: $valor1  = $factorial");
      }
      break;

    case (operaciones.SUMATORIA):
      {
        double sumatoria = 0;
        for (int i = 0; i < valores.length; i++) {
          sumatoria += valores[i];
        }
        print("El resultado de la sumatoria es  = $sumatoria");
      }
      break;

    case (operaciones.PRODUCTO):
      {
        double producto = 1;
        for (int i = 0; i < valores.length; i++) {
          producto *= valores[i];
        }
        print("El resultado de el producto es  = $producto");
      }
      break;
  }
}
> 

Here鈥檚 my code, if someone has some suggestions, just tell me, thanks you guys.

void main() {
// Variable para almacenar el valor 1.
double valor1 = 10;
// Variable para almacenar el valor 2.
double valor2 = 3;

// Lista de valores a operar
List<int> valores = [1, 2, 3, 4, 5];

// Resultado
double resultado = 0;

Operacion operacion = Operacion.PRODUCTO;

switch (operacion) {
case Operacion.SUMA:
resultado = valor1 + valor2;
break;

case Operacion.RESTA:
  resultado = valor1 - valor2;
  if (resultado < 0) {
    print("El resultado es NEGATIVO");
  }
  break;

case Operacion.MULTIPLICACION:
  resultado = valor1 * valor2;
  break;

case Operacion.MODULO:
  resultado = valor1 % valor2;
  break;

case Operacion.FACTORIAL:
  if (valor1 > 0) {
    if (valor1 % 1 == 0) {
      resultado = 1;
      for (int i = 1; i <= valor1; i++) {
        resultado = resultado * i;
      }
    } else {
      print("El n煤mero no es entero");
    }
  } else {
    print("El n煤mero es negativo, no se le puede sacar factorial");
  }
  break;

case Operacion.SUMATORIA:
  for (int i = 0; i < valores.length; i++) {
    resultado += valores[i];
  }
  break;

case Operacion.PRODUCTO:
  resultado = 1;
  for (int i = 0; i < valores.length; i++) {
    resultado *= valores[i];
  }
  break;

}

print(鈥淓l resultado de la operaci贸n $operacion es $resultado鈥);
}

enum Operacion {
SUMA,
RESTA,
MULTIPLICACION,
MODULO,
FACTORIAL,
SUMATORIA,
PRODUCTO
}

Hola!!
Comparto mi c贸digo:

<void main() {
  
  // Aqu铆 ingresas los valores
  var valor1 = 3;
  var valor2 = 5;
  List<int> valores = [1, 3, 5];
  
  // Declaraci贸n de la variable resultado
  var resultado;
  
  // Aqu铆 seleccionas la operacion
  Operacion operacion = Operacion.Resta;
  
  // Ejecuci贸n de las operaciones
  switch(operacion){
    case Operacion.Suma:
      resultado = valor1 + valor2;
      print("El resultado de la suma es = $resultado");
      break;
    case Operacion.Resta:
      resultado = valor1 - valor2;
      print("El resultado de la resta es = $resultado");
      break;
    case Operacion.Multiplicacion:
      resultado = valor1 * valor2;
      print("El resultado de la multiplicacion es = $resultado");
      break;
      case Operacion.Modulo:
      resultado = valor1 % valor2;
      print("El resultado del modulo es = $resultado");
      break;
      case Operacion.Factorial:
      resultado = 1;
      for(int x = 2; x <= valor1; x++){
        resultado = resultado * x;
      }
      print("El resultado del factorial es = $resultado");
      break;
      case Operacion.Sumatoria:
      resultado = 0;
      for(int i = 0; i <= valores.length - 1; i++){
        resultado = resultado + valores[i];
      }
      print("El resultado de la sumatoria es = $resultado");
      break;
      case Operacion.Producto:
      resultado = 1;
      for(int i = 0; i <= valores.length - 1; i++){
        resultado = resultado * valores[i];
      }
      print("El resultado del producto es = $resultado");
      break;
  }
}

// Operaciones a realizar
enum Operacion {
  Suma, Resta, Multiplicacion, Modulo, Factorial, Sumatoria, Producto
}
> 
void main() {
  int valor1 = 8;
  int valor2 = 4;
  List<int> listaValores = [8, 2, 6];
  int resultado = 0;
  TipoOperacion tipoDeOperacion = TipoOperacion.sumatoria;

  switch (tipoDeOperacion) {
    case TipoOperacion.suma:
      resultado = valor1 + valor2;
      print("El resultado de la operaci贸n es: $resultado");
      break;
    case TipoOperacion.resta:
      resultado = valor1 - valor2;
      if (resultado < 0) {
        print("NEGATIVO");
      }
      print(resultado);
      break;
    case TipoOperacion.multiplicacion:
      resultado = valor1 * valor2;
      print("El resultado de la operaci贸n es: $resultado");
      break;
    case TipoOperacion.modulo:
      resultado = valor1 % valor2;
      break;
    case TipoOperacion.factorial:
      int resultadoFact = 1;
      for (int i = valor1; i > 1; i--) {
        resultadoFact *= i;
      }
      print("El resultado de la operaci贸n es: $resultadoFact");

      break;
    case TipoOperacion.sumatoria:
      int resultadoSum = 0;
      for (int i = 0; i <= listaValores.length; i++) {
        resultadoSum += listaValores[i];
        print("El resultado de la operaci贸n es: $resultadoSum");
      }

      print("El resultado de la operaci贸n es: $resultadoSum");

      break;
    case TipoOperacion.producto:
      resultado = 1;
      for (int i = 0; i <= listaValores.length; i++) {
        resultado *= listaValores[i];
        print("El resultado de la operaci贸n es: $resultado");
      }
      break;
  }
}

enum TipoOperacion {
  suma,
  resta,
  multiplicacion,
  modulo,
  factorial,
  sumatoria,
  producto
}

enum OPERACIONES {
SUMA, RESTA, MULTIPLICACION, MODULO,FACTORIAL,SUMATORIA,PRODUCTO
}

void main() {
int valor1 = 5;
int valor2 = 3;
List<int> valores = [1,2,3,4,5];
dynamic resultado;

//Elige la operacion
OPERACIONES operacion = OPERACIONES.SUMA;

switch(operacion){
case OPERACIONES.SUMA:
resultado = valor1 + valor2;
break;
case OPERACIONES.RESTA:
resultado = valor1 - valor2;
if(resultado<0){
print(鈥淣EGATIVO鈥);
}
break;
case OPERACIONES.MULTIPLICACION:
resultado = valor1 * valor2;
break;
case OPERACIONES.MODULO:
resultado = valor1 % valor2;
break;
case OPERACIONES.FACTORIAL:
resultado = 1;
for(int i = valor1;i>=1;i鈥){
resultado = resultado * i;
}
break;
case OPERACIONES.SUMATORIA:
resultado = 0;
for(int i = 0;i<valores.length;i++){
resultado = resultado + valores[i];
}
break;
case OPERACIONES.PRODUCTO:
resultado = 1;
for(int i = 0;i<valores.length;i++){
resultado = resultado * valores[i];
}
break;
}

print(鈥淓l resultado de la operaci贸n es: $resultado鈥);
}