Foto de Felipe K.
Felipe há 1 ano
Enviada pelo
Site

Criação de algoritmo notas de alunos em phiyton

Estou com dúvida para fazer este algoritmo se alguém puder me ajudar:

Crie uma classe representando os alunos de um curso. A classe deve conter os atributos matrícula do aluno, nome, nota da primeira e segunda prova. Crie métodos para acessar o nome e a média do aluno.

- Permita ao usuário entrar com os dados de pelo menos 3 alunos

- Encontre o aluno com a maior Média geral.

- Encontre o aluno com a menor média geral.

- Para cada aluno diga se ele foi aprovado ou reprovado, considerando a nota 6 para aprovação. 

6 respostas
Professor Andre R.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
Contatar Andre

Você não disse qual é a dúvida

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Envie uma dúvida grátis
Resposta na hora da Minerva IA e de professores particulares
Enviar dúvida
Professor Johny L.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
Contatar Johny
entea em contato comigo que resolvo pra ti

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professor Raphael V.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
Contatar Raphael

Exemplo de resolução para estudo do uso de classes e lista de objetos com Python

 

#Classe Aluno
class Aluno:

    #Atributos
    #2 underscores __ em prefixo significa atributo PRIVADO,
    #isto é, só pode ser acessado pela própria classe
    __nome = ""
    __matricula = ""
    __nota_prova1 = 0
    __nota_prova2 = 0

    #Construtor (a função __init__ é chamada ao criar uma nova instância)
    def __init__(self, nome, matricula, nota_prova1, nota_prova2):
        self.__nome = nome
        self.__matricula = matricula
        self.__nota_prova1 = nota_prova1
        self.__nota_prova2 = nota_prova2

    #Métodos para acessar os atributos (somente leitura)
    def getNome(self):
        return self.__nome
   
    def getMatricula(self):
        return self.__matricula
   
    def getNotaProva1(self):
        return self.__nota_prova1
   
    def getNotaProva2(self):
        return self.__nota_prova2
   
    def getMedia(self):
        return (self.__nota_prova1 + self.__nota_prova2) / 2

    def toString(self):
        return "Nome: {0}\nMatricula: {1}\nProva 1: {2}\nProva 2: {3}\nMedia: {4}".format(self.__nome, self.__matricula, self.__nota_prova1, self.__nota_prova2, self.getMedia())

#Programa principal

#lista de alunos
alunos = []

#Loop para leitura de dados de 3 alunos
for i in range(0, 3):
    print("Entre com os dados do aluno {0}:".format(i + 1))
    nome = input("Nome: ")
    matricula = input("Matricula: ")
    nota_prova1 = float(input("Nota da 1a Prova: "))
    nota_prova2 = float(input("Nota da 2a Prova: "))

    #insere novo aluno na lista alunos
    alunos.append(Aluno(nome, matricula, nota_prova1, nota_prova2))
   

#Encontra o aluno com maior média
print("\n\n:: ALUNO COM MAIOR MEDIA:\n")

aluno_com_maior_media = alunos[0]
for aluno in alunos:
    if aluno.getMedia() > aluno_com_maior_media.getMedia():
        aluno_com_maior_media = aluno

print(aluno_com_maior_media.toString())

#Encontra o aluno com menor média
print("\n\n:: ALUNO COM MENOR MEDIA:\n")

aluno_com_menor_media = alunos[0]
for aluno in alunos:
    if aluno.getMedia() < aluno_com_menor_media.getMedia():
        aluno_com_menor_media = aluno

print(aluno_com_menor_media.toString())

#Verifica aprovação (média maior que 6)
print("\n\n:: VERIFICANDO APROVAÇÃO...\n")

for aluno in alunos:
    print(aluno.getNome())
    print("Matricula: {0}".format(aluno.getMatricula()))
    print("Media: {0}".format(aluno.getMedia()))
    if aluno.getMedia() >= 6:
        print("APROVADO")
    else:
        print("REPROVADO")

    print() #pula uma linha

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professor Jhonni S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 11 meses
Contatar Jhonni

class Aluno:
    def __init__(self, matricula, nome, nota_prova1, nota_prova2):
        self.matricula = matricula
        self.nome = nome
        self.nota_prova1 = nota_prova1
        self.nota_prova2 = nota_prova2

    def calcular_media(self):
        return (self.nota_prova1 + self.nota_prova2) / 2

    def status_aprovacao(self):
        media = self.calcular_media()
        return "Aprovado" if media >= 6 else "Reprovado"

# Permita ao usuário entrar com os dados de pelo menos 3 alunos
alunos = []
num_alunos = int(input("Digite o número de alunos: "))

for i in range(num_alunos):
    matricula = input(f"Digite a matrícula do aluno {i + 1}: ")
    nome = input(f"Digite o nome do aluno {i + 1}: ")
    nota1 = float(input(f"Digite a nota da primeira prova do aluno {i + 1}: "))
    nota2 = float(input(f"Digite a nota da segunda prova do aluno {i + 1}: "))
    aluno = Aluno(matricula, nome, nota1, nota2)
    alunos.append(aluno)

# Encontre o aluno com a maior média geral
aluno_maior_media = max(alunos, key=lambda aluno: aluno.calcular_media())

# Encontre o aluno com a menor média geral
aluno_menor_media = min(alunos, key=lambda aluno: aluno.calcular_media())

# Para cada aluno, diga se ele foi aprovado ou reprovado
for aluno in alunos:
    print(f"\nAluno: {aluno.nome}")
    print(f"Média: {aluno.calcular_media()}")
    print(f"Status: {aluno.status_aprovacao()}")

# Exibir o aluno com a maior média
print(f"\nAluno com maior média geral: {aluno_maior_media.nome}")

# Exibir o aluno com a menor média
print(f"Aluno com menor média geral: {aluno_menor_media.nome}")

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professor Amador R.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 8 meses
Contatar Amador
class Aluno:
    def __init__(self, matricula, nome, nota1, nota2):
        self.matricula = matricula
        self.nome = nome
        self.nota1 = nota1
        self.nota2 = nota2
       
    def get_nome(self):
        return self.nome
   
    def media(self):
        return (self.nota1 + self.nota2) / 2
   
    def status(self):
        return "Aprovado" if self.media() >= 6 else "Reprovado"
   
alunos = []
for i in range(3):
    print(f'Digite os dados do aluno {i+1}:')
    matricula = input("Matricula: ")
    nome = input("Nome: ")
    nota1 = float(input("Nota da primeira prova: "))
    nota2 = float(input("Nota da segunda prova: "))
    aluno = Aluno(matricula, nome, nota1, nota2) # type: ignore
    alunos.append(aluno)
   
print("---------------------------------------------------------")    
   
aluno_maior_media = max(alunos, key=lambda aluno: aluno.media())
print(f'Aluno com maior média: {aluno_maior_media.get_nome()}, Média: {aluno_maior_media.media()}')

aluno_menor_media = min(alunos, key=lambda aluno: aluno.media())
print(f'Aluno com menor média: {aluno_menor_media.get_nome()}, Média: {aluno_menor_media.media()}')

for aluno in alunos:
    print(f'{aluno.get_nome()} - Média: {aluno.media()}, - {aluno.status()}')

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professora Thalita S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 mês
Contatar Thalita

Claro, vou te ajudar a resolver esse problema! Vamos criar uma classe chamada `Aluno` que irá armazenar a matrícula, o nome, a nota da primeira e da segunda prova. Também criaremos métodos para calcular a média do aluno, acessar o nome e verificar se ele foi aprovado.

Além disso, o código permitirá que o usuário insira os dados de pelo menos 3 alunos, e em seguida, o programa encontrará o aluno com a maior média, o aluno com a menor média, e informará se cada aluno foi aprovado ou reprovado com base na média.

### Passo 1: Criando a classe `Aluno`

A classe `Aluno` terá os seguintes atributos:
- **Matrícula**: Um identificador único do aluno.
- **Nome**: Nome do aluno.
- **Nota1**: Nota da primeira prova.
- **Nota2**: Nota da segunda prova.

A classe terá os seguintes métodos:
- **Método `calcular_media()`**: Calcula a média das duas provas.
- **Método `aprovado()`**: Verifica se o aluno foi aprovado (nota >= 6).
- **Método `obter_nome()`**: Retorna o nome do aluno.

### Passo 2: Entradas de dados dos alunos

O programa permitirá que o usuário insira os dados de 3 alunos.

### Passo 3: Encontrar o aluno com a maior e menor média

Vamos usar uma lista para armazenar os objetos `Aluno` e depois calcular quem tem a maior e menor média.

### Passo 4: Verificar aprovação

Por fim, o código irá verificar se cada aluno foi aprovado ou reprovado.

### Código Completo:

```python
# Definição da classe Aluno
class Aluno:
    def __init__(self, matricula, nome, nota1, nota2):
        self.matricula = matricula  # Matrícula do aluno
        self.nome = nome  # Nome do aluno
        self.nota1 = nota1  # Nota da primeira prova
        self.nota2 = nota2  # Nota da segunda prova

    # Método para calcular a média do aluno
    def calcular_media(self):
        return (self.nota1 + self.nota2) / 2

    # Método para verificar se o aluno foi aprovado
    def aprovado(self):
        return self.calcular_media() >= 6

    # Método para obter o nome do aluno
    def obter_nome(self):
        return self.nome

# Função para cadastrar os alunos
def cadastrar_alunos():
    alunos = []
    for i in range(3):
        print(f"Cadastro do Aluno {i + 1}:")
        matricula = input("Digite a matrícula do aluno: ")
        nome = input("Digite o nome do aluno: ")
        nota1 = float(input("Digite a nota da primeira prova: "))
        nota2 = float(input("Digite a nota da segunda prova: "))
        aluno = Aluno(matricula, nome, nota1, nota2)
        alunos.append(aluno)
    return alunos

# Função para encontrar o aluno com a maior média
def aluno_maior_media(alunos):
    aluno_maior = alunos[0]
    for aluno in alunos:
        if aluno.calcular_media() > aluno_maior.calcular_media():
            aluno_maior = aluno
    return aluno_maior

# Função para encontrar o aluno com a menor média
def aluno_menor_media(alunos):
    aluno_menor = alunos[0]
    for aluno in alunos:
        if aluno.calcular_media() < aluno_menor.calcular_media():
            aluno_menor = aluno
    return aluno_menor

# Função principal
def main():
    # Cadastro dos alunos
    alunos = cadastrar_alunos()

    # Encontrando o aluno com a maior média
    aluno_maior = aluno_maior_media(alunos)
    print(f"\nAluno com maior média: {aluno_maior.obter_nome()} - Média: {aluno_maior.calcular_media()}")

    # Encontrando o aluno com a menor média
    aluno_menor = aluno_menor_media(alunos)
    print(f"Aluno com menor média: {aluno_menor.obter_nome()} - Média: {aluno_menor.calcular_media()}")

    # Verificando a aprovação de cada aluno
    for aluno in alunos:
        media = aluno.calcular_media()
        status = "Aprovado" if aluno.aprovado() else "Reprovado"
        print(f"\nAluno: {aluno.obter_nome()} - Média: {media} - Status: {status}")

# Execução do programa
if __name__ == "__main__":
    main()
```

### Explicação do Código:

1. **Classe `Aluno`**:
   - O método `__init__` é o construtor da classe, onde são definidos os atributos `matricula`, `nome`, `nota1` e `nota2`.
   - O método `calcular_media()` retorna a média das duas provas.
   - O método `aprovado()` verifica se o aluno foi aprovado, considerando a nota mínima de 6 para aprovação.
   - O método `obter_nome()` retorna o nome do aluno.

2. **Função `cadastrar_alunos()`**:
   - Esta função coleta os dados de 3 alunos e cria instâncias da classe `Aluno`, armazenando-os em uma lista.

3. **Funções `aluno_maior_media()` e `aluno_menor_media()`**:
   - Estas funções percorrem a lista de alunos e determinam o aluno com a maior e a menor média, respectivamente.

4. **Função `main()`**:
   - É a função principal que coordena o fluxo do programa.
   - Ela chama a função `cadastrar_alunos()` para obter os dados dos alunos.
   - Em seguida, ela chama as funções `aluno_maior_media()` e `aluno_menor_media()` para encontrar os alunos com maior e menor média.
   - Por fim, o programa verifica a aprovação de cada aluno e imprime o status.

### Exemplo de Execução:

**Entrada**:
```
Cadastro do Aluno 1:
Digite a matrícula do aluno: 12345
Digite o nome do aluno: João Silva
Digite a nota da primeira prova: 7.0
Digite a nota da segunda prova: 8.0

Cadastro do Aluno 2:
Digite a matrícula do aluno: 67890
Digite o nome do aluno: Maria Oliveira
Digite a nota da primeira prova: 5.5
Digite a nota da segunda prova: 6.0

Cadastro do Aluno 3:
Digite a matrícula do aluno: 11223
Digite o nome do aluno: José Santos
Digite a nota da primeira prova: 6.0
Digite a nota da segunda prova: 7.0
```

**Saída**:
```
Aluno com maior média: João Silva - Média: 7.5
Aluno com menor média: Maria Oliveira - Média: 5.75

Aluno: João Silva - Média: 7.5 - Status: Aprovado
Aluno: Maria Oliveira - Média: 5.75 - Status: Reprovado
Aluno: José Santos - Média: 6.5 - Status: Aprovado
```

### O que o código faz:
- O programa recebe as informações de 3 alunos.
- Calcula a média de cada aluno.
- Determina quem tem a maior e menor média.
- Informa se o aluno foi aprovado ou reprovado, com base na média.

Esse código segue o que foi solicitado e pode ser facilmente adaptado caso você precise de mais alunos ou mais funcionalidades. Se tiver mais dúvidas ou quiser personalizar o código, estou à disposição para ajudar!

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Precisa de outra solução? Conheça
Aulas particulares Encontre um professor para combinar e agendar aulas particulares Buscar professor