Ir para conteúdo
Fórum Script Brasil
  • 0

Exercicio de Python ( dificuldade )


gvaert

Pergunta

Estou com um questao pra resolver da faculdade para fechar a disciplina de Algoritmo e Estrutura de Dados e devido um processo seletivo de emprego não Assistir algumas aulas. Essa é a questão:

Elaborar um programa para ler o gabarito com dez questões objetivas fornecido como uma string com dez caracteres relativos às alternativas corretas (cada resposta é indicada por ‘A’ ou 'a', ‘B’ ou 'b', ‘C’ ou 'c', ‘D’ ou 'd' ou ‘E’ ou 'e') . Ex.: Se for digitado "DCBEACDDEA" isto significa que as alternativas corretas são: 1a. questão 'D', 2a. 'C', 3a. 'B', etc. Obs. O programa deve repetir a leitura do gabarito completo se este for digitado com algum erro (p.ex., quantidade de questões ou algum caractere inválido). Após a leitura do gabarito, o programa lê diversas respostas de provas, também como strings, atribui e escreve a nota de cada uma delas. Cada nota é de 0,0 a 10,0 (isto é, determinada por um ponto para cada item da resposta da prova que confere com o gabarito). Havendo algum erro na digitação da prova a ser avaliada, o programa escreve uma mensagem informando que não pode atribuir nota por esse motivo. Quando usuário não tiver mais prova para corrigir, ele digita somente um 'X' (ou 'x') no lugar da resposta da prova e, então, o programa se encerra. Obs. Lembrar que o programa não emite mensagem de erro quando for digitado ‘X’ (ou 'x').

Por favor me ajudem!!!!

Editado por Jhonas
Regras do forum
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Valeu a dica mas acho q ta muito avançado, pois estou no 2º periodo e o prof pediu pra usar estruturas basicas. Mesmo assim muito obrigado!!!!!

Espero por mais dicas.

Link para o comentário
Compartilhar em outros sites

  • 0

print()
print("__________Python_Faculdade__________")
print()


gabarito = input("digite o gabarito: ")
while len(gabarito) != 10:
gabarito = input("digite corretamente o gabarito: ")


questao = []

for letra in gabarito:
questao.append(letra)
print(questao)

consegui chegar ate aqui falta contabilizar 1ponto para cada letra certa na questao. Gabarito Correto: 1-D, 2-C, 3-B, 4-E, 5-A, 6-C, 7-D, 8-D, 9-E, 10-A

Link para o comentário
Compartilhar em outros sites

  • 0

utilize a logica desse programa feito em pascal ( converta para o python )

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
   aluno : Array [1..5] of String [40];
   alternativa : Array[1..5,1..5] of String[1];
   i,j : Integer;
   nota: Array [1..5] of Real;
begin

for i := 1 to 5 do
begin
  Writeln('Nome:');
  ReadLn(aluno[i]);

  for j := 1 to 5 do
  begin
   Writeln('Questao',j,' alternativa:');
   ReadLn(nota[j]);
  end;
end;

// Calcula nota da prova
for i := 1 to 5 do
  begin
    nota [i] := 0;
  end;

// Verifica se as alternativas estão corretas e computa o valor da nota
for i := 1 to 5 do
  begin
    if alternativa[i,1] = 'a' then nota [i] := nota[i]+1;
    if alternativa[i,2] = 'e' then nota [i] := nota[i]+1;
    if alternativa[i,3] = 'c' then nota [i] := nota[i]+1;
    if alternativa[i,4] = 'b' then nota [i] := nota[i]+1;
    if alternativa[i,5] = 'd' then nota [i] := nota[i]+1;
  end;

// Mostra notas
for i := 1 to 5 do
  begin
    WriteLn ('Aluno',i,' nota ', nota[i]);
  end;
end.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

consegui chegar ate aqui falta contabilizar 1ponto para cada letra certa na questao. Gabarito Correto: 1-D, 2-C, 3-B, 4-E, 5-A, 6-C, 7-D, 8-D, 9-E, 10-A

Além disso, faltam outras coisas. Você está checando apenas se o gabarito contém 10 caracteres, mas não quais são. Ou seja, ele vai aceitar respostas diferentes de "A", "B", "C", "D" e "E". Outro problema: "a" é diferente de "A", então o ideal seria converter tanto o gabarito quando as respostas que serão obtidas para maiúsculas (.toUpper()) ou para minúsculas (.toLower()).E o próximo passo agora, para contabilizar os pontos, seria utilizar um while para leitura das notas dos alunos (já que você não sabe quantos são), sendo um for para cada questão do mesmo (comparando com o gabarito e assim pontuando ou não). Neste while é que vai entrar a idéia da saída digitando um "X" (ou "x").

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...