Autor Tema: Codificacion en C para la multiplicacion, divison y raiz cuadrada  (Leído 3888 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado OTSELECTRONICSEIRL

  • PIC10
  • *
  • Mensajes: 18
Buen dia. Estoy diseñando un wattimetro digital monofasico con PIC y necesito el codigo en C para implementar operaciones matematicas de suma, resta, multiplicaion, division, potenciacion y raiz cuadrada; ya sea para logica entera o logica decimal (la logica de la aritmetica). Todo esto es para hacer las operaciones involucradas en las formulas del calculo de Vrms, Irms, cos@ (f.d.p.), potencia activa, aparente y reactiva. Si tuvieran informacion al respecto agardeceria.
Saludos.
Si el alumno no supera al maestro, ni es bueno el alumno; ni es bueno el maestro.
- proverbio chino

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Codificacion en C para la multiplicacion, divison y raiz cuadrada
« Respuesta #1 en: 31 de Agosto de 2009, 08:43:44 »
Las operaciones de suma, resta, multiplicacion y division y las tienes implementadas en C  :shock:
Podes calcular la raiz utilizando el algoritmo Newton-Raphson, y la potencia con un bucle asi:

Código: C
  1. int potencia(int x, int y)
  2. {
  3.     int sgn;
  4.     int r=1;
  5.     if(y<0) {
  6.         y *= -1;
  7.         sgn = 1;
  8.     } else
  9.         sgn = 0;
  10.     while(y--)
  11.         r *= x;
  12.     if(sgn)
  13.         return 1/r;
  14.     return r;
  15. }

Los tipos de datos con los que trabajes deben ser los adecuados para que no se produzcan desbordes.
@fabianjsm is on twitter

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Codificacion en C para la multiplicacion, divison y raiz cuadrada
« Respuesta #2 en: 31 de Agosto de 2009, 09:38:57 »
Seguramente también vas a necesitar el calculo del coseno, incluyendo el archivo math.h puedes utilizar las funciones trigonométricas. Para el calculo de estas se realiza la serie de Taylor truncada  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro


 

anything