1 设计型题目
1.5 在我们课本第16页图1.7给出了5个“常见函数的增长率”在第1象限的图像[1]。现要求设计一种方法来自动绘制这张图示。
(1)编制一个程序,自动给出一系列自变量所对应的函数值,要求函数自变量的数目是一个参数。
(2)如何把生成的这些值保存到一个文件中?
(3)设计一个方法,依据所生成的数据纯文本文件转换成一个Microsoft Office Excel文件;或者由第1步的程序直接生成相应的Microsoft Office Excel文件。
(4)利用Microsoft Office Excel生成相应函数的图像。是否可以在一张图示之上,同时生成这5个函数的图像。给出你的方法的步骤。
(5)你还知道利用其它工具来自动生成这张图示吗?请详细叙述你的方法与步骤。
2 设计型题目解答
【第1.5题解答】
在我们课本第16页图1.7给出了5个“常见函数的增长率”在第1象限的图像。现要求设计一种方法来自动绘制这张图示。
(1)定义不同函数f1,f2,f3,f4,f5,分别求对应的函数值。输入值n
为自变量数目的参数,具体程序如下:
- #define _CRT_SECURE_NO_WARNINGS
- #pragma warning(disable:6031)
- #include <stdio.h>
- #include <stdlib.h>
- #include <malloc.h>
- #include <math.h>
- #include <time.h>
- double f1(double x)//函数1,求2的n次方
- {
- return pow(2, x);
- }
- double f2(double x)//函数2,求n的三次方/2
- {
- return x * x * x / 2;
- }
- double f3(double x)//函数3,求x的平方*5
- {
- return 5 * x * x;
- }
- double f4(double x)//函数4,求100x
- {
- return 100 * x;
- }
- double f5(double x)//函数5,求对数
- {
- return log(x) / log(2) * 200;
- }
- int main()
- {
- int n;//记录数据记录的条数
- printf("请输入n的值:");
- scanf("%d", &n);
- int i;//循环变量
- int* memory = NULL;//数据存储器
- memory = (int*)malloc(sizeof(int) * n);
- if (memory == NULL) {
- printf("Dynamic memory allocation failure.\n");//动态内存分配失败
- exit(0);
- };
- //将生成好的数据暂存在数据容器里
- for (i = 1; i <= n; i++)
- {
- memory[i] = i;
- }
- FILE* fp = NULL;//写入数据的文件
- fp = fopen("text1.xls", "w");
- if ( NULL==fp)
- {
- printf("Cant not open the file.\n");//文件打开失败
- exit(0);
- }
- for (i = 1; i < n; i++)
- {
- fprintf(fp, "x==%d\t%f\t%f\t%f\t%f\t%f\n", i,f1(memory[i]),
- f2(memory[i]), f3(memory[i]), f4(memory[i]), f5(memory[i]));
- }
- fclose(fp);
- return 0;
- }
(2)如何把生成的这些值保存到一个文件中?
利用文件的读写操作,例如fp = fopen("text1.txt", "w")
即可把生成的值保存在txt文件中。
(3)设计一个方法,依据所生成的数据纯文本文件转换成一个Microsoft Office Excel文件;或者由第1步的程序直接生成相应的Microsoft Office Excel文件。
由第1步程序直接生成相应的Microsoft Office Excel文档,程序第48-60行,直接将自变量对应生成的函数值存入excel文档中。输入n=14,
生成对应的excel文档如下,
(4)利用Microsoft Office Excel生成相应函数的图像。是否可以在一张图示之上,同时生成这5个函数的图像。给出你的方法的步骤。
五个函数图像可以显示在同一张图示上。
步骤:插入--图标—散点图—带平滑线和数据的散点图—右键设置数据将所需要的数据复制即可。
(5)可以利用pycharm来生成函数图像,步骤与前面做法大致相同,编写python程序,将生成的函数值保存在文档中,在将文档中的数据读取至excel表格,在excel中绘制图像即可
还可以利用matlab来绘制图像,1)先将生成的函数值保存在txt文档中,2)点击matlab主页上的 “ 导入数据 ”选项,将txt导入matlab。 3)选择“ 数值矩阵 ”,点击“ 导入所选内容 ” 此时工作空间里就有了data2这个矩阵,接下来对导入的数据进行画图。 4)对数据进行拟合 5) 点击“ 应用程序 ” 下的“ curve fitting ” 6)加载数据x 和 y,然后选择拟合类型 7)对拟合结果的分析,左下角的Results是拟合的结果。