Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Lista de exercícios: do 7 ao 8

  1. Refatorando o código do clube de benefícios com função
import 'dart:io';

 //função que realiza a subtração dos pontos precisa estar fora do main para ser global
  int subtracao(int pontosIniciais, int pontosRetirados) {
    int pontosRestantes = pontosIniciais - pontosRetirados;
    return pontosRestantes; //retorna o valor da subtração
  }

void main() {
  int pontosIniciais = 100; // Variável local, dentro do main

  print("Você tem $pontosIniciais pontos.");

  print("Quantos pontos você gostaria de resgatar?");
  int pontosRetirados = int.parse(stdin.readLineSync()!); //Pontos de fidelidade costumam ser inteiros, por este motivo usei int

  int pontosRestantes = subtracao(pontosIniciais, pontosRetirados); /*chama a função subtração, passando os pontos iniciais e os pontos retirados como argumentos e armazenando o resultado na variável pontosRestantes*/

  print("Você resgatou $pontosRetirados pontos. Pontos restantes: $pontosRestantes.");

  }
  1. Implementando um programa de cupons
import 'dart:io';

void main() {
  print("=====CLUBE DE VANTAGENS NO PRECINHO=====");
  print("A cada R\$ 50 em compras = 1 cupom!\n");

  print("Informe o valor total da sua compra:");

  double totalCompra = double.parse(stdin.readLineSync()!.replaceAll(',', '.')); /*.replaceAll para aceitar vírgula como separador decimal*/
  int cuponsDisponiveis = totalCompra ~/ 50; //Calcula os pontos iniciais (1 ponto a cada 50 unidades monetárias)

  print("Você tem direito a resgatar $cuponsDisponiveis pontos.");

  }
2 respostas
solução!

Oi, José! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei muito da forma como você estruturou as funções em Dart — separar a lógica da subtração fora do main deixa o código mais limpo e fácil de manter. Também foi ótimo ver o uso de replaceAll para lidar com vírgulas no input, mostrando atenção aos detalhes de entrada de dados.

Uma dica interessante para o futuro é testar conversões com toStringAsFixed() para limitar casas decimais ao exibir valores.
Veja este exemplo:


double preco = 10.4567;
print(preco.toStringAsFixed(2)); // imprime 10.46

Esse código formata o número com duas casas decimais, deixando a saída mais amigável para o usuário.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Boa noite, Rafaela.

Obrigado pela retorno, vou fazer a implementação da sua sugestão.