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.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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++; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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); } |
1 2 3 4 5 6 7 8 9 10 11 |
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.
1 2 3 4 5 6 7 8 9 10 |
void main() { int i = 0; while(i <= 20){ if (i % 2 == 1) print(i); i++; } } |
1 2 3 4 5 6 7 8 9 10 |
void main() { int i = 0; do { if (i % 2 == 1) print(i); i++; } while(i <= 20); } |
1 2 3 4 5 6 7 |
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.
1 2 3 4 5 6 7 8 |
void main() { int i = 1; while (i <= 100) { print('$i'); i++; } } |
1 2 3 4 5 6 7 |
void main() { int i = 1; do { print('$i'); i++; } while (i <= 100); } |
1 2 3 4 5 6 |
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.
1 2 3 4 5 6 7 |
void main() { int i = 2; while (i <= 100) { print('$i'); i+= 2; } } |
1 2 3 4 5 6 7 |
void main() { int i = 2; do { print('$i'); i += 2; } while (i <= 100); } |
1 2 3 4 5 6 |
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.
1 2 3 4 5 6 7 |
void main() { int i = 1; while (i <= 100) { print('$i'); i+= 2; } } |
1 2 3 4 5 6 7 |
void main() { int i = 1; do { print('$i'); i += 2; } while (i <= 100); } |
1 2 3 4 5 6 |
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.
1 2 3 4 5 6 7 8 9 |
void main() { int soma = 0; int i = 1; while (i <= 100) { soma = soma + i; i++; } print('SOMA = $soma'); } |
1 2 3 4 5 6 7 8 9 |
void main() { int soma = 0; int i = 1; do{ soma = soma + i; i++; } while (i <= 100); print('SOMA = $soma'); } |
1 2 3 4 5 6 7 |
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.
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 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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 |
1 2 3 4 5 6 7 8 9 10 11 |
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.
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 60 61 62 63 64 65 66 |
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)
1 2 3 4 5 |
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