1
计算机程序设计基础
授课教师,吴文虎 (教授)
上课地点,东阶教室
上机实验,东主楼 Intel机房
2
计算机程序设计基础
一、教学对象
? 计算机科学与技术系新生 (第一学期)
二、教学目标
? 程序设计的重要性
? 程序设计的基本概念与基本方法
? 编程解题的思路与典型方法
? 数学模型简介
? 算法及算法步骤
? 程序结构与相应语句
? 编码与上机调试
? 问题规模与时空复杂度估计
3
计算机程序设计基础
三、教学重点
? 在 C语言的环境下,学会如何针对问题进
行分析,得出数学模型,理出算法并编程
实现。
? 重在思维方法的学习,鼓励创新。
4
计算机程序设计基础
四、指导思想
1,立足改革,人的认识要随着时代的前进
而不断深化,在新的形势和环境下,教学要突
破传统观念和传统模式,也要追求高效和完 美,
以培养高素质有创造精神的人才为这门课的教
学目标。
2,以学生为中心
?学生是教学的主体,安排教学首先须考虑培养
目标、学生的认知规律和学习特点。
?教学的每一个环节都要顾及学生的实际情况,
有利于调动学生学习的积极性,引导学生主动
学习。
5
计算机程序设计基础
3,强化实践
?这门课主张程序设计是高强度的脑力劳动,不
是听会的、也不是看会的,而是练会的。这可
能与以往的教学安排最大的不同之处。
4,鼓励和引导探索式的学习
?按照建构主义的学习理论,学生(作为学习的
主体)在与客观环境(所学内容)的交互过程
中构建自己的知识结构的。引导学生在解题编
程的实践中探索其中带规律性的认识。将感性
认识升华到理性高度。
6
计算机程序设计基础
5,突出重点
?重点放在思路、算法、编程构思和程序实现上。
语句只是表达工具,要求堂上积极思考,尽量
当堂学懂,重在训练分析问题和解决问题的能
力。
6,养成良好的编程习惯
?强调可读性
?变量要加注释;
?程序构思要有说明;
?学会如何调试程序
?尽可能优化
?对运行结果要做正确与否的分析。
7
计算机程序设计基础
7,考试方法
?不纸上谈兵,不搞笔试,不考死记硬背的东西
?上机解题,自动测试
?不计失败,只计成功
?正在建立试题库,题目随机抽取
8,学习方法
?动手动脑,理论指导下的实践
?有条有理的实践。实践出真知
?,自学、动手、应用、上网,
?在编写大量程序之后,才能感到运用自如。
8
计算机程序设计基础
9,学习心态
?“自立、自信、自尊、自强”,高标准严
要求,越学越会充满信心。
第一讲 简单的 C程序设计
10
一、简单的 C程序
// Sample1.c
1 #include <stdio.h> //预编译命令,将标准输入输出函数
//作为头文件包扩到用户源文件中
2 #include <math.h> //预编译命令,将系统提供的数学函数
//作为头文件包扩到用户源文件中
3 void main( ) //主函数,名为 main,
//void是类型说明符(无返回值)
4 { //函数体,开始
5 float a,b,c; //声明部分,定义变量类型
6 b=30.0; //执行部分,赋值语句
7 a=sin(b*3.14159/180); //执行部分,赋值语句
8 printf("%f\n",a); //执行部分,输出语句
9 } //函数体,结束
11
一、简单的 C程序
预编译命令
主函数 main( )
{ 函数体开始
声明部分
执行部分
} 函数体结束
12
讲解这个简单的程序
1 浮点数 floating-point number
?指带有小数部分的数,又称实数,C语言中的浮点
数是以十进制数表示的,采用两种形式
( 1)小数形式, 如
( 2)指数形式, 如
一、简单的 C程序
??-- 63 2 1, 5 4 e -6 3 2 1, 5 4 1 0
3,1 4 1 5 9
整数, 小数 e 指数
13
一、简单的 C程序
类型 比特数 有效数字 数值范围
float 32 6~7
double 64 15~16
long double 128 18~19
3837 10~10 ?
308307 10~10 ?
4 9 3 24 9 3 1 10~10 ?
float —— 32bit
double —— 64bit
long double —— 128bit
14
一、简单的 C程序
2 声明的作用
?为变量分配内存单元,变量名作为内存单元的符号
地址,这件事是在程序编译链接时完成的。
3 变量
其值可以改变的量
通过 b可以找到相应的存储单元地址 XXXX
b 变量名
————变量值
存储单元地址 XXXX
30.0
15
一、简单的 C程序
4 对变量的赋值
赋值符号,=” <变量 >= <表达式 >
b = 30.0; // 读作将表达式的值 30.0赋给变量 b
a=sin(b*3.14159/180); // 读作将表达式(正弦函数)
// 的值赋给变量 a
5 变量赋值特点
( 1)先定义,后使用
int d,e,f; 定义三个变量为整数类型
如未定义,则在编译时被查出,认为非法
( 2)变量未被赋值前,值为 0
( 3)对变量赋值过程是“覆盖”过程,用新值去替换旧值
( 4)读出变量的值,该变量保持不变
( 5)参与表达式运算的所有变量都保持原来的值不变
16
一、简单的 C程序
d e f
未赋值前 0 0 0
变量赋值过程
执行
e=d 7 7 0
执行
f=d+e
7 7 14
执行
d=7 7 0 0
7
执行
d=d+1 8 7 14
1
17
一、简单的 C程序
6 输出语句
printf函数(格式输出函数)
一般形式为
printf(参数 1,参数 2,参数 3,……,参数 n)
其中参数 1——格式控制
参数 2,参数 3,……,参数 n——输出表列
举例,
float a;
int b;
a = 85.56;
b = 100;
printf("%f %d",a,b);
18
一、简单的 C程序
?格式控制是用双引号括起来的字符串,称
“转换控制字符串”
%f —— 第一个输出表列的格式说明,以小数
形式输出单、双精度实数,隐含输出 6位小数
%d —— 第二个输出表列的格式说明,以带有
符号的十进制形式输出整数(正数不输出符号)
显然,%f是控制实数 a的; %d是控制整数 b的
19
一、简单的 C程序
例:为了醒目,格式控制项中除格式说明之外的
普通字符
输出结果为,
换行
输出 a的值后换一行
printf(“a=%f b=%d",a,b);
a=85.560000 b=100
printf(“%f \n”,a);
20
一、简单的 C程序
7 数学函数
(1) sin(x)
(2) cos(x)
(3) exp(x)
(4) log(x)
(5) log10(x)
(6) fabs(x)
(7) fmod(x,y)
(8) floor(x)
(9) pow(x,y)
(10) sqrt(x)
x为弧度,double x,double sin(x)
cos(x)
整除 x/y的余数
求不大于 x的最大整数
xe
0,?xx
yx
xelo g
x10lo g
|| x
21
一、简单的 C程序
8 算术运算符
+ 加
- 减
* 乘
/ 除
% 模(取余数)
22
一、简单的 C程序
22
22
1
1,1
1
1
1
1
5.0
2.,3,4,
1 c os
3.,60,
2
4,si n si n c os c os
2.0,1.0,1.0,45,
y
x
xy
y a b a b y
yy
y a x b x x c x
a b c x y
?
?
??
?
?
?
? ? ? ?
?
??
? ? ? ?
? ? ? ? ?
练习:
当 时,求 的值。
求。
求。
求。
计算机程序设计基础
授课教师,吴文虎 (教授)
上课地点,东阶教室
上机实验,东主楼 Intel机房
2
计算机程序设计基础
一、教学对象
? 计算机科学与技术系新生 (第一学期)
二、教学目标
? 程序设计的重要性
? 程序设计的基本概念与基本方法
? 编程解题的思路与典型方法
? 数学模型简介
? 算法及算法步骤
? 程序结构与相应语句
? 编码与上机调试
? 问题规模与时空复杂度估计
3
计算机程序设计基础
三、教学重点
? 在 C语言的环境下,学会如何针对问题进
行分析,得出数学模型,理出算法并编程
实现。
? 重在思维方法的学习,鼓励创新。
4
计算机程序设计基础
四、指导思想
1,立足改革,人的认识要随着时代的前进
而不断深化,在新的形势和环境下,教学要突
破传统观念和传统模式,也要追求高效和完 美,
以培养高素质有创造精神的人才为这门课的教
学目标。
2,以学生为中心
?学生是教学的主体,安排教学首先须考虑培养
目标、学生的认知规律和学习特点。
?教学的每一个环节都要顾及学生的实际情况,
有利于调动学生学习的积极性,引导学生主动
学习。
5
计算机程序设计基础
3,强化实践
?这门课主张程序设计是高强度的脑力劳动,不
是听会的、也不是看会的,而是练会的。这可
能与以往的教学安排最大的不同之处。
4,鼓励和引导探索式的学习
?按照建构主义的学习理论,学生(作为学习的
主体)在与客观环境(所学内容)的交互过程
中构建自己的知识结构的。引导学生在解题编
程的实践中探索其中带规律性的认识。将感性
认识升华到理性高度。
6
计算机程序设计基础
5,突出重点
?重点放在思路、算法、编程构思和程序实现上。
语句只是表达工具,要求堂上积极思考,尽量
当堂学懂,重在训练分析问题和解决问题的能
力。
6,养成良好的编程习惯
?强调可读性
?变量要加注释;
?程序构思要有说明;
?学会如何调试程序
?尽可能优化
?对运行结果要做正确与否的分析。
7
计算机程序设计基础
7,考试方法
?不纸上谈兵,不搞笔试,不考死记硬背的东西
?上机解题,自动测试
?不计失败,只计成功
?正在建立试题库,题目随机抽取
8,学习方法
?动手动脑,理论指导下的实践
?有条有理的实践。实践出真知
?,自学、动手、应用、上网,
?在编写大量程序之后,才能感到运用自如。
8
计算机程序设计基础
9,学习心态
?“自立、自信、自尊、自强”,高标准严
要求,越学越会充满信心。
第一讲 简单的 C程序设计
10
一、简单的 C程序
// Sample1.c
1 #include <stdio.h> //预编译命令,将标准输入输出函数
//作为头文件包扩到用户源文件中
2 #include <math.h> //预编译命令,将系统提供的数学函数
//作为头文件包扩到用户源文件中
3 void main( ) //主函数,名为 main,
//void是类型说明符(无返回值)
4 { //函数体,开始
5 float a,b,c; //声明部分,定义变量类型
6 b=30.0; //执行部分,赋值语句
7 a=sin(b*3.14159/180); //执行部分,赋值语句
8 printf("%f\n",a); //执行部分,输出语句
9 } //函数体,结束
11
一、简单的 C程序
预编译命令
主函数 main( )
{ 函数体开始
声明部分
执行部分
} 函数体结束
12
讲解这个简单的程序
1 浮点数 floating-point number
?指带有小数部分的数,又称实数,C语言中的浮点
数是以十进制数表示的,采用两种形式
( 1)小数形式, 如
( 2)指数形式, 如
一、简单的 C程序
??-- 63 2 1, 5 4 e -6 3 2 1, 5 4 1 0
3,1 4 1 5 9
整数, 小数 e 指数
13
一、简单的 C程序
类型 比特数 有效数字 数值范围
float 32 6~7
double 64 15~16
long double 128 18~19
3837 10~10 ?
308307 10~10 ?
4 9 3 24 9 3 1 10~10 ?
float —— 32bit
double —— 64bit
long double —— 128bit
14
一、简单的 C程序
2 声明的作用
?为变量分配内存单元,变量名作为内存单元的符号
地址,这件事是在程序编译链接时完成的。
3 变量
其值可以改变的量
通过 b可以找到相应的存储单元地址 XXXX
b 变量名
————变量值
存储单元地址 XXXX
30.0
15
一、简单的 C程序
4 对变量的赋值
赋值符号,=” <变量 >= <表达式 >
b = 30.0; // 读作将表达式的值 30.0赋给变量 b
a=sin(b*3.14159/180); // 读作将表达式(正弦函数)
// 的值赋给变量 a
5 变量赋值特点
( 1)先定义,后使用
int d,e,f; 定义三个变量为整数类型
如未定义,则在编译时被查出,认为非法
( 2)变量未被赋值前,值为 0
( 3)对变量赋值过程是“覆盖”过程,用新值去替换旧值
( 4)读出变量的值,该变量保持不变
( 5)参与表达式运算的所有变量都保持原来的值不变
16
一、简单的 C程序
d e f
未赋值前 0 0 0
变量赋值过程
执行
e=d 7 7 0
执行
f=d+e
7 7 14
执行
d=7 7 0 0
7
执行
d=d+1 8 7 14
1
17
一、简单的 C程序
6 输出语句
printf函数(格式输出函数)
一般形式为
printf(参数 1,参数 2,参数 3,……,参数 n)
其中参数 1——格式控制
参数 2,参数 3,……,参数 n——输出表列
举例,
float a;
int b;
a = 85.56;
b = 100;
printf("%f %d",a,b);
18
一、简单的 C程序
?格式控制是用双引号括起来的字符串,称
“转换控制字符串”
%f —— 第一个输出表列的格式说明,以小数
形式输出单、双精度实数,隐含输出 6位小数
%d —— 第二个输出表列的格式说明,以带有
符号的十进制形式输出整数(正数不输出符号)
显然,%f是控制实数 a的; %d是控制整数 b的
19
一、简单的 C程序
例:为了醒目,格式控制项中除格式说明之外的
普通字符
输出结果为,
换行
输出 a的值后换一行
printf(“a=%f b=%d",a,b);
a=85.560000 b=100
printf(“%f \n”,a);
20
一、简单的 C程序
7 数学函数
(1) sin(x)
(2) cos(x)
(3) exp(x)
(4) log(x)
(5) log10(x)
(6) fabs(x)
(7) fmod(x,y)
(8) floor(x)
(9) pow(x,y)
(10) sqrt(x)
x为弧度,double x,double sin(x)
cos(x)
整除 x/y的余数
求不大于 x的最大整数
xe
0,?xx
yx
xelo g
x10lo g
|| x
21
一、简单的 C程序
8 算术运算符
+ 加
- 减
* 乘
/ 除
% 模(取余数)
22
一、简单的 C程序
22
22
1
1,1
1
1
1
1
5.0
2.,3,4,
1 c os
3.,60,
2
4,si n si n c os c os
2.0,1.0,1.0,45,
y
x
xy
y a b a b y
yy
y a x b x x c x
a b c x y
?
?
??
?
?
?
? ? ? ?
?
??
? ? ? ?
? ? ? ? ?
练习:
当 时,求 的值。
求。
求。
求。