欢迎来到天天文库
浏览记录
ID:32280959
大小:54.00 KB
页数:6页
时间:2019-02-02
《freepascal的编程问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.假设邮局规定寄邮件时若每件重量在1公斤以内(含1公斤),按每公斤1.5元计算邮费,如果超过1公斤时,其超出部分每公斤加收0.8元。请编程序计算邮件收费。2.输入三个正整数,若能用这三个数作为边长组成三角形,判断它是何类型的三角形(等边三角形?等腰三角形?一般三角形?)。计算并输出该三角形的面积,否则输出Can't。(组成三角形的条件为:任意两边之和大于第三边)3.输入一个三位数的整数,将数字位置重新排列,组成一个尽可能大的三位数。例如:输入213,重新排列可得到尽可能大的三位数是321。4.运输公司计算运费时,距离(S)越长,每公里运费越低,标准如下:如果S<250公里;运费为标
2、准运价的100%如果250公里<=S<500公里,运费为标准运价的98%;如果500公里<=S<1000公里,运费为标准运价的95%;如果1000公里<=S<2000公里,运费为标准运价的92%;如果2000公里<=S<3000公里,运费为标准运价的90%;如果S=>3000公里,运费为标准运价的85%;。请编计算运费的程序。5.输入考试成绩,如果获85分以上为A等,获60分~84分为B等,60分以下为C等,编程输出考试等级。6.某车间按工人加工零件的数量发放奖金,奖金分为五个等级:每月加工零件数N<100者奖金为10元;100<=N<110者奖金为30元;110<=N<120者奖金
3、为50元;120<=N<130者奖金为70元;N>130者为80元。请编程,由键盘输入加工零件数量,显示应发奖金数。7.期未来临了,班长小Q决定将剩余班费X元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为6元、5元和4元。小Q想买尽量多的笔(鼓励尽量多的同学),同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方案。8.计算1901年2099年之间的某月某日是星期几。提示:我们知道,公历的平年是365天,闰年是366天,置闰的方法是能被4整除的年份在2月加一天,但能被100整除的不闰,能被400整除的又闰;因此,像1600、2000、
4、2400年都是闰年,而1700、1800、1900、2100年都是平年,公元前1年,按公历也是闰年。因此,对于从公元前1年(或公元0年)12月31日到某一日子的年份Y之间的所有整年中的闰年数,就等于[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400][...]表示只取整数部分,第一项表示需要加上被4整除的年份数,第二项表示需要去掉被100整除的年份数,第三项表示需要再加上被400整除的年份数;之所以Y要减一是为了去掉输入的这一年。这样,我们就得到了第一个计算某一天是星期几的公式:W=(Y-1)*365+[(Y-1)/4]-[(Y-1)/100]+
5、[(Y-1)/400]+D.(1)其中D是这个日子在这一年中的累积天数,算出来的W就是公元前1年(或公元0年)12月31日到你输入的这一天之间的间隔日数;把W用7除,余数是几,这一天就是星期几。比如我们来算2004年5月1日: W=(2004-1)*365+[(2004-1)/4]-[(2004-1)/100]+[(2004-1)/400]+(31+29+31+30+1)=731702731702/7=104528……6,余数为六,说明这一天是星期六,这和事实是符合的。上面的公式(1)虽然很准确,但是计算出来的数字太大了,使用起来很不方便。仔细想想,其实
6、这个间隔天数W的用数仅仅是为了得到它除以7之后的余数。这启发我们是不是可以简化这个W值,只要找一个和它余数相同的较小的数来代替,用数论上的术语来说,就是找一个和它同余的较小的正整数,照样可以计算出准确的星期数。显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,(Y-1)*365=(Y-1)*(364+1)=(Y-1)*(7*52+1)=52*(Y-1)*7+(Y-1)这个结果的第一项是一个7的倍数,除以7余数为0,因此(Y-1)*365除以7的余数其实就等于Y-1除以7的余数。这个关系可以表示为:(Y-1)*365≡Y-1(mod7)其中,≡
7、是数论中表示同余的符号,mod7的意思是指在用7作模数(也就是除数)的情况下≡号两边的数是同余的。因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到了那个著名的、也是最常见到的计算星期几的公式:W=(Y-1)+[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400]+D.(2)9.输入两个正整数a,b。b最大不超过三位数,a不大于31。使a在左,b在右,拼接成一个新的数c。例如:a=2,b=16,则c=216;若a=18,b
此文档下载收益归作者所有