Ir para conteúdo

POWERED BY:

Arquivado

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

#farias

[Resolvido] codigo

Recommended Posts

Amigos virtuais estou com uma bronca pequena aqui mais que não estou conseguindo resolver, é o seguinte tenho uma "função que está funcionando corretamente e um procedimento (a bronca é no procedimento)" quando vou transformar "minutos em horas e minutos" não estou conseguindo pegar os minutos que seria o resto da divisão se puderem me ensinar agradeço. Os nome das variáceis não estão muito sugestivos mais estão compreensíveis. obrigado!!!

 

 

#include <cstdlib>
#include <iostream>
#include <cmath>

using namespace std;				

int transformarhorasmin(int h, int min)
	{
		int total1,total2;
		
		total1 = 60 * h;
		total2 = total1 + min;
		return total2;
	}

void transformaminhorasmin(int min)
	 { 
		 int  total1,total2;
		 float inteiro,total3;
		 
		 total1 = min/60;		 
		 
		 if (min%60 == 0 )
			 cout<<"HORAS IGUAL HA ----> " << total1;
	 
		 if (total1%60 != 0 ){			 //É AQUI QUE COMEÇA O PROBLEMA
				 total2 = floor(total1);
				 cout<<"HORAS IGUAL HA-----> " <<total2;
			if (total2%60 != 0)
			   total3 = total1 - floor(total1);	
			   cout<<"MINUTOS IGUAL HA-----> " <<total3;
				 }	  //É AQUI ONDE TERMINA O PROBLEMA POR FAVOR ME AJUDEM
			 cout<<"\n";			   
	 }

int main(int argc, char *argv[])
{
	int n,retornomin,minutos,minutos2,horas;
	cout<<"DIGITE UM NUMERO DIFRENTE DE ZERO PARA COMECAR-----> ";
	cin>>n;
	
	while (n != 0 )
	{

	  cout<<"DIGITE A QUANTIDADE DE HORAS ---->";
	  cin>>horas;
	  
	  cout<<"DIGITE A QUANTIDADE DE MINUTOS ---->";
	  cin>>minutos;

	  transformarhorasmin(horas,minutos);	  
	  retornomin = transformarhorasmin(horas,minutos);

	  cout<< "VALOR EM MINUTOS HE -----> " << retornomin;
	  cout<<"\n";
	  cout<<"DIGITE A QUANTIDADE DE MINUTOS ---->";
	  cin>>minutos2;
	  transformaminhorasmin(minutos2);
	  
	  cout<<"DIGITE UM NUMERO DIFRENTE DE ZERO PARA COMECAR-----> ";
	  cin>>n;		  
	
	}
	
	
	system("PAUSE");
	return EXIT_SUCCESS;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha naum tem como eu compilar aki o prog.

+ tente alterar isso:

total1 = min/60;
total1 é uma variavel q recebe uma divisão, por isso declare ela como float!

depois você pode arrendondar ela se quiser com as funções floor(); ou ceil();

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha naum tem como eu compilar aki o prog.

+ tente alterar isso:

total1 = min/60;
total1 é uma variavel q recebe uma divisão, por isso declare ela como float!

depois você pode arrendondar ela se quiser com as funções floor(); ou ceil();

Já fiz as alterações que você me falou mais não funcionou não sei o que está acontecendo !!!

#include <cstdlib>
#include <iostream>
#include <cmath>

using namespace std;				

int transformarhorasmin(int h, int min)
	{
		int total1,total2;
		
		total1 = 60 * h;
		total2 = total1 + min;
		return total2;
	}

void transformaminhorasmin(int min)
	 { 
		 float  total1,total2;
		 float inteiro,total3;
		 
		 total1 = min/60;		 
		 
		 if (min%60 == 0 )
			 cout<<"HORAS IGUAL HA ----> " << total1;
	 
		 if (total1/60 != 0 ){			 //É AQUI QUE COMEÇA O PROBLEMA
				 total2 = floor(total1);
				 cout<<"HORAS IGUAL HA-----> " <<total2;
			if (total2/60 != 0)
			   total3 = total1 - floor(total1);	
			   cout<<"MINUTOS IGUAL HA-----> " <<total3;
				 }	  //É AQUI ONDE TERMINA O PROBLEMA POR FAVOR ME AJUDEM
			 cout<<"\n";			   
	 }

int main(int argc, char *argv[])
{
	int n,retornomin,minutos,minutos2,horas;
	cout<<"DIGITE UM NUMERO DIFRENTE DE ZERO PARA COMECAR-----> ";
	cin>>n;
	
	while (n != 0 )
	{

	  cout<<"DIGITE A QUANTIDADE DE HORAS ---->";
	  cin>>horas;
	  
	  cout<<"DIGITE A QUANTIDADE DE MINUTOS ---->";
	  cin>>minutos;

	  transformarhorasmin(horas,minutos);	  
	  retornomin = transformarhorasmin(horas,minutos);

	  cout<< "VALOR EM MINUTOS HE -----> " << retornomin;
	  cout<<"\n";
	  cout<<"DIGITE A QUANTIDADE DE MINUTOS ---->";
	  cin>>minutos2;
	  transformaminhorasmin(minutos2);
	  
	  cout<<"DIGITE UM NUMERO DIFRENTE DE ZERO PARA COMECAR-----> ";
	  cin>>n;		  
	
	}
	
	
	system("PAUSE");
	return EXIT_SUCCESS;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha naum tem como eu compilar aki o prog.

+ tente alterar isso:

total1 = min/60;
total1 é uma variavel q recebe uma divisão, por isso declare ela como float!

depois você pode arrendondar ela se quiser com as funções floor(); ou ceil();

meu problema na realidade é uma função que extraia o resto da divisão "minutos" mais como o c++ não dá, só dá uma pra extrair o quociente ai eu tenho que subtrair

 

ex: 2.7 = 2 + 0,7

com o uso do floor eu pego o 2

e subtraindo eu pego 0,7

 

se tiver uma função que me retorne o resto beleza!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha uma funçãozinha pra calcular o resto:

int resto(int x, int y){
	int q, r;
	q = x/y;
	r = x - q * y;
	return(r);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha uma funçãozinha pra calcular o resto:

int resto(int x, int y){
	int q, r;
	q = x/y;
	r = x - q * y;
	return(r);
}

Cara, muito bom valeu mesmo acho que por ai dá pra sair .

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.