pascal 阅读程序

来源:百度知道 编辑:UC知道 时间:2024/07/09 02:39:00
Program ex303;
Const
NN=7;
Type
Arr1=array[0..30] of char;
var
s:arr1;
k,p:integer;
Function fun(s:arr1; a:char;n:integer):integer;
var
j:integer;
begin
j:=n;
while (a<s[j])and(j>0) do dec(j);
fun:=j;
end;
begin
for k:=1 to NN do
s[k]:=chr(ord('A')+2*k+1);
k:=fun(s,'M',NN);
writeln(k);
end.
解释一下各语句的意义,图中红色语句的把意义和执行后的详细情况(对程序各部分数值等的改变)也说明。
如果回答的好的我还会+悬赏

Program ex303;
Const
NN=7; //NN的值
Type
Arr1=array[0..30] of char;
var
s:arr1;
k,p:integer;
Function fun(s:arr1; a:char;n:integer):integer;
var
j:integer;
begin
j:=n; {j被赋成7,指向数组末尾}
while (a<s[j])and(j>0) do dec(j);{如果查找字母比s[j]这个字母小,就把j减1,循环直到查找字母比s[j]大或等于,或者j=0}
fun:=j; {返回j的值}
end;
begin
for k:=1 to NN do
s[k]:=chr(ord('A')+2*k+1);{s[k]被赋成ASCII码为(字母A的ASCII码+2*k+1)的字母,执行完应是这样的 s=(D,F,H,J,L,N,P)}
k:=fun(s,'M',NN); {利用函数查找M按字母表顺序排列应在s数组中的位置}
writeln(k); {输出这一位置}
end.

Program ex303;
Const
NN=7;
Type
Arr1=array[0..30] of char;
var
s:arr1;
k,p:integer;
Function fun(s:arr1; a:char;n:integer):integer;
var
j:integer;
begin
j:=n;
while (a<s[j])and(j>0) do dec(j);
fun:=j;
end;
begin
for k:=1 to NN do
s[k]:=chr(ord('A')+2*k+1); <