Você está aqui: Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como acessar variáveis de instâncias para leitura em Ruby sem a necessidade de métodos acessores usando a função attr_readerQuantidade de visualizações: 6714 vezes |
Por padrão, variáveis de instância em Ruby só podem ser acessadas usando métodos acessores, ou seja, uma variável de instância @nome deve ser lida usando um método obter_nome. É possível dispensar o uso de métodos acessores empregando o método attr_reader nos nomes das variáveis que poderão ser acessadas, para leitura, é claro. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # Definição da classe Cliente class Cliente attr_reader :nome, :idade def initialize(nome, idade) @nome = nome @idade = idade end def obter_nome @nome end def obter_idade @idade end end # Cria uma instância da classe Cliente e inicializa as # variáveis de instância @nome e @idade cliente = Cliente.new("Osmar J. Silva", 35) # Acessa as variáveis de instância sem a necessidade de # métodos acessórios puts cliente.nome puts cliente.idade Sem o uso do método attr_reader, a linha: puts cliente.nome causaria o seguinte erro: teste.rb:25: undefined method `nome' for #<Cliente:0x27f540c @nome="Osmar J. S ilva", @idade=35> (NoMethodError) |
Link para compartilhar na Internet ou com seus amigos: |
C++ ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar uma classe C++ completa, incluindo os arquivos de definição .h e implementação .cppQuantidade de visualizações: 27668 vezes |
Esta dica o guiará passo-a-passo na criação de uma classe C++, incluindo os arquivos .h e .cpp. Para isso vamos usar o Dev-C++ (acreditamos que o procedimento é parecido com outros compiladores). Vamos começar com o arquivo de definição. Com um projeto já iniciado no Dev-C++, vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes. Salve o arquivo com o nome de "pessoa.h" e inclua nele o seguinte código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- /* Código de definição: pessoa.h */ #ifndef PESSOA_H #define PESSOA_H #include <string> using std::string; class Pessoa{ public: void setNome(string nome); void setIdade(int idade); string getNome(); int getIdade(); private: string nome; int idade; }; #endif Salve este código como pessoa.h no diretório de sua aplicação C++. Este é o arquivo de definição da classe. É nele que declaramos os membros públicos e privados, incluindo as assinaturas dos métodos da classe. Passemos agora ao arquivo de implementação. Novamente vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes. Salve o novo arquivo como "pessoa.cpp" e inclua nele o seguinte conteúdo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- /* Código de implementação: pessoa.cpp */ #include "pessoa.h" void Pessoa::setNome(string nome){ this->nome = nome; } void Pessoa::setIdade(int idade){ this->idade = idade; } string Pessoa::getNome(){ return this->nome; } int Pessoa::getIdade(){ return this->idade; } Salve este código como pessoa.cpp no diretório de sua aplicação C++. Este é o arquivo de implementação dos métodos da classe Pessoa. Veja o uso da palavra-chave this quando queremos referenciar o objeto atual da classe e, é claro, evitar ambiguidade entre o nome das variáveis da classe e os nomes dos parâmetros dos métodos. Hora de testar. Crie o arquivo principal da aplicação (aquele que contém o método main()): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> #include "pessoa.h" using namespace std; int main(int argc, char *argv[]) { // declara um objeto da classe Pessoa Pessoa p; // informa o nome e idade da pessoa p.setNome("Osmar J. Silva"); p.setIdade(27); // obtém o nome e idade da pessoa cout << "Nome: " << p.getNome() << endl; cout << "Idade: " << p.getIdade() << endl; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Funcionou tudo como planejado? Se funcionou, parabéns! Já fizemos um bom progresso na criação e uso de classes em C++. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Exceções e Tratamentos de Erros |
Exceções e Tratamentos de Erros - Exercícios Resolvidos de Java - Ex. 1 - Forçando o usuário a informar dois inteiros válidos antes de efetuar sua somaQuantidade de visualizações: 2612 vezes |
Pergunta/Tarefa: Escreva um programa Java que usa tratamento de erros try...catch para forçar o usuário a informar dois valores inteiros válidos antes de tentar somá-los. Caso o usuário informe um ou os dois valores inválidos, o programa deverá exibir uma mensagem de erro e solicitar os valores novamente. Sua saída deverá ser parecida com: Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); boolean validos = false; // para verificar se os valores são inteiros válidos int n1, n2, soma; // solicita que o usuário informe os dois valores while(!validos){ try { System.out.print("Informe o primeiro valor: "); n1 = Integer.parseInt(entrada.nextLine()); // tenta fazer a conversão System.out.print("Informe o segundo valor: "); n2 = Integer.parseInt(entrada.nextLine()); // tenta fazer a conversão // se chegou até aqui é porque não houve erros na conversão, ou seja, o usuário // informou inteiros válidos soma = n1 + n2; System.out.println("A soma dos valores é: " + soma); validos = true; } catch (Exception ex) { // houve erro na conversão? System.out.println("Dados inválidos: " + ex.toString()); System.out.println("Por favor, informe os dois números novamente"); } } } } |
PHP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
PHP para iniciantes - Como usar a usar o laço do...while em PHP - Como usar o laço do...while da linguagem PHPQuantidade de visualizações: 14070 vezes |
O laço do...while, ou loop do...while (faça...enquanto) da linguagem PHP é bem parecido com o laço while (enquanto). A diferença é que no do...while, a condição é testada no final da primeira iteração, o que garante que o laço será executado no mínimo uma vez. Veja um exemplo de seu uso:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <? $valor = 1; do{ echo $valor . "<br>"; $valor++; }while($valor <= 10); ?> Este laço exibirá o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 Lembre-se que o teste de continuidade do laço do...while ocorre no final da primeira iteração, enquanto no laço while(), o teste de continuidade ocorre antes da primeira iteração. Dica revisada, atualizada e testada no PHP 8. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Vetores e Matrizes - Exercícios Resolvidos de C - Declarar um vetor de 10 elementos, usar um laço for para inicializar os elementos e exibí-los na verticalQuantidade de visualizações: 14909 vezes |
Vetores e Matrizes - Exercício Resolvido de C - Declarar um vetor de 10 elementos, usar um laço for para inicializar os elementos e exibí-los na vertical Pergunta/Tarefa: Escreva um programa C que declara um vetor de 10 elementos do tipo int. Em seguida use um laço for para inicializar os elementos com os valores de 1 até 10. Para finalizar exiba os valores dos elementos da matriz na vertical. Seu programa deverá exibir a seguinte saída: 1 2 3 4 5 6 7 8 9 10 Resposta/Solução: A resolução desta tarefa passa pela declaração da matriz. Veja como isso pode ser feito: // vamos declarar uma matriz de 10 ints // neste momento seus elementos terão, todos, // valores aleatórios int valores[10]; Veja a resolução completa do exercício: ---------------------------------------------------------------------- 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> int main(int argc, char *argv[]) { // vamos declarar uma matriz de 10 ints // neste momento seus elementos terão, todos, // valores aleatórios int valores[10]; int i; // vamos usar o laço for para inicializar seus elementos // com os valores de 1 até 10 for(i = 0; i < 10; i++){ // aqui nós usamos o valor da variável i para acessar o // elemento da matriz e também para atribuir o valor de i + 1 // ao elemento sendo acessado valores[i] = (i + 1); } // só nos resta exibir os valores de todos os elementos for(i = 0; i < 10; i++){ printf("%d\n", valores[i]); } system("PAUSE"); return 0; } |
Python ::: Pandas Python Library (Biblioteca Python Pandas) ::: DataFrame |
Como retornar a quantidade de linhas em um DataFrame do Pandas usando a função len() e a propriedade indexQuantidade de visualizações: 1634 vezes |
Podemos tirar proveito da função len() do Python e da propriedade index do DataFrame do Pandas para contarmos as linhas do DataFrame. Lembre-se de que a propriedade index representa os rótulos das linhas. 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) ---------------------------------------------------------------------- # importamos a biblioteca Pandas import pandas as pd def main(): # vamos carregar os dados do arquivo .csv df = pd.read_csv("C:\\estudos_python\\carros.csv", delimiter=";") # vamos mostrar o DataFrame resultante print("Os dados do DataFrame são:\n") print(df) # agora vamos retornar a quantidade de linhas no DataFrame quant_linhas = len(df.index) # e mostramos o resultado print("\nO DataFrame contém {0} linhas".format(quant_linhas)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Os dados do DataFrame são: Marca Modelo Ano Valor Vendido 0 Fiat Sienna 2010.0 23500.0 S 1 Volkswagen Polo NaN 31453.0 N 2 Volkswagen NaN 2001.0 19200.0 S 3 Fiat Palio 1995.0 7500.0 S 4 Honda Civic NaN 42000.0 S 5 Renault Sandero 2010.0 52000.0 N 6 Ford Focus 2009.0 42700.0 N O DataFrame contém 7 linhas |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
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 |