专题二:c高级编程技术课件.ppt

专题二:c高级编程技术课件.ppt

ID:57075517

大小:372.50 KB

页数:35页

时间:2020-07-31

专题二:c高级编程技术课件.ppt_第1页
专题二:c高级编程技术课件.ppt_第2页
专题二:c高级编程技术课件.ppt_第3页
专题二:c高级编程技术课件.ppt_第4页
专题二:c高级编程技术课件.ppt_第5页
资源描述:

《专题二:c高级编程技术课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、专题二C语言高级编程技术§8.1递归程序设计一、递归与递归程序设计递归分直接递归和间接递归两种。直接递归调用:若在一个函数的定义中出现了对自身的调用,称之为直接递归;间接递归调用:若一个函数f的定义中包含了对函数g的调用,而g的实现过程又调用了f,即函数调用形成了一个环状调用链,这种方式称之为间接递归。funa(){...funa();...}funa(){...funb();...}funb(){...funa();...}直接递归调用间接递归调用二、递归实例例1:编写一个递归函数,求n的阶乘值n!。若用fact(n)表示n的阶乘值,根据阶乘的数学定义可知:longfac

2、t(intn){longm;if(n==0)return(1);else{m=n*fact(n-1);return(m);}}三、递归程序执行过程的分析递归程序的执行过程可分为递推和回归两个阶段。在递推阶段,把较复杂的问题(规模为n)的求解推到比原问题简单一些的问题(规模小于n)的求解。在回归阶段,当获得最简单情况的解后,逐级返回,依次得到稍复杂问题的解四、递归算法的优缺点优点:是可以把算法写的比使用非递归函数时更清晰更简洁。缺点:一是需要额外的内存开销;二是递归算法的执行效率相对较低。五、递归程序设计的应用举例例2:编程求两个正整数的最大公约数。例3:汉诺塔(Hanoi)

3、问题§8.2文本的屏幕输出和键盘输入一、文本的屏幕输出显示模式有两种:文本方式和图形方式。文本方式下的坐标系统:坐标原点在屏幕左上角,其坐标为(1,1),X轴为水平方向,Y轴为垂直方向。TurboC的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、窗口文本的清除和输入输出等函数。1、文本窗口的定义voidtextmode(intnewmode);功能:该函数将清除屏幕,以整个屏幕为当前窗口,并移光标到屏幕左上角。voidwindow(intleft,inttop,intright,intbottom);功能:重新设定显示窗口。一个屏幕可以定义多个窗口,但现行窗口只能

4、有一个。当需要用另一窗口时,可将定义该窗口的window()函数再调用一次,此时该窗口便成为现行窗口。2、文本窗口颜色的设置设置背景颜色函数:voidtextbackground(intcolor);设置字符颜色函数:voidtextcolor(intcolor);符号常数数值含义背景或背景BLACK0黑前景、背景色BLUE1蓝前景、背景色GREEN2绿前景、背景色CYAN3青前景、背景色RED4红前景、背景色MAGENTA5洋红前景、背景色BROWN6棕前景、背景色LIGHTGRAY7淡灰前景、背景色DARKGRAY8深灰用于前景色LIGHTBLUE9淡蓝用于前景色LIG

5、HTGREEN10淡绿用于前景色LIGHTCYAN11淡青用于前景色LIGHTRED12淡红用于前景色LIGHTMAGENTA13淡洋红用于前景色YELLOW14黄用于前景色WHITE15白用于前景色BLINK128闪烁用于前景色3、窗口内文本的输出函数TurboC提供了三个文本输出函数,这三个输出函数原型为:intcprintf(char*format,表达式表);intcputs(char*str);intputch(intch);4、有关屏幕操作的函数voidclrscr(void);该函数将清除窗口中的文本,并将光标移到当前窗口的左上角处。voidclreol(vo

6、id);该函数将清除当前窗口中从光标位置开始到本行结尾的所有字符,但不改变光标原来的位置。voiddelline(void);该函数将删除光标所在行的所有字符。voidgotoxy(intx,inty);该函数用于定位光标在当前窗口中的位置。这里x,y是指光标要定位处的坐标(相对于窗口而言)。当x,y超出了窗口的大小时,该函数不起作用。intmovetext(intx1,inty1,intx2,inty2,intx3,inty3);该函数将把屏幕上左上角为(xl,y1),右下角为(x2,y2)的矩形内文本拷贝到左上角为(x3,y3)的一个新矩形区内。intgettext(i

7、ntxl,intyl,intx2,inty2,void*buffer);该函数将把左上角为(xl,y1),右下角为(x2,y2)的屏幕矩形区内的文本存到由指针buffer指向的一个内存缓冲区内,当操作成功,返回1;否则,返回0。二、键盘输入是否有键按下,何键按下,简单的应用中可采用两种办法:一是直接使用TC提供的键盘操作函数bioskey()来识别,二是通过int86()函数,调用BIOS的INT16H,功能号为0的中断。它将按键的扫描码存放在Ax寄存器的高字节中。函数bioskey()的原型为:intbioske

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。