#farias 0 Denunciar post Postado Fevereiro 15, 2008 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
quitZAUMMM 18 Denunciar post Postado Fevereiro 15, 2008 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
#farias 0 Denunciar post Postado Fevereiro 15, 2008 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
#farias 0 Denunciar post Postado Fevereiro 15, 2008 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
quitZAUMMM 18 Denunciar post Postado Fevereiro 15, 2008 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
#farias 0 Denunciar post Postado Fevereiro 17, 2008 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
quitZAUMMM 18 Denunciar post Postado Fevereiro 17, 2008 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites