找各种pascal语言的习题

练习1:有三个孩子。a有50颗糖,B有43颗糖,两个有13颗糖。现在他们玩一个游戏。从A开始,给自己三份糖,自己留一份,另外两份分别给B和C,多出来的糖自己吃,然后B和C依次如此。A,B,C最后吃了几颗糖?

分析:游戏中每个孩子拥有的糖果数量是变化的。用A、B、C三个变量来存储A、B、C在某一时刻拥有的糖果数量。对于每个人来说,分完糖之后,他的糖数必须是原来的糖数div 3(恰好可分可以表示多出来的糖是自己吃的)。而另外两个孩子增加了他们现在和这个孩子一起吃的糖果的数量。

程序xpo

var a,b,c:整数;

开始

a:= 50;

b:= 43;

c:= 13;

a:= a div 3;

b:= b+ a;

c:= c+a;

b:= b div 3;

a:= a+b;

c:= c+b;

c:= c div 3;

a:= a+c;

b:= c+b;

writeln('a= ',a,' b=':5,b,' c=':5,c);

readln

readln

结束。

练习2:对一个产品征税,产值大于10000元时征税5%;1000元以下但5000元以上征收3%的税;5000元以下但1000元以上征收2%的税;1000元以下免税。计算该产品税额的程序。

提示:设X为产值,tax为税金,P用于表示情境常数的值。

p = 0:tax = 0(x & lt;1000 )

P=1,2,3,4:税= x * 0.02(1000 & lt;= x & lt5000 )

P=5,6,7,8,9:税= x * 0.03(5000 & lt;X & lt=10000 )

P=10:税= x * 0.05(x & gt;10000 )

这里P是“case”值,输出值x除以1000的整数值取为P,如果P & gt10也被归类为P=10。帕斯卡是用P=trunc(x/1000)舍入计算的。

解决方案:编程xpo

var x,p:整数;税:实;

开始

写('输入x = ');

读作(x);

p:= trunc(x/1000);

如果p & gt那么0

案例p

0:税:= 0;

1,2,3,4:税:= x * 0.02

5,6,7,8,9:税:= x * 0.03

else税:= x * 0.05

结束;

写('税= ',税:0:2);

readln

readln

结束。

两个小问题,希望对你有帮助_