几道PASCAL 弱智题

来源:百度知道 编辑:UC知道 时间:2024/06/01 23:15:19
希望大家用CASE语句或是IF THEN 来做,,,我很急啊。。对一题+30

1. 期未,班长小 Q 决定将剩余班费 X 元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为 6元、5元和 4元。小 Q想买尽量多的笔 (多鼓励同学),同时他又不想有剩余钱。请您编程序,帮小 Q制订出一种买笔的方案。
题目要求:
程序存盘名为:one.pas
输入文件名为:one.in
输出文件名为:one.out
样例:
输入:(只有一个数据x,为剩余班费)
60.1
输出:(只有一个数据,最多购买的笔的数量)
15

2. 对生产出来的产品是要征收税金的。在产值10万元以上征收税5%,在10万元以下但是在5万元以上的征收税3%,在5万元以下但在1万元以上征收税2%,1万元以下的免收税。编程序:计算该产品的收税金额。
题目要求:
程序存盘名为:two.pas
输入文件名为:two.in
输出文件名为:two.out
样例:
输入:(一个数,表示产值单位为万
0.8
输出:(应该收的税收,小数点保留3位,单位为万)
0.000

3.根据学生的成绩给予相应的等低,对应关系如下:
90-100 A
80-89 B
60-79 C
60以下 D
输入学生成绩s,输出对应的等级。
题目要求:
程序存盘名为:three.pas
输入文件名为:three.in
输出文件名为:three.out
样例:
输入:(输入一个数s表示学生成绩)
99.5
输出:(输出学生等级)
A
大侠们哪,,,我要的是CASE最好,免得嵌套啊,递归的,我看得累,现在还在学,只是想知道下这3题怎么个做法,

谢谢大家,万分感谢.

分给我啊
第一题:
program one;
var
x,n,a,b,c,a1,b1,c1:integer;
begin
readln(n);
for a:=1 to n do
for b:=1 to n do
for c:=1 to n do
if a*6+b*5+c*4<=x then if a*6+b*5+c*4>x then begin a1:=a; b1:=b; c1:=c; x:=a*6+b*5+c*4;
writeln(a1+b1+c1);
end.

第二题:
program two;
var
n,m:real;
begin
read(n);
case n of
>10: m:=n*0.05;
<10and>5: m:=n*0.03;
<5and>1: m:=n*0.02;
<1: m:=0;
end;
writeln(m:6:3);
end.

第3题:
program three;
var n:integer;
m:char;
begin
read(n);
if n>=90 then m:='A';
if (n<90)and(n>80) then m:='B';
if (n<80)and(n>60) then m:='C';
if n<=60 then m:='D';
writeln(m);
end.

这叁道题都不用呢幺麻烦…………

1.先三个变量(三种笔的最大数目x/4,x/5,x/6)for循环,然后每次判断一下是否超过剩余的班费(if sum=x),用一个变量max存最大笔数
2.判