友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
C语言程序设计-第2部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
F1 获得Turbo C 2。0编辑命令的帮助信息;
F5 扩大编辑窗口到整个屏幕;
F6 在编辑窗口与信息窗口之间进行切换;
F10 从编辑窗口转到主菜单。
2。 编辑命令简介:
PageUp向前翻页
PageDn向后翻页
Home 将光标移到所在行的开始
End 将光标移到所在行的结尾
Ctrl+Y删除光标所在的一行
Ctrl+T删除光标所在处的一个词
Ctrl+KB 设置块开始
Ctrl+KK 设置块结尾
Ctrl+KV 块移动
Ctrl+KC 块拷贝
Ctrl+KY 块删除
Ctrl+KR 读文件
Ctrl+KW 存文件
Ctrl+KP 块文件打印
Ctrl+F1 如果光标所在处为Turbo C 2。0库函数; 则获得有关该函数的帮助信息
Ctrl+Q' 查找Turbo C 2。0双界符的后匹配符
Ctrl+Q' 查找Turbo C 2。0双界符的前匹配符
说明:
1) Turbo C 2。0的双界符包括以下几种符号:
a) 花括符{和}
b) 尖括符
c) 圆括符(和)
d) 方括符'和'
e) 注释符/*和*/
f) 双引号〃
g) 单引号'
2) Turbo C 2。0在编辑文件时还有一种功能; 就是能够自动缩进; 即光标定位和上一个非空字符对齐。在编辑窗口中; Ctrl+OL为自动缩进开关的控制键。
1。13。5 Run菜单
按Alt+R可进入Run菜单; 该菜单有以下各项,如图所示:
1。 Run:运行由Project/Project name项指定的文件名或当前编辑区的文件。如果对上次编译后的源代码未做过修改; 则直接运行到下一个断点(没有断点则运行到结束)。否则先进行编译、连接后才运行; 其热键为Ctrl+F9。
2。 Program reset:中止当前的调试; 释放分给程序的空间; 其热键为Ctrl+F2。
3。 Go to cursor::调试程序时使用; 选择该项可使程序运行到光标所在行。光标所在行必须为一条可执行语句; 否则提示错误。其热键为F4。
4。 Trace into:在执行一条调用其它用户定义的子函数时; 若用Trace into项; 则执行长条将跟踪到该子函数内部去执行; 其热键为F7。
5。 Step over:执行当前函数的下一条语句; 即使用户函数调用; 执行长条也不会跟踪进函数 内部; 其热键为F8。
6。 User screen:显示程序运行时在屏幕上显示的结果。其热键为Alt+F5。
1。13。6 pile菜单
按Alt+C可进入pile菜单; 该菜单有以下几个内容,如图所示:
1。 pile to OBJ:将一个C源文件编译生成。OBJ目标文件; 同时显示生成的文件名。其热键为 Alt+F9。
2。 Make EXE file:此命令生成一个。EXE的文件; 并显示生成的。EXE文件名。其中。EXE文件名是下面几项之一:
1) 由Project/Project name说明的项目文件名。
2) 若没有项目文件名; 则由Primary C file说明的源文件。
3) 若以上两项都没有文件名; 则为当前窗口的文件名。
3。 Link EXE file:把当前。OBJ文件及库文件连接在一起生成。EXE文件。
4。 Build all:重新编译项目里的所有文件; 并进行装配生成。EXE文件。该命令不作过时检查 (上面的几条命令要作过时检查; 即如果目前项目里源文件的日期和时间与目标文件相同或更早; 则拒绝对源文件进行编译)。
5。 Primary C file:当在该项中指定了主文件后; 在以后的编译中; 如没有项目文件名则编译此项中规定的主C文件; 如果编译中有错误; 则将此文件调入编辑窗口; 不管目前窗口 中是不是主C文件。
6。 Get info:获得有关当前路径、源文件名、源文件字节大小、编译中的错误数目、可用空间等信息,如图:
1。13。7 Project菜单
按Alt+P可进入Project菜单; 该菜单包括以下内容,如图所示:
1。 Project name:项目名具有。PRJ的扩展名; 其中包括将要编译、连接的文件名。例如有一个程 序由file1。c; file2。c; file3。c组成; 要将这3个文件编译装配成一个file。exe的执行文件; 可以先建立一个file。prj的项目文件; 其内容如下:
file1。c
file2。c
file3。c
此时将file。prj放入Project name项中; 以后进行编译时将自动对项目文件中规定的三个源文件分别进行编译。然后连接成file。exe文件。如果其中有些文件已经编译成。OBJ文件; 而又没有修改过; 可直接写上。OBJ扩 展名。此时将不再编译而只进行连接。
例如:
file1。obj
file2。c
file3。c
将不对file1。c进行编译; 而直接连接。
说明:
当项目文件中的每个文件无扩展名时; 均按源文件对待; 另外; 其中的文件也可以是库文件; 但必须写上扩展名。LIB。
2。 Break make on:由用户选择是否在有Warining、Errors、Fatal Errors时或Link之前退出Make编译。
3。 Auto dependencies:当开关置为on; 编译时将检查源文件与对应的。OBJ文件日期和时间; 否则不进 行检查。
4。 Clear project:清除Project/Project name中的项目文件名。
5。 Remove messages:把错误信息从信息窗口中清除掉。
1。13。8 Options菜单
按Alt+O可进入Options菜单; 该菜单对初学者来说要谨慎使用,该菜单有以下几个内容,如图所示:
1。 piler:本项选择又有许多子菜单; 可以让用户选择硬件配置、存储模型、调试技术、 代码优化、对话信息控制和宏定义。这些子菜单如图所示:
1) Model:共有Tiny; small; medium; pact; large; huge 六种不同模式可由同户选 择。
2) Define:打开一个宏定义框; 同户可输入宏定义。多重定义可同分号; 赋值可用等号。
3) Code generation:它又有许多任选项; 这些任选项告诉编译器产生什么样的目标代码。
? Calling convention 可选择C或Pascal方式传递参数。
? Instruction set 可选择8088/8086或80186/80286指令系列。
? Floating point 可选择仿真浮点、数学协处理器浮点或无浮点运算。
? Default char type 规定char的类型。
? Alignonent规定地址对准原则。
? Merge duplicate strings 作优化用; 将重复的字符串合并在一起。
? Standard stack frame 产生一个标准的栈结构。
? Test stack overflow 产生一段程序运行时检测堆栈溢出的代码。
? Line number 在。OBJ文件中放进行号以供调试时用。
? OBJ debug information 在。OBJ文件中产生调试信息。
4) Optimization:它又有许多任选项。
? Optimize for选择是对程序小型化还是对程序速度进行优化处理。
? Use register variable 用来选择是否允许使用寄存器变量。
? Register optimization尽可能使用寄存器变量以减少过多的取数操作。
? Jump optimization通过去除多余的跳转和调整循环与开关语句的办法; 压缩代码。
5) Source:它又有许多任选项。
? Indentifier length说明标识符有效字符的个数; 默认为32个。
? Nested ments是否允许嵌套注释。
? ANSI keywords only是只允许ANSI关键字还是也允许Turbo C2。0关键字。
6) Error
? Error stop after多少个错误时停止编译; 默认为25个。
? Warning stop after多少个警告错误时停止编译; 默认为100个。
? Display warning
? Portability warning移植性警告错误。
? ANSI Violations侵犯了ANSI关键字的警告错误。
? mon error常见的警告错误。
? Less mon error少见的警告错误。
7) Names :用于改变段(segment)、组(group) 和类(class)的名字;默认值为CODE; DATA; BSS。
2。 Linker:本菜单设置有关连接的选择项; 它有以下内容,如图所示:
1) Map file menu 选择是否产生。MAP文件。
2) Initialize segments是否在连接时初始化没有初始化的段。
3) Devault libraries是否在连接其它编译程序产生的目标文件时去寻找其缺省库。
4) Graphics library 是否连接graphics库中的函数。
5) Warn duplicate symbols当有重复符号时产生警告信息。
6) Stack warinig是否让连接程序产生No stack的警告信息。
7) Casesensitive link是否区分大、小写字。
3。 Environment:菜单规定是否对某些文件自动存盘及制表键和屏幕大小的设置,它有以下内容,如图所示:
1) Message tracking:
? Current file 跟踪在编辑窗口中的文件错误。
? All files跟踪所有文件错误。
? Off 不跟踪。
2) Keep message :编译前是否清除Message窗口中的信息。
3) Config auto save:选on时; 在Run; Shell或退出集成开发环境之前;如果Turbo C 2。0的配置被改过; 则所做的改动将存入配置文件中。选off时不存。
4) Edit auto save:是否在Run或Shell之前; 自动存储编辑的源文件。
5) Backup file:是否在源文件存盘时产生后备文件(。BAK文件)。
6) Tab size:设置制表键大小; 默认为8。
7) Zoomed windows:将现行活动窗口放大到整个屏幕; 其热键为F5。
8) Screen size设置屏幕文本大小。
4。 Directories:规定编译、连接所需文件的路径; 有下列各项,如图所示:
(1) Include directories:包含文件的路径; 多个子目录用〃;〃分开。
(2) Library directories:库文件路径; 多个子目录用〃;〃分开。
(3) Output directoried:输出文件(。OBJ; 。EXE; 。MAP文件)的目录。
(4) Turbo C directoried:Turbo C 所在的目录。
(5) Pick file name:定义加载的pick文件名; 如不定义则从currentpick file中取。
5。 Arguments:允许用户使用命令行参数。
6。 Save options:保存所有选择的编译、连接、调试和项目到配置文件中; 缺省的配置文件为TCCONFIG。TC。
7。 Retrive options装入一个配置文件到TC中; TC将使用该文件的选择项。
1。13。9 Debug菜单
按Alt+D可选择Debug菜单; 该菜单主要用于查错; 它包括以下内容,如图所示:
1。 Evaluate
1) Expression要计算结果的表达式。
2) Result显示表达式的计算结果。
3) New value赋给新值。
2。 Call stack:该项不可接触。而在Turbo C debuger 时用于检查堆栈情况。
3。 Find function在运行Turbo C debugger时用于显示规定的函数。
4。 Refresh display如果编辑窗口偶然被用户窗口重写了可用此恢复编辑窗口的内容。
1。13。10 Break/watch菜单
按Alt+B可进入Break/watch菜单; 该菜单有以下内容,如图所示:
1。 Add watch: 向监视窗口插入一监视表达式。
2。 Delete watch:从监视窗口中删除当前的监视表达式。
3。 Edit watch:在监视窗口中编辑一个监视表达式。
4。 Remove all :watches从监视窗口中删除所有的监视表达式。
5。 Toggle breakpoint:对光标所在的行设置或清除断点。
6。 Clear all breakpoints:清除所有断点。
7。 View next breakpoint:将光标移动到下一个断点处。
1。13。11 Turbo C 2。0的配置文件
所谓配置文件是包含Turbo C 2。0有关信息的文件; 其中存有编译、连接的选择和路径等信息。可以用下述方法建立Turbo C 2。0的配置:
1。 建立用户自命名的配置文件:可以从Options菜单中选择Options/Save options命令; 将当前集成开发环境的所有配置存入一个由用户命名的配置文件中。下次启动TC时只要在DOS下键入:
tc/c
就会按这个配置文件中的内容作为Turbo C 2。0的选择。
2。 若设置Options/Environment/Config auto save 为on; 则退出集成开发环境时; 当前的设置会自动存放到Turbo C 2。0配置文件TCCONFIG。TC中。Turbo C 在启动时会自动寻找这个配置文件。
3。 用TCINST设置Turbo C的有关配置; 并将结果存入TC。EXE中。Turbo C 在启动时; 若没有找到配置文件; 则取TC。EXE中的缺省值。
?c语言 2
2 程序的灵魂—算法
2。1 算法的概念
2。2 简单算法举例
2。3 算法的特性
2。4 怎样表示一个算法
2。4。1 用自然语言表示算法
2。4。2 用流程图表示算法
2。4。3 三种基本结构和改进的流程图
2。4。4 用NS流程图表示算法
2。4。5 用伪代码表示算法
2。4。6 用计算机语言表示算法
2。5 结构化程序设计方法
2 程序的灵魂—算法
一个程序应包括:
? 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。
? 对操作的描述。即操作步骤,也就是算法(algorithm)。
Nikiklaus Wirth提出的公式:
数据结构+算法程序
教材认为:
程序算法+数据结构+程序设计方法+语言工具和环境
这4个方面是一个程序涉及人员所应具备的知识。
本课程的目的是使同学知道怎样编写一个C程序,进行编写程序的初步训练,因此,只介绍算法的初步知识。
2。1 算法的概念
做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算法。
? 计算机算法:计算机能够执行的算法。
? 计算机算法可分为两大类:
? 数值运算算法:求解数值;
? 非数值运算算法:事务管理领域。
2。2 简单算法举例
【例2。1】求1×2×3×4×5。
最原始方法:
步骤1:先求1×2,得到结果2。
步骤2:将步骤1得到的乘积2乘以3,得到结果6。
步骤3:将6再乘以4,得24。
步骤4:将24再乘以5,得120。
这样的算法虽然正确,但太繁。
改进的算法:
S1: 使t1
S2: 使i2
S3: 使t×i; 乘积仍然放在在变量t中,可表示为t×i→t
S4: 使i的值+1,即i+1→i
S5: 如果i≤5; 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。
如果计算100!只需将S5:若i≤5改成i≤100即可。
如果该求1×3×5×7×9×11,算法也只需做很少的改动:
S1: 1→t
S2: 3→i
S3: t×i→t
S4: i+2→t
S5:若i≤11; 返回S3,否则,结束。
该算法不仅正确,而且是计算机较好的算法,因为计算机是高速运算的自动机器,实现循环轻而易举。
思考:若将 S5写成:S5:若i<11; 返回S3;否则,结束。
【例2。2】有50个学生,要求将他们之中成绩在80分以上者打印出来。
如果,n表示学生学号,ni表示第个学生学号;g表示学生成绩,gi表示第个学生成绩;
则算法可表示如下:
S1: 1→i
S2: 如果gi≥80,则打印ni和gi,否则不打印
S3: i+1→i
S4:若i≤50; 返回S2,否则,结束。
【例2。3】判定2000 — 2500年中的每一年是否闰年,将结果输出。
润年的条件:
1) 能被4整除,但不能被100整除的年份;
2) 能被100整除,又能被400整除的年份;
设y为被检测的年份,则算法可表示如下:
S1: 2000→y
S2:若y不能被4整除,则输出y“不是闰年”,然后转到S6
S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6
S4:若y能被100整除,又能被400整除,输出y“是闰年” 否则输出y“不是闰年”,然后转到S6
S5:输出y“不是闰年”。
S6:y+1→y
S7:当y≤2500时; 返回S2继续执行,否则,结束。
【例2。4】求 。
算法可表示如下:
S1: sigh1
S2: sum1
S3: deno2
S4: sigh(1)×sigh
S5: term sigh×(1/deno )
S6: termsum+term
S7: deno deno +1
S8:若deno≤100,返回S4;否则,结束。
【例2。5】对一个大于或等于3的正整数,判断它是不是一个素数。
算法可表示如下:
S1: 输入n的值
S2: i2
S3: n被i除,得余数r
S4:如果r0,表示n能被i整除,则打印n“不是素数”,算法结束;否则执行S5
S5: i+1→i
S6:如果i≤n1,返回S3;否则打印n“是素数”;然后算法结束。
改进:
S6:如果i≤ ,返回S3;否则打印n“是素数”;然后算法结束。
2。3 算法的特性
? 有穷性:一个算法应包含有限的操作步骤而不能是无限的。
? 确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。
? 有零个或多个输入。
? 有一个或多个输出。
? 有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。
对于程序设计人员,必须会设计算法,并根据算法写出程序。
2。4 怎样表示一个算法
2。4。1 用自然语言表示算法
除了很简单的问题,一般不用自然语言表示算法。
2。4。2 用流程图表示算法
流程图表示算法,直观形象,易于理解。
【例2。6】将例2。1求5的算用流程图表示。
【例2。7】将例2。2的算用流程图表示。
【例2。8】将例2。3判定闰年的算用流程图表示。
【例2。9】将例2。4求 的算用流程图表示。
一个流程图包括:
1。 表示相应操作的框;
2。 带箭头的流程线;
3。 框内外必要的文字说明。
2。4。3 三种基本结构和改进的流程图
1。 顺序结构:
2。 选择结构:
3。 循环结构
三种基本结构的共同特点:
? 只有一个入口;
? 只有一个出口;
? 结构内的每一部分都有机会被执行到;
? 结构内不存在“死循环”。
2。4。4 用NS流程图表示算法
1973年美国学者提出了一种新型流程图:NS流程图。
顺序结构:
选择结构:
循环结构:
2。4。5 用伪代码表示算法
伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。
2。4。6 用计算机语言表示算法
? 我们的任务是用计算机解题,就是用计算机实现算法;
? 用计算机语言表示算法必须严格遵循所用语言的语法规则。
【例2。20】求1×2×3×4×5用C语言表示。
main()
{int i;t;
t1;
i2;
while(i
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!