主题:各位高手帮个忙,超简单的PASCAL编程我不会...哭
冰封血之度
[专家分:0] 发布于 2006-12-10 15:29:00
2、 读入三个整数a,b,c,先按读入顺序输出,再按从大到小输出,每个数间空一格。
样例:
输入:3 37 25
输出:3 37 25
37 25 3
3、 将字母a,b,c,d和A,B,C,D转换成1,2,3,4,其余字母转换为5。
样例:
输入:B
输出:2
输入:T
输出:5
4、 读入一个整数,若它是一个平方数,则给出它是哪个数的平方,否则输出“NO”。
样例:
输入:9
输出:3
输入:10
输出:NO
5、 读入一个英文字母并将它输出,当该字母处于字母表的前半部时,输出它的后继,当它处于字母表的后半部时,输出它的前趋。当该字母是第一个或最后一个时没有前趋或后继,则输出“NO”。
6、 某企业经理根据X,Y指标给下属评定等级,方法如下:如果X大于等于4而且Y也大于等于4则评为A;如果X大于等于4而Y小于4则评为B;如果X小于4则评为C。编程给出评定程序。
7、 已知,x在1~8之间,按如下公式计算y的值。(清华P47例)
3x+5 1≤x<2
2sinx-1 2≤x<3
3≤x<5
x2-2x+5 5≤x<8
回复列表 (共18个回复)
沙发
冰封血之度 [专家分:0] 发布于 2006-12-10 15:31:00
帮个忙编一下~~
板凳
编程黑克 [专家分:0] 发布于 2006-12-10 15:49:00
3:for i:=1 to 4 do
begin
if chr(ch)=(i+64)or(i+96) then write(i);
else write(5);
end;
end.
3 楼
冰封血之度 [专家分:0] 发布于 2006-12-10 17:10:00
下题?
4 楼
编程黑客 [专家分:1660] 发布于 2006-12-10 21:16:00
var
i:integer;
begin
read(i);
if sqrt(i)=trunc(sqrt(i)) then write'YES' else write'NO';
end.
5 楼
雪光风剑 [专家分:27190] 发布于 2006-12-11 07:51:00
第一道题(题2)不会不应该了吧
不过我6年没碰过pascal了,语法忘差不多了
思路是:
读入数组
write数组
排序(任何一种,冒泡总会吧,双循环,i:=1 to max-1,j:=2 to max,比较a[i]和a[j],如果不满足约定顺序就交换,这里假定输入数组为a[],数组最大下标是max)
write排序后数组
readln;
end.
题5就是判断多了点
先要判断输入字符对应的ascll(此后舍弃原字符,一律用这个ascll值计算)是不是=65、90、97、122里的一个,是就输出NO,结束
然后判断他是不是在97~122是的话把值-32并且赋标志量为1(否则为0,这里简化计算)
接下来判断是否在66~78之间,是的话输出字符,字符的ascll值为被判断值-1+32*标志量
否则判断是否在78~89之间,是的话输出字符,字符的ascll值为被判断值+1+32*标志量
否则报错
readln;
end.
6很简单吧
先判断x是否大于4
如果是那么再次判断y是否大于4,是的话输出A,否的话输出B
否的话输出C
readln;
end.
7真的没什么好说的了
if x<1 or x>8 报错,end
if x)=1 and x<2
y=3*x+5
else if x<3
y=...
else if x<5
y=...
else
y=...
write(y);
readln;
end.
公式自己补齐……
6 楼
雪光风剑 [专家分:27190] 发布于 2006-12-11 07:52:00
貌似这些东西是应该用我初中学的语法编小学4年即时候做的思考题
7 楼
冰封血之度 [专家分:0] 发布于 2006-12-14 21:44:00
还是不清楚...可以再详细一点吗
8 楼
雪光风剑 [专家分:27190] 发布于 2006-12-15 18:12:00
[quote]3:for i:=1 to 4 do
begin
if chr(ch)=(i+64)or(i+96) then write(i);
else write(5);
end;
end.
[/quote]
这个是错的
else里直接打5的话超过1的都会打出5
9 楼
雪光风剑 [专家分:27190] 发布于 2006-12-15 18:14:00
题5就是判断多了点
先要判断输入字符对应的ascll(此后舍弃原字符,一律用这个ascll值计算)是不是=65、90、97、122里的一个,是就输出NO,结束
然后判断他是不是在97~122是的话把值-32并且赋标志量为1(否则为0,这里简化计算)
接下来判断是否在66~78之间,是的话输出字符,字符的ascll值为被判断值-1+32*标志量
否则判断是否在78~89之间,是的话输出字符,字符的ascll值为被判断值+1+32*标志量
否则报错
readln;
end.
这一段里,按着编就可以
挺明白的了,原理是A65a97
10 楼
雪光风剑 [专家分:27190] 发布于 2006-12-15 18:15:00
哪句不明白再问我吧
整体上真的没什么好解释的
我来回复