View Full Version : Como resolver este problema?


Uncle Sam
30-09-2007, 18:48
Boas pessoal!

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.

Onde:
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!

Toda a ajuda é bem vinda!

Cumprimentos!

Inpanzinator
30-09-2007, 20:29
Até em excel fazes isso...

Uncle Sam
30-09-2007, 21:03
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.

Obrigado.

Inpanzinator
30-09-2007, 21:16
Ainda estou a iniciar-me na Linguagem C, mas se calhar fazia assim:

#include <stdio.h>

main()

{
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);

}

Uncle Sam
30-09-2007, 21:31
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.

Inpanzinator
30-09-2007, 21:39
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.

Baderous
30-09-2007, 21:45
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:
float t1,t2,t3,t4;

De seguida, pergunta ao utilizador "Quais as notas do teste?":
printf("Quais as notas dos teste?\n");

Depois, guarda em cada uma das variáveis já declaradas as notas introduzidas pelo utilizador:
scanf("%f %f %f %f",&t1,&t2,&t3,&t4);

Por fim ele apresenta o resultado da média.

No entanto se achas o código apresentado confuso, tenta perceber este:
#include <stdio.h>
main() {
float p1,p2,p3,p4;
float media;
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);
return 0;
}

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.

Inpanzinator
30-09-2007, 21:59
Assim está menos confuso...Porque é que meteste a média como número inteiro?

Já agora, Uncle Sam (http://www.techzonept.com/member.php?u=74834), 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?!

Baderous
30-09-2007, 22:07
Assim está menos confuso...Porque é que meteste a média como número inteiro?
Ups, enganei-me, vou já editar.

Já agora, Uncle Sam (http://www.techzonept.com/member.php?u=74834), 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?!

Também fiquei um bocado confuso...

Uncle Sam
30-09-2007, 23:06
Assim está menos confuso...Porque é que meteste a média como número inteiro?

Já agora, Uncle Sam (http://www.techzonept.com/member.php?u=74834), 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?!


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!

=D

Baderous
30-09-2007, 23:17
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.

Baderous
30-09-2007, 23:34
Tentei seguir-me por um tutorial de Python (http://br.geocities.com/sdiasneto/aprendendopython/funcoes.html) 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

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."

sir_atmc
30-09-2007, 23:44
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 :lol:) 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.

Uncle Sam
01-10-2007, 20:24
Ok pessoal obrigado pelas dicas, vou tê-las em consideração!

Até à próxima!

[]

Uncle Sam
01-10-2007, 21:30
Tenho uma pequena dúvida!

Quando usei o código disponibilizado pelo Baderous (http://www.techzonept.com/member.php?u=58489), 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?

Obrigado pela ajuda até agora!

Aparicio
02-10-2007, 09:26
Tenho uma pequena dúvida!

Quando usei o código disponibilizado pelo Baderous (http://www.techzonept.com/member.php?u=58489), 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?

Obrigado pela ajuda até agora!

Uma hipótese é correres o programa a partir da linha de comandos.
Deve haver outras formas mas não percebo de Phyton.