第一章 介绍:程序设计与C语言
文章目录
计算机和编程语言
计算机是怎么做事情的,编程语言是什么
同一件事情,不同对象需要的方式不同:
- 当面对的对象是人时,需要告诉 What to do 。
- 当面对的对象是计算机时,需要告诉 How to do 。
程序是用特殊的编程语言写出来表达如何让计算机解决问题的。不是用编程语言来和计算机交谈,而是描述要求计算机如何做事情的过程或方法。
辗转相除法,是指用于计算两个非负整数a,b的最大公约数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。
假如需要求 1997 和 615 两个正整数的最大公约数,用辗转相除法,是这样进行的:
1997 ÷ 615 = 3 (余 152)
615 ÷ 152 = 4(余7)
152 ÷ 7 = 21(余5)
7 ÷ 5 = 1 (余2)
5 ÷ 2 = 2 (余1)
2 ÷ 1 = 2 (余0)
至此,最大公约数为1
以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数,所以就得出了 1997 和 615 的最大公约数 1。
如下就是使用C语言编写的计算32与26的最大公约数程序:
int u = 32;
int v = 26;
while(v != 0){
int temp = u % v;
u = v;
v = temp;
}
printf("%d",u);
对应的算法就是:
1、如果v等于0,计算结束,u就是最大公约数;
2、如果v不等于0,那么计算u除以v的余数,让u等于v,而v等于那个余数;
3、回到第一步;
这段程序对应在计算机中的内容是:
算法:
- 我们要让计算机做计算,就需要像这样找出计算的步骤,然后用编程语言写出来。
- 计算机做的所有的事情都叫做计算。
- 计算的步骤就是算法。
计算机的思维方式:重复是计算机最擅长的
程序的执行方式有以下两种:
1、解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行。
2、编译:借助一个程序,就像一个翻译,把你的程序翻译成计算机真正能懂的语言-----机器语言-----写的程序,然后这个机器语言写的程序就能直接执行了。
解释语言 VS 编译语言:
对于编程语言来说本身并无 解释、编译 之分。任何一种编程语言即可解释执行,也可编译执行;只是传统与习惯的问题,只是这种语言常用的程序执行方式。经常听到说C语言是编译型语言,因为一般写完C语言程序之后需要先编译,然后再运行;但是也有人做了C语言的解释器。一般说Python是解释型语言,因为一般写完Python程序之后不需要编译,直接可以用源代码执行;但是如果愿意的话也可以做Python语言的编译器。
解释型语言有特殊的计算能力。(因为源代码在执行的过程中不断地被解读,有可能可以做一些特殊的事情;比如运行过程中源代码是否可以被修改)
过去会觉得解释