Mobile App Development · Dart/Flutter

04 · Variáveis — Desafios

Dois cenários mais completos, combinando tipos, interpolação e variáveis nullable: a ficha de um aluno e o resumo de uma compra.

Desafio 1

desafio_01_ficha_aluno.dart

Monta a ficha completa de um aluno combinando final, const, tipos explícitos (int, double, bool) e uma String? nullable para um apelido opcional.

// Desafio: criar uma ficha completa de aluno usando diferentes tipos de variáveis.
// Combina String, int, double, bool e String? (nullable) em um único programa.
void main() {
  // 'final' porque o nome não deve mudar após ser definido.
  final nomeAluno = 'Ana Martins';
  // Variável mutável — a idade pode mudar ao longo do programa.
  int idade = 24;
  String cidade = 'Curitiba';
  // 'const' porque o nome do curso é uma constante fixa conhecida em compile time.
  const curso = 'Dart e Flutter';
  // double para percentual com casas decimais.
  double progresso = 12.5;
  // bool para estado lógico: o aluno está ativo ou não.
  bool alunoAtivo = true;
  // String? permite que o apelido seja null se não houver apelido cadastrado.
  String? apelido = 'Aninha';

  // Cabeçalho da ficha — usa === para formatar visualmente.
  print('=== Ficha do Aluno ===');
  print('Nome: $nomeAluno');
  print('Apelido: $apelido');
  print('Idade: $idade anos');
  print('Cidade: $cidade');
  print('Curso: $curso');
  // toStringAsFixed(2) garante exibição com 2 casas decimais.
  print('Progresso: ${progresso.toStringAsFixed(2)}%');
  print('Aluno ativo: $alunoAtivo');
}

Saída esperada

=== Ficha do Aluno ===
Nome: Ana Martins
Apelido: Aninha
Idade: 24 anos
Cidade: Curitiba
Curso: Dart e Flutter
Progresso: 12.50%
Aluno ativo: true

Como executar

dart run 04-Variaveis/03_Desafios/codigo_fonte/desafio_01_ficha_aluno.dart

Desafio 2

desafio_02_resumo_compra.dart

Calcula o subtotal e o total com desconto de uma compra, combinando int, double, bool e const em operações aritméticas e na formatação da saída.

// Desafio: criar um resumo de compra com cálculo de subtotal e desconto.
// Pratica operações aritméticas com variáveis de diferentes tipos.
void main() {
  // 'const' porque o nome do produto não muda durante a execução.
  const produto = 'Teclado';
  // Quantidade de itens comprados.
  int quantidade = 2;
  // Preço de cada unidade do produto.
  double precoUnitario = 150.00;
  // bool que indica se um cupom de desconto foi aplicado.
  bool cupomAplicado = true;
  // Valor do desconto em reais que será subtraído do subtotal.
  double desconto = 30.00;

  // Subtotal = preço unitário × quantidade (sem descontos).
  double subtotal = quantidade * precoUnitario;
  // Total final = subtotal menos o desconto aplicado.
  double total = subtotal - desconto;

  // Exibe o resumo formatado da compra.
  print('=== Resumo da Compra ===');
  print('Produto: $produto');
  print('Quantidade: $quantidade');
  // toStringAsFixed(2) exibe o valor com exatamente 2 casas decimais.
  print('Preco unitario: R\$ ${precoUnitario.toStringAsFixed(2)}');
  print('Subtotal: R\$ ${subtotal.toStringAsFixed(2)}');
  // Exibe true ou false dependendo do valor da variável bool.
  print('Cupom aplicado: $cupomAplicado');
  print('Desconto: R\$ ${desconto.toStringAsFixed(2)}');
  print('Total: R\$ ${total.toStringAsFixed(2)}');
}

Saída esperada

=== Resumo da Compra ===
Produto: Teclado
Quantidade: 2
Preco unitario: R$ 150.00
Subtotal: R$ 300.00
Cupom aplicado: true
Desconto: R$ 30.00
Total: R$ 270.00

Como executar

dart run 04-Variaveis/03_Desafios/codigo_fonte/desafio_02_resumo_compra.dart