Você está aqui: Dart ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em Dart - Como criar sua primeira classe em DartQuantidade de visualizações: 1481 vezes |
Dart, a exemplo de linguagens um pouco mais antigas, tais como Java, PHP, C++, C#, etc, também dá suporte à Programação Orientada a Objetos (POO). A programação orientada a objetos gira em torno de classes e objetos. Uma classe define o comportamento dos objetos, enquanto um objeto, por sua vez, é uma instância da classe, ou seja, um objeto que podemos manipular durante a execução dos nossos códigos. Como criar uma classe em Dart A criação de uma classe em Dart se dá por meio do uso da palavra-chave class. Veja um exemplo no qual criamos uma classe Produto e, em seguida, criamos dois objetos desta classe: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import "dart:io"; // vamos declarar a classe Produto class Produto{ // variáveis de instância String nome; double preco; int quantidade; } void main(){ // vamos criar dois objetos da classe Produto Produto p1 = new Produto(); p1.nome = "Bateria H32"; p1.preco = 345.50; p1.quantidade = 42; Produto p2 = new Produto(); p2.nome = "Arroz Tipo 1"; p2.preco = 9.12; p2.quantidade = 50; // vamos mostrar os dados do primeiro produto stdout.write("Nome do produto: ${p1.nome}"); stdout.write("\nPreço do produto: ${p1.preco}"); stdout.write("\nQuantidade do produto: ${p1.quantidade}"); // vamos mostrar os dados do segundo produto stdout.write("\nNome do produto: ${p2.nome}"); stdout.write("\nPreço do produto: ${p2.preco}"); stdout.write("\nQuantidade do produto: ${p2.quantidade}"); } Ao executarmos este código Dart nós teremos o seguinte resultado: Nome do produto: Bateria H32 Preço do produto: 345.5 Quantidade do produto: 42 Nome do produto: Arroz Tipo 1 Preço do produto: 9.12 Quantidade do produto: 50 |
Link para compartilhar na Internet ou com seus amigos: |
Dart ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o ponto de interseção de duas retas em Dart - Geometria Analítica e Álgebra Linear em DartQuantidade de visualizações: 1549 vezes |
Duas retas podem encontrar-se em 0, 1 ou 2 pontos. No primeiro caso, elas são chamadas paralelas; no segundo, elas são chamadas concorrentes e o ponto de encontro entre elas é chamado ponto de interseção; no terceiro caso, se duas retas possuem dois pontos em comum, então elas obrigatoriamente apresentam todos os pontos em comum e são chamadas coincidentes. Nesta dica mostrarei como podemos encontrar o ponto de interseção (ou intersecção) de duas retas usando Dart. Mas, antes de vermos o código, dê uma olhada na seguinte imagem: Note que temos os pontos A e B correspondentes ao segmento de reta AB e os pontos C e D correspondentes ao segmento de reta CD. Nossa tarefa é encontrar o ponto exato de intersecção entre esses dois segmentos de reta. Veja o código Dart completo que nos auxilia na resolução deste problema: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import "dart:io"; // Classe usada para representar um ponto no // plano 2d (Plano Cartesiano) class Ponto{ double x, y; // construtor da classe Ponto(double x, double y){ this.x = x; this.y = y; } } void main(){ // vamos construir os quatro pontos Ponto A = new Ponto(5, 7); Ponto B = new Ponto(9, -4); Ponto C = new Ponto(-8, 2); Ponto D = new Ponto(11, 6); // vamos obter a representação do segmento AB double a1 = B.y - A.y; double b1 = A.x - B.x; double c1 = (a1 * A.x) + (b1 * A.y); // vamos obter a representação do segmento CD double a2 = D.y - C.y; double b2 = C.x - D.x; double c2 = (a2 * C.x) + (b2 * C.y); // obtém o determinante double determinante = (a1 * b2) - (a2 * b1); // as duas retas são paralelas? if(determinante == 0){ print("\nAs duas retas são paralelas.\n"); } else{ // e construímos o ponto de intersecção double x = ((b2 * c1) - (b1 * c2)) / determinante; double y = ((a1 * c2) - (a2 * c1)) / determinante; Ponto inters = new Ponto(x, y); print("O ponto de interseção é: " + "x = ${x.toStringAsFixed(2)}; y = ${y.toStringAsFixed(2)}"); } } Ao executar este código Dart nós teremos o seguinte resultado: O ponto de interseção é: x = 5,76; y = 4,90 De fato, se você olhar a imagem novamente e desenhar este ponto, verá que ele se situa exatamente na intersecção das retas indicadas. |
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: 761 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // 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 ::: 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: 598 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // 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. |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Dart |
Veja mais Dicas e truques de Dart |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |