Challenge TRAAD 👩‍💻

Challenge resolvido por Lorena Mattos.

Tecnologias   |    Projeto 1    |   Projeto 2      

🚀 Tecnologias

Esse projeto foi desenvolvido com as seguintes tecnologias:

  • Python
  • Git e Github
  • Bibliotecas

💻 Projeto 1

Lista ligada é uma das estruturas de dados mais importantes na computação, utilizada em uma enorme quantidade de aplicações. Uma lista encadeada ou lista ligada é uma estrutura de dados linear e dinâmica. Ela é composta por várias células que estão interligadas através de ponteiros, ou seja, cada célula possui um ponteiro que aponta para o endereço de memória da próxima célula

(fonte: https://pt.wikipedia.org/wiki/Lista_ligada#:~:text=Uma%20lista%20encadeada%20ou%20lista,de%20mem%C3%B3ria%20da%20pr%C3%B3xima%20c%C3%A9lula.)

EXEMPLO PRÁTICO:enter image description here

Em anexo, você encontrará uma implementação parcial de uma lista ligada. O exercício consiste em implementar os métodos vazios, para garantir o correto funcionamento da lista ligada, e fazer com que os testes definidos no main rodem adequadamente.

💻 Projeto 2

Para todo aviador, é vital saber antes de qualquer vôo as condições meteorológicas dos aeródromos de partida ou de chegada, assim como a existência de cartas disponíveis e horários de nascer e pôr do sol.

No Brasil, estas informações são disponibilizadas pelo site https://aisweb.decea.mil.br/.

Nesta página é possível encontrar links para cartas, horários do sol e as informações de TAF e METAR, que são boletins meteorológicos codificados.

Escreva um código que leia no terminal o código ICAO qualquer de um aeródromo (SBMT = campo de marte, SBJD = aeroporto de jundiaí, etc...) e imprima na tela:

As cartas disponíveis Os horários de nascer e pôr do sol de hoje A informação de TAF e METAR disponíveis Vale ressaltar que estas informações devem ser obtidas em tempo real do site, através de SCRAPPING.

Instruções do Desafio 1 📃

Para implementar os métodos da classe LinkedList, é importante entender o que cada método deve fazer com base na descrição fornecida no exercício.

  1. O método __init__ é responsável por inicializar a lista ligada vazia. Nesse caso, basta definir os atributos _head e _tail como None e o atributo _len como 0.

  2. O método __len__ deve retornar o comprimento da lista ligada, ou seja, o número de elementos presentes nela. Nesse caso, basta retornar o valor do atributo _len.

  3. O método head deve retornar o valor do primeiro nó da lista ligada. Para isso, podemos simplesmente retornar o valor do atributo _head.

  4. O método tail deve retornar o valor do último nó da lista ligada. Para isso, podemos retornar o valor do atributo _tail.

  5. O método append deve inserir um novo nó no final da lista ligada com o valor fornecido. Para fazer isso, precisamos criar um novo nó com o valor fornecido e atualizar os ponteiros _next para garantir que o último nó aponte para o novo nó inserido. Além disso, também precisamos atualizar o atributo _tail para o novo nó inserido e incrementar o valor de _len.

  6. O método insert deve inserir um novo nó no início da lista ligada com o valor fornecido. Isso requer a criação de um novo nó e a atualização dos ponteiros _next para garantir que o novo nó aponte para o nó anteriormente no início da lista. Além disso, precisamos atualizar o atributo _head para o novo nó inserido e incrementar o valor de _len.

  7. O método removeFirst deve remover o primeiro elemento da lista ligada e retornar o seu valor. Para fazer isso, precisamos atualizar os ponteiros _next para garantir que o segundo nó na lista seja o novo primeiro nó. Além disso, precisamos decrementar o valor de _len e retornar o valor removido.

  8. O método getValueAt deve retornar o valor de um nó na posição definida pelo índice. Se o índice for maior do que o tamanho da lista, devemos lançar uma exceção OutOfBoundsException. Para fazer isso, precisamos percorrer a lista até o nó na posição especificada pelo índice e retornar o seu valor. Se o índice for maior do que o tamanho da lista, lançamos a exceção OutOfBoundsException.

  9. O método toList deve retornar uma representação em forma de lista ([1, 2, 3, ...]) da lista ligada. Para fazer isso, precisamos percorrer a lista e armazenar os valores dos nós em uma lista Python, que será retornada no final.

Com base nessas informações e no código fornecido, podemos implementar os métodos necessários para que a lista ligada funcione corretamente.

Instruções do Desafio 2 📃

  • Instalar o Python NESSE LINK, após instalar no PATH.

  • Usar o editor de código de sua preferência (indico: Pycharm)

  • Usar comando pip install para instalar as bibliotecas contidas no arquivo requirments.txt: pip install -r requirements.txt

  • Importar as bibliotecas:

  • import requests

  • from bs4 import BeautifulSoup

  • import sys

  • Escreva no terminal: python + o nome do arquivo (main.py) seguido dos códigos: SBMT = campo de marte ou SBJD = aeroporto de jundiaí, etc.

Feito com ♥ by Lorena Mattos 👋 Faça parte das minhas redes!