写pascal程序时该注意什么?

写pascal程序时该注意什么?,第1张

⊙﹏⊙b汗,看来楼上两位都误会楼主的意思了..

pascal的程序分为两部分,一部分是说明部分,一部分是代码部分。

说明部分分别是:const——常量,label——标记,type——类型,var——变量。正确的书写顺序是:

Label

......

Const

......

Type

......

Var

......

在说明完毕以后,就到程序的主体部分也就是代码部分了。通常从函数和过程开始:

function xxx(i:integer):integer

begin

.......

end

procedure xxx(i:integer)

begin

.......

end

begin

......

end.

在写程序时要仿瞎注意统一缩进,如:

Var

i:integer

a:boolean

begin

Readln(i)

if i<10 then

a:=ture

else

a:=false

Write(a)

End.

以下是一个通过读入半备早空径计算圆面积的例子:

Program ksd

Const

ci=3.14 //定义一个常量,ci为圆周率3.14

Var

r,s:real //定义两个变量,r为实型的数值半径,s为实型的数值面积

Begin

Readln(r) /睁旅/读入半径,存入变量r中

If (r>0) and (r<1000) then //用判断语句确保半径的范围值

s:=r*r*ci

Else

Begin //在判断语句、循环语句等语句中超过两条的执行语句,就必须用复合语句——begin和end

Write("Input error!")

Exit //半径不符合时输出“输入错误”,并退出程序

End

Write(s) //输出面积

End.

1.思路:用一个字符串数组储存输入的数据,并分别输出。

程序:

Var

a:array[1..3]of string

i:integer

Begin

For i:=1 to 3 do

Readln(a[i])

For i:=1 to 3 do

Write(a[i][i])

End.

2.思路:读入数据,存入字符串变量a中,校验a的值是否符合要求,然后再将a的ascii码求出,输出相邻的五个。

程序:

Var

a:char

i,j:integer

Begin

Readln(a)

i:=ord(a) {求出a的ascii码值}

If ((i>66)and(i<89))or((i>98)and(i<121))then {验证a在大写和小写c和x的ascii码之间}

Begin

For j:=(i-2) to (i+2) do

Write(chr(j)) {根据ascii码求字符}

End

Else

Begin

Write('Input Error!')

Exit

End

Readln

End.

3.先判断月份是否二月(二月是特殊的月,闰年有29天,余搏平年有28天),是就判断是否平年,是平年就输出28天,不是就输出29天,不是就判断月份是1,3,5,7,8,10,12这几个月,就输出31天,如果是4,6,9,11这几个月就输出30天。

程序:

Var

i,j:integer

Begin

readln(j,i)

Case i of

1,3,5,7,8,10,12:write('31days')

4,6,9,11:write('30 days')

2:If (j mod 4=0) then write('29 days') else write('28 days')

End

End.

4.水仙花数是指数a,b,c中,a的立方加b的立方加c的立方等于abc。可以用一个三维数组存入abc,历遍100至999,如果a*a*a+b*b*b+c*c*c=a,b,c则输出。

Var

a,b,c:integer

Begin

For a:=1 to 9 do

For b:=0 to 9 do

For c:=0 to 9 do

If(a*a*a+b*b*b+c*c*c=a*100+b*10+c)then

Writeln(a,b,c)

Readln

End.

5.用a,b,c分别代表个位,十位,百位历遍1-999,如果a*100+b*10+c mod 3=0【三位数abc除3的余数是皮毁搜零,代表被3整除】,和【and】a=5或【or】b=5或【or】c=5,就输出abc。

程序:

Var

a,b,c:integer

n:boolean

Begin

For a:=0 to 9 do

For b:=0 to 9 do

For c:=1 to 9 do

Begin

If (((a*100+b*10+c) mod 3=0) and ((a=5)or(b=5)or(c=5))) then

writeln(a,b,c)

End

Readln

End.

6.还是和5同样方法,判断部分略微修改就是了。

Var

a,b,c:integer

n:boolean

Begin

For a:=0 to 4 do

For b:=0 to 9 do

For c:=1 to 9 do

Begin

If (((a*100+b*10+c-2) mod 3=0) and (a*100+b*10+c-3) mod 5=0) and (a*100+b*10+c-2) mod 7=0)) then

writeln(a,b,c)

End

Readln

End.

打了好久那..手都酸燃历了,程序全都通过测试,合乎要求,完全原创,请求楼主采纳~

program sanjiao(input,output)

var a,b,c:integer

s:real

function area(a,b,c:integer):real

var p:real

begin

p:=(a+b+c)/2

area:=sqrt(p*(p-a)*(p-b)*(p-c))

end

begin

write('please input a,b,c:')

readln(a,b,c)

if (a+b>c)and(a+c>b)and(b+c>a) then

begin

s:=area(a,b,c)

writeln(s)

readln

end

else writeln('差判cant')

readln

end.

ps:我已经测试过了,程序正确。程序主要是应用海伦公式,调用一次函数就可以了,p=(a+b+c)/2,p为半周长,海伦公式:s=根号下p(p-a)(p-b)(p-c).我才让慧学pascal不到一个月,马上就要参加竞赛了,初中自学的C语言还不能用···望楼主能采纳虚滑改。


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

原文地址: https://outofmemory.cn/yw/12329895.html

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

发表评论

登录后才能评论

评论列表(0条)

保存