Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Como inserir no final de uma lista ligada em Java - Escreva um programa Java que pede para o usuário informar vários - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 674 vezes |
Pergunta/Tarefa: Este exercício Java demonstra como inserir um nó no final de uma lista ligada. Escreva um programa Java que cria uma lista ligada, ou seja, uma lista dinamicamente encadeada, e pede para o usuário informar vários valores inteiros, colocando os valores sempre no final da lista. Seu código deverá interromper a leitura dos valores quando o usuário informar o valor -1. Quando isso acontecer, mostre todos os valores contidos na lista ligada, na mesma ordem que foram inseridos (o último valor lido será o último da lista). Sua saída deve ser parecida com: Inserindo valores no final da lista Informe o valor (-1 para sair): 3 Informe o valor (-1 para sair): 9 Informe o valor (-1 para sair): 1 Informe o valor (-1 para sair): 5 Informe o valor (-1 para sair): 2 Informe o valor (-1 para sair): -1 Valores na lista: 3 -> 9 -> 1 -> 5 -> 2 -> null Veja a resolução comentada deste exercício usando Java: |
![]() |
Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como obter o índice inicial e final de um vetor usando as funções Low() e High() da unit System do DelphiQuantidade de visualizações: 11659 vezes |
Como os índices dos vetores em Delphi, diferente de outras linguagens, nem sempre começam em 0, não podemos deduzir que Length() - 1 retornará o índice final do vetor. Desta forma, podemos usar as funções Low() e High(), ambas presentes na unit System. A função Low() retorna o índice inicial do vetor, enquanto High() retorna o índice final. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm3.Button1Click(Sender: TObject); var valores: array[11..20] of Integer; inicio, fim: Integer; begin // vamos obter o índice inicial do vetor inicio := Low(valores); // vamos obter o índice final da vetor fim := High(valores); // vamos exibir o resultado ShowMessage('O índice inicial do vetor é: ' + IntToStr(inicio)); ShowMessage('O índice final do vetor é: ' + IntToStr(fim)); ShowMessage('O tamanho do vetor é: ' + IntToStr((fim - inicio) + 1)); end; Lembre-se desta dica quando precisar percorrer os elementos de um vetor ou uma matriz usando o laço For da linguagem Delphi. |
HTML5 ::: Aplicativos Completos ::: Programas de desenho, edição e visualização de imagens e fotos |
Como criar um programa de desenho simples usando o objeto Canvas do HTML5Quantidade de visualizações: 5271 vezes |
Revisando alguns códigos que desenvolvi para clientes ao longo desses anos, encontrei um exemplo de um programa de desenho bem simples demonstrando as possibilidades gráficas do elemento Canvas do HTML. Este código foi escrito há uns dois anos e resolvi compartilhar com todos, para que vocês possam aprimorá-lo e acrescentar novas idéias, afinal, o HTML5 está mais atual do que nunca. Veja o resultado no navegador: ![]() Eu o escrevi de forma bem simples, sem usar jQuery ou qualquer outro framework, apenas JavaScript raiz mesmo, de forma que até os estudantes mais iniciantes não terão dificuldade de entender. Veja a listagem completa e com comentários: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Desenhando no canvas do HTML5</title> </head> <body style="padding: 15px"> <b>Clique e arraste para desenhar</b><br><br> <canvas id="quadro" style="border: 1px solid #666" width="600" height="350"></canvas> <br><br><button onClick="limpar()">Limpar</button> <script type="text/javascript"> // obtém uma referência ao canvas var quadro = document.getElementById('quadro'); // vamos obter o contexto de desenho var areaDesenho = quadro.getContext("2d"); // podemos desenhar? var podeDesenhar = false; // ainda não // vetores para guardar as posições x, y, e se o mouse está sendo // movimentado pressionado var vetorX = new Array(); var vetorY = new Array(); var vetorArrastar = new Array(); // agora vamos adicionar na área de desenho um "ouvidor" de // eventos mousedown, ou seja, vamos detectar quando o usuário // pressionar o botão do mouse (sem soltar) quadro.addEventListener('mousedown', function(e){ // podemos iniciar o desenho podeDesenhar = true; registrarClique(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, false); desenhar(); // faça o desenho, moço }); // o "ouvidor" de evento que detecta se o mouse está sendo arrastado // pressionado quadro.addEventListener('mousemove', function(e){ if(podeDesenhar){ registrarClique(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true); desenhar(); // faça o desenho, moço } }); // o "ouvidor" de evento que detecta se o mouse foi liberado // e interrompe o desenho quadro.addEventListener('mouseup', function(e){ podeDesenhar = false; }); // o mouse saiu da área de desenho? quadro.addEventListener('mouseleave', function(e){ podeDesenhar = false; }); function registrarClique(x, y, arrastar){ // aqui nós guardamos em vetores as posições x, y do clique ou // o movimento do mouse pressionado. vetorX.push(x); vetorY.push(y); vetorArrastar.push(arrastar); } // é aqui que a mágica ocorre function desenhar(){ // primeiro vamos limpar o quadro de desenho areaDesenho.clearRect(0, 0, areaDesenho.canvas.width, areaDesenho.canvas.height); areaDesenho.strokeStyle = "#5c5cd6"; // cor areaDesenho.lineJoin = "round"; // formato da junção de linha areaDesenho.lineWidth = 5; // largura da linha // percorremos os vetores, usando como base o vetor de coordenadas x for(var i = 0; i < vetorX.length; i++){ areaDesenho.beginPath(); // inicia o caminho // o mouse foi arrastado neste evento? if((vetorArrastar[i] == true && i > 0)){ areaDesenho.moveTo(vetorX[i - 1], vetorY[i - 1]); } else{ // é o início do desenho areaDesenho.moveTo(vetorX[i] - 1, vetorY[i]); } // desenha a linha do ponto X ao ponto Y areaDesenho.lineTo(vetorX[i], vetorY[i]); // fecha o caminho areaDesenho.closePath(); // conclui de fato o desenho areaDesenho.stroke(); } } // e aqui nós limpamos a área de desenho e esvaziamos os vetores function limpar(){ areaDesenho.clearRect(0, 0, areaDesenho.canvas.width, areaDesenho.canvas.height); vetorX = []; vetorY = []; vetorArrastar = []; } </script> </body> </html> Salve o código como "desenho.html" (cuidado para não salvar como "desenho.html.txt") e abra-o no seu navegador, remoto ou localmente. Você pode começar suas modificações alterando a cor do desenho, a largura da linha, etc. Você pode também deixar figuras pré-configuradas e até permitir que o usuário inclua fotos no Canvas. Para os estudantes que já sabem Node.js, saiba que é possível enviar os três vetores via sockets em um ambiente real time para que outros usuários na rede vejam o seu desenho em tempo real. Bons estudos. |
Python ::: Dicas & Truques ::: Formatação de datas, strings e números |
Python para iniciantes - Como inserir uma determinada quantidade de espaços à direita de uma stringQuantidade de visualizações: 8283 vezes |
Este trecho de código mostra como inserir uma determinada quantidade de espaços à direita de uma string. Esta técnica é muito útil para formatar a saída em tela ou em arquivos. Veja o código completo para a dica: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- def main(): palavra1 = "Estudando" palavra2 = "Python" palavra3 = "C++" palavra4 = "Delphi" print("%-12s %s" % (palavra1, palavra2)) print("%-12s %s" % (palavra3, palavra4)) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: Estudando Python C++ Delphi |
JavaScript ::: DOM (Document Object Model) ::: Eventos JavaScript + DOM (Document Object Model) |
Como usar o evento DOMContentLoaded para verificar se o DOM (Document Object Model) já está disponível para manipulação via JavaScriptQuantidade de visualizações: 1951 vezes |
Em algumas situações nós precisamos iniciar a manipulação dos elementos de uma página HTML a partir de nossos códigos JavaScript mas não sabemos com certeza se os elementos do DOM (Document Object Model) já estão disponíveis para acesso. Para essas situações nós podemos usar o evento DOMContentLoaded, que é disparado quando todo o conteúdo DOM já estiver carregado, mesmo que imagens e folhas de estilo CSS ainda estejam pendentes de carregamento. Vamos ver um exemplo? Considere o código JavaScript abaixo (incluindo o código HTML): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudos PHP</title> <script type="text/javascript"> // vamos obter uma referência ao elemento DIV var divElem = document.getElementById("m_div"); // vamos a cor do texto da DIV divElem.style.color = 'blue'; </script> </head> <body> <div id="m_div">Sou um elemento DIV</div> </body> </html> Veja que temos um elemento DIV na parte <body> do página e, na parte <head> temos um código JavaScript que tenta alterar a cor do texto da DIV. Como já era de se esperar, ao abrirmos este documento HTM no navegador, teremos o seguinte erro: Uncaught TypeError: Cannot read property 'style' of null at index.html:9 Isso aconteceu porque o código JavaScript foi executado antes que o elemento DIV fosse inserido no DOM da página. Para evitar isso, só precisamos usar o evento DOMContentLoaded. Veja a nova versão do código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudos PHP</title> <script type="text/javascript"> // vamos tratar o evento DOMContentLoaded document.addEventListener('DOMContentLoaded', function(e){ // vamos obter uma referência ao elemento DIV var divElem = document.getElementById("m_div"); // vamos a cor do texto da DIV divElem.style.color = 'blue'; }); </script> </head> <body> <div id="m_div">Sou um elemento DIV</div> </body> </html> Agora execute o exemplo novamente e veja como o texto do elemento DIV é colorido de azul, uma boa indicação de que o evento DOMContentLoaded foi disparado com sucesso. Note ainda como usamos o método addEventListener() do objeto document para fazer a associação do evento. |
Ruby ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como adicionar itens ao final de um array em Ruby usando a função push()Quantidade de visualizações: 7733 vezes |
Em algumas situações nós precisamos adicionar novos elementos ao final de um array em Ruby. Para isso nós podemos usar a função push() do objeto Array. Veja como isso pode ser feito no código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos criar um array de nomes nomes = [] # Lê entrada até que o valor -1 seja # fornecido loop do print "Digite um nome (-1 para sair): " nome = gets.chomp # vamos adicionar este nome no final do # array if nome != "-1" nomes.push(nome) # adiciona o nome ao array end # vamos sair do laço se o valor for "-1" if nome == "-1" break end end # Exibe todos os valores do array puts "\nOs nomes fornecidos foram:" nomes.each do | nome | puts nome end Ao executar este código Ruby nós teremos o seguinte resultado: Digite um nome (-1 para sair): MARCELO Digite um nome (-1 para sair): JOANA Digite um nome (-1 para sair): OSMAR Digite um nome (-1 para sair): JAQUELINE Digite um nome (-1 para sair): -1 Os nomes fornecidos foram: MARCELO JOANA OSMAR JAQUELINE |
Desafios, Exercícios e Algoritmos Resolvidos de Ruby |
Veja mais Dicas e truques de Ruby |
Dicas e truques de outras linguagens |
C# - Como testar se uma string é null ou vazia em C# usando a função IsNullOrEmpty() da classe String JavaScript - Como construir uma determinada data e hora usando o construtor do objeto Date do JavaScript |
Quem Somos |
![]() Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
![]() Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |
Códigos Fonte |
![]() 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 |
![]() 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 |