Ruka284 Posted March 6, 2013 at 10:54 AM Report #498088 Posted March 6, 2013 at 10:54 AM (edited) Tenho de fazer um programa com o seguinte problema e tenho de usar o while. Dada a sequencia de numeros inteiros positivos terminada por 0, calcule a percentagem correspondente aos valores superiores a 10 (o 0 nao conta para efeitos de calculo). 1 - mando entrar o numero 2- tenho que mandar dizer numeros superior a 10 como calculo a percentagem, tenho de meter um contador para fazer o ciclo. qual a vossa opiniao ? Edited March 6, 2013 at 11:25 AM by Ruka284
HappyHippyHippo Posted March 6, 2013 at 11:22 AM Report #498091 Posted March 6, 2013 at 11:22 AM percentagem : (total / quantidade_contada) * 100 de resto ... poderias começar a escrever as dúvidas em português minimamente legível IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Ruka284 Posted March 6, 2013 at 11:26 AM Author Report #498094 Posted March 6, 2013 at 11:26 AM percentagem : (total / quantidade_contada) * 100 de resto ... poderias começar a escrever as dúvidas em português minimamente legível peço desculpa pelo português escrito #include<stdio.h> #include <stdlib.h> int main() { int num,total,i=1; printf ("\n introduza o numero \n"); scanf("%d",&num); total=0; while(num>10){ total=total/ ???????)*100;// o que esta com os sinais qual a quantida contada que introduzo aqui i=i+1; } printf ("o total e: %d \n",total) system ("PAUSE"); return 0; } este problema não estou a perceber muito bem. quais os vários erros que detectam, o sinal de interrogação foi eu que meti porque não estou a perceber qual o valor que introduzo.
HappyHippyHippo Posted March 6, 2013 at 12:08 PM Report #498099 Posted March 6, 2013 at 12:08 PM só podes calcular a percentagem no final da inserção dos valores IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Ruka284 Posted March 6, 2013 at 12:10 PM Author Report #498100 Posted March 6, 2013 at 12:10 PM só podes calcular a percentagem no final da inserção dos valores podes explicar isso sintaticamente s.f.f.
HappyHippyHippo Posted March 6, 2013 at 12:29 PM Report #498103 Posted March 6, 2013 at 12:29 PM estás a pedir para explicar com código ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Ruka284 Posted March 6, 2013 at 12:35 PM Author Report #498106 Posted March 6, 2013 at 12:35 PM estás a pedir para explicar com código ? se for possível, eu agradeço, senão obrigado na mesma
HappyHippyHippo Posted March 6, 2013 at 12:41 PM Report #498108 Posted March 6, 2013 at 12:41 PM while(num>10){ // é impossível saber a percentagem aqui } // só podes saber quando acabares de inserir os valores // <--- aqui IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
polska Posted March 6, 2013 at 12:43 PM Report #498109 Posted March 6, 2013 at 12:43 PM Essa prática de System("PAUSE")... faz antes um getchar(); Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.
Ruka284 Posted March 6, 2013 at 01:26 PM Author Report #498121 Posted March 6, 2013 at 01:26 PM while(num>10){ // é impossível saber a percentagem aqui } // só podes saber quando acabares de inserir os valores // <--- aqui tenho de meter a formula da soma, meto contador e so depois meto percentagem e isso.
chesterduh Posted March 6, 2013 at 08:15 PM Report #498184 Posted March 6, 2013 at 08:15 PM (edited) 2- tenho que mandar dizer numeros superior a 10 Não tens que mandar dizer números superiores a 10! Vais aceitar qualquer número ( desde que superior a "0") e vais contar os que foram superiores a 10, para depois calcular a percentagem dos mesmos! Se aceitasses apenas números superiores a 10 a percentagem seria sempre 100% não achas? (desde que pelo menos o primeiro número introduzido não fosse inferior a 10). Pela interpretação que fiz no exercício, e que acho estar correta será algo do género: int contTotal = 0, contMaior10 = 0, percentagem LER(num) ENQUANTO(num > 0) FAZER contTotal++ SE(num > 10) ENTÃO contMaior10++ FIM SE LER(num) FIM ENQUANTO SE(contTotal > 0) ENTÃO percentagem = (contMaior10 / contTotal) * 100 ESCREVER("Percentagem números > 10: " + percentagem + "%") SENÃO ESCREVER("Não foram introduzidos números válidos") FIM SE Agora analisa o pseudo-código para perceberes o raciocínio (vê se agora não faz mais sentido!! 🙂 ) e adapta para "C". Obs.: Editado último "SE" Edited March 6, 2013 at 08:20 PM by chesterduh
Ruka284 Posted March 14, 2013 at 11:15 AM Author Report #499161 Posted March 14, 2013 at 11:15 AM nt contTotal = 0, contMaior10 = 0, percentagem = o que queres dizer contTotal e contMaior? LER(num) ENQUANTO(num > 0) FAZER contTotal++ = porque meteste contTotal e qual a sua funçao? SE(num > 10) ENTÃO contMaior10++ = esta definido como contador ? FIM SE LER(num) FIM ENQUANTO SE(contTotal > 0) ENTÃO percentagem = (contMaior10 / contTotal) * 100 ESCREVER("Percentagem números > 10: " + percentagem + "%") SENÃO ESCREVER("Não foram introduzidos números válidos") FIM SE
KTachyon Posted March 14, 2013 at 11:54 AM Report #499173 Posted March 14, 2013 at 11:54 AM Se tu tens que calcular a percentagem precisas do número total de valores, e a quantidade desses que são maior que 10. Isto explica a utilidade das variáveis contTotal e contMaior10. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
Ruka284 Posted March 14, 2013 at 12:06 PM Author Report #499176 Posted March 14, 2013 at 12:06 PM contTotal = quer dizer contagem total? contMaior10 = quer dizer contagem maior que 10 ?
chesterduh Posted March 14, 2013 at 03:04 PM Report #499195 Posted March 14, 2013 at 03:04 PM contTotal = quer dizer contagem total? contMaior10 = quer dizer contagem maior que 10 ? Correto, podes ver a resposta do KTachyon: Se tu tens que calcular a percentagem precisas do número total de valores, e a quantidade desses que são maior que 10. Isto explica a utilidade das variáveis contTotal e contMaior10. 🙂
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now