Mobile App Development · Dart/Flutter
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
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
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