Jump to content
Fórum Script Brasil

MarcosAUG

Membros
  • Posts

    5
  • Joined

  • Last visited

Everything posted by MarcosAUG

  1. Construa um programa orientado a objetos que implemente exatamente o diagrama de classes abaixo (seguir a mesma nomenclatura). Observações: 1. O método get_numero_paginas() retorna o número de páginas de um livro 2. O método autores() retorna uma lista com todos os autores de um livro 3. O método add_autor() adiciona um novo autor à lista de autores do livro. Quando um novo autor é adicionado a um livro, é preciso também fazer o processo reverso, adicionando o livro à lista de livros do autor. 4. O método lista_livros() retorna a lista de livros de um autor. 5. Os atributos de cada classe Autor devem ser informados na construtora da classe, sendo passados como dicionários (**kwargs). 6. O atributo título da classe Livro é obrigatório e deve ser parâmetro obrigatório na sua construtora. Também é obrigatório informar pelo menos um autor. Outros autores podem ser informados e devem ser passados na construtora como lista (*args). Os atributos subtítulo e numero_paginas são opcionais e podem ser passados na construtora como dicionário (**kwargs). Lembre que ao incluir um autor em um livro, este livro deve ser incluído na lista de livros do autor. Teste as classes criando alguns autores e alguns livros. Teste o programa incluindo vários autores em um livro e criando vários livros do mesmo autor. Imprima os autores de um livro e os livros de um autor utilizando uma estrutura de repetição.
  2. Crie uma classe que defina um vetor no plano. Crie métodos para permitir obter o versor, módulo e somar ao vetor uma série de outros vetores (usando *args), calcular o produto escalar e produto vetorial Uma duvida é de como usar a função *args nos métodos que o enunciado pede, e se tenho que mudar os métodos e atributos anteriores? class Vetor: def __init__(self, x, y): self.__x = x self.__y = y def modulo(self): return (self.__x**2 + self.__y**2 )**(1/2) def versor(self): v1 = (self.__x)/(self.__x**2 + self.__y**2 )**(1/2) v2 = (self.__y)/(self.__x**2 + self.__y**2 )**(1/2) return v1, v2 def soma(self, *args): pass vetorA = Vetor(4,3) print("Modulo: ", vetorA.modulo()) print("Versor: ", vetorA.versor())
  3. Certo agradeço pela sua resposta, porém não teria como fazer um código que realmente execute oque foi pedido no enunciado deixar de utilizar o pass?
  4. Crie uma classe que defina um ponto no plano cartesiano. Crie métodos para: a.Mostrar as coordenadas do ponto; b.Determinar a distância do ponto até a origem; c.Determinar a distância do ponto até outro ponto cujas coordenadas são fornecidas como parâmetros; d.Mover o ponto, informando um vetor (x,y) como parâmetro.
  5. O programa em Python abaixo inicializa duas listas: a lista ‘datas’, contendo algumas datas (no formado mm/aaaa) referentes aos anos de 2017 e 2018, e a lista ‘temp’ contendo a temperatura média (em °C) daquelas datas, na respectiva ordem. Faça o que se pede abaixo: a) Copie o código fornecido e cole em um editor de sua preferência (Spyder, Pycharm, Idle, etc.). b) Implemente a função ContaDias(), que conta a quantidade de datas cadastradas na lista ‘datas’ pertencentes a um determinado ano (2017 ou 2018) passado como parâmetro. c) Implemente a função TempMedia(), que calcula e retorna a temperatura média entre as datas pertencentes a um determinado ano (2017 ou 2018) passado como parâmetro. d) Implemente a função MenorMaiorTemp(), que calcula e retorna a menor e a maior temperatura dentre todas as temperaturas de um determinado ano (2017 e 2018) passado como parâmetro Código: # -- definição das funções -- def ContaDias(datas,mes): # implemente essa função def TempMedia(datas,temp,mes): # implemente essa função def MenorMaiorTemp(datas,temp,mes): # implemente essa função # -- programa principal -- # inicialização das listas datas = ['01/2018', '03/2018', '07/2017', '05/2018', '12/2017', '03/2017', '11/2018'] temp = [30.7, 26.2, 10.6, 23.4, 31.0, 25.7, 29.4] # obtenção dos resultados nd_2017 = ContaDias(datas,'2017') nd_2018 = ContaDias(datas,'2018') tm_2017 = TempMedia(datas,temp,'2017') tm_2018 = TempMedia(datas,temp,'2018') tmenor_2017, tmaior_2017 = MenorMaiorTemp(datas,temp,'2017') tmenor_2018, tmaior_2018 = MenorMaiorTemp(datas,temp,'2018') # impressão dos resultados print('\n-------------------------') print('2017:') print('Qtd. de dias........', nd_2017) print('Temp. média (°C)....', round(tm_2017,1)) print('Menor temp. (°C)....', tmenor_2017) print('Maior temp. (°C)....', tmaior_2017) print('\n2018:') print('Qtd. de dias........', nd_2018) print('Temp. média (ºC)....', round(tm_2018,1)) print('Menor temp. (°C)....', tmenor_2018) print('Maior temp. (°C)....', tmaior_2018) print('-------------------------')
×
×
  • Create New...