Como resolver este problema? | ZWAME Fórum
Discussão em 'Programação' iniciada por Uncle Sam, 30 de Setembro de 2007. (Respostas: 15; Visualizações: 966)
Sou novo por estas bandas e preciso de uma pequena ajuda!
Entrei este ano para o 10º ano e estou no curso profissional de técnico de gestão e programação de sistemas informáticos!
Na disciplina de Programação de Sistemas Informáticos a stora mandou um exercício para casa que é o seguinte:
"Imagine o seguinte problema. Calcular a média final dos alunos do 9º ano. Os alunos realizaram quatro provas: P1, P2, P3 e P4.
Média Final = P1+P2+P3+P4 e o resultado divide-se por 4."
Penso que está aí a informação toda.
Vou resolver esse exercício em Python e queria concelhos vossos pois comecei agora a aprender o básico da programação!
Até em excel fazes isso...
Eu sei, isso é lógico! Mas eu quero fazer em programação! É disso que se trata a disciplina. Por isso é que vim aqui pedir ajuda e conselhos! Se quiserem podem usar outro programa sem ser o python para me ajudar mas indiquem-me qual por favor!
PS: Esqueci-me de mencionar no exercício que este é suposto ser um algoritmo, por isso mesmo não o fiz em excel.
#4 30 de Setembro de 2007
Ainda estou a iniciar-me na Linguagem C, mas se calhar fazia assim:
float t1,t2,t3,t4;
printf("Quais as notas dos teste?\n");
scanf("%f %f %f %f",&t1,&t2,&t3,&t4);
printf("A média dos testes é: %.2f\n",t1/4+t2/4+t3/4+t4/4);
Hmm... Não me parece que isso funcione em python e muito sinceramente, pouco ou nada percebi o que está nesse código! Se puderes explica-me sff.
De Python não percebo nada, pois estou a iniciar-me agora e em C. Vou tentar explicar o programa que fiz....
O #include <stdio.h> é da praxe e é uma espécie de colecção de funções para que o compilador reconheça as funções que usamos. Depois vem o main() que é onde o programa começa...De seguida "abre-se" o programa com { e declaramos as variáveis que vamos utilizar. Eu escolhi variáveis do tipo float pois as notas podem ter casas decimais. Logo a seguir, utilizo a função scanf para escrever "Quais as notas dos testes:" (o /n serve para mudar de linha). Depois uso a função scanf para ler os resultados. Meto %f para ele saber que tem de ler valores do float e &t1(..), pois quero que os valores lidos sejam atribuídos ás variáveis. Para concluir escrevo novamente um texto metendo outra vez %f. Depois da vírgula vem o valor que tem de aparecer em vez do %f. Neste caso as contas que fiz foram: t1/4+t2/4+t3/4+t4/4 ou seja (t1+t2+t3+t4)/4.
P.S. Em excel não deixa de ser um algoritmo, penso eu.
Última edição: 30 de Setembro de 2007
O que o Inpanzinator fez foi criar 4 variáveis onde vais guardar em cada uma as notas das provas P1,P2,P3 e P4. Como ele considerou que as notas podiam ser números com casas decimais, ele associou-lhes o tipo float:
De seguida, pergunta ao utilizador "Quais as notas do teste?":
Depois, guarda em cada uma das variáveis já declaradas as notas introduzidas pelo utilizador:
Por fim ele apresenta o resultado da média.
No entanto se achas o código apresentado confuso, tenta perceber este:
printf("Introduza as notas dos testes:");
scanf("%f %f %f %f",&p1,&p2,&p3,&p4);
media=(p1+p2+p3+p4)/4;
printf("A media e %f",media);
Os passos iniciais são iguais, eu apenas criei mais uma variável de nome média para guardar o resultado da média.
Depois li as notas introduzidas, calculei a média (pela fórmula), e de seguida apresentei o resultado da conta ao utilizador.
Isto é a solução feita em C, agora só tens de escrever em Python. Não deve ser muito diferente.
Assim está menos confuso...Porque é que meteste a média como número inteiro?
Já agora, Uncle Sam, voltei a ler o enunciado, e não percebi muito bem uma coisa! Tu queres o que fizemos aqui ou queres, mediante a média dos testes (de 0 a 100%), avaliar um aluno de 0 a 5?!
#9 30 de Setembro de 2007
Ups, enganei-me, vou já editar.
Inpanzinator disse:
Também fiquei um bocado confuso...
#10 30 de Setembro de 2007
A média que vai dar no final é em percentagem tal como as quatro provas, que são avaliadas de 0 a 100%!
No entanto como ainda sou um noob na programação, mesmo este exercício sendo fácil, a sua resolução em C não me serve de muito, pois eu soube há momentos que nas aulas vamos dar Pascal. Se tiverem tempo e me poderem ajudar agradecia que me explicassem passo-a-passo como resolver o exercício para me servir de base para futuras tarefas!
Desde já obrigado por me ajudarem!
Mas então vais resolver o exercício em Python e nas aulas vais dar Pascal?? WTF?
Passo a passo é difícil. Vais precisar de 4 variáveis para guardar os resultados das provas e de 1 variável para guardar o resultado da média. Depois vais ter de pedir ao utilizador que introduza as notas das provas. Depois, aplicas a fórmula e calculas a média, apresentando de seguida o seu valor no ecrã. Acho que é impossível explicar mais do que isto. Agora és tu que tens de estudar e tentar fazer por ti. Vai escrevendo código, e se tiveres dúvidas coloca aqui.
Tentei seguir-me por um tutorial de Python e tentei resolver o problema. Aqui fica aquilo que consegui:
# 1º define-se a função media
def media():
p1 = int(raw_input("Introduza a nota de P1: "))
p2 = int(raw_input("Introduza a nota de P2: "))
p3 = int(raw_input("Introduza a nota de P3: "))
p4 = int(raw_input("Introduza a nota de P4: "))
media = (p1+p2+p3+p4)/4
print 'A media e',media
#Depois chama-se a função media
As frases começadas com # são comentários, logo são ignoradas pelo interpretador.
"Aqui utilizamos duas funções: raw_input( ) e int( ). raw_input( ) exibe uma mensagem na tela e aguarda uma entrada de dados do usuário. Os dados recebidos por ela são entendidos pelo Python como string. Como nosso programa trabalha com números inteiros utilizamos a função int( ) para converter a entrada em inteiros."
Isso é bastante facil de fazer, até é interessante fazeres com numero de testes variaveis. Como apenas sei C++, Assembly (nao me peças para fazer isto em Assembly ) e Scheme, não te posso ajudar grande coisa. Mas começa a aprender a sintaxe da linguagem, como fazer output e input, declaração de variaveis, strings, vectores etc.
#14 1 de Outubro de 2007
Ok pessoal obrigado pelas dicas, vou tê-las em consideração!
#15 1 de Outubro de 2007
Tenho uma pequena dúvida!
Quando usei o código disponibilizado pelo Baderous, introduzi uns dados aleatórios e quando ele me vai dar o resultado final fecha logo a aplicação! O que posso fazer para a aplicação não se fechar, mostrando o resultado final?