编程语言应用

首页 » 常识 » 问答 » C入门基础系列走进信息学奥赛,如何做
TUhjnbcbe - 2023/4/26 20:32:00

数学学得好的孩子,对信息学的学习也非常有帮助。

本文就结合编程中的if条件结构,讲三则信息学与数学之间的学科融合案例。首先,需要同学们学习并掌握C++中条件结构的基础语法。

if条件结构是编程语言世界里的三大结构(顺序、条件、循环)之一。和其他编程语言一样,C++里的条件结构同样有:简单条件、一般条件、多重条件以及嵌套条件等形式。

相关语法,可参考本文作者关于C语言的教学视频或其他资料信息,C++与C语言有关条件结构的语法完全相同,这里就不再赘述了。

01案例一:输入一个字符,判断其ASCII的奇偶性

在这里,需要了解这么几个概念。

第一:奇偶性,就是给出一个数字,在数学里它是分单数和双数的;单数就是奇数,双数就是偶数。

在人类认知里很容易区分奇数和偶数,那么如何让计算机辨识呢?有一个办法就是让该数去取2的余数,如果能被2整除(余数为0),则为偶数;如果不能被2整除(余数为1),则为奇数。

第二:字符,就是单个字母、数字、或者其他符号。字符类型在C++中是一种数据类型,其关键词为char;给字符变量赋值用单引号引起来即可。比如:

charch=‘A;

意思是说:声明了一个字符变量,变量名为ch,给其赋初始值为字母‘A’。

第三:ASCII((AmericanStandardCodeforInformationInterchange),美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。就是我们电脑键盘上的每一个健对应着一个ASCII值。在计算机的存储单元中,一个ASCII码值占一个字节(byte),一个字节又等于8个二进制位(bit),即:1byte=8bit。

因为1位二进制数可以表示2种状态:0、1;而2位二进制数可以表示4种状态:00、01、10、11;依次类推,8位二进制数可以表示种状态。

信息学奥赛课课通(C++)京东好评率99%无理由退换京东配送官方店旗舰店¥64.6购买

ASCII划分为两个集合:个字符的标准ASCII码和附加的个扩展ASCII码。常用的ASCII码有:

‘A’-‘Z’:65-90,大写字母的ASCII值范围‘a’-‘z’:97-,小写字母的ASCII值范围‘0’-‘9’:48-57。数字键对应的ASCII值范围

有了上述的知识储备,编写条件判断就简单很多了。同学们试试吧!

02案例二:苹果和虫子

有人买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时后,还有多少个完整的苹果?

这是一道典型的数学与编程结合的案例。要求输入:n、x、y三个不确定的值,据此计算出最后剩余完整苹果的个数。

分析:n代表苹果的总个数,x代表虫子吃到一个苹果的时间,y代表总共消耗的时间。这里同样也需要类似奇偶性判断,如果y取x的余数刚好等于0,则表示刚刚好虫子吃掉了y/x个苹果,剩余:n-y/x即可。如果y取x的余数不等于0,则表示虫子已经吃掉了y/x个苹果,正在吃y/x+1个苹果,则剩余好苹果的个数:n-y/x-1。

在计算机里,除法用斜杠(/)表示,且整数除以整数的结果依然是整数(结论),如:3/2的结果是1,而不是1.5。至于为什么是这样,我们在后面的文章中详细解释,本文中,大家记住上述结论即可。有了上面的分析,程序中带入条件结构即可。

03案例三:判断一个数能够同时被3和5整除

经过前面案例的学习,我们知道:所谓整除,就是余数为0的意思。那么,有这样一个问题,判断一个数是否能够同时被3和5整除。

这个条件判断的表达式如何构造呢?

还记得前面讲到的逻辑运算符吗?建立复杂的表达式就需要用到它们。

假定数字变量名称为n,能够被3整除,就是n取3的余数为0,即:n%3==0。同理,能够被5整除,就是n%5==0。

那么,如果同时满足?需要用到逻辑运算符里的逻辑与()。表达式就可以这样写:

n%3==0n%5==0

然后,把条件结构加上就可以实现了。特别强调:表示相等关系,需要用两个等号(==),一个等号表示赋值。

04小结

这节课的核心知识点就是取余(%)操作。

1、余数一定是比除数小的一个值。比如:取2的余数,得到的只有0和1的结果,就可以做奇偶性判断了。

2、被某个数整除,其实就是没有余数或者余数为0。

思考题,能同时被3、5、7整除的数。如何实现呢?

1
查看完整版本: C入门基础系列走进信息学奥赛,如何做