Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesCódigo-Fonte 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
Você está aqui: Python ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Pilhas

Escreva um programa Python que usa uma pilha para testar se uma palavra é palíndroma - Desafio de Programação Resolvido em Python

Quantidade de visualizações: 51 vezes
Pergunta/Tarefa:

Palíndromo é uma palavra, frase ou número que permanece igual quando lida de trás para diante. Por extensão, palíndromo é qualquer série de elementos com simetria linear, ou seja, que apresenta a mesma sequência de unidades nos dois sentidos.

Uma palavra palíndroma é aquela cuja sequência de letras é simétrica, permitindo uma leitura idêntica da esquerda para a direita ou da direita para a esquerda: ovo, osso, reler, anilina.

Escreva um programa Python que usa uma pilha para testar se uma palavra é palíndroma. Você pode usar a abordagem que desejar na criação da pilha, ou seja, você pode usar uma pilha criada a partir de um array, o objeto list ou uma lista simplesmente encadeada (lista ligada).

Sua saída deverá ser parecida com:

Informe uma palavra ou frase: reler
A palavra ou frase informada é palíndroma

Informe uma palavra ou frase: estudar
A palavra ou frase informada não é palíndroma
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

# definição da classe Pilha
class Pilha:
  # método construtor
  def __init__(self):
    # cria uma lista de elementos vazia
    self.elementos = []

  # método usado para empilhar um novo elemento na pilha
  def empilhar(self, elemento):
    self.elementos.append(elemento)
         
  # método usado para desempilhar um elemento da pilha
  def desempilhar(self):
    return self.elementos.pop()

  # método para verificar se a pilha está vazia ou não
  def vazia(self):
    return (self.elementos == [])

  # método que retorna o topo da pilha
  def retornar_topo(self):
    return self.elementos[-1]

  # método para mostrar a representação textual da pilha
  def __str__(self):
    return str(self.elementos)

# função que recebe uma palavra como argumento e usa
# uma pilha para testar se a palavra informada é palíndroma
# ou não
def testar_palindromo(texto):
  # vamos criar uma nova pilha
......


Link para compartilhar na Internet ou com seus amigos:

Python ::: Estruturas de Dados ::: Lista Ligada Simples

Como excluir um nó no final de uma lista encadeada simples em Python

Quantidade de visualizações: 1135 vezes
Nesta dica mostrarei como podemos escrever um método remover_final() que remove e retorna o nó no final de uma lista encadeada simples em Python, ou seja, excluí o último nó da lista.

É importante observar que o método exclui o último nó e o retorna completo, inclui o valor que está incluído nele. Se a lista estiver vazia o método retorna o valor None para indicar lista vazia.

Vamos começar então com o código para a classe No da lista singularmente ligada (que salvei em um arquivo no_lista_singularmente_ligada.py):

# classe No para uma lista singularmente encadeada ou
# ligada - Singly Linked List
class No:
  # construtor da classe No
  def __init__(self, info, proximo):
    self.info = info
    self.proximo = proximo

  # método que permite definir o conteúdo do nó
  def set_info(self, info):
    self.info = info

  # método que permite obter a informação de um nó 
  def get_info(self):
......


Veja que o código para a classe Nó não possui muitas firulas. Temos apenas um campo info, que guardará o valor do nó, e um campo próximo, que aponta para o próximo nó da lista, ou null, se este for o único nó ou o último nó da lista ligada.

Veja agora o código para a classe ListaLigadaSimples (lista_ligada_simples.py), com os métodos inserir_inicio(), remover_final() e exibir():

# importa a classe No
from no_lista_singularmente_ligada import No

# classe ListaLigadaSimples   
class ListaLigadaSimples:
  # construtor da classe
  def __init__(self):
    self.inicio = None # nó inicial da lista

  # método que deleta um nó no final de uma lista ligada
  # este método retorna o nó excluído
  def remover_final(self):
    # a lista está vazia?  
    if self.inicio == None:
      return None
    else:
      # vamos excluir e retornar o primeiro nó da lista
      removido = self.inicio
      
      # a lista possui apenas um nó?
      if self.inicio.get_proximo() == None:
        # a lista agora ficará vazia
        self.inicio = None
      else:
        # começamos apontando para o início da lista   
        no_atual = self.inicio
        no_anterior = self.inicio

        # enquanto o próximo do nó atual for diferente de nulo
        while no_atual.get_proximo() != None:
          # avançamos o nó anterior
          no_anterior = no_atual
          # saltamos para o próximo nó
          no_atual = no_atual.get_proximo()

        # na estamos na posição de exclusão
......


E agora o código main() que insere alguns valores no início da nossa lista singularmente encadeada e testa o método remover_final():

# importa a classe ListaLigadaSimples
from lista_singularmente_ligada import ListaLigadaSimples

# método principal  
def main():
  # cria uma nova lista encadeada simples
  lista = ListaLigadaSimples()

  print("Insere o valor 12 no início da lista")
  lista.inserir_inicio(12)
  print("Conteúdo da lista: ")
  lista.exibir()
  print("Insere o valor 30 no início da lista")
  lista.inserir_inicio(30)
  print("Conteúdo da lista: ")
  lista.exibir()
......


Ao executar este código Python nós teremos o seguinte resultado:

c:\estudos_python>python estudos.py
Insere o valor 12 no início da lista
Conteúdo da lista:
12
Insere o valor 30 no início da lista
Conteúdo da lista:
30
12
Insere o valor 27 no início da lista
Conteúdo da lista:
27
30
12
Remove um nó no final da lista
Nó removido: 12
Conteúdo da lista:
27
30


Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a distância entre dois pontos no plano em Python - Python para Geometria Analítica e Álgebra Linear

Quantidade de visualizações: 10312 vezes
Como calcular a Distância Euclidiana entre dois pontos usando Python.

Em várias aplicações envolvendo geometria, principalmente no desenvolvimento de jogos em Python, é comum nos depararmos com a necessidade de calcular a distância entre dois pontos A e B. Nessa dica mostrarei como efetuar esse cálculo no R2, ou seja, no plano. Em outra dica eu abordo o cálculo no R3 (espaço).

Comece analisando a imagem abaixo:



Veja que temos um ponto A (x = 3; y = 6) e um ponto B (x = 9; y = 4). Para determinarmos a distância entre esses dois pontos no plano cartesiano, temos que realizar a análise tanto no sentido do eixo das abscissas (x) quanto no do eixo das ordenadas (y).

Veja a fórmula:

\[d_{AB} = \sqrt{\left(x_b - x_a\right)^2 + \left(y_b - y_a\right)^2}\]

Agora, jogando os valores dos dois pontos da fórmula nós teremos:

\[d_{AB} = \sqrt{\left(9 - 3\right)^2 + \left(6 - 4\right)^2}\]

Que resulta em 6,32 (aproximadamente).

E agora veja o código Python completo que lê as coordenadas dos dois pontos e mostra a distância entre eles:

import math

# função que permite calcular a distância
# entre dois pontos no plano (R2)
def distancia2d(x1, y1, x2, y2):
  a = x2 - x1
  b = y2 - y1
  c = math.sqrt(math.pow(a, 2) + math.pow(b, 2))
  return c

# função principal do programa
def main():
  # vamos ler os dados do primeiro ponto
  x1 = float(input("Informe o x do primeiro ponto: "))
  y1 = float(input("Informe o y do primeiro ponto: "))
......


Ao executarmos este código Python nós teremos o seguinte resultado:

Informe o x do primeiro ponto: 3
Informe o y do primeiro ponto: 6
Informe o x do segundo ponto: 9
Informe o y do segundo ponto: 4
Distância entre os dois pontos: 6.32


Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes)

Como criar arrays (vetores e matrizes) usando o objeto ndarray da biblioteca Numpy do Python

Quantidade de visualizações: 3055 vezes
O objeto ndarray é a parte mais importante da biblioteca Numpy do Python. É por meio dele que criamos vetores e matrizes. Quando falamos vetores, estamos nos referindo às matrizes de apenas uma dimensão, ou seja, uma linha e várias colunas.

A forma mais comum de se criar arrays na Numpy é usando funções presentes na biblioteca. Veja:

# importamos a bibliteca NumPy
import numpy as np

def main():
  # vamos usar o método arange() para construir um
  # vetor de 10 elementos, começando de 0 até 9
......


Ao executar este código nós teremos o seguinte resultado:

[0 1 2 3 4 5 6 7 8 9]

Depois que criamos o vetor, seus elementos individuais podem ser acessados usando-se o nome da variável usada para representar todo o valor e o índice do elemento que queremos acessar (começando em 0). Veja:

# importamos a bibliteca NumPy
import numpy as np

def main():
  # vamos usar o método arange() para construir um vetor de
  # 10 elementos, começando de 0 até 9
  vetor = np.arange(10)

  # vamos mostrar o vetor inteiro  
......


Este código produzirá o seguinte resultado:

Vetor gerado: [0 1 2 3 4 5 6 7 8 9]
Terceiro elemento: 2

Uma outra forma de criarmos vetores usando a Numpy, é fornecendo os elementos do vetor como uma list. Veja:

# importamos a bibliteca NumPy
import numpy as np

def main():
  # vamos criar um vetor passando uma list
  valores = np.array([4, 12, 50, 8, 32])
......


Este código vai gerar o seguinte resultado:

Elementos no vetor: [ 4 12 50 8 32]

Agora vamos usar essa mesma abordagem para criar uma matriz de duas dimensões (bidimensional):

# importamos a bibliteca NumPy
import numpy as np

def main():
  # vamos criar uma matriz bidimensional passando
  # duas lists dentro de uma list
  valores = np.array([(4, 12, 50), (5, 3, 1)])
......


Veja o resultado da execução desse código:

Elementos no vetor: [[12 12 50]
 [ 5  3  1]]


Em mais dicas dessa seção você aprenderá mais sobre as funções de criação e manipulação de vetores e matrizes usando a biblioteca NumPy do Python.


Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 23 usuários muito felizes estudando em nosso site.