Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Pilhas |
Escreva um programa Java que cria uma classe Pilha usando um array de inteiros como armazenagem interna - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 370 vezes |
Pergunta/Tarefa: Escreva um programa Java que cria uma classe Pilha usando um array de inteiros como armazenagem interna. No construtor da classe você deverá permitir ao usuário informar o tamanho desse vetor interno. Forneça as funcionalidades padrão de uma pilha, a saber: empilhar um novo elemento, desempilhar o elemento no topo da pilha, retornar o elemento do topo sem removê-lo, exibir o conteúdo da pilha e verificar se ela está ou não vazia. Sua saída deverá ser parecida com: Pilha vazia: true Inseri os valores 3, 6 e 8 na pilha, nessa ordem Elementos na pilha: 8 6 3 Topo da pilha: 8 Elemento desempilhado: 8 Elementos na pilha: 6 3 Veja a resolução comentada deste exercício usando Java: Primeiro vamos analisar o código para a classe Pilha.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Pilha { private int vetor[]; // vetor que guarda os elementos da pilha private int topo; // elemento no topo da pilha // construtor da classe public Pilha(int tamanho) { // alocamos memória para o vetor interno da pilha vetor = new int[tamanho]; // e ajustamos o topo como vazia topo = -1; } // método para empilhar um novo valor na pilha public void empilhar(int valor) { // a pilha já está cheia? if (topo == vetor.length - 1) { System.out.println("\nA pilha está cheia\n"); } else { // incrementa o ponteiro do topo topo++; // e guarda o novo valor no topo da pilha vetor[topo] = valor; } } // método para desempilhar e retornar o elemento // no topo da plha public int desempilhar() { // a pilha está vazia? if (topo == -1) { System.out.println("\nPilha vazia\n"); return -1; } else { // obtém o elemento no topo da pilha int elementoRemovido = vetor[topo]; // decrementa a variável de topo topo--; // e retorna o elemento removido return elementoRemovido; } } // retorna o elemento no topo da pilha sem // removê-lo public int topoPilha() { // a pilha está vazia? if (topo == -1) { System.out.println("\nPilha vazia\n"); return -1; } else { // retorna o elemento no topo, mas não remove return vetor[topo]; } } // método para verificar se a pilha está vazia public boolean pilhaVaiza() { return topo == -1; } // exibe os elementos na pilha public void exibirPilha() { // a pilha está vazia? if (topo == -1) { System.out.println("\nPilha vazia\n"); } else { System.out.print("Elementos na pilha: "); for (int i = topo; i >= 0; i--) { System.out.print(vetor[i] + " "); } System.out.println(); } } } Agora veja o código para a classe Estudos.java, que nos permite testar a nossa classe Pilha: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Estudos { public static void main(String[] args) { // Vamos criar uma nova pilha Pilha pilha = new Pilha(10); // a pilha está vazia? System.out.println("Pilha vazia: " + pilha.pilhaVaiza()); // vamos inserir 3 elementos na pilha System.out.println("Inseri os valores 3, 6 e 8 na pilha, nessa ordem"); pilha.empilhar(3); pilha.empilhar(6); pilha.empilhar(8); // vamos exibir o conteúdo da pilha pilha.exibirPilha(); // vamos mostrar o topo da pilha System.out.println("Topo da pilha: " + pilha.topoPilha()); // vamos desempilhar um elemento da pilha System.out.println("Elemento desempilhado: " + pilha.desempilhar()); // vamos exibir o conteúdo da pilha novamente pilha.exibirPilha(); } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Escreva um programa Java para calcular e imprimir o número de lâmpadas necessáriasQuantidade de visualizações: 295 vezes |
Pergunta/Tarefa: Escreva um programa Java para calcular e imprimir o número de lâmpadas necessárias para iluminar um determinado cômodo de uma residência. Dados de entrada: a potência da lâmpada utilizada (em watts), as dimensões (largura e comprimento, em metros) do cômodo. Considere que a potência necessária é de 18 watts por metro quadrado. Sua saída deverá ser parecida com: Informe a potência da lâmpada (em watts): 100 Informe a largura do cômodo (em metros): 6 Informe o comprimento do cômodo (em metros): 4 Serão necessárias 4 lâmpadas. Veja a resolução completa para o exercício em Java, comentada linha a linha: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // Como calcular o número de lâmpadas necessárias package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double potencia_lampada, largura_comodo, comprimento_comodo; double area_comodo, potencia_total; int quant_lampadas; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler a potência da lâmpada System.out.print("Informe a potência da lâmpada (em watts): "); potencia_lampada = Double.parseDouble(entrada.nextLine()); // vamos ler a largura do cômodo System.out.print("Informe a largura do cômodo (em metros): "); largura_comodo = Double.parseDouble(entrada.nextLine()); // agora vamos ler o comprimento do cômodo System.out.print("Informe o comprimento do cômodo (em metros): "); comprimento_comodo = Double.parseDouble(entrada.nextLine()); // agora vamos calcular a área do cômodo area_comodo = largura_comodo * comprimento_comodo; // calculamos a potência total necessária para iluminar // todo o cômodo potencia_total = area_comodo * 18; // e finalmente calculamos a quantidade de lâmpadas necessárias quant_lampadas = (int)(potencia_total / potencia_lampada); // será necessário no mínimo uma lâmpada if (quant_lampadas == 0) { quant_lampadas = quant_lampadas + 1; } // e mostramos o resultado System.out.println("Serão necessárias " + quant_lampadas + " lâmpadas."); } } |
Java ::: Coleções (Collections) ::: Vector |
Como copiar todos os elementos de um Vector Java para um arrayQuantidade de visualizações: 7949 vezes |
Muitas vezes precisamos obter um array a partir de um Vector. Isso pode ser feito usando-se o método copyInto(). Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public void copyInto(Object[] anArray) Veja que os elementos do Vector são copiados para as mesmas posições no array. Assim, precisamos ficar atentos. Aqui podemos ter três exceções: NullPointerException (se o array fornecido como argumento for null), IndexOutOfBoundsException (se o array fornecido não for grande o suficiente para acomodar todos os elementos do array) e ArrayStoreException (se o tipo dos elementos do Vector não for de um tipo que pode ser armazenado no array fornecido como argumento). O trecho de código abaixo mostra como copiar todos os elementos de um Vector de String para um array de String: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.*; public class Estudos{ public static void main(String args[]){ // Cria o Vector Vector<String> nomes = new Vector<String>(); // adiciona itens ao Vector nomes.addElement("Osmar"); nomes.addElement("Marcos"); nomes.addElement("Ingrid"); // Cria o array String[] arrayNomes = new String[3]; // copia os elementos do Vector para o array nomes.copyInto(arrayNomes); // Exibe o conteúdo do array for(int i = 0; i < arrayNomes.length; i++){ System.out.println(arrayNomes[i]); } } } Ao executar este código Java nós teremos o seguinte resultado: Osmar Marcos Ingrid |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como listar todo o conteúdo de um diretório usando a função listFiles() da classe File do JavaQuantidade de visualizações: 17308 vezes |
Nesta dica mostrarei como podemos usar o método listFiles() da classe File da linguagem Java para listar todo o conteúdo de um diretório. Note que usei os métodos isFile() e isDirectory(), também da classe File, para indicar se o item que está sendo lido é um arquivo ou diretório. 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) ---------------------------------------------------------------------- package arquivodecodigos; import java.io.*; public class Estudos{ public static void main(String[] args){ // nome e caminho do diretório File diretorio = new File("C:\\estudos_c"); // um vetor de arquivos File[] arquivos = diretorio.listFiles(); // foram encontrados arquivos ou diretórios? if(arquivos != null){ // obtemos a quantidade de arquivos int length = arquivos.length; // e percorremos os arquivos individualmente for(int i = 0; i < length; ++i){ File f = arquivos[i]; // é um arquivo? if(f.isFile()){ System.out.println(f.getName()); } else if(f.isDirectory()){ // é um diretório System.out.println("Diretorio: " + f.getName()); } } } } } Ao executar este código Java nós teremos um resultado parecido com: DICA.txt Diretorio: estudos Estudos_C.dev Estudos_C.exe Estudos_C.layout main.c main.o Makefile.win |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética profissional, social, política Várias profissões, principalmente aquelas que implicam os direitos humanos à vida, à justiça, à igualdade, seguem códigos de ética que são frutos precisamente da ética deontológica normativa: "um código de ética não poderá cobrir todas as situações que se levantam à medida que uma disciplina expande e tenta encontrar as necessidades em mudança de um tipo de serviço entre as pessoas na sociedade" (BLACKWELL et al. apud DIAS, 2008, p. 54). De acordo com o trecho citado, assinale a alternativa correta: A) A deontologia presume um código de ética universal para todas as profissões. B) A deontologia abre espaços para que o profissional possa agir arbitrariamente. C) A deontologia recusa mudanças em seus códigos de ética. D) A deontologia serve como um guia reflexivo que orienta mesmo em situações inusitadas. E) A deontologia responsabiliza o profissional pelas consequências de todo agir. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual é a forma correta de se declarar uma variável do tipo inteiro em Python? A) valor = int(20) B) valor = 20 C) As formas A e B estão corretas D) valor = integer(20) E) As formas B e D estão corretas Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Turbinas hidráulicas Turbinas hidráulicas têm como principal aplicação a geração de energia, transformando energia cinética da água em energia mecânica, que será posteriormente convertida em energia elétrica. Sobre as turbinas hidráulicas, marque a alternativa correta: A) Uma turbina do tipo Francis apresenta uma baixa eficiência e pode ser operada apenas em baixas vazões. B) Uma turbina do tipo Francis tem eficiência relativamente baixa, porém tem ampla faixa de operação. C) A turbina do tipo Pelton tem um conjunto de pás fixas que podem ajustar o ângulo de entrada da água. D) A turbina do tipo Kaplan foi adaptada a partir da turbina de hélice e pode ser operada em grandes vazões. E) Uma turbina do tipo Pelton tem suas pás em formato de conchas e são operadas em grandes vazões. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Perda de carga Perda de carga é a energia dissipada em forma de calor devido ao atrito e à viscosidade em uma canalização. Nesse sentido, a perda de carga unitária em um tubo de 50mm de diâmetro, coeficiente de atrito de 0,031 e comprimento de 100m, sendo que a água escoa com vazão de 0,01 m3/s, é de: A) 0,47m/m. B) 0,52m/m. C) 0,74m/m. D) 0,82m/m. E) 0,94m/m. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Água Fria: Reservatórios O consumo diário de uma edificação pode variar de acordo com diversos fatores. Sobre as considerações relacionadas ao consumo diário e capacidade de reservatório de uma edificação é correto afirmar: A) O consumo per capita é o consumo da edificação a ser considerado no dimensionamento do reservatório. B) A capacidade de um reservatório deve ser calculada pelo tamanho da edificação, independentemente da taxa de ocupação. C) A NBR 5.626 orienta que a capacidade do reservatório deve ficar entre 1 e 3 o consumo diário da edificação. D) O consumo per capita não varia com as condições socioeconômicas, mas sim com o clima do local. E) As reservas extras já estão incluídas no consumo total da edificação quando calculada em função do consumo per capita e da taxa de ocupação. Verificar Resposta Estudar Cards Todas as Questões |
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 |