Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pontos

[Resolvido] Problemas com exercico

Recommended Posts

Pessoal sou novo no forum, meu portugues e pessimo, mas esse nao e o problema.

e sim esse.

Uma fábrica tem 3 representantes. Cada um recebe uma comissão calculada a partir do número de itens de um pedido,

segundo o seguinte critério: para menos de 20 itens vendidos, a comissão é de 10% do valor total do pedido; para

pedidos de 20 a 49 itens, a comissão é 15%; para pedidos de 50 a 74 itens, é de 20%; e para pedidos iguais ou

superiores a 75 itens, é de 25%. Elabore um programa que processe alguns pedidos. Para cada pedido o programa deve

ler o código do representante (1, 2 ou 3), o valor total do pedido e o total de itens do pedido. O programa deve

informar:o valor da comissão de cada pedido; o total de vendas dos pedidos processados; o total de comissões para

cada representante e o total de comissões que a companhia pagou aos seus representantes.

 

esse e o meu codigo.

#include<iostream.h>
int main()
{
	int pedido, iten_pedido, comissao, rep, op;
	float Val_pedido, cm;
	bool control=true;
	while(control==true)
	{
						cout<<"°_____________________________________________________°"<<endl;
						cout<<"|				  Pagamento de comissao			  |"<<endl;
						cout<<"|________________________Menu_________________________|"<<endl;
						cout<<"1 - Iniciar"<<endl<<"3 - Finalizar"<<endl;
						cout<<"Informe o que deseja realizar: "<<endl;
						cin>>op;
						while(op==3)
						{
									return 0;
						}
						while(op!=1)
						{
									cout<<"Opcao invalida "<<endl;
									cout<<"Digite novamente:"<<endl;
									cin>>op;
									if(op==3)
									{
										return 0;
									}
						}
						if(op==1)
						{
								  cout<<"Digite o codigo do representante para iniciar: "<<endl;
								  cin>>rep;
								  while(rep!= 1 && rep!= 3)
								  {
											  cout<<"Digite novamente, o codigo digitado esta invalido"<<endl;
											  cin>>rep;
								  }
						}

						cout<<"Digite o valor total do pedido: " &&cin>>Val_pedido&&cout<<"E a quantidade de itens do pedido: "&&cin>>iten_pedido;
						if(iten_pedido< 20)
						{
										Val_pedido=(Val_pedido*0.10);
										 Val_pedido=Val_pedido+Val_pedido;
						}
						if(iten_pedido>20 && iten_pedido<49)
						{
										Val_pedido=(Val_pedido*0.15);
										 Val_pedido=Val_pedido+Val_pedido;
						}
						if(iten_pedido>50 && iten_pedido<74)
						{
										Val_pedido=(Val_pedido*0.20);
										 Val_pedido=Val_pedido+Val_pedido;
						}
						if(iten_pedido>75)
						{
										Val_pedido=(Val_pedido*0.25);
										 Val_pedido=Val_pedido+Val_pedido;
						}
						cout<<"Deseja realizar mais uma secao?"<<endl;
						cout<<"1 - sim  2 - nao"<<endl;
						cin>>pedido;
						while(pedido!= 1 && pedido!= 2)
						{
							cout<<"opcao invalida, digite novamente: "<<endl;
							cin>>pedido;
						}
						while(pedido==1)
						 {
										cout<<"Digite o valor total do pedido: " &&cin>>Val_pedido&&cout<<"E a quantidade de itens do pedido: "&&cin>>iten_pedido;
										cout<<"Deseja realizar mais uma secao?"<<endl;
										cout<<"1 - sim  2 - nao"<<endl;
										cin>>pedido;

										if(pedido==2)
										{
													  if(iten_pedido<= 20)
													  {
																	  Val_pedido=(Val_pedido*0.10);
																	  Val_pedido=Val_pedido+Val_pedido;
													  }
													  if(iten_pedido>20 && iten_pedido<=49)
													  {
																		 Val_pedido=(Val_pedido*0.15);
																		  Val_pedido=Val_pedido+Val_pedido;
													  }
													  if(iten_pedido>=50 && iten_pedido<=74)
													  {
																		 Val_pedido=(Val_pedido*0.20);
																		  Val_pedido=Val_pedido+Val_pedido;
													  }
													  if(iten_pedido>=75)
													  {
																		Val_pedido=(Val_pedido*0.25);
																		 Val_pedido=Val_pedido+Val_pedido;
													  }


										}

					   }

					   cout<<"Comissao a receber: "<<Val_pedido<<endl;

	system("PAUSE");
	system("cls");
	}
	system("PAUSE");
}

tenho que exibir a soma de todas as comissoens juntas ,mas nao importa o que eu faca, sempre e exibido soment o valor da ultima comissao, ou seja do resto do exercicio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma olhada por cima, acredito estar errando aqui:

Val_pedido=(Val_pedido*0.10);

Está atribuindo ao Val_pedido apenas a multiplicação do mesmo por 0.10...ai sempre quando vai entrar com novo valor, ele apaga o que tinha na variável Val_pedido, outra coisa, está repetindo o mesmo código duas vezes, isso não é necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma olhada por cima, acredito estar errando aqui:

Val_pedido=(Val_pedido*0.10);

Está atribuindo ao Val_pedido apenas a multiplicação do mesmo por 0.10...ai sempre quando vai entrar com novo valor, ele apaga o que tinha na variável Val_pedido, outra coisa, está repetindo o mesmo código duas vezes, isso não é necessário.

 

entao qual seria o melhor modo de fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim ficol melhor.

 

#include<iostream.h>
int main()
{
	int pedido, iten_pedido, comissao, rep, op,cont=1;
	float Val_pedido,cm=0;
	bool control=true;
	while(control==true)
	{
		cout<<"°_____________________________________________________°"<<endl;
		cout<<"|				  Pagamento de comissao			  |"<<endl;
		cout<<"|________________________Menu_________________________|"<<endl;
		cout<<"1 - Iniciar"<<endl<<"3 - Finalizar"<<endl;
		cout<<"Informe o que deseja realizar: "<<endl;
		cin>>op;
		while(op==3)
		{
			return 0;
		}
		while(op!=1)
		{
			cout<<"Opcao invalida "<<endl;
			cout<<"Digite novamente:"<<endl;
			cin>>op;
			if(op==3)
			{
				return 0;
			}
		}
		if(op==1)
		{
			cout<<"Digite o codigo do representante para iniciar: "<<endl;
			cin>>rep;
			while(rep!= 1 && rep!=2 &&rep!= 3)
			{
				cout<<"Digite novamente, o codigo digitado esta invalido"<<endl;
				cin>>rep;
			}
		}
		while(rep==1)
		{
			cout<<"Digite o valor total do pedido: " &&cin>>Val_pedido&&cout<<"E a quantidade de itens do pedido: "&&cin>>iten_pedido;
			cout<<"Deseja realizar mais uma secao?"<<endl;
			cout<<"1 - sim	2 - nao"<<endl;
			cin>>rep;
			if(rep==1)
			{
				if(iten_pedido<= 20)
				{
					Val_pedido=(Val_pedido*0.10);
				}
				if(iten_pedido>20 && iten_pedido<=49)
				{
					Val_pedido=(Val_pedido*0.15);
				}
				if(iten_pedido>=50 && iten_pedido<=74)
				{
					Val_pedido=(Val_pedido*0.20);
				}
				if(iten_pedido>=75)
				{
					Val_pedido=(Val_pedido*0.25);
				}

			}
			cout<<cont++<<" O valor dessa comic a receber: "<<Val_pedido<<endl;
		}

	system("PAUSE");
	system("cls");
	}
	system("PAUSE");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda esta tendo problemas com esse codigo?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, e com os codigos dos fornecedores, so aceita o numero1 agora o 2 e 3 faz e ele começa de novo, e somar todas as comicoes dos pedidos juntas em uma soh.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem coisas muito feia no seu codigo tipo isso:

while(op==3)
		{
			return 0;
		}
você pode fazer isso no primeiro while tipo usa a primeira condição e o operador ou '||'..

 

e isso tbm é coisa feia:

if(op==3)
			{
				return 0;
			}

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso e pra fechar o programa quando terminar

Compartilhar este post


Link para o post
Compartilhar em outros sites

msm assim..

isso naum c faz desse jeito ae..

alias nem precisa do jeito q esta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz assim e quase deu certo. mas melhoru em relacao ao que queria.

Agora o que falta e somar todos os pedidos processados.

#include<iostream.h>
int main()
{
	int pedido=0<3, iten_pedido, comissao, rep, op,cont=1;
	float Val_pedido;
	bool control=true;
	while(control==true)
	{
		cout<<"°_____________________________________________________°"<<endl;
		cout<<"|				  Pagamento de comissao			  |"<<endl;
		cout<<"|________________________Menu_________________________|"<<endl;
		cout<<"1 - Iniciar"<<endl<<"3 - Finalizar"<<endl;
		cout<<"Informe o que deseja realizar: "<<endl;
		cin>>op;
		if(op==3)
		{
			return 0;
		}
		while(op!=1)
		{
			cout<<"Opcao invalida "<<endl;
			cout<<"Digite novamente:"<<endl;
			cin>>op;
			if(op==3)
			{
				return 0;
			}
		}
		if(op==1)
		{
			cout<<"Digite o codigo do representante para iniciar: "<<endl;
			cin>>rep;



			while(rep!= 1&&rep!=2&&rep!=3 )
			{
				cout<<"Digite novamente, o codigo digitado esta invalido"<<endl;
				cin>>rep;
			}
		}
		while(rep==rep )
		{
			cout<<"Digite o valor total do pedido: " &&cin>>Val_pedido&&cout<<"E a quantidade de itens do pedido: "&&cin>>iten_pedido;
			if(iten_pedido<= 20)
			{
				Val_pedido=(Val_pedido*0.10);
			}
			if(iten_pedido>20 && iten_pedido<=49)
			{
				Val_pedido=(Val_pedido*0.15);
			}
			if(iten_pedido>=50 && iten_pedido<=74)
			{
				Val_pedido=(Val_pedido*0.20);
			}
			if(iten_pedido>=75)
			{
				Val_pedido=(Val_pedido*0.25);
			}
			cout<<cont++<<" O valor dessa comissao a receber: "<<Val_pedido<<endl<<endl;
			cout<<"Deseja realizar mais uma secao?"<<endl;
			cout<<"1 - sim	5 - nao"<<endl;
			cin>>rep;
		}
	system("PAUSE");
	system("cls");
	}
	system("PAUSE");
}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum entendi direito oq o algoritmo tem q fazer..

+ to com sono e tentei algo pra você veja:

#include<iostream>

using namespace std;

int main()
{
	int pedido=0<3, iten_pedido, comissao, rep, op,cont=1;
	float Val_pedido;
	char resp = '1';
	cout<<"°_____________________________________________________°"<<endl;
	cout<<"|				  Pagamento de comissao			  |"<<endl;
	cout<<"|________________________Menu_________________________|"<<endl;
	cout<<"1 - Iniciar"<<endl<<"3 - Finalizar"<<endl;
	cout<<"Informe o que deseja realizar: "<<endl;
	cin>>op;
	while(true){
		if(op==3) break;
		if(op==1){
				cout<<"Digite o codigo do representante para iniciar: "<<endl;
				cin>>rep;
				while(rep < 1 || rep > 3){
					   cout<<"Digite novamente, o codigo digitado esta invalido"<<endl;
					   cin>>rep;
				}
				cout<<"Digite o valor total do pedido: " &&cin>>Val_pedido&&cout<<"E a quantidade de itens do pedido: "&&cin>>iten_pedido;
				if(iten_pedido<= 20) Val_pedido+=(Val_pedido*0.10);
				if(iten_pedido>20 && iten_pedido<=49) Val_pedido+=(Val_pedido*0.15);
				if(iten_pedido>=50 && iten_pedido<=74) Val_pedido+=(Val_pedido*0.20);
				if(iten_pedido>=75) Val_pedido+=(Val_pedido*0.25);
				cout<<cont++<<" O valor dessa comissao a receber: "<<Val_pedido<<endl<<endl;
				cout<<"Deseja realizar mais uma secao?"<<endl;
				cout<<"1 - sim	2 - nao"<<endl;
				cin>>resp;
		}
		else{
			cout<<"Opcao invalida "<<endl;
			cout<<"Digite novamente:"<<endl;
			cin>>op;	 
			}
	}
	system("PAUSE");
	return 0;
}

fala oq + tem q fazer, tente e volta com as duvidas

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom valew pela ajuda, conssegui terminar o exercicio, foi mais ou menos o que você fez, so que somou a comissao ao valor do pedido, isso nao tem problema.

Terminado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.