Lista de exercícios de estruturas de controle (seleção) utilizando switch/case em Dart.
- Elabore um programa que receba o valor total de uma compra, calcule e exiba o valor final a ser pago de acordo com a forma de pagamento – 15% de desconto à vista e acréscimo de 10% na compra a prazo.
import 'dart:io';
void main() {
String menu = '-------------------------\n' +
' FORMAS DE PAGAMENTO\n' +
'-------------------------\n' +
' 1 -> À Vista \n' +
' 2 -> A Prazo \n' +
'-------------------------\n' +
'\nDigite uma forma de pagamento: ';
stdout.write(menu);
int forma_pagamento = int.parse(stdin.readLineSync());
stdout.write('\nValor da compra -> R\$ ');
double valor_compra = double.parse(stdin.readLineSync());
switch (forma_pagamento) {
case 1:
print(
'\nValor a pagar -> R\$ ' + (0.85 * valor_compra).toStringAsFixed(2));
break;
case 2:
print(
'\nValor a pagar -> R\$ ' + (1.10 * valor_compra).toStringAsFixed(2));
break;
default:
print('\nOpção Inválida!');
}
}
- Escreva um programa utilizando o comando switch que imprima um mês de acordo com o número digitado pelo usuário.
import 'dart:io';
void main() {
stdout.write('Digite um número: ');
int numero = int.parse(stdin.readLineSync());
switch (numero) {
case 1:
print("Janeiro");
break;
case 2:
print("Fevereiro");
break;
case 3:
print("Março");
break;
case 4:
print("Abril");
break;
case 5:
print("Maio");
break;
case 6:
print("Junho");
break;
case 7:
print("Julho");
break;
case 8:
print("Agosto");
break;
case 9:
print("Setembro");
break;
case 10:
print("Outubro");
break;
case 11:
print("Novembro");
break;
case 12:
print("Dezembro");
break;
default:
print("Mês Inválido. Digite um número entre 1 e 12");
}
}
- Elabore um algoritmo que leia dois valores do usuário e a operação que ele deseja realizar (soma, subtração, divisão ou multiplicação), execute a operação desejada e imprima na tela.
import 'dart:io';
void main() {
String menu = '-------------------------\n' +
' + -> SOMA \n' +
' - -> SUBTRAÇÃO \n' +
' * -> MULTIPLICAÇÃO \n' +
' / -> DIVISÃO \n' +
'-------------------------\n' +
'Digite a operação: ';
stdout.write(menu);
String operacao = stdin.readLineSync();
stdout.write('Digite um número -> ');
double n1 = double.parse(stdin.readLineSync());
stdout.write('Digite outro número -> ');
double n2 = double.parse(stdin.readLineSync());
switch (operacao) {
case '+':
print('$n1 + $n2 = ${n1 + n2}');
break;
case '-':
print('$n1 - $n2 = ${n1 - n2}');
break;
case '*':
print('$n1 x $n2 = ${n1 * n2}');
break;
case '/':
print('$n1 / $n2 = ${n1 / n2}');
break;
default:
print('\nOperação Inválida!');
}
}
- Uma empresa concederá um aumento de salário aos seus funcionários, variável de acordo com o cargo, conforme a tabela abaixo. Faça um algoritmo que leia o salário e o cargo de um funcionário e calcule o novo salário. Se o cargo do funcionário não estiver na tabela, ele deverá, então, receber 40% de aumento. Mostre o salário antigo, o novo salário e a diferença.
| Código | Cargo | Percentual |
|---|---|---|
| 101 | Gerente | 10% |
| 102 | Engenheiro | 20% |
| 103 | Técnico | 30% |
| 104 | Outros | 40% |
import 'dart:io';
void main() {
double novo_salario = 0;
String menu = '--------------------------------\n' +
'Código | Cargo | Percentual\n' +
'--------------------------------\n' +
' 101 | Gerente | 10%\n' +
' 102 | Engenheiro | 20%\n' +
' 103 | Técnico | 30%\n' +
' 104 | Outros | 40%\n' +
'--------------------------------\n' +
'Digite o código do cargo: ';
stdout.write(menu);
int codigo_cargo = int.parse(stdin.readLineSync());
stdout.write('Salário atual R\$: ');
double salario_atual = double.parse(stdin.readLineSync());
switch (codigo_cargo) {
case 101:
novo_salario = 1.10 * salario_atual;
break;
case 102:
novo_salario = 1.20 * salario_atual;
break;
case 103:
novo_salario = 1.30 * salario_atual;
break;
case 104:
novo_salario = 1.40 * salario_atual;
break;
default:
print('\nCódigo inválido!');
}
print('\nNovo salário: R\$ ' + novo_salario.toStringAsFixed(2));
}
- Tendo como dados de entrada a altura e o sexo de uma pessoa (M – Masculino ou F – Feminino), construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas:
- Masculino: (72.7 * altura) – 58
- Feminino: (62.1 * altura) – 44.7
import 'dart:io';
void main() {
double pesoIdeal = 0;
stdout.write('Altura (em metros): ');
double altura = double.parse(stdin.readLineSync());
stdout.write('[M] Masculino/[F] Feminino: ');
String sexo = stdin.readLineSync().toUpperCase();
switch (sexo) {
case 'M':
pesoIdeal = (72.7 * altura) - 58;
break;
case 'F':
pesoIdeal = (62.1 * altura) - 44.7;
break;
default:
print('Opção Inválida');
}
print('Seu peso ideal é ' + pesoIdeal.toStringAsFixed(2) + ' kg');
}
- Um vendedor necessita de um algoritmo que calcule o preço total devido por um cliente. Um algoritmo deve receber o código de um produto e a quantidade comprada e calcular o preço total, usando a tabela abaixo:
| Código do Produto | Preço unitário |
| 1001 | 5,32 |
| 1324 | 6,45 |
| 6548 | 2,37 |
import 'dart:io';
void main() {
double preco_total = 0;
String menu = '-------------------------\n' +
'Código | Preço Unitário \n' +
'-------------------------\n' +
' 1001 | R\$ 5,32 \n' +
' 1324 | R\$ 6,45 \n' +
' 6548 | R\$ 2,37 \n' +
'-------------------------\n' +
'Digite o código: ';
stdout.write(menu);
int codigo_produto = int.parse(stdin.readLineSync());
stdout.write('Digite a quantidade: ');
double quantidade_produto = double.parse(stdin.readLineSync());
switch (codigo_produto) {
case 1001:
preco_total = quantidade_produto * 5.32;
break;
case 1324:
preco_total = quantidade_produto * 6.45;
break;
case 6548:
preco_total = quantidade_produto * 2.37;
break;
default:
print('\nCódigo inválido!');
}
print('\nValor Total: R\$ ' + preco_total.toStringAsFixed(2));
}
- Desenvolva um algoritmo que, para uma conta bancária, leia o seu número, o tipo de operação a ser realizada (depósito ou saque) e o valor a ser depositado ou sacado. Considere que um saque só pode ser realizado caso haja saldo suficiente. Ao final de cada operação, exiba o saldo existente.
import 'dart:io';
void main() {
int opcao = 0, numero_conta = 0;
double saldo = 600.25; // Valor inicial para testar o programa
String menu = '----------------------------\n' +
'<<< BANCO GUIATECH >>>\n' +
'----------------------------\n' +
' OPÇÃO | OPERAÇÃO \n' +
'----------------------------\n' +
' 1 | SALDO\n' +
' 2 | DEPÓSITO\n' +
' 3 | SAQUE\n' +
'----------------------------\n' +
'Digite uma opção -> ';
stdout.write(menu);
opcao = int.parse(stdin.readLineSync());
stdout.write('Digite o nº da conta -> ');
numero_conta = int.parse(stdin.readLineSync());
switch (opcao) {
case 1:
print('\nCONTA $numero_conta | SALDO -> R\$ ' + saldo.toStringAsFixed(2));
break;
case 2:
stdout.write('Digite o valor do depósito -> R\$ ');
double valor_deposito = double.parse(stdin.readLineSync());
saldo = saldo + valor_deposito;
print('\nCONTA $numero_conta | SALDO -> R\$ ' + saldo.toStringAsFixed(2));
break;
case 3:
stdout.write('Digite o valor do saque -> R\$ ');
double valor_saque = double.parse(stdin.readLineSync());
if (valor_saque > saldo)
print('\nSaldo insuficiente.');
else
saldo = saldo - valor_saque;
print('\nCONTA $numero_conta | SALDO -> R\$ ' + saldo.toStringAsFixed(2));
break;
default:
print('Operação inválida.');
}
}
*Atualizado em 11 de janeiro de 2021



