matlab主程序编写

matlab主程序编写,第1张

放在一个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语言编写一个模块化程序的基本过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10139249.html

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

发表评论

登录后才能评论

评论列表(0条)

保存