如何求函数表达式5种解法

如何求函数表达式5种解法,第1张

5种方法如下:

(1) 待定系数法:已知函数类型,可用待定系数法求解,先设出f (x),再利用题目中给的已衫燃知条件,列出关于待定系数的方程组,进而求出待定的系数

(2)换元法:主要用于解决已知复合函数f [g (x)]的表达式求f (x)的解析式的问题,令g(x)=t,解出x,然后代入f [g (x)]中即可求得f(t),从而求得毕铅f (x),要注意新元的取值范围

(3)配凑法:配凑法是将f [g (x)]右端的代数式配凑成关于g (x)的形式,进而求出f (x)的解析式

(4)构造方程组法(消元法) :主要解决已知抽象函数关系式求解函数解析式的问题.方法是根据不同的变量之间的关系,利用变换形式构造不同的等式,通过解方程组求解。

(5)赋值法:在求某些函数的表达式或求某些函数值时,有时把已知条件中的某些变量或数虚赋值,使问题简单明了,从而易于求出函数的表.达式。

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#define ADD1 sizeof(kuohao)

#define ADD2 50

typedef struct kuohao{char astruct kuohao *pre}kuohao

char *creat()

{

char *a

a=(char*)malloc(ADD2*sizeof(char))

gets(a)

return a

}

int judgekuohao(char *a)

{

kuohao *top,*tail,*t

top=tail=(kuohao*)malloc(ADD1)

while(*a!='\0')

{

if(*a=='(')

{

t=top

top=(kuohao*)malloc(ADD1)

t->a='('

top->pre=t

}

else if(*a==')')

{

if(top==tail)

return -1

else

{

t=top

top=top->pre

free(t)

}

}

a++

}

if(top==tail)

return 1

else return -1

}

char precede(char a,char b)

{

int i,j

char compare[8][8]={' ','+','-','*','/','(',')','\0',

'+','>','>','<','<','<','>','>',

'-','>','>','<','<','<','>','毁陪>',

'*','>','>','>','>','<','>','>',

'/','清滑>','>','>','>','<','>','>',

'(','<','<','<','<','<','=',' ',

')','>','>','>','>',' ','>','>',

'\0','<','<','<','<','<',' ','='}

for(i=0i<8i++)

if(compare[0][i]==a)

break

for(j=0j<8j++)

if(compare[j][0]==b)

break

return compare[j][i]

}

void run(char *a)

{

int b[50]={0},countchar c[50],t

int i=0,j=0char *dc[0]='\0'

while(*a!='\0'||c[j]!='\0')

{

count=0

if(*a<='9'&&*a>='0')

{

d=a

while(*d<='9'&&*d>='0')

{

d++

count++

}

while(count>0)

{

b[i]+=(int)((*a-'0')*pow(10,count-1))

count--

a++

}

i++

}

else

{

switch(precede(*a,c[j]))

{

case'<'答余腊:

j++c[j]=*aa++break

case'=':

j--a++break

case'>':

t=c[j]

j--i--

if(t=='-')

{

b[i-1]=b[i-1]-b[i]

b[i]=0

}

else if(t=='+')

{

b[i-1]=b[i-1]+b[i]

b[i]=0

}

else if(t=='*')

{

b[i-1]=b[i-1]*b[i]

b[i]=0

}

else if(t=='/')

{

b[i-1]=b[i-1]/b[i]

b[i]=0

}

else break

}

}

}

printf("%d\n",b[i-1])

}

void main()

{

int i,n,s

char *a[10],*t

scanf("%d",&n)

for(i=0i<=ni++)

a[i]=creat()

for(i=1i<=ni++)

{

t=a[i]

s=judgekuohao(t)

if(s==-1)

{

printf("False\n")

continue

}

else

run(a[i])

}

} 输入: 第一行输入要计算的算术表达式的个数n 后紧跟n行算术表达式 输出: 依次显示n行算术表达式的值 若表达式错误则显示FALSE


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12472115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存