1第一节编程的魔力从一个神奇的数字说起——2147483647。2147483647是一个质数(也叫做素数,即只能被1和其本身整除的数)。发现这个质数的人是伟大的欧拉同学。1722年他在双目失明的情况,以惊人的毅力靠心算证明了2147483647是一个质数,堪称当时世界上已知的最大质数,他也因此获得了“数学英雄”的美名。现在通过计算机你只需要一秒钟就可以证明2147483647是一个质数⊙﹏⊙b汗2再来看一个经典的问题——八皇后问题如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。下图就是一种解决方案。没错你可以自己拿出笔和纸划一划看看还有没有其他的方案。但是如果我想知道所有的方案该怎么办?又轮到计算机出马了,一共有92中不同的解决方案,牛吧!计算机只需要1秒钟,就可以算出所有的解。再来看一个很流行的益智游戏——数独。在一个9×9格的大九宫格中有9个3×3的小九宫格。默认已经在其中填写了一些数字,现在请在其它的空格上填入1到9的数字。每个数字在每个小九宫格内只能出现一次,每个数字在每行每列也只能出现一次。请看下面这个例子。3我想你一定很快就填出了一种可行的解,可是你知道上面的这个数独一共有多少种不同解吗?51965种不同的解!很难想象吧,计算机仍然只需要1秒钟!怎么样,计算机编程是不是很神奇,你甚至可以轻而易举的在一定范围内去验证“哥德巴赫猜想”。在接下来的内容里你将学会如何与计算机对话,如何让计算机进行数学计算和判断,如何让计算机永不停止的工作,以及一些很意思的程序和游戏。一场有趣的逻辑思维大战即开始,不要走开,赶快进入下一节——让计算机开口说话!4第二节让计算机开口说话为什么会有计算机的出现呢?我们伟大的人类,发明的每一样东西都是为了帮助我们人类,改善人类的生活。计算机同样是用来帮助我们人类的工具。想一想,假如你现在希望让计算机来帮助你做一事情,首先你需要做什么?是不是要先与计算机进行沟通?那么沟通就需要依赖于一门语言。人与人的沟通,可以用肢体语言、汉语、英语、法语和德语等等。如果你要与计算机沟通就需要使用计算机能够听懂的语言。我们学习的“C语言”便是计算机语言的一种,计算机语言除了C语言以外,还有C++、Java、C#语言等等。C语言是一门比较简单的计算机语言更加适合初学者。所有的计算机语言都是相通的,如果你能够熟练的掌握C语言,再学习其他语言就易如反掌啦。既然计算机是人类制造出来的帮助人类的工具,显然让计算机开口说话,让计算机把“它”所知道的东西告诉给我们人类是非常重要的。下面我们就来解决第一个问题:如何让计算机开口说话!回想当年,我们刚刚来到这个世界的时候,说的第一句话是什么?应该不会是“你好!”,“吃了没?”这样会把你的爸爸妈妈吓到的-_-!。5伴随着“wawawa”的一阵哭声,我们来到了这个精彩的世界。现在我们也让计算机来“哭一次”。这个地方特别说一下,计算机要把“它”想说的告诉给人类,有两种方法,一种是显示在显示器屏幕上,一种是通过喇叭发出声音。就如同人类,一种是写在纸上,一种是用嘴巴说出来。我们目前让计算机用音箱输出声音还比较麻烦,因此我们用另外一种方法,用屏幕输出“wawawa”。printf(wawawa);这里有一个生疏单词叫做printf,你不要被它吓到了,目前你不用搞清楚他的本质意义是什么,你只要记住它和中文里面“说”,英文里面的“say”是一个意思,就是控制计算机说话的一个单词而已。在printf后面紧跟一对圆括号(),是不是很像一个嘴巴,把要说的内容“放在”这个“嘴巴里”。这里还有一个需要注意的,在wawawa的两边还有一对双引号,双引号里面的就是计算机需要说的内容,这一点是不是很像我们的汉语。最后,一句话的结束了要有一个结束的符号。我们汉语用句号“。”表示一句话的结束。英语用点号“.”表示一句话的6结束。在计算机语言中,用分号“;”表示一个语句的结束。注:计算机的的每一句话,就是一个语句。好了,现在如果让你写一个语句让计算机说“nihao”怎么办。printf(nihao);我们现在让计算机来运行这个语句,这里要说明一下,仅仅写printf(niprintf(niprintf(niprintf(nihao);hao);hao);hao);我们的计算机识是别不了的,需要加一个框架。完整的程序如下:#includestdio.h#includestdlib.hintmain(){printf(nihao);return0;}这里的#includestdio.h#includestdlib.hintmain(){return0;}是所有C语言都必须要有的框架,现在你暂时不要需要理解它,反正要有这个就是了,以后再来详细的讲这里的是做什么用的。但是有一点,我们今后写的所有类似printf这样的语句都要写在这一对{}之7间才有效。接下来我们需要让计算机运行一下我们刚才写的程序。如果让计算机运行我们写的东西(其实我们写的就是一个C语言程序)。需要一个特殊的软件,它叫做“C语言编译器”①,C语言编译器有很多种,我们这里介绍一种比较简单的软件,叫做“啊哈C”②首先你需要去上去下载“啊哈C”。下面就要进入安装步骤啦,安装很简单,一共分7步,每一步我都截取了图片,你只需要一口气将7幅图片全部看完应该就OK啦。图2-2-2-2-1111“啊哈CCCC”安装((((此处需双击图标))))①“C语言编译器”的作用把是把我们写的程序“变”成一个“exe”可以让计算机直接运行的程序。这个“变”的过程的专业术语叫做“编译”。当你的程序“变”成一个“exe”后,你就可以脱离“C语言编译器”直接运行你的程序了。此时你就可以把你写的exe发给你的朋友和同学让他们一起来使用你编写的程序了。这里程序从某种意义上来讲也可以叫做“软件”。②“啊哈C”是一个C语言集成开发环境,使用的gcc的内核。下载地址ww..ahalei.com8图2-2-2-2-2222开始安装“啊哈CCCC”((((点击下一步))))图2-2-2-2-3333设置“啊哈CCCC”安装目录((((如果不清楚,请直接点击下一步))))9图2-2-2-2-4444创建快捷方式和启动栏图标((((直接点击下一步))))图2-52-52-52-5确认安装信息((((点击安装))))10图2-62-62-62-6安装正在进行((((你只需要等待))))图2-72-72-72-7“啊哈CCCC”安装成功((((点击完成))))11图2-82-82-82-8“啊哈CCCC”界面“啊哈C”安装完毕后,我们便可以看到“啊哈C”的界面如图2-8,同时在你的桌面上也会多一个“啊哈C”的图标。“啊哈C”是一个很人性化的软件,你将会发现“啊哈C”已经帮你将C语言代码框架的那几行代码写好了。我们只需要将printf(nihao);这条语句输入在“啊哈C”中输入就好了,如下图:12图2-92-92-92-9输入printf(niprintf(niprintf(niprintf(nihao);hao);hao);hao);细心的同学可能会发现,“啊哈C”默认C语言框架,比我们之前说的C语言框架多了一句话system(pause);这句话是什么意思呢?稍后我们再揭晓,我们先将这句话删除,删除后如下:13图2-102-102-102-10删除system(pause);system(pause);system(pause);system(pause);好了,童鞋们请注意,到了最后一步,我们需要让我们的代码运行起来。现在你只需要点击一下“啊哈C”上的“运行”按钮。图2-112-112-112-11给程序起个名字14接下来,你需要为你的写的程序起一个名字,我给这个程序起的名字是“nihao”,当然你可以随便起名,中英文都可以。比如你可以叫做“abc”或者“我的第一个程序”或者就叫做“1”都行。将程序的名字输入在图2-11的框框中之后再点击保存,接下来就是见证奇迹的时刻。如果你的代码没有写错,那你的“啊哈C”将会弹出一个对话框,提示你“恭喜你编译成功”如图2-12。请童鞋们注意在输入代码的时候,一定不要中文输入法,这里所有的符号都是英文的,一般也都是小写。图2-122-122-122-12编译成功的提示当然点击“确定”啦。接下来,请注意!!!请注视你的计算机屏幕,一秒也不要走开,数秒之后,你将会发现计算机的屏幕上有一个“黑影”闪过,如果你没有发现这个“黑影”,请重新点击“运行”,并再次注视你的计算机屏幕。此时,你可能想问,为什么屏幕上会出现这个“黑影”?但是我们是要在屏幕上显示“nihao”才对啊。其实刚才那个“黑影”就是“nihao”。只不过计算机的运行速度太快了,计算机在显示完“nihao”之后,立即就消失了。那应该怎么办呢?我们需要让计算机暂停一下。system(pause);上面这句话是我们之前删除了的,其实他的作用就是让计算机“暂停一下”。好了,我们这将句话放在printf(niprintf(niprintf(niprintf(nihao);hao);hao);hao);的后面,完整的代码如下:#includestdio.h#includestdlib.hintmain()15{printf(nihao);system(pause);return0;}好了,再次点击“运行”吧。如果你的代码没有写错,你将看到图2-13。图2-2-2-2-11113333运行成功的结果“请按任意键继续...”是system(pause);输出的一个提示,此时你只需要按下键盘上任意一个按键,这个小黑窗就会关闭了。如果你想让“nihao”分两行显示,你只需要将printf(niprintf(niprintf(niprintf(nihao);hao);hao);hao);改为printf(niprintf(niprintf(niprintf(ni\n\n\n\nhao);hao);hao);hao);这里的\n\n\n\n表示的就是“换行”。注意这里的\\\\是向右下角斜的,他在键盘上的位置,通常是在回车键的上面。代码如下,好赶快尝试一下吧。运行结果如图2-14。#includestdio.h#includestdlib.hintmain(){printf(ni\nhao);system(pause);return0;}16图2-2-2-2-11114444分行后的运行结果当然你也可以让“请按任意键继续...”在下一行显示,只需要将printf(niprintf(niprintf(niprintf(nihao);hao);hao);hao);改为printf(niprintf(niprintf(niprintf(ni\n\n\n\nhaohaohaohao\n\n\n\n))));;;;即可,去试一试吧。����一起来找茬1.下面这段代码是让计算机在屏幕上输出“hi”。其中有3个错误,快来改正吧^_^#includestdio.h#includestdlib.hintmain(){print(hi)system(pause);return0;}����更进一步,动手试一试1.尝试一下让计算机显示下面这些图形吧。17**********************2.那么如何让计算机说中文呢?,请让计算机说“早上好”,如下图,应该怎么办?183.再尝试一下让计算机显示下面这个图形吧。ABCDEFGHIJKLMNOPRSTUVWXYZ����这一节,你学到了什么如何让计算机开口说话,让计算机开口说话的语句是?19第三节多彩一点在上一节我们学习了让计算机开口说话是使用printf。但是我们发现,计算机“说”出的话都是“黑底白字”的,其实计算机可以输出彩色的,我们一起来看看吧。注意此处代码只能在windos操作系统下编译运行。如果你使用的本书推荐的编写C语