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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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% |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
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