欢迎进入程序世界 C语言程序设计 数学与信息学院 软件学院.

Slides:



Advertisements
Similar presentations
C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
Advertisements

程序设计基础 (Visual C++6.0 环境) 校级重点课程 二〇一〇年十月.
授课教师:江星玲 1.
请将手机调整到静音状态 实验网站:program3.ccshu.net 资源网站:class.ccshu.org/ /
Oracle数据库 Oracle 子程序.
C++程序设计 主讲:王兴波教授 1.
C语言实验 第一课 标题:学号+姓名.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
计算机基础知识 丁家营镇九年制学校 徐中先.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
第1章 程序设计和C语言 1.1 什么是计算机程序 1.2 什么是计算机语言 1.3 C语言的发展及其特点 1.4 最简单的C语言程序
高级语言程序设计 主讲人:陈玉华.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
学习前的准备工作 讲师:burning.
编译原理与技术 2018/11/30 《编译原理与技术》讲义.
管理信息结构SMI.
走进编程 程序的顺序结构(二).
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第二章 Java语言基础.
动态规划(Dynamic Programming)
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
第一章 函数与极限.
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
程序设计基础(C程序设计) 主讲:吴华洋 Mobile: Office:
C语言程序设计.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C语言程序示例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。.
C程序设计.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
《计算机应用基础》 第9章 程序设计基础(二).
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
用穷举法设计程序 南京师范大学 教育技术系 倪佳慧
<编程达人入门课程> 本节内容 计算机编程语言 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
3.16 枚举算法及其程序实现 ——数组的作用.
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
College of Computer Science & Technology
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
C语言程序设计基础 刘新国.
第二章 Java基本语法 讲师:复凡.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
第1章程序设计和C语言.
C++程序设计 概述 潘荣江 山东大学软件学院.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
WEB程序设计技术 数据库操作.
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
顺序结构程序设计 ——关于“字符串”和数值.
编译原理实践 6.程序设计语言PL/0.
Presentation transcript:

欢迎进入程序世界 C语言程序设计 数学与信息学院 软件学院

C语言程序设计 教学要求 掌握程序设计语言的基本知识 了解常用算法 学习方法 培养自主学习 锻炼实践能力

如何尽快学会用C语言进行程序设计 从模仿开始 学会改写 然后是设计

本章要点 什么是计算机语言?什么是程序? C语言有哪些特点? C语言程序的基本组成? 什么是算法?如何描述简单的算法?

1.2 程序与程序设计语言 程序 人们为解决某种问题用计算机可以识别的代码编排的一系列加工步骤。 程序设计语言 提供了一种表达数据与处理数据的功能 要求程序员按照语言的规范编程

1.2 程序与程序设计语言 指令与程序 程序设计语言的功能 程序设计语言的语法 程序的编译与编程环境

程序与指令 指令:每一个指令完成一个最基本的功能 计算机的指令系统:计算机所能实现的指令的集合 拿到手,看上去就象一个清单 如实现一次加法运算 或实现一次两个数的大小判别 计算机的指令系统:计算机所能实现的指令的集合 拿到手,看上去就象一个清单 程序:一系列计算机指令的有序组合

程序与指令 虚拟的计算机指令系统(7条指令 ,看上去很象计算机最初始的语言,机器语言或汇编语言) 指令1:Input X 将当前输入数据存储到内存的X单元 指令2:Output X 将内存X单元的数据输出。 指令3:Add X Y Z 将内存X单元的数据与Y单元的数据相加并将结果存储到Z单元。 指令4:Sub X Y Z 将内存X单元的数据与Y单元的数据相减并将结果存储到Z单元。 指令5:BranchEq X Y P 比较X与Y,若相等则程序跳转到P处执行,否则继续执行下一条指令。 指令6:Jump P 程序跳转到P处执行。 指令7:Set X Y 将内存Y单元的值设为X。 讲清楚,了解计算机指令系统是编程的前提

程序与指令 输入3个数A, B和C,求A+B+C的结果 Input A; 输入第1个数据到存储单元A中 Input B; 输入第2个数据到存储单元B中 Input C; 输入第3个数据到存储单元C中 Add A B D; 将A、B相加并将结果存在D中 Add C D D; 将C、D相加并将结果存在D中 Output D; 输出D的内容

程序与指令 输入2个数A和B,求A*B的结果 1.Input A; 输入第1个数据到存储单元A中 2.Input B; 输入第2个数据到存储单元B中 3.Set 0 X; 将X设为0,此处X用以统计A累加的次数 4.Set 0 Z; 将Z设为0,此处Z用以存放A*B的结果 5.BranchEq X B 9; 判别X与B是否相等;若相等说明A已累加了B次,程序跳转到第9条指令,输出结果 6.Add Z A Z; Z = Z + A 7.Add 1 X X; X = X + 1 8.Jump 5; 程序跳转到第5条指令,继续循环执行第6条、7条指令 9.Output Z; 输出Z的值,该值等于A*B

一个C语言程序 输入 4 输出 24 例1-1求阶乘问题。输入一个正整数n,输出n!。 #include <stdio.h> /* 引用函数头文件stdio.h */ int main(void) /* 主函数 */ { int n; /* 定义变量*/ int factorial(int n); /* 函数声明 ,表明函数代码在主函数后面*/   scanf("%d", &n); /* 输入一个整数 */ printf(“%d\n”, factorial(n)); /* 调用函数factorial,计算阶乘并输出 */ return 0; } int factorial(int n) /* 自定义函数,计算 n! 的函数 */ int i, fact = 1; /* 定义函数变量 */   for(i = 1; i <= n; i++) /* 计算 n! */ fact = fact * i; return fact; /* 返回结果 */ 11

程序设计语言的语法 高级程序设计语言(例如C语言) ,指令增强了,但更强调语法,例如,如下循环语句 for(i=1;i<=100; i++) sum=sum+i; 源程序(源代码)是一个字符序列,这些字符序列包含了很多“单词”,一些“单词”的组合构成有意义的语法单位,最后一系列语法单位组合成程序。

程序设计语言的语法 C语言的主要“单词” (1)标识符: C语言的标识符规定由字母、数字以及下划线组成,且第一个字符必须是字母或下划线。 (3)自定义标识符: 包括在程序中定义的变量名、数据类型名、函数名以及符号常量名。有意义的英文单词 (4)常量: 常量是有数据类型的,如,123、12.34 (5)运算符。代表对各种数据类型实际数据对象的运算。如,+(加)、-(减)、*(乘)、/(除)、%(求余)、>(大于)

程序设计语言的语法 C语言的主要语法单位 (1)表达式: 运算符与运算对象组合就形成了表达试。如,2 + 3 * 4 (2)变量定义: 变量也有数据类型,所以在定义变量时要说明相应变量的类型。如: int i; (3)语句: 语句是程序最基本的执行单位,程序的功能就是通过对一系列语句的执行来实现的。 (4)函数定义与调用

程序设计语言的语法 其中,(3)语句: 表达式语句:表达式加分号“;” 分支语句:实现分支控制过程 循环语句:实现循环控制的过程 if (a > b) x = a; else x = b; 循环语句:实现循环控制的过程 sum = 0; /* 初始化sum和i */ i = 1; while (i <= 100) { /* while循环语句 */ sum = sum + i; i = i + 1; } 复合语句:用一对“{ }”,将若干语句顺序组合在一起就形成了一个程序段。

程序设计语言的语法 其中,(4)函数定义与调用 函数是完成特定任务的独立模块,函数的使用最主要涉及到函数的定义与调用。 C语言数据的输入输出用库函数printf、scanf等实现。

程序的编译与编程环境 程序的编译 编程环境 编译器 源代码 –––––计算机直接能理解的指令序列 编译器:对源程序进行词法分析、语法与语义分析,生成可执行的代码。 编程环境 包括编辑程序(Edit)、编译(Compile)、调试(Debug)等过程。  

C 语言上机过程 源程序 test.cpp test.obj 可执行代码 test.exe 编译 连接 运行

1.3 C语言的发展历史与特点 历史 1972年:贝尔实验室的Dennis Ritchie在B语言的基础上设计并实现了C语言。 1978年:B.W.Kernighan和D.Ritchie(简称K & R)合著的《The C Programming Language》是各种C语言版本的基础,称之为旧标准C语言。 1983年:美国国家标准化协会(ANSI)制定了新的C语言标准,称ANSI C。

C语言的特点 1.C语言是一种结构化语言 2.C语言语句简洁、紧凑,使用方便、灵活 3.C语言程序易于移植 4.C语言有强大的处理能力 32个关键字,9种控制语句,程序书写形式自由。 3.C语言程序易于移植 C语言将与硬件有关的因素从语言主体中分离出来,通过库函数或其他实用程序实现它们。 4.C语言有强大的处理能力 5.生成的目标代码质量高,运行效率高

1.4 实现问题求解的过程 问题:求1~100间所有偶数的和。 1.问题分析与算法设计 1.4 实现问题求解的过程 问题:求1~100间所有偶数的和。 1.问题分析与算法设计 求在一定范围内(1~100)、满足一定条件(偶数)的若干整数的和,求累加和。 思路:设置一个变量(sum),其初值为0,然后在1~100的数中(i)寻找偶数,将它们一个一个累加到sum中。 一步累加:sum = sum + i; 重复累加,用循环语句实现,在循环过程中: (1) 判别 i 是不是偶数:用分支控制语句来实现。 (2) 对循环次数进行控制:通过 i 值的变化 如何教会大家使用编程工具,最好不过是举一个实际的例子 首先要了解,我们手上有好几种工具可供选择:Visual Studio系列、Code blocks、Eclispe C/C++等等

问题分析与算法设计 思路 –––––确定算法 算法:一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止。 算法的描述: 自然语言 伪代码 流程图:算法的图形表示法

sum = 0 i = 1 i <= 100 sum=sum+i i=i+1 输出sum 真 假

实现问题求解的过程 2.编辑程序 生成程序的源文件,C语言源文件的后缀为 .c / .cpp #include <stdio.h> int main(void) { int i, sum = 0;   for(i = 1; i <= 100; i++) if (i%2 == 0) sum = sum + i; printf("%d", sum); return 0; }

实现问题求解的过程 3.程序编译连接 编辑程序后,用该语言的编译程序对其进行编译,以生成二进制代码表示的目标程序(.obj),与编程环境提供的库函数进行连接(Link)形成可执行的程序(.exe)。 编译程序指出语法错误 语法错误VS逻辑错误

实现问题求解的过程 4.运行与调试 经过编辑、编译、连接,生成执行文件后,就可以在编程环境或操作系统环境中运行该程序。 如果程序运行所产生的结果不是你想要的结果,这是程序的语义错误(逻辑错误)。 调试:在程序中查找错误并修改错误的过程。 调试的方法 设置断点 单步跟踪 调试是一个需要耐心和经验的工作,也是程序设计最基本的技能之一。

C语言程序的调试、运行步骤 开始 结果 语法 错误 源程序 .c / .cpp 目标程序 .obj 可执行程序 .exe 编辑 编译 连接

结 束