求nl编程
① 编写函数long fac(int n) 计算n的阶求(即n!)
楼上的递归思路有漏洞!!!
如果用户要求0的阶乘,则他的结果就错了,不但错了而且造成了死递归现象!
要知道0阶乘等于1
所以正确的程序为:
long fac(int n)
{
if (n > 1)
return n*fac(n-1);
return 1;
}
② 用5800计算器编程计算nl
1,熟悉卡西欧5800里面所有牵扯到测量的功能。
2,fx-5800里面的编程语言basic的一些语法,并结合测量的例子来说明。这样跟容易今后上手。
3,对一些例子的分析,包括思路和语法讲解。
4,在实际工作中,用到最多的函数和程序的分享。
最后声明一点,一定要动手,就是看着文章,手里面要拿个5800,要不然一切都是白扯。这系列fx-5800教程是默认为会用fx-5800输入一些基本的字符的。这些都可以参考fx-5800的说明书。电子版fx-5800说明书下载。
这里在灌输一个编程思想。
编程要有个思路,
1、输入部分。
2、计算部分。
3、输出部分。
比方说要正算方位角,首先知道A(x,y),b(m,n) 这是输入部分。
计算部分:pol(x-m,y-n)
输出部分:i,j (i=两点的距离,j=两点的方位角)
③ 用C语言编程求1!+2!+.......+n!
#include<stdio.h>
void main()
{
int i,n,nl,sum=0;
printf("请输入n:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
nl=i;
nl*=nl;
sum+=nl;
}
printf("输出sum:\n");
printf("sum=%d",sum);
}
④ 用C语言编程 :建立三层二叉树,先根遍历输出,在线求高手
A
(B C)
(D E) (F G)
以这课树为例
#include <stdio.h>
#include <stdlib.h>
typedef char Elem;
typedef struct Node
{
Elem data;
struct Node *pLchild;
struct Node *pRchild;
}BTreeNode, *BTree;
BTree CreateBTree(BTree T, Elem *str)//创建二叉树
{
static int i = 0;
if ('0' == str[i])
{
T = NULL;
}
else
{
T = (BTree) malloc (sizeof(BTreeNode));
T->data = str[i++];
T->pLchild = CreateBTree(T->pLchild, str);
i++;
T->pRchild = CreateBTree(T->pRchild, str);
}
return T;
}
void PostTraverseBTree(BTree T)//后序
{
if (NULL != T)
{
PostTraverseBTree(T->pLchild);
PostTraverseBTree(T->pRchild);
printf("%c ", T->data);
}
}
void InTraverseBTree(BTree T)//中序
{
if (NULL != T)
{
InTraverseBTree(T->pLchild);
printf("%c ", T->data);
InTraverseBTree(T->pRchild);
}
}
void PreTraverseBTree(BTree T)//先序
{
if (NULL != T)
{
printf("%c ", T->data);
PreTraverseBTree(T->pLchild);
PreTraverseBTree(T->pRchild);
}
}
int main(void)
{
BTree T = NULL;
Elem str[] = "ABD00E00CF00G00";
T = CreateBTree(T, str);
printf("\n\n");
printf("先序遍历:\n");
PreTraverseBTree(T);
printf("\n\n");
printf("中序遍历:\n");
InTraverseBTree(T);
printf("\n\n");
printf("后序遍历:\n");
PostTraverseBTree(T);
printf("\n\n");
}
⑤ EXCEL编程
数组公式
=SUM(--(FREQUENCY(IF(A1:A20,ROW(A1:A20),),IF(A1:A20,,ROW(A1:A20)))=2))
“=2”就是连续两次,连续三次可以=3
统计0两个IF反一下即可。
⑥ 用matlab进行牛顿拉夫逊法的潮流计算的编程,我也不会。你能帮帮我吗万分感谢!!
B2=input('请输入各节点参数形成的矩阵:B2=');
%本程序的功能是用牛顿-拉夫逊法进行潮流计算
n=input('请输入节点数:n=');
nl=input('请输入支路数:nl=');
isb=input('请输入平衡母线节电号:isb=');
pr=input('请输入误差精度:pr=');
B1=input('请输入由支路参数形成的矩阵:B1=');%变压器侧为1,否则为0
B2=input('请输入各节点参数形成的矩阵:B2=');
X=input('请输入由节点号及其对地阻抗形成的矩阵:X=');
X=input('请输入由节点号及其对地阻抗形成的矩阵:X=');
Y=zeros(n);U=zeros(1,n);cta=zeros(1,n);V=zeros(1,n);O=zeros(1,n);S1=zeros(nl);
for i=1:n
if X(i,2)~=0;
p=X(i,1);
Y(p,p)=X(i,2);
end
end
for i=1:nl
if B1(i,6)==0
p=B1(i,1);q=B1(i,2);
else p=B1(i,2);q=B1(i,1);
end
Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
Y(q,p)=Y(p,q);
Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;
Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;
end %求导纳矩阵
G=real(Y);B=imag(Y);
for i=1:n
cta(i)=angle(B2(i,3));
U(i)=abs(B2(i,3));
%V(i)=B2(i,4);
end
for i=1:n
S(i)=B2(i,1)-B2(i,2);
B(i,i)=B(i,i)+B2(i,5);
end
P=real(S);Q=imag(S);
ICT1=0;IT2=1;
while IT2~=0
IT2=0;t1=1;t2=1;
for i=1:n
if i~=isb
C(i)=0;
D(i)=0;
for j1=1:n
C(i)=C(i)+U(i)*U(j1)*(G(i,j1)*cos(cta(i)-cta(j1))+B(i,j1)*sin(cta(i)-cta(j1)));
D(i)=D(i)+U(i)*U(j1)*(G(i,j1)*sin(cta(i)-cta(j1))-B(i,j1)*cos(cta(i)-cta(j1)));
end
DP(t1)=P(i)-C(i);
t1=t1+1;
if B2(i,6)==2
DQ(t2)=Q(i)-D(i);
t2=t2+1;
end
end
end
t1=t1-1;t2=t2-1;
DPQ=[DP';DQ']; %求DP,DQ
for i=1:t1+t2
if abs(DPQ(i))>pr
IT2=IT2+1;
end
end
H=zeros(t1,t1);N=zeros(t1,t2);K=zeros(t2,t1);L=zeros(t2,t2);
for i=1:t1
for j1=1:t1
if j1~=isb&j1~=i
H(i,j1)=0-U(i)*U(j1)*(G(i,j1)*sin(cta(i)-cta(j1))-B(i,j1)*cos(cta(i)-cta(j1)));
elseif j1~=isb&j1==i
H(i,j1)=U(i)^2*B(i,j1)+D(i);
end
end
end
for i=1:t1
for j1=1:t2
if j1~=isb&j1~=i
N(i,j1)=0-U(i)*U(j1)*(G(i,j1)*cos(cta(i)-cta(j1))+B(i,j1)*sin(cta(i)-cta(j1)));
elseif j1~=isb&j1==i
N(i,j1)=0-U(i)^2*G(i,j1)-C(i);
end
end
end
for i=1:t2
for j1=1:t1
if j1~=isb&j1~=i
K(i,j1)= U(i)*U(j1)*(G(i,j1)*cos(cta(i)-cta(j1))+B(i,j1)*sin(cta(i)-cta(j1)));
elseif j1~=isb&j1==i
K(i,j1)=U(i)^2*G(i,j1)-C(i);
end
end
end
for i=1:t2
for j1=1:t2
if j1~=isb&j1~=i
L(i,j1)=0-U(i)*U(j1)*(G(i,j1)*sin(cta(i)-cta(j1))-B(i,j1)*cos(cta(i)-cta(j1)));
elseif j1~=isb&j1==i
L(i,j1)=U(i)^2*B(i,j1)-D(i);
end
end
end
J=[H,N;K,L];%求雅可比矩阵
modify=-J\DPQ;
Dcta=modify([1:t1],:);
t3=U(:,[1:t2]);
DU=diag(t3,0)*modify([t1+1:t1+t2],:);
t4=1;
for i=1:t1
if B2(i,6)~=1
cta(1,i)=cta(1,i)+Dcta(t4,1);
t4=t4+1;
end
end
t5=1;
for i=1:t2
if B2(i,6)==2
U(1,i)=U(1,i)+DU(t5,1);
t5=t5+1;
end
end
ICT1=ICT1+1;
end %修正原值
for i=1:n
UU(i)=U(i)*cos(cta(i))+1i*U(i)*sin(cta(i));
end
for p=1:n
c(p)=0;
for q=1:n
c(p)=c(p)+conj(Y(p,q))*conj(UU(q));
end
s(p)=UU(p)*c(p);
end
disp('--------------------------------------------------------------------------------');
disp('各节点电压U为(节点从小到大排列):');
disp(UU);
disp('--------------------------------------------------------------------------------');
disp('各节点电压相角为(节点从小到大排列):');
disp(180*angle(UU)/pi);
disp('--------------------------------------------------------------------------------');
disp('按公式计算全部线路功率,结果如下:');
for i=1:nl
if B1(i,6)==0
p=B1(i,1);q=B1(i,2);
else p=B1(i,2);q=B1(i,1);
end
Si(p,q)=UU(p)*(conj(UU(p))*conj(B1(i,4)./2)+(conj(UU(p)*B1(i,5))-conj(UU(q)))*conj(1./(B1(i,3)*B1(i,5))));%各条支路首端功率Si
f=[p,q,Si(p,q)];
disp(f);
end
for i=1:nl
if B1(i,6)==0
p=B1(i,1);q=B1(i,2);
else p=B1(i,2);q=B1(i,1);
end
Sj(q,p)=UU(q)*(conj(UU(q))*conj(B1(i,4)./2)+(conj(UU(q)./B1(i,5))-conj(UU(p)))*conj(1./(B1(i,3)*B1(i,5))));%各条支路末端功率Sj
f=[q,p,Sj(q,p)];
disp(f);
end
disp('--------------------------------------------------------------------------------');
disp('各条支路的功率损耗DS为(顺序同您输入B1时一样):');
for i=1:nl
if B1(i,6)==0
p=B1(i,1);q=B1(i,2);
else p=B1(i,2);q=B1(i,1);
end
DS(i)=Si(p,q)+Sj(q,p);%各条支路功率损耗DS
disp(DS(i));
end
Sp=0;
for i=1:n
Sp=Sp+UU(isb)*conj(Y(isb,i))*conj(UU(i));
end
disp('平衡节点的功率:');
disp(Sp);
------------
在网上找到的一个,希望能有帮助。
⑦ 求asp网页查询access数据库的编程代码
<%‘连接数据库
db = "md.mdb" '前提时保证数据库文件和本文件在统一目录
connstr = "DBQ=" + server.mappath(""&db&"") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set conn = server.CreateObject("ADODB.CONNECTION")
conn.Open connstr
set rs = server.CreateObject("adodb.recordset")
'分页函数
sub pcfinal_page(pageMark)'以pageMark作为分页标志
action = "http://" & request.servervariables("http_host") & request.servervariables("script_name")
query = Split(request.servervariables("query_string"), "&")
For Each x in query
a = Split(x, "=")
If StrComp(a(0), pageMark, vbTextCompare) <> 0 Then
temp = temp & a(0) & "=" & a(1) & "&"
End If
Next
response.Write("<div style=""text-align:center;clear:both;""><form method='get' onsubmit=""document.location ='"&action&"?"&temp&pageMark&"='+ this."&pageMark&".value;return false;"">")
If page<= 1 Then
response.Write ("首页 上一页 ")
Else
response.Write("<a href='"&action&"?"&temp&pageMark&"=1'>首页</a> <a href='"&action&"?"&temp&pageMark&"="&(page -1)&"'>上一页</a> ")
End If
If page>= maxpage Then
response.Write ("下一页 尾页 ")
Else
response.Write("<a href='"&action&"?"&temp&pageMark&"="&(page+1)&"'>下一页</a> <a href='"&action&"?"&temp&pageMark&"="&maxpage&"'>尾页</a> ")
End If
response.Write("["&page&"/"&maxpage&"页] [共"&allpage&"条记录] 转到第 <input type='text' name='"&pageMark&"' size='3' value='"&page&"'> 页 <input type='submit' value='跳转'/></form></div>")
end sub
'列出信息
sql = "select * from mingdan order by id"
rs.open sql,conn,1,1
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr class="specialLineCont">
<th>序号</th>
<th>姓名</th>
<th>性别</th>
<th>身份证号码</th>
<th>年龄</th>
</tr>
<%
page = request("page")
If Not IsNumeric(page) Or page = "" Then
page = 1
Else
page = CInt(page)
rs.pagesize = 25
maxpage=rs.pagecount
allpage=rs.Recordcount
End If
If page<1 Then
page = 1
ElseIf page>maxpage Then
page = maxpage
End If
if page = 1 then
specialID = 1
else
specialID = (page-1)*rs.pagesize
end if
rs.AbsolutePage = Page
If page = maxpage Then
x = allpage - (maxpage -1) * iPageSize
Else
x = iPageSize
End If
if rs.eof then
response.Write("暂无内容!")
else
rs.absolutepage = page
for q=1 to rs.pagesize
if not rs.eof then
%>
<tr align="center">
<td><%=rs("ID")%></td>
<td><%=rs("xm")%></td>
<td><%=Rs("xb")%></td>
<td><%=Rs("sfzh")%></td>
<td><%=Rs("nl")%></td>
</tr>
<%Rs.movenext
end if
next%>
</table>
<%
call pcfinal_page("page")
end if
%>