实战C语言
—编程与恋爱齐飞
第一章 C语言编程环境搭建
第二章 初识C语言
学习计算机编程,必须学习一门计算机语言!就像与老外交流,必须学习一门外语一样。我们就以最经典的C语言来了解计算机编程中的那些事!
2.1、掀起你的盖头来—第一个C程序
学习任何计算机语言,想做的第一件事就是赶快看看第一个程序长成什么样子。就像古代新郎迎娶新娘,入洞房的第一件事就是赶快去掀开新娘的红盖头看看新娘长成什么样子。
下面我们就来掀开C语言的红盖头!
第一个C程序就长成这样:
#include <stdio.h>
int main(int argc, const char * argv[])
{
printf(“Hello World!\n”);
return 0;
}
屈指可数的几行代码!每一行都不能少!
“include <stdio.h>”表示引入一个工具箱。“stdio.h”就是工具箱的名字。这个工具箱里有许多工具。
“printf(“Hello World!\n”)”中的printf就是工具箱“stdio.h” 中的一个工具。它的功能就是在屏幕上显示双引号中的内容。这个程序的运行结果就是在屏幕上显示“Hello World!”。
其它的main、return等语句现在都可忽略不管。我们只要在printf语句的地方不停地加入语句就能很快编出自己的程序来。
哦!计算机编程真是简单!就是准备一些工具箱,然后从工具箱中拿一些工具来做自己的事情。
这真像女朋友化妆,就是准备一些化妆盒,然后拿里面的画笔在脸上描啊、画啊,拿里面的胭脂粉在脸上涂啊、抹啊。
女朋友化妆就是拿化妆盒中的工具来描眉画唇!如果工具不够用或不好用,还会自己去制作一些工具。例如没有面膜可以自己制作黄瓜片来代替。
计算机编程就是拿准备好的工具来做自己想做的事情。如果工具不够用或不好用,那么我们自己需要制造工具。语言会提供相应的语法来让我们制造。后面的章节我们会学习。
所以学习计算机编程,就是学习工具的使用与制造,就是学习事情的逻辑表达。
女朋友要想把装化好,要学会一些化妆工具的使用,要了解一些化妆品的知识,同时要学习化妆的一些过程,按照过程来化妆,不能乱化。
程序要想写好,也要学习一些工具的使用,也要了解一些相关知识,同时还要了解一些过程的处理。
听起来真简单!那赶快写一些程序,来深刻体会这个过程吧!
2.2、写给女朋友的一封情书
谈恋爱是从写情书开始的!那么编程也从写情书开始吧!先给女朋友写一封情书吧。情书要在女朋友的电脑屏幕上显示出来,那就是使用printf工具就可以了。
#include <stdio.h>
int main(int argc, const char * argv[])
{
printf(“你是天,你是地,娶到你我就能顶天立地!\n”)
printf(“你是风,你是雨,娶到你我就能呼风唤雨!\n”)
printf(“你是财,你是宝,娶到你我就能招财进宝!\n”)
return 0;
}
哇!好霸气的情书!
不会写情书的同学有福了。这可是万能情诗,你可以随便修改。
上课时,有同学就这样修改:
#include <stdio.h>
int main(int argc, const char * argv[])
{
printf(“你是名,你是利,娶到你我就是追名逐利!\n”)
printf(“你是花,你是草,娶到你我就是沾花惹草!\n”)
printf(“你是蜂,你是蝶,娶到你我就是招蜂引蝶!\n”)
return 0;
}
当然还有同学是这样修改的:
#include <stdio.h>
int main(int argc, const char * argv[])
{
printf(“C语言是天,C语言是地,学会C语言我就能顶天立地!\n”)
printf(“C语言是风,C语言是雨,学会C语言我就能呼风唤雨!\n”)
printf(“C语言是财,C语言是宝,学会C语言我就能招财进宝!\n”)
return 0;
}
哇!以后你想赞美任何东西都可以套用这个模式!你们就把它叫做赟哥体吧。好好跟赟哥学,后面还有很多其它的体哦!哈哈!
当然,谈恋爱,光写情书是不够的,还要送些礼物。任何事情,程序员都可通过编程来解决,可省钱了!我们来编个程序,送女朋友一朵玫瑰花吧。
printf(“ {@} \n ”) {@}
printf(“ | \n”) |
printf(“ \\|/ \n”) \|/
printf(“ | \n”) |
printf(“ | \n”) |
一朵漂亮的玫瑰花就做出来了!
当然你感觉一朵不够,那你可以送一束玫瑰花。
printf(“ {@} ”)
printf (“ {@} * {@} ”)
printf (“ {@} * {@} * {@} ”)
printf (“ {@}* {@} * {@} * {@} ”)
printf (“ \\{@} * {@} * {@} / ”)
printf (“ \\\\ \\ \\ \\ l / / / / / ”)
printf (“ \\ \\ \\\\\\Y/// // ”)
printf (“ \\ \\ \\ l / / / ”)
printf (“ \\\\Y// ”)
printf (“ >=< ”)
printf (“ //*\\\\ ”)
看看!多漂亮的一束玫瑰花!是不是很省钱啊?
【注】这里有个小知识点。“\”是个特殊字符,它后面跟一些字母表示不同的意思。“\n”表示回车换行,“\t”表示水平制表符,“\a”表示响铃。所以如果需要在屏幕上显示“\”这个符号,需要两个“\”才能在屏幕上显示一个“\”。
你还可以给女朋友画肖像画,给女朋友惊喜哦!来看看我们同学的创意。
printf(” .::::. \n“)
printf (” .::::::::. \n “)
printf (” ::::::::::: \n “)
printf (” ..:::::::::::’ \n “)
printf (” ‘::::::::::::’ \n “)
printf (” .:::::::::: \n “)
printf (” ‘::::::::::::::.. \n “)
printf (” ..::::::::::::. \n“)
printf (” “:::::::::::::::: \n“)
printf (” ::::“:::::::::’ .:::. \n “)
printf (” ::::’ ‘:::::’ .::::::::. \n“)
printf (” .::::’ :::: .:::::::’::::. \n “)
printf (” .:::’ ::::: .::::::::: ‘ ‘:::::. \n “)
printf (” .::’ :::::.:::::::::’ ‘::::. \n “)
printf (” .::’ ::::::::::::::’ “::::. \n “)
printf (” …::: ::::::::::::’ “::. \n “)
printf (” ““ ‘:. ‘:::::::::’ ::::..\n “)
printf (” ‘.:::::’ ‘:’““.. \n ”)
哈哈!只要学会编程,没有你不能做的!
当然,谈恋爱,光会写情诗、送礼物还是远远不够的。女孩子都喜欢聪明有才气的男孩。大家不都说男才女貌吗?要想抱得美人归,接下来应该展现你的聪明才智。下面来看看我们的恋爱创意!
2.3、爱要这样表白
学美术的同学通常喜欢画画来表白爱!
学中文的同学通常喜欢写诗填词来表白爱!
那我们学编程的同学自然就是写程序来表白爱了!
我们来做一个有趣的动画程序来表白爱吧!
动画创意是这样的:
首先屏幕上出来一行字:我送你18朵玫瑰花,你开始数!
接下来屏幕上出来一朵玫瑰花,过一会儿又出来一朵,……,一直出到17朵。
然后出来一行字:你数来数去,只有17朵。
过一会儿又出来一行字:因为还有一朵就是你。
然后马上播放庞龙的歌:你是我的玫瑰,你是我的花,你是我的爱人,是我的牵挂!
听着这么优美的旋律,再加上这么新颖的创意,你女朋友一定会开心不已。
创意出来了,接下来就是实现了。这个程序的主要任务就是动画。
要想做出动画,首先要明白动画的制作原理。动画制作其实跟拍电影是一样的。拍电影的时候,我们会拍出了很多张照片,然后就让这些照片一张一张在屏幕上放映,只是照片之间的切换时间非常短,是1/24秒。也就是1秒钟放映24张照片。而我们的视觉暂留时间,正好是1/24秒。这时我们感觉不出人物的各种动作是断断续续的,而是一种连续的感觉。如果我们把切换时间放长一点,1/10秒、1秒、或者2秒,那就感觉出来了。
所以做动画,最基本的步骤就是3个:首先是拍照,其次是设置切换速度,然后就是切换。
那怎么拍照呢?自然就是使用printf语句来把照片打印到屏幕上。
那怎么设置切换速度?这需要另一个工具,名叫sleep。使用时指定一个时间。它的单位是秒。sleep(1)就是停1秒再切换。sleep(10)就是停10秒再切换。如果要停0.5秒再切换,我们需要另外一个工具usleep。它的单位是微秒。usleep(500000)就是停0.5秒再切换,usleep(100000)就是停0.1秒再切换。
那怎么切换?切换就是把屏幕上原有的照片擦掉,换上新的照片。把原有照片拿掉,需要另外一个工具,叫做system(“clear screen”)。它的作用是把屏幕清除干净,也叫清屏函数。换上新照片,还是使用printf语句来把照片打印到屏幕上。
真是简单!只要3个工具,有趣的动画就做出来了。下面是部分程序代码演示。
//爱要这样表白的动画源代码
system(“clear screen”) //先把屏幕清干净,为照片放映做准备
//先拍第1张照片
printf(“{@}\n”)
printf(” | \n”)
printf(“\\|/\n”)
printf(” | \n”)
printf(” | \n”)
sleep(1) //控制照片之间的切换速度
system(“clear screen”) //清除屏幕,为新照片放映做准备
//然后拍第2张照片
printf(“{@}{@}\n”)
printf(” | | \n”)
printf(“\\|/\\|/\n”)
printf(” | | \n”)
printf(” | | \n”)
sleep(1) //控制照片之间的切换速度
system(“clear screen”) //清除屏幕,为新照片放映做准备
//中间省略了第3张照片~第16张照片的代码
//然后拍第17张照片
printf(“{@}{@}{@}{@}{@}{@}{@}{@}{@}{@}{@}{@}{@}{@}{@}{@}{@}\n”)
printf(” | | | | | | | | | | | | | | || |\n”)
printf(“\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\\|/\n”)
printf(” | | | | | | | | | | | | | | || |\n”)
printf(” | | | | | | | | | | | | | | || |\n”)
sleep(1)
printf(” 你数来数去,\n”); sleep(1)
printf(” 只有17朵!\n”); sleep(1)
printf(” 因为还有一朵就是你!!!!\n”); sleep(1)
printf(” 你是我的玫瑰,你是我的花,\n”); sleep(1)
printf(” 你是我的爱人,是我的牵挂!!!\n”)
这下来就看你的创意了!很多动画程序你都可以做出来!
是不是很简单啊?编程没有你想象的那么难。学会编程其实很简单!
2.4、编程是什么?
到这里为止,我们已经清晰地看到,编程其实是很简单的一个过程。它只有两步:
首先构思你的想法,
然后把想法翻译成计算机语言。
最初的翻译就是找一些现成的工具来表达你的想法。
所以编程就是利用计算机语言来表达你的想法。程序能否写正确,关键看你的想法是否正确。
任何一门计算机语言,一般都会提供很多基本的工具来供我们使用。因此最初的编程,我们只要查找语言手册,学会一些基本工具的使用就可以。现在我们已经学会了一些基本工具的使用,接下来就看你的想法与创意了。只要你想好了,你就可以把它写出来。
现在我们已经学会了编程。但是你在编程的过程中会感觉到麻烦。例如,现在你只送女朋友18朵玫瑰花,如果你要送999朵玫瑰花,你一定会累得不想送了。太麻烦了。有没有更好的办法解决?
有的!请看下一章:循环的世界。
2.5、知识扩展
2.6、练习
第三章 循环的世界
3.1、送你999朵玫瑰花
待续……