很简单的问题,其实只要好好看完谭老的书,这些问题就不在是问题了。加油吧。
1这两个是对函数的声明,double factorial(int) double 是函数的返回值类型, int是函数参数的类型,这里只有一个参数。另外一个也是这个意思。不过Term函数的参数是有两个参数,double类型和int类型。因为程序中有对自定义函数的引用,所以首先要进行声明,程序的最后则是对这两个函数的定义。
2l是long的意思,明白了吧,就是长类型,如long int,就是长整型。这里lf就是双精度。
3fabs是编译器提供的函数,求绝对值。就是求dTemp的绝对值然后与dEps进行比较。
4这个我已经说了,程序的最后是对所自定义的函数进行的定义。也就是对你自己定义的函数的设计。
通过你提的问题可以看出,对c的学习还是很浅。书本的基本知识还是要抓经的,毕竟没有基本功,想学好c语言是不可能的。
建议你先看完谭浩强的c语言教程。
加油!!
我也是初学者,大概的试试,不一定对哦。
#include<reg51h>//51头文件
#include
<intrinsh>//数学计算头文件
unsigned
char
idata
DataResult;//宏定义全局变量
sbit
IOCLK=P1^0;//位声明
sbit
DATAOUT=P1^1;;//位声明
sbit
CS=P1^2;;//位声明
void
int0svr(void)
interrupt
0
using
1;//貌似是定时器
{unsigned
char
count,tmp,i;
EX0=0;
tmp=0;
CS=1;
IOCLK=0;
CS=0;
_nop_();
for(count=0;count<8;count++)
{IOCLK=1;
if(DATAOUT)
tmp++;
tmp=tmp<<1;
IOCLK=0;
}
CS=1;
DataResult=tmp;
for(i=0;i<3;i++)
_nop_();
EX0=1;
}
void
main(void)//主函数
{TMOD=0x20;//初始化
TL1=0xe6;
TH1=0xe6;
PCON=0x00;
TR1=1;
SCON=0x50;//貌似
串口清零
CS=1;
EA=1;
EX0=1;
do
{SBUF=DataResult;
while(TI==0);
TI=0;
}while(SBUF!=0);
while(1);//等待
}
兄台俺是个菜鸟
,只会胡扯这些了,
我看这个好像是串口通信用的。您学会了给俺说说。。
这应该属于线性代数中,求解线性方程组AX=b中的解X(X1,X2……Xn),这个程序基本上可以用matlab中的一句话代替 X=A\b ,只是这个运算在方程组有无穷多解的情况下会报错。
你的程序的详细注释如下:
A=[6,-2,2,4;12,-8,4,10;3,-13,3,3;-6,4,2,18]; % 线性方程组系数矩阵 A
b=[0;-10;-39;-16]; % AX=b 中的 b
B=[A b]; %构造 增广矩阵 B
ra=rank(A) % 求解系数矩阵 A 的秩
rb=rank(B) % 求解增广矩阵 B 的秩
n=length(b); % 得到 b 的长度,后面要用到
X=zeros(n,1); % 初始化向量 X 用于存放方程组的解
C=zeros(1,n+1); % 初始化 C 用于下面的两行交换
if ra>rb % 如果增广矩阵的秩大于系数矩阵的秩,则方程组无解,(提示一下,这里程序错了,应该是 ra<rb )
disp('B的秩大于A的秩,方程组无解!') %屏幕输出这句话
return; % 程序结束
elseif ra==rb & rb==n % 如果增广矩阵的秩等于系数矩阵的秩,都等于n,则方程组有唯一解
disp('B和A的秩均等于n,方程组有唯一解,用高斯列主元消去法求解过程如下:') %屏幕输出这句话
for p=1:n-1 %高斯消元法,逐步将B化为梯形矩阵,即近似上三角形的矩阵
disp('p='); %屏幕显示当前对第几列进行 *** 作
disp(p);
[Y,j]=max(abs(B(p:n,p))); %从第p列的p到n行的元素中选出一个绝对值最大的元素Y,及其所在位置j。
disp('j='); % 屏幕输出最大元素所在的位置
disp(j);
C=B(p,:); %这三句话是进行两行互换,将当前 *** 作的最上面一行,即第p行,与第j行进行互换
B(p,:)= B(j+p-1,:);
B(j+p-1,:)=C;
disp(B); %屏幕输出两行互换后的 B
for k=p+1:n %以B(p,p)为基准,将第p列其下侧的元素依次通过初等行变换,化为零
m= B(k,p)/ B(p,p); %第p列,第k个元素与B(p,p)的比值
B(k,p:n+1)= B(k,p:n+1)-m B(p,p:n+1); %将第k行进行初等行变换
end
disp(B); %屏幕输出变换后的 B
end
b=B(1:n,n+1);%从变换后的B中提取出b
A=B(1:n,1:n); %从变换后的B中提取出A
X(n)=b(n)/A(n,n); %从最后一行计算出X(n)
for q=n-1:-1:1 %依次从第n-1行到第1行,求解出X(n-1)……X(1)
X(q)=(b(q)-sum(A(q,q+1:n)X(q+1:n)))/A(q,q);
end
disp(X) % 屏幕输出最终的解 X
else % 如果前两种情况都不满足,那就只有可能是ra=rb,且都小于n,方程组有无穷多解
disp('B和A的秩相等切小于n,方程组有无穷解!') %屏幕输出这句话
end
Bitree T -> 定义Bitree一个实例对象:T;
Bitree &T -> 定义Bitree的实例对象的引用,就是一个已经定义的对象的别名,需要初始化;
/
摘自<<高质量C++/C编程指南>>
引用是C++中的概念,初学者容易把引用和指针混淆一起。一下程序中,n是m的一个引用(reference),m是被引用物(referent)。
int m;
int &n = m;
n相当于m的别名(绰号),对n的任何 *** 作就是对m的 *** 作。例如有人名叫王小毛,他的绰号是“三毛”。说“三毛”怎么怎么的,其实就是对王小毛说三道四。所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。
/
Bitree T -> 定义Bitree的实例对象指针,指向一个实例对象;
代码参考:
Bitree T;
Bitree &T = T;
Bitree T = &T; //&是取地址
你用的那本书?找来找去都没找到你说的这都段代码,是写错了?不过这种语言不是编程语言,是一种描述语言,更贴近于自然语言。其实进程同步中的临界资源很好表示啊。就比如生产者消费者问题。
我们老师教我们不用按照书上的方法写,按他的方式是一样的:
其中P()=wait() *** 作,V()=signal() *** 作
第一步,设置变量,第二步,信号量初值S1,S2,前驱为S1=1,后继为S2=0,第三步,前驱进程钱放置一条P(S1),结束位置放置一条V(S2) *** 作;后继进程钱放置一条P(S2),结束位置放置一条V(S1) *** 作。
其实书上写的那些代码是没用的,这个数组表示有很多资源array{0,1,…,n-1},但是考试和一般情况只会考一种资源,知道一种资源也就知道很多资源的方法了,具体是:
VAR mutex,empty,full;
mutex=1;empty=n;full=0;
proceducer(生产者):
begin
p(empty);
p(mutex); //防止生产者和消费者同时访问缓存区
buffer(in):=nextp; //存入数据,在考试时,可以直接用自然语言说,比如直接写:存数据;
in:=(in+1) mod n;//保证存入的数据在缓存区顺序排列
v(empty);
v(full);
end
consumer(消费者):
begin
p(full);
p(mutex);
nextc:=buffer(out);
out:=(out+1) mod n;
v(empty);
v(empty);
end
这个是拉格朗日插值的数值计算程序
输入 x0,y0 分别是已知点的 x,y 坐标
输入 x1 是需要插值的点的 x 坐标
输出 y1 是插值出来得相应于 x1 的 y 坐标
define是宏定义语法,相当于现实生活中的起昵称。
#define N 10 就是给10这个数字起了一个昵称,叫做N
以后的代码中,遇到N的地方,其实就是10,编译器会在编译之前,将N都给一模一样的替换成10。
sort函数是进行前后顺序颠倒的,for循环有三个部分。
第一个部分是初始化,也就是将q指向p + N -1的位置。其中,p是一个形参地址,假设这个p指向的地址,是一个真实的地址,例如xxx胡同1号。那么p + N - 1,就相当于p + 10 - 1,也就是p + 9,相当于xxx胡同10号。上面的函数中,sort的实参是a[10],xxx胡同10号,其实就是a数组的最后一个元素。
第二部分是跳出for循环的条件,就是p < q
第三部分是每次执行完毕之后,进行什么 *** 作,p++,q--
for循环执行体的内容,其实就是一次数据的交换。
假设输入是1,2,3,4,5执行函数之后的结果,就是5,4,3,2,1
以上就是关于谁能给我解释一个程序里某些语句的用法全部的内容,包括:谁能给我解释一个程序里某些语句的用法、请详细解释一下这个C语言程序各语句是什么意思(程序不长)、matlab程序代码解释,【注】需要每条程序语句都需要解释 急急急~~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)