rods220
(usa Linux Mint)
Enviado em 01/04/2013 - 17:38h
Fala galera blz ? preciso entregar um algoritmo que resolva estes problemas
obs:o Entre parenteses e o resultado
2 2+ (4)Certo
4! (24)Certo
c (Limpar a tela e zerar a variavel) Certo
2 3 +!(120) NAO FAZ ---------
r(Err) NAO FAZ --------
Meu codigo fonte é:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
/** APS 1 de algoritimo, fazer uma calculadora
Autores:Rodolfo Faustino Da Costa , Ruan DCristo Aguiar
Licença = (by)Esta licença permite que outros distribuam, remixem, adaptem
ou criem obras derivadas, mesmo que para uso com fins comerciais,
contanto que seja dado crédito pela criação original.
http://creativecommons.org/licenses/by/3.0/br/
*/
/**Essa Funçao Retorna O Valor do Valor a+b
@param a,b
@return a+b*/
int soma (int a, int b) {
int sm;
sm = a + b;
return sm;
}
/**Essa Funçao Retorna O Valor do Valor a-b
@param a,b
@return a-b */
int subst (int a, int b) {
int sub;
sub = a - b;
return sub;
}
/**Essa Funçao Retorna A Divisao a/b
@param a,b
@return a/b */
float divisao (int a, int b) {
float div;
div = a / b;
return div;
}
/**Essa Funçao Retorna O Produto(Multiplicaçao) de a,b
@param a,b
@return a*b */
int multip (int a, int b) {
int mult;
mult = a * b;
return mult;
}
/**Essa Funçao Retorna O Valor de a^e
@param a,b
@return a^b*/
float elevado (int a, int b) {
float elev;
elev = pow( a, b);
return elev;
}
/**Essa Funçao Retorna O Valor do Resto de a/b
@param a,b
@return a%b */
int resto (int a, int b) {
int rest;
rest =(a % b);
return rest;
}
/**Essa Funçao Retorna O Valor da Raiz Quadrada de a
@param a,b
@return a+b */
float raiz (int a) {
float raiz1;
raiz1 = sqrt (a);
return raiz1;
}
/**Essa Funçao Retorna O Valor do fatorial de a
@param a
@return a! */
int fatorial (int a) {
int i, fat = 1;
for (i = a; i > 0; i--) {
fat = fat * i;
}
return fat;
}
/**Essa Funçao Retorna O Valor do logaritmo natural de a
@param a
@return log a */
float lg (int a) {
return log (a);
}
/**Essa Funçao Retorna O Valor na sequencia fibonnaci do numero a
@param a
@return fibonacci a */
int fibonacci(int n)
{
int cont, x = 0, z = 1;
if(n % 2 == 0)
{
for(cont = 2; cont != n; cont = cont + 2)
{
x = x + z;
z = x + z;
}
return z;
}
else
{
for(cont = 1; cont != n; cont = cont + 2)
{
x = x + z;
z = x + z;
}}
return x;
}
int main () {
float resultado = 0;
int a, b;
char ch;
while (ch!='t') {
printf ("%f\n\n\n",resultado);
a = 0;b = 0;
scanf (" %d", &a);
scanf (" %d", &b);
scanf (" %c", &ch);
switch (ch) {
case '+':
resultado = resultado + soma(a,b);
printf ("O Resultado e %f\n\n\n", resultado);
system ("clear");
break;
case '-':
resultado = resultado + subst (a, b);
printf ("O Resultado e %f\n\n\n", resultado);
system ("clear");
break;
case '/':
resultado = resultado + divisao(a, b);
printf ("O Resultado e %f\n\n\n", resultado);
system ("clear");
break;
case '*':
resultado = resultado + multip (a, b);
printf ("O Resultado e %f\n", resultado);
system ("clear");
break;
case '^':
resultado = resultado + elevado(a ,b);
printf ("O Resultado e %f\n\n\n",resultado);
system ("clear");
break;
case '%':
resultado = resultado + resto (a, b);
printf ("O Resultado e %f\n\n\n", resultado);
system ("clear");
break;
case 'r':
if (a>=0) {
resultado =raiz (a);
printf ("O Resultado e %f\n\n\n", resultado);
}else{
printf ("Err\n");
}
system ("clear");
break;
case 'l':
resultado = resultado + lg (a);
printf ("O Resultado e %f\n\n\n", resultado);
system ("clear");
break;
case '!':
resultado = fatorial(a);
printf (" O Resultado e %f\n\n\n", resultado);
system ("clear");
break;
case 'f':
resultado = fibonacci(a);
printf ("O Resultado e %f\n\n\n",resultado);
system ("clear");
break;
case 'c':
resultado = 0;
printf ("Calculadora Resetada!\n\n\n");
system ("clear");
break;
case 't':
ch='t';
printf ("Calculadora Desligada");
break;
default:
printf ("Err\n");
break;
}
}
// }
return 0;
}