源程序的翻译方式有哪两种?简述它们的工作过程.

cjgsh2022-10-04 11:39:542条回答

已提交,审核后显示!提交回复

共2条回复
babysmile5 共回答了20个问题 | 采纳率80%
.编译方式:源程序的执行分两步:编译和运行.即先通过一个存放在计算机内的.成为编译程序的机器语言程序,把源程序全部翻译成和机器语言表示等价的目标程序代码,然后计算机在运行此目标代码,以完成源程序要处理的运算并取得结果.源程序输入到计算机后,解释程序将源程序逐句翻译,翻译一句执行一句,边翻译边执行,不产生目标程序.  区别:编译方式把源程序的执行过程严格地分成两大步:编译和运行.即先把源程序全部翻译成目标代码,然后再运行此目标代码,获执行结果.  解释方式则不然:它是按照源程序中语句的动态顺序,直接地逐句进行分析解释,并立即执行.
1年前
凌凌苏苏 共回答了1个问题 | 采纳率
分为编译程序和解释程序两种。其中编译程序分为6个步骤:1词法分析2语法分析3语义分析4中间代码生成5代码优化6目标代码生成。。。只知道这么多了,希望能帮到你
1年前

相关推荐

以下叙述不正确的是() A:一个C程序可由一个或多个main函数组成 B:一个C源程序必须包含一个main函数 C:C程
以下叙述不正确的是() A:一个C程序可由一个或多个main函数组成 B:一个C源程序必须包含一个main函数 C:C程序的基本组成单位是函数 D:在C程序中,注释说明只能位于一条语句的后面
氧气瓶子1年前1
20090127 共回答了14个问题 | 采纳率85.7%
以下叙述不正确的是()x0dA:一个C程序可由一个或多个main函数组成x0dB:一个C源程序必须包含一个main函数x0dC:C程序的基本组成单位是函数x0dD:在C程序中,注释说明只能位于一条语句的后面5
用破圈法求最小生成树求最小生成树的破圈法的源程序代码以及流程图(不要Prim和Kruskal算法的)望编程高手赐教```
用破圈法求最小生成树
求最小生成树的破圈法的源程序代码以及流程图(不要Prim和Kruskal算法的)
望编程高手赐教```紧急````
破圈算法是1975年由我国数学家管梅谷教授提出来的.
基本思想:在给定的图中任意找出一个回路,删去该回路中权最大的边.然后在余下的图中再任意找出一个回路,再删去这个新找出的回路中权最大的边,……一直重复上述过程,直到剩余的图中没有回路.这个没有回路的剩余图便是最小生成树.
算法的基本思想
先将图G 的边按权的递减顺序排列后, 依次检
验每条边, 在保持连通的情况下, 每次删除最大权
边, 直到余下n- 1 条边为止.
2.3 算法的理论基础
定理1: 任意图G 有支撑树的充分必要条件是
图G 是连通的.
定理2: 图G= ( V, E) 是一个树的充分必要
条件是G 是连通图, 且e=n- 1 [5].
2.4 算法的实现
先将图G 的边按权的递减顺序排列, Ei 为删除
边集.具体步骤为第1 步: 令i=1, E0=Φ, G0=G;
第2 步: 取边ei∈E ( Gi- 1) 即EEi- 1, 令Ei=Ei- 1∪{ei}, 使得Gi= G [EEi] 连通, 且W ( ei) 权尽可能
大; 第3 步: 若i
lxp0213941年前1
藤宫兰AYA 共回答了16个问题 | 采纳率87.5%
楼主是文化人啊,我看了半天一个字都没看懂,呵呵把分给我吧,我都没分了,反正你关也是关,
至于问题,你应该问问你同事或者跟你一样水平的朋友.
6.能将高级语言源程序转换成目标程序的是() A.调试程序 B.C.编译程序 D.编辑程序
4181liu1年前1
寻房子的人 共回答了21个问题 | 采纳率90.5%
C.编译程序
判断素数.怎么都做不对,以下源程序 program ss; var i,n:longint; begin readln(
判断素数.怎么都做不对,以下源程序 program ss; var i,n:longint; begin readln(n); for i:=2 to tr
红**眯1年前1
酌酒以自宽 共回答了20个问题 | 采纳率85%
var t:longint;
begin
read(t);
if (t=1) or (t=0) then begin writeln('no');exit;end;
for i:=2 to trunc(sqrt(t)) do
if t mod i=0 then begin writeln('no');exit;end;
writeln('Yes');
end.
嘿嘿,我又来啦,哇哈哈.选我最佳.
matlab二阶微分方程已知函Y=(1.082X)^1/2 用四次牛顿前插公式计算f(-207) 求matlab源程序
matlab二阶微分方程
已知函Y=(1.082X)^1/2 用四次牛顿前插公式计算f(-207) 求matlab源程序 最好能列出差分表
ambrosia梨梨1年前1
水心ii 共回答了23个问题 | 采纳率87%
clear
>> syms a b c d e;
>> y=dsolve('a*D2y+b*Dy+c*y=0','y(0)=d','Dy(0)=e')
y =
(2*a*e + b*d + d*(b^2 - 4*a*c)^(1/2))/(2*exp((t*(b - (b^2 - 4*a*c)^(1/2)))/(2*a))*(b^2 - 4*a*c)^(1/2)) - (2*a*e + b*d - d*(b^2 - 4*a*c)^(1/2))/(2*exp((t*(b + (b^2 - 4*a*c)^(1/2)))/(2*a))*(b^2 - 4*a*c)^(1/2))
>> a=1;b=1;c=1;d=1;e=1;%若常数已知
>> t=1;%desolve中没指定自变量x,这里默认为t,带入任意一个x值
>> y=eval(y)
y =
1.1932 + 0.0000i
这是解方程的方法,画图也差不多,我在命令窗写的改麻烦,下面是我在editor写的.
syms a b c d e;
y=dsolve('a*D2y+b*Dy+c*y=0','y(0)=d','Dy(0)=e','x');
x=200:0.1:400;%取值范围,步长
a=1;b=1;c=1;d=1;e=1;%带入参数
y=eval(y);
plot(x,y)
你补充问题的方程解得也是一个空的,并报错,或许就是无解的,我也很疑问.
打字不易,
使用高级语言编写的源程序需要翻译成机器语言,翻译方式有几种?A.1 B.2 C.3 D.4
ronghai0011年前1
dryrey4 共回答了19个问题 | 采纳率73.7%
应该是编译和解释
Java程序中"a="+a+",源程序如下
1思11年前1
迷五煜薇 共回答了20个问题 | 采纳率95%
我们可以这样来理解 若int a=2,那么我们将a可以看做是形式的,2是实际的
同样 String s="a=" s是形式的,a=是实际的
在System.out.println()里,""中的都是实际的,即电脑会原分不动的打印出里面的内容 而+号是连结两个表达式的,""也算是表达式,形式的参数也是表达式.
拿你给出的例子做说明
int a=2,b;
b=a++; //这个你肯定明白的,是a自+
System.out.println("a="+a+",b="+b);
这里我们可以看到有四个表达式"a=" + a + "b=" + b
于是电脑会输出a=3,b=2
其中a=就是"a="
3就是a
,b=就是",b="
2就是b
希望我的解释已经使你明白^^
1. 把汇编语言编制的源程序变为目标程序,要经过( )。(3分) A、 B、 C、 D、 A、汇编 B、解释 C、编辑
1. 把汇编语言编制的源程序变为目标程序,要经过( )。(3分) A、 B、 C、 D、 A、汇编 B、解释 C、编辑 D
求高手啊 急急急
极品坏坏1年前1
語笑琳瑯 共回答了21个问题 | 采纳率85.7%
汇编语言编制的源程序变为目标程序的过程叫做汇编
选择A、汇编
英语翻译将高级语言程序设计语言源程序翻译成计算机可执行代码的软件称为 [ ] A.汇编程序 B.编译程序 C.管理程序
英语翻译
将高级语言程序设计语言源程序翻译成计算机可执行代码的软件称为 [ ]
A.汇编程序 B.编译程序 C.管理程序 D.服务程序
hychankuhello1年前2
小鲔 共回答了13个问题 | 采纳率100%
B
有懂编译原理的吗、判断题( )1.源程序同目标程序是等价的。( )2.编译程序是把一种语言书写的程序翻译等价的另一种语言
有懂编译原理的吗
、判断题
( )1.源程序同目标程序是等价的。
( )2.编译程序是把一种语言书写的程序翻译等价的另一种语言的程序。
( )3.最左推导称为规范推导。
( )5.静态链指向调用该过程前正在运行过程的数据段基地址。
( )6.一个文法是2型文法,那么它一定是3型文法。
( )8.选择用哪一个产生式是自上而下句型分析的关键。
( )9.一个正则文法肯定有一个等价的有限自动机。
( )10.表格处理程序在整个编以过程中使用。
jingnt21年前1
小易521 共回答了22个问题 | 采纳率95.5%
你是毛老师教的学生,哈,我猜对了,第十题的错别字都没改你就复制上来了
1.以下叙述中正确的是 .A.C语言系统以函数为单位编译源程序 B.main函数必须放
1.以下叙述中正确的是 .A.C语言系统以函数为单位编译源程序 B.main函数必须放
1.以下叙述中正确的是x05x05.
A.C语言系统以函数为单位编译源程序
B.main函数必须放在程序开始
C.用户定义的函数可以被一个或多个函数调用任意多次
D.在一个函数体内可以定义另外一个函数
sohah1年前1
紫吟 共回答了13个问题 | 采纳率76.9%
d肯定是错误的,C语言的函数不能嵌套定义,而d指的就是嵌套定义.但在函数体中可以对其他函数进行声明.楼上的把定义和声明搞混了.C语言是以文件为单位进行编译的,所以A错.main函数不要求一定要放在程序的开始位置,所以B错.最后只剩下C,所以答案是C.
在源程序中,如果外部变量名和函数内的变量名相同,则()变量在函数内不起作用
孤鹰翱翔1年前1
水中一条鱼儿 共回答了18个问题 | 采纳率83.3%
外部变量
1. 把汇编语言编制的源程序变为目标程序,要经过(
1. 把汇编语言编制的源程序变为目标程序,要经过(    
1. 把汇编语言编制的源程序变为目标程序,要经过(    )。(8分)
A、 B、 C、 D、
A、汇编
B、解释
C、编辑
D、编译
 
桓台法匪1年前1
melody_800227 共回答了17个问题 | 采纳率82.4%
正确答案: A、汇编
汇编,是将汇编语言源程序翻译成机器目标代码的过程。
解释,是将高级语言的源程序逐句翻译成机器语言并逐句执行的过程。
编辑,是指修改内容
编译,是将高级语言的源程序以文件为单位整体翻译成另一种语言(一般是低级语言,如汇编语言或机器语言)的等价程序的过程。
语言把矩阵进行QR分解,写出源程序
简体中文版本1年前1
大嘴巴眼镜 共回答了21个问题 | 采纳率90.5%
void QR(double a[N][N],double q[N][N],double r1[N][N],int n) /*QR分解*/
{
int i,j,k,r,m;
double temp,sum,dr,cr,hr;
double ur[N],pr[N],wr[N];
double q1[N][N],emp[N][N];
for(i=1;i
英语翻译书上说“用编译型高级语言编写的源程序必须经过编译和连接才能由机器执行.”请问这里所说的“连接”是什么意思?我记得
英语翻译
书上说“用编译型高级语言编写的源程序必须经过编译和连接才能由机器执行.”请问这里所说的“连接”是什么意思?我记得高级语言的翻译过程不是只要经过解释或编译,为什么还有连接呢?
天边孤行1年前1
杯水MM 共回答了18个问题 | 采纳率88.9%
高级语言要执行须经过以下步骤:
高级语言——》汇编语言——》机器语言(0和1的代码)
高级语言通过编译其编译成汇编语言,如:
c = a + b;//高级语言
add $s1 $t1 $t2 ; //汇编语言
再由汇编程序转换成二进制代码,如:
000000 10001 10010 01000 00000 100000
注:每条汇编语言都有唯一的机器语言与之对应
在翻译成机器代码后就要把机器代码与原文件 链接 加载 于是就运行了
pascal题目源程序和思路描述农民John 的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个
pascal题目源程序和思路
描述
农民John 的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区
称为一个牧场.但是就目前而言,你能看到至少有两个牧区通过任何路径都不连通.这样,
Farmer John 就有多个牧场了.John 想在牧场里添加一条路径(注意,恰好一条).对
这条路径有以下限制:一个牧场的直径就是牧场中最远的两个牧区的距离(本题中所提到
的所有距离指的都是最短的距离).考虑如下的有5 个牧区的牧场,牧区用“*”表示,路径
用直线表示.每一个牧区都有自己的坐标:D E
*-------*
| _/|
| _/ |
| _/ |
|/ |
*--------*-------*
A B C
(10,10) (15,10) (20,10)
这个牧场的直径大约是12.07106,最远的两个牧区是A 和E,它们之间的最短路径是
A-B-E.
这里是另一个牧场:
*F(30,15)
/
_/
_/
/
*------*
G H
(25,10) (30,10)
在目前的情景中,他刚好有两个牧场.John 将会在两个牧场中各选一个牧区,然后用一条
路径连起来,使得连通后这个新的更大的牧场有最小的直径.注意,如果两条路径中途相
交,我们不认为它们是连通的.只有两条路径在同一个牧区相交,我们才认为它们是连通的.
输入文件包括牧区、它们各自的坐标,还有一个如下的对称邻接矩阵:
A B C D E F G H
A 0 1 0 0 0 0 0 0
B 1 0 1 1 1 0 0 0
C 0 1 0 0 1 0 0 0
D 0 1 0 0 1 0 0 0
E 0 1 1 1 0 0 0 0
F 0 0 0 0 0 0 1 0
G 0 0 0 0 0 1 0 1
H 0 0 0 0 0 0 1 0(15,15) (20,15)
其他邻接表中可能直接使用行列而不使用字母来表示每一个牧区.输入数据中不包括牧区的
名字.输入文件至少包括两个不连通的牧区.请编程找出一条连接两个不同牧场的路径,
使得连上这条路径后,这个更大的新牧场有最小的直径.输出那个最小可能的直径.
INPUT FORMAT:
第1 行:一个整数N (1
轻荷碧水1年前1
na000005 共回答了31个问题 | 采纳率93.5%
Floyd出全图两两距离
然后算出每个牧区到自己牧场内的最长距离.
然后算出每个牧场的直径.
然后枚举两个牧区(保证Floyd出的结果是inf)计算连起来以后的直径(采用两个牧场的直径以及“两个牧区到自己牧场内的最长距离与两个牧场直线距离之和”中的最大值,加快运算).
……代码实在不想敲了,纯拼凑的程序没意思(其实是Floyd不会用).
用二分法求方程2x3-4x2+3x-6=0在x=1.5附近的实数根,精度ε=10-5.C++源程序
中源11年前1
绀珠集 共回答了14个问题 | 采纳率100%
朋友,你这道题明显有bug.
你给出的方程2x3-4x2+3x-6可以验证就是一个单调递增函数.
而在x=1.5处 原式=-3.75根本找不到零点
其实经过我验证 完全的零点就在x=2处
下面给出我的程序代码:
#include
#include
double f(double x)
{
return 2*x*x*x-4*x*x+3*x-6;
}
void main()
{
double e=1e-5;
double start,end,mid;
coutend;
while(f(start)*f(end)>0)
{
coutend;
}
if(fabs(f(start))
编写程序,求m=1!+2!+3!+……+10!的值.要求用循环语句写出源程序.
文幻绮影1年前1
传说中的闭月羞花 共回答了14个问题 | 采纳率100%
int GetValue(void)
{
int a=0,b=1;
for(int i=1;i
以下说法不正确的是 A.汇编源程序可以汇编成机器语言 B.不同的机器有相同的指令系统 C.机器语言可以直接
心情火柴1年前1
hjb203344 共回答了24个问题 | 采纳率95.8%
楼主你好!
B答案我认为是错的!根据计算机组成原理里面说的,不同的机器,应该有不同的指令系统!不同种类的CPU所对应的机器指令也就不同,而且它们的指令系统往往相差很大。但对同一系列的CPU来说,为了满足各型号之间具有良好的兼容性,要做到:新一代CPU的指令系统必须包括先前同系列CPU的指令系统。只有这样,先前开发出来的各类程序在新一代CPU上才能正常运行。
希望我的回答对你有帮助!
英语翻译这句话对还是错?用高级语言编写的程序称为源程序 这句话对还是错?不是汇编语言编写的程序才称为源序吗?
a772762481年前1
popmusic_fans 共回答了16个问题 | 采纳率87.5%
源程序这个提法不科学.
源程序是看你考虑的程序,如果该程序原来就是用高级语言写的,那么就是源程序了.
如果该程序原来就是用汇编写的,那汇编写的也叫源程序了.
急!Matlab应用题这是一道Matlab在化工中的应用题,麻烦哪位大侠给修改一下源程序到可以在7.10.0版里运行(在
急!Matlab应用题
这是一道Matlab在化工中的应用题,麻烦哪位大侠给修改一下源程序到可以在7.10.0版里运行(在源程序里纠错).在下感激不尽!

1、问题描述(管式反应器的计算的温度分布)
已知在管式反应器内进行液相反应A=R+S.该反应为吸热反应,所需热量由管外油浴供给,油温为340℃.实验确定反应温度与转化率的关系为:

其中,反应速率常数 , ,反应器壁温 若反应器入口温度 ,入口转比率 ,要求反应器出口转化率为 .试确定不同转化率下反应器的温度.
源程序:
function TFR
% 管式反应器的温度分布
clear
clc
global r k0 E tc
r=1.987;
k0=1.17e17;
E=44500;
t0=340;
tc=340;
xA0=0;
% dx=1/100;
% 调用ode45求解微分方程
[x,t]=ode45(@XTEqs,[0 0.999],[t0]);
% 通过spline函数插值获得0~1之间的函数值,间隔为0.1
xx = 0:0.1:1;
tt = spline(x,t,xx);
N=length(xx);
disp(sprintf('n转化率 反应温度(K) '));
for i=1:N;
disp(sprintf('n %5.1f,%8.2f%',xx(i),tt(i)));
end
% 对函数曲线和离散点画图
plot(xx,tt,'o',x,t,'b-');
xlabel('Fractional Conversion');
ylabel('Temperature (K)');
title('x~T');
grid;
% 定义微分方程
function dydt=XTEqs(x,t)
global r k0 E tc
k=k0*exp(-E/r/(t+273.15));
dydt=-65.0-15.58*(t-tc)/k/(1-x);
计算结果
执行程序:
在MATLAB的COMMAND窗口输出命令:>> TFR

美人鱼21年前1
泪也 共回答了19个问题 | 采纳率73.7%
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分.
对于 C 语言源程序,以下叙述错误的是().
对于 C 语言源程序,以下叙述错误的是().
A.可以有空语句
B.函数之间是平等的,在一个函数内部不能定义其他函数
C.程序调试时如果没有提示错误,就能得到正确结果
D.注释可以出现在语句的前面
风铃小虎1年前1
toyafei 共回答了21个问题 | 采纳率95.2%
答案为C
调试的错误信息是语法信息,正确结果除了需要正确的语法,还需要正确的算法.
C语言基础啊一、填空题(1)C语言源程序由_______组成,源程序中只有一个 ______函数。(2)C语言用____
C语言基础啊
一、填空题
(1)C语言源程序由_______组成,源程序中只有一个 ______函数。
(2)C语言用____ 作为结束符,以#开始的命令称为______。
(3)C语言的可用字符由_____、_____、_____组成。
(4)标识符是___ __的名称,它有_____、_____、_____三种字符组成,标识符只能使用_____格式的字符,标识符的第一个字符必须______。
二、判断题、
(1)函数没有参赛时,可省掉函数名的括号 ( )
(2)在C语言中标示符main、Main标识的是同一个程序对象 ( )
(3)在一个程序行上可以写多条C语句 ( )
(4)程序总是从源程序的开始往下执行 ( )
(5)只要在本程序中没有使用的保留字也可以用作变量名 ( )
(6)函数体必须用一对大括号括起来 ( )
(7)main()函数必须写在源程序的开始处 ( )
三、选择题
(1)下面合法的标识符是( )
A、-550 B、int C、6pin D、xrc-1
(2)下列关于main()函数的说法正确的是( )
A、main()函数必须位所有函数的前面
B、每个程序必须且只能有一个main()函数
C、其他函数要写在main()函数的函数体中
D、main()函数不是C程序必须的
yubaohua1年前1
tg06 共回答了11个问题 | 采纳率81.8%
好多题啊。。。。。。。。
算法+数据结构 主函数main()
; 预处理指令
字母,数字,下划线.
对象 字母,数字和下划线组成 必须为字母或下划线 字母
错 对 对 错 错 对 错
DB
matlab源程序求修改能运行%V带传动多目标优化设计 %多目标:f(1)-小带轮直径,f(2)-中心距,f(3)-V带
matlab源程序求修改能运行
%V带传动多目标优化设计
%多目标:f(1)-小带轮直径,f(2)-中心距,f(3)-V带根数
%设计变量:x(1)-小带轮直径,x(2)-V带基准长度
P=4;i=3;n1=1440;KA=1.1;
%已知条件:功率、传动比、转速、工况系数
Disp' '
Disp'’
fprintf('电动机功率P=%3.2fkWn',P);
fprintf('电动机转速n1=%3.0fr/minn',n1);
fprintf('传动比i=%3.2fn',i);
fprintf('V带型号A型V带n');
fprintf('工作情况系数KA=%3.2fn',KA);
%V带传动多目标优化设计
P=4;i=3;n1=1440;KA=1.1;
x0=[100;1250];
A=[];b=[];
Aeq=[];
beq=[];
lb=[75;630];
ub=[331;4000];
goal=[80,400,4];
w=abs(goal);
[xopt,fopt]=fgoalattain(@VDCD_3mb_MB,x0,goal,w,A,b,Aeq,beq,lb,ub,@VDCD_3mb_YS)
%[xopt,fopt]=fminimax(@VDCD_3mb_MB,x0,A,b,Aeq,beq,lb,ub,@VDCD_3mb_YS)
%根据计算结果圆整为规范值
%V带轮基准直径
Dd1=input('根据A型V带轮基准直径系列圆整小带轮基准直径Dd1=');
disp('大带轮计算直径计算值:'),Dd2j=Dd1*i;
Dd2=input('根据A型V带轮基准直径系列圆整大带轮基准直径Dd2=');
%V带基准长度
Ld=input('根据A型V带轮基准长度系列圆整V带基准长度 Ld=');
%V带根数
z=input('确定带根数 z=');
%传动中心距和包角
a1=Ld/4-pi*Dd1*(i+1)/8;
a2=Dd1^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
alpha=180-180*Dd1*(i-1)/pi/a;
Disp’';
fprintf(' 小带轮基准直径 Dd1=%3.0fmmn',Dd1);
fprintf(' 大带轮基准直径 Dd2=%3.0fmmn',Dd2);
fprintf(' V带基准长度 Ld=%3.0fmmn',Ld);
fprintf(' 传动中心距 a=%3.2fmmn',round(a));
fprintf(' 小带轮包角 alpha=%3.2f°n',alpha);
fprintf(' V带根数 z=%3.0fn',z);
%带速、带的初拉力和压轴力
q=0.1;
v=pi*Dd1*n1/6e4;
Kalp=alpha/(0.549636*alpha+80.396114);
F0=500*KA*P*(2.5/Kalp-1)/v/z+q*v^2;
Q=2*z*F0*sin(0.5*alpha*pi/180);
fprintf(' 带速 v=%3.2fm/sn',v);
fprintf(' 带的初拉力 F0=%3.2fNn',F0);
fprintf(' 带的压轴力 FQ=%3.2fNn',Q);
%V带传动多目标优化设计的目标函数文件
functionf=VDCD_3mb_MB(x)
P=4;i=3;KA=1.1;
f(1)=x(1);
a1=x(2)/4-pi*x(1)*(i+1)/8;
a2=x(1)^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
f(2)=a;
P0=0.02424*x(1)-1.112879;
DP0=0.17;
alpha=180-180*x(1)*(i-1)/pi/a;
Kalp=alpha/(0.549636*alpha+80.396114);
KL=0.20639*x(2)^0.211806;
f(3)=KA*P/(P0+DP0)/Kalp/KL;
%V带传动多目标优化设计的约束函数文件
function[c,ceq]=VDCD_3mb_YS(x)
i=3;n1=1440;
c(1)=pi*x(1)*n1/6e4-25;
a1=x(2)/4-pi*x(1)*(i+1)/8;
a2=x(1)^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
c(2)=120-180*(1-x(1)*(i-1)/a/pi);
c(3)=0.7*x(1)*(i+1)-a;
ceq=[];
Zhouxingyin1年前1
lijj012 共回答了18个问题 | 采纳率88.9%
VDCD_3mb_YS.mfunction[c,ceq]=VDCD_3mb_YS(x)
%V带传动多目标优化设计的约束函数文件
i=3;n1=1440;
c(1)=pi*x(1)*n1/6e4-25;
a1=x(2)/4-pi*x(1)*(i+1)/8;
a2=x(1)^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
c(2)=120-180*(1-x(1)*(i-1)/a/pi);
c(3)=0.7*x(1)*(i+1)-a;
ceq=[];VDCD_3mb_MB.mfunction f=VDCD_3mb_MB(x)
%V带传动多目标优化设计的目标函数文件
P=4;i=3;KA=1.1;
f(1)=x(1);
a1=x(2)/4-pi*x(1)*(i+1)/8;
a2=x(1)^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
f(2)=a;
P0=0.02424*x(1)-1.112879;
DP0=0.17;
alpha=180-180*x(1)*(i-1)/pi/a;
Kalp=alpha/(0.549636*alpha+80.396114);
KL=0.20639*x(2)^0.211806;
f(3)=KA*P/(P0+DP0)/Kalp/KL;主程序%V带传动多目标优化设计
%多目标:f(1)-小带轮直径,f(2)-中心距,f(3)-V带根数
%设计变量:x(1)-小带轮直径,x(2)-V带基准长度
P=4;i=3;n1=1440;KA=1.1;
%已知条件:功率、传动比、转速、工况系数
disp('');
fprintf('电动机功率P=%3.2fkWn',P);
fprintf('电动机转速n1=%3.0fr/minn',n1);
fprintf('传动比i=%3.2fn',i);
fprintf('V带型号A型V带n');
fprintf('工作情况系数KA=%3.2fn',KA);
%V带传动多目标优化设计
P=4;i=3;n1=1440;KA=1.1;
x0=[100;1250];
A=[];b=[];
Aeq=[];
beq=[];
lb=[75;630];
ub=[331;4000];
goal=[80,400,4];
w=abs(goal);
[xopt,fopt]=fgoalattain(@VDCD_3mb_MB,x0,goal,w,A,b,Aeq,beq,lb,ub,@VDCD_3mb_YS)
%[xopt,fopt]=fminimax(@VDCD_3mb_MB,x0,A,b,Aeq,beq,lb,ub,@VDCD_3mb_YS)
%根据计算结果圆整为规范值
%V带轮基准直径
Dd1=input('根据A型V带轮基准直径系列圆整小带轮基准直径Dd1=');
disp('大带轮计算直径计算值:'),Dd2j=Dd1*i;
Dd2=input('根据A型V带轮基准直径系列圆整大带轮基准直径Dd2=');
%V带基准长度
Ld=input('根据A型V带轮基准长度系列圆整V带基准长度 Ld=');
%V带根数
z=input('确定带根数 z=');
%传动中心距和包角
a1=Ld/4-pi*Dd1*(i+1)/8;
a2=Dd1^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
alpha=180-180*Dd1*(i-1)/pi/a;
disp('
小带轮基准直径Dd1= 10mm
大带轮基准直径Dd2= 20mm
V带基准长度Ld=5mm
传动中心距a=-2.00mm
小带轮包角alpha=800.37°
V带根数z=2
带速v=0.75m/s
带的初拉力F0=912.19N
带的压轴力FQ=2354.41N
函数是C源程序的基本单位,一个函数由函数的首体和什么两部分组成
没有你我哭了1年前2
sjponline 共回答了10个问题 | 采纳率100%
函数签名 和 函数体构成,
函数签名:函数作用域,函数名,参数个数,参数类型及 返回值类型.
函数体:函数要做的事情.
java编程2编写一个Java源程序(包含一个公共类),可以完成猜数游戏:(1)程序生成一个1~10之间的随机整数。(2
java编程2
编写一个Java源程序(包含一个公共类),可以完成猜数游戏:
(1)程序生成一个1~10之间的随机整数。
(2)用户从键盘上输入猜测的数:
① 如果大了,程序输出“你输入的数大了,再猜:”;
② 如果小了,程序输出“你输入的数小了,再猜:”;
③ 如果猜对了,程序要计算猜测的次数,如果2次以内猜对的,输出“恭喜你,你只用了n(n代表实际次数)次就猜对了!你真牛!”;如果4次以内猜对的,输出“猜对了!你用了n(n代表实际次数)次猜对的,次数有点多哈哈!!”;否则,输出“oh,用了n(n代表实际次数)次才猜对,加油呀。”。
(3)如果猜数的过程中放弃游戏,用户可以输入quit,之后按回车。
(4)用户可以重复玩游戏,如果想继续玩,输入yes,之后按回车,否则,输入no,之后按回车。
xiuxiudi1年前1
白味人生 共回答了14个问题 | 采纳率92.9%
你看一下 我大概写了下。不知道有没有bug
import java.util.*;
public class Test{
public static void main(String [] args){
Integer ran=(int)(Math.random()*10.0)+1;
Scanner sc=new Scanner(System.in);
int count=0;
while(true){
String s=sc.next();
//System.out.println(ran);
if(s.equals("quit")){
break;
}
count++;
if(Integer.parseInt(s)>10 || Integer.parseInt(s)
有没有算24点的VFP源程序?
hlxfri1年前0
共回答了个问题 | 采纳率
VHDL7段译码源程序中,zzzzzzz表示什么意思?when others=>dout
老天男1年前4
suejie 共回答了22个问题 | 采纳率90.9%
你用标准逻辑向量(std_logic_vector)定义的 dout
标准逻辑向量(std_logic_vector)除了可以取值: 0 ,1 外 还可以取值 u, x,z,w,l,h,—,等
其中 z 代表高阻状态
我一般用的是when others=>dout
(1)下列选项中不符合良好程序设计风格的是( ). A)源程序要文档化 B)数据说明的次序要规范化 C)避
(1)下列选项中不符合良好程序设计风格的是( ). A)源程序要文档化 B)数据说明的次序要规范化 C)避
(1)下列选项中不符合良好程序设计风格的是( ).
A)源程序要文档化 B)数据说明的次序要规范化
C)避免滥用goto 语句 D)模块设计要保证高耦合、高内聚
li_jun19731年前1
norco-630 共回答了19个问题 | 采纳率78.9%
D,是地耦合,高内聚
C语言 典型背包问题 要源程序有一个背包,背包容量是M=150.有7个物品,物品可以分割成任意大小.要求尽可能让装入背包
C语言 典型背包问题 要源程序
有一个背包,背包容量是M=150.有7个物品,物品可以分割成任意大小.
要求尽可能让装入背包中的物品总价值最大,但不能超过总容量.
物品
A
B
C
D
E
F
G
重量
35
30
60
50
40
10
25
价值
10
40
30
50
35
40
30
分析:
目标函数:∑pi最大
约束条件是装入的物品总重量不超过背包容量:∑wi
我喜欢繁华的背面1年前1
乡村精典 共回答了18个问题 | 采纳率88.9%
//只是最基本的二维背包,比较好理解一点,可以有很多优化,一维也可以
#include
#define N 1001
int V[N][N],w[N],v[N];
int max(int x,int y)
{return x>y?x:y;}
int main()
{
int n,c,i,j;
scanf("%d%d",&n,&c); //n表示物体个数,c表示容量
for (i=0; i
高级语言的源程序必须被翻译成?,才能在计算机上运行
34634161年前1
主板坏了 共回答了19个问题 | 采纳率94.7%
编译程序是把高级语言变成汇编语言,进而变成机器语言,让机器执行,是一个从高级到低级的过程
求编写源程序1:输出500至1000之间的所有素数之和2:求分数序列:2/1,3/2,5/3,8/5,13/8 ……的前
求编写源程序
1:输出500至1000之间的所有素数之和
2:求分数序列:2/1,3/2,5/3,8/5,13/8 ……的前20项的和值并输出
3:编写一个判断素数的函数.调用该函数,计算并输出区间[1000,2000]内所有素数的平均值,结果保留2位小数.
4:求一维数组中最大的三个元素的平方根之和,A数组的数据位56,78,98,45,58,34,12,90,26,88(思路:先排序确定最大三元素位置,然后计算输出)
5.编写程序,计算下面数列的和,当第一次出现的和值能被7整除且大于1000时求和终止并输出结果.
1*3,3*5,5*7,7*9,……,(2*n-1)*(2*n+1) ……
6.设计一个过程(函数或子程序):计算n!=1×2×3×…×n.用主调函数过程调用这个过程并计算n=20时的值
7.由程序随机产生一个一维数组,并且使每个数组元素n为10到100之间的正整数,把小于所有元素平均值的数据存放到一个新的一维数组中输出之.
8.编写程序,求下面数列的前若干项的积,直到第一次出现积小于0.0001为止,并输出此时的积为多少.结果保留6位小数.
1/(1×2),1/(3×4),1/(5×6),……,1/((2n-1)×(2n)),……
9.编程输出300至500之间能同时被5和7整除的所有数据的和
10.设计一个函数,求任意两个正整数的最大公约数.在主函数中调用此函数,并计算3696和2352的最大公约数
11.利用随机函数为一个15个元素的一维数组(10-99)赋值并输出原始数据,将该数组按从大到小的顺序进行排序,输出排序后的数组
56x2l1年前1
ee_wq425 共回答了12个问题 | 采纳率100%
#include
#include
#include
#include
#include

int is_prime(int n){
int m;
for(m=2 ; m <= (int)sqrt(n); m++){
if(n%m == 0){
return 0;
}
}
return 1;
}

void timu_1(){

int min = 500;
int max = 1000;
int sum = 0;
int i;
for(i = min ; i <= max ; i++){
if(is_prime(i)){
sum = sum + i;
}
}
printf("the sum of prime numbers between %d - %d is %d n" , min , max , sum);
}

void timu_2(){
int count = 20;
int i ;
float sum = 0.0;
float a = 2.0;
float b = 1.0;
float c = 0.0;
for(i = 0 ; i < count ; i++){
sum += a / b;
//printf("%d %f/%fn" , i , a , b);
c = a;
a = a + b;
b = c;
}
printf("the sum is %f n" , sum);
}

void timu_3(){
float sum = 0.0;
int min = 1000;
int max = 2000;
int count = 0;
int i ;
for(i = min ; i <= max ; i++){
if(is_prime(i)){
sum += i;
count++;
}
}
printf("prime numbers average between %d - %d is %.2fn" , min , max , sum/count);
}

void timu_4(){
int ary[] = {56,78,98,45,58,34,12,90,26,88};
int i , j , len;
int count = 3;
float sum = 0.0;
for(i = 0 , len = sizeof(ary)/sizeof(int); i < len ; i++){
for(j = i+1 ; j < len ; j++){
if(ary[j]>ary[i]){
ary[j]= ary[i] ^ ary[j];
ary[i]= ary[i] ^ ary[j];
ary[j]= ary[i] ^ ary[j];
}
}
}
for(i = 0 ; i < count; i++){
sum += sqrt(ary[i]);
}
printf(" %f n" , sum);
}

void timu_5(){
int sum = 0;
int i = 1;
do{
sum += (2*i-1)*(2*i+1);
if(((sum%7)==0) (sum > 1000)){
printf("sum : %d n=%dn" , sum , i);
break;
}
i++;
}while(1);
}

void timu_6(){
static int ary[20] = { 1 };
int i, j;
int width; /*---表示结果的"宽度"---*/
int current_num; /*--- 当前数字 ---*/
/*--- 从大到小进行阶乘计算 ---*/
for( width = 0 , current_num = 20 ; current_num > 1; current_num-- ){
/*--- 对每一个‘分段’进行运算 ---*/
for( i = j = 0; i <= width; i++ ){
/*--- 当前运算的‘有效数值’ ---*/
ary[i] = ( (j += ary[i] * current_num) ) % 10000;
/*--- 当前运算的‘进位数值’ ---*/
j /= 10000;
}
if ( ary[i] = j ){ /*如果有进位,则索引向前推进*/
width++;
}
}
printf ( "%d", ary[width] );
/*--- 将求的数值输出 ---*/
for( j = width - 1; j >= 0; j-- ){
printf( "%04d", ary[j] );/*--- 这里的6跟10000的位数有关 ---*/
}
printf("n");
}

void timu_7(){
srand(time(NULL));
int len = 10;
int* ary = (int* )malloc(sizeof(int)*len);
if(ary == NULL){
printf("mallocerror !n");
exit(1);
}
int sum = 0;
int num , i;
float ave = 0.0;
int count = 0;

for(i = 0 ; i < len ; i++){
num = (rand()%90)+10;
*(ary+i) = num;
sum += num;
}
ave = 1.0*(sum/len);
for(i = 0 ; i < len ; i++){
if(*(ary+i) < ave){
count++;
}
printf("ary[%d]=%d " , i , *(ary+i));
}
printf("average=%.1fn" , ave);
int* out = (int*)malloc(sizeof(int)*count);
if(out == NULL){
printf("mallocerror !n");
exit(1);
}
int j;
for(i = 0 , j = 0 ; i < len ; i++){
if(*(ary+i) < ave){
*(out+j)=*(ary+i);
printf("ary[%d]=%d " , j , *(out+j));
j++;
}
}
printf("n");
for(i = 0 ; i < count ; i++){
printf("out[%d]=%d " , i , *(out+i));
}
free(ary);
free(out);
printf("n");
}

void timu_8(){
int n;
int max;
for(n = 1 , max = (2*n-1)*(2*n) ; max < 10000 ; n++){
max = (2*n-1)*(2*n)*max;
}
printf("%dn" , n);
}

void timu_9(){
int min = 300;
int max = 500;
int sum = 0;
int i;
for(i = min ; i <= max ; i++){
if((i%5)==0 (i%7)==0){
printf("[%d]" , i);
sum += i;
}
}
printf(" sum = %dn" , sum);
}

int gy(int a , int b){
int r;
while(r = a%b){
a = b;
b = r;
}
return b;
}
void timu_10(){
printf("%d | " , gy(2352 , 3696));
}

void timu_11(){
int count = 15;
srand(time(NULL));
int* ary = (int*)malloc(sizeof(int)*count);
if(ary == NULL){
printf("malloc error!n");
exit(1);
}
int i;
for(i = 0 ; i < count ; i++){
*(ary+i) = (rand() % 89) + 10;
}
for(i = 0 ; i < count ; i++){
printf("ary[%d]=%d " , i , *(ary+i));
}
int j;
for(i = 0 ; i < count ; i++){
for(j=i+1 ; j < count ; j++){
if(*(ary+i) < *(ary+j)){
*(ary+i) = *(ary+i) ^ *(ary+j);
*(ary+j) = *(ary+i) ^ *(ary+j);
*(ary+i) = *(ary+i) ^ *(ary+j);
}
}
}
printf("nsort:n");
for(i = 0 ; i < count ; i++){
printf("ary[%d]=%d " , i , *(ary+i));
}
free(ary);
}

void echo_t(int i){
printf("n%-4d:----------------------------:^^^:n" , i);
}
int main(int argc , char ** argv){

echo_t(1);timu_1();
echo_t(2);timu_2();
echo_t(3);timu_3();
echo_t(4);timu_4();
echo_t(5);timu_5();
echo_t(6);timu_6();
echo_t(7);timu_7();
echo_t(8);timu_8();
echo_t(9);timu_9();
echo_t(10);timu_10();
echo_t(11);timu_11();
return 0;
}
C语言试卷 请高人帮忙解答一、选择题1.以下叙述不正确的是___________。A. 一个C源程序可由一个或多个函数组
C语言试卷 请高人帮忙解答
一、选择题
1.以下叙述不正确的是___________。
A. 一个C源程序可由一个或多个函数组成 B. 一个C源程序必须包含一个main函数
C. C程序的基本组成单位是函数 D. 在C程序中,注释说明只能位于一条语句的后面
2.以下程序的输出结果是___________。
main()
{ printf(“n*s1=%15s*”,”chinabeijing”);
printf(“n*s2=%-5s*”,”chi”);
}
A. *s1=chinabeijing * B. *s1=chinabeijing *
s2=**chi* *s2=chi *
C. *s1=*chinabeijing* D. *s1= chinabeijing*
*s2=chi* *s2=chi *
3. 下面四个选项中,均是C语言关键字的选项是___________。
A. auto B. switch C. signed D. if
enum typedef union struct
include continue scanf type
4.以下关于运算符优先顺序的描述中正确的是___________。
A. 关系运算符<算术运算符<赋值运算符<逻辑与运算符
B. 逻辑与运算符<关系运算符<算术运算符<赋值运算符
C. 赋值运算符<逻辑与运算符<关系运算符<算术运算符
D. 算术运算符<关系运算符<赋值运算符<逻辑与运算符
5.若w=1,x=2,y=3,z=4,则条件表达式w
tiger5921年前4
lubingbing8888 共回答了20个问题 | 采纳率90%
麻烦阿
求一个fortran源程序,求出1到1000的素数.按每行十个素数输出.
gogocc1年前1
上帝de仁慈 共回答了17个问题 | 采纳率94.1%
建议认真学习 Fortran 语法.
作业是你提高的很好方式,也是锻炼自己的重要途径.
如果你连作业题都求助,让别人给你现成的,你永远不会进步.
阶乘问题(fact.c)2、阶乘问题源程序名    fact.(pas,c,cpp)可执行文件名 fact.exe输入文
阶乘问题(fact.c)
2、阶乘问题
源程序名    fact.(pas,c,cpp)
可执行文件名 fact.exe
输入文件名   fact.in
输出文件名 fact.out
也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如:
12!= 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001,600
12的阶乘最右边的非零位为6.
写一个程序,计算N(1
a34371年前1
jr麦哥 共回答了17个问题 | 采纳率94.1%
// 求最大的nk使得 k^nk 整除 n
int nk(int n,int k)
{
int t = 0;
while(n && n%k==0)
{
++t;
n /= k;
}
return t;
}
int fun(int n)
{
int n2 = 0,n5 = 0,dn,p = 1,
i,j;
for(i=2; i