AULA VI
class No:
def __init__(self, valor):
self.valor = valor
self.anterior = None
self.proximo = None
class DuplamenteEncadeada:
def __init__(self):
self.primeiro = None
self.proximo = None
def vazia(self):
return self.primeiro is None
def inserir_no_inicio(self, valor):
new_node = No(valor)
if self.vazia():
self.primeiro = new_node
self.ultimo = new_node
else:
new_node.proximo = self.primeiro
self.primeiro.anterior = new_node
self.primeiro = new_node
def inserir_no_final(self, valor):
new_node = No(valor)
if self.vazia():
self.primeiro = new_node
self.ultimo = new_node
else:
new_node.anterior = self.ultimo
self.ultimo.proximo = new_node
self.ultimo = new_node
def remover_do_inicio(self):
if self.vazia():
return None
valor_removido = self.primeiro.valor
if self.primeiro == self.ultimo:
self.primeiro = None
self.ultimo = None
else:
self.primeiro = self.primeiro.proximo
self.primeiro.anterior = None
return valor_removido
def remover_do_final(self):
if self.vazia():
return None
valor_removido = self.ultimo.valor
if self.ultimo == self.primeiro:
self.primeiro = None
self.ultimo = None
else:
self.ultimo = self.ultimo.anterior
self.ultimo.proximo = None
return valor_removido
def imprimir(self):
no_atual = self.primeiro
while no_atual is not None:
print(no_atual.valor, end=" ")
no_atual = no_atual.proximo
print()
lista = DuplamenteEncadeada()
lista.inserir_no_inicio(90)
lista.inserir_no_inicio(50)
lista.inserir_no_final(33)
lista.inserir_no_final(80)
lista.inserir_no_final(60)
lista.imprimir()
lista.remover_do_inicio()
lista.remover_do_final()
lista.imprimir()
Explicação: Esse código cria duas classes: No, que representa um nó de uma lista duplamente encadeada, e DuplamenteEncadeada, que implementa uma lista duplamente encadeada.
Quando o código é executado, uma lista duplamente encadeada é criada e inicializada como vazia. Em seguida, são adicionados elementos à lista usando os métodos inserir_no_inicio e inserir_no_final.
Depois de adicionar os elementos, a lista é impressa para mostrar seu conteúdo.
Em seguida, dois elementos são removidos da lista, um do início e outro do final, usando os métodos remover_do_inicio e remover_do_final, respectivamente.
Por fim, a lista é impressa novamente para mostrar seu conteúdo após as remoções.
No geral, o código cria e manipula uma lista duplamente encadeada, adicionando elementos no início e no final, removendo elementos do início e do final, e imprimindo a lista em diferentes estágios.
Link para rodar: https://onlinegdb.com/X_DCWrxLx
AULA VII
# transforma a primeira letra de uma string em maiúscula
def upper(string):
return string[0].upper() + string[1:]
# conta quantas vogais existem em uma determinada string
def count(string):
vogais = 'aeiou'
return sum(letra in vogais for letra in string.lower())
string = "laboratório"
string_upper = upper(string)
string = "laboratório"
string_count = count(string)
print(string_upper)
print(string_count)
Explicação: Este código define duas funções: upper, que transforma a primeira letra de uma string em maiúscula, e count, que conta quantas vogais existem em uma determinada string. Em seguida, a string "laboratório" é processada por ambas as funções e os resultados são impressos.
Link para rodar: https://onlinegdb.com/R36gjfW2w
AULA IX
from collections import Counter
import matplotlib.pyplot as plt
def ocorrencias(dado):
return Counter(dado)
def calcular_frequencia(contador_dado):
total = sum(contador_dado.values())
return [count / total for count in contador_dado.values()]
def criar_bins(dado, num_bins):
min_valor = min(dado)
max_valor = max(dado)
bin_width = (max_valor - min_valor) / num_bins
return [min_valor + i * bin_width for i in range(num_bins + 1)]
def plot_histogram(dado, title='Idades de um grupo', xlabel='Idade', ylabel='Frequencia absoluta', bins=5, rwidth=0.9):
data_counts = ocorrencias(dado)
frequecias = calcular_frequencia(data_counts)
bins = criar_bins(dado, bins)
plt.title('Idades de um grupo', fontsize=30)
plt.xlabel('Idade')
plt.ylabel('Frequencia absoluta')
plt.hist(idades, 5, rwidth=0.9)
plt.savefig('grafico.png')
plt.show
idades=[65,26,67,50,47,73,1,58,2,94,12,22,12,95,25,13,61,41,24,95,
3,71,53,24,23,44,83,30,19,32,71,66,45,6,99,4,76,27,50,18,58,
61,53,72,14,78,36,89,6,71,58,69,22,34,38,51,71,83,22,22,36,44,
16,58,20,49,28,55,21,26,23,41,21,95,18,63,55,2,61,81,39,20,39,
17,66,60,73,26,54,16,76,83,9,12,15,35,54,11,7,61]
plot_histogram(idades)
Explicação: Este código cria um histograma das idades de um grupo usando a biblioteca matplotlib. Ele define funções para calcular as ocorrências dos dados, calcular a frequência relativa, criar bins para o histograma e plotar o histograma.

Top comments (0)