Dart – Exercícios de Estruturas Condicionais | switch/case

0
1490

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ódigoCargoPercentual
101Gerente10%
102Engenheiro20%
103Técnico30%
104Outros40%
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 ProdutoPreço unitário
10015,32
13246,45
65482,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

Estude a Bíblia!
guest
0 Comentários
Inline Feedbacks
View all comments