Ruby ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Ruby - Como percorrer os elementos de um array em Ruby usando a função eachQuantidade de visualizações: 598 vezes |
Pergunta/Tarefa: Dado o seguinte array de int: # vamos criar um array com 5 elementos valores = [8, 3, 10, 4, 7] Sua saída deverá ser parecida com: 8 3 10 4 7 Veja a resolução comentada deste exercício usando Ruby: # vamos criar um array com 5 elementos valores = [8, 3, 10, 4, 7] # vamos usar a função each para percorrer # os itens do array e exibir seus valores valores.each { | valor | print valor.to_s + " " } Veja agora essa mesma resolução usando uma pequena variação, dessa vez usando each...do: # vamos criar um array com 5 elementos valores = [8, 3, 10, 4, 7] # vamos usar a função each para percorrer # os itens do array e exibir seus valores valores.each do | valor | print valor.to_s + " " end |
Python ::: wxPython ::: Controles Visuais Básicos do wxPython |
Como usar a função GetDefaultSize() para obter o tamanho padrão dos botões wx.Button em uma determinada plataforma e um determinado tamanho de fonteQuantidade de visualizações: 6514 vezes |
Quando estamos escrevendo interfaces wxPython para múltiplas plataformas, é interessante usar o método GetDefaultSize() para obter as dimensões padrão dos botões. Isso permite que o próprio sistema determine o tamanho dos botões baseado no tamanho da fonte usada. Este método retorna um objeto da classe wx.Size e as dimensões podem ser obtidas com o auxílio das propriedades width (largura) e height (altura). Veja um exemplo wxPython completo: # vamos importar a biblioteca wxPython import wx class Janela(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, "Usando wx.Button", size=(350, 200)) # Cria um painel panel = wx.Panel(self) # Cria um botão e o adiciona no painel self.btn = wx.Button(panel, label="Clique Aqui", pos=(10, 10), size=(100, 25)) # Anexa um evento ao botão self.Bind(wx.EVT_BUTTON, self.OnBtnClick, self.btn) # Método que será chamado ao clicar o botão def OnBtnClick(self, event): # obtém o tamanho padrão dos botões # nesta plataforma dimensoes = self.btn.GetDefaultSize() dlg = wx.MessageDialog(None, u"A largura padrão é: " + str(dimensoes.width) + u" pixels e a altura " + u"padrão é: " + str(dimensoes.height) + " pixels", "Usando wx.Button", wx.OK | wx.ICON_INFORMATION) result = dlg.ShowModal() dlg.Destroy() if __name__ == "__main__": app = wx.App() janela = Janela() janela.Show(True) app.MainLoop() |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de C++ - Escreva um programa em C++ para ler dois números inteiros M e N e, a seguir, imprimir os números paresQuantidade de visualizações: 632 vezes |
Pergunta/Tarefa: Escreva um programa em C++ para ler dois números inteiros M e N e, a seguir, imprimir os números pares existentes no intervalo [M, N] e imprimir a multiplicação desses números (os pares). Observe que os valores M e N devem ser fornecidos pelo usuário. Nota: por se tratar de intervalo fechado [M, N], os números M e N devem ser incluídos na amostra. Além disso, seu código deve assegurar que M seja menor que N. Sua saída deverá ser parecida com: Informe o valor de M: 3 Informe o valor de N: 9 Números pares no intervalo [M, N]: 4, 6, 8, Multiplicação dos números pares no intervalo [M, N]: 192 Veja a resolução comentada deste exercício em C++: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int m, n, i, multiplicacao = 1; // vamos pedir para o usuário informar os valores de M e N cout << "Informe o valor de M: "; cin >> m; cout << "Informe o valor de N: "; cin >> n; // M é menor que N? if(m >= n){ cout << "M deve ser menor que N"; } else{ // mostra os números pares no intervalo cout << "Números pares no intervalo [M, N]: "; for(i = m; i <= n; i++){ if(i % 2 == 0){ cout << i << ", "; // aproveitamos para calcular a multiplicação dos números // pares no intervalo informado multiplicacao = multiplicacao * i; } } // mostramos a multiplicação cout << "\nMultiplicação dos números pares no intervalo [M, N]: " << multiplicacao << endl; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
C# ::: Dicas & Truques ::: Matemática e Estatística |
Como resolver uma equação do segundo grau em C# - Como calcular Bhaskara em C#Quantidade de visualizações: 1465 vezes |
Como resolver uma equação do 2º grau usando C# Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem C#. Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita. Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0. Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente. Como resolver uma equação do 2º grau Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns: a) Fórmula de Bhaskara; b) Soma e produto. O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa. Como resolver uma equação do 2º grau usando Bhaskara Como nosso código C# vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja: \[\Delta =b^2-4ac\] Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades: a) Se determinante > 0, então a equação possui duas soluções reais. b) Se determinante = 0, então a equação possui uma única solução real. c) Se determinante < 0, então a equação não possui solução real. Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara: \[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\] Vamos agora ao código C#. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação: using System; namespace Estudos { class Principal { static void Main(string[] args) { // os coeficientes double a, b, c; // as duas raizes, a imaginaria e o discriminante double raiz1, raiz2, imaginaria, discriminante; // vamos pedir para o usuário informar os valores dos coeficientes Console.Write("Valor do coeficiente a: "); a = Double.Parse(Console.ReadLine()); Console.Write("Valor do coeficiente b: "); b = Double.Parse(Console.ReadLine()); Console.Write("Valor do coeficiente c: "); c = Double.Parse(Console.ReadLine()); // vamos calcular o discriminante discriminante = (b * b) - (4 * a * c); // a equação possui duas soluções reais? if (discriminante > 0) { raiz1 = (-b + Math.Sqrt(discriminante)) / (2 * a); raiz2 = (-b - Math.Sqrt(discriminante)) / (2 * a); Console.Write("Existem duas raizes: x1 = " + raiz1 + " e x2 = " + raiz2); } // a equação possui uma única solução real? else if (discriminante == 0) { raiz1 = raiz2 = -b / (2 * a); Console.Write("Existem duas raizes iguais: x1 = " + raiz1 + " e x2 = " + raiz2); } // a equação não possui solução real? else if (discriminante < 0) { raiz1 = raiz2 = -b / (2 * a); imaginaria = Math.Sqrt(-discriminante) / (2 * a); Console.Write("Existem duas raízes complexas: x1 = " + raiz1 + " + " + imaginaria + " e x2 = " + raiz2 + " - " + imaginaria); } Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Valor do coeficiente a: 1 Valor do coeficiente b: 2 Valor do coeficiente c: -3 Existem duas raizes: x1 = 1 e x2 = -3 |
GNU Octave ::: Desafios e Lista de Exercícios Resolvidos ::: Pesquisa Operacional |
Exercício Resolvido de Octave - Programação Linear - Um fazendeiro decidiu misturar duas rações, a Ração X e a Ração Y. Cada porção de ração dada aos animaisQuantidade de visualizações: 398 vezes |
Pergunta/Tarefa: Este exercício de Octave aborda o uso da função glpk() para resolver um problema de Pesquisa Operacional usando Programação Linear. 1) Um fazendeiro decidiu misturar duas rações, a Ração X e a Ração Y. Cada porção de ração dada aos animais exige 60g de proteína e 30g de gordura. A Ração X possui 15g de proteína e 10g de gordura, e custa R$ 80,00 a unidade. A Ração Y apresenta 20g de proteína e 5g de gordura e custa R$ 50,00 a unidade. Quanto de cada ração deve ser usada para minimizar os custos do fazendeiro? Sua saída deverá ser parecida com: A solução para o problema de minimização é: x = 2.40 y = 1.20 O custo mínimo é: 252.00 Antes de passarmos ao código Octave, vamos fazer a modelagem matemática do problema. O primeiro passo é identificar as variáveis. Assim, vamos chamar de x o número de unidades da Ração X e de y o número de unidades da Ração Y. Veja: x = Número de unidades da Ração X y = Número de unidades da Ração Y E então temos a função custo: custo = 80x + 50y A primeira restrição diz respeito à quantidade de proteína em cada porção de ração. Sabendo que a Ração X apresenta 15g de proteína e a Ração Y apresenta 20g de proteína nós temos: R1: 15x + 20y >= 60 (proteína) A segunda restrição diz respeito à quantidade de gordura em cada porção de ração. Sabendo que a Ração X apresenta 10g de gordura e a Ração Y apresenta 5g de gordura nós temos: R2: 10x + 5y >= 30 (gordura) As restrições R3 e R4 dizem respeito à não negatividade das variáveis de decisão: R3: x >= 0 R4: y >= 0 Veja agora o código Octave completo (pesquisa_operacional.m): # vamos começar definindo a matriz que representa a função de # minimização c = [80.0, 50.0]'; # agora a matriz de restrições A = [15, 20; 10, 5]; b = [60, 30]'; # as restrições de não negatividade e o limite superior lb = [0, 0]'; ub = []; # definimos as restrições como limites inferiores ctype = "LL"; # indicamos que vamos usar variáveis contínuas (não inteiros) vartype = "CC"; # vamos usar minimização, por isso definimos o valor 1. Se fosse # maximização o valor seria -1 s = 1; # definimos os parâmetros adicionais param.msglev = 1; param.itlim = 100; # e chamamos a função glpk() [xmin, fmin, status, extra] = glpk(c, A, b, lb, ub, ctype, vartype, s, param); # mostramos a solução para o problema de minimização printf("A solução para o problema de minimização é:\n\n"); printf("x = %.2f\n", xmin(1)); printf("y = %.2f\n", xmin(2)); # para finalizar vamos mostrar o custo mínimo printf("\nO custo mínimo é: %.2f\n\n", fmin); Ao executar o código você perceberá que, para minimizar os custos do fazendeiro, deverão ser usados na mistura 2,4 unidades da Ração X e 1,2 unidades da Raça Y, a um custo mínimo de R$ 252,00. |
CSS ::: Dicas & Truques ::: Barras de Navegação, Menus e Dropdowns |
Como criar uma barra de navegação horizontal com menu dropdown em HTML e CSS - Menu suspenso usando CSSQuantidade de visualizações: 882 vezes |
Nesta dica mostrarei como podemos usar uma combinação de várias propriedades CSS para criar um menu suspenso, ou seja, uma barra de navegação contendo links normais e também links que, ao passar o mouse, exibe uma lista de sub-menus. O código apresentado neste exemplo é muito útil para estudantes de HTML e CSS, pois apresenta várias propriedades interessantes para melhorar o visual e a usabilidade de suas páginas web. Entre as propriedades CSS usadas na criação deste menu suspenso nós podemos citar overflow, margin, padding, list-style-type, background-color, display, float, text-align, text-decoration, position, min-width e z-index. Note que coloquei o mínimo de código para fazer a barra de menus funcional. Fique à vontade para acrescentar as formatações que você achar interessante. Veja a página HTML e CSS para o exemplo: <!doctype html> <html> <head> <title>Estudos CSS</title> <style> /* estiliza o elemento <ul> */ ul{ background-color: #e0e0e0; margin: 0; padding: 0; overflow: hidden; list-style-type: none; } /* aplica estilo aos elementos <li> */ li{ float: left; } /* aplica estilo aos links e <li> do sub-menu */ li a, .dropdown_linguagens{ display: inline-block; text-align: center; padding: 10px 15px; text-decoration: none; } /* define o display do <li> de linguagens */ li.linguagens{ display: inline-block; } /* aplica estilo ao menu de linguagens */ .menus_linguagens{ display: none; position: absolute; background-color: #eceff1; min-width: 160px; z-index: 1; } /* aplica estilo aos links do sub-menu */ .menus_linguagens a { padding: 10px 15px; text-decoration: none; display: block; text-align: left; } /* exibe o sub-menu ao passar o mouse */ .linguagens:hover .menus_linguagens{ display: block; } /* aplica uma cor diferente aos menus ao passar o mouse */ .menus_linguagens a:hover{ background-color: #cfd8dc; } </style> </head> <body> <h1>Exemplo de Barra de Navegação com Menu Dropdown</h1> <ul> <li><a href="index.php">Inicial</a></li> <li class="linguagens"> <a href="javascript:void(0)" class="dropdown_linguagens"> Linguagens</a> <div class="menus_linguagens"> <a href="java.php">Java</a> <a href="python.php">Python</a> <a href="ruby.php">Ruby</a> <a href="delphi.php">Delphi</a> </div> </li> </ul> </body> </html> |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como transformar em letras maiúsculas as iniciais de cada palavra em uma string C# usando o método ToTitleCase() da classe TextInfoQuantidade de visualizações: 14023 vezes |
O método ToTitleCase() da classe TextInfo da linguagem C# nos permite converter para letras maiúsculas as inicias de cada uma das palavras que compoem uma frase ou texto. Esta técnica é muito útil quando estamos trabalhando com o processamento de strings em C#. Veja um exemplo completo do uso dessa função: using System; using System.Globalization; namespace Estudos { class Program { static void Main(string[] args) { string frase = "gosto de java e c#"; Console.WriteLine("Frase original: " + frase); // vamos converter cada letra inicial para maiúsculas frase = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(frase); Console.WriteLine("Depois do método ToTitleCase(): " + frase); Console.WriteLine("\n\nPressione qualquer tecla para sair..."); // pausa o programa Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Frase original: gosto de java e c# Depois do método ToTitleCase(): Gosto De Java E C# |
JavaScript ::: DOM (Document Object Model) ::: Navegação e Pesquisa de Nós (Nodes) |
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScriptQuantidade de visualizações: 8374 vezes |
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScript A propriedade nodeType, definida no World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1, pode ser usada quando precisamos obter o tipo de um determinado nó (node) na hierarquia de elementos HTML no DOM (Document Object Model). Esta propriedade retorna um valor inteiro indicando o tipo de nó sendo testado. Os valores mais comuns são 1 (nó elemento) e 3 (nó texto). Veja uma página HTML na qual temos um parágrafo e um elemento span. Na primeira vez nós vamos obter uma referência ao parágrafo e testar o tipo do nó. Na segunda vez nós obtemos uma referência ao primeiro nó filho do elemento span, o que resultará em seu conteúdo sendo testado. Veja: <html> <head> <title>Estudos JavaScript</title> <script type="text/javascript"> function obterNodeType(){ // vamos obter uma referência ao parágrafo com o id "paragrafo" var elem = document.getElementById("paragrafo"); // vamos obter o tipo de nó deste elemento var tipo = elem.nodeType; // vamos mostrar o resultado window.alert("O tipo deste elemento é: " + tipo); // vamos obter uma referência ao span com o id "frase" elem = document.getElementById("frase"); // vamos obter o tipo de nó do primeiro filho deste elemento tipo = elem.firstChild.nodeType; // vamos mostrar o resultado window.alert("O tipo deste elemento é: " + tipo); } </script> </head> <body> <p id="paragrafo">Sou um parágrafo</p> <span id="frase">Veja esta frase</span> <br><button onclick="obterNodeType()">Obter tipo do nó (nodeType)</button> </body> </html> Note que esta propriedade é somente-leitura, ou seja, não podemos modificar seu valor em tempo de execução. A propriedade nodeType pode ser obtida a partir dos seguintes elementos: a, abbr, acronym, address, applet, area, b, base, basefont, bdo, bgsound, big, blink, blockquote, body, br, button, caption, center, cite, code, col, colgroup, comment, dd, del, dfn, dir, div, dl, dt, em, embed, fieldset, font, form, frame, frameset, h1, h2, h3, h4, h5, h6, head, hr, html, i, iframe, img, input:button, input:checkbox, input:file, input:hidden, input:image, input:password, input:radio, input:range, input:reset, input:search, input:submit, input:text, ins, isindex, kbd, keygen, label, legend, li, link, listing, map, marquee, menu, meta, nobr, noframes, noscript, object, ol, optgroup, option, p, param, plaintext, pre, q, rt, ruby, s, samp, script, select, small, span, strike, strong, style, sub, sup, table, tbody, td, textarea, tfoot, th, thead, title, tr, tt, u, ul, var, wbr, xml e xmp. Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6. |
C++ ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em C++ - Como criar e usar métodos estáticos em suas classes C++Quantidade de visualizações: 14834 vezes |
Como já vimos em outras dicas desta seção, uma classe C++ possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:// definição da classe Produto class Produto{ public: void setNome(string); string getNome(); void setPreco(double); double getPreco(); private: string nome; double preco; }; Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância. Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma. Métodos estáticos em C++ podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo: #include <cstdlib> #include <iostream> #include <string> using namespace std; // classe Pessoa com duas variáveis privadas e // um método estático class Pessoa{ public: // um método estático que permite verificar a validade // de um número de CPF static bool isCPFValido(string); private: string nome; int idade; }; // implementação da classe Pessoa bool Pessoa::isCPFValido(string cpf){ // alguns cálculos aqui return true; } int main(int argc, char *argv[]){ // vamos efetuar uma chamada ao método isCPFValido() sem // criar uma instância da classe Pessoa if(Pessoa::isCPFValido("12345")){ cout << "CPF Válido" << endl; } else{ cout << "CPF inVálido" << endl; } system("PAUSE"); return EXIT_SUCCESS; } Aqui nós temos os códigos da definição e implementação da classe Pessoa em apenas um arquivo (main.cpp). Em uma aplicação real é interessante colocar estas partes em arquivos separados (.h e .cpp). Note que o método estático isCPFValido() foi declarado assim: static bool isCPFValido(string); Desta forma, podemos chamá-la a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja: if(Pessoa::isCPFValido("12345")){} É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo: bool Pessoa::isCPFValido(string cpf){ // alguns cálculos aqui // vamos acessar a variável não estática nome nome = "Osmar J. Silva"; return true; } vai gerar o seguinte erro de compilação: invalid use of member `Pessoa::nome' in static member function. Se usarmos this->nome a mensagem de erro de compilação será: `this' is unavailable for static member functions. Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Exercícios Resolvidos de Java - Como inserir no início de uma lista ligada em Java - Escreva um programa Java que pede para o usuário informar váriosQuantidade de visualizações: 727 vezes |
Pergunta/Tarefa: Este exercício Java demonstra como inserir um nó no início 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 início 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 primeiro da lista). Sua saída deve ser parecida com: Inserindo valores no início da lista Informe o valor (-1 para sair): 8 Informe o valor (-1 para sair): 2 Informe o valor (-1 para sair): 5 Informe o valor (-1 para sair): 7 Informe o valor (-1 para sair): -1 Valores na lista: 7 -> 5 -> 2 -> 8 -> null Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; // classe interna usada para representar um // nó na lista ligada class No { int valor; // valor do nó No proximo; // aponta para o novo nó // construtor da classe No No(int valor, No proximo) { this.valor = valor; this.proximo = proximo; } } public class Estudos { public static void main(String args[]){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos criar uma referência para o início da lista No inicio = null; // agora vamos pedir para o usuário informar // valores inteiros. O valor -1 sai do laço int valor; System.out.println("Inserindo valores no início da lista\n"); do { System.out.print("Informe o valor (-1 para sair): "); valor = Integer.parseInt(entrada.nextLine()); if (valor != -1) { inicio = inserirInicio(inicio, valor); } } while(valor != -1); // vamos exibir os valores na lista ligada System.out.print("\nValores na lista: "); exibirLista(inicio); } // função que permite adicionar um nó no início da // lista ligada public static No inserirInicio(No inicio, int valor) { // vamos apontar para o nó inicial No atual = inicio; // criamos um novo nó No novo = criarNo(valor); // a lista ligada ainda está vazia? if (atual == null){ // inicio recebe o novo nó inicio = novo; } else { // temos um ou mais nós na lista ligada // vamos inserir este nó antes do nó que // representa o início da lista novo.proximo = inicio; inicio = novo; } // e retornamos o início da lista return inicio; } // função usada para construir e retornar um novo nó public static No criarNo(int valor) { // cria o novo nó No no = new No(valor, null); // retorna o nó criado return no; } // função usada para percorrer a lista ligada e // exibir os valores contidos em seus nós public static void exibirLista(No inicio) { // vamos apontar para o início da lista No temp = inicio; // a lista está vazia? if (temp == null) { System.out.println("A lista está vazia."); } else { // esse laço se repete enquanto tempo for // diferente de null while (temp != null) { // vamos mostrar o valor desse nó System.out.print(temp.valor + " -> "); // avança para o próximo nó temp = temp.proximo; } // mostra o final da lista System.out.println("null"); } } } |
Nossas 20 dicas & truques de programação mais populares |
Java - Como calcular a velocidade de um corpo dado sua massa e sua energia cinética usando a linguagem Java Revit C# - Como criar eixos no Revit via programação usando a função Create() da classe Grid da Revit C# API |
Você também poderá gostar das dicas e truques de programação abaixo |
VB.NET - Como adicionar horas à data e hora atual em VB.NET usando a função AddHours() da classe DateTime |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |