C++kana Postado Fevereiro 13, 2008 Denunciar Share Postado Fevereiro 13, 2008 Por favor me ajudem estou tentando refazer os exercicios dados em aula.....Estava tentando compilar o meu códio no C++ Builder 6 e dava o seginte erro:"Call to underfined 'rotsoma'segue abaixo o código#include <vcl.h> #include <stdio.h> #include <conio.h> #pragma hdrstop //--------------------------------------------------------------------------- float r,a,b; float calculo (float x, float y, char operador); #pragma argsused int main(int argc, char* argv[]) { char opcao; opcao = '0'; while(opcao != '5') { clrscr(); printf("Menu Principal\n"); printf("---------------\n"); printf("\n"); printf("\n"); printf("1 - Soma\n"); printf("2 - subtracao\n"); printf("3 - Multiplicacao\n"); printf("4 - Divisao\n"); printf("5 - Fim de programal\n"); printf("\n"); printf("Escolha uma opcao: "); scanf("%c",&opcao); fflush(stdin); if(opcao != '5'){ switch(opcao){ case '1': rotsoma(); break; case '2': rotsubtracao(); break; case '3': rotmultiplicacao; break; case '4': rotdivisao(); break; default: printf("Opcao invalida - tente novamente"); getche(); } } } } entrada() { printf("Entre um valor para A: "); scanf("%f",&a); printf("Entre um valor para B: "); scanf("%f",&b); } float calculo(float x, float y, char operador) { switch (operador) { case '+': return(x + Y); case '-': return(x - Y); case '*': return(x * Y); case '/': return(x / Y); } } saida() { printf("\n"); printf("\n"); printf("O resultado entre A eB = %f",r); printf("\n"); fflush(stdin); getche; } rotsoma() { clrscr(); printf("Rotina de Soma\n"); printf("---------------\n"); printf("\n"); printf("\n"); entrada(); r = calculo(a,b,'+'); saida(); } rotsubtracao() { clrscr(); printf("Rotina de Subtracao\n"); printf("---------------\n"); printf("\n"); printf("\n"); entrada(); r = calculo(a,b,'-'); saida(); } rotmultiplicacao() { clrscr(); printf("Rotina de Multiplicacao\n"); printf("---------------\n"); printf("\n"); printf("\n"); entrada(); r = calculo(a,b,'*'); saida(); } rotdivisao() { clrscr(); printf("Rotina de Divisa0\n"); printf("---------------\n"); printf("\n"); printf("\n"); entrada(); r = calculo(a,b,'/'); saida(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Annon Postado Fevereiro 14, 2008 Denunciar Share Postado Fevereiro 14, 2008 Declare os protótipos das rotinas de operações antes da função main() Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 C++kana Postado Fevereiro 15, 2008 Autor Denunciar Share Postado Fevereiro 15, 2008 Kara!!Valeu!!!Acho que conseguir fazer mais ou menos que você me orientou....beleza... consegui rodar o programa....só que quando executa as operações (soma, subtraçao, divisão ou multiplicação), ele em seguida pede para entrar com "A" e "B" novamente, só que ao invés de trazer o resultado, ele volta para o menu inicial.O correto não seria ele voltar para o menu logo que terminar a primeira operação?Sera que tem algo errado com a rotina de saída? Se puder me ajudar, PLEASE....De qualquer forma valeu pela dica!!!!segue o código:#include <vcl.h>#include <stdio.h>#include <conio.h>#pragma hdrstop//--------------------------------------------------------------------------- float r,a,b,y,x; float calculo (float x, float y, char operador); float calculo(float x, float y, char operador) { switch (operador) { case '+': return(x + y); case '-': return(x - y); case '*': return(x * y); case '/': return(x / y); } } entrada() { printf("Entre um valor para A: "); scanf("%f",&a); printf("Entre um valor para B: "); scanf("%f",&b); } saida() { printf("\n"); printf("\n"); printf("O resultado entre A eB = %f",r); printf("\n"); fflush(stdin); getche; } rotsoma() { clrscr(); printf("Rotina de Soma\n"); printf("---------------\n"); printf("\n"); printf("\n"); entrada(); r = calculo(a,b,'+'); saida(); } rotsubtracao() { clrscr(); printf("Rotina de Subtracao\n"); printf("---------------\n"); printf("\n"); printf("\n"); entrada(); r = calculo(a,b,'-'); saida(); } rotmultiplicacao() { clrscr(); printf("Rotina de Multiplicacao\n"); printf("---------------\n"); printf("\n"); printf("\n"); entrada(); r = calculo(a,b,'*'); saida(); } rotdivisao() { clrscr(); printf("Rotina de Divisa0\n"); printf("---------------\n"); printf("\n"); printf("\n"); entrada(); r = calculo(a,b,'/'); saida(); } #pragma argsused int main(int argc, char* argv[]) { char opcao; opcao = '0'; while(opcao != '5') { clrscr(); printf("Menu Principal\n"); printf("---------------\n"); printf("\n"); printf("\n"); printf("1 - Soma\n"); printf("2 - subtracao\n"); printf("3 - Multiplicacao\n"); printf("4 - Divisao\n"); printf("5 - Fim de programal\n"); printf("\n"); printf("Escolha uma opcao: "); scanf("%c",&opcao); fflush(stdin); if(opcao != '5'){ switch(opcao){ case '1': rotsoma(); entrada(); saida(); break; case '2': rotsubtracao(); entrada(); saida(); break; case '3': rotmultiplicacao(); entrada(); saida(); break; case '4': rotdivisao(); entrada(); saida(); break; default: printf("Opcao invalida - tente novamente"); getche(); } } } } //--------------------------------------------------------------------------- Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 == Douplus == Postado Fevereiro 17, 2008 Denunciar Share Postado Fevereiro 17, 2008 (editado) Loguei dessa vez...Bom, repare na sua função saida():saida() { printf("\n"); printf("\n"); printf("O resultado entre A eB = %f",r); printf("\n"); fflush(stdin); getche; } getche é simplesmente um handle para a função, use a sintaxe adequada para chamar funções: (...) getche();Outra coisa, note que nas funções: rotsoma, rotsubtracao, rotmultiplicacao e rotdivisao você invoca saida(). no laço switch de main() o programa chama as rotinas de operações e invoca saida() novamente.Acho que é isso,até a próxima! Editado Fevereiro 17, 2008 por == Douplus == Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 C++kana Postado Fevereiro 17, 2008 Autor Denunciar Share Postado Fevereiro 17, 2008 valeu!!!!!!!!!!!!!!!!!Depois de corrigir as besteirnhas como você me orientou, o programa rodou normalmente......Muiito obrigado....abração ....até...... :D :D :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
C++kana
Por favor me ajudem estou tentando refazer os exercicios dados em aula.....
Estava tentando compilar o meu códio no C++ Builder 6 e dava o seginte erro:
"Call to underfined 'rotsoma'
segue abaixo o código
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.