描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302552321
用中小学生易于理解的语言来代替高深晦涩的专业术语。包含Python和C 两种语言的基本知识和编程技巧。将Python和C 两种语言进行比照讲解。书中提供了大量应用实例,并附有练习题。
本书是一本供10~14岁中小学生学习计算机语言的入门读物,从初中生的视角,用中小学生易于理解的语言来代替高深晦涩的专业术语,讲解Python和C 两种语言的基本知识和编程技巧。本书将两种计算机语言进行比照讲解,本书中绝大多数实例(除MFC实例)均有Python和C 两种程序版本,这样可以帮助初学者了解不同计算机语言的特点及优势,对于读者将来学习一种新的计算机语言,以及在不同语言之间的转换具有重大意义。 本书共分21章。序章开启你的编程之旅;第1~8章,介绍Python和C 语言的基本结构和语法应用;第9~17章,深入介绍Python和C 的图形、函数、文件及面向对象等编程技巧;第18~20章,介绍Windows下的编程特色应用。书中提供了大量应用实例,并附有练习题。本书可以作为中小学开设计算机语言课程的教材或教学参考书。对于学习编程比较难以入门的高中学 生,亦可将本书作为入门参考。
序章 开启你的编程之旅…… 001
第1 章 Hello World… 012
例1.1 输出文字“Hello World!”… 013
例1.2 求和… … 015
例1.3 对输入求和… … 018
练习1 简单人机对话(1)… 021
第2 章 选择… 022
例2.1 求值… …… 024
例2.2 今天是星期几(1)… 026
练习2 简单人机对话(2)… 029
第3 章 分支(C/C )… … 031
例3.1 今天是星期几(2)… 033
今天是星期几(2)… 033
例3.2 对算式计算(1)… … 034
练习3 今天是星期几(3)… 036
第4 章 循环… 037
例4.1 今天是星期几(4)… 039
例4.2 对算式计算(2)… … 040
例4.3 从1 加到1000… 042
例4.4 等差数列求和… 043
例4.5 求π(1)… … 044
例4.6 鸡兔同笼… …… 046
练习4 求π(2)… … 048
第5 章 嵌套循环…… 049
例5.1 九九表(1)… 050
例5.2 九九表(2)… 051
练习5 输出三角形阵列 053
第6 章 数组(C/C )… … 054
例6.1 排序… … 055
练习6 输出杨辉三角形(1)… …… 057
第7 章 字符串 058
例7.1 密码(1)… … 059
练习7 密码(2)… … 062
第8 章 元组和列表(Python)… … 063
例8.1 今天是星期几(Python 版)… 064
例8.2 排序(Python 版)…… 065
例8.3 对算式计算(1)(Python 版)… … 066
例8.4 对算式计算(2)(Python 版)… … 067
练习8 输出杨辉三角形(2)… …… 068
第9 章 绘制图形…… 069
例9.1 阵列… … 073
例9.2 斐波那契螺线… 077
例9.3 画一只小熊… … 080
练习9 绘制图形 083
第10 章 函数… 085
例10.1 画多只小熊… 086
例10.2 绘制坐标系… 089
练习10 一群橘猫… … 094
第11 章 递归… 095
例11.1 约分(1)… … 096
例11.2 谢尔宾斯基三角形… 099
例11.3 科赫曲线… … 102
练习11 递归应用… … 105
第12 章 指针(C/C )…… 107
例12.1 处理多个密码(1)… 108
练习12 处理多个密码(2)… 109
第13 章 结构体(C/C )… 110
例13.1 结构体小熊… 111
练习13 结构体橘猫… 113
第14 章 文件… 114
例14.1 从文件对算式计算… 115
例14.2 统计图… …… 119
练习14 用文本文件表示图形… …… 122
第15 章 类… … 123
例15.1 作为对象的小熊… … 124
例15.2 绘制抛物线… 129
练习15 绘制正弦曲线… …… 132
第16 章 动画绘制… … 134
例16.1 时钟… 135
例16.2 游动的金鱼… 143
练习16 移动的橘猫… 147
第17 章 键盘和鼠标控制… … 148
例17.1 键盘驱动的金鱼… … 149
例17.2 鼠标驱动的金鱼… … 152
练习17 鼠标控制的橘猫… … 156
第18 章 Windows 程序 157
例18.1 Hello World(Windows 版) 158
例18.2 秒表… 166
第19 章 MFC 绘图和动画… 176
例19.1 斐波那契螺线(MFC 版)… 177
例19.2 时钟(MFC 版)… … 178
例19.3 鼠标驱动的金鱼(MFC 版)… …… 182
? ?
第20 章 游戏制作(MFC)… 186
例20.1 三连消… …… 187
附录A 程序结构及常用函数(方法) 199
附录B 练习题参考程序 214
练习1 简单的人机对话(1) ……215
练习2 简单的人机对话(2) ……215
练习3 今天是星期几(3) 216
练习4 求π(2) 217
练习5 输出三角形阵列 …218
练习6 输出杨辉三角形(1) ……219
练习7 密码(2) …220
练习8 输出杨辉三角形(2) ……221
练习9 绘制图形 …221
练习10 一群橘猫 …225
练习11 递归应用 …228
练习12 处理多个密码 ……231
练习13 结构体橘猫 231
练习14 用文本文件表示图形 ……233
练习15 绘制正弦曲线 ……235
练习16 移动的橘猫 238
练习17 鼠标控制的橘猫 …242
小学毕业的那个暑假,爸爸问我要不要学习计算机编程。编程?听起来好像很酷的样子,我想也没想就答应了。
不过等到真学起来,才发觉完全不是那么回事儿。中间的过程真是一言难尽。尤其是上了初中之后,功课愈加繁忙,我需要从吃饭、睡觉和休息中挤出一些时间来面对那全然陌生的语句和代码。就连那台我平常用来看网剧、购物、玩游戏的电脑也一下子变得生疏了。
刚刚学习程序两个月的时候,爸爸帮我报名参加一场省级竞赛。同场竞赛的一百多名选手之中,算上我只有三名女生。至于我身边的朋友,几乎没有谁和我一样。她们中好多人根本不知道Python 和C 为何物。因为学习的时间太短,那次比赛我并没有晋级,我感到有些沮丧,但爸爸却安慰我,他只是想让我感受一下竞赛的氛围,增长一些见识。至于比赛成绩并没那么重要。
那时我根本没有想到,半年之后我用刚刚学会的MFC 制作的“初中知识关联学习卡片”会在2019 年度全国中小学生电脑制作比赛中获奖。在得知获奖的那个晚上,爸爸对我说:“你记了这么多的笔记,都可以出书了!”
从小父母便教育我,好东西要与大家分享。因此,我也愿意把我的学习经验来与大家分享。更何况,按照爸爸的说法,在与大家分享的过程中,大家有所得,而我并无所失,反而能在这个过程中,使自己得到更多的锻炼!
2018 年夏天,小语刚刚取得中学的录取通知书。在等待开学的这段时间里,我和语妈就孩子的假期安排产生了分歧。语妈主张提前学一些初中课程,我则更倾向于让她学习一些课程以外的技能,例如,计算机编程。
语妈满脸质疑,“现在就学编程,太早了吧!”我和语妈都是“七零”后,从大学时代才开始接触编程。上计算机课是我们能够接触到电脑的机会。在此之前,即便想学,也没有那个条件。毕竟计算机对于那时的大多数普通中学生来说,就是一个传说。而那时的计算机,除了编程之外,我不知道还能干什么别的(当然,那时也有电脑游戏)。
但现在已经完全不同。我们的孩子几乎是看着电脑,伴着网络长大的。对于一般的初中生来说,除了编程和一些比较专业的应用,电脑(还有智能手机)上的东西大概没剩下什么是他们不会用的。既然有这么好的条件,为什么不早一点开始学习编程呢?
从什么语言开始学呢?我接触计算机的前十年所学的计算机语言中,只有C/C 仍然在广泛应用,那就从它开始吧!
于是,在那个暑假,我从收集的计算机语言教材中挑选了几本我认为相对易于理解的,又专
网购了一些针对中学生编程竞赛的书籍。在给小语讲解了一些计算机编程基本概念之后,便都扔给她自己去看了。因为当初我就是自学C语言的。而且我的工作也很忙,并没有那么多时间陪她。
这种“放羊”式的教学效果很不理想,半个假期过去了,除了一些书面的竞赛知识题答得尚可,对于编写程序,小语始终未得入门。于是我挤出一些时间尝试着对照书上的内容给她讲解,每每看到她一脸懵懂的表情,我的内心深受打击。
难道真的如语妈质疑的那样,起步太早了吗?
静下心来,独自翻阅给小语准备的书籍,回想自己当初的学习历程,我发现一个以前一直忽视的问题。我之所以能够看懂这些书,是因为我会。如果没有相关的知识背景,这些书中讲的大多数内容,我恐怕根本看不懂,更别说零基础的小语了。我也相信有一些天才儿童、特别聪明伶俐的孩子,对于计算机程序有着天生的敏感,能够一学就会,但我家小语显然不是这种孩子。
于是我放弃了教科书,开始自行设计一些有针对性的实例,力求简单、典型、实用。一边讲解,一边让小语尝试直接上机编写和实测。等到假期结束,小语已经记了一大本笔记,完成了十多个实例程序的编写和实测,学习的效果开始逐渐显现。
当初为了说服语妈,我曾专门上网去找论据。看到有网友在提相同的问题:“初一学编程,早吗?”下面自然是回答什么的都有,而好几个明显是中学生朋友给出的答案居然是:“初中才学啊?晚了!”
我当时并没有拿这种说法当真。不过在一年后的今天,我越来越认同这种说法,并且为没让孩子更早接触编程而感到后悔。因为身处一个区域的中心城市,初中生所面临的学业负担可想而知,甚至要比高中生的压力还要大。在课业任务重的时候,小语每周甚至抽不出两个小时的时间留给编程。如果早两年,无疑她会有更加充裕的时间。
就是在这种紧张的环境中,小语在学习函数、指针,以及更为复杂的面向对象编程的时候,逐渐遇到了瓶颈。于是我说:“咱们先把C 放一放,换一种语言,学学Python。”
我没有准备新的实例,直接使用前面为C/C 设计的实例,让小语用Python 再做一遍。有了C 的基础,学习基本语法结构相对简单的Python,小语的学习进度这次要快得多。
就这样,在投入了从国庆到春节几乎所有的闲暇时间后,小语基本学会了使用Python 和C 两种语言面向对象编制Windows 简单应用程序的技巧,并参加了2019 年第二十届全国中小学电脑制作比赛,获得了初中组计算机程序设计项目全国二等奖。
兴奋之余,我指着小语那厚厚的几大本笔记开玩笑说:“这些都可以拿去出书了。”
“可以吗?”她眨着眼睛问,“有了这本书,是不是像我一样笨的孩子都可以学会编程了?”我家小语当然不笨,她和其他孩子一样喜欢听到别人夸她聪明。我们也相信任何一个如她一样受到父母钟爱的孩子都不是笨孩子。孩子小的时候,我曾教她要学会分享,现在她要把她学习编程的经验和经历拿出来与大家分享。
于是我们开始认真地考虑出书的可能性。在接下来的几个月中,小语又用她本就不多的休息时间整理了笔记,重新上机测试每一个程序以保证它们不会出错。我则帮助她润饰文字并增加必要的注释,这便是本书内容的来源。
虽然书中的例子开始都是我设计的,后的定稿也是由我来做,但书中绝大部分程序和记述文字都出自小语之手。所以,这首先是她的作品。
致谢
感谢亲爱的妈妈,每每在我冥思苦想的时候,给我送来好吃的,让我缓解压力,并对我们的书提出中肯的意见。还要感谢我的班主任柴老师和学校的荣主任、赵老师对我学习和参赛的支持。
后要感谢我亲爱的爸爸,是他通过精心设计的巧妙实例,带我进入了美妙的编程世界,也是他逐一指出我笔记和程序中的错误。我的语言表达能力有限,文本表述也欠佳,学业又紧张,没有足够的时间,一切都有赖于爸爸的润饰和把关。
首先感谢语妈对我们的全力支持。她是本书的位读者,提出了很多十分中肯的意见。感谢沈阳市沈东初级中学的老师们对小语参加课外学习和活动的支持。
原创性声明
本书中的文字和程序均为作者自行编制完成。实例中所用的图片,包括第17 ~ 20 章实例中使用的荷塘、金鱼和动物图片均为作者自行拍摄。书中所列实例亦为作者自行设计,但作为计算机语言方面的教学用书,所用实例应力求简单和典型,具有普遍性,与其他著作中的实例可能会有雷同之处,这一点在所难免。
在写作本书之前,作者曾经学习和参考过多种Python 和C/C 方面的著作和一些相关网站的内容,从中获得过巨大的启发和帮助。但在本书写作过程中,没有对其观点和内容形成实质性的引用,因此也就没有列出参考文献。
特别说明
在一些资深的程序员看来,本书中的示例程序恐怕不够专业和完美。确实,在整理这些示例程序的过程中,在保证程序运行结果的条件下,我们对它们尽可能简化,以增加可读性,便于读者理解。那么,一般程序中的容错性和兼容性设计就相应被忽略掉了。
此外,不同于很多教材以理论为主、实例为辅的方式,本书主要以实例为主。实例中没有涉及的理论和概念一般不会提及。这也是面向尚未接触足够背景知识的初学者时所做的一种实用性选择。
配套源程序
本书的配套源程序请扫描右侧的二维码进行下载,如果在下载过程中碰到问题请联系陈老师,联系邮箱[email protected]。
作者
2020 年3 月
评论
还没有评论。