math.c

来自「Source code for driving RFM01 fm radio r」· C语言 代码 · 共 56 行

C
56
字号
// Testowanie biblioteki funkcji matematycznych

#include <avr/io.h>		// dost阷 do rejestr體
#include <math.h>		// funkcje matematyczne
#include <stdio.h>		// standardowe wej渃ie/wyj渃ie
#include "uart.h"		// obs硊ga portu szeregowego

//----------------------------------------------------------

int main(void)		// program g丑wny
{
  float a,b,c,delta,sqrt_delta,x1,x2;

  UART_init();		// inicjalizacja portu szeregowego

  fdevopen(UART_putchar, UART_getchar, 0);

  printf_P(PSTR("Test biblioteki matematycznej\r\n"));

  while(1)		// p阾la niesko馽zona
  {
    printf_P(PSTR("\r\nRownanie kwadratowe"));
    printf_P(PSTR("\r\nPodaj wpolczynnik a: "));
    scanf("%f",&a);
    printf_P(PSTR("\r\nPodaj wpolczynnik b: "));
    scanf("%f",&b);
    printf_P(PSTR("\r\nPodaj wpolczynnik c: "));
    scanf("%f",&c);
    printf_P(PSTR("\r\nPostac rownania: %fx^2+%fx+%f=0"), a, b, c);
    delta=b*b-4*a*c;
    a*=2;	// od tej pory a nie jest potrzebne
		// wpisujemy tam 2*a 
    printf_P(PSTR("\r\nDelta: %f"),delta);
    if (delta<0)
    {
      printf_P(PSTR("\r\nDelta mniejsza od zera - brak pierwiastkow!!!"));
    }
    else if (delta==0)
    {
      printf_P(PSTR("\r\nDelta rowna zero - jeden pierwiastek"));
      x1=-b/a;
      printf_P(PSTR("\r\nx=%f\r\n"),x1);
    }
    else
    {
      printf_P(PSTR("\r\nDelta wieksza od zera - dwa pierwiastki!!!"));
      sqrt_delta=sqrt(delta);
      x1=(-b-sqrt_delta)/a;
      printf_P(PSTR("\r\nx1=%f"),x1);
      x2=(-b+sqrt_delta)/a;
      printf_P(PSTR("\r\nx2=%f"),x2);
    }
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?