第1章 绪论 北京师范大学 教育技术学院 杨开城.

Slides:



Advertisements
Similar presentations
人的性别遗传 合肥市第四十九中学 丁 艳. 男女成对染色体排序图 1 、男性和女性各 23 对染色体有何异同 ? 哪 一对被称为性染色体 ? 2 、这两幅图中,哪幅 图显示的是男性的染色 体?哪幅图显示的是女 性染色体? 3 、图中哪条染色体是 Y 染色体?它与 X 染色体 在形态上的主要区别是.
Advertisements

基本概論 Basic concepts.
1、一般地说,在生物的体细胞中, 和 都是成对存在的。
辨性别 A B. 辨性别 A B 第三节人类染色体与性别决定 昌邑市龙池初中 杨伟红 学习目标 1.理解人的染色体组成和传递规律。 2.解释人类性别决定的原理。 3.通过探究活动,解读数据了解生男生女的比例。
二月春风似剪刀, 这些变化得瞧瞧 主讲老师:王海 2016年1月27日20:00 YY频道:
订单合并拆分功能详解 荷叶.
数据结构(C语言版) Data Structure
2016年1月20日20:00 YY频道:
跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾. 跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾.
清仓处理 跳楼价 满200返160 5折酬宾.
第三章 鏈結串列 Linked List.
计算机硕士专业基础—C语言 赵海英
1.1.2 四 种 命 题.
色 弱 與 色 盲.
计算机导论 指导教师:杨建国 二零零九年九月.
C语言基础——指针的高级应用 Week 05.
宠物之家 我的宠物性别? 雌(♀) or 雄(♂) 第一阶段:我的宠物我做主 第二阶段:宠物“相亲记” 第三阶段:家族诞生
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
数据结构与算法 数据结构与算法实验
複習 struct score_Type{ int chinese,english; }; struct my_Type{
第5章 函数与模块化设计 学习目的与要求: 掌握函数的定义及调用方法 理解并掌握参数的传递方法 理解函数的嵌套与递归调用
程式設計 博碩文化出版發行.
计算概论 第二十一讲 文件操作 北京大学信息学院.
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
第三章 文本编辑器vi.
结构体和共用体 2 梁春燕 华电信息管理教研室.
新世纪计算机专业系列教材 数据结构 C++实现 第一章 缪淮扣 顾训穰 沈 俊 编著 科 学 出 版 社.
第10章 文件操作.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
STRUCTURE 授課:ANT 日期:2010/5/12.
第10章 文件操作.
Introduction to the C Programming Language
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
C语言程序设计 李祥.
第十三章 其他的C語言課題.
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
程式設計 博碩文化出版發行.
第九章 文件 程序数据标准输入输出设备 程序数据文件 数据流和文件 文件的打开和关闭 文件读写函数.
THE C PROGRAMMING LANGUAGE
ACM程序员大赛讲座 _____C语言程序设计要点 讲授人:王敬华.
第5章 文件.
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
資料結構 第4章 堆疊.
Struct結構 迴圈
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
C语言程序设计.
大綱 *專題演講介紹 *大陸醫療的改革與發展 *海報發表文章分享 2012海峽兩岸醫院院長論壇行後報告 ‧台北
OOP6 結構Struct 黃兆武.
第十章 结构体与链表 西安工程大学.
第1章 绪论 2019/4/16.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第五节 并查集.
保留字與識別字.
第六章 指针 C++程序设计中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值.
第十章 指针 指针是C语言的重要概念,是C语言的特色,是C语言的精华。 10.1 地址和指针的概念 内存中的每一个字节都有一个地址。
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
資料結構簡介 綠園.
陣列 東海大學物理系‧資訊教育 施奇廷.
第二章 基本数据类型 ——数据的表示.
第 9 章 建構函式與解構函式.
第四章 函数 丘志杰 电子科技大学 计算机学院 软件学院.
数学题解答 第二章 一元一次方程 2.1从算式到方程 (第1课时) 数学题解答
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
結構、檔案處理(Structure, File)
第十二章 位运算.
資料!你家住哪裏? --談指標 綠園.
C语言程序设计 第13章 文件操作.
第六章 复合数据类型 指针的声明与使用 数组的声明与使用 指针与数组的相互引用 字符串及相关库函数 new与delete
Presentation transcript:

第1章 绪论 北京师范大学 教育技术学院 杨开城

一、C语言关键库函数(1) int getch(void); char * gets(char *s); int sscanf (const char *buffer, const char *format [, address, ...]); int sprintf (char *buffer, const char *format [, argument, ...]); void clrscr(void); void gotoxy(int x,int y); void textcolor(int newcolor); int cprintf (const char *format [ , argument, ...]);

一、C语言关键库函数(2) void * malloc(unsigned int size); void free(void * block); FILE *fopen(char *filename, char *mode); int fclose(FILE *stream); char *fgets(char *s, int n, FILE *stream);

二、C语言关键句法(1) typedef语句 typedef int INT; /*INT是别名*/ struct student_info { char name[20]; unsigned int age,gender,class; int grade; }; typedef struct student_info STUDENT; //STUDENT是别名 typedef char STR80[81]; /*STR80是别名*/

二、C语言关键句法(2) 用typedef语句连续定义多个别名 typedef unsigned int INT , WORD; typedef struct student_info { char name[20]; unsigned int age,gender,class; int grade; }STUDENT, *STUDENTPTR;

二、C语言关键句法(3) 指针作为函数参数 void f(int a) { a=3; } void main() int b=0; f(b); printf("%d",b); void f(int *ptr) { *ptr=3; } void main() int b=0; f(&b); printf("%d",b);

二、C语言关键句法(4) 指针作为函数参数 void main() { int a=1,b=2; swap1(a,b); printf("a=%d,b=%d",a,b); /*输出a=1,b=2 */ swap2(&a,&b); printf("a=%d,b=%d",a,b); /*输出a=2,b=1 */ } void swap1(int a ,int b) { int t; t=a; a=b; b=t; } void swap2(int *a, int *b) t=*a; *a=*b; *b=t;

二、C语言关键句法(5) 指针作为函数参数 void geta(int *ptr) { int b; void geta(int x) 假设我们的main函数中,定义了一个int型变量a,并试图通过函数geta来改变这个变量的值,象下面这样定义geta函数是做不到的。 void geta(int x) { int b; scanf("%d",&b); x=b; } void main() { int a; geta(a); . . . } 而应该这样定义geta函数: void geta(int *ptr) { int b; scanf("%d",&b); *ptr=b; } 而在main函数中应该这样调用它: geta(&a);

二、C语言关键句法(6) 指针作为函数参数 typedef struct { void geta(NODE *ptr) int x,y; void geta(NODE n) { int x,y; scanf("%d%d",&x,&y); n.x=x; n.y=y; } void main() NODE a; geta(a);. . . } 应该这样定义geta函数: void geta(NODE *ptr) { int x,y; scanf("%d%d",&x,&y); ptr->x=x; ptr->y=y; } 在main函数中,应该这样调用geta函数: geta(&a);

二、C语言关键句法(7) 指针作为函数参数 void getp(int *ptr) { ptr=(int *)malloc(5*sizeof(int)); } void main() int *p; getp(p); . . . 应该这样定义getp函数: void getp(int **ptr) { *ptr=(int *)malloc(5*sizeof(int)); } 而在main函数中应该这样调用getp函数: getp(&p);

二、C语言关键句法(8) 指针作为函数参数 typedef struct { int x,y; }NODE; void getnode(NODE**ptr) { int x,y; NODE *p; p=(NODE*)malloc(sizeof(NODE)); scanf("%d%d",&p->x,&p->y); *ptr=p; } void main() NODE *p; getnode(&p); . . . }

三、数据结构基本概念和术语(1) 编程任务:已知某高校有N条课程信息需要保存在计算机中供查询之用。课程信息包括“课程编号”、“课程名称”、“主讲教师”、“学分”、“有无实验”等内容。用户可以输入课程名称、学分或者主讲教师等信息进行检索,系统将符合查找要求的课程信息全部显示出来。 需要思考的3个问题: ⑴这个程序需要处理的数据是什么样子的,这些数据之间是一种什么关系? ⑵这些数据及其关系如何在计算机中表示,即如何存储在内存中? ⑶根据软件的功能要求,具体如何处理这些存储在内存中的数据?

三、数据结构基本概念和术语(2) 数据对象 数据元素 数据项 需要思考的3个问题: ⑴这个程序需要处理的数据是什么样子的,这些数据之间是一种什么关系? ⑵这些数据及其关系如何在计算机中表示,即如何存储在内存中? ⑶根据软件的功能要求,具体如何处理这些存储在内存中的数据? typedef struct CurriInfo { int ID;/*课程编号*/ char name[40]; /*课程名称*/ char teacher[20]; /*主讲教师*/ int credit; /*学分*/ int exp;/*有无实验,0表示无,1表示有*/ }CURRIINFO; 数据对象 数据元素 数据项

三、数据结构基本概念和术语(3) 需要思考的3个问题: ⑴这个程序需要处理的数据是什么样子的,这些数据之间是一种什么关系? ⑵这些数据及其关系如何在计算机中表示,即如何存储在内存中? ⑶根据软件的功能要求,具体如何处理这些存储在内存中的数据? 做法1 #define N 500 CURRIINFO cf[N]; ID name teacher credit exp 233 计算机基础 陈保国 2 1 245 数据结构 王小小 4 246 离散数学 张名民 3 250 操作系统 李小华 …

三、数据结构基本概念和术语(4) 逻辑结构 存储结构 顺序存储 链式存储 需要思考的3个问题: ⑴这个程序需要处理的数据是什么样子的,这些数据之间是一种什么关系? ⑵这些数据及其关系如何在计算机中表示,即如何存储在内存中? ⑶根据软件的功能要求,具体如何处理这些存储在内存中的数据? 做法2 typedef struct cf_node { CURRIINFO cf; struct cf_node *next; }CFNODE; 逻辑结构 存储结构 顺序存储 链式存储

三、数据结构基本概念和术语(5) 数据(Data) 数据对象(Data Object) 数据元素(Data Element) 数据结构(Data Structure) 逻辑结构 Data_Structure=(D,R) 存储结构 顺序存储结构 链式存储结构

三、数据结构基本概念和术语(6) 逻辑结构 集合 线性结构 树形结构 图形结构

四、数据类型和抽象数据类型 数据类型明确地或者隐含地规定了数据的取值范围以及在这些值上的操作。 抽象数据类型(Abstract Data Type)是指一个数据结构以及定义在这个数据结构上的一组操作。 任何高级语言中的基本数据类型都是抽象数据类型。抽象数据类型是一种逻辑上的数据类型定义,与在计算机处理器内部的实现细节无关。 抽象数据类型的形式化描述通常采用三元组的方式: ADT=(D,R,P)

五、算法与算法分析(1) 算法(Algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每条指令代表一个或多个功能相对独立和完整的操作。 算法具有下面五个重要特性: ⑴有零个或多个输入 ⑵有一个或多个输出 ⑶确定性 ⑷有穷性 ⑸可行性

五、算法与算法分析(2) 算法设计的要求 ⑴正确性(Correctness) ⑵可读性(Readability) ⑶健壮性(Robustness) ⑷高效性(efficiency) 时间复杂度 空间复杂度

五、算法与算法分析(3) 时间复杂度 算法的执行时间是问题规模n的函数。 一个算法是由控制结构(顺序、分支和循环三种)和原操作构成的。 为了比较针对同一问题的不同算法,我们从算法中选取一种对于所处理的问题来说是基本操作的原操作,用它的重复执行的次数作为算法的执行时间量度。

五、算法与算法分析(4) 时间复杂度 原操作是比较操作 算法总的比较次数: 设存在这样一个函数f(n),使得存在两个常数c和n0,对于所有n≥n0时, T(n) ≤cf(n) ,这时将T(n)记作 f(n)通常是T(n)中变化最快的一项。我们将其称为算法的时间复杂度 ,选择排序的时间复杂度是O(n2) 常见的时间复杂度: 时间复杂度 计算下面算法的时间复杂度 void SelectSort(int r[],int n) { int i,j,k; int tmp; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(r[j]<r[k]) k=j; if(k!=i) { tmp=r[i]; r[i]=r[k]; r[k]=tmp; }

导 航 图(1)

导 航 图(2)

导 航 图(3)

导 航 图(4)

导 航 图(5)