Jump to content
Coghi000

Exercício Dificl

Recommended Posts

Boa tarde, preciso de ajuda para terminar este exercicio, o que acontece nele, é que quando ele roda a função ministra da classe Professor, ele ve se a soma da carga horário é maior que 200, o correto era ele não adicionar mais la lista disciplinas assim que passa-se de 200, mas ao invés disso e ele está adicionando mesmo passando da carga horaria, não  estou conseguindo resolver =/, alguem pode dar uma força.

 

class Disciplina():
    '''
    Abstração de uma disciplinai, possui os atributos Nome e carga Horária
    '''
    def __init__(self, nome: str, carga_horaria: int) -> None:
        self._nome = nome
        self._carga_horaria = carga_horaria

    def get_nome(self) -> str:
        '''
        Acessor do atributo nome
        '''
        return self._nome

    def get_carga_horaria(self) -> int:
        '''
        Acessor do atributo cargar horaria
        '''
        return self._carga_horaria


class Pessoa():
    '''
    Abstração de uma pessoa no Modelo, classe base para Aluno e Professor
    que contém dados pertencentes a ambos.
    '''
    def __init__(self, nome: str, telefone: int, email: float) -> None:
        self._nome = nome
        self._telefone = telefone
        self._email = email

    def get_nome(self) -> str:
        '''
        Acessor do atributo Nome
        '''
        return self._nome

    def get_telefone(self) -> int:
        '''
        Acessor do atributo telefone
        '''
        return self._telefone

    def set_telefone(self, novo_telefone: int) -> None:
        '''
        Mutador do atributo telefone deve checar se é um número inteiro e,
        caso contrário devolver um TypeError
        '''
        if type(novo_telefone) not in [int]:
            raise TypeError('Numero invalido')
        self._telefone = novo_telefone

    def get_email(self) -> str:
        '''
        Acessor do atributo email
        '''
        return self._email

    def set_email(self, novo_email) -> None:
        '''
        Mutador do atributo eail, deve checar se éum email válido
        (se possuir o caractere '@') e caso contrário devolver
        um ValueError
        '''
        if novo_email.count('@') == 0 or novo_email.count('@') > 1:
            raise ValueError('E-mail invalido')
        self._email = novo_email


class Aluno(Pessoa):

    def __init__(self, nome: str, telefone: int,
                 email: str, n_matricula: int) -> None:
        super().__init__(nome, telefone, email)
        self._n_matricula = n_matricula
        self._disciplinas = []

    def get_matricula(self) -> int:
        '''
        Acessor do atributo matricula
        '''
        return self._n_matricula

    def matricular(self, disciplina: Disciplina) -> None:
        '''
        Realiza matrícula do Aluno na disciplina
        '''
        self._disciplinas.append(disciplina)
        return None

    def lista_disciplinas(self) -> list:
        '''
        Devolve a lista de disciplinas em que o aluno esta matriculado
        '''
        return self._disciplinas


class Professor(Pessoa):
    '''
    Entidade professor do Modelo
    '''
    def __init__(self, nome, telefone, email):
        self._nome = nome
        self._telefone = telefone
        self._email = email
        self._disciplinas = []

    def ministra(self, disciplina: Disciplina) -> None:
        '''
        Atribui o professor como ministrante da disiciplina
        Um professor não pode dar mais de 200 horas de aula,
        Caso um professor tente atribuir mais de 200h devolve
        ValueError
        '''
        horas = []
        horas.append(disciplina._carga_horaria)
        soma = 0
        for item in horas:
            print(item)
            soma = item + item
            if soma > 200:
                return ValueError
            else:
                self._disciplinas.append(disciplina)
                return None

    def lista_disciplinas(self) -> list:
        '''
        lista as disciplinas ministradas pelo professor
        '''
        pass

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Gui2000
      Linguagem C
      Obs: A categoria não possua C.
      Se não entenderam posso melhorar o texto. Preciso de uma luz nesse código.

      O problema real é que pretendo criar uma struct para letras que vai guardar uma letra e uma para nomes e com isso pretendo criar uma lista encadeada simples para a struct letras pegar apenas três letras.

      Problema

      (Após criar as structs pretendo fazer com um ponteiro dentro da struct letra aponte para a struct de nomes e com isso vou conseguir criar três letras com nome respectivos as iniciais, ao passar cada posição das letras para um vetor de três espaços, e fazendo com que cada endereço novo aponte para diferentes nomes a partir da letra) , exemplo:
      A - Adriano..
      B - Bruno..
      C - Carlos..
      Quero fazer com que a partir das letras eu possa apontar para os nomes.

      Linguagem C. E só estou tentando criar no papel no momento.

      Meu nome é Guilherme. Não criei o código ainda é um pedido do meu professor, não peço que façam por mim apenas que me ajudem na implementação e se minha lógica está errada, onde e por favor me expliquem. ^^
    • By fagner552
      O Voleibol é um esporte praticado numa quadra dividida em duas partes por uma rede, possuindo duas equipes
      de seis jogadores em cada lado. O objetivo da modalidade é fazer passar a bola sobre a rede de modo a que a
      bola toque no chão dentro da quadra adversária, ao mesmo tempo que se evita que os adversários consigam
      fazer o mesmo. No Brasil esta modalidade ganhou muita popularidade na década de 80 com a conhecida
      “geração de prata” da seleção brasileira de vôlei. Este esporte também é muito praticado em competições
      recreativas.
      Baseado nesta característica do vôlei o departamento de marketing de uma determinada empresa resolveu
      promover um jogo comemorativo para as festas de final de ano. Para haver equilíbrio na disputa estabeleceu as
      seguintes regras:
      - Participarão do jogo as primeiras 12 pessoas inscritas;
      - As equipes serão definidas por sorteio.
      Considerando estas regras foi solicitado ao setor de informática o desenvolvimento de um programa em Python
      para:
      a) Permitir o cadastro do Número da inscrição, Nome, Idade e Altura das 12 primeiras pessoas inscritas;
      b) Imprimir a lista dos inscritos (veja lay-out abaixo); 
      c) Montar (randomicamente) os dois times. Imprimir as equipes; 
      d) Imprimir a média de idade e de altura de cada equipe.
       
      Insc Nome Alt Idade
      01 ana 1.70 20
      02 jose 1.65 23
      03 pedro 1.80 21
      04 maria 1.70 25
      05 diana 1.75 26
      06 rui 1.90 18
      07 edna 1.70 23
      08 caio 1.85 21
      09 lea 1.60 26
      10 hugo 1.75 25
      11 tania 1.80 24
      12 marta 1.70 26

      Equipe 1:
      Insc Nome Alt Idade
      09    lea  1.60     26
      03   pedro 1.80   21
      04   maria 1.70   25
      08   caio  1.85    21
      06   rui    1.90    18
      10   hugo 1.75  25
      Media de idade da equipe 1: 22.67
      Media de altura da equipe 1: 1.77
       
      Equipe 2:
      Insc Nome Alt Idade
      01   ana   1.70   20
      07 edna    1.70      23
      11 tania   1.80      24
      12 marta 1.70    26
      02 jose    1.65       23
      05 diana  1.75     26
      Media de idade da equipe 2: 23.67
      Media de altura da equipe 2: 1.72
       
       
      Até agora fiz até a letra b, que no caso ele dá os inscritos gerais, queria saber se alguem poderia me dar um help de como sortear nesse formato de duas equipes ja colocando as medias em cada uma delas?
    • By tiagoban
      Estou testando o envio de mensagem para whatsapp via Python, queria testar enviar imagem tambem, porem nao sei qual o codigo usar, alguem sabe como proceder?
      Segue o codigo utilizado até o momento.
       
      from time import sleep from selenium.webdriver.common.by import By from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait import socket client = Client() message_text='Oi, esta é uma mensagem automatica criada.' # message no_of_message=1 # no. of time moblie_no_list=[554899999999] # list of phone number def element_presence(by,xpath,time): element_present = EC.presence_of_element_located((By.XPATH, xpath)) WebDriverWait(driver, time).until(element_present) def is_connected(): try: # connect to the host -- tells us if the host is actually # reachable socket.create_connection(("www.google.com", 80)) return True except : is_connected() driver = webdriver.Chrome(executable_path="chromedriver.exe") driver.get("http://web.whatsapp.com") sleep(10) #wait time to scan the code in second def send_whatsapp_msg(phone_no,text): driver.get("https://web.whatsapp.com/send?phone={}&source=&data=#".format(phone_no)) try: driver.switch_to_alert().accept() except Exception as e: pass try: element_presence(By.XPATH,'//*[@id="main"]/footer/div[1]/div[2]/div/div[2]',30) txt_box=driver.find_element(By.XPATH , '//*[@id="main"]/footer/div[1]/div[2]/div/div[2]') global no_of_message for x in range(no_of_message): txt_box.send_keys(text) txt_box.send_keys("\n") except Exception as e: print("invailid phone no :"+str(phone_no)) for moblie_no in moblie_no_list: try: send_whatsapp_msg(moblie_no,message_text) except Exception as e: sleep(10) is_connected()
    • By alekoxid
      Olá pessoal, estou fazendo um programa em Python, baseado em outro em C.
       
      Como eu escreveria esse trecho aqui em python?
      Se alguém puder me explicar, eu agradeço
       
      Código:
      #S é definido como 1000000
      #n_pts=20
       
       
      Void numeric(){
            float a, b , c, d;
            float P_[100],Q_[100], T[100];
            float den;
            float dx=L/(n_pts-1);
       
           P_[1]=0;
           Q_[1]=Ta;
           T[1]=Ta;
           T[n_pts]=Tb;
           a=(2*k/dx);
           c=d=k/dx;
           d=S*dx;
           int n;
       
          for ( n=2; n< n_pts; n++){
          den= (a-c*P_[n-1]);
          P_[n]= b/ den;
         Q_[n]= (d+c*Q_[n-1])/den
         }
       
        printf("\n\n Solução : \n")
        print("\n Ponto %2d T=%4.1f C", n_pts, T[n_pts]);
       
      for ( n=n_pts-1; n>1; n--){
          T[n]=Q_[n]+P_[n]*T[n+1];
          printf("\n Ponto %2 T=%4.1f C", n, T[n]);
          }
    • By Shirahama Kenichi
      Olá tudo bem?
      Estou tentando resolver um problema e ainda não achei a solução. Seguinte, estou desenvolvendo uma interface para gerenciamento de switches e preciso pegar uma informação na interface web (PHP) e passar essa informação para um script em Python. Simplificando seria mais ou menos assim: Interface Web: "Digite o texto para ser exibido" o usuário digita "Hello World". Script Python: Pega o que o usuário digitou (no caso "Hello World") e executa o comando para exibir a mensagem. O usuário entra com a informação através de uma text box e após clicar em um button tudo aconteceria. Vocês sabem como eu posso fazer pra isso funcionar, pois estou bem perdido e não consigo resolver isso de forma alguma.
      Obrigado!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.