C语言编程:怎么让编写的程序理解用户给出的函数解析式,并绘制出相应的函数图像?

来自:流行资讯    更新日期:早些时候
用C语言编写程序解决问题,并画出相应的流程图~

#include
#include
#include
FILE *f1,*f2;
char file1[20],file2[20],name[200][20],name1[15];
int n,m,data[200][10];

void init(){
int i,j;
char ch=' ';
printf("%20c欢迎使用班级成绩管理系统

",ch);
printf("请输入输入和输出文件名(中间用一个空格隔开):
");
scanf("%s %s",file1,file2);// 1)该条语句的功能是什么?
f1=fopen(file1,"r");
f2=fopen(file2,"w");

fscanf(f1,"%d%d",&n,&m); // 2)该条语句的功能是什么?
for(i=1;i<=n;i++)
{
fscanf(f1,"%s",name[i]); // 3)该条语句的功能是什么?
data[i][0]=0; // 4)该条语句的功能是什么?没有这条语句可不可以?
for(j=1;j<=m;j++)
{
fscanf(f1,"%d",&data[i][j]);
data[i][0]+=data[i][j]; // 5)该条语句的功能是什么?
}
}

fprintf(f2,"nameyuwenshuxueyingyuwulihuaxuezongfen
");
for(i=1;i<=n;i++)
{
fprintf(f2,"%s",name[i]);
for(j=1;j<=m;j++)
fprintf(f2,"%d",data[i][j]);
fprintf(f2,"%d
",data[i][0]);
}
fclose(f1);// 6)问什么可以在这关闭输入文件?
fclose(f2);

}
void search(char na[],char num){
int i=1,j;

while((i<=n)&&(strcmp(na,name[i])!=0))i++;

if(i<=n){
switch(num){
case '1':printf("%s的语文成绩为%d!
",na,data[i][1]);break;
case '2':printf("%s的数学成绩为%d!
",na,data[i][2]);break;
case '3':printf("%s的英语成绩为%d!
",na,data[i][3]);break;
case '4':printf("%s的物理成绩为%d!
",na,data[i][4]);break;
case '5':printf("%s的化学成绩为%d!
",na,data[i][5]);break;
case 'a':
printf("%s的各科成绩为:
",name[i]);
printf("语文数学英语物理化学总成绩
");
for(j=1;j<=m;j++)
printf("%d",data[i][j]);
printf("%d
",data[i][0]);


break;
default: printf("没有这种查询方式,请确认后再次输入!
");
}

}
else printf("查无此人,请确认后再次查询!
");

printf("

");
}
main(){
init();//数据初始化
printf("数据初始化结束!

");
printf("------------------------------------------------

");

char na[20];
char num;
while(1){ // 7)该条语句的功能是什么?
//scanf("%s%c%c",na,&num,&num); // 8)此处的输入可不可以用这条语句?
printf("请输入学生的姓名和要查询成绩的科目代码(中间用一个空格隔开):
(1 语文 2 数学 3 英语 4 物理 5 化学 a 所有科目成绩 q 退出)
");
scanf("%s",na);
if(strcmp(na,"q")==0)break; // 9)问什么要用这条语句strcmp(na,"q")==0?
scanf("%c%c",&num,&num); // 10)为什么用了两次&num?
search(na,num);
printf("------------------------------------------------

");
printf("
请输入新的查询:

");

}
system("pause");
}
稍改一下就行了!

framebuffer(帧缓冲)。帧的最低数量为24(人肉眼可见)(低于24则感觉到画面不流畅)。显卡与帧的关系:由cpu调节其数据传输速率来输出其三基色的配比。三基色:RGB(红绿蓝)。
在没有桌面和图形文件的系统界面,可以通过C语言的编程来实现在黑色背景上画图!
用下面的代码,在需要的地方(有注释)适当修改,就能画出自己喜欢的图形!
PS:同样要编译运行后才能出效果。
#include
#include
#include
#include
#include
#define RGB888(r,g,b) ((r & 0xff) <<16 | (g & 0xff) << 8 | (b & 0xff))
#define RGB565(r,g,b) ((r & 0x1f) <<11 | (g & 0x3f) << 5 | (b & 0x1f))
int main()
{
int fd = open("/dev/fb0", O_RDWR);
if(fd < 0){
perror("open err.
");
exit(EXIT_FAILURE);

printf("xres: %d
", info.xres);
printf("yres: %d
", info.yres);
printf("bits_per_pixel: %d
", info.bits_per_pixel);

size_t len = info.xres*info.yres*info.bits_per_pixel >> 3;

unsigned long* addr = NULL;
addr = mmap(NULL, len, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0);
if(addr == (void*)-1){
perror("mmap err.
");

挺有意思的问题,简单谈一下看法
将你的需求分成两部分,一是让程序自行解析用户输入的函数解析式,二是绘制函数图像。
首先,关于第一个功能,最直接的思路就是字符串解析,按照数学知识定义不同的运算符号,按照使用习惯定义常用的变量和常量的符号字母,然后据此规则解析输入的字符串,再根据解析结果确定函数中基本运算的次数及运算顺序,最后将整个操作流程以一定形式存储起来即可。
例如,对于y=log(x^2+x),包含三次基本运算,第一步是x^2,第二步是上一步的结果+x,第三步是上一步的结果求对数。注意到log有定义域的限制,这也是要在程序中实现的。
然后,对于第二个功能,根据给定函数绘制图像并不难,对于一元和二元函数来说很容易实现,难点在于多元函数应如何绘制直观易懂的函数图像?不过这一点超出编程语言的范畴了,而且二元函数可以满足大部分应用场景了。
绘制函数图像的程序只需在定义域上按指定的步长求出不同自变量对应的函数值,然后将点连成线,即可绘制出函数图像。例如对于logx,定义域为x>0。假设步长为0.1,则可求出0.1,0.2,0.3,...,99.9,100.0的函数值,然后绘制出点,再连点成线,即可得到函数图像。
另外,这里还有很多细节没有讨论,例如输入数据是字符串还是图像;是否可以用其他方法解析输入,例如神经网络。这些就很复杂了,不再深入。
回答中可能有考虑不周的地方,希望上述内容对你有参考意义

找到这条直线与x轴,y轴的交点,连结这两个点即可得到这条直线 一般的设一次函数为y=kx+b 令x=0,y=b,直线过点(0,b) 令y=0,即x=-b/k,即直线过点(-b/k,0)


C语言编程:怎么让编写的程序理解用户给出的函数解析式,并绘制出相应的函数图像?视频

相关评论:
  • 15621794813怎么把用c语言开发的程序变成软件
    闻闸狭1、打开Microsoft Visual Studio;2、在Microsoft Visual Studio界面中,点击编译菜单,执行编译指令,详细操作如下;3、编译完成后,再次在该菜单下,点击【生成】菜单,将会生成可执行文件,详细如下所示;4、上述执行完成后,我们可以在生成目录下查看可执行文件,如下图所示;5、最后直接双击执行该可执行...

  • 15621794813教你如何使用C语言编写简单小游戏
    闻闸狭这样学习程序设计,就不会是一件艰苦 ,枯燥的事,它变得象电脑游戏一样充满好奇,富有乐趣. 1, 总是从Hello,world开始 学习编程的第一个程序,一般就是打印一个亲切的词语——"Hell o,world!".让我们来看看这个最简单的C程序:#incolude \/*把输入输出函数的头文件包含进来*\/int main(){printf("...

  • 15621794813怎样编写程序?
    闻闸狭因此我们要通过程序的方式来让计算机为我们“效劳”。而这个过程就是我们“编”出来的。编程可以使用某一种程序设计语言来实现,按照这种语言的语法来描述让计算机要做的事情。 我们这里所讲的语法和外语中的语法完全两码事,这里讲的语法只是读你的程序书写做出一写规定而已。 写出程序后,再由特殊的软件将你的程序解释...

  • 15621794813c语言 编写程序
    闻闸狭链表创建使用creat函数,每调用一次创建一个节点。第一次调用函数会自己创建头节点内存。打印输出部分,只要打印第一个节点,只要stuHead->next就可以了。我这里写循环里,是演示遍历链表,你把break去掉就是打印整个链表。include<stdio.h> include<malloc.h> typedef struct stuInfo { int id;\/\/学号 ...

  • 15621794813c语言编程中怎么让程序可以输入多组数据后退出
    闻闸狭在关键节点输入退出数据。比如:输入每组数据后询问是否继续输入;输入每组数据的第1个数时给出用于结束输入的数据,或按特殊键;输入数据前给出组数。这样结合程序中条件判断语句实现退出输入的设计。

  • 15621794813用C语言编程加什么语句才能不显示DOS执行窗口,让程序后台运行,最好举一...
    闻闸狭这样就不会蹦出黑色的dos提示符窗口了 具体在代码中实现是这样的:pragma comment(linker, "\/subsystem:window")2.标准的win32程序的入口不是main函数,而是WinMain.你要把c的main函数改成下面形形式:int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)最后...

  • 15621794813用C语言怎么编写一个从1加到10的程序...新手求解
    闻闸狭include <stdio.h> void main(){ int n;int sum=0; \/\/初始sum变量值为0;for(n=1;n<=10;n++){ sum=sum+n; \/\/从一加到10;} printf("1+2+...+10=%d",sum);}

  • 15621794813大学生来看C语言学习方法总结
    闻闸狭学习语法规则:学习 C 语言的基础知识,需要先了解 C语言的语法规则,包括变量类型、运算符、流程控制语句、函数、指针等。可以通过查阅相关的书籍或者网上的教程进行学o 练习编写代码:C 语言是一种编程语言,只有通过实际编写代码才能真正掌握它的基础知识。可以通过编写简单的程序来加深对语言的理解,例如打印 Hello World...

  • 15621794813C语言编程 编写程序,在屏幕上输出下面的图案(要求用for 循环实现...
    闻闸狭printf("\\n"); \/\/开始打印一个图形C。4、编写完代码以后,按F5进行编译。或者点击上方的小三角,已在图中标出。5、编译时,如果有错误会进行报错,大家需要进行检查修改。如果没有错误,会出现【0个错误,0个警告】,表示程序正确,可以运行。6、正常运行后,新的窗口就会出现一个图形。

  • 15621794813c语言编程:本题要求编写程序,计算学生们的平均成绩,并统计不及格(成绩...
    闻闸狭include "stdio.h"int main(int argc,char *argv[]){int s,m,n,l;printf("Please enter data(int >=0, <0 end)...\\n");for(l=s=m=0,n=1;m>=0;n++){scanf("%d",&m);if(m<60 && m>=0)l++;else if(m<0)break;s+=m;}printf("Average = %.2f\\nCount = %d\\n"...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网