程序 程序= Algorithms+ 数据结构+算法 Dafa Structures= Programs 数据与数据 解决特定问 之间的逻辑 题的步骤和 Niklaus Wirth 关系 方法 ·1984年图灵奖得主 “Pascal之父” 多个编程语言的主设计师: 算法的操作对象是数据结构 Algol W Modula Pascal Modula-2 Oberon 数据结构是算法设计的基础
程序 程序= 数据结构+算法 数据与数据 之间的逻辑 关系 解决特定问 题的步骤和 Niklaus Wirth 方法 • 1984年图灵奖得主 • “Pascal之父” • 多个编程语言的主设计师: • Algol W Modula Pascal Modula-2 Oberon 算法的操作对象是数据结构 数据结构是算法设计的基础
变量是不是量? ·我们该如何理解以下程序语句? Int x X=X+1; ·从计算机的视角出发,这条语句“背后”我们能看到什么? ·变量是内存空间的代号 ·对数据的操纵:取,存(改变)
• 我们该如何理解以下程序语句? Int x; x=x+1; • 从计算机的视角出发,这条语句“背后”我们能看到什么? • 变量是内存空间的代号 • 对数据的操纵:取,存(改变) 变量是不是量?
为什么每个数据都应该有个“类型”和它对应? 其实,计算机操纵的对象(数据)“类别”在表现形式上可以统一 01位串 但是 It is beneficial,however,to keep such types separate, not only for clarity and good order,but also because each type admits its own special set of allowed operations or actions
为什么每个数据都应该有个“类型”和它对应? 其实,计算机操纵的对象(数据)“类别”在表现形式上可以统一 It is beneficial, however, to keep such types separate, not only for clarity and good order, but also because each type admits its own special set of allowed operations or actions 但是 01位串
变量、数据、类型 ·变量和数据 ·变量是用于跟踪、操纵几乎所有数据的简单(通用) 工具 ·数据是有“内存”地址的 变量名和地址是什么关系? 变量和数据类型 ·类型定义了变量的变化范围 ·类型定义了计算对变量的操作方式
•变量和数据 • 变量是用于跟踪、操纵几乎所有数据的简单(通用) 工具 • 数据是有“内存”地址的 • 变量名和地址是什么关系? •变量和数据类型 • 类型定义了变量的变化范围 • 类型定义了计算对变量的操作方式 变量、数据、类型
你能区分这两个程序片段吗? int*p1=0,*p2; int*p1=0,*p2; *p1=44: *p1=44; *p2=99; *p2=99; p1=p2; *p1=*p2; print(*p1,*p2); print (*pl,*p2); 指针到底是什么? 两个不同的赋值到底区别在哪里?
int *p1=0, *p2; *p1=44; *p2=99; p1=p2; print(*p1,*p2); 你能区分这两个程序片段吗? int *p1=0, *p2; *p1=44; *p2=99; *p1=*p2; print(*p1,*p2); 指针到底是什么? 两个不同的赋值到底区别在哪里?
多个数据的聚集管理而出现的“结构” 场景:“一队士兵” ·每个士兵有了一个队伍中的唯一“位置” ·位置是相对的 如果设计一个按照位置进行的“游戏”,给定了位置 就指定了人 按照上述观点,vector/one-dimensional array为什 么被称为是一种数据结构,它的“结构性”体现在 哪里?
•场景:“一队士兵” • 每个士兵有了一个队伍中的唯一“位置” • 位置是相对的 • 如果设计一个按照位置进行的“游戏”,给定了位置 就指定了人 •按照上述观点,vector/one-dimensional array为什 么被称为是一种数据结构,它的“结构性”体现在 哪里? 多个数据的聚集管理而出现的“结构
改变“位置”和改变“内容” 24 78 浴 12.8 24 69 Bubble Sort 12 2 4 4 69 24 46896 14 46 冒泡排序 14 2 2412 14 8 26 14 4 12 sta时 end (1)do the following N-1 times: How to 1.1)X←-1: (1.2)while X N do the following: EXCHANGE (1.2.1)if V[X+1]V[X]then exchange them; (1.2.2)X←-X+1. them?
改变“位置”和改变“内容” How to EXCHANGE them? Bubble Sort 冒泡排序
Variable,Vector and Array Variable Vector Array A1,1] itemitem item Data item structure item itemitem item item X VI]I2]-·VN] item tem A[M.N] floor 12 30 302 348 Hotel analog 318 floor 2 floor 1 gg… hotel room hotel corridor entire hotel
Variable, Vector and Array
Variable Vector Array A1.11 tem 问题:如何访问 Data tem structure tem itemitem item tem “单个变量”、“向 T11V2]·N] tem tem A[M.N] 量”和“数组”? floor 12 g… E 30 30 348 Hotel analog 318 floor 2 g日… floor I g日… hotel room hotel corridor entire hotel ita[3][4]={K1,2,3,4},{5,6,7,8},9,10,11,12}: printf(a[2][3]); printf(*(a[2])+3); 在C语言中,如何解读? printf(*(*(a+2)+3):
问题:如何访问 “单个变量”、“向 量”和“数组”? int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; printf(a[2][3]); printf(*((a[2])+3)); printf(*(*(a+2)+3)); 在C语言中,如何解读?