回 帖 发 新 帖 刷新版面

主题:急急急,来者加分!

哪位高人,来点Pascal练习,要求:
  1,尽量是字符串或函数或过程。
  2,加详细的解。[em1][em3]

回复列表 (共1个回复)

沙发

我有几个,希望能帮上忙:
1、把26个英语字母正向、逆向打印出来。
Const s:string[26]=’abcdefghijklmnopqrstuvwxyz’;
Var t:string[26];
I:integer;
Begin
  t:=’                          ‘;           {共26个空格}
  For I:=1 to 26 do begin
T[I]:=s[27-I];
  End;
  Writeln(s);
  Writeln(t);

2、找出所有的四位回文数:(回文数就是一个数从左往右读与从右往左读都是同一个数)
var s:string[4];
n:integer;
begin
  for n:=1000 to 9999 do begin
str(n,s);
if (s[1]=s[4]) and (s[2]=s[3]) then write(n:6);
  end;
end.

3、编一程序,求两个自然数的最大公约数。
Var n,m:integer;
Function num(a,b:integer):integer;
Var c:integer;
Begin
  If a>b then c:=b else c:=a;
  C:=c+1;
  Repeat
C:=c-1;
  Until (a mod c=0) and (b mod c=0);
  Num:=c;
End;
Begin
  Write(‘please input 2 numbers:’);
  Readln(m,n);
  Writeln(num(m,n));
End.


4、有一个数列N,已知:N(1)=1,N(X)=N(X-1)*3-1(X>1),求N(100);
Var n100:integer;
Function dg(n:integer):integer;
Begin
  If n:=1 then dg:=1
  Else begin
Dg:=dg(n-1)*3-1;
  End;
End;
Begin
  N100:=dg(100);
  Writeln(n100);
End.

5、编写一个程序,在屏幕上打印以下图形。
$$$$$
 $$$$$
  $$$$$
   $$$$$
    $$$$$
Var I:integer;
Procedure printrow(n,m:integer);
Var r:integer;
Begin
  Write(‘ ‘:n);
  For r:=1 to m do begin
Write(‘$’);
  End;
  Writeln;
End;
Begin
  For I:=1 to 5 do begin
Printrow(I,5);
  End;
End.




我来回复

您尚未登录,请登录后再回复。点此登录或注册