Você está aqui: Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Um programa que calcule e mostre a tabuada de multiplicação de um número digitado pelo usuário (entre 1 e 10) - Lista de Exercícios Resolvidos de DartQuantidade de visualizações: 1057 vezes |
Pergunta/Tarefa: Escreva um programa Dart que usa o laço for para calcular a tabuada de multiplicação para um número digitado pelo usuário. Este número deve estar entre 1 e 10 (inclusive). Sua saída deve ser parecida com: Informe um valor entre 1 e 10: 8 A tabuada do número 8 é: 8 X 1 = 8 8 X 2 = 16 8 X 3 = 24 8 X 4 = 32 8 X 5 = 40 8 X 6 = 48 8 X 7 = 56 8 X 8 = 64 8 X 9 = 72 8 X 10 = 80 Veja a resolução comentada deste exercício usando Dart console: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import "dart:io"; void main(){ // vamos solicitar que o usuário informe um inteiro entre 1 e 10 stdout.write("Informe um valor entre 1 e 10: "); int numero = int.parse(stdin.readLineSync()); // vamos verificar se o valor está na faixa desejada if((numero < 1) || (numero > 10)){ print("\nO número deve ser entre 1 e 10\n"); } else{ // o número é válido....vamos exibir a tabuada print("\nA tabuada do número ${numero} é:\n"); for(int i = 1; i <= 10; i++){ print("${numero} X ${i} = ${numero * i}"); } } } |
![]() |
Dart ::: Dicas de Estudo e Anotações ::: Estruturas de Controle |
Como usar o laço do..while da linguagem DartQuantidade de visualizações: 1671 vezes |
O laço do...while (faça...enquanto) do Dart é usado quando queremos repetir uma ou mais instruções ENQUANTO uma condição estiver sendo satisfeita. A diferença entre o laço do...while e o laço while é que o primeiro testa a condição de continuidade no final, enquanto o segundo testa a condição de continuidade no início. Por essa razão, o do...while será executado pelo menos uma vez. Veja um exemplo no qual contamos de 1 até 10: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- void main() { int cont = 1; // vamos contar de 1 até 10 do { print(cont); cont++; } while (cont <= 10); } A execução deste código mostrará o seguinte resultado: c:\estudos_dart>dart laco_do_while.dart 1 2 3 4 5 6 7 8 9 10 Veja agora um exemplo no qual pedimos para o usuário informar vários valores inteiros e mostraremos a soma. O valor -1 interrompe a leitura: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import 'dart:io'; void main() { int valor; // guarda o valor informado pelo usuário int soma = 0; // guarda a soma dos valores do { // vamos pedir para o usuário digitar um valor inteiro stdout.write("Digite um número inteiro (-1 para parar): "); valor = int.parse(stdin.readLineSync()); // este valor pode ser somado? if (valor != -1) { soma = soma + valor; } } while (valor != -1); // saímos do laço print("A soma dos valores lidos é $soma"); } Execute este código e você terá um resultado parecido com: c:\estudos_dart>dart laco_do_while.dart Digite um número inteiro (-1 para parar): 5 Digite um número inteiro (-1 para parar): 2 Digite um número inteiro (-1 para parar): 4 Digite um número inteiro (-1 para parar): -1 A soma dos valores lidos é 11 |
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Dart - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equiláteroQuantidade de visualizações: 1117 vezes |
Pergunta/Tarefa: Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra: A < (B + C), B < (A + C) e C < (A + B). Escreva um programa Dart que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais). Sua saída deverá ser parecida com: Informe o primeiro lado do triângulo: 30 Informe o segundo lado do triângulo: 40 Informe o terceiro lado do triângulo: 60 O triângulo é escaleno Veja a resolução comentada deste exercício usando Dart: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import 'dart:io'; void main(){ // vamos ler o primeiro lado do triângulo stdout.write("Informe o primeiro lado do triângulo: "); int lado_a = int.parse(stdin.readLineSync()); // vamos ler o segundo lado do triângulo stdout.write("Informe o segundo lado do triângulo: "); int lado_b = int.parse(stdin.readLineSync()); // vamos ler o terceiro lado do triângulo stdout.write("Informe o terceiro lado do triângulo: "); int lado_c = int.parse(stdin.readLineSync()); // os lados informados formam um triângulo? if((lado_a < (lado_b + lado_c)) && (lado_b < (lado_a + lado_c)) && (lado_c < (lado_a + lado_b))){ // é um triângulo equilátero (todos os lados iguais)? if((lado_a == lado_b) && (lado_b == lado_c)){ stdout.write("\nO triângulo é equilátero\n"); } else{ // é isósceles (dois lados iguais e um diferente)? if((lado_a == lado_b) || (lado_a == lado_c) || (lado_c == lado_b)){ stdout.write("\nO triângulo é isósceles\n"); } else{ // é escaleno stdout.write("\nO triângulo é escaleno\n"); } } } else{ stdout.write("\nOs lados informados não formam um triângulo.\n"); } } |
Dart ::: Dicas de Estudo e Anotações ::: Estruturas de Controle |
Como usar o laço for da linguagem DartQuantidade de visualizações: 4166 vezes |
Em algumas situações os nossos códigos precisam executar repetidas vezes uma ou mais instruções. Para isso a linguagem Dart, assim como C, C++, Java, Python, JavaScript, Delphi, etc, nos oferece o laço for, ou loop for. Este laço é usado quando sabemos exatamente a quantidade de vezes que a instrução (ou grupo de instruções) deverá ser repetida. Veja um exemplo no qual usamos este laço para contar de 1 até 10: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- void main() { for (int i = 1; i <= 10; i++) { print('${i}'); } } Ao executar este código nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 Veja que o laço for em Dart é composto de três partes: a) Inicialização da variável de controle; b) O teste de continuidade; c) O incremento ou decremento da variável de controle. Como a execução do laço se inicia no teste de continuidade, é possível termos um laço for que nunca será executado. Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- void main() { for (int i = 1; i > 5; i++) { print('${i}'); } } Execute este código e perceberá que nenhum valor é impresso. Isso aconteceu porque o teste condicional retornou um valor falso, impedindo até mesmo a primeira execução do laço. Veja agora um laço for que conta de 10 até 1: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- void main() { for (int i = 10; i >= 1; i--) { print('${i}'); } } Para finalizar em grande estilo, veja um laço for que pede para o usuário digitar 5 idades e, em seguida, mostra a média das idades lidas: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import 'dart:io'; void main() { int soma = 0; // vamos solicitar 5 idades for (int i = 0; i < 5; i++) { stdout.write("Digite uma idade: "); int idade = int.parse(stdin.readLineSync()); soma = soma + idade; } // Vamos mostrar a média das idades double media = soma / 5; print("A média das idades é $media."); } A execução deste código mostrará o seguinte resultado: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- c:\estudos_dart>dart laco_for.dart Digite uma idade: 18 Digite uma idade: 21 Digite uma idade: 34 Digite uma idade: 50 Digite uma idade: 9 A média das idades é 26.4. |
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Dart - Escreva um programa Dart para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 629 vezes |
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: // vamos declarar e construir um vetor (List) de 8 inteiros List<int> valores = [0, 3, 0, 5, 7, 4, 0, 9]; Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando Dart: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import "dart:io"; void main(){ // vamos declarar e construir um vetor (List) de 8 inteiros List<int> valores = [0, 3, 0, 5, 7, 4, 0, 9]; // vamos mostrar o vetor na ordem original print("Vetor na ordem original:\n"); for(int i = 0; i < valores.length; i++){ stdout.write("${valores[i]} "); } // vamos inicializar j como 0 para que ele aponte para // o primeiro elemento do vetor int j = 0; // agora o laço for percorre todos os elementos do vetor, // incrementanto a variável i e deixando o j em 0 for(int i = 0; i < valores.length; i++){ // encontramos um valor que não é 0 if(valores[i] != 0){ // fazemos a troca entre os elementos nos índices // i e j int temp = valores[i]; valores[i] = valores[j]; valores[j] = temp; // e avançamos o j para o elemento seguinte j++; } } // agora mostramos o resultado print("\n\nVetor com os zeros deslocados para o final:\n"); for(int i = 0; i < valores.length; i++){ stdout.write("${valores[i]} "); } } Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
Dart ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como testar se um ponto está dentro de um círculo em Dart - Desenvolvimento de Games com DartQuantidade de visualizações: 798 vezes |
Quando estamos trabalhando com computação gráfica, geometria e trigonometria ou desenvolvimento de jogos em Dart, é comum precisarmos verificar se um determinado ponto (uma coordenada x, y) está contido dentro de um círculo. Para melhor entendimento, veja a imagem a seguir: ![]() Veja que temos um círculo com raio igual a 115 e com centro nas coordenadas (x = 205; y = 166). Temos também dois pontos. O ponto vermelho está nas coordenadas (x = 140; y = 90) e o ponto azul está nas coordenadas (x = 330; y = 500. Como podemos ver na imagem, o ponto vermelho está dentro do círculo, enquanto o ponto azul está fora. E nosso intenção nesta dica é escrever o código Dart que permite fazer essa verificação. Tenha em mente que está técnica é muito útil para o teste de colisões no desenvolvimento de games. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import "dart:io"; // vamos importar a biblioteca dart:math import "dart:math"; // vamos declarar a classe Circulo class Circulo{ double xc; double yc; double raio; // construtor da classe Circulo Circulo(double xc, double yc, double raio){ this.xc = xc; // x do centro this.yc = yc; // y do centro this.raio = raio; // raio do círculo } } // agora vamos declarar a classe Ponto class Ponto{ double x; double y; // construtor da classe Ponto Ponto(double x, double y){ this.x = x; // coordenada x this.y = y; // coordenada y } } void main(){ // variáveis que vamos usar na resolução do problema Circulo c; Ponto p; double dx, dy; // vamos criar um objeto Circulo c = new Circulo(205, 166, 115); // vamos criar um objeto Ponto p = new Ponto(140, 90); // vamos verificar se o ponto está dentro do // círculo dx = p.x - c.xc; dy = p.y - c.yc; if((pow(dx, 2) + pow(dy, 2)) < pow(c.raio, 2)){ stdout.write("O ponto está dentro do círculo"); } else{ stdout.write("O ponto NÃO está dentro do círculo"); } } Ao executar este código Dart nós teremos o seguinte resultado: O ponto está dentro do círculo. Experimente com círculos de raios e coordenadas centrais diferentes e também com pontos em várias coordenadas e veja como os resultados são interessantes. |
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de Dart - Escreva um programa Dart que usa o laço for para desenhar um padrão de diamante de estrelasQuantidade de visualizações: 1231 vezes |
Pergunta/Tarefa: Neste exercício para a prática da linguagem Dart você deverá usar o laço for para desenhar o famoso padrão de diamante de estrelas. Você pode também usar o laço while, se assim você o desejar. O programa deverá pedir que o usuário informe a quantidade de linhas que marcará a metade do diamante. Seu programa deve apresentar a seguinte saída: Informe a quantidade de linhas: 5 * *** ***** ******* ********* ******* ***** *** * Veja a resolução comentada deste exercício em Dart: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import "dart:io"; void main(){ // variáveis que vamos usar na resolução do problema int linhas, estrelas, espacos; // vamos pedir a quantidade de linhas stdout.write("Informe a quantidade de linhas: "); // vamos ler a entrada do usuário linhas = int.parse(stdin.readLineSync()); estrelas = 1; // começamos com uma estrela (no topo do diamante) // se linhas for igual a 5 nós começamos com 4 espaços espacos = linhas - 1; // repete duas vezes a quantidade de linhas informadas for(int i = 1; i < linhas * 2; i++){ // vamos imprimir os espaços for(int j = 1; j <= espacos; j++){ stdout.write(" "); } // agora vamos imprimir estrelas for(int j = 1; j < estrelas * 2; j++){ stdout.write("*"); } // passamos para a próxima linha stdout.write("\n"); if(i < linhas){ // é a parte superior do diamante espacos--; // diminui os espaços estrelas++; // e aumenta as estrelas } else{ // é a parte inferior do diamente espacos++; // aumenta os espaços estrelas--; // e diminui as estrelas } } } |
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Dart - Como testar se um ano é bissexto em Dart - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 975 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa Dart que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando Dart: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import "dart:io"; void main(){ // vamos solicitar que o usuário informe um ano stdout.write("Informe o ano: "); int ano = int.parse(stdin.readLineSync()); // vamos verificar se o ano informado é bissexto if(((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){ print("O ano informado é bissexto."); } else{ print("O ano informado não é bissexto."); } } |
Dart ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em Dart usando o método cos() da biblioteca Math - Calculadora de cosseno em DartQuantidade de visualizações: 812 vezes |
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem: ![]() Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula: \[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \] Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Dart. Esta método, que faz parte da biblioteca Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // vamos importar a biblioteca dart:math import "dart:math"; void main(){ print("Cosseno de 0 = " + cos(0).toString()); print("Cosseno de 1 = " + cos(1).toString()); print("Cosseno de 2 = " + cos(2).toString()); } Ao executar este código Dart nós teremos o seguinte resultado: Cosseno de 0 = 1.0 Cosseno de 1 = 0.5403023058681398 Cosseno de 2 = -0.4161468365471424 Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo: ![]() |
Veja mais Dicas e truques de Dart |
Dicas e truques de outras linguagens |
JavaScript - Como adicionar um método isPar() ao objeto Number do JavaScript que indicará se um número é par ou impar C# - Como abrir outros formulários de sua aplicação C# Windows Forms a partir do formulário principal |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |