Logo Hardware.com.br
kale
kale Zerinho Registrado
620 Mensagens 6 Curtidas

Problema com algoritmo

#1 Por kale 17/02/2010 - 10:59
Bom fiz esse algoritmo

#include
using namespace std;
int main()
{
float soma=0,p,obra=0;/*valor da peça , total e valor da mao de obra*/
int resp=0,cont=0; /*cont = a continuidade do programa*/



cout<<"Coloque o Valor da mao de obra:\n";
cin>> obra;

cout<<"Qual a quantidade de pecas utilizadas:\n";
cin>> resp;


while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>p;
cont++;
}
cout<<"O valor da Mao de obra :"<< obra<<"\n\n\n";

cout<<"O valor total das pecas :"<< p<<"\n\n\n";
soma=p+obra;
cout<<"O valor total do servico :"<
system("PAUSE");
return 0;
}

so que no while , a variavel "p" nao está armazenando mais de um valor quando eu peço para repitir o que pode ser?
TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#7 Por TerraSkilll
17/02/2010 - 13:15
kale
Não sou especialista em C, mas não seria o caso de você incrementar o valor de p , na linha cin>>p;?

Ficaria mais ou menos assim:
int h=0;
(...)
while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>h;
p += h;
cont++;
}


ou mesmo

int h=0;
(...)
while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>h;
p = p + h;
cont++;
}


pois, se você simplesmente faz cin>>p;, eu suponho que ele fique com apenas o último valor digitado (ficar com o primeiro é realmente estranho).

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
kale
kale Zerinho Registrado
620 Mensagens 6 Curtidas
#9 Por kale
17/02/2010 - 13:25
TerraSkilll disse:
kale
Não sou especialista em C, mas não seria o caso de você incrementar o valor de p , na linha cin>>p;?

Ficaria mais ou menos assim:
int h=0;
(...)
while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>l;
p += h;
cont++;
}

ou mesmo

int h=0;
(...)
while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>l;
p = p + h;
cont++;
}

pois, se você simplesmente faz cin>>p;, eu suponho que ele fique com apenas o último valor digitado (ficar com o primeiro é realmente estranho).

Abraço.



Bom pessoal olhando a dica do nosso amigo , fiz o seguinte#include
using namespace std;
int main()
{
float soma=0,p,obra=0;/*valor da peça , total e valor da mao de obra*/
int resp=0,cont=0; /*cont = a continuidade do programa*/



cout<<"Coloque o Valor da mao de obra:\n";
cin>> obra;

cout<<"Qual a quantidade de pecas utilizadas:\n";
cin>> resp;


while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>p;
cont++;
p=p+p
}
cout<<"O valor da Mao de obra :"<< obra<<"\n\n\n";

cout<<"O valor total das pecas :"<< p<<"\n\n\n";
soma=p+obra;
cout<<"O valor total do servico :"<
system("PAUSE");
return 0;
}
MAEEEEEEEE VEM ME LIMPAAAAAAAAA



A PEDIDOS TROQUEI
jcferranti
jcferranti General de Pijama Registrado
4.7K Mensagens 162 Curtidas
#12 Por jcferranti
17/02/2010 - 13:57
Cara, vamos ver
[code=rich]
while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>p;
cont++;
}[/code]o que vc está fazendo aqui é recebendo valores e colocando em p. Isso é importante entender. Vc não mandou somar os valores em p, vc mandou colcoar em p, então cada valor recebido é colocado em p apagando o valor atual de p e colocando um novo. vc não está somando, está recebendo valores.
[code=rich]
while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>temp;
p=p+temp;
cont++;
}[/code]Pronto. aqui, vc recebe os novos valores em uma váriavel temporária e posteriormente soma essa variavel com o que tem em p, e joga o resultado em p novamente. Vc está somando os valores que está digitando.
è isso que vc queria?

[code=rich]
while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>p;
cont++;
p=p+p
}[/code]Não! aqui ele não está somando os dois primeiros que vc coloca. ele está dobrando o primeiro valor que vc colocou. se vc coloca 2 e 2 ele dá 4, se colocar 2 e 1 dá 4 tb. Observe.


PS.: Se vc quer que no final ele exiba todos os valores que vc digitou e não some-os, terá que trabalhar com vetores.
Casa:MS Windows Seven (empolgando)
Trampo: MS Windows Seven (desapontando)

Quer um Fórum exclusivamente sobre Open Source? Aqui: www.linuxbsd.com.br/forum
TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#13 Por TerraSkilll
17/02/2010 - 14:01
kale
desculpa 3 pots seguidos

Você pode editar sua mensagem depois de enviada clicando no botão editar. Evite postar em sequência, pois é contra as regras.

Não sei se você notou, mas eu criei uma outra variável "h" para receber o "cin>>h;". Você não pode usar a variável p para isso, pois é nela que você está guardando o valor. Não faça "p = p + p".

Resumindo:

#include
using namespace std;
int main()
{
float soma=0,p,obra=0;/* valor da peça , total e valor da mao de obra */
int resp=0,cont=0; /* cont = a continuidade do programa */
float h; /* variavel para pegar o valor da peça dentro do while */

cout<<"Coloque o Valor da mao de obra:\n";
cin>> obra;

cout<<"Qual a quantidade de pecas utilizadas:\n";
cin>> resp;

while(resp>cont)
{
cout<<"Coloca o Valor da pecas:\n";
cin>>h; /* aqui deve ser h (ou outra variável), não p */
p=p+h; /* somando h ao p, nunca p ao p */
cont++;
}
cout<<"O valor da Mao de obra :"<< obra<<"\n\n\n";

cout<<"O valor total das pecas :"<< p<<"\n\n\n";
soma=p+obra;
cout<<"O valor total do servico :"<
system("PAUSE");
return 0;
}


Notou a diferença?

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
kale
kale Zerinho Registrado
620 Mensagens 6 Curtidas
#15 Por kale
17/02/2010 - 14:32
na verdade eu quero assim , o valor total das peças somadas

e o valor total do serviço ! mas acho que a dica do terraskill agora deu pra mim intender ,

pessoal se poderem me explica melhor sobre vetores fico feliz!


agora no caso do jcferranti vbmenu_register("postmenu_4823258", true);
PS.: Se vc quer que no final ele exiba todos os valores que vc digitou e não some-os, terá que trabalhar com vetores.
exemplo , e se eu quiser colocar separado o valor de cada peça e com o nome delas e no final apresentar o total ?
MAEEEEEEEE VEM ME LIMPAAAAAAAAA



A PEDIDOS TROQUEI
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal