Você está aqui: Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como acessar variáveis de instâncias para escrita em Ruby sem a necessidade de métodos mutatórios usando a função attr_accessorQuantidade de visualizações: 6930 vezes |
Por padrão, variáveis de instância em Ruby só podem ser acessadas para escrita usando métodos mutatórios, ou seja, uma variável de instância @nome deve ser modificada usando um método definir_nome. É possível dispensar o uso de métodos mutatórios empregando o método attr_accessor nos nomes das variáveis que poderão ser acessadas e modificadas. Lembre-se que, ao contrário de attr_reader, o método attr_accessor possibilita o acesso à variável de instância tanto para leitura quanto para escrita. 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_accessor :nome, :idade def initialize(nome, idade) @nome = nome @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 # Modifica as variáveis de instância sem a necessidade # de métodos mutatórios cliente.nome = "Carlos da Silva" cliente.idade = 56 # Obtém os resultados puts cliente.nome puts cliente.idade Se tentarmos acessar e modificar as variáveis nome e idade diretamente, sem os métodos mutatórios e a função attr_accessor nós teremos um erro do tipo: Traceback (most recent call last): estudos.arb:15:in `<main>': undefined method `nome' for #<Cliente:0x0000029a7211f080 @nome="Osmar J. Silva", @idade=35> (NoMethodError) |
Link para compartilhar na Internet ou com seus amigos: |
C# ::: Coleções (Collections) ::: List<T> |
Como inserir um novo elemento em uma posição N de uma List<T> do C# usando a função Insert()Quantidade de visualizações: 8785 vezes |
Em algumas situações gostaríamos de inserir um novo elemento em uma determinada posição de uma List<T>, ou seja, queremos ser capazes de inserir o novo elemento em qualquer posição, e não somente no final da lista. Para isso podemos usar o método Insert(). Veja sua assinatura:public void Insert( int index, T item ) ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- static void Main(string[] args){ // vamos criar um objeto da classe List<T> List<int> valores = new List<int>(); // vamos inserir quatro valores na lista valores.Add(5); valores.Add(2); valores.Add(6); valores.Add(9); // vamos usar o laço foreach para percorrer os elementos na lista Console.WriteLine("Elementos na lista:"); foreach(int v in valores){ Console.WriteLine(v); } // vamos inserir um novo elemento no índice 2 valores.Insert(2, 20); // vamos usar o laço foreach para percorrer os elementos na lista novamente Console.WriteLine("Elementos na lista:"); foreach(int v in valores){ Console.WriteLine(v); } // vamos pausar a execução Console.ReadKey(); } Ao executarmos este código teremos o seguinte resultado: Elementos na lista: 5 2 6 9 Elementos na lista: 5 2 20 6 9 Este método pode lançar uma exceção do tipo ArgumentOutOfRangeException se o índice fornecido for menor que 0 ou superior à quantidade de itens na lista. |
PHP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Apostila PHP para iniciantes - Como criar um laço while infinito em PHPQuantidade de visualizações: 9928 vezes |
Um laço while() infinito pode ser criado em PHP simplesmente fornecendo o valor true para a condição do laço. Neste caso é preciso que você forneça uma forma de parar o laço, ou o script continuará executando até atingir seu tempo tempo máximo de execução, e um erro será exibido na página. Veja um trecho de código exemplificando o uso de um laço while infinito:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <? $valor = 5; while(true){ echo $valor . "<br>"; $valor++; if($valor > 10) break; // pára o laço } ?> |
Java ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em Java - Como inserir nós no início de uma lista singularmente ligada em JavaQuantidade de visualizações: 9942 vezes |
Esta dica mostra como inserir nós no início de uma lista singularmente ligada. A classe usada para representar cada nó é a seguinte (No.java):---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // classe No public class No{ public int valor; public No proximo; } // fim da classe No Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no início quanto a exibição dos nós são feitas usando métodos. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código para a lista singularmente ligada (Lista.java): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Lista{ No inicio; // início da lista // método que permite exibir os valores de // todos os nós da lista public void exibir(){ if(inicio != null){ do{ System.out.println(inicio.valor); inicio = inicio.proximo; }while(inicio != null); } else System.out.println("A lista esta vazia\n\n"); } // método que permite inserir nós no // início da lista. // veja que o método recebe o valor a ser // armazenado em cada nó public void inserirInicio(int v){ No novo; // verifica se a lista está vazia if(inicio == null){ // reserva memória para o novo nó inicio = new No(); inicio.valor = v; // é o primeiro nó...não deve apontar para // lugar nenhum inicio.proximo = null; } else{ // não está vazia....vamos inserir o nó no início // vamos criar um novo nó agora novo = new No(); // atribui o valor do nó novo.valor = v; // define o inicio da lista como campo proximo // do novo nó novo.proximo = inicio; // o novo nó é o início da lista agora inicio = novo; } } } Compile as classes No.java e Lista.java e vamos escrever um aplicativo de teste (TesteLista.java): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class TesteLista{ public static void main(String args[]){ // vamos criar uma nova lista Lista lista = new Lista(); // vamos inserir quatro valores no // início da lista lista.inserirInicio(45); lista.inserirInicio(3); lista.inserirInicio(98); lista.inserirInicio(17); // exibe os valores na lista lista.exibir(); System.exit(0); } } |
R ::: Dicas & Truques ::: Matemática e Estatística |
R para Matemática e Estatística - Como calcular desvio padrão usando a função sd() da linguagem RQuantidade de visualizações: 1544 vezes |
Em Matemática e Estatística, o Desvio Padrão (em inglês: Standard Deviation) é uma medida de dispersão, ou seja, é uma medida que indica o quanto um conjunto de dados é uniforme. Quando o desvio padrão é baixo, isso quer dizer que os dados do conjunto estão mais próximos da média. Como calcular o desvio padrão de um conjunto de dados? Vamos começar analisando a fórmula mais difundida na matemática e na estatística: \[\sigma = \sqrt{ \frac{\sum_{i=1}^N (x_i -\mu)^2}{N}}\] Onde: a) __$\sigma__$ é o desvio; b) __$x_i__$ é um valor qualquer no conjunto de dados na posição i; c) __$\mu__$ é a média aritmética dos valores do conjunto de dados; d) N é a quantidade de valores no conjunto. O somatório dentro da raiz quadrada nos diz que devemos somar todos os elementos do conjunto, desde a posição 1 até a posição n, subtrair cada valor pela média do conjunto e elevar ao quadrado. Obtida a soma, nós a dividimos pelo tamanho do conjunto. Porém, se usarmos a linguagem R, todos estes cálculos se tornam desnecessários, pois temos a função sd(), que recebe uma lista de valores numéricos e retorna o desvio padrão correspondente. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- > valores <- c(10, 30, 90, 30) [ENTER] > desvio_padrao <- sd(valores) [ENTER] > paste("O desvio padrão é:", desvio_padrao) [ENTER] [1] "O desvio padrão é: 34.6410161513775" > Ao executar estes comandos R nós teremos o seguinte resultado: O desvio padrão é: 34.6410161513775 Note que a função sd() da linguagem R retorna o Desvio Padrão Populacional, e não o Desvio Padrão Amostral. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Apostila Delphi para iniciantes - Como acessar os caracteres de uma string individualmenteQuantidade de visualizações: 17481 vezes |
Em algumas situações pode ser necessário acessar os caracteres de uma palavra, frase ou texto individualmente. Em Delphi isso pode ser feito usando-se a indexação de matrizes. Tenha em mente, porém, que o índice em Delphi começa em 1 e não 0, como na maioria das linguagens. Veja um trecho de código no qual acessamos o primeiro caractere de uma string: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var nome: string; letra: Char; begin nome := 'Osmar J. Silva'; // vamos obter a primeira letra letra := nome[1]; // vamos exibir o resultado ShowMessage('A primeira letra é: ' + letra); end; Veja outro exemplo, no qual usamos um laço for para visitar cada um dos caracteres e exibí-lo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var nome: string; letra: Char; i: integer; begin nome := 'Osmar'; for i := 1 to Length(nome) do begin letra := nome[i]; ShowMessage('O ' + IntToStr(i) + 'º caractere é: ' + letra); end; end; Assim como acessamos os caracteres individuais de uma string para leitura, podemos fazê-lo também para alterações. Veja um trecho de código no qual trocamos o terceiro caractere de uma string: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var nome: string; begin nome := 'Osmar'; // vamos alterar o terceiro caractere nome[3] := 'K'; ShowMessage(nome); end; Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
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 |