Dart – Exercícios de Estruturas de Repetição | do/while/for

0
2730

Lista de exercícios em Dart com as estruturas de repetição do/while/for.

  • Crie um algoritmo para apresentar os resultados de uma tabuada de multiplicar (de 1 até 10) de um número inteiro positivo qualquer.
import 'dart:io';

void main() {
  stdout.write('Digite um número inteiro: ');
  int numero = int.parse(stdin.readLineSync());

  int i = 1;
  while (i <= 10) {
    print('$numero x $i = ${numero * i}');
    i++;
  }
}
import 'dart:io';

void main() {
  stdout.write('Digite um número inteiro: ');
  int numero = int.parse(stdin.readLineSync());

  int i = 1;
  do {
    print('$numero x $i = ${numero * i}');
    i++;
  } while (i <= 10);
}
import 'dart:io';

void main() {
  stdout.write('Digite um número inteiro: ');
  int numero = int.parse(stdin.readLineSync());

  for (int i = 1; i <= 10; i++) {
    print('$numero x $i = ${numero * i}');
  }
}
  • Elabore um algoritmo para apresentar todos os valores numéricos inteiros ímpares situados na faixa de 0 a 20. Para verificar se o número é ímpar, efetuar dentro da malha a verificação lógica desta condição com a instrução if, perguntando se o número é ímpar; sendo, mostre-o; não sendo, passe para o próximo passo.
void main() {
  int i = 0;
  while(i <= 20){
    if (i % 2 == 1)
      print(i);
    
    i++;
  }
}
void main() {
  int i = 0;
  do {
    if (i % 2 == 1)
      print(i);
    
    i++;
  } while(i <= 20);
}
void main() {
  for (int i = 0; i < 20; i++) {
    if (i % 2 == 1)
      print(i);
  }
}
  • Elabore um algoritmo que exiba todos números inteiros entre 1 e 100.
void main() {
  int i = 1;
  while (i <= 100) {
    print('$i');
    i++;
  }
}
void main() {
  int i = 1;
  do {
    print('$i');
    i++;
  } while (i <= 100);
}
void main() {
  for (int i = 1; i <= 100; i++) {
    print('$i ');
  }
}
  • Elabore um algoritmo que exiba todos números inteiros pares entre 1 e 100.
void main() {
  int i = 2;
  while (i <= 100) {
    print('$i');
    i+= 2;
  }
}
void main() {
  int i = 2;
  do {
    print('$i');
    i += 2;
  } while (i <= 100);
}
void main() {
  for (int i = 2; i <= 100; i += 2) {
    print('$i ');
  }
}
  • Elabore um algoritmo que exiba todos números inteiros ímpares entre 1 e 100.
void main() {
  int i = 1;
  while (i <= 100) {
    print('$i');
    i+= 2;
  }
}
void main() {
  int i = 1;
  do {
    print('$i');
    i += 2;
  } while (i <= 100);
}
void main() {
  for (int i = 1; i <= 100; i += 2) {
    print('$i ');
  }
}
  • Elabore um algoritmo que some os números de 1 a 100 e imprima o valor.
void main() {
  int soma = 0;
  int i = 1;
  while (i <= 100) {
    soma = soma + i;
    i++;
  }
  print('SOMA = $soma');
}
void main() {
  int soma = 0;
  int i = 1;
  do{
    soma = soma + i;
    i++;
  } while (i <= 100);
  print('SOMA = $soma');
}
void main() {
  int soma = 0;
  for(int i = 1; i <= 100; i++) {
    soma = soma + i;
  }
  print('SOMA = $soma');
}
  • Escreva um algoritmo para ler as notas da 1ª e 2ª avaliações de um aluno, calcule e imprima a média (simples) desse aluno. Só devem ser aceitos valores válidos durante a leitura (0 a 10) para cada nota.
    Acrescente uma mensagem ‘NOVO CÁLCULO (S/N)?’ ao final do algoritmo. Se for respondido ‘S’, deve retornar e executar um novo cálculo, caso contrário, deverá encerrar o algoritmo.
import 'dart:io';

void main() {
  String resposta = 'S';
  double nota1, nota2, media;

  while (resposta == 'S') {
    stdout.write('\n1ª NOTA = ');
    nota1 = double.parse(stdin.readLineSync());
    if (nota1 < 0.0 || nota1 > 10.0) {
      print('Nota inválida!');
      continue;
    }

    stdout.write('\n2ª NOTA = ');
    nota2 = double.parse(stdin.readLineSync());
    if (nota2 < 0.0 || nota2 > 10.0) {
      print('Nota inválida!');
      continue;
    }

    media = (nota1 + nota2) / 2;

    stdout.write('\nMÉDIA = $media');

    stdout.write('\n\nNOVO CÁLCULO (S/N)? ');
    resposta = stdin.readLineSync().toUpperCase();
  }
}
  • Escreva um programa que calcule a soma dos 20 primeiros números inteiros, exibindo uma sequência como se segue:
0 2 = 2
0 2 3 = 5
0 2 3 4 = 9
0 2 3 4 5 = 14
0 2 3 4 5 6 = 20
0 2 3 4 5 6 7 = 27
0 2 3 4 5 6 7 8 = 35
0 2 3 4 5 6 7 8 9 = 44
0 2 3 4 5 6 7 8 9 10 = 54
0 2 3 4 5 6 7 8 9 10 11 = 65
0 2 3 4 5 6 7 8 9 10 11 12 = 77
0 2 3 4 5 6 7 8 9 10 11 12 13 = 90
0 2 3 4 5 6 7 8 9 10 11 12 13 14 = 104
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 = 119
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 = 135
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 = 152
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 = 170
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 = 189
void main() {
  int soma = 0;
  String result = '0';
  
  for(int i = 1; i <= 18; i++) {
    result += ' ${i+1}';
    soma = soma + i + 1;
    print('$result = $soma');
  }
}
  • 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() {
  String resposta = 'S';
  int opcao = 0, numero_conta = 0;
  double saldo = 0.0;

  while (resposta == 'S') {
    String menu = '----------------------------\n' +
        '<<<     BANCO GUIATECH   >>>\n' +
        '----------------------------\n' +
        ' OPÇÃO   |   OPERAÇÃO \n' +
        '----------------------------\n' +
        '   1     |   SALDO\n' +
        '   2     |   DEPÓSITO\n' +
        '   3     |   SAQUE\n' +
        '   4     |   SAIR\n' +
        '----------------------------\n' +
        'Digite uma opção -> ';

    stdout.write(menu);
    opcao = int.parse(stdin.readLineSync());

    if (opcao != 4) {
      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;
      case 4:
        print('\nObrigado. Volte sempre!');
        resposta = 'N';
        break;
      default:
        print('Operação inválida.');
    }

    if (opcao != 4) {
      stdout.write('\n\nDeseja continuar (S/N)? ');
      resposta = stdin.readLineSync().toUpperCase();
    }
  }
}
  • Elaborar um programa que apresente os valores de conversão de graus Celsius em Fahrenheit, de 10 em 10 graus, iniciando a contagem em 10 graus Celsius e finalizando em 100 graus Celsius. O programa deve apresentar os valores das duas temperaturas. A fórmula de conversão é F = (9C + 160) / 5, sendo F a temperatura em Fahrenheit e C a temperatura em Celsius. (Leia: Algoritmo | Conversão entre as escalas Celsius, Kelvin e Fahrenheit)
void main() {
  for (int C = 10; C <= 100; C += 10) {
    print('$C °C = '+ ((9*C+150)/5).toString() + ' F');
  }
}


Deixe suas dúvidas e comentários logo abaixo.

*Atualizado em 23 de fevereiro de 2023

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