c语言模拟函数画图

来源:互联网 发布:游族影业 游族网络 编辑:程序博客网 时间:2024/06/10 08:54

main.cpp

#include"stdafx.h"

#include"function.h"

int_tmain()

{

    intdata1[MAX],data2[MAX];

    Fun(MAX,data1,0);

    Fun(MAX,data2,1);

    Anolog_grap(MAX,data1);

    Anolog_grap(MAX,data2);

 

    Merge(data1,data2);

    return0;

}

Function.h

-------------------------------------------------------------------------------

#include<stdlib.h>

#include<stdio.h>

#include<math.h>

 

#ifndef _FUNCTION_H_

#define_FUNCTION_H_

#defineMAX20

#defineF1(x)5*sin((double)x)+5

#defineF2(x)(x)*(x)-3*(x)+5

#defineABS(x) x <0?-x: x

voidFun(intN,intdata[],boolflag)        //函数求值

{

    doubley=0;

    for(intx=0;x<N;x++)

    {

        if(0==flag)y=F1(x)*2;

        else          y=F2(x*0.5);

        if(x<0)y=ABS(x);

        data[x]=(int)y;

    }

}

 

voidAnolog_grap(intN,intdata[])           //画出单个模拟图像

{

    printf("\n╂━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━→ y\n");

    for(inti=0;i<N;i++)

    {

        printf("┃");

        for(inty=data[i];y>=0;y--)

        {

            putchar(' ');

        }

        printf("*",data[i]);

        putchar('\n');

    }

    printf("┃\n↓\nx\n");

}

 

 

voidMerge(intdata1[],intdata2[])

{

#ifdefMAX

#undef MAX

#defineMAX60

#endif

    chardata3[MAX][MAX];

    for(inti=0;i<MAX;i++)

    {

        for(intj=0;j<MAX;j++)

            data3[i][j]=' ';

    }

    for(intx=0;x<20;x++)

    {

        data3[x][data1[x]]='*';

        data3[x][data2[x]]='*';

    }

    printf("\n╂━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━→ y\n");

    for(inti=0;i<20;i++)

    {

        printf("┃");

        for(intj=0;j<MAX;j++)

            printf("%c",data3[i][j]);

        puts("");

    }

    printf("┃\n↓\nx\n");

#ifdefMAX

#undef MAX

#defineMAX20

#endif

}

 

#endif

 

0 0
原创粉丝点击