C卓越工程师班 授课老师:龚涛 信息科学与技术学院 2016年10月 教材:《C程序员成长攻略》 网络课程网址:

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

3 的倍数的特征 的倍数有 : 。 5 的倍数有 : 。 既是 2 的倍数又是 5 的倍数有 : 。 12 , 18 , 20 , 48 , 60 , 72 , , 25 , 60 ,
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
《程序设计实践》 孙辉 理工配楼104A
《解析几何》 乐山师范学院 0 引言 §1 二次曲线与直线的相关位置.
项目五——校园一卡通程序功能模块化设计 5-1项目显示查询和退出函数设计.
UI(用户界面)集训班 Illustrator 高级班.
小学生游戏.
第6章 指针 6.1 指针的概念 6.2 变量与指针 6.3 数组与指针 6.4 字符串与指针 6.5 函数与指针 6.6 返回指针值的函数
C语言实验 第一课 标题:学号+姓名.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
第九章 字符串.
Hadoop I/O By ShiChaojie.
適用於多選一 可減少if 與 else配對混淆的錯誤.
第 十 章 指 针.
C语言高级编程(第四部分) 字符串 北京大学 信息科学技术学院.
Computer Graphics 计算机图形学基础 张 赐 Mail: CSDN博客地址:
走进编程 程序的顺序结构(二).
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
C卓越工程师班 授课老师:龚涛 信息科学与技术学院 2016年9月 教材:《C程序员成长攻略》 网络课程网址:
第五章 习题课 电子信息与计算机科学系 曾庆尚.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
第一章 函数与极限.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
数列.
专题作业.
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
顺序表的删除.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C语言复习3----指针.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
指针 几个概念:  指针也是一种数据类型,具有指针类型的变量,称为指针变量。
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
3.1 变化率与导数   3.1.1 变化率问题 3.1.2 导数的概念.
3.16 枚举算法及其程序实现 ——数组的作用.
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
数据报分片.
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
分数再认识三 真假带分数的练习课.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 结构体.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
本节内容 指针类型的使用 视频提供:昆山爱达人信息技术有限公司.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
本节内容 如何调试驱动程序? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
编程达人-- 从零开始学UI系列教程 第九节、布尔运算 先行者 YC.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
任课教师:戴开宇 TA:时均帅、谭肖、王安华 程序设计B班 :20-16:50(90分钟)
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
本节内容 this指针 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

C卓越工程师班 授课老师:龚涛 信息科学与技术学院 2016年10月 教材:《C程序员成长攻略》 网络课程网址: http://www.ytxxchina.com/taogong

第3章 兴趣 尝试动画和小游戏的编写 进一步学习数组 进一步学习指针 C语言编程新天地——图形界面绘制 课程设计小案例—屏幕打飞字 课程设计大案例:移动十五的实现 东华大学信息科学与技术学院 龚涛

第3章 兴趣 尝试 动画 3.1 进一步学习数组 数组是数字元素的有序集合,用下标表示其数字元素的位置,C程序的下标从0开始逐一增加计数。 第3章 兴趣 尝试 动画 3.1 进一步学习数组 数组是数字元素的有序集合,用下标表示其数字元素的位置,C程序的下标从0开始逐一增加计数。 所谓顺序数组是指这个数组中的各个数按照下标的递增逐渐增大(升序)或逐渐减小(降序)。本实例程序假设合并两个升序数组,数组如下: a[10]={10,15,23,30,35,37,41,48,50,65}; b[10]={7, 9, 14,25,32,33,34,35,36,39}; 要合并到数组c[20]中来,且使合并后的c[20]也是一个升序数组。 东华大学信息科学与技术学院 龚涛

第3章 兴趣 尝试 动画 3.1 进一步学习数组 【例2-14】合并两个升序数组 main() { 第3章 兴趣 尝试 动画 3.1 进一步学习数组 【例2-14】合并两个升序数组 main() { int a[10]={10,15,23,30,35,37,41,48,50,65}, b[10]={7, 9, 14,25,32,33,34,35,36,39}, c[20]; int i, pa=0, pb=0,pc=0; while(pa<10 && pb<10) { if(a[pa]<=b[pb]) c[pc++]=a[pa++]; else c[pc++]=b[pb++]; } while(pa<10) c[pc++]=a[pa++]; while(pb<10) c[pc++]=b[pb++]; for(i=0;i<20;i++) printf(" %d",c[i]); 4 东华大学信息科学与技术学院 龚涛 4

第3章 兴趣 尝试 动画 3.2 进一步学习指针 (1)概念 指针实际上是一个特殊的变量,它所存储的是一个内存地址值,而不是具体的数据。简单点说,指针存储的是一个指定数据在内存中存放的地址。 对于任意一个指针变量,它们本身的类型就是指针类型,它们的值都是一个内存地址值。而它们所指向的类型则是指该指针值所代表的内存地址上存放的数据的类型。例如对于一个指针声明: int *p; p本身为指针类型,但它所指向的类型是整型。事实上,对于变量p,它可以指向任何一个整型变量(如果指向一个其他类型的变量,那么程序照样可以运行,但会产生一个警告: Non-portable pointer assignment in function …。而这种警告在某种情况下则会引起不可预料的后果)。因此,也可以将p称为整型指针。但要牢记的是,所谓整型指针、符点型指针等,这些都是说明该指针可以指向的数据类型,而该指针本身只是指针类型。 5 东华大学信息科学与技术学院 龚涛 5

第3章 兴趣 尝试 动画 3.2 进一步学习指针 (2)指针的初始化 第3章 兴趣 尝试 动画 3.2 进一步学习指针 (2)指针的初始化 一个指针可以在声明的时候同时初始化,也可以在之后再对它赋值以初始化。指针初始化的过程包括两个方面,一是系统给指针本身分配存储空间,二是将指针所指向的变量的地址放到这个存储空间中来。 如果一个指针在声明后没有被赋值,那么它的内容将会是一个随机的值。 (3)指针的加减运算 指针的加减运算一般用在数组或字符串的情况下。一个指针可以加上或减去一个整数。但指针的这种运算和通常的数值加减运算的含意是不同的,它表示该指针所指向的地址向高地址方向或低地址方向移动了一个偏移量。这个偏移量的大小则与该指针所指向的类型有关。 6 东华大学信息科学与技术学院 龚涛 6

第3章 兴趣 尝试 动画 3.2 进一步学习指针 (例2-20) switch(select) { 第3章 兴趣 尝试 动画 3.2 进一步学习指针 (例2-20) switch(select) { case 1: p=add; break; case 2: p=sub; break; case 3: p=mul; break; case 4: p=div; break; default: printf("Error Selection\n"); return; } printf("The result is %d\n",(*p)(a,b)); main() int select,a,b; int (*p)(); clrscr(); printf("Please input two integer number:\n"); scanf("%d%d",&a,&b); printf("Please select an operation:\n"); printf(" 1.Add 2.Sub 3.Multipl 4.Divide\n"); scanf("%d",&select); GetOper(select,a,b,p); getch(); int add(int a,int b) { return (a+b); } int sub(int a,int b) return (a-b); int mul(int a,int b) return a*b; int div(int a,int b) if(b==0) printf("Divide 0 Error!\n"); return -1; return a/b; void GetOper(int select,int a,int b,int (*p)()) 7 东华大学信息科学与技术学院 龚涛 7

第3章 兴趣 尝试 动画 3.3 C语言编程新天地——图形界面绘制 C语言图形系统 为什么要进行图形系统初始化? 图形函数 第3章 兴趣 尝试 动画 3.3 C语言编程新天地——图形界面绘制 C语言图形系统 进入图形系统编程的概要框架可分为三个部分: 一、图形系统初始化 二、进行图形显示及相关操作 三、退出图形系统 为什么要进行图形系统初始化? 因为微机显示系统由显示器和显示卡来共同完成。微机对显示屏幕的所有操作都是通过显示卡来实现的。因此要进行图形显示 ,首先要确定计算机上安装的是何种显示卡,进而选择该显卡的显示模式,即确定显示卡支持的分辨率与相应的颜色配置。最后进行图形显示。这些工作都可以调用图形功能函数来完成。图形系统初始化的实质就是把适合于显示卡的图形驱动程序装入内存。如果图形驱动程序未能装入内存,那么图形函数就不能操作。 图形函数 案例:绘制坦克,绘制QQ表情(笑脸) 8 东华大学信息科学与技术学院 龚涛 8

第3章 兴趣 尝试 动画 3.4 课程设计小案例—屏幕打飞字 题目 案例设计 第3章 兴趣 尝试 动画 3.4 课程设计小案例—屏幕打飞字 题目 在大学的编程语言课程的最后课程设计题目中,屏幕打字恐怕是最常见的一个题目。 案例设计 想法:此程序总体的构想是对它的打字游戏功能进行简单的模仿,每次从屏幕上方只掉下一个字符。当屏幕连续掉下三个字符而无键盘反应时,或者按ESC键,则退出游戏,且统计时间和命中率。若击键正确,则从屏幕下方飞出同样一个字符与掉下来的字符相撞,并产生击毁的效果。 在程序设计过程中,采取自底向下的设计思路,即先将所想到的主要功能细化为一个个小的问题,一一解决,然后将它们与图形界面结合起来,成为一个完整的程序。因此,下面先将程序分成单个的几个模块来解决几个主要问题,并将每个模块编成完整的程序来进行测试成功后,再将它们进行整合。其中涉及一些细节的处理,则需要在上机反复调试过程中来体会。 9 东华大学信息科学与技术学院 龚涛 9

第3章 兴趣 尝试 动画 3.5 课程设计大案例:移动十五的实现 第3章 兴趣 尝试 动画 3.5 课程设计大案例:移动十五的实现 所谓移动十五,可以看作将拼图上的图案用一些连续的数字代替。将这些排列得杂乱无章的数字通过一个空格来排列成有规律可寻的数字阵,或者排列成某一预定的目标数字阵。一般有9方格8个数的情况和16方格15个数的情况。此课题就是针对后一种情况来进行的研究。如下图所示,初始状态a图是一个随意的数字方阵,而目标状态b图则是一个排列有序的数字方阵。将从初始状态a一步步移动直到到达目标状态b的移动过程叫做路径。移动的次数即为路径长度。此课题的主要目的就是要写出一种寻求最短路径的算法,并通过“移动十五”来演示这种算法。一般的,把最短路径叫做“最优路径”。 10 东华大学信息科学与技术学院 龚涛 10

答疑联系信息 手机:18201798064 QQ:5763698 E-mail:taogong@dhu.edu.cn 办公室地址:2号学院楼518 上机机房:7号机房 课程网址 http://www.ytxxchina.com/taogong/teaching.jsp 东华大学信息科学与技术学院 龚涛