Você está aqui: Python ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar construtores em suas classes Python - Programação Orientada a Objetos em PythonQuantidade de visualizações: 599 vezes |
Quando estamos usando programação orientada a objetos em Python, é comum gerarmos métodos construtores para nossas classes. Tais métodos são usados para instanciar os objetos de uma classe, fornecendo, em geral, os valores para a inicialização de suas variáveis de instância. Os construtores das classes Python são criados a partir do método __init__(), que é chamado todas as vezes que uma nova instância da classe é criada. O construtor padrão de uma classe é um método simples e que não aceita nenhum argumento. Este tipo de construtor possui apenas um parâmetro, que é uma referência à instância que está sendo construída. Veja o trecho de código a seguir para melhor entendimento: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # definição da classe Produto class Produto: # método construtor padrão sem argumentos def __init__(self): self.categoria = "Alimentos" # um método para exibir o nome da categoria def exibir_categoria(self): print("Nome da categoria: {0}".format(self.categoria)) # método principal def main(): # vamos criar um novo objeto da classe Produto p = Produto() # vamos chamar o método que exibe o nome da categoria p.exibir_categoria() if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Nome da categoria: Alimentos Note que este exemplo não é muito útil, já que todos os produtos terão o mesmo nome de categoria. Entra em cena o construtor parametrizado. Um construtor parametrizado é aquele que permite a passagem de argumentos, além da referência à instância sendo criada. Dessa forma, os valores fornecidos ao construtor poderão ser usados na inicialização das variáveis de instância, tornando-as únicas para cada um dos objetos criados. Veja o exemplo a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # definição da classe Produto class Produto: # método construtor padrão sem argumentos def __init__(self, categoria): self.categoria = categoria # um método para exibir o nome da categoria def exibir_categoria(self): print("Nome da categoria: {0}".format(self.categoria)) # método principal def main(): # vamos criar dois novos objetos da classe Produto p1 = Produto("Alimentos") p2 = Produto("Vestuário") # vamos chamar o método que exibe o nome da categoria p1.exibir_categoria() p2.exibir_categoria() if __name__== "__main__": main() Ao executar este novo código Python nós teremos o seguinte resultado: Nome da categoria: Alimentos Nome da categoria: Vestuário Agora a nossa classe está mais completa, visto que cada instância possui o seu próprio valor para a variável categoria. |
Link para compartilhar na Internet ou com seus amigos: |
C++ ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MDC em C++ - C++ para matemáticaQuantidade de visualizações: 36573 vezes |
Como calcular MDC em C++ Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada: Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b. O trecho de código abaixo mostra como calcular o MDC de dois números informados: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> using namespace std; int MDC(int a, int b){ int resto; while(b != 0){ resto = a % b; a = b; b = resto; } return a; } int main(int argc, char *argv[]){ int x, y; cout << "Este programa permite calcular o MDC\n"; cout << "Informe o primeiro valor: "; cin >> x; cout << "Informe o segundo valor: "; cin >> y; cout << "\nO Máximo Divisor Comum de " << x << " e " << y << " é " << MDC(x, y) << endl; system("PAUSE"); return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Este programa permite calcular o MDC Informe o primeiro número: 12 Informe o segundo número: 9 O Máximo Divisor Comum de 12 e 9 é 3 |
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercício Resolvido de C - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescenteQuantidade de visualizações: 765 vezes |
Pergunta/Tarefa: Escreva um programa C que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida". Sua saída deverá ser parecida com: Primeiro número: 4 Segundo número: 8 Terceiro número: 11 Ordem Crescente Veja a resolução comentada deste exercício em C: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do exercício int a, b, c; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar três números printf("Primeiro número: "); scanf("%d", &a); printf("Segundo número: "); scanf("%d", &b); printf("Terceiro número: "); scanf("%d", &c); // os números estão em ordem crescente? if (a < b && b < c){ printf("Ordem Crescente"); } // os números estão em ordem decrescente? else if (a > b && b > c){ printf("Ordem Decrescente"); } // sem ordem definida else{ printf("Sem ordem definida"); } printf("\n\n"); system("PAUSE"); return 0; } |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de Dados em Java - Como obter o nó com menor valor em uma árvore binária de busca em JavaQuantidade de visualizações: 2913 vezes |
Em exemplos dessa seção nós vimos como criar árvores binárias e árvores binárias de busca em Java e como pesquisar ou fazer a sua travessia, visitando cada um dos nós. Nesta dica mostrarei como obter o nó com o menor valor em uma árvore binária. O truque aqui é descer o lado esquerdo da árvore até o último nó. Veja:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // método que permite retornar o menor nó de uma árvore // binária de busca public No retornarMenorElemento(){ // chama a versão recursiva do método return retornarMenorElemento(raiz); } public No retornarMenorElemento(No no){ if((no == null) || (no.getEsquerdo() == null)){ return no; // ponto de parada } else{ // vamos continuar descendo do lado esquerdo return retornarMenorElemento(no.getEsquerdo()); } } Este método faz parte da classe ArvoreBinariaBusca.java. Veja agora como chamá-lo a partir da classe principal, ou seja, a classe de teste: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arvore_binaria; import java.util.Scanner; public class ArvoreBinariaTeste { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos criar um novo objeto da classe ArvoreBinariaBusca ArvoreBinariaBusca arvore = new ArvoreBinariaBusca(); // vamos inserir 5 valores na árvore for(int i = 0; i < 5; i++){ System.out.print("Informe um valor inteiro: "); int valor = Integer.parseInt(entrada.nextLine()); // vamos inserir o nó e verificar o sucesso da operação if(!arvore.inserir(valor)){ System.out.println("Não foi possível inserir." + " Um elemento já contém este valor."); } } // vamos o menor elemento na árvore binária de busca System.out.println("\nO menor nó é: " + arvore.retornarMenorElemento().getValor()); System.out.println("\n"); } } Ao executar este código teremos o seguinte resultado: Informe um valor inteiro: 5 Informe um valor inteiro: 12 Informe um valor inteiro: 87 Informe um valor inteiro: 1 Informe um valor inteiro: 3 O menor nó é: 1 |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como ordenar um vetor de inteiros em ordem decrescente em JavaQuantidade de visualizações: 20436 vezes |
Nesta dica mostrarei como é possível ordenar um array (vetor) de ints em ordem decrescente usando o método sort() da classe Arrays e um método inverter() personalizado. É claro que há várias outras formas de se conseguir realizar esta tarefa. Espero que esta seja mais uma técnica adicionada ao seu arsenal. Veja o código Java completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.*; public class Estudos{ public static void main(String[] args){ // vamos declarar e construir um vetor de 5 inteiros int[] valores = new int[5]; // inicializa os elementos do array valores[0] = 23; valores[1] = 65; valores[2] = 2; valores[3] = 87; valores[4] = 34; // ordena os valores Arrays.sort(valores); System.out.println("Ordenado em ordem crescente:"); for(int valor : valores){ System.out.print(valor + " "); } // vamos inverter o vetor agora inverter(valores); // exibe os valores dos elementos do array // usando o laço for melhorado System.out.println("\nOrdenado em ordem decrescente:"); for(int valor : valores){ System.out.print(valor + " "); } System.out.println("\n"); System.exit(0); } // método que recebe um array e inverte a ordem // de seus elementos public static void inverter(int[] b){ int esquerdo = 0; int direito = b.length-1; while (esquerdo < direito) { int temp = b[esquerdo]; b[esquerdo] = b[direito]; b[direito] = temp; esquerdo++; direito--; } } } Ao executar este código Java nós teremos o seguinte resultado: Ordenado em ordem crescente: 2 23 34 65 87 Ordenado em ordem decrescente: 87 65 34 23 2 |
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Apostila Java para iniciantes - Como usar o tipo de dados referência em seus códigos JavaQuantidade de visualizações: 11318 vezes |
O Java contém 8 tipos de dados primitivos e um tipo referência. No entanto, poucos livros dedicam exemplos a este último tipo. Vamos começar analisando o trecho de código abaixo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ String nome = "Osmar J. Silva"; System.out.println(nome); System.exit(0); } } Se observarmos este código, veremos que a variável nome não é um tipo primitivo e sim uma referência. Desta forma, qualquer variável ou constante que não seja do tipo primitivo é uma referência a um objeto de uma classe, interface, etc. Arrays não são tipos primitivos também. Assim, variáveis ou constantes que apontam para arrays (vetores e matrizes) também são referências. É importante entender bem a noção de referências, visto que é por meio delas que acessamos um determinado objeto na memória. Além disso, como objetos e arrays são sempre passados por referência aos métodos Java, fica fácil entender como várias referências podem apontar para o mesmo objeto ao mesmo tempo. E, caso você tenha esquecido, os tipos primitivos nunca são passados por referêcia aos métodos. Em vez disso, eles são passados por valor (o que quer dizer que uma alteração nos argumentos fornecidos ao métodos não altera a cópia original da variável). |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
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 |