Logo Hardware.com.br
FabianoTraple
FabianoTrapl... Veterano Registrado
1.2K Mensagens 17 Curtidas
#4 Por FabianoTrapl...
15/09/2006 - 23:09
Rui_Carlos...



#include <stdio.h>

void main()
{
double number1 = 0.0; /* First operand value a decimal number */
double number2 = 0.0; /* Second operand value a decimal number */
char operation = 0; /* Operation - must be +, -, *, /, or % */
char answer = 0; /* Added to store answer for continuing */

start: /* Label added for goto destination */
printf("\nEnter the calculation as number operator number\n&quot; /*Modified */
scanf("%lf %c %lf", &number1, &operation, &number2);

/* Code to check the input goes here */
switch(operation)
{
case '+': /* No checks necessary for add */
printf("= %lf\n", number1 + number2);
break;

case '-': /* No checks necessary for subtract */
printf("= %lf\n", number1 - number2);
break;

case '*': /* No checks necessary for multiply */
printf("= %lf\n", number1 * number2);
break;

case '/':
if(number2 == 0) /* Check second operand for zero */
printf("\n\n\aDivision by zero error!\n&quot;
else
printf("= %lf\n", number1 / number2);
break;

case '%': /* Check second operand for zero */
if((long)number2 == 0)
printf("\n\n\aDivision by zero error!\n&quot;
else
printf("= %ld\n", (long)number1 % (long)number2);
break;

default: /* Operation is invalid if we get to here */
printf("\n\n\aIllegal operation!\n&quot;
}
/* The following statements added to prompt for continuing */
printf("\n Do you want to do another calculation? (y or n): &quot;
scanf(" %c", &answer);
if(answer == 'y' || answer == 'Y')
goto start; /* Go back to the beginning */
}


Esse goto pode ser substituido por um laço "do{...}while()" ...
[email]umbrsuporte@hotmail.com[/email] bebi_demais.gif
FabianoTraple
FabianoTrapl... Veterano Registrado
1.2K Mensagens 17 Curtidas
#6 Por FabianoTrapl...
17/09/2006 - 17:09
xumbi...


#include <stdio.h>

int main()
{
double number1 = 0.0; /* First operand value a decimal number */
double number2 = 0.0; /* Second operand value a decimal number */
char operation = 0; /* Operation - must be +, -, *, /, or % */
char answer = 0; /* Added to store answer for continuing */

char Fim = 0;
do
{
printf("\nEnter the calculation as number operator number\n&quot; /*Modified */
scanf("%lf %c %lf", &number1, &operation, &number2);

/* Code to check the input goes here */
switch(operation)
{
case '+': /* No checks necessary for add */
printf("= %lf\n", number1 + number2);
break;

case '-': /* No checks necessary for subtract */
printf("= %lf\n", number1 - number2);
break;

case '*': /* No checks necessary for multiply */
printf("= %lf\n", number1 * number2);
break;

case '/':
if(number2 == 0) /* Check second operand for zero */
printf("\n\n\aDivision by zero error!\n&quot;
else
printf("= %lf\n", number1 / number2);
break;

case '%': /* Check second operand for zero */
if((long)number2 == 0)
printf("\n\n\aDivision by zero error!\n&quot;
else
printf("= %ld\n", (long)number1 % (long)number2);
break;

default: /* Operation is invalid if we get to here */
printf("\n\n\aIllegal operation!\n&quot;
}
/* The following statements added to prompt for continuing */
printf("\n Do you want to do another calculation? (y or n): &quot;
scanf(" %c", &answer);
if(answer != 'y' || answer != 'Y') Fim = 1;

} while( Fim == 0 );

return(0);
}


:mrgreen:
[email]umbrsuporte@hotmail.com[/email] bebi_demais.gif
FabianoTraple
FabianoTrapl... Veterano Registrado
1.2K Mensagens 17 Curtidas
#12 Por FabianoTrapl...
17/09/2006 - 20:41
xumbi...

Tem como fazer sim, porém, eu não tenho muito tenho disponível para ajudar.
Tente fazer algumas alterações nesse código dessa calculadora, se não conseguir poste o código que ajudarei a corrigi-lo com prazer.

:mrgreen:


Somente exclarecendo !

O uso do "goto"em programação equivale ao uso do "do{}", "do{}while", e do "for", o compilador converte qualquer um desses para o "goto".

tb não recomendo o uso do goto por iniciantes, porém ele é muito útil para quando vc tem que retornar a um determinado ponto exato do código, e isso é impossível com comandos de laço...
[email]umbrsuporte@hotmail.com[/email] bebi_demais.gif
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal