放在一个m文件中即可,但还需要你自己给出初始值,上下限等,不然结果会令你很失望
function [] = cxd()
clear;
clc;
%lb=[0 495];
%ub=[10 522];
[x,fval]=fmincon(@myfun,[1;1],[],[],[],[],[],[],@mycon2) %%%% 主函数
function [c,ceq]=mycon2(x)
c=[x(2)-5200;
2x(2)/1000-600810^-3;
2+00015x(2)-59910^-3;
135(x(2)+600810^-3-2)/(599x(2)10^-3-2)-1863];
ceq=pi(x(2)^3/12+x(1)x(2)^2/4)-7510^10;
function f=myfun(x)
e=10;
f=785pix(1)(x(2)+600810^-3x(2))600810^-3x(2)10^-6+54165pi59910^-3x(2)(x(2)+59910^-3x(2))^210^-6;
#include<stdioh>
#include<stdioh>
#define MaxSize 100
typedef char ElemType;
typedef struct //定义一个串
{
ElemType data[MaxSize];
int length;
}SqString;
void StrAssign(SqString &str,char cstr[]) /////////////////////////
{
int i;
for(i=0;cstr[i]!='\0';i++)
strdata[i]=cstr[i];
strlength=i;
}
int StrLength(SqString s) //串的长度
{
return slength;
}
void DispStr(SqString s) //输出数据
{
int i;
if(slength>0)
{
for(i=0;i<slength;i++)
{
printf("%c ",sdata[i]);
}
}
}
SqString InsStr(SqString s1,int i,SqString s2) //插入子串
{
int j;
SqString str;
strlength=0;
if(i<=0 || i>s1length+1)
return str;
for(j=0;j<i-1;j++)
strdata[j]=s1data[j];
for(j=0;j<s2length;j++)
strdata[i+j-1]=s2data[j];
for(j=i-1;j<s1length;j++)
strdata[s2length+j]=s1data[j];
strlength=s1length+s2length;
return str;
}
SqString DelStr(SqString s,int i,int j) //删除字符子串
{
int k;
SqString str;
strlength=0;
if(i<=0 || i>slength || i+j>slength+1)
return str;
for(k=0;k<i-1;k++)
strdata[k]=sdata[k];
for(k=i+j-1;k<slength;k++)
strdata[k-j]=sdata[k];
strlength=slength-j;
return str;
}
SqString RepStr(SqString s,int i,int j,SqString t) //替换
{
int k;
SqString str;
strlength=0;
if(i<=0 || i>slength || i+j>slength+1)
return str;
for(k=0;k<i-1;k++)
strdata[k]=sdata[k];
for(k=0;k<tlength;k++)
strdata[i+k-1]=tdata[k];
for(k=i+j-1;k<slength;k++)
strdata[tlength+k-j]=sdata[k];
strlength=slength+tlength-j;
return str;
}
SqString SubStr(SqString s,int i,int j) //子串
{
SqString str;
int k;
strlength=0;
if(i<=0 || i>slength || j<0 || i+j-1 > slength)
return str;
for(k=i-1;k<i+j-1;k++)
strdata[k-i+1]=sdata[k];
strlength=j;
return str;
}
SqString concat(SqString s,SqString t) //串连接
{
SqString str;
int i;
strlength=slength+tlength;
for(i=0;i<slength;i++)
strdata[i]=sdata[i];
for(i=0;i<tlength;i++)
strdata[slength+i]=tdata[i];
return str;
}
int main()
{
SqString s,s1,s2,s3,s4;
printf("(1) 建立串“abcdefghijklmn”和串“xyz”\n");
StrAssign(s,"abcdefghijklmn");
StrAssign(s1,"xyz");
printf("已建立\n\n");
printf("(2) 输出串s\n");
DispStr(s);
printf("\n\n");
printf("(3) 输出串s的长度\n");
printf("s的长度为 %d\n\n",StrLength(s));
printf("(4) 在串s的第9个字符位置插入串s1而产生串s2\n");
s2=InsStr(s,9,s1);
printf("已插入\n\n");
printf("(5) 输出串s2\n");
DispStr(s2);
printf("\n\n");
printf("(6) 删除串s第2个字符开始的5个字符而产生串s2\n");
s2=DelStr(s,2,5);
printf("已删除\n\n");
printf("(7) 输出串s2\n");
DispStr(s2);
printf("\n\n");
printf("(8) 将串s的第2个字符开始的5个字符替换成串s1而产生串s2\n");
s2=RepStr(s,2,5,s1);
printf("已替换\n\n");
printf("(9) 输出串s2\n");
DispStr(s2);
printf("\n\n");
printf("(10) 提取串s的第2个字符开始的10个字符而产生串s3\n");
s3=SubStr(s,2,10);
printf("已产生新串\n\n");
printf("(11) 输出串s3\n");
DispStr(s3);
printf("\n\n");
printf("(12) 将串s1和串s2连接起来而产生串s4\n");
s4=concat(s1,s2);
printf("已连接\n\n");
printf("(13) 输出串s4\n");
DispStr(s4);
return 1;
}
模块化程序设计即模块化设计,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等 *** 作简单化。
简单的说就是用函数封装一个完成某个特定功能的程序块,主函数通过调用这些函数使得编程的整体框架清晰,整个程序的代码量看上去应该像一个三角形,最顶上的是主函数,代码量比大部分调用函数都要少。模块化编程的另一个好处就是功能的复用,比如你的程序里反复需要用到求数组里所有元素的和的 *** 作,就可以建立一个数组求和的函数来反复调用此函数求和。
首先要明白这些文件时什么文件,再用编译器,例如:VC60,Dev
C++等编译环境中运行,
你可以打开VC60界面,一般用得较多的是Win32控制台应用程序(源程序,扩展名cpp),步骤是:1,建立一个工程,“文件”——“新建”,出现下面界面:选择“Win32
Console
Application”(控制台应用程序,左边倒数第三个),命名工程名称,选择保存位置,点击“确定”,进入下一步,看到如下提示界面:建立一个空工程,对应其他需要的你一可以建立别的工程;点击“完成”,之后:显示你创建的工程的信息。2,再在有一个的工程的条件下,我们再建立一个源文件;“文件”——“新建”(快捷键Ctri+N),出现:建立源文件,选择“C++
Source
”,一般都是建立这种文件的(适用在当文件中适用)如果要建立头文件的话,选择“C/C++
Header
File”,(适用在多文件工程中使用)命名,文件名称,点击“确定”,之后:进入编辑区,在主界面编写代码:如下编写完之后呢:可以按编译按钮调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮检查连接(多文件工程时常用,检查文件间是否正常连接),最后,点运行按钮,就可以运行了如果是有代码如:cpp文件,或
h
文件,想添加都VC60里的话,请下面:
文件扩张名是h,代表的话头文件,一般是书写一些函数原型,以及一些在整个程序中常用到的结构体,频繁使用的函数说明,定义等等;文件扩张名为,cpp的,是C++中的源文件,也是最常用到的文件,每建立一个工程都要至少一个源文件(至少要有一个函数入口——主函数main()
),包含了核心代码;建立与运行说明:(以VC
60编译器为例,其他编译器类似)首先,打开VC
60编译环境;在菜单栏——文件(的下拉菜单中选择“新建”),在d出的选择窗口中,选择
Win32
Console
Application(控制台应用程序)
,在填写
程序名称,选择一个程序保存路径,点击“完成”,查看工程信息在点击“确定”,级建立一个简单的工程了!再点击左边的工程信息右下角的“FileView”选项;可以看到你新建的工程,再双击你新建的工程名
可以查看工程的信息在双击工程文件,在这里是
777files,可以看到该工程的包含的文件:其中,Source
Files
为包含所有工程的源文件Header
Files
为包含所有工程的头文件
在源文件选项“Source
Files
”,右键单击中的“添加目录到工程”,添加你要打开的扩展名为
cpp的源文件在头文件选项“
Header
Files”,右键单击中的“添加目录到工程”,添加你要打开的扩展名为
h的头文件添加完你所有的头文件和源文件之后,检查一下是否添加完毕,之后就可以编译了,
其中第二个按钮
为编译按钮,可以找出工程的错误信息,有错误修改,没错误就可以跳到连接
,编译右边的按钮
,即第三个按钮(多文件工程一定要连接,查看文件是否准确相连接)当编译,连接都没有错误时,可以按运行按钮
,即可以运行了
,^_^
你好!
Keil5本身并不提供直接生成流程图的功能,但可以使用一些工具来生成流程图。
下面介绍一些生成Keil5程序流程图和子程序流程图的方法:
使用Doxygen工具
Doxygen是一种自动化文档生成工具,它可以自动分析源代码并生成各种文档,包括流程图。在Keil5中,可以将程序文件导出为一个文件夹,然后使用Doxygen对该文件夹进行分析,生成程序流程图和子程序流程图。具体使用方法可以参考Doxygen的官方文档。
使用GraphViz工具
GraphViz是一种开源的图形可视化工具,它可以生成各种流程图、状态图等。在Keil5中,可以将程序文件导出为一个dot文件,然后使用GraphViz将该文件转换成流程图。具体使用方法可以参考GraphViz的官方文档。
使用Cscope工具
Cscope是一种代码浏览器,它可以方便地查找函数、变量、宏等。在Keil5中,可以使用Cscope查找程序中的函数和调用关系,然后手动绘制流程图和子程序流程图。
以上就是关于matlab主程序编写全部的内容,包括:matlab主程序编写、编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。具体如下: 编写栈的基本 *** 作函数、请你简单阐述用C语言编写一个模块化程序的基本过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)