- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pascal常用子程序
常用算法子程序
基本数学类:
两个变量交换数值:
procedure swap(a,b:integer;var c,d:integer);
begin
c:=b; d:=a;
end;
两组数据交换数值:
procedure swap(i,j:integer;); //传入两个数组的下标
var k,l:integer;
begin
for k:=1 to n do
begin
l:=a[i,k]; a[i,k]:=a[j,k]; a[j,k]:=l;
end;
end;
求两数的最大值:
function max(a,b:integer):integer;
begin
If ab then max:=a else max:=b;
end;
求一组数的最小值:
function min(a:arr)of integer;
var i:integer;
begin
min:=maxint;
for i:=1 to a[0] do
if mina[i] then min:=a[i];
end;
求两个数的最大公约数:
function??gcd(a,b:integer):integer;
?begin?
???if?b=0?then?gcd:=a
?????else?gcd:=gcd(b,a?mod?b);
end?;
判断一个数是否是素数
function?prime?(n:?integer):?Boolean;var?i:?integer;begin???? ?for?i:=2?to?trunc(sqrt(n))?do??????? if?n?mod?i=0?then?
begin??? prime:=false;? exit; end;??? ??prime:=true;end;
求出1~n范围内的所有素数
procedure getprime(n:longint; var a:arr);
var i,j,l:longint;
t:array[1..50000] of boolean;
begin
fillchar(t,sizeof(t),true);
t[1]:=false; i:=2;
while in do
begin
if p[i] then
begin
j:=i*2;
while jn do begin t[j]:=false; inc(j,i); end;
end;
inc(i);
end;
l:=0;
for i:=1 to n do
if t[i] then begin inc(l);a[l]:=i; end;
a[0]:=l;
end;
进位制转换:
(1)十进制转k进制:
///////////////////////////////////////////////////////整数///////////////////////////////////////////////////////////////
procedure trans_10_k(n,k:longint;var a:arr);
var i:longint;
begin
fillchar(a,sizeof(a),0);
while n0 do
begin
inc(a[0]); a[a[0]]:=n mod k; n:=n div k;
end;
If a[0]=0 then a[0]:=1;
end;
/////////////////////////////////////////////////////////小数///////////////////////////////////////////////////////////
procedure trans_10_k(m:real;l,k:integer; var a:arr); //小数(l=16时相当于十进
//制的第5位)
begin
fillchar(a,sizeof(a),0);
while (m0)and(a[0]=l) do
begin
m
文档评论(0)