有20几个C语言方面的英文专业术语寻求帮助翻译成中文寻求帮助,急~~~

有20几个C语言方面的英文专业术语寻求帮助翻译成中文寻求帮助,急~~~,第1张

1、数学符号、伪代码、算法

2、转义字符、圆括号、花括号

3、注释

4、可视化表示形式、流程图、菱形符号

5、语句、复合语句

6、语法错误、逻辑错误

7、优先级

8、值

9、赋值运算符

10、类型转换

11、实参、形参

12、十进制整数

13、库函数

14、计数控制重复、标志控制重复

15、初始化

16、初始值、基础案例

17、算术表达式

18、编译

19、顺序、选择、循环

20、自顶向下、逐步求精

21、递归函数

22、迭代

23、函数原型

24、自定义头文件

25、按值调用、引用调用

26、存储类、数据类型

27、数组名就是数组地址

28、一个C程序,不管大小,都包含函数和变量

29、学习一种新的编程语言的唯一方法就是用它来写程序。

B.插入排序:

思路:当前a[1]..a[i-1]已排好序了,现要插入a[i]使a[1]..a[i]有序。

procedure insert_sort

var i,j:integer

begin

for i:=2 to n do begin

a[0]:=a[i]

j:=i-1

while a[0]a[j] then swap(a[i],a[j])

end

D. 冒泡排序

procedure bubble_sort

var i,j,k:integer

begin

for i:=1 to n-1 do

for j:=n downto i+1 do

if a[j]r) or (a[i]<=a[j])) {满足取左边序列当前元素的要求}

then begin

tmp[t]:=a[i]inc(i)

end

else begin

tmp[t]:=a[j]inc(j)

end

inc(t)

end

for i:=p to r do a[i]:=tmp[i]

end{merge}

procedure merge_sort(var a:listtypep,r: integer){合并排序a[p..r]}

var q:integer

begin

if p<>r then begin

q:=(p+r-1) div 2

merge_sort (a,p,q)

merge_sort (a,q+1,r)

merge (a,p,q,r)

end

end

{main}

begin

merge_sort(a,1,n)

end.

G.基数排序

思想:对每个元素按从低位到高位对每一位进行一次排序

五、高精度计算

高精度数的定义:

type

hp=array[1..maxlen] of integer

1.高精度加法

procedure plus ( a,b:hpvar c:hp)

var i,len:integer

begin

fillchar(c,sizeof(c),0)

if a[0]>b[0] then len:=a[0] else len:=b[0]

for i:=1 to len do begin

inc(c[i],a[i]+b[i])

if c[i]>10 then begin dec(c[i],10)inc(c[i+1])end{进位}

end

if c[len+1]>0 then inc(len)

c[0]:=len

end{plus}

2.高精度减法

procedure substract(a,b:hpvar c:hp)

var i,len:integer

begin

fillchar(c,sizeof(c),0)

if a[0]>b[0] then len:=a[0] else len:=b[0]

for i:=1 to len do begin

inc(c[i],a[i]-b[i])

if c[i]<0 then begin inc(c[i],10)dec(c[i+1])end

while (len>1) and (c[len]=0) do dec(len)

c[0]:=len

end

3.高精度乘以低精度

procedure multiply(a:hpb:longintvar c:hp)

var i,len:integer

begin

fillchar(c,sizeof(c),0)

len:=a[0]

for i:=1 to len do begin

inc(c[i],a[i]*b)

inc(c[i+1],(a[i]*b) div 10)

c[i]:=c[i] mod 10

end

inc(len)

while (c[len]>=10) do begin {处理最高位的进位}

c[len+1]:=c[len] div 10

c[len]:=c[len] mod 10

inc(len)

end

while (len>1) and (c[len]=0) do dec(len){若不需进位则调整len}

c[0]:=len

end{multiply}

4.高精度乘以高精度

procedure high_multiply(a,b:hpvar c:hp}

var i,j,len:integer

begin

fillchar(c,sizeof(c),0)

for i:=1 to a[0] do

for j:=1 to b[0] do begin

inc(c[i+j-1],a[i]*b[j])

inc(c[i+j],c[i+j-1] div 10)

c[i+j-1]:=c[i+j-1] mod 10

end

len:=a[0]+b[0]+1

while (len>1) and (c[len]=0) do dec(len)

c[0]:=len

end

5.高精度除以低精度

procedure devide(a:hpb:longintvar c:hpvar d:longint)

{c:=a div bd:= a mod b}

var i,len:integer

begin

fillchar(c,sizeof(c),0)

len:=a[0]d:=0

for i:=len downto 1 do begin

d:=d*10+a[i]

c[i]:=d div b

d:=d mod b

end

while (len>1) and (c[len]=0) then dec(len)

c[0]:=len

end

6.高精度除以高精度

procedure high_devide(a,b:hpvar c,d:hp)

var

i,len:integer

begin

fillchar(c,sizeof(c),0)

fillchar(d,sizeof(d),0)

len:=a[0]d[0]:=1

for i:=len downto 1 do begin

multiply(d,10,d)

d[1]:=a[i]

while(compare(d,b)>=0) do {即d>=b}

begin

Subtract(d,b,d)

inc(c[i])

end

end

while(len>1)and(c.s[len]=0) do dec(len)

c.len:=len

end

六、 树的遍历

1.已知前序中序求后序

procedure Solve(pre,mid:string)

var i:integer

begin

if (pre='''') or (mid='''') then exit

i:=pos(pre[1],mid)

solve(copy(pre,2,i),copy(mid,1,i-1))

solve(copy(pre,i+1,length(pre)-i),copy(mid,i+1,length(mid)-i))

post:=post+pre[1]{加上根,递归结束后post即为后序遍历}

end

2.已知中序后序求前序

procedure Solve(mid,post:string)

var i:integer

begin

if (mid='''') or (post='''') then exit

i:=pos(post[length(post)],mid)

pre:=pre+post[length(post)]{加上根,递归结束后pre即为前序遍历}

solve(copy(mid,1,I-1),copy(post,1,I-1))

solve(copy(mid,I+1,length(mid)-I),copy(post,I,length(post)-i))

end

3.已知前序后序求中序的一种

function ok(s1,s2:string):boolean

var i,l:integer p:boolean

begin

ok:=true

l:=length(s1)

for i:=1 to l do begin

p:=false

for j:=1 to l do

if s1[i]=s2[j] then p:=true

if not p then begin ok:=falseexitend

end

end

procedure solve(pre,post:string)

var i:integer

begin

if (pre='''') or (post='''') then exit

i:=0

repeat

inc(i)

until ok(copy(pre,2,i),copy(post,1,i))

solve(copy(pre,2,i),copy(post,1,i))

midstr:=midstr+pre[1]

solve(copy(pre,i+2,length(pre)-i-1),copy(post,i+1,length(post)-i-1))

end

七 进制转换

1.任意正整数进制间的互化

除n取余

2.实数任意正整数进制间的互化

乘n取整

3.负数进制:

设计一个程序,读入一个十进制数的基数和一个负进制数的基数,并将此十进制数转换为此负进制下的数:-R∈{-2,-3,-4,....-20}

八 全排列与组合的生成

1.排列的生成:(1..n)

procedure solve(dep:integer)

var

i:integer

begin

if dep=n+1 then begin writeln(s)exitend

for i:=1 to n do

if not used[i] then begin

s:=s+chr(i+ord(''0''))used[i]:=true

solve(dep+1)

s:=copy(s,1,length(s)-1)used[i]:=false

end

end

2.组合的生成(1..n中选取k个数的所有方案)

procedure solve(dep,pre:integer)

var

i:integer

begin

if dep=k+1 then begin writeln(s)exitend

for i:=1 to n do

if (not used[i]) and (i>pre) then begin

s:=s+chr(i+ord(''0''))used[i]:=true

solve(dep+1,i)

s:=copy(s,1,length(s)-1)used[i]:=false

end

end

九.查找算法

1.折半查找

function binsearch(k:keytype):integer

var low,hig,mid:integer

begin

low:=1hig:=n

mid:=(low+hig) div 2

while (a[mid].key<>k) and (low<=hig) do begin

if a[mid].key>k then hig:=mid-1

else low:=mid+1

mid:=(low+hig) div 2

end

if low>hig then mid:=0

binsearch:=mid

end

2.树形查找

二叉排序树:每个结点的值都大于其左子树任一结点的值而小于其右子树任一结点的值。

查找

function treesrh(k:keytype):pointer

var q:pointer

begin

q:=root

while (q<>nil) and (q^.key<>k) do

if kgoal then begin {若未移到目标}

Move(k-1,6-now-goal) {剩下的先移到没用的柱上}

Writeln(k moved from now to goal)

H[goal,h[goal,0]+1]:=h[now,nowp]h[now,nowp]:=0

Inc(h[goal,0])dec(h[now,0])

Move(k-1,goal){剩下的移到目标上}

End

十二、DFS框架

NOIP2001 数的划分

procedure work(dep,pre,s:longint){入口为work(1,1,n)}

{dep为当前试放的第dep个数,pre为前一次试放的数,s为当前剩余可分的总数}

var j:longint

begin

if dep=n then begin

if s>=pre then inc(r)exit

end

for j:=pre to s div 2 do work(dep+1,j,s-j)

end

类似:

procedure try(dep:integer)

var i:integer

begin

if dep=k then begin

if tot>=a[dep-1] then inc(sum)

exitend

for i:=a[dep-1] to tot div 2 do begin

a[dep]:=idec(tot,i)

try(dep+1)

inc(tot,i)

end

end{try}

十三、BFS框架

IOI94 房间问题

head:=1tail:=0

while tail=1) and (I<=L.len) then

while j<I do begin p:=p^.nextinc(j)end

loc:=p

end

2.单链表的插入 *** 作

procedure insert(L:linklistI:integerx:datatype)

var p,q:pointer

begin

p:=loc(L,I)

new(q)

q^.data:=x

q^.next:=p^.next

p^.next:=q

inc(L.len)

end

3.单链表的删除 *** 作

procedure delete(L:linklistI:integer)

var p,q:pointer

begin

p:=loc(L,I-1)

q:=p^.next

p^.next:=q^.next

dispose(q)

dec(L.len)

end

4.双链表的插入 *** 作(插入新结点q)

p:=loc(L,I)

new(q)

q^.data:=x

q^.pre:=p

q^.next:=p^.next

p^.next:=q

q^.next^.pre:=q

5.双链表的删除 *** 作

p:=loc(L,I){p为要删除的结点}

p^.pre^.next:=p^.next

p^.next^.pre:=p^.pre

dispose(p)


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

原文地址: http://outofmemory.cn/yw/11371121.html

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

发表评论

登录后才能评论

评论列表(0条)

保存