杨辉三角的变形

题目详情

         1

      1  1  1

   1  2  3  2  1

1  3  6  7  6  3  1

以上三角形的数阵,第一行只有一个数1, 以下每行的每个数,是恰好是它上面的数,左上的数和右上数等3个数之和(如果不存在某个数,认为该数就是0)。

求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3。

输入n(n <= 1000000000)

函数头部:

C/C++:

    int run(int n);

java:

public solution {

    public static int run(int n);

}


首先看完这道题目的时候、给我的第一感觉就是将这个经过变形的杨辉三角存入二维数组或通过递归遍历、然后再遍历最后一行第一个出现的偶数、

在这里通过简单的分析、

1.前两行很直观的就可以看出没有偶数、

2.第一行只有一个数、每一行比前一行多两个数、那么第x行便有2x-1个数、

3.这个变形的杨辉三角是对称的、并且中间的数是奇数、

4.而题目介绍到它的规律是:第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上的数和右上数等3个数之和(如果不存在某个数,认为该数就是0)。


分析到这里、我就想若是存在二维数组里面、就应该是下面这个样子、

 0 0 0 1 0 0 0
 0 0 1 1 1 0 0
 0 1 2 3 2 1 0
 1 3 6 7 6 3 1

 …

于是乎、最初开始想的算法并提交到pongo庞果网英雄会的代码如下、


public class Test 
{ 
   public static  int run(int x)
    {
        if(x>2){
            int row = 2*x-1;
            int[][] t = new int[x][row];
            
            for(int j=0;j<x;j++){//遍历行赋值
                for(int i=0;i<row;i++){//遍历列赋值
                    
                    if(j==0){//给第0行赋值
                        if(i==x-1){
                            t[j][i] = 1;
                        }else{
                            t[j][i] = 0;
                        }
                    }else{
                        
                        if(i == 0){//第一列
                            t[j][i] = t[j-1][i] + t[j-1][i+1];
                        }else if (i == row-1){//最后一列
                            t[j][i] = t[j-1][i-1] + t[j-1][i];
                        }else{
                            t[j][i] = t[j-1][i-1] + t[j-1][i] + t[j-1][i+1];
                        }
                        
                    }
                    //--------
                    
                }
            }
            
            for(int i = 0;i<row;i++){//遍历出第一个出现的偶数
                if(t[x-1][i]%2 == 0){
                    return i+1;
                }
            }
        } 
         return -1;
    }
    //start 提示:自动阅卷起始唯一标识,请勿删除或增加。 
    public static void main(String args[]) 
    { 
       System.out.println(run(0));
    } 
    //end //提示:自动阅卷结束唯一标识,请勿删除或增加。
}        

提交后、发现报Exception in thread "main" java.lang.OutOfMemoryError: Java heap space异常、竟然内存溢出、偶了个去、思路是对的啊、怎么会错了呢、然后瞬间想到了什么、好像有个上限、对、就是“ 输入n(n <= 1000000000)”、那个坑啊、有这么个上限、不错才怪、这种思路是对的、但是用错了地方、题目要求是求第x行第一个偶数出现的位置、那就得换种思维模式对待了、


于是为了更好的找到它的规律、便多写了几行来进行分析、



经过分析得出的结论如下:

1.前两行没有偶数可直接返回-1、

2.从第三行开始、奇数行第一个偶数出现的位置为2、

3.从第四行开始、偶数行第一个偶数出现的位置最少在3以上才出现、

4.结合上面第一次做的分析得出每行都是对称的、第x行x列为奇数、 并且每行的每个数,是恰好是它上面的数,左上的数和右上数等3个数之和、


经过最后分析并总结、返回偶数位置的算法代码如下、

	 public static int run(int x){
		 
		 if(x<=2){//前两行直接返回-1
			 return -1;
		 }else if(x%2 == 1){//奇数行第一个出现偶数为2
			 return 2;
		 }
	 return x / 2 % 2 + 3;
	 }

从某种意义上来讲、第一中算法思路并没有错、它是通过最直接的遍历方法来查找、只是对待存在数的无穷大遍历问题、导致内存溢出、而针对于第二种方法、完全是通过凭感觉去找规律、然后总结得出、虽然第二种算法看起来非常简洁并完美的完成了题目的要求、但不管是第一种错误的思路、还是第二种、它们的关键在于、都给予了我一种去思考的过程、

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
配书光盘Readme文件 C 语言通用范例开发金典 第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函数:c函数 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维数组的表示 14 范例1-6 三维数组的表示 14 ∷相关函数:InitArray函数 1.1.7 多项式的数组表示 17 范例1-7 多项式数组的表示 17 1.1.8 查找矩阵的马鞍点 19 范例1-8 查找矩阵的马鞍点 19 ∷相关函数:Get_Saddle函数 1.1.9 对角矩阵建立 21 范例1-9 对角矩阵建立 21 ∷相关函数:Store函数 1.1.10 三对角矩阵的建立 22 范例1-10 三对角矩阵的建立 22 ∷相关函数:Store函数 1.1.11 三角矩阵建立 24 范例1-11 三角矩阵建立 24 ∷相关函数:Store函数 1.1.12 对称矩阵的建立 25 范例1-12 对称矩阵的建立 25 ∷相关函数:store函数 1.1.13 字符串长度的计算 28 范例1-13 字符串长度的计算 28 ∷相关函数:strlen函数 1.1.14 字符串的复制 29 范例1-14 字符串的复制 29 ∷相关函数:strcpy函数 1.1.15 字符串的替换 31 范例1-15 字符串的替换 31 ∷相关函数:strrep函数 1.1.16 字符串的删除 33 范例1-16 字符串的删除 33 ∷相关函数:strdel函数 1.1.17 字符串的比较 35 范例1-17 字符串的比较 35 ∷相关函数:strcmp函数 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函数:substr函数 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函数:partition函数 1.1.20 字符串的插入 40 范例1-20 字符串的插入 40 ∷相关函数:insert函数 1.1.21 字符串的匹配 42 范例1-21 字符串的匹配 42 ∷相关函数:nfind函数 1.1.22 字符串的合并 43 范例1-22 字符串的合并 43 ∷相关函数:catstr函数 1.1.23 文本编辑 45 范例1-23 文本编辑 45 ∷相关函数:StrAssign函数 1.2 栈和队列 54 1.2.1 用数组仿真堆栈 54 范例1-24 用数组仿真堆栈 54 ∷相关函数:push函数 pop函数 1.2.2 用链表仿真堆栈 57 范例1-25 用链表仿真堆栈 57 ∷相关函数:push函数 pop函数 1.2.3 顺序栈公用 59 范例1-26 顺序栈公用 59 ∷相关函数:push函数 pop函数 1.2.4 进制转换问题 61 范例1-27 进制转换问题 61 ∷相关函数:MultiBaseOutput函数 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函数:push函数 pop函数 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函数:EnQueue函数 DeQueue函数 1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函数:push函数 pop函数 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函数:EnQueue函数 DeQueue函数 DancePartner函数 1.3 链表 75 1.3.1 头插法建立单链表 75 范例1-32 头插法建立单链表 75 ∷相关函数:createlist函数 1.3.2 限制链表长度建立单链表 77 范例1-33 限制链表长度建立长单链表 77 ∷相关函数:createlist函数 1.3.3 尾插法建立单链表 79 范例1-34 尾插法建立单链表 79 ∷相关函数:createlist函数 1.3.4 按序号查找单链表 80 范例1-35 按序号查找单链表 80 ∷相关函数:getnode函数 1.3.5 按值查找单链表 82 范例1-36 按值查找单链表 82 ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 范例1-39 归并两个单链表 88 ∷相关函数:concatenate函数 1.3.9 动态堆栈 90 范例1-40 动态堆栈 90 ∷相关函数:push函数 Pop函数 1.3.10 动态队列 93 范例1-41 动态队列 93 ∷相关函数:Enqueue函数 1.3.11 初始化单循环链表 95 范例1-42 初始化单循环链表 95 ∷相关函数:ListLength_CL函数 1.3.12 查询元素的前驱和后继 98 范例1-43 查询元素的前驱和后继 98 ∷相关函数:PriorElem_CL函数 NextElem_CL函数 1.3.13 单循环链表中元素的删除 101 范例1-44 单循环链表中元素的删除 101 ∷相关函数:ListDelete_CL函数 1.3.14 单循环链表的清除和销毁 107 范例1-45 单循环链表的清除和销毁 107 ∷相关函数:DestroyList函数 1.3.15 仅设表尾指针循环链表的合并 110 范例1-46 仅设表尾指针循环链表的合并 110 ∷相关函数:MergeList_CL函数 1.3.16 正序输出双向链表 113 范例1-47 正序输出双向链表 113 ∷相关函数:ListInsert函数 ListTraverse函数 1.3.17 逆向输出双向链表 116 范例1-48 三角矩阵建立 116 ∷相关函数:ListTraverseBack函数 1.3.18 删除双向链表中的节点 121 范例1-49 删除双向链表中的节点 121 ∷相关函数:ListDelete函数 1.3.19 双向链表的元素个数 124 范例1-50 双向链表的元素个数 124 ∷相关函数:ListLength函数 1.3.20 判断双向链表是否为空 126 范例1-51 判断双向链表是否为空 126 ∷相关函数:ListEmpty函数 1.3.21 双向链表元素值的查询 129 范例1-52 双向链表元素值的查询 129 ∷相关函数:GetElemP函数 1.3.22 稀疏矩阵的建立 136 范例1-53 稀疏矩阵的建立 136 ∷相关函数:Create函数 1.3.23 稀疏矩阵的删除 138 范例1-54 稀疏矩阵的删除 138 ∷相关函数:erase函数 1.4 树和二叉树 141 1.4.1 获得二叉树的深度和根(顺序结构) 141 范例1-55 获得二叉树的深度和根 141 ∷相关函数:BiTreeDepth函数 Root函数 1.4.2 获得二叉树的深度和根(链表结构) 144 范例1-56 获得二叉树的深度和根 144 ∷相关函数:BiTreeDepth函数 Root函数 1.4.3 树的插入(顺序结构) 147 范例1-57 树的插入 147 ∷相关函数:InsertChild函数 1.4.4 节点的修改(顺序结构) 150 范例1-58 节点的修改 150 ∷相关函数:Assign函数 1.4.5 节点的修改(链式结构) 154 范例1-59 节点的修改 154 ∷相关函数:Assign函数 1.4.6 双亲、孩子和兄弟节点的查询(顺序结构) 158 范例1-60 双亲、孩子和兄弟节点的查询 158 ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.8 中序遍历二叉树(顺序结构) 169 范例1-62 中序遍历二叉树 169 ∷相关函数:InOrderTraverse函数 1.4.9 中序遍历二叉树(链式结构) 171 范例1-63 中序遍历二叉树 171 ∷相关函数:InOrderTraverse函数 1.4.10 中序非递归遍历二叉树(链式结构)(1) 174 范例1-64 中序非递归遍历二叉树 174 ∷相关函数:InOrderTraverse函数 1.4.11 中序非递归遍历二叉树(链式结构)(2) 177 范例1-65 中序非递归遍历二叉树 177 ∷相关函数:InOrderTraverse2函数 1.4.12 后序遍历二叉树(顺序结构) 180 范例1-66 后序遍历二叉树 180 ∷相关函数:PostOrderTraverse函数 1.4.13 后序遍历二叉树(链式结构) 183 范例1-67 后序遍历二叉树 183 ∷相关函数:PostOrderTraverse函数 1.4.14 层次遍历二叉树(顺序结构) 186 范例1-68 层次遍历二叉树 186 ∷相关函数:LevelOrderTraverse函数 1.4.15 层次遍历二叉树(链式结构) 188 范例1-68 层次遍历二叉树 188 ∷相关函数:LevelOrderTraverse函数 1.4.16 树的合并 191 范例1-70 树的合并 191 ∷相关函数:Find函数 Union函数 1.4.17 树的二叉链表存储的基本操作 193 范例1-71 树的二叉链表存储的基本操作 193 ∷相关函数:LevelOrderTraverse函数 1.4.18 二叉树的三叉链表存储的基本操作 201 范例1-72 二叉树的三叉链表存储表示 201 ∷相关函数:CreateBiTree函数 1.4.19 二叉树的二叉线索存储的基本操作 212 范例1-73 二叉树的二叉线索存储 212 ∷相关函数:CreateBiThrTree函数 1.4.20 树的双亲表存储的基本操作 215 范例1-74 树的双亲表存储的基本操作 215 ∷相关函数:CreateTree函数 1.4.21 哈夫曼编码(1) 223 范例1-75 哈夫曼编码(1) 223 ∷相关函数:HuffmanCoding函数 1.4.22 哈夫曼编码(2) 226 范例1-76 哈夫曼编码(2) 226 ∷相关函数:HuffmanCoding函数 1.5 排序 229 1.5.1 直接插入排序 229 范例1-77 直接插入排序 229 ∷相关函数:InsertSort函数 1.5.2 折半插入排序(顺序结构) 231 范例1-78 折半插入排序(顺序结构) 231 ∷相关函数:BInsertSort函数 1.5.3 2—路插入排序(顺序结构) 233 范例1-79 2—路插入排序(顺序结构) 233 ∷相关函数:P2_InsertSort函数 1.5.4 折半插入排序(链式结构) 235 范例1-80 折半插入排序(链式结构) 235 ∷相关函数:Arrange函数 1.5.5 2—路插入排序(链式结构) 238 范例1-81 2—路插入排序(链式结构) 238 ∷相关函数:Rearrange函数 1.5.6 希尔排序 241 范例1-82 希尔排序 241 ∷相关函数:ShellSort函数 1.5.7 冒泡排序 243 范例1-83 冒泡排序 243 ∷相关函数:bubble_sort函数 1.5.8 一趟快速排序 246 范例1-84 一趟快速排序 246 ∷相关函数:QSort函数 1.5.9 一趟快速排序的改进算法 248 范例1-85 一趟快速排序的改进算法 248 ∷相关函数:QuickSort函数 1.5.10 简单选择排序 250 范例1-86 简单选择排序 250 ∷相关函数:SelectSort函数 1.5.11 箱子排序 252 范例1-87 箱子排序 252 ∷相关函数:sort函数 1.5.12 树型选择排序 254 范例1-88 树型选择排序 254 ∷相关函数:TreeSort函数 1.5.13 堆排序 256 范例1-89 堆排序 256 ∷相关函数:HeapSort函数 1.5.14 归并排序 258 范例1-90 归并排序 258 ∷相关函数:MergeSort函数 1.5.15 多路平衡归并排序 260 范例1-91 多路平衡归并排序 260 ∷相关函数:K_Merge函数 1.5.16 置换—选择排序 265 范例1-92 置换—选择排序 265 ∷相关函数:Replace_Selection函数 1.5.17 文件的归并 269 范例1-93 文件的归并 269 ∷相关函数:K_Merge函数 1.6 查找 272 1.6.1 顺序表的查找 273 范例1-94 顺序表的查找 273 ∷相关函数:Search_Seq函数 1.6.2 静态树表的查找 276 范例1-95 静态树表的查找 276 ∷相关函数:Search_SOSTree函数 1.6.3 二叉排序树的基本操作 280 范例1-96 二叉排序树的基本操作 280 ∷相关函数:InsertBST函数 1.6.4 平衡二叉树的基本操作 285 范例1-97 平衡二叉树的基本操作 285 ∷相关函数:SearchBST函数 1.6.5 B树的基本操作 290 范例1-98 B树的基本操作 290 ∷相关函数:SearchBTree函数 1.6.6 按关键字符串的遍历双链键树 295 范例1-99 按关键字符串遍历双链键树 295 ∷相关函数:SearchDLTree函数 1.6.7 按关键字符串的遍历Trie树 301 范例1-100 按关键字符串遍历Trie树 301 ∷相关函数:SearchTrie函数 1.6.8 哈希表的基本操作 306 范例1-101 哈希表的基本操作 306 ∷相关函数:SearchHash函数 1.7 图 311 1.7.1 图的邻接矩阵存储表示 311 范例1-102 图的邻接矩阵存储表示 ∷相关函数:CreateFAG函数 CreateDG函数 1.7.2 图的邻接表存储表示 324 范例1-103 图的邻接表存储表示 324 ∷相关函数:CreateFAG函数 1.7.3 有向图的十字链表存储表示 335 范例1-104 有向图的十字链表存储表示 335 ∷相关函数:CreateDG函数 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函数:CreateGraph函数 1.7.5 最小生成树 355 范例1-106 最小生成树 355 ∷相关函数:MiniSpanTree_PRIM函数 1.7.6 关节点和重连通分量 359 范例1-107 关节点和重连通分量 359 ∷相关函数:FindArticul函数 1.7.7 拓扑排序 366 范例1-108 拓扑排序 366 ∷相关函数:TopologicalSort函数 1.7.8 关键路径 374 范例1-109 关键路径 374 ∷相关函数:CriticalPath函数 1.7.9 最短路径 383 范例1-110 最短路径 383 ∷相关函数:ShortestPath_DIJ函数 1.7.10 每一对顶点之间的最短路径 387 范例1-111 每一对顶点之间的最短路径 387 ∷相关函数:ShortestPath_FLOYD函数 1.8 本章小结 395 第2章 数值计算 397 2.1 常见的数学函数 398 2.1.1 求整数的绝对值 398 范例2-1 求整数的绝对值 398 ∷相关函数:abs函数 2.1.2 求长整型整数的绝对值 399 范例2-2 求长整型整数的绝对值 399 ∷相关函数:labs函数 2.1.2 求浮点数的绝对值 400 范例2-2 求浮点数的绝对值 400 ∷相关函数:fabs函数 2.1.4 求反余弦 400 范例2-4 求反余弦 400 ∷相关函数:acos函数 2.1.5 求反正弦 401 范例2-5 求反正弦 401 ∷相关函数:asin函数 2.1.6 求反正切 402 范例2-6 求反正切 402 ∷相关函数:atan函数 2.1.7 对浮点数进行舍入 403 范例2-7 对浮点数进行舍入 403 ∷相关函数:ceil函数 2.1.8 求余弦 404 范例2-8 求余弦 404 ∷相关函数:cos函数 2.1.9 求双曲余弦 405 范例2-9 求双曲余弦 405 ∷相关函数:cosh函数 2.1.10 求正弦 406 范例2-10 求正弦 406 ∷相关函数:sin函数 2.1.11 求双曲正弦 406 范例2-11 求双曲正弦 406 ∷相关函数:sinh函数 2.1.12 求正切 407 范例2-12 求正切 407 ∷相关函数:tan函数 2.1.13 求双曲正切 408 范例2-13 求双曲正切 408 ∷相关函数:tanh函数 2.1.14 获得整数相除的商和余数 409 范例2-14 获得整数相除的商和余数 409 ∷相关函数:div函数 2.1.15 求ex 410 范例2-15 求ex 410 ∷相关函数:exp函数 2.1.16 获取浮点相除的余数 411 范例2-16 获取浮点数相除的余数 411 ∷相关函数:fmod函数 2.1.17 获取浮点数的尾数和指数 412 范例2-17 获取浮点数的尾数和指数 412 ∷相关函数:frexp函数 2.1.18 求x2exponent 413 范例2-18 一维多项式求值 413 ∷相关函数:ldexp函数 2.1.19 求自然对数 413 范例2-19 求自然对数 413 ∷相关函数:log 函数 2.1.20 求lgx 414 范例2-20 求lgx 414 ∷相关函数:log10函数 2.1.21 获取浮点数的整数部分和小数部分 415 范例2-21 第二类椭圆积分 415 ∷相关函数:modf函数 2.1.22 求xy 416 范例2-22 求xy 416 ∷相关函数:pow函数 2.1.23 求10x 417 范例2-23 求10x 417 ∷相关函数:pow10函数 2.1.24 获取随机数 418 范例2-24 获取随机数 418 ∷相关函数:rand函数 2.1.25 设置随机数生成器初值 418 范例2-25 设置随机数生成器初值 418 ∷相关函数:srand函数 2.1.26 获取最大值和最小值 419 范例2-26 获取最大值和最小值 419 ∷相关函数:max函数 min函数 2.1.27 求直角三角形的斜边长 421 范例2-27 求直角三角形的斜边长 421 ∷相关函数:hypot函数 2.1.28 获取多项式的值 421 范例2-28 获取多项式的值 421 ∷相关函数:poly函数 2.2 多项式的计算 422 2.2.1 一维多项式求值 422 范例2-29 一维多项式求值 422 ∷相关函数:polyval函数 2.2.2 二维多项式求值 424 范例2-30 二维多项式求值 424 ∷相关函数:tdpolyval函数 2.2.3 复系数一维多项式求值 425 范例2-31 复系数一维多项式求值 425 ∷相关函数:cppolyval函数 2.2.4 多项式相乘 427 范例2-32 多项式相乘 427 ∷相关函数:polymul函数 2.2.5 复系数多项式相乘 428 范例2-33 复系数多项式相乘 428 ∷相关函数:cppolymul函数 2.2.6 多项式除法 430 范例2-34 多项式除法 430 ∷相关函数:polydiv函数 2.2.7 复数多项式相除 432 范例2-35 复数多项式相除 432 ∷相关函数:cppolydiv函数 2.3 复数运算 435 2.3.1 复数乘法 435 范例2-36 复数乘法 435 ∷相关函数:cpmul函数 2.3.2 复数除法 436 范例2-37 复数除法 436 ∷相关函数:cpdiv函数 2.3.3 复数乘幂 437 范例2-38 复数乘幂 437 ∷相关函数:cppower函数 2.3.4 复数的n次方根 439 范例2-39 复数乘法 439 ∷相关函数:cproot函数 2.3.5 复数指数 441 范例2-40 复数指数 441 ∷相关函数:polyval函数 2.3.6 复数对数 442 范例2-41 复数对数 442 ∷相关函数:cplog函数 2.3.7 复数正弦 443 范例2-42 复数正弦 443 ∷相关函数:cpsin函数 2.3.8 复数余弦 444 范例2-43 复数余弦 444 ∷相关函数:cpcos函数 2.4 随机数的产生 445 2.4.1 产生0~1之间均匀分布的随机数 446 范例2-44 0~1之间均匀分布的随机数 446 ∷相关函数:edisrnd函数 2.4.2 产生0~1之间均匀分布的随机数序列数 447 范例2-45 0~1之间均匀分布的随机数序列 447 ∷相关函数:edisrndsq函数 2.4.3 产生任意区间内均匀分布的随机数 448 范例2-46 产生任意区间内均匀分布的随机数 448 ∷相关函数:itervalrnd函数 2.4.4 产生任意区间内均匀分布的随机数序列 450 范例2-47 产生任意区间内均匀分布的随机数序列 450 ∷相关函数:itervalrndsq函数 2.4.5 产生任意均值与方差的正态分布的随机数 451 范例2-48 任意均值与方差的正态分布的随机数 451 ∷相关函数:nordisrnd函数 2.4.6 产生任意均值与方差的正态分布的随机数序列 453 范例2-49 任意均值与方差的正态分布随机数序列 453 ∷相关函数:nordisrndsq函数 2.5 矩阵运算 454 2.5.1 实矩阵相乘 454 范例2-50 实矩阵相乘 454 ∷相关函数:matrixmul函数 2.5.2 复矩阵相乘 456 范例2-51 复矩阵相乘 456 ∷相关函数:cpmatrixmul函数 2.5.3 一般实矩阵求逆 458 范例2-52 一般实矩阵求逆 458 ∷相关函数:matrix_inverse函数 2.5.4 一般复矩阵求逆 462 范例2-53 一般复矩阵求逆 462 ∷相关函数:multi_matrix_inverse函数 2.5.5 对称正定矩阵的求逆 465 范例2-54 对称正定矩阵的求逆 465 ∷相关函数:symmetric_positive_definite_matrix函数 2.5.6 托伯利兹矩阵求逆的特兰持方法 467 范例2-55 托伯利兹矩阵求逆的特兰持方法 467 ∷相关函数:toeplitz_inv函数 2.5.7 求一般行列式的值 470 范例2-56 求一般行列式的值 470 ∷相关函数:determinant_value函数 2.5.8 求矩阵的秩 472 范例2-57 求矩阵的秩 472 ∷相关函数:determinant_rank函数 2.5.9 对称正定矩阵的乔里斯基分解与行列式求值 474 范例2-58 对称正定矩阵的乔里斯基分解 474 ∷相关函数:cholesky_method函数 2.5.10 矩阵的三角分解 476 范例2-59 矩阵的三角分解 476 ∷相关函数:triangular_decomposition函数 2.5.11 一般实矩阵的QR分解 478 范例2-60 一般实矩阵的QR分解 478 ∷相关函数:qr_decomposition函数 2.5.12 求广义逆的奇异值分解法 480 范例2-61 求广义逆的奇异值分解法 480 ∷相关函数:singular_value_decomposition函数 generalized_inverses函数 2.6 矩阵特征值与特征向量的计算 489 2.6.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 489 范例2-62 约化对称矩阵为对称三对角阵 489 ∷相关函数:Householder_method函数 2.6.2 求对称三对角阵的全部特征值与特征向量 492 范例2-63 求对称三对角阵的全部特征值 492 ∷相关函数:def_qr函数 2.6.3 约化一般实矩阵为赫申伯格矩阵的初等相似变换法 496 范例2-64 约化实矩阵为赫申伯格矩阵 496 ∷相关函数:trans_hessenbreg函数 2.6.4 求赫申伯格矩阵全部特征值的QR方法 498 范例2-65 求赫申伯格矩阵全部特征值 498 ∷相关函数:hessenbreg_qr函数 2.6.5 求实对称矩阵特征值与特征向量的雅可比法 502 范例2-66 雅可比法求特征值与特征向量 502 ∷相关函数:jacobi_method函数 2.6.6 求实对称矩阵特征值与特征向量的雅可比过关法 505 范例2-67 雅可比过关法 505 ∷相关函数:jacobi_clearance函数 2.7 线性代数方程组的求解 507 2.7.1 求解实系数方程组的全选主元高斯消去法 508 范例2-68 全选主元高斯消去法 508 ∷相关函数:gauss_elimination函数 2.7.2 求解实系数方程组的全选主元高斯—约当消去法 510 范例2-69 全选主元高斯—约当消去法 510 ∷相关函数:gauss_jordan_elimination函数 2.7.3 求解复系数方程组的全选主元高斯消去法 513 范例2-70 求解复系数方程组(方法一) 513 ∷相关函数:plu_gauss函数 2.7.4 求解复系数方程组的全选主元高斯—约当消去法 516 范例2-71 求解复系数方程组(方法二) 516 ∷相关函数:plu_gauss_jordan函数 2.7.5 求解三对角线方程组的追赶法 519 范例2-72 求解三对角线方程组的追赶法 519 ∷相关函数:tridiagonal_chase函数 2.7.6 求解一般带型方程组 521 范例2-73 求解一般带型方程组 521 ∷相关函数:principal_gauss函数 2.7.7 求解对称方程组的分解法 523 范例2-74 求解对称方程组的分解法 523 ∷相关函数:equations_decomposition函数 2.7.8 求解对称正定方程组的平方根法 526 范例2-75 求解对称正定方程组的平方根法 526 ∷相关函数:equations_square_root函数 2.7.9 求解大型稀疏方程组 528 范例2-76 求解大型稀疏方程组 528 ∷相关函数:sparse_gauss_jordan函数 2.7.10 求解托伯利兹方程组的列文逊方法 531 范例2-77 求解托伯利兹方程组 531 ∷相关函数:toeplitz_levinson函数 2.7.11 高斯—赛德尔迭代法 533 范例2-78 高斯—赛德尔迭代法 533 ∷相关函数:gauss_seidel_iteration函数 2.7.12 求解对称正定方程组的共轭梯度法 535 范例2-79 求解对称正定方程组的共轭梯度法 535 ∷相关函数:conjugate_gradient_method函数 2.7.13 求解线性最小二乘问题的豪斯荷尔德变换法 537 范例2-80 求解线性最小二乘问题 537 ∷相关函数:least_square_householder函数 2.7.14 求解线性最小二乘问题的广义逆法 540 范例2-81 求解线性最小二乘问题的广义逆法 540 ∷相关函数:least_squares_reversion函数 2.7.15 求解病态方程组 549 范例2-82 求解病态方程组 549 ∷相关函数:morbid_equations函数 2.8 非线性方程与方程组的求解 553 2.8.1 求非线性方程一个实根的对分法 553 范例2-83 对分法 553 ∷相关函数:nonlinear_dichotomy函数 2.8.2 求非线性方程一个实根的牛顿法 555 范例2-84 牛顿法 555 ∷相关函数:newton_iterative函数 2.8.3 求非线性方程一个实根的埃特金迭代法 557 范例2-85 埃特金迭代法 557 ∷相关函数:aitken_iterative函数 2.8.4 求非线性方程一个实根的连分式法 558 范例2-86 连分式法 558 ∷相关函数:continued_fraction函数 2.8.5 求实系数代数方程全部根的QR方法 560 范例2-87 QR方法 560 ∷相关函数:qr_all函数 2.8.6 求实系数代数方程全部根的牛顿下山法 563 范例2-88 求实系数代数方程全部根的牛顿下山法 563 ∷相关函数:newton_descent_all函数 2.8.7 求复系数代数方程全部根的牛顿下山法 568 范例2-89 求复系数代数方程全部根的牛顿下山法 568 ∷相关函数:newton_descent_complex函数 2.8.8 求非线性方程组一组实根的梯度法 572 范例2-90 求非线性方程组一组实根的梯度法 572 ∷相关函数:gradient_nonlinear函数 2.8.9 求非线性方程组一组实根的拟牛顿法 574 范例2-91 求非线性方程组一组实根的拟牛顿法 574 ∷相关函数:quasi_newton_nonlinear函数 2.8.10 求非线性方程一个实根的蒙特卡洛法 577 范例2-92 求非线性方程的蒙特卡洛法 577 ∷相关函数:monte_carlo_nonlinear函数 2.8.11 求实函数或复函数方程一个复根的蒙特卡洛法 579 范例2-93 第二类椭圆积分 579 ∷相关函数:monte_carlo_realplex函数 2.8.12 求非线性方程组一组实根的蒙特卡洛法 581 范例2-94 第二类椭圆积分 581 ∷相关函数:monte_carlo_equation函数 2.9 插值与逼近 583 2.9.1 一元全区间插值 583 范例2-95 一元全区间插值 583 ∷相关函数:interpolation_total函数 2.9.2 一元三点插值 585 范例2-96 一元三点插值 585 ∷相关函数:interpolation_three函数 2.9.3 连分式插值 586 范例2-97 连分式插值 586 ∷相关函数:interpolation_continued函数 2.9.4 埃尔米特插值 588 范例2-98 埃尔米特插值 588 ∷相关函数:interpolation_hermite函数 2.9.5 埃特金逐步插值 590 范例2-99 第二类椭圆积分 590 ∷相关函数:interpolation_aitken函数 2.9.6 光滑插值 592 范例2-100 光滑插值 592 ∷相关函数:interpolation_akima函数 2.9.7 第一种边界条件的三次样条函数插值、微商与积分 595 范例2-101 第一种边界条件的三次样条函数 595 ∷相关函数:cubic_spline_first函数 2.9.8 第二种边界条件的三次样条函数插值、微商与积分 598 范例2-102 第二种边界条件的三次样条函数 598 ∷相关函数:cubic_spline_second函数 2.9.9 第三种边界条件的三次样条函数插值、微商与积分 600 范例2-103 第三种边界条件的三次样条函数 600 ∷相关函数:cubic_spline_third函数 2.9.10 二元三点插值 604 范例2-104 二元三点插值 604 ∷相关函数:interpolation_point函数 2.9.11 二元全区间插值 606 范例2-105 二元全区间插值 606 ∷相关函数:interpolation_total函数 2.9.12 最小二乘曲线拟合 608 范例2-106 最小二乘曲线拟合 608 ∷相关函数:least_squares_fitting函数 2.9.13 切比雪夫曲线拟合 611 范例2-107 切比雪夫曲线拟合 611 ∷相关函数:chebyshev_fitting函数 2.9.14 最佳一致逼近的里米兹方法 614 范例2-108 最佳一致逼近的里米兹方法 614 ∷相关函数:remez_method函数 2.9.15 矩形域的最小二乘曲面拟合 616 范例2-109 矩形域的最小二乘曲面拟合 616 ∷相关函数:rec_fitting函数 2.10 数值积分 621 2.10.1 变步长梯形求积法 621 范例2-110 变步长梯形求积法 621 ∷相关函数:integration_ladder函数 2.10.2 变步长辛卜生求积法 623 范例2-111 变步长辛卜生求积法 623 ∷相关函数:integration_simpson函数 2.10.3 自适应梯形求积法 624 范例2-112 自适应梯形求积法 624 ∷相关函数:integration_self_adaptive函数 2.10.4 龙贝格求积法 626 范例2-113 龙贝格求积法 626 ∷相关函数:integration_romberg函数 2.10.5 计算一维积分的连分式法 627 范例2-114 计算一维积分的连分式法 627 ∷相关函数:continued_fractions函数 2.10.6 高振荡函数求积法 629 范例2-115 高振荡函数求积法 629 ∷相关函数:higher_oscillatory_integration函数 2.10.7 勒让德—高斯求积法 631 范例2-116 勒让德—高斯求积法 631 ∷相关函数:legendre_gauss函数 2.10.8 拉盖尔—高斯求积法 633 范例2-117 拉盖尔—高斯求积法 633 ∷相关函数:laguerre_gauss函数 2.10.9 埃尔米特—高斯求积法 634 范例2-118 埃尔米特—高斯求积法 634 ∷相关函数:hermite_gauss函数 2.10.10 切比雪夫求积法 635 范例2-119 切比雪夫求积法 635 ∷相关函数:chebyshev函数 2.10.11 计算一维积分的蒙特卡洛法 637 范例2-120 计算一维积分的蒙特卡洛法 637 ∷相关函数:monte_carlo函数 2.10.12 变步长辛卜生二重积分法 638 范例2-121 变步长辛卜生二重积分法 638 ∷相关函数:simpson函数 2.10.13 计算多重积分的高斯方法 640 范例2-122 计算多重积分的高斯方法 640 ∷相关函数:gauss函数 2.10.14 计算二重积分的连分式法 643 范例2-123 计算二重积分的连分式法 643 ∷相关函数:continued_fractions_dual函数 2.10.15 计算多重积分的蒙特卡洛法 645 范例2-124 计算多重积分的蒙特卡洛法 645 ∷相关函数:monte_carlo_multi函数 2.11 常微分方程组的求解 647 2.11.1 全区间积分的定步长欧拉方法 647 范例2-125 全区间积分的定步长欧拉方法 647 ∷相关函数:euler_step函数.. 2.11.2 积分一步的变步长欧拉方法 649 范例2-126 积分一步的变步长欧拉方法 649 ∷相关函数:euler_variable函数 2.11.3 全区间积分的维梯方法 651 范例2-127 全区间积分的维梯方法 651 ∷相关函数:witty函数 2.11.4 全区间积分的定步长龙格—库塔方法 653 范例2-128 全区间积分的定步长龙格—库塔方法实例位置 653 ∷相关函数:runge_kutta函数 2.11.5 积分一步的变步长龙格—库塔方法 655 范例2-129 积分一步的变步长龙格—库塔方法实例位置 655 ∷相关函数:runge_kutta_steps函数 2.11.6 积分一步的变步长基尔方法 657 范例2-130 积分一步的变步长基尔方法 657 ∷相关函数:gill函数 2.11.7 全区间积分的变步长默森方法 659 范例2-131 全区间积分的变步长默森方法 659 ∷相关函数:merson函数 2.11.8 积分一步的连分式法 662 范例2-132 积分一步的连分式法 662 ∷相关函数:continued_step函数 2.11.9 全区间积分的双边法 665 范例2-133 全区间积分的双边法 665 ∷相关函数:bilateral函数 2.11.10 全区间积分的阿当姆斯预报校正法 668 范例2-134 阿当姆斯预报校正法 668 ∷相关函数:adams函数 2.11.11 全区间积分的哈明方法 671 范例2-135 全区间积分的哈明方法 671 ∷相关函数:hamming函数 2.11.12 积分一步的特雷纳方法 675 范例2-136 积分一步的特雷纳方法 675 ∷相关函数:treanor函数 2.11.13 二阶微分方程边值问题的数值解法 678 范例2-137 二阶微分方程边值问题的数值解法 678 ∷相关函数:finite_difference函数 2.12 数据处理与回归分析 680 2.12.1 随机样本分析 680 范例2-138 随机样本分析 680 ∷相关函数:rndsplanalysis函数 2.12.2 一元线性回归分析 683 范例2-139 一元线性回归分析 683 ∷相关函数:liregression函数 2.12.3 多元线性回归分析 685 范例2-140 多元线性回归分析 685 ∷相关函数:mulliregression函数 2.12.4 半对数数据相关 688 范例2-141 半对数数据相关 688 ∷相关函数:fittinglogt函数 2.12.5 对数数据相关 690 范例2-142 对数数据相关 690 ∷相关函数:fittingln函数 2.13 极值问题的求解 691 2.13.1 一维极值连分式法 691 范例2-143 一维极值连分式法 691 ∷相关函数:extremum函数 2.13.2 n维极值连分式法 693 范例2-144 n维极值连分式法 693 ∷相关函数:nextremum函数 2.13.3 不等式约束线性规划问题 696 范例2-145 不等式约束线性规划问题 696 ∷相关函数:linearprogram函数 2.14 数学变换与滤波 700 2.14.1 傅里叶级数逼近 700 范例2-146 傅里叶级数逼近 700 ∷相关函数:seriesfour函数 2.14.2 快速傅里叶变换 702 范例2-147 快速傅里叶变换 702 ∷相关函数:quickfft函数 2.14.3 快速沃什变换 705 范例2-148 快速沃什变换 705 ∷相关函数:quickfwt函数 2.14.4 五点三次平滑 706 范例2-149 五点三次平滑 706 ∷相关函数:smoothness函数 2.14.5 卡尔曼滤波 708 范例2-150 卡尔曼滤波 708 ∷相关函数:kalfilter函数 2.14.6 α-β-γ滤波 713 范例2-151 α-β-γ滤波 713 ∷相关函数:alphabgfilter函数 2.15 特殊函数 714 2.15.1 Gamma函数 715 范例2-152 Gamma函数 715 ∷相关函数:Gamma函数 2.15.2 不完全Gamma函数 716 范例2-153 不完全Gamma函数 716 ∷相关函数:incomgam函数 2.15.3 误差函数 719 范例2-154 误差函数 719 ∷相关函数:errorfun函数 2.15.4 第一类整数Bessel函数 721 范例2-155 第一类整数Bessel函数 721 ∷相关函数:bessel1函数 2.15.5 第二类整数Bessel函数 724 范例2-156 第二类整数Bessel函数 724 ∷相关函数:bessel2函数 2.15.6 变形第一类整数Bessel函数 727 范例2-157 变形第二类整数Bessel函数 727 ∷相关函数:varbessel1函数 2.15.7 变形第二类整数Bessel函数 729 范例2-158 变形第二类整数Bessel函数 729 ∷相关函数:varbessel2函数 2.15.8 不完全Beta函数 734 范例2-159 不完全Beta函数 734 ∷相关函数:beta函数 2.15.9 正态分布函数 736 范例2-160 正态分布函数 736 ∷相关函数:gauss函数 2.15.10 t-分布函数 739 范例2-161 t-分布函数 739 ∷相关函数:tdistribution函数 2.15.11 2-分布函数 742 范例2-162 2-分布函数 742 ∷相关函数:xdistribution函数 2.15.12 F-分布函数 744 范例2-163 F-分布函数 744 ∷相关函数:fdistribution函数 2.15.13 正弦积分 747 范例2-164 正弦积分 747 ∷相关函数:sinintegral函数 2.15.14 余弦积分 749 范例2-165 余弦积分 749 ∷相关函数:cosintegral函数 2.15.15 指数积分 750 范例2-166 指数积分 750 ∷相关函数:expintegral函数 2.15.16 第一类椭圆积分 752 范例2-167 第一类椭圆积分 752 ∷相关函数:ellipseintegral1函数 2.15.17 第二类椭圆积分 754 范例2-168 第二类椭圆积分 754 ∷相关函数:ellipseintegral2函数 2.16 本章小结 756 第3章 图形图像处理 757 3.1 字符屏幕 758 3.1.1 文本的输入与输出 758 范例3-1 文本的输入与输出 758 ∷相关函数:printf函数 scanf函数 3.1.2 outtext、outtextxy函数输出 759 范例3-2 outtext, outtextxy函数输出 759 ∷相关函数:outtext函数 outtextxy函数 3.1.3 设置文本格式 761 范例3-3 设置文本格式 761 ∷相关函数:settextstyle函数 3.1.4 设置图形文本排列方式 763 范例3-4 设置图形文本排列方式 763 ∷相关函数:settextjustify函数 3.1.5 设置用户字符比例 765 范例3-5 设置用户字符比例 765 ∷相关函数:setusercharsize函数 3.1.6 控制文本的明暗度 766 范例3-6 控制文本的明暗度 766 ∷相关函数:highvideo函数 normvideo函数 lowvideo函数 3.1.7 设置文本的前景色和背景色 767 范例3-7 设置文本的前景色和背景色 767 ∷相关函数:textcolor函数 textbackground函数 3.1.8 字符窗口 770 范例3-8 字符窗口 770 ∷相关函数:clrscr函数 window函数 gotoxy函数 3.1.9 清除光标行尾字符 772 范例3-9 清除光标行尾字符 772 ∷相关函数:clreol函数 3.1.10 插入与删除行 773 范例3-10 插入与删除行 773 ∷相关函数:insline函数 delline函数 3.1.11 屏幕参数检测 774 范例3-11 屏幕参数检测 774 ∷相关函数:getgraphmode函数 getmaxx函数 getmaxy函数 getmaxcolor函数 cleardevice函数 3.2 图形图像处理基础 777 3.2.1 绘制像素点 777 范例3-12 绘制像素点 777 ∷相关函数:putpixel函数 3.2.2 绘制直线 778 范例3-13 绘制直线 778 ∷相关函数:line函数 lineto函数 linerel函数 moveto函数 moverel函数 3.2.3 绘制矩形 780 范例3-14 绘制矩形 780 ∷相关函数:rectangle函数 3.2.4 绘制多边形 781 范例3-15 绘制多边形 781 ∷相关函数:drawpoly函数 3.2.5 绘制圆 783 范例3-16 绘制圆 783 ∷相关函数:circle函数 3.2.6 绘制椭圆 784 范例3-17 绘制椭圆 784 ∷相关函数:ellipse函数 fillellipse函数 3.2.7 绘制圆弧 786 范例3-18 绘制圆弧 786 ∷相关函数:arc函数 3.2.8 绘制扇区 787 范例3-19 绘制扇区 787 ∷相关函数:pieslice函数 sector函数 3.2.9 绘制条块 788 范例3-20 绘制条块 788 ∷相关函数:bar函数 bar3d函数 3.2.10 图设置线型 790 范例3-21 设置线型 790 ∷相关函数:Setlinestyle函数 3.2.11 绘制填充矩形 792 范例3-22 绘制填充矩形 792 ∷相关函数:setfillstyle函数 floodfill函数 3.2.12 填充多边形 795 范例3-23 填充多边形 795 ∷相关函数:fillpoly函数 3.2.14 设置用户图样 796 范例3-24 设置用户图样 796 ∷相关函数:setfillpattern函数 3.3 图形图像处理进阶 798 3.3.1 绘制彩色点云 798 范例3-25 绘制彩色点云 798 ∷相关函数:rand函数 kbhit函数 3.3.2 绘制正多边形 799 范例3-26 绘制正多边形 799 ∷相关函数:sin函数 cos函数 3.3.3 图形法绘制圆 801 范例3-27 图形法绘制圆 801 ∷相关函数:drawCircle函数 3.3.4 图形法绘制椭圆 803 范例3-28 图形法绘制椭圆 803 ∷相关函数:ellipse1函数 3.3.5 绘制正弦曲线 805 范例3-29 绘制正弦曲线 805 ∷相关函数:lineto函数 3.3.6 绘制抛物样条曲线 806 范例3-30 绘制抛物样条曲线 806 ∷相关函数:parspl函数 marking函数 3.3.7 绘制布朗曲线 809 范例3-31 绘制布朗曲线 809 ∷相关函数:CreateFractalImage函数 Gauss函数 3.3.8 动态绘制256色线条 811 范例3-32 动态绘制256色线条 811 ∷相关函数:int86函数 3.3.9 三原色亮度渐变 813 范例3-33 三原色亮度渐变 813 ∷相关函数:geninterrupt函数 3.3.10 三视图模拟 815 范例3-34 三视图模拟 815 ∷相关函数:front_view函数 top_view函数 left_view函数 perspective_view函数 3.3.11 空间椭球模拟 817 范例3-35 空间椭球模拟 817 ∷相关函数:trans函数 draw函数 3.3.12 百叶窗效果 820 范例3-36 百叶窗效果 820 ∷相关函数:putpoint函数 3.3.13 视觉欺骗 822 范例3-37 视觉欺骗 822 ∷相关函数:dot函数 circ函数 bulb函数 3.3.14 三维建筑物 824 范例3-38 三维建筑物 824 ∷相关函数:liner函数 rightlead函数 leftlead函数 shadow函数 identifier函数 3.4 组合图案绘制 830 3.4.1 一箭穿心图案 830 范例3-39 重新打开文件流 830 ∷相关函数:draw函数 arrow函数 3.4.2 六叶图案 832 范例3-40 六叶图案 832 ∷相关函数:arc函数 3.4.3 花瓣形图案 833 范例3-41 花瓣形图案 833 ∷相关函数:line函数 3.4.4 雪花图案 835 范例3-42 雪花图案 835 ∷相关函数:setviewport函数 3.4.5 布艺图案 837 范例3-43 布艺图案 837 ∷相关函数:fractal函数 3.4.6 飘带图案 838 范例3-44 飘带图案 838 ∷相关函数:line函数 3.4.7 金刚石图案 840 范例3-45 金刚石图案 840 ∷相关函数:line函数 3.4.8 圆环图案 841 范例3-46 圆环图案 841 ∷相关函数:circles函数 3.4.9 肾型图案 843 范例3-47 肾型图案 843 ∷相关函数:circle函数 3.4.10 心脏型图案 844 范例3-48 心脏型图案 844 ∷相关函数:circle函数 3.4.11 鱼图案 846 范例3-49 重新打开文件流 846 ∷相关函数:arc函数 3.4.12 沙丘图案 848 范例3-50 沙丘图案 848 ∷相关函数:lineto函数 3.4.13 正六边形螺旋图案 849 范例3-51 正六边形螺旋图案 849 ∷相关函数:polygonc函数 3.4.14 正方形螺旋拼块图案 851 范例3-52 正方形螺旋拼块图案 851 ∷相关函数:polygonc函数 block函数 3.4.15 递归法绘制三角形图案 853 范例3-53 递归法绘制三角形图案 853 ∷相关函数:elli函数 3.4.16 玫瑰图案 855 范例3-54 玫瑰图案 855 ∷相关函数:elli函数 draw函数 3.4.17 天空图案 859 范例3-55 天空图案 859 ∷相关函数:int86函数 3.4.18 Mandelbrot分形图案 864 范例3-56 Mandelbrot分形图案 864 ∷相关函数:mandelbrot函数 iterate函数 3.5 窗体界面与报表设计 866 3.5.1 窗体设计 866 范例3-57 窗体设计 866 ∷相关函数:mainform函数 windowborder函数 controls函数 3.5.2 简单菜单设计 871 范例3-58 简单菜单设计 871 ∷相关函数:initm函数 showItems函数 process 函数 process3函数 process1函数 3.5.3 制作表格 877 范例3-59 制作表格 877 ∷相关函数:putpixel函数 3.5.4 折线图 878 范例3-60 折线图 878 ∷相关函数:itoa函数 settextjustify函数 3.5.5 饼状图 880 范例3-61 饼状图 880 ∷相关函数:pieslice函数 3.5.6 柱状图 881 范例3-62 柱状图 881 ∷相关函数:Funscore函数 Drowxy 函数 Fundrow函数 3.6 动画制作 884 3.6.1 旋转的立体椭球 884 范例3-63 旋转的立体椭球 884 ∷相关函数:setactivepage函数 setvisualpage函数 3.6.2 小球碰撞演示 887 范例3-64 小球碰撞演示 887 ∷相关函数:imagsize函数 getimage函数 putimage函数 3.6.3 飘动的旗帜 889 范例3-65 飘动的旗帜 889 ∷相关函数:hor_wave_line函数 ver_wave_line函数 3.6.4 行驶中的小车 891 范例3-66 行驶中的小车 891 ∷相关函数:imagsize函数 getimage函数 putimage函数 3.6.5 不停动嘴巴的头 893 范例3-67 不停动嘴巴的头 893 ∷相关函数:getaspectratio函数 setaspectratio函数 setactivepage函数 setvisualpage函数 3.6.6 旋转的太极图 898 范例3-68 旋转的太极图 898 ∷相关函数:getpalette函数 sector函数 3.6.7 螺旋运动的圆斑 901 范例3-69 螺旋运动的圆斑 901 ∷相关函数:drawgoal函数 3.6.8 闪动的彩色圆斑 903 范例3-70 闪动的彩色圆斑 903 ∷相关函数:drawgoal函数 3.6.9 奔跑的小人 904 范例3-71 奔跑的小人 904 ∷相关函数:line函数 circle函数 3.6.10 发射火箭 907 范例3-72 发射火箭 907 ∷相关函数:DrawStar函数 DrawGun函数 DrawPlan函数 3.6.11 擦玻璃 911 范例3-73 擦玻璃 911 ∷相关函数:pieslice函数 bioskey函数 3.6.12 流星球 914 范例3-74 流星球 914 ∷相关函数:getimage函数 putimage函数 3.6.13 简单时钟 916 范例3-75 简单时钟 916 ∷相关函数:gettime函数 3.6.14 立体时钟 918 范例3-76 立体时钟 918 ∷相关函数:time函数 3.6.15 飘雪 920 范例3-77 飘雪 920 ∷相关函数:DrawSnow函数 Pr函数 3.6.16 制作火焰 923 范例3-78 制作火焰 923 ∷相关函数:outportb函数 pokeb函数 3.6.17 天体系统 926 范例3-79 天体系统 926 ∷相关函数:init_start函数 roll函数 3.6.18 扇动翅膀的蝴蝶 935 范例3-80 扇动翅膀的蝴蝶 935 ∷相关函数:putpixel函数 3.6.19 米奇 936 范例3-81 重新打开文件流 936 ∷相关函数:imagsize函数 getimage函数 putimage函数 3.7 本章小结 940 第4章 磁盘、目录和文件的操作 941 4.1 磁盘的操作 942 4.1.1 获取当前盘驱动器 942 范例4-1 获取当前盘驱动器 942 ∷相关函数:getdisk函数 4.1.2 设置当前驱动器 943 范例4-2 设置当前驱动器 943 ∷相关函数:setdisk函数 4.1.3 获取磁盘的可用空间 945 范例4-3 获取磁盘的可用空间 945 ∷相关函数:getdfree函数 4.1.4 测试软驱是否可用 946 范例4-4 测试软驱是否可用 946 ∷相关函数:biosdisk函数 4.2 目录的操作 948 4.2.1 创建目录 948 范例4-5 创建目录 948 ∷相关函数:mkdir函数 4.2.2 改变当前目录 950 范例4-6 改变当前目录 950 ∷相关函数:chdir函数 4.2.3 删除目录 952 范例4-7 删除目录 952 ∷相关函数:rmdir函数 4.3 文件的操作 953 4.3.1 用fopen函数打开文件 953 范例4-8 用fopen函数打开文件 953 ∷相关函数:fopen函数 4.3.2 打开系统temp目录中的文件 955 范例4-9 打开系统temp目录中的文件 955 ∷相关函数:getenv函数 4.3.2 使用低级函数打开和关闭文件 957 范例4-10 使用低级函数打开和关闭文件 957 ∷相关函数:open函数 close函数 4.3.3 用fclose函数关闭文件 959 范例4-11 用fclose函数关闭文件 959 ∷相关函数:fclose函数 4.3.4 一次性关闭所有被打开的文件 961 范例4-12 一次性关闭所有被打开的文件 961 ∷相关函数:fcloseall函数 4.3.5 以字符为单位读写文件 963 范例4-13 以字符为单位读写文件 963 ∷相关函数:fgetc函数 fputc函数 4.3.6 以字为单位读写文件 965 范例4-14 以字为单位读写文件 965 ∷相关函数:getw函数 putw函数 4.3.7 以低级的方式读写文件 967 范例4-15 以低级的方式读写文件 967 ∷相关函数:read函数 write函数 4.3.8 按结构读写文件 969 范例4-16 按结构读写文件 969 ∷相关函数:read函数 write函数 4.3.9 格式化写文件 971 范例4-17 格式化写文件 971 ∷相关函数:fprintf函数 4.3.10 格式化读文件 972 范例4-18 格式化读文件 972 ∷相关函数:fscanf函数 4.3.11 以行为单位写文件 974 范例4-19 以行为单位写文件 974 ∷相关函数:fputs函数 4.3.12 以行为单位读文件 975 范例4-20 以行为单位读文件 975 ∷相关函数:fgets函数 4.3.13 将缓冲区内容写入文件 977 范例4-21 将缓冲区内容写入文件 977 ∷相关函数:setbuf函数 4.3.14 用lseek函数定位文件指针 978 范例4-22 用lseek函数定位文件指针 978 ∷相关函数:lseek函数 4.3.15 获取文件流的文件句柄 980 范例4-23 获取文件流的文件句柄 980 ∷相关函数:fileno函数 4.3.16 从文件流指针中导出文件句柄 982 范例4-24 从文件流指针中导出文件句柄 982 ∷相关函数:fopen函数 4.3.17 利用eof函数判断文件是否结束 984 范例4-25 利用eof函数判断文件是否结束 984 ∷相关函数:eof函数 4.3.18 利用feof函数判断文件结尾 986 范例4-26 利用feof函数判断文件结尾 986 ∷相关函数:feof函数 4.3.19 刷新I/O流 988 范例4-27 刷新I/O流 988 ∷相关函数:fflush函数 4.3.20 利用tmpnam函数创建临时文件名 990 范例4-28 利用tmpnam函数创建临时文件名 990 ∷相关函数:tmpnam函数 4.3.21 创建真正的临时文件 992 范例4-29 创建真正的临时文件 992 ∷相关函数:tmpfile函数 4.3.22 创建文件 993 范例4-30 创建文件 993 ∷相关函数:creat函数 4.3.23 在指定目录中创建唯一文件 995 范例4-31 在指定目录中创建唯一文件 995 ∷相关函数:creattemp函数 4.3.24 利用creatnew函数创建新文件 996 范例4-32 利用creatnew函数创建新文件 996 ∷相关函数:creatnew函数 4.3.25 删除文件 998 范例4-33 删除文件 998 ∷相关函数:remove函数 4.3.26 查找文件获取文件的路径 1000 范例4-34 查找文件获取文件的路径 1000 ∷相关函数:searchpath函数 4.3.27 分解文件路径 1001 范例4-35 分解文件路径 1001 ∷相关函数:fnsplit函数 4.3.28 建立文件完全路径名 1003 范例4-36 建立文件完全路径名 1003 ∷相关函数:fnmerge 函数 4.3.29 读取文件分配表信息 1005 范例4-37 读取文件分配表信息 1005 ∷相关函数:getfat函数 getfatd函数 4.3.30 判断读写所在的文件的位置 1007 范例4-38 判断读写所在的文件的位置 1007 ∷相关函数:ftell函数 4.3.31 重命名文件 1009 范例4-39 重命名文件 1009 ∷相关函数:rename函数 4.3.32 判断访问文件的模式 1011 范例4-40 判断访问文件的模式 1011 ∷相关函数:access函数 4.3.34 设置文件访问模式 1013 范例4-41 设置文件访问模式 1013 ∷相关函数:chmod函数 4.3.35 显示文件的属性 1015 范例4-42 显示文件的属性 1015 ∷相关函数:_chmod函数 4.3.36 检测文件流的错误 1017 范例4-43 检测文件流的错误 1017 ∷相关函数:ferror函数 4.3.37 判断文件的长度 1019 范例4-44 判断文件的长度 1019 ∷相关函数:filelength函数 4.3.38 通过句柄设置打开文件的方式 1022 范例4-45 通过句柄设置打开文件的方式 1022 ∷相关函数:setmode函数 4.3.39 读取文件的时间和日期标记 1023 范例4-46 读取文件的时间和日期标记 1023 ∷相关函数:getftime函数 4.3.40 设置文件的时间和日期标记 1026 范例4-47 设置文件的时间和日期标记 1026 ∷相关函数:setftimet函数 4.3.41 改变文件的长度 1028 范例4-48 改变文件的长度 1028 ∷相关函数:chsize函数 4.3.42 控制文件打开操作的读写模式 1029 范例4-49 控制文件打开操作的读写模式 1029 ∷相关函数:umask函数 4.3.43 复制文件句柄 1032 范例4-50 复制文件句柄 1032 ∷相关函数:dup函数 4.3.44 强制复制文件句柄 1033 范例4-51 强制复制文件句柄 1033 ∷相关函数:dup2函数 4.3.45 用句柄判断读写所在的文件的位置 1036 范例4-52 用句柄判断当前文件指针的位置 1036 ∷相关函数:tell函数 4.3.46 根据当前位置定位文件指针 1038 范例4-53 根据当前位置定位文件指针 1038 ∷相关函数:fseek函数 4.3.47 获取文件句柄的信息 1039 范例4-54 获取文件句柄的信息 1039 ∷相关函数:fstat函数 4.3.48 重新打开文件流 1041 范例4-55 重新打开文件流 1041 ∷相关函数:freopen函数 4.4 本章小结 1043 第5章 系统调用 1045 5.1 时间和日期的操作 1046 5.1.1 获取当前的时间和日期 1046 范例5-1 获取当前时间和日期 1046 ∷相关函数:time函数 5.1.2 让程序延时指定的时间段 1047 范例5-2 让程序延时指定的时间段 1047 ∷相关函数:delay函数 5.1.3 比较两个时间 1048 范例5-3 比较两个时间 1048 ∷相关函数:difftime函数 5.1.4 读BIOS计时器 1050 范例5-4 读BIOS计时器 1050 ∷相关函数:biostime函数 5.1.5 比较两个时间获取当地时间 1051 范例5-5 获取当地时间 1051 ∷相关函数:localtime函数 5.1.6 获取格林威治平时 1052 范例5-6 获取格林威治平时 1052 ∷相关函数:gmtime函数 5.1.7 获取DOS系统时间 1054 范例5-7 获取DOS系统时间 1054 ∷相关函数:gettime函数 5.1.8 获取DOS系统日期 1055 范例5-8 获取DOS系统日期 1055 ∷相关函数:getdate函数 5.1.9 设置DOS系统时间 1057 范例5-9 设置DOS系统时间 1057 ∷相关函数:settime函数 5.1.10 设置DOS系统日期 1059 范例5-10 设置DOS系统日期 1059 ∷相关函数:setdate函数 5.1.11 获取时区信息 1061 范例5-11 获取时区信息 1061 ∷相关函数:ftime函数 5.2 BIOS的操作 1062 5.2.1 利用BIOS获取打印机的状态 1062 范例5-12 利用BIOS获取打印机的状态 1062 ∷相关函数:biosprint函数 5.2.2 获取Ctrl+Break信息 1064 范例5-13 获取CTRL+BREAK信息 1064 ∷相关函数:getcbrk函数 5.2.3 暂时挂起程序 1066 范例5-14 暂时挂起程序 1066 ∷相关函数:sleep函数 5.2.4 控制声音 1067 范例5-15 控制声音 1067 5.2.5 利用bdos函数访问DOS服务 1068 范例5-16 利用bdos函数访问DOS服务 1068 ∷相关函数:bdos函数 5.2.6 获取BIOS常规内存数量 1071 范例5-17 获取BIOS常规内存数量 1071 ∷相关函数:biosmemory函数 5.2.7 获取寄存器设置信息 1072 范例5-18 获取寄存器设置信息 1072 ∷相关函数:segread函数 5.3 内存的操作 1074 5.3.1 给内存区域赋值 1074 范例5-19 给内存区域赋值 1074 ∷相关函数:memset函数 5.3.2 获取时区信息复制内存区域 1076 范例5-20 复制内存区域 1076 5.3.3 复制内存区域指定的字节 1078 范例5-21 复制内存区域指定的字节 1078 ∷相关函数:memccpy函数 5.3.4 获取时区信息 1080 范例5-22 比较两个无符号字符数组 1080 5.3.5 交换字符串的两个相邻字节内容 1082 范例5-23 交换字符串的两个相邻字节内容 1082 ∷相关函数:swab函数 5.3.6 利用brk函数改变堆的大小 1084 范例5-24 利用brk函数改变堆的大小 1084 ∷相关函数:brk函数 5.3.7 获取指定内存单元内容 1086 范例5-25 获取指定内存单元内容 1086 5.3.8 设置指定内存单元内容 1088 范例5-26 设置指定内存单元内容 1088 5.4 本章小结 1090
资源简介 第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函数:c函数 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维数组的表示 14 范例1-6 三维数组的表示 14 ∷相关函数:InitArray函数 1.1.7 多项式的数组表示 17 范例1-7 多项式数组的表示 17 1.1.8 查找矩阵的马鞍点 19 范例1-8 查找矩阵的马鞍点 19 ∷相关函数:Get_Saddle函数 1.1.9 对角矩阵建立 21 范例1-9 对角矩阵建立 21 ∷相关函数:Store函数 1.1.10 三对角矩阵的建立 22 范例1-10 三对角矩阵的建立 22 ∷相关函数:Store函数 1.1.11 三角矩阵建立 24 范例1-11 三角矩阵建立 24 ∷相关函数:Store函数 1.1.12 对称矩阵的建立 25 范例1-12 对称矩阵的建立 25 ∷相关函数:store函数 1.1.13 字符串长度的计算 28 范例1-13 字符串长度的计算 28 ∷相关函数:strlen函数 1.1.14 字符串的复制 29 范例1-14 字符串的复制 29 ∷相关函数:strcpy函数 1.1.15 字符串的替换 31 范例1-15 字符串的替换 31 ∷相关函数:strrep函数 1.1.16 字符串的删除 33 范例1-16 字符串的删除 33 ∷相关函数:strdel函数 1.1.17 字符串的比较 35 范例1-17 字符串的比较 35 ∷相关函数:strcmp函数 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函数:substr函数 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函数:partition函数 1.1.20 字符串的插入 40 范例1-20 字符串的插入 40 ∷相关函数:insert函数 1.1.21 字符串的匹配 42 范例1-21 字符串的匹配 42 ∷相关函数:nfind函数 1.1.22 字符串的合并 43 范例1-22 字符串的合并 43 ∷相关函数:catstr函数 1.1.23 文本编辑 45 范例1-23 文本编辑 45 ∷相关函数:StrAssign函数 1.2 栈和队列 54 1.2.1 用数组仿真堆栈 54 范例1-24 用数组仿真堆栈 54 ∷相关函数:push函数 pop函数 1.2.2 用链表仿真堆栈 57 范例1-25 用链表仿真堆栈 57 ∷相关函数:push函数 pop函数 1.2.3 顺序栈公用 59 范例1-26 顺序栈公用 59 ∷相关函数:push函数 pop函数 1.2.4 进制转换问题 61 范例1-27 进制转换问题 61 ∷相关函数:MultiBaseOutput函数 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函数:push函数 pop函数 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函数:EnQueue函数 DeQueue函数 1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函数:push函数 pop函数 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函数:EnQueue函数 DeQueue函数 DancePartner函数 1.3 链表 75 1.3.1 头插法建立单链表 75 范例1-32 头插法建立单链表 75 ∷相关函数:createlist函数 1.3.2 限制链表长度建立单链表 77 范例1-33 限制链表长度建立长单链表 77 ∷相关函数:createlist函数 1.3.3 尾插法建立单链表 79 范例1-34 尾插法建立单链表 79 ∷相关函数:createlist函数 1.3.4 按序号查找单链表 80 范例1-35 按序号查找单链表 80 ∷相关函数:getnode函数 1.3.5 按值查找单链表 82 范例1-36 按值查找单链表 82 ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 范例1-39 归并两个单链表 88 ∷相关函数:concatenate函数 1.3.9 动态堆栈 90 范例1-40 动态堆栈 90 ∷相关函数:push函数 Pop函数 1.3.10 动态队列 93 范例1-41 动态队列 93 ∷相关函数:Enqueue函数 1.3.11 初始化单循环链表 95 范例1-42 初始化单循环链表 95 ∷相关函数:ListLength_CL函数 1.3.12 查询元素的前驱和后继 98 范例1-43 查询元素的前驱和后继 98 ∷相关函数:PriorElem_CL函数 NextElem_CL函数 1.3.13 单循环链表中元素的删除 101 范例1-44 单循环链表中元素的删除 101 ∷相关函数:ListDelete_CL函数 1.3.14 单循环链表的清除和销毁 107 范例1-45 单循环链表的清除和销毁 107 ∷相关函数:DestroyList函数 1.3.15 仅设表尾指针循环链表的合并 110 范例1-46 仅设表尾指针循环链表的合并 110 ∷相关函数:MergeList_CL函数 1.3.16 正序输出双向链表 113 范例1-47 正序输出双向链表 113 ∷相关函数:ListInsert函数 ListTraverse函数 1.3.17 逆向输出双向链表 116 范例1-48 三角矩阵建立 116 ∷相关函数:ListTraverseBack函数 1.3.18 删除双向链表中的节点 121 范例1-49 删除双向链表中的节点 121 ∷相关函数:ListDelete函数 1.3.19 双向链表的元素个数 124 范例1-50 双向链表的元素个数 124 ∷相关函数:ListLength函数 1.3.20 判断双向链表是否为空 126 范例1-51 判断双向链表是否为空 126 ∷相关函数:ListEmpty函数 1.3.21 双向链表元素值的查询 129 范例1-52 双向链表元素值的查询 129 ∷相关函数:GetElemP函数 1.3.22 稀疏矩阵的建立 136 范例1-53 稀疏矩阵的建立 136 ∷相关函数:Create函数 1.3.23 稀疏矩阵的删除 138 范例1-54 稀疏矩阵的删除 138 ∷相关函数:erase函数 1.4 树和二叉树 141 1.4.1 获得二叉树的深度和根(顺序结构) 141 范例1-55 获得二叉树的深度和根 141 ∷相关函数:BiTreeDepth函数 Root函数 1.4.2 获得二叉树的深度和根(链表结构) 144 范例1-56 获得二叉树的深度和根 144 ∷相关函数:BiTreeDepth函数 Root函数 1.4.3 树的插入(顺序结构) 147 范例1-57 树的插入 147 ∷相关函数:InsertChild函数 1.4.4 节点的修改(顺序结构) 150 范例1-58 节点的修改 150 ∷相关函数:Assign函数 1.4.5 节点的修改(链式结构) 154 范例1-59 节点的修改 154 ∷相关函数:Assign函数 1.4.6 双亲、孩子和兄弟节点的查询(顺序结构) 158 范例1-60 双亲、孩子和兄弟节点的查询 158 ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.8 中序遍历二叉树(顺序结构) 169 范例1-62 中序遍历二叉树 169 ∷相关函数:InOrderTraverse函数 1.4.9 中序遍历二叉树(链式结构) 171 范例1-63 中序遍历二叉树 171 ∷相关函数:InOrderTraverse函数 1.4.10 中序非递归遍历二叉树(链式结构)(1) 174 范例1-64 中序非递归遍历二叉树 174 ∷相关函数:InOrderTraverse函数 1.4.11 中序非递归遍历二叉树(链式结构)(2) 177 范例1-65 中序非递归遍历二叉树 177 ∷相关函数:InOrderTraverse2函数 1.4.12 后序遍历二叉树(顺序结构) 180 范例1-66 后序遍历二叉树 180 ∷相关函数:PostOrderTraverse函数 1.4.13 后序遍历二叉树(链式结构) 183 范例1-67 后序遍历二叉树 183 ∷相关函数:PostOrderTraverse函数 1.4.14 层次遍历二叉树(顺序结构) 186 范例1-68 层次遍历二叉树 186 ∷相关函数:LevelOrderTraverse函数 1.4.15 层次遍历二叉树(链式结构) 188 范例1-68 层次遍历二叉树 188 ∷相关函数:LevelOrderTraverse函数 1.4.16 树的合并 191 范例1-70 树的合并 191 ∷相关函数:Find函数 Union函数 1.4.17 树的二叉链表存储的基本操作 193 范例1-71 树的二叉链表存储的基本操作 193 ∷相关函数:LevelOrderTraverse函数 1.4.18 二叉树的三叉链表存储的基本操作 201 范例1-72 二叉树的三叉链表存储表示 201 ∷相关函数:CreateBiTree函数 1.4.19 二叉树的二叉线索存储的基本操作 212 范例1-73 二叉树的二叉线索存储 212 ∷相关函数:CreateBiThrTree函数 1.4.20 树的双亲表存储的基本操作 215 范例1-74 树的双亲表存储的基本操作 215 ∷相关函数:CreateTree函数 1.4.21 哈夫曼编码(1) 223 范例1-75 哈夫曼编码(1) 223 ∷相关函数:HuffmanCoding函数 1.4.22 哈夫曼编码(2) 226 范例1-76 哈夫曼编码(2) 226 ∷相关函数:HuffmanCoding函数 1.5 排序 229 1.5.1 直接插入排序 229 范例1-77 直接插入排序 229 ∷相关函数:InsertSort函数 1.5.2 折半插入排序(顺序结构) 231 范例1-78 折半插入排序(顺序结构) 231 ∷相关函数:BInsertSort函数 1.5.3 2—路插入排序(顺序结构) 233 范例1-79 2—路插入排序(顺序结构) 233 ∷相关函数:P2_InsertSort函数 1.5.4 折半插入排序(链式结构) 235 范例1-80 折半插入排序(链式结构) 235 ∷相关函数:Arrange函数 1.5.5 2—路插入排序(链式结构) 238 范例1-81 2—路插入排序(链式结构) 238 ∷相关函数:Rearrange函数 1.5.6 希尔排序 241 范例1-82 希尔排序 241 ∷相关函数:ShellSort函数 1.5.7 冒泡排序 243 范例1-83 冒泡排序 243 ∷相关函数:bubble_sort函数 1.5.8 一趟快速排序 246 范例1-84 一趟快速排序 246 ∷相关函数:QSort函数 1.5.9 一趟快速排序的改进算法 248 范例1-85 一趟快速排序的改进算法 248 ∷相关函数:QuickSort函数 1.5.10 简单选择排序 250 范例1-86 简单选择排序 250 ∷相关函数:SelectSort函数 1.5.11 箱子排序 252 范例1-87 箱子排序 252 ∷相关函数:sort函数 1.5.12 树型选择排序 254 范例1-88 树型选择排序 254 ∷相关函数:TreeSort函数 1.5.13 堆排序 256 范例1-89 堆排序 256 ∷相关函数:HeapSort函数 1.5.14 归并排序 258 范例1-90 归并排序 258 ∷相关函数:MergeSort函数 1.5.15 多路平衡归并排序 260 范例1-91 多路平衡归并排序 260 ∷相关函数:K_Merge函数 1.5.16 置换—选择排序 265 范例1-92 置换—选择排序 265 ∷相关函数:Replace_Selection函数 1.5.17 文件的归并 269 范例1-93 文件的归并 269 ∷相关函数:K_Merge函数 1.6 查找 272 1.6.1 顺序表的查找 273 范例1-94 顺序表的查找 273 ∷相关函数:Search_Seq函数 1.6.2 静态树表的查找 276 范例1-95 静态树表的查找 276 ∷相关函数:Search_SOSTree函数 1.6.3 二叉排序树的基本操作 280 范例1-96 二叉排序树的基本操作 280 ∷相关函数:InsertBST函数 1.6.4 平衡二叉树的基本操作 285 范例1-97 平衡二叉树的基本操作 285 ∷相关函数:SearchBST函数 1.6.5 B树的基本操作 290 范例1-98 B树的基本操作 290 ∷相关函数:SearchBTree函数 1.6.6 按关键字符串的遍历双链键树 295 范例1-99 按关键字符串遍历双链键树 295 ∷相关函数:SearchDLTree函数 1.6.7 按关键字符串的遍历Trie树 301 范例1-100 按关键字符串遍历Trie树 301 ∷相关函数:SearchTrie函数 1.6.8 哈希表的基本操作 306 范例1-101 哈希表的基本操作 306 ∷相关函数:SearchHash函数 1.7 图 311 1.7.1 图的邻接矩阵存储表示 311 范例1-102 图的邻接矩阵存储表示 ∷相关函数:CreateFAG函数 CreateDG函数 1.7.2 图的邻接表存储表示 324 范例1-103 图的邻接表存储表示 324 ∷相关函数:CreateFAG函数 1.7.3 有向图的十字链表存储表示 335 范例1-104 有向图的十字链表存储表示 335 ∷相关函数:CreateDG函数 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函数:CreateGraph函数 1.7.5 最小生成树 355 范例1-106 最小生成树 355 ∷相关函数:MiniSpanTree_PRIM函数 1.7.6 关节点和重连通分量 359 范例1-107 关节点和重连通分量 359 ∷相关函数:FindArticul函数 1.7.7 拓扑排序 366 范例1-108 拓扑排序 366 ∷相关函数:TopologicalSort函数 1.7.8 关键路径 374 范例1-109 关键路径 374 ∷相关函数:CriticalPath函数 1.7.9 最短路径 383 范例1-110 最短路径 383 ∷相关函数:ShortestPath_DIJ函数 1.7.10 每一对顶点之间的最短路径 387 范例1-111 每一对顶点之间的最短路径 387 ∷相关函数:ShortestPath_FLOYD函数 1.8 本章小结 395 第2章 数值计算 397 2.1 常见的数学函数 398 2.1.1 求整数的绝对值 398 范例2-1 求整数的绝对值 398 ∷相关函数:abs函数 2.1.2 求长整型整数的绝对值 399 范例2-2 求长整型整数的绝对值 399 ∷相关函数:labs函数 2.1.2 求浮点数的绝对值 400 范例2-2 求浮点数的绝对值 400 ∷相关函数:fabs函数 2.1.4 求反余弦 400 范例2-4 求反余弦 400 ∷相关函数:acos函数 2.1.5 求反正弦 401 范例2-5 求反正弦 401 ∷相关函数:asin函数 2.1.6 求反正切 402 范例2-6 求反正切 402 ∷相关函数:atan函数 2.1.7 对浮点数进行舍入 403 范例2-7 对浮点数进行舍入 403 ∷相关函数:ceil函数 2.1.8 求余弦 404 范例2-8 求余弦 404 ∷相关函数:cos函数 2.1.9 求双曲余弦 405 范例2-9 求双曲余弦 405 ∷相关函数:cosh函数 2.1.10 求正弦 406 范例2-10 求正弦 406 ∷相关函数:sin函数 2.1.11 求双曲正弦 406 范例2-11 求双曲正弦 406 ∷相关函数:sinh函数 2.1.12 求正切 407 范例2-12 求正切 407 ∷相关函数:tan函数 2.1.13 求双曲正切 408 范例2-13 求双曲正切 408 ∷相关函数:tanh函数 2.1.14 获得整数相除的商和余数 409 范例2-14 获得整数相除的商和余数 409 ∷相关函数:div函数 2.1.15 求ex 410 范例2-15 求ex 410 ∷相关函数:exp函数 2.1.16 获取浮点相除的余数 411 范例2-16 获取浮点数相除的余数 411 ∷相关函数:fmod函数 2.1.17 获取浮点数的尾数和指数 412 范例2-17 获取浮点数的尾数和指数 412 ∷相关函数:frexp函数 2.1.18 求x2exponent 413 范例2-18 一维多项式求值 413 ∷相关函数:ldexp函数 2.1.19 求自然对数 413 范例2-19 求自然对数 413 ∷相关函数:log 函数 2.1.20 求lgx 414 范例2-20 求lgx 414 ∷相关函数:log10函数 2.1.21 获取浮点数的整数部分和小数部分 415 范例2-21 第二类椭圆积分 415 ∷相关函数:modf函数 2.1.22 求xy 416 范例2-22 求xy 416 ∷相关函数:pow函数 2.1.23 求10x 417 范例2-23 求10x 417 ∷相关函数:pow10函数 2.1.24 获取随机数 418 范例2-24 获取随机数 418 ∷相关函数:rand函数 2.1.25 设置随机数生成器初值 418 范例2-25 设置随机数生成器初值 418 ∷相关函数:srand函数 2.1.26 获取最大值和最小值 419 范例2-26 获取最大值和最小值 419 ∷相关函数:max函数 min函数 2.1.27 求直角三角形的斜边长 421 范例2-27 求直角三角形的斜边长 421 ∷相关函数:hypot函数 2.1.28 获取多项式的值 421 范例2-28 获取多项式的值 421 ∷相关函数:poly函数 2.2 多项式的计算 422 2.2.1 一维多项式求值 422 范例2-29 一维多项式求值 422 ∷相关函数:polyval函数 2.2.2 二维多项式求值 424 范例2-30 二维多项式求值 424 ∷相关函数:tdpolyval函数 2.2.3 复系数一维多项式求值 425 范例2-31 复系数一维多项式求值 425 ∷相关函数:cppolyval函数 2.2.4 多项式相乘 427 范例2-32 多项式相乘 427 ∷相关函数:polymul函数 2.2.5 复系数多项式相乘 428 范例2-33 复系数多项式相乘 428 ∷相关函数:cppolymul函数 2.2.6 多项式除法 430 范例2-34 多项式除法 430 ∷相关函数:polydiv函数 2.2.7 复数多项式相除 432 范例2-35 复数多项式相除 432 ∷相关函数:cppolydiv函数 2.3 复数运算 435 2.3.1 复数乘法 435 范例2-36 复数乘法 435 ∷相关函数:cpmul函数 2.3.2 复数除法 436 范例2-37 复数除法 436 ∷相关函数:cpdiv函数 2.3.3 复数乘幂 437 范例2-38 复数乘幂 437 ∷相关函数:cppower函数 2.3.4 复数的n次方根 439 范例2-39 复数乘法 439 ∷相关函数:cproot函数 2.3.5 复数指数 441 范例2-40 复数指数 441 ∷相关函数:polyval函数 2.3.6 复数对数 442 范例2-41 复数对数 442 ∷相关函数:cplog函数 2.3.7 复数正弦 443 范例2-42 复数正弦 443 ∷相关函数:cpsin函数 2.3.8 复数余弦 444 范例2-43 复数余弦 444 ∷相关函数:cpcos函数 2.4 随机数的产生 445 2.4.1 产生0~1之间均匀分布的随机数 446 范例2-44 0~1之间均匀分布的随机数 446 ∷相关函数:edisrnd函数 2.4.2 产生0~1之间均匀分布的随机数序列数 447 范例2-45 0~1之间均匀分布的随机数序列 447 ∷相关函数:edisrndsq函数 2.4.3 产生任意区间内均匀分布的随机数 448 范例2-46 产生任意区间内均匀分布的随机数 448 ∷相关函数:itervalrnd函数 2.4.4 产生任意区间内均匀分布的随机数序列 450 范例2-47 产生任意区间内均匀分布的随机数序列 450 ∷相关函数:itervalrndsq函数 2.4.5 产生任意均值与方差的正态分布的随机数 451 范例2-48 任意均值与方差的正态分布的随机数 451 ∷相关函数:nordisrnd函数 2.4.6 产生任意均值与方差的正态分布的随机数序列 453 范例2-49 任意均值与方差的正态分布随机数序列 453 ∷相关函数:nordisrndsq函数 2.5 矩阵运算 454 2.5.1 实矩阵相乘 454 范例2-50 实矩阵相乘 454 ∷相关函数:matrixmul函数 2.5.2 复矩阵相乘 456 范例2-51 复矩阵相乘 456 ∷相关函数:cpmatrixmul函数 2.5.3 一般实矩阵求逆 458 范例2-52 一般实矩阵求逆 458 ∷相关函数:matrix_inverse函数 2.5.4 一般复矩阵求逆 462 范例2-53 一般复矩阵求逆 462 ∷相关函数:multi_matrix_inverse函数 2.5.5 对称正定矩阵的求逆 465 范例2-54 对称正定矩阵的求逆 465 ∷相关函数:symmetric_positive_definite_matrix函数 2.5.6 托伯利兹矩阵求逆的特兰持方法 467 范例2-55 托伯利兹矩阵求逆的特兰持方法 467 ∷相关函数:toeplitz_inv函数 2.5.7 求一般行列式的值 470 范例2-56 求一般行列式的值 470 ∷相关函数:determinant_value函数 2.5.8 求矩阵的秩 472 范例2-57 求矩阵的秩 472 ∷相关函数:determinant_rank函数 2.5.9 对称正定矩阵的乔里斯基分解与行列式求值 474 范例2-58 对称正定矩阵的乔里斯基分解 474 ∷相关函数:cholesky_method函数 2.5.10 矩阵的三角分解 476 范例2-59 矩阵的三角分解 476 ∷相关函数:triangular_decomposition函数 2.5.11 一般实矩阵的QR分解 478 范例2-60 一般实矩阵的QR分解 478 ∷相关函数:qr_decomposition函数 2.5.12 求广义逆的奇异值分解法 480 范例2-61 求广义逆的奇异值分解法 480 ∷相关函数:singular_value_decomposition函数 generalized_inverses函数 2.6 矩阵特征值与特征向量的计算 489 2.6.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 489 范例2-62 约化对称矩阵为对称三对角阵 489 ∷相关函数:Householder_method函数 2.6.2 求对称三对角阵的全部特征值与特征向量 492 范例2-63 求对称三对角阵的全部特征值 492 ∷相关函数:def_qr函数 2.6.3 约化一般实矩阵为赫申伯格矩阵的初等相似变换法 496 范例2-64 约化实矩阵为赫申伯格矩阵 496 ∷相关函数:trans_hessenbreg函数 2.6.4 求赫申伯格矩阵全部特征值的QR方法 498 范例2-65 求赫申伯格矩阵全部特征值 498 ∷相关函数:hessenbreg_qr函数 2.6.5 求实对称矩阵特征值与特征向量的雅可比法 502 范例2-66 雅可比法求特征值与特征向量 502 ∷相关函数:jacobi_method函数 2.6.6 求实对称矩阵特征值与特征向量的雅可比过关法 505 范例2-67 雅可比过关法 505 ∷相关函数:jacobi_clearance函数 2.7 线性代数方程组的求解 507 2.7.1 求解实系数方程组的全选主元高斯消去法 508 范例2-68 全选主元高斯消去法 508 ∷相关函数:gauss_elimination函数 2.7.2 求解实系数方程组的全选主元高斯—约当消去法 510 范例2-69 全选主元高斯—约当消去法 510 ∷相关函数:gauss_jordan_elimination函数 2.7.3 求解复系数方程组的全选主元高斯消去法 513 范例2-70 求解复系数方程组(方法一) 513 ∷相关函数:plu_gauss函数 2.7.4 求解复系数方程组的全选主元高斯—约当消去法 516 范例2-71 求解复系数方程组(方法二) 516 ∷相关函数:plu_gauss_jordan函数 2.7.5 求解三对角线方程组的追赶法 519 范例2-72 求解三对角线方程组的追赶法 519 ∷相关函数:tridiagonal_chase函数 2.7.6 求解一般带型方程组 521 范例2-73 求解一般带型方程组 521 ∷相关函数:principal_gauss函数 2.7.7 求解对称方程组的分解法 523 范例2-74 求解对称方程组的分解法 523 ∷相关函数:equations_decomposition函数 2.7.8 求解对称正定方程组的平方根法 526 范例2-75 求解对称正定方程组的平方根法 526 ∷相关函数:equations_square_root函数 2.7.9 求解大型稀疏方程组 528 范例2-76 求解大型稀疏方程组 528 ∷相关函数:sparse_gauss_jordan函数 2.7.10 求解托伯利兹方程组的列文逊方法 531 范例2-77 求解托伯利兹方程组 531 ∷相关函数:toeplitz_levinson函数 2.7.11 高斯—赛德尔迭代法 533 范例2-78 高斯—赛德尔迭代法 533 ∷相关函数:gauss_seidel_iteration函数 2.7.12 求解对称正定方程组的共轭梯度法 535 范例2-79 求解对称正定方程组的共轭梯度法 535 ∷相关函数:conjugate_gradient_method函数 2.7.13 求解线性最小二乘问题的豪斯荷尔德变换法 537 范例2-80 求解线性最小二乘问题 537 ∷相关函数:least_square_householder函数 2.7.14 求解线性最小二乘问题的广义逆法 540 范例2-81 求解线性最小二乘问题的广义逆法 540 ∷相关函数:least_squares_reversion函数 2.7.15 求解病态方程组 549 范例2-82 求解病态方程组 549 ∷相关函数:morbid_equations函数 2.8 非线性方程与方程组的求解 553 2.8.1 求非线性方程一个实根的对分法 553 范例2-83 对分法 553 ∷相关函数:nonlinear_dichotomy函数 2.8.2 求非线性方程一个实根的牛顿法 555 范例2-84 牛顿法 555 ∷相关函数:newton_iterative函数 2.8.3 求非线性方程一个实根的埃特金迭代法 557 范例2-85 埃特金迭代法 557 ∷相关函数:aitken_iterative函数 2.8.4 求非线性方程一个实根的连分式法 558 范例2-86 连分式法 558 ∷相关函数:continued_fraction函数 2.8.5 求实系数代数方程全部根的QR方法 560 范例2-87 QR方法 560 ∷相关函数:qr_all函数 2.8.6 求实系数代数方程全部根的牛顿下山法 563 范例2-88 求实系数代数方程全部根的牛顿下山法 563 ∷相关函数:newton_descent_all函数 2.8.7 求复系数代数方程全部根的牛顿下山法 568 范例2-89 求复系数代数方程全部根的牛顿下山法 568 ∷相关函数:newton_descent_complex函数 2.8.8 求非线性方程组一组实根的梯度法 572 范例2-90 求非线性方程组一组实根的梯度法 572 ∷相关函数:gradient_nonlinear函数 2.8.9 求非线性方程组一组实根的拟牛顿法 574 范例2-91 求非线性方程组一组实根的拟牛顿法 574 ∷相关函数:quasi_newton_nonlinear函数 2.8.10 求非线性方程一个实根的蒙特卡洛法 577 范例2-92 求非线性方程的蒙特卡洛法 577 ∷相关函数:monte_carlo_nonlinear函数 2.8.11 求实函数或复函数方程一个复根的蒙特卡洛法 579 范例2-93 第二类椭圆积分 579 ∷相关函数:monte_carlo_realplex函数 2.8.12 求非线性方程组一组实根的蒙特卡洛法 581 范例2-94 第二类椭圆积分 581 ∷相关函数:monte_carlo_equation函数 2.9 插值与逼近 583 2.9.1 一元全区间插值 583 范例2-95 一元全区间插值 583 ∷相关函数:interpolation_total函数 2.9.2 一元三点插值 585 范例2-96 一元三点插值 585 ∷相关函数:interpolation_three函数 2.9.3 连分式插值 586 范例2-97 连分式插值 586 ∷相关函数:interpolation_continued函数 2.9.4 埃尔米特插值 588 范例2-98 埃尔米特插值 588 ∷相关函数:interpolation_hermite函数 2.9.5 埃特金逐步插值 590 范例2-99 第二类椭圆积分 590 ∷相关函数:interpolation_aitken函数 2.9.6 光滑插值 592 范例2-100 光滑插值 592 ∷相关函数:interpolation_akima函数 2.9.7 第一种边界条件的三次样条函数插值、微商与积分 595 范例2-101 第一种边界条件的三次样条函数 595 ∷相关函数:cubic_spline_first函数 2.9.8 第二种边界条件的三次样条函数插值、微商与积分 598 范例2-102 第二种边界条件的三次样条函数 598 ∷相关函数:cubic_spline_second函数 2.9.9 第三种边界条件的三次样条函数插值、微商与积分 600 范例2-103 第三种边界条件的三次样条函数 600 ∷相关函数:cubic_spline_third函数 2.9.10 二元三点插值 604 范例2-104 二元三点插值 604 ∷相关函数:interpolation_point函数 2.9.11 二元全区间插值 606 范例2-105 二元全区间插值 606 ∷相关函数:interpolation_total函数 2.9.12 最小二乘曲线拟合 608 范例2-106 最小二乘曲线拟合 608 ∷相关函数:least_squares_fitting函数 2.9.13 切比雪夫曲线拟合 611 范例2-107 切比雪夫曲线拟合 611 ∷相关函数:chebyshev_fitting函数 2.9.14 最佳一致逼近的里米兹方法 614 范例2-108 最佳一致逼近的里米兹方法 614 ∷相关函数:remez_method函数 2.9.15 矩形域的最小二乘曲面拟合 616 范例2-109 矩形域的最小二乘曲面拟合 616 ∷相关函数:rec_fitting函数 2.10 数值积分 621 2.10.1 变步长梯形求积法 621 范例2-110 变步长梯形求积法 621 ∷相关函数:integration_ladder函数 2.10.2 变步长辛卜生求积法 623 范例2-111 变步长辛卜生求积法 623 ∷相关函数:integration_simpson函数 2.10.3 自适应梯形求积法 624 范例2-112 自适应梯形求积法 624 ∷相关函数:integration_self_adaptive函数 2.10.4 龙贝格求积法 626 范例2-113 龙贝格求积法 626 ∷相关函数:integration_romberg函数 2.10.5 计算一维积分的连分式法 627 范例2-114 计算一维积分的连分式法 627 ∷相关函数:continued_fractions函数 2.10.6 高振荡函数求积法 629 范例2-115 高振荡函数求积法 629 ∷相关函数:higher_oscillatory_integration函数 2.10.7 勒让德—高斯求积法 631 范例2-116 勒让德—高斯求积法 631 ∷相关函数:legendre_gauss函数 2.10.8 拉盖尔—高斯求积法 633 范例2-117 拉盖尔—高斯求积法 633 ∷相关函数:laguerre_gauss函数 2.10.9 埃尔米特—高斯求积法 634 范例2-118 埃尔米特—高斯求积法 634 ∷相关函数:hermite_gauss函数 2.10.10 切比雪夫求积法 635 范例2-119 切比雪夫求积法 635 ∷相关函数:chebyshev函数 2.10.11 计算一维积分的蒙特卡洛法 637 范例2-120 计算一维积分的蒙特卡洛法 637 ∷相关函数:monte_carlo函数 2.10.12 变步长辛卜生二重积分法 638 范例2-121 变步长辛卜生二重积分法 638 ∷相关函数:simpson函数 2.10.13 计算多重积分的高斯方法 640 范例2-122 计算多重积分的高斯方法 640 ∷相关函数:gauss函数 2.10.14 计算二重积分的连分式法 643 范例2-123 计算二重积分的连分式法 643 ∷相关函数:continued_fractions_dual函数 2.10.15 计算多重积分的蒙特卡洛法 645 范例2-124 计算多重积分的蒙特卡洛法 645 ∷相关函数:monte_carlo_multi函数 2.11 常微分方程组的求解 647 2.11.1 全区间积分的定步长欧拉方法 647 范例2-125 全区间积分的定步长欧拉方法 647 ∷相关函数:euler_step函数.. 2.11.2 积分一步的变步长欧拉方法 649 范例2-126 积分一步的变步长欧拉方法 649 ∷相关函数:euler_variable函数 2.11.3 全区间积分的维梯方法 651 范例2-127 全区间积分的维梯方法 651 ∷相关函数:witty函数 2.11.4 全区间积分的定步长龙格—库塔方法 653 范例2-128 全区间积分的定步长龙格—库塔方法实例位置 653 ∷相关函数:runge_kutta函数 2.11.5 积分一步的变步长龙格—库塔方法 655 范例2-129 积分一步的变步长龙格—库塔方法实例位置 655 ∷相关函数:runge_kutta_steps函数 2.11.6 积分一步的变步长基尔方法 657 范例2-130 积分一步的变步长基尔方法 657 ∷相关函数:gill函数 2.11.7 全区间积分的变步长默森方法 659 范例2-131 全区间积分的变步长默森方法 659 ∷相关函数:merson函数 2.11.8 积分一步的连分式法 662 范例2-132 积分一步的连分式法 662 ∷相关函数:continued_step函数 2.11.9 全区间积分的双边法 665 范例2-133 全区间积分的双边法 665 ∷相关函数:bilateral函数 2.11.10 全区间积分的阿当姆斯预报校正法 668 范例2-134 阿当姆斯预报校正法 668 ∷相关函数:adams函数 2.11.11 全区间积分的哈明方法 671 范例2-135 全区间积分的哈明方法 671 ∷相关函数:hamming函数 2.11.12 积分一步的特雷纳方法 675 范例2-136 积分一步的特雷纳方法 675 ∷相关函数:treanor函数 2.11.13 二阶微分方程边值问题的数值解法 678 范例2-137 二阶微分方程边值问题的数值解法 678 ∷相关函数:finite_difference函数 2.12 数据处理与回归分析 680 2.12.1 随机样本分析 680 范例2-138 随机样本分析 680 ∷相关函数:rndsplanalysis函数 2.12.2 一元线性回归分析 683 范例2-139 一元线性回归分析 683 ∷相关函数:liregression函数 2.12.3 多元线性回归分析 685 范例2-140 多元线性回归分析 685 ∷相关函数:mulliregression函数 2.12.4 半对数数据相关 688 范例2-141 半对数数据相关 688 ∷相关函数:fittinglogt函数 2.12.5 对数数据相关 690 范例2-142 对数数据相关 690 ∷相关函数:fittingln函数 2.13 极值问题的求解 691 2.13.1 一维极值连分式法 691 范例2-143 一维极值连分式法 691 ∷相关函数:extremum函数 2.13.2 n维极值连分式法 693 范例2-144 n维极值连分式法 693 ∷相关函数:nextremum函数 2.13.3 不等式约束线性规划问题 696 范例2-145 不等式约束线性规划问题 696 ∷相关函数:linearprogram函数 2.14 数学变换与滤波 700 2.14.1 傅里叶级数逼近 700 范例2-146 傅里叶级数逼近 700 ∷相关函数:seriesfour函数 2.14.2 快速傅里叶变换 702 范例2-147 快速傅里叶变换 702 ∷相关函数:quickfft函数 2.14.3 快速沃什变换 705 范例2-148 快速沃什变换 705 ∷相关函数:quickfwt函数 2.14.4 五点三次平滑 706 范例2-149 五点三次平滑 706 ∷相关函数:smoothness函数 2.14.5 卡尔曼滤波 708 范例2-150 卡尔曼滤波 708 ∷相关函数:kalfilter函数 2.14.6 α-β-γ滤波 713 范例2-151 α-β-γ滤波 713 ∷相关函数:alphabgfilter函数 2.15 特殊函数 714 2.15.1 Gamma函数 715 范例2-152 Gamma函数 715 ∷相关函数:Gamma函数 2.15.2 不完全Gamma函数 716 范例2-153 不完全Gamma函数 716 ∷相关函数:incomgam函数 2.15.3 误差函数 719 范例2-154 误差函数 719 ∷相关函数:errorfun函数 2.15.4 第一类整数Bessel函数 721 范例2-155 第一类整数Bessel函数 721 ∷相关函数:bessel1函数 2.15.5 第二类整数Bessel函数 724 范例2-156 第二类整数Bessel函数 724 ∷相关函数:bessel2函数 2.15.6 变形第一类整数Bessel函数 727 范例2-157 变形第二类整数Bessel函数 727 ∷相关函数:varbessel1函数 2.15.7 变形第二类整数Bessel函数 729 范例2-158 变形第二类整数Bessel函数 729 ∷相关函数:varbessel2函数 2.15.8 不完全Beta函数 734 范例2-159 不完全Beta函数 734 ∷相关函数:beta函数 2.15.9 正态分布函数 736 范例2-160 正态分布函数 736 ∷相关函数:gauss函数 2.15.10 t-分布函数 739 范例2-161 t-分布函数 739 ∷相关函数:tdistribution函数 2.15.11 2-分布函数 742 范例2-162 2-分布函数 742 ∷相关函数:xdistribution函数 2.15.12 F-分布函数 744 范例2-163 F-分布函数 744 ∷相关函数:fdistribution函数 2.15.13 正弦积分 747 范例2-164 正弦积分 747 ∷相关函数:sinintegral函数 2.15.14 余弦积分 749 范例2-165 余弦积分 749 ∷相关函数:cosintegral函数 2.15.15 指数积分 750 范例2-166 指数积分 750 ∷相关函数:expintegral函数 2.15.16 第一类椭圆积分 752 范例2-167 第一类椭圆积分 752 ∷相关函数:ellipseintegral1函数 2.15.17 第二类椭圆积分 754 范例2-168 第二类椭圆积分 754 ∷相关函数:ellipseintegral2函数 2.16 本章小结 756 第3章 图形图像处理 757 3.1 字符屏幕 758 3.1.1 文本的输入与输出 758 范例3-1 文本的输入与输出 758 ∷相关函数:printf函数 scanf函数 3.1.2 outtext、outtextxy函数输出 759 范例3-2 outtext, outtextxy函数输出 759 ∷相关函数:outtext函数 outtextxy函数 3.1.3 设置文本格式 761 范例3-3 设置文本格式 761 ∷相关函数:settextstyle函数 3.1.4 设置图形文本排列方式 763 范例3-4 设置图形文本排列方式 763 ∷相关函数:settextjustify函数 3.1.5 设置用户字符比例 765 范例3-5 设置用户字符比例 765 ∷相关函数:setusercharsize函数 3.1.6 控制文本的明暗度 766 范例3-6 控制文本的明暗度 766 ∷相关函数:highvideo函数 normvideo函数 lowvideo函数 3.1.7 设置文本的前景色和背景色 767 范例3-7 设置文本的前景色和背景色 767 ∷相关函数:textcolor函数 textbackground函数 3.1.8 字符窗口 770 范例3-8 字符窗口 770 ∷相关函数:clrscr函数 window函数 gotoxy函数 3.1.9 清除光标行尾字符 772 范例3-9 清除光标行尾字符 772 ∷相关函数:clreol函数 3.1.10 插入与删除行 773 范例3-10 插入与删除行 773 ∷相关函数:insline函数 delline函数 3.1.11 屏幕参数检测 774 范例3-11 屏幕参数检测 774 ∷相关函数:getgraphmode函数 getmaxx函数 getmaxy函数 getmaxcolor函数 cleardevice函数 3.2 图形图像处理基础 777 3.2.1 绘制像素点 777 范例3-12 绘制像素点 777 ∷相关函数:putpixel函数 3.2.2 绘制直线 778 范例3-13 绘制直线 778 ∷相关函数:line函数 lineto函数 linerel函数 moveto函数 moverel函数 3.2.3 绘制矩形 780 范例3-14 绘制矩形 780 ∷相关函数:rectangle函数 3.2.4 绘制多边形 781 范例3-15 绘制多边形 781 ∷相关函数:drawpoly函数 3.2.5 绘制圆 783 范例3-16 绘制圆 783 ∷相关函数:circle函数 3.2.6 绘制椭圆 784 范例3-17 绘制椭圆 784 ∷相关函数:ellipse函数 fillellipse函数 3.2.7 绘制圆弧 786 范例3-18 绘制圆弧 786 ∷相关函数:arc函数 3.2.8 绘制扇区 787 范例3-19 绘制扇区 787 ∷相关函数:pieslice函数 sector函数 3.2.9 绘制条块 788 范例3-20 绘制条块 788 ∷相关函数:bar函数 bar3d函数 3.2.10 图设置线型 790 范例3-21 设置线型 790 ∷相关函数:Setlinestyle函数 3.2.11 绘制填充矩形 792 范例3-22 绘制填充矩形 792 ∷相关函数:setfillstyle函数 floodfill函数 3.2.12 填充多边形 795 范例3-23 填充多边形 795 ∷相关函数:fillpoly函数 3.2.14 设置用户图样 796 范例3-24 设置用户图样 796 ∷相关函数:setfillpattern函数 3.3 图形图像处理进阶 798 3.3.1 绘制彩色点云 798 范例3-25 绘制彩色点云 798 ∷相关函数:rand函数 kbhit函数 3.3.2 绘制正多边形 799 范例3-26 绘制正多边形 799 ∷相关函数:sin函数 cos函数 3.3.3 图形法绘制圆 801 范例3-27 图形法绘制圆 801 ∷相关函数:drawCircle函数 3.3.4 图形法绘制椭圆 803 范例3-28 图形法绘制椭圆 803 ∷相关函数:ellipse1函数 3.3.5 绘制正弦曲线 805 范例3-29 绘制正弦曲线 805 ∷相关函数:lineto函数 3.3.6 绘制抛物样条曲线 806 范例3-30 绘制抛物样条曲线 806 ∷相关函数:parspl函数 marking函数 3.3.7 绘制布朗曲线 809 范例3-31 绘制布朗曲线 809 ∷相关函数:CreateFractalImage函数 Gauss函数 3.3.8 动态绘制256色线条 811 范例3-32 动态绘制256色线条 811 ∷相关函数:int86函数 3.3.9 三原色亮度渐变 813 范例3-33 三原色亮度渐变 813 ∷相关函数:geninterrupt函数 3.3.10 三视图模拟 815 范例3-34 三视图模拟 815 ∷相关函数:front_view函数 top_view函数 left_view函数 perspective_view函数 3.3.11 空间椭球模拟 817 范例3-35 空间椭球模拟 817 ∷相关函数:trans函数 draw函数 3.3.12 百叶窗效果 820 范例3-36 百叶窗效果 820 ∷相关函数:putpoint函数 3.3.13 视觉欺骗 822 范例3-37 视觉欺骗 822 ∷相关函数:dot函数 circ函数 bulb函数 3.3.14 三维建筑物 824 范例3-38 三维建筑物 824 ∷相关函数:liner函数 rightlead函数 leftlead函数 shadow函数 identifier函数 3.4 组合图案绘制 830 3.4.1 一箭穿心图案 830 范例3-39 重新打开文件流 830 ∷相关函数:draw函数 arrow函数 3.4.2 六叶图案 832 范例3-40 六叶图案 832 ∷相关函数:arc函数 3.4.3 花瓣形图案 833 范例3-41 花瓣形图案 833 ∷相关函数:line函数 3.4.4 雪花图案 835 范例3-42 雪花图案 835 ∷相关函数:setviewport函数 3.4.5 布艺图案 837 范例3-43 布艺图案 837 ∷相关函数:fractal函数 3.4.6 飘带图案 838 范例3-44 飘带图案 838 ∷相关函数:line函数 3.4.7 金刚石图案 840 范例3-45 金刚石图案 840 ∷相关函数:line函数 3.4.8 圆环图案 841 范例3-46 圆环图案 841 ∷相关函数:circles函数 3.4.9 肾型图案 843 范例3-47 肾型图案 843 ∷相关函数:circle函数 3.4.10 心脏型图案 844 范例3-48 心脏型图案 844 ∷相关函数:circle函数 3.4.11 鱼图案 846 范例3-49 重新打开文件流 846 ∷相关函数:arc函数 3.4.12 沙丘图案 848 范例3-50 沙丘图案 848 ∷相关函数:lineto函数 3.4.13 正六边形螺旋图案 849 范例3-51 正六边形螺旋图案 849 ∷相关函数:polygonc函数 3.4.14 正方形螺旋拼块图案 851 范例3-52 正方形螺旋拼块图案 851 ∷相关函数:polygonc函数 block函数 3.4.15 递归法绘制三角形图案 853 范例3-53 递归法绘制三角形图案 853 ∷相关函数:elli函数 3.4.16 玫瑰图案 855 范例3-54 玫瑰图案 855 ∷相关函数:elli函数 draw函数 3.4.17 天空图案 859 范例3-55 天空图案 859 ∷相关函数:int86函数 3.4.18 Mandelbrot分形图案 864 范例3-56 Mandelbrot分形图案 864 ∷相关函数:mandelbrot函数 iterate函数 3.5 窗体界面与报表设计 866 3.5.1 窗体设计 866 范例3-57 窗体设计 866 ∷相关函数:mainform函数 windowborder函数 controls函数 3.5.2 简单菜单设计 871 范例3-58 简单菜单设计 871 ∷相关函数:initm函数 showItems函数 process 函数 process3函数 process1函数 3.5.3 制作表格 877 范例3-59 制作表格 877 ∷相关函数:putpixel函数 3.5.4 折线图 878 范例3-60 折线图 878 ∷相关函数:itoa函数 settextjustify函数 3.5.5 饼状图 880 范例3-61 饼状图 880 ∷相关函数:pieslice函数 3.5.6 柱状图 881 范例3-62 柱状图 881 ∷相关函数:Funscore函数 Drowxy 函数 Fundrow函数 3.6 动画制作 884 3.6.1 旋转的立体椭球 884 范例3-63 旋转的立体椭球 884 ∷相关函数:setactivepage函数 setvisualpage函数 3.6.2 小球碰撞演示 887 范例3-64 小球碰撞演示 887 ∷相关函数:imagsize函数 getimage函数 putimage函数 3.6.3 飘动的旗帜 889 范例3-65 飘动的旗帜 889 ∷相关函数:hor_wave_line函数 ver_wave_line函数 3.6.4 行驶中的小车 891 范例3-66 行驶中的小车 891 ∷相关函数:imagsize函数 getimage函数 putimage函数 3.6.5 不停动嘴巴的头 893 范例3-67 不停动嘴巴的头 893 ∷相关函数:getaspectratio函数 setaspectratio函数 setactivepage函数 setvisualpage函数 3.6.6 旋转的太极图 898 范例3-68 旋转的太极图 898 ∷相关函数:getpalette函数 sector函数 3.6.7 螺旋运动的圆斑 901 范例3-69 螺旋运动的圆斑 901 ∷相关函数:drawgoal函数 3.6.8 闪动的彩色圆斑 903 范例3-70 闪动的彩色圆斑 903 ∷相关函数:drawgoal函数 3.6.9 奔跑的小人 904 范例3-71 奔跑的小人 904 ∷相关函数:line函数 circle函数 3.6.10 发射火箭 907 范例3-72 发射火箭 907 ∷相关函数:DrawStar函数 DrawGun函数 DrawPlan函数 3.6.11 擦玻璃 911 范例3-73 擦玻璃 911 ∷相关函数:pieslice函数 bioskey函数 3.6.12 流星球 914 范例3-74 流星球 914 ∷相关函数:getimage函数 putimage函数 3.6.13 简单时钟 916 范例3-75 简单时钟 916 ∷相关函数:gettime函数 3.6.14 立体时钟 918 范例3-76 立体时钟 918 ∷相关函数:time函数 3.6.15 飘雪 920 范例3-77 飘雪 920 ∷相关函数:DrawSnow函数 Pr函数 3.6.16 制作火焰 923 范例3-78 制作火焰 923 ∷相关函数:outportb函数 pokeb函数 3.6.17 天体系统 926 范例3-79 天体系统 926 ∷相关函数:init_start函数 roll函数 3.6.18 扇动翅膀的蝴蝶 935 范例3-80 扇动翅膀的蝴蝶 935 ∷相关函数:putpixel函数 3.6.19 米奇 936 范例3-81 重新打开文件流 936 ∷相关函数:imagsize函数 getimage函数 putimage函数 3.7 本章小结 940 第4章 磁盘、目录和文件的操作 941 4.1 磁盘的操作 942 4.1.1 获取当前盘驱动器 942 范例4-1 获取当前盘驱动器 942 ∷相关函数:getdisk函数 4.1.2 设置当前驱动器 943 范例4-2 设置当前驱动器 943 ∷相关函数:setdisk函数 4.1.3 获取磁盘的可用空间 945 范例4-3 获取磁盘的可用空间 945 ∷相关函数:getdfree函数 4.1.4 测试软驱是否可用 946 范例4-4 测试软驱是否可用 946 ∷相关函数:biosdisk函数 4.2 目录的操作 948 4.2.1 创建目录 948 范例4-5 创建目录 948 ∷相关函数:mkdir函数 4.2.2 改变当前目录 950 范例4-6 改变当前目录 950 ∷相关函数:chdir函数 4.2.3 删除目录 952 范例4-7 删除目录 952 ∷相关函数:rmdir函数 4.3 文件的操作 953 4.3.1 用fopen函数打开文件 953 范例4-8 用fopen函数打开文件 953 ∷相关函数:fopen函数 4.3.2 打开系统temp目录中的文件 955 范例4-9 打开系统temp目录中的文件 955 ∷相关函数:getenv函数 4.3.2 使用低级函数打开和关闭文件 957 范例4-10 使用低级函数打开和关闭文件 957 ∷相关函数:open函数 close函数 4.3.3 用fclose函数关闭文件 959 范例4-11 用fclose函数关闭文件 959 ∷相关函数:fclose函数 4.3.4 一次性关闭所有被打开的文件 961 范例4-12 一次性关闭所有被打开的文件 961 ∷相关函数:fcloseall函数 4.3.5 以字符为单位读写文件 963 范例4-13 以字符为单位读写文件 963 ∷相关函数:fgetc函数 fputc函数 4.3.6 以字为单位读写文件 965 范例4-14 以字为单位读写文件 965 ∷相关函数:getw函数 putw函数 4.3.7 以低级的方式读写文件 967 范例4-15 以低级的方式读写文件 967 ∷相关函数:read函数 write函数 4.3.8 按结构读写文件 969 范例4-16 按结构读写文件 969 ∷相关函数:read函数 write函数 4.3.9 格式化写文件 971 范例4-17 格式化写文件 971 ∷相关函数:fprintf函数 4.3.10 格式化读文件 972 范例4-18 格式化读文件 972 ∷相关函数:fscanf函数 4.3.11 以行为单位写文件 974 范例4-19 以行为单位写文件 974 ∷相关函数:fputs函数 4.3.12 以行为单位读文件 975 范例4-20 以行为单位读文件 975 ∷相关函数:fgets函数 4.3.13 将缓冲区内容写入文件 977 范例4-21 将缓冲区内容写入文件 977 ∷相关函数:setbuf函数 4.3.14 用lseek函数定位文件指针 978 范例4-22 用lseek函数定位文件指针 978 ∷相关函数:lseek函数 4.3.15 获取文件流的文件句柄 980 范例4-23 获取文件流的文件句柄 980 ∷相关函数:fileno函数 4.3.16 从文件流指针中导出文件句柄 982 范例4-24 从文件流指针中导出文件句柄 982 ∷相关函数:fopen函数 4.3.17 利用eof函数判断文件是否结束 984 范例4-25 利用eof函数判断文件是否结束 984 ∷相关函数:eof函数 4.3.18 利用feof函数判断文件结尾 986 范例4-26 利用feof函数判断文件结尾 986 ∷相关函数:feof函数 4.3.19 刷新I/O流 988 范例4-27 刷新I/O流 988 ∷相关函数:fflush函数 4.3.20 利用tmpnam函数创建临时文件名 990 范例4-28 利用tmpnam函数创建临时文件名 990 ∷相关函数:tmpnam函数 4.3.21 创建真正的临时文件 992 范例4-29 创建真正的临时文件 992 ∷相关函数:tmpfile函数 4.3.22 创建文件 993 范例4-30 创建文件 993 ∷相关函数:creat函数 4.3.23 在指定目录中创建唯一文件 995 范例4-31 在指定目录中创建唯一文件 995 ∷相关函数:creattemp函数 4.3.24 利用creatnew函数创建新文件 996 范例4-32 利用creatnew函数创建新文件 996 ∷相关函数:creatnew函数 4.3.25 删除文件 998 范例4-33 删除文件 998 ∷相关函数:remove函数 4.3.26 查找文件获取文件的路径 1000 范例4-34 查找文件获取文件的路径 1000 ∷相关函数:searchpath函数 4.3.27 分解文件路径 1001 范例4-35 分解文件路径 1001 ∷相关函数:fnsplit函数 4.3.28 建立文件完全路径名 1003 范例4-36 建立文件完全路径名 1003 ∷相关函数:fnmerge 函数 4.3.29 读取文件分配表信息 1005 范例4-37 读取文件分配表信息 1005 ∷相关函数:getfat函数 getfatd函数 4.3.30 判断读写所在的文件的位置 1007 范例4-38 判断读写所在的文件的位置 1007 ∷相关函数:ftell函数 4.3.31 重命名文件 1009 范例4-39 重命名文件 1009 ∷相关函数:rename函数 4.3.32 判断访问文件的模式 1011 范例4-40 判断访问文件的模式 1011 ∷相关函数:access函数 4.3.34 设置文件访问模式 1013 范例4-41 设置文件访问模式 1013 ∷相关函数:chmod函数 4.3.35 显示文件的属性 1015 范例4-42 显示文件的属性 1015 ∷相关函数:_chmod函数 4.3.36 检测文件流的错误 1017 范例4-43 检测文件流的错误 1017 ∷相关函数:ferror函数 4.3.37 判断文件的长度 1019 范例4-44 判断文件的长度 1019 ∷相关函数:filelength函数 4.3.38 通过句柄设置打开文件的方式 1022 范例4-45 通过句柄设置打开文件的方式 1022 ∷相关函数:setmode函数 4.3.39 读取文件的时间和日期标记 1023 范例4-46 读取文件的时间和日期标记 1023 ∷相关函数:getftime函数 4.3.40 设置文件的时间和日期标记 1026 范例4-47 设置文件的时间和日期标记 1026 ∷相关函数:setftimet函数 4.3.41 改变文件的长度 1028 范例4-48 改变文件的长度 1028 ∷相关函数:chsize函数 4.3.42 控制文件打开操作的读写模式 1029 范例4-49 控制文件打开操作的读写模式 1029 ∷相关函数:umask函数 4.3.43 复制文件句柄 1032 范例4-50 复制文件句柄 1032 ∷相关函数:dup函数 4.3.44 强制复制文件句柄 1033 范例4-51 强制复制文件句柄 1033 ∷相关函数:dup2函数 4.3.45 用句柄判断读写所在的文件的位置 1036 范例4-52 用句柄判断当前文件指针的位置 1036 ∷相关函数:tell函数 4.3.46 根据当前位置定位文件指针 1038 范例4-53 根据当前位置定位文件指针 1038 ∷相关函数:fseek函数 4.3.47 获取文件句柄的信息 1039 范例4-54 获取文件句柄的信息 1039 ∷相关函数:fstat函数 4.3.48 重新打开文件流 1041 范例4-55 重新打开文件流 1041 ∷相关函数:freopen函数 4.4 本章小结 1043 第5章 系统调用 1045 5.1 时间和日期的操作 1046 5.1.1 获取当前的时间和日期 1046 范例5-1 获取当前时间和日期 1046 ∷相关函数:time函数 5.1.2 让程序延时指定的时间段 1047 范例5-2 让程序延时指定的时间段 1047 ∷相关函数:delay函数 5.1.3 比较两个时间 1048 范例5-3 比较两个时间 1048 ∷相关函数:difftime函数 5.1.4 读BIOS计时器 1050 范例5-4 读BIOS计时器 1050 ∷相关函数:biostime函数 5.1.5 比较两个时间获取当地时间 1051 范例5-5 获取当地时间 1051 ∷相关函数:localtime函数 5.1.6 获取格林威治平时 1052 范例5-6 获取格林威治平时 1052 ∷相关函数:gmtime函数 5.1.7 获取DOS系统时间 1054 范例5-7 获取DOS系统时间 1054 ∷相关函数:gettime函数 5.1.8 获取DOS系统日期 1055 范例5-8 获取DOS系统日期 1055 ∷相关函数:getdate函数 5.1.9 设置DOS系统时间 1057 范例5-9 设置DOS系统时间 1057 ∷相关函数:settime函数 5.1.10 设置DOS系统日期 1059 范例5-10 设置DOS系统日期 1059 ∷相关函数:setdate函数 5.1.11 获取时区信息 1061 范例5-11 获取时区信息 1061 ∷相关函数:ftime函数 5.2 BIOS的操作 1062 5.2.1 利用BIOS获取打印机的状态 1062 范例5-12 利用BIOS获取打印机的状态 1062 ∷相关函数:biosprint函数 5.2.2 获取Ctrl+Break信息 1064 范例5-13 获取CTRL+BREAK信息 1064 ∷相关函数:getcbrk函数 5.2.3 暂时挂起程序 1066 范例5-14 暂时挂起程序 1066 ∷相关函数:sleep函数 5.2.4 控制声音 1067 范例5-15 控制声音 1067 5.2.5 利用bdos函数访问DOS服务 1068 范例5-16 利用bdos函数访问DOS服务 1068 ∷相关函数:bdos函数 5.2.6 获取BIOS常规内存数量 1071 范例5-17 获取BIOS常规内存数量 1071 ∷相关函数:biosmemory函数 5.2.7 获取寄存器设置信息 1072 范例5-18 获取寄存器设置信息 1072 ∷相关函数:segread函数 5.3 内存的操作 1074 5.3.1 给内存区域赋值 1074 范例5-19 给内存区域赋值 1074 ∷相关函数:memset函数 5.3.2 获取时区信息复制内存区域 1076 范例5-20 复制内存区域 1076 5.3.3 复制内存区域指定的字节 1078 范例5-21 复制内存区域指定的字节 1078 ∷相关函数:memccpy函数 5.3.4 获取时区信息 1080 范例5-22 比较两个无符号字符数组 1080 5.3.5 交换字符串的两个相邻字节内容 1082 范例5-23 交换字符串的两个相邻字节内容 1082 ∷相关函数:swab函数 5.3.6 利用brk函数改变堆的大小 1084 范例5-24 利用brk函数改变堆的大小 1084 ∷相关函数:brk函数 5.3.7 获取指定内存单元内容 1086 范例5-25 获取指定内存单元内容 1086 5.3.8 设置指定内存单元内容 1088 范例5-26 设置指定内存单元内容 1088 5.4 本章小结 1090 索引... 1091
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑运算符 14 实例8 位运算符 15 实例9 移位运算符 16 实例10 转型运算符 17 2.3 其他形式 18 实例11 常量与变量 18 实例12 各种进制的转换 19 实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列出素数 29 实例18 Java中的递归 31 实例19 男生女生各多少人 32 实例20 求水仙花数 34 实例21 求任意一个正数的阶乘 35 实例22 求n的n次方 35 实例23 利用for循环输出几何图形 36 实例24 杨辉三角 38 3.3 while语句 39 实例25 求1到100之间的和 39 实例26 存上100元需要多少天 40 实例27 输出100之间的所有偶数 41 实例28 如何判断回文数字 42 3.4 do…while语句 43 实例29 输出100之间的所有奇数 44 实例30 求最大的随机数 44 3.5 switch语句 45 实例31 判断字母分类 46 实例32 优良及差 47 实例33 打印任意一年日历 48 实例34 一年四季的划分 51 第2篇 Java数据处理 第4章 异常处理(教学视频:62分钟) 54 4.1 编译时异常 54 实例35 除0发生的算术异常(ArithmeticException) 54 实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37 数组元素类型不匹配异常(ArrayStoreException) 56 实例38 强制类型转换异常(ClassCastException) 56 实例39 索引越界异常(IndexOutOfBoundsException) 57 实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的方法不存在(NoSuchMethodException) 63 4.3 try…catch捕获异常 65 实例46 try…catch捕获异常的实例 66 实例47 try…catch…finally捕获异常的实例 67 实例48 try…catch嵌套捕获异常的实例 68 4.4 throws声明异常 69 实例49 throws声明异常实例一 69 实例50 throws声明异常实例二 70 4.5 throw抛出异常 72 实例51 throw抛出异常实例一 72 实例52 throw抛出异常实例二 73 4.6 自定义异常 74 实例53 自定义异常实例一 74 实例54 自定义异常实例二 75 第5章 数组(教学视频:98分钟) 78 5.1 一维数组 78 实例55 一维数组的创建与使用 78 实例56 按相反的顺序输出 79 实例57 奇偶分组 80 实例58 找宝 81 实例59 寻找最小数 82 实例60 我的位置在哪里 83 实例61 复制数组 85 实例62 插入新元素 86 实例63 数组的合并 87 实例64 去除重复元素 88 实例65 数组求和计算 90 实例66 求最大值、最小值和平均值 91 5.2 二维数组 92 实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 实例73 快递报价单 99 5.3 数组的排序 101 实例74 冒泡排序法 102 实例75 数组递增排序 103 实例76 部分数组递增排序 103 实例77 选择排序法 104 实例78 快速排序法 106 第6章 字符串(教学视频:138分钟) 108 6.1 字符串类String 108 实例79 创建字符串类 108 实例80 如何使用charAt()方法计算重复字符 109 实例81 按字母顺序比较大小 110 实例82 首尾相连 111 实例83 字符串间的比较 112 实例84 字符集的解码方法 113 实例85 寻找指定字符第一次出现的位置 114 实例86 寻找指定字符最后出现的位置 115 实例87 我究竟有多长 116 实例88 替换指定的字符 117 实例89 分割字符串 117 实例90 如何使用substring()方法截取子串 118 实例91 分解字符串 119 实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这一天是星期几 125 实例99 大小写互换 127 实例100 输出指定范围的素数 128 实例101 我出现了几次 129 实例102 算术表达式求值器 129 实例103 字符串对齐调整器 137 实例104 字符串的加密 139 实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的字符串 146 实例111 获取字符串的子串 147 实例112 删除指定的字符 148 实例113 倒置字符串 149 实例114 去除重复字符 149 实例115 检查是否是回文 151 第7章 输入/输出流(教学视频:116分钟) 152 7.1 文件和目录 152 实例116 显示文件的基本信息 152 实例117 显示目录的基本信息 153 实例118 在指定的目录下创建单个文件 156 实例119 在指定的目录下创建多个临时文件 158 实例120 删除指定目录下的文件 160 实例121 移动指定目录下的文件 163 实例122 文件搜索引挚 167 7.2 字节流 169 实例123 复制指定目录下的文件 170 实例124 显示文件中的内容 173 实例125 将数据保存到指定的文件中 175 实例126 将由键盘中录入的信息保存到文件中 176 实例127 一个文件变成多个小文件 178 实例128 多个小文件合成一个文件 181 实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel文件中的内容 198 实例136 生成PDF文件 199 实例137 读取PDF文件中的内容 203 实例138 用iText生成Word文件 205 实例139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实例140 按顺序创建文件 210 实例141 按顺序读取文件 211 实例142 追加文件内容 211 实例143 只显示文件中指定的字符 214 实例144 读取jar包文件 215 实例145 文件的加密/解密操作 217 实例146 复制图片 219 实例147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的通讯录类 226 实例149 简单的长度单位转换类 227 实例150 卡车和卡车司机之间的关系 229 实例151 双色球 231 8.2 成员变量和方法 236 实例152 使用类作为成员变量 236 实例153 构造方法 237 实例154 使用静态成员变量计算内存中实例化的对象数目 239 实例155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实例156 Singleton单例模式 242 实例157 招聘(简单工厂模式) 243 实例158 同学聚(工厂方法模式) 244 实例159 图书展(抽象工厂模式) 246 实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求自定义几何图形的面积和周长 252 实例163 使用抽象方法实现的支票夹 254 9.2 封装 257 实例164 世界小姐参赛资格 257 实例165 自定义复数类 261 9.3 继承 264 实例166 轿车与本田的关系 264 实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 一张考试成绩单 275 实例172 银行自动存取一体机 278 9.4 多态 284 实例173 饮食文化 284 实例174 使用构造方法的重载计算课程的GPA值 287 第10章 内部类与接口(教学视频:41分钟) 290 10.1 成员内部类 290 实例175 成员内部类的使用规范 290 实例176 猜谜 292 10.2 方法内部类 294 实例177 局部内部类的使用规范 294 实例178 奖学金的评分标准 295 10.3 匿名内部类 297 实例179 匿名内部类的使用规范 297 实例180 电话与移动电话 299 10.4 静态内部类 300 实例181 静态内部类的使用规范 300 实例182 苹果的来历 302 10.5 接口 303 实例183 求n的幂数与倍数 304 实例184 商品订单 306 实例185 多功能排序 310 第11章 Java常用类(教学视频:66分钟) 315 11.1 数学Math类 315 实例186 求圆周率∏值 315 实例187 求对数值 316 实例188 使用取整函数 317 11.2 Random类的使用 318 实例189 随机数 319 实例190 验证码 322 11.3 Date类和Calendar类 324 实例191 使用Date类获取系统的当前时间 324 实例192 使用DateFormat类获取系统的当前时间 325 实例193 使用GregorianCalendar类获取系统的当前时间 326 实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 334 实例198 万年历(农历和阳历的互换) 337 11.4 Formatter类的使用 347 实例199 时间格式转换符的使用 347 实例200 数据格式转换符的使用 349 11.5 System类的使用 351 实例201 记录程序执行的时间 351 实例202 程序的退出 352 实例203 获取程序运行环境的信息 353 第4篇 Java高级开发技术 第12章 集合(教学视频:45分钟) 358 12.1 Set 358 实例204 利用HashSet删除学生 358 实例205 不重复的随机数序列 360 实例206 运用映射的相关类(Map) 363 实例207 运用集的相关类(Set) 365 12.2 List 368 实例208 增加所需的元素 368 实例209 Iterator迭代器的使用 370 实例210 谁是幸运儿 371 实例211 自定义Queue队列 373 实例212 List、Set与Array之间的相互转换 375 实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector 397 实例221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) 405 13.1 多线程的五种基本状态 405 实例222 启动线程 405 实例223 参赛者的比赛生活(线程休眠唤醒) 407 实例224 资源搜索并下载(线程等待和通报) 410 实例225 模拟淘宝购物买卖双方交易问题 412 实例226 携子之手 与子偕老(join) 415 实例227 线程让步(Yield) 417 实例228 走动的钟(多线程) 419 实例229 变形金刚中的守护神(守护线程) 424 实例230 查看JVM中所有的线程的活动状况 426 实例231 模仿络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) 444 实例236 门锁终于被打开了(解决死锁) 446 实例237 一个死锁的例子 448 13.3 线程的优先级 451 实例238 排座位(线程优先级) 451 实例239 赛车 454 13.4 定时器 458 实例240 定时器(Timer) 458 实例241 数字定时器 459 13.5 线程连接池 462 实例242 手术任务(线程池) 462 实例243 模拟人工服务台(线程连接池) 466 13.6 线程应用实例 471 实例244 下雪的村庄 472 实例245 小飞侠 474 实例246 飞流直下 477 实例247 多线程断点续传 479 实例248 滚动的珠子 485 实例249 余额查询 489 实例250 滚动的文字 492 实例251 漂浮效果 495 实例252 监视内存的使用情况 499 实例253 璀璨的星空 501 实例254 银行和超市业务的模拟 505 第14章 泛型(教学视频:43分钟) 511 14.1 泛型基础 511 实例255 一个关于泛型的简单例子 511 实例256 带两个类型参数的泛型 513 实例257 有界类型程序示例 514 实例258 通配符使用示例 515 实例259 泛型方法使用示例 516 实例260 泛型接口示例 518 实例261 泛型实现坐标打印 519 14.2 泛型类的继承 521 实例262 继承泛型类示例 521 实例263 继承非泛型类示例 522 实例264 泛型类的类型识别示例 523 实例265 强制类型转换示例 525 14.3 擦拭 526 实例266 无限界的擦拭 526 实例267 有限界的擦拭 527 14.4 集合泛型类 528 实例268 Hashtable的泛型化 528 实例269 多功能画笔 529 第15章 络编程(教学视频:52分钟) 534 15.1 IP地址 534 实例270 获取计算机名与IP地址 534 实例271 获取址的IP地址 535 实例272 判断两个址的主机名是否一样 536 实例273 测试IP的类型 537 实例274 查找主机 538 实例275 主机所支持的协议 539 15.2 URL类的使用 540 实例276 使用URL访问页 540 实例277 URL的组成部分 541 实例278 通过指定的URL可以获取页的源代码 542 实例279 一对多通信模式 544 实例280 自制浏览器 549 实例281 扫描TCP端口 551 实例282 TCP协议服务器 552 实例283 TCP协议客户机 553 实例284 Socket连接信息 555 实例285 Echo服务的客户端是如何实现的? 556 实例286 检测本机的服务端口 558 实例287 下载的页面不丢失链接 559 实例288 如何对页进行重新定向 560 实例289 在Internet上搜索对象 560 实例290 LAN使用代理服务器 562 实例291 BBS论坛服务器端 567 实例292 UDP报文的发送与接收 579 第16章 数据库技术(教学视频:38分钟) 583 实例293 加载JDBC驱动程序 583 实例294 通过JDBC对数据库进行查询 584 实例295 数据库更新 585 实例296 获取数据库的基本信息 586 实例297 获取数据库对SQL支持的信息 589 实例298 处理访问数据库出现的常见异常情况 591 实例299 在Servlet中连接数据库 593 实例300 数据分页显示 595 实例301 批处理 601 实例302 事物处理 604 实例303 调用存储过程 608 实例304 连接ODBC数据库 611 实例305 数据库中图片文件的存取 614 第17章 界面设计--Swing(教学视频:88分钟) 618 17.1 Swing组件介绍及应用 618 实例306 JFrame框架的应用 618 实例307 Border的使用 619 实例308 使用Icon组件显示一张图片 620 实例309 Icon接口的应用 621 实例310 JLabel组件 622 实例311 Icon应用到JLabel中 623 实例312 JButton的使用 624 实例313 在JButton上设置快捷键 625 实例314 设置默认按钮 626 实例315 使用JCheckBox组件 627 实例316 JCheckBox事件处理 629 实例317 JRadioButton的使用 630 实例318 JComboBox的使用 632 实例319 利用ComboModel构造JComboBox 633 实例320 DefaultComboBoxModel的使用 635 实例321 建立有图像的JComboBox 636 实例322 建立可自行输入的JComboBox 637 实例323 JComboBox的事件处理 638 实例324 JTextField组件的使用 640 实例325 使用JTextArea组件 641 17.2 页面布局及事件监听 642 实例326 BorderLayout版面布局 643 实例327 FlowLayout布局管理 644 实例328 应用GridLayout设计版面 645 实例329 如何使用BoxLayout布局管理器 647 实例330 使用ActionEvent监听组件 648 实例331 使用WindowAdapter实现鼠标事件 649 实例332 使用MouseMotionListener监听鼠标 650 实例333 使用KeyListener监听键盘 652 17.3 组件的综合应用 654 实例334 计算器 654 实例335 创建树菜单 657 实例336 在节点中显示详细信息 658 第18章 Applet小应用程序(教学视频:39分钟) 662 实例337 不断变大的文字 662 实例338 灯光扫描的效果 664 实例339 字体逐渐展开的效果 666 实例340 飞舞的气球 668 实例341 逐渐浮现的图片 671 实例342 火焰边框的特效 674 实例343 局部放大效果 677 实例344 水波荡漾的效果 679 实例345 漫天飞花 682 实例346 动感影集 685 实例347 彩虹字 688 实例348 多功能按键 690 第19章 多媒体与图像处理(教学视频:51分钟) 694 19.1 多媒体 694 实例349 测试音频播放器 694 实例350 测试视频播放器 696 实例351 视频反色效果 698 实例352 实现一个录音机 703 实例353 建立一个调色板 707 19.2 图像处理 710 实例354 在计算机内存中创建一个图像 710 实例355 移动的图像 712 实例356 将图片进行180度旋转 714 实例357 处理图像的明暗度 716 实例358 如何将彩色图转化为灰度图 721 实例359 锐化和模糊图像 724 实例360 显示一个图像的轮廓 727 实例361 如何放大及拉伸图像 730 第20章 JSP开发技术(教学视频:62分钟) 735 20.1 JSP基础 735 实例362 页版的9×9乘法口诀 735 实例363 Java Servlet小程序 737 实例364 Servlet对表单的处理过程 738 实例365 获取/修改JavaBeans中的内容 741 20.2 JSP程序设计 743 实例366 喜连大三元 743 实例367 运气对对碰 748 实例368 文字样式统计器 752 实例369 图形统计器 754 20.3 垃圾信息投诉站 756 实例370 创建投诉表单 756 实例371 保存投诉的内容 760 实例372 实现投诉站的后台操作 762 实例373 取消投诉内容 764 实例374 站内信 767 20.4 站在线评估系统 769 实例375 创建评估问卷 769 实例376 实现评估的后台操作 771 实例377 查看评估结果 773 第5篇 Java综合案例 第21章 模拟服务器与客户端之间的通信(教学视频:13分钟) 778 21.1 实例介绍 778 21.2 框架设计 779 21.2.1 项目的总体结构 779 21.2.2 搭建开发环境 779 21.2.3 确定项目工程目录 779 21.3 公用模块设计 780 21.4 客户端程序 780 21.4.1 客户端的工作流程 780 21.4.2 编写客户端的源程序 781 21.4.3 客户端源的程序解读 783 21.5 服务器端程序 785 21.5.1 服务器端的工作流程 785 21.5.2 编写服务器端的源程序 785 21.5.3 服务器端的源程序解读 788 21.6 小结 790 第22章 书店管理系统(教学视频:56分钟) 791 22.1 实例分析 791 22.2 系统设计 792 22.2.1 结构分析 792 22.2.2 搭建环境 792 22.2.3 创建目录 793 22.3 数据库设计 793 22.4 公用模块设计 795 22.4.1 data包中的类 795 22.4.2 util包中的类 798 22.5 用户登录模块 800 22.6 系统主界面 802 22.7 基础维护模块 804 22.7.1 图书维护 804 22.7.2 用户维护 811 22.8 借还管理模块 818 22.8.1 借书 818 22.8.2 还书 821 22.9 查询管理模块 824 22.9.1 图书查询 824 22.9.2 用户查询 826 22.10 系统管理模块 829 22.11 小结 831
内容简介 本书全面介绍了应用C语言进行开发的各种技术和技巧,全书共分12章,内容包括基础知识、指针、数据结构、算法、数学应用、文件操作、库函数应用、图形图像、系统调用、加解密与安全性、游戏、综合应用等。全书共提供300个实例,每个实例都突出了其实用性。   本书既可作为C程序的初学者学习用书,也可作为程序开发人员、相关培训机构老师和学生的参考用书。 第1章 基础知识 1 1.1 进制转换 2 实例001 十进制转换为十六进制 2 实例002 十进制转换为二进制 3 实例003 n进制转换为十进制 4 实例004 以IP地址形式输出 5 1.2 条件判断 6 实例005 3个数由小到大排序 6 实例006 a2+b2 8 实例007 整倍数 9 实例008 判断闰年 10 实例009 阶梯问题 11 实例010 评定成绩 12 实例011 整数加减法练习 13 实例012 模拟ATM机界面程序 14 1.3 多重循环打印图形 17 实例013 用#打印三角形 17 实例014 用*打印图形 18 实例015 绘制余弦曲线 20 实例016 打印乘法口诀表 21 实例017 打印杨辉三角 22 1.4 循环的数学应用 23 实例018 序列求和 23 实例019 简单的级数运算 24 实例020 用while语句求n! 25 实例021 特殊等式 26 实例022 求一个正整数的所有因子 27 实例023 一元钱兑换方案 28 实例024 对调数问题 29 实例025 数平方和运算的问题 30 1.5 数组 31 实例026 逆序存放数据 32 实例027 相邻元素之和 33 实例028 选票统计 34 实例029 模拟比赛打分 35 实例030 对调最大与最小数位置 36 实例031 二维数组行列互换 37 实例032 使用数组统计学生成绩 39 实例033 打印5阶幻方 40 1.6 字符和字符串操作 41 实例034 统计各种字符个数 41 实例035 字符串倒置 43 实例036 字符串替换 44 实例037 回文字符串 45 实例038 不用strcat连接两个字符串 46 实例039 删除字符串中连续字符 47 实例040 字符升序排列 49 实例041 在指定的位置后插入字符串 50 1.7 函数 51 实例042 求字符串中字符的个数 51 实例043 递归解决年龄问题 53 实例044 求学生的平均身高 54 实例045 分数计算器程序 55 1.8 趣味计算 57 实例046 加油站加油 57 实例047 小球下落问题 58 实例048 灯塔数量 59 实例049 买苹果问题 60 实例050 猴子吃桃 61 实例051 老师分糖果 62 实例052 新同学的年龄 63 实例053 百钱百鸡问题 64 实例054 彩球问题 65 实例055 求总数问题 66 1.9 宏定义与位运算 67 实例056 用宏定义实现值互换 67 实例057 普通的位运算 69 实例058 循环移位 70 第2章 指针 73 2.1 指针变量 74 实例059 使用指针实现数据交换 74 实例060 使用指针实现整数排序 75 实例061 指向结构体变量的指针 76 2.2 指针与数组 77 实例062 使用指针输出数组元素 77 实例063 用指针实现逆序存放数组元素值 79 实例064 输出二维数组有关值 80 实例065 输出二维数组任一行任一列值 81 实例066 使用指针查找数列中最大值、最小值 83 实例067 用指针数组构造字符串数组 84 实例068 将若干字符串按照字母顺序输出 85 2.3 指针与函数 86 实例069 用指向函数的指针比较大小 86 实例070 使用返回指针的函数查找最大值 88 实例071 使用指针函数求学生成绩 89 实例072 寻找指定元素的指针 90 实例073 寻找相同元素的指针 91 2.4 字符串与指针 92 实例074 使用指针实现字符串复制 92 实例075 字符串的连接 94 实例076 字符串插入 95 实例077 字符串的匹配 96 2.5 指向指针的指针 97 实例078 使用指针的指针输出字符串 98 实例079 实现输入月份号输出该月份英文名 99 实例080 使用指向指针的指针对字符串排序 100 第3章 数据结构 103 3.1 结构体 104 实例081 结构体简单应用 104 实例082 找最高分 106 实例083 平均成绩 108 实例084 比较计数 109 实例085 信息查询 110 实例086 计算开机时间 111 3.2 链表 112 实例087 创建单向链表 112 实例088 创建双向链表 114 实例089 创建循环链表 117 实例090 双链表逆置 118 实例091 双链表逆序输出 120 实例092 约瑟夫环 122 实例093 创建顺序表并插入元素 123 实例094 向链表中插入结点 125 实例095 从链表中删除结点 126 实例096 合并两个链表 129 实例097 单链表就地逆置 130 实例098 头插入法建立单链表 132 3.3 栈和队列 133 实例099 应用栈实现进制转换 133 实例100 用栈设置密码 135 实例101 栈实现行编辑程序 138 实例102 括号匹配检测 141 实例103 用栈及递归计算多项式 143 实例104 链队列 144 实例105 循环缓冲区问题 147 3.4 串与广义表 149 实例106 串的模式匹配 149 实例107 简单的文本编辑器 151 实例108 广义表的存储 154 实例109 广义表的复制 156 3.5 二叉树 160 实例110 二叉树的递归创建 160 实例111 二叉树的遍历 162 实例112 线索二叉树的创建 164 实例113 二叉排序树 166 实例114 哈夫曼编码 167 3.6 图及图的应用 169 实例115 图的邻接表存储 170 实例116 图的深度优先搜索 172 实例117 图的广度优先搜索 175 实例118 Prim算法求最小生成树 177 实例119 迪杰斯特拉算法 180 第4章 算法 183 4.1 简单问题算法 184 实例120 任意次方后的最后三位 184 实例121 计算π的近似值 184 实例122 小于500的所有勾股数 185 实例123 能否组成三角形 186 实例124 偶数拆分 187 实例125 乘积大于和的数 188 实例126 求各位上和为5的数 189 实例127 计算某日是该年第几天 190 4.2 排序算法 191 实例128 直接插入排序 192 实例129 希尔排序 193 实例130 起泡排序 194 实例131 快速排序 195 实例132 选择排序 197 实例133 归并排序 198 4.3 查找算法 199 实例134 顺序查找 199 实例135 二分查找 201 实例136 分块查找 202 实例137 哈希查找 203 4.4 定理与猜想 206 实例138 斐波那契数列 206 实例139 角谷猜想 207 实例140 哥德巴赫猜想 208 实例141 四方定理 209 实例142 尼科彻斯定理 210 4.5 逻辑推理与判断 211 实例143 魔术师的秘密 211 实例144 婚礼上的谎言 212 实例145 谁讲了真话 213 实例146 黑纸与白纸 215 实例147 判断坏球 216 第5章 数学应用 221 5.1 素数问题 222 实例148 求100~200的素数 222 实例149 可逆素数 223 实例150 回文素数 224 5.2 整数趣题 225 实例151 阿姆斯特朗数 225 实例152 特殊的完全平方数 226 实例153 求1000以内的完全数 227 实例154 三重回文数 228 实例155 亲密数 229 实例156 自守数 230 实例157 满足abcd=(ab+cd)2的数 231 实例158 神奇的数字6174 232 实例159 一数三平方 233 5.3 数学问题求解 234 实例160 求等差数列 234 实例161 求整数的绝对值 235 实例162 正弦、余弦、正切值 236 实例163 自然对数的底e的计算 237 实例164 最大公约及最小公倍数 238 实例165 求解二元一次不定方程 239 实例166 二分法求解方程 241 实例167 牛顿迭代法解方程的根 242 5.4 矩阵 243 实例168 打印特殊方阵 243 实例169 求3×3矩阵对角元素之和 244 实例170 矩阵的加法运算 245 实例171 矩阵的乘法运算 246 实例172 打印n阶螺旋方阵 247 5.5 生活中的数学 249 实例173 求车运行速度 249 实例174 卖西瓜 250 实例175 打渔晒问题 251 实例176 水池注水问题 252 实例177 捕鱼和分鱼问题 253 实例178 递归解分鱼问题 254 实例179 巧分苹果 255 第6章 文件操作 257 6.1 文件读写操作 258 实例180 读取磁盘文件 258 实例181 将数据写入磁盘文件 259 实例182 格式化读写文件 260 实例183 成块读写操作 262 实例184 随机读写文件 263 实例185 以行为单位读写文件 265 6.2 文件内容操作 266 实例186 复制文件内容到另一文件 267 实例187 错误处理 268 实例188 合并两个文件信息 270 实例189 统计文件内容 271 6.3 文件的创建、查找及删除 272 实例190 创建文件 273 实例191 创建临时文件 274 实例192 查找文件 275 实例193 重命名文件 275 实例194 删除文件 276 实例195 删除文件中的记录 277 6.4 文件相关操作 279 实例196 关闭打开的所有文件 279 实例197 同时显示两个文件的内容 281 实例198 显示目录内同类型文件 282 实例199 文件分割 284 实例200 文件加密 286 第7章 库函数调用 289 7.1 时间转换和操作函数 290 实例201 固定格式输出当前时间 290 实例202 当前时间转换 291 实例203 显示程序运行时间 292 实例204 获取DOS系统时间 293 实例205 设置DOS系统日期 293 实例206 设置DOS系统时间 294 实例207 读取并设置bios的时钟 295 7.2 数学函数 296 实例208 求相对的最小整数 296 实例209 求直角三角形斜边 297 实例210 小数分离 298 实例211 求任意数n次幂 299 7.3 字符串、字符函数 300 实例212 函数实现字符匹配 300 实例213 任意大写字母转小写 301 实例214 字符串复制到指定空间 302 实例215 查找位置信息 303 7.4 其他函数 304 实例216 复制当前目录 304 实例217 产生惟一文件 305 实例218 不同亮度显示 306 实例219 字母检测 307 实例220 建立目录 308 实例221 删除目录 309 实例222 数字检测 310 实例223 快速分类 311 实例224 访问系统temp中的文件 313 实例225 设置组合键 314 第8章 图形图像 317 8.1 基本图形 318 实例226 绘制直线 318 实例227 绘制表格 319 实例228 绘制矩形 321 实例229 绘制椭圆 322 实例230 绘制圆弧线 323 实例231 绘制扇区 324 实例232 绘制空心圆 325 实例233 画一个箭头 326 实例234 绘制正弦曲线 327 实例235 绘制彩带 329 8.2 色彩填充及使用 330 实例236 黄色格填充的椭圆 330 实例237 红色间隔点填充多变形 332 实例238 绘制五角星 333 实例239 颜色变换 334 实例240 彩色扇形 335 实例241 输出不同字体 336 8.3 屏幕操作 338 实例242 相同图案的输出 338 实例243 设置文本及背景颜色 340 实例244 简单的键盘画图程序 342 实例245 鼠标绘图 344 实例246 艺术清屏 346 8.4 图形动画 349 实例247 图形时钟 349 实例248 火箭发射 351 实例249 运动的问候语 352 实例250 正方形下落 353 实例251 跳动的小球 354 实例252 旋转的五角星 356 实例253 变化的同心圆 358 实例254 小球碰撞 359 8.5 图形综合实例 361 实例255 圆形精美图案 361 实例256 直线精美图案 362 实例257 心形图案 363 实例258 钻石图案 365 实例259 雪花 366 实例260 直线、正方形综合 368 第9章 系统相关 371 9.1 时间和日期 372 实例261 获取当前日期与时间 372 实例262 获取当地日期与时间 373 实例263 格林尼治平时 373 实例264 设置系统日期 374 9.2 BIOS操作 376 实例265 获取BIOS常规内存容量 376 实例266 读/写BIOS计时器 377 实例267 获取CMOS密码 377 9.3 硬件、软件中断 379 实例268 获取Ctrl+Break键消息 379 实例269 鼠标中断 380 实例270 设置文本显示模式 382 9.4 磁盘相关 385 实例271 获取当前磁盘空间信息 385 实例272 备份/恢复硬盘分区表 387 实例273 硬盘逻辑锁 390 9.5 信息获取 392 实例274 显卡类型测试 392 实例275 获取系统配置信息 393 实例276 获取环境变量 395 实例277 获取寄存器信息 396 9.6 其他 397 实例278 恢复内存文本 397 实例279 绘制立体窗口 399 实例280 控制扬声器声音 401 实例281 获取Caps Lock键状态 402 实例282 删除多级目录 403 第10章 加解密与安全性 407 10.1 程序保护 408 实例283 自毁程序 408 实例284 明码序列号保护 409 实例285 非明码序列号保护 410 10.2 加密解密 412 实例286 MD5加密 412 实例287 RSA加密 419 实例288 DES加密 420 实例289 RC4加密 424 实例290 SHA1加密 427 实例291 恺撒加密 432 第11章 游戏 435 实例292 猜数字游戏 436 实例293 24点游戏 438 实例294 贪吃蛇游戏 440 实例295 五子棋游戏 444 实例296 弹力球游戏 450 第12章 综合应用 457 实例297 学生管理系统 458 实例298 火车订票系统 465 实例299 通信录管理系统 472 实例300 图书管理系统 476 技术要点对应实例位置 487
108题中有部分题目重合,因此么有收录在压缩文件中。 华为机试 ├─001 字符串最后一个单词长度 │ └─Source ├─002 计算字符个数 │ └─Source ├─003 明明的随机数 │ └─Source ├─004 字符串分隔 │ └─Source ├─005 进制转换 │ └─Source ├─006 质数因子 │ └─Source ├─007 取近似值 │ └─Source ├─008 合并表记录 │ └─Source ├─009 提取不重复的整数 │ └─Source ├─010 字符个数统计 │ └─Source ├─011 数字颠倒 │ └─Source ├─012 字符串反转 │ └─Source ├─013 句子逆序 │ └─Source ├─014 字典序排序 │ └─Source ├─015 求int型正整数在内存中存储是1的个数 │ └─Source ├─016 购物单 │ ├─Debug │ ├─Source │ │ └─Debug │ ├─Source - 时间优先 │ │ └─Debug │ └─Source - 空间优先 │ ├─Debug │ └─Release ├─017 坐标移动 ├─018 识别IP地址分类统计 │ └─Source │ └─Debug ├─019 错误记录 ├─020 密码验证合格程序 ├─021 密码破解 ├─023 删除字符串中出现次数最少字符 │ └─Source │ └─Debug ├─024 合唱队 │ └─Source │ ├─Debug │ └─Release ├─025 数据分类处理 │ └─Source │ └─Debug ├─026 查找兄弟单词 │ └─Source │ └─Debug ├─027 素数伴侣 │ └─Source │ └─Debug ├─028 字符串合并处理 │ └─Source │ └─Debug ├─030 密码截取(查找最长回文字符串) ├─031 蛇形矩阵 │ └─Source │ └─Debug ├─033 判断IP是否属于同一子 │ └─Source │ └─Debug ├─034 称砝码 │ └─Source │ └─Debug ├─035 学英语 │ └─Source │ └─Debug ├─036 迷宫问题 │ └─Source │ └─Debug ├─037 数独问题 │ └─Debug ├─038 名字漂亮度 │ └─Source │ └─Debug ├─039 字符串截取 │ └─Source │ └─Debug ├─040 单链表删除数据 │ └─Source │ └─Debug ├─041 多线程 │ └─Source │ ├─Backup │ ├─Debug │ │ └─041.tlog │ └─Release │ └─041.tlog ├─042 表达式计算 │ └─Source │ └─Debug ├─043 计算字符串距离 │ └─Source │ └─Debug ├─044 杨辉三角形变形 ├─046 挑7 ├─047 完全数 │ └─Debug ├─048 高精度加法 ├─049 输出n个数中最小的k个 │ └─Debug ├─050 找出字符串只出现一次的字符 │ └─Debug ├─051 组成一个偶数最接近的2个质数 │ └─Debug ├─052 M个苹果放入N个盘子 ├─053 查找整数二进制中1的个数 ├─054 DNA子串 ├─055 MP3光标位置 │ └─Source │ └─Debug ├─056 查找2个字符串最大相同子串 │ └─Debug ├─057 配置文件恢复 │ └─Source │ └─Debug ├─058 24点计算 │ └─Debug ├─059 成绩排序 ├─060 矩阵相乘 ├─061 矩阵乘法次数计算 ├─062 字符串通配符 │ └─Debug ├─066 命令行解析 │ └─Source │ └─Debug ├─067 最大相同子串长度 │ └─Debug ├─068 火车编号进站 │ └─Debug ├─072 数组合并 ├─074 埃及分数 │ └─Source │ └─Debug ├─076 密码截取 │ └─Source ├─077 求最大连续bit数 ├─078 密码强度 ├─079 扑克牌大小 │ └─Source │ └─Debug ├─081 合法IP ├─082 棋盘格子走法 ├─083 在字符串中找出连续最长数字串 ├─084 int数组分组,两组和相等 │ └─Source │ └─Debug ├─086 人民币转换 │ └─Source │ └─Debug ├─087 表示数字 ├─090 自动售货系统 │ └─Source │ └─Debug └─091 24点输出 └─Debug
第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函数:c函数 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维数组的表示 14 范例1-6 三维数组的表示 14 ∷相关函数:InitArray函数 1.1.7 多项式的数组表示 17 范例1-7 多项式数组的表示 17 1.1.8 查找矩阵的马鞍点 19 范例1-8 查找矩阵的马鞍点 19 ∷相关函数:Get_Saddle函数 1.1.9 对角矩阵建立 21 范例1-9 对角矩阵建立 21 ∷相关函数:Store函数 1.1.10 三对角矩阵的建立 22 范例1-10 三对角矩阵的建立 22 ∷相关函数:Store函数 1.1.11 三角矩阵建立 24 范例1-11 三角矩阵建立 24 ∷相关函数:Store函数 1.1.12 对称矩阵的建立 25 范例1-12 对称矩阵的建立 25 ∷相关函数:store函数 1.1.13 字符串长度的计算 28 范例1-13 字符串长度的计算 28 ∷相关函数:strlen函数 1.1.14 字符串的复制 29 范例1-14 字符串的复制 29 ∷相关函数:strcpy函数 1.1.15 字符串的替换 31 范例1-15 字符串的替换 31 ∷相关函数:strrep函数 1.1.16 字符串的删除 33 范例1-16 字符串的删除 33 ∷相关函数:strdel函数 1.1.17 字符串的比较 35 范例1-17 字符串的比较 35 ∷相关函数:strcmp函数 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函数:substr函数 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函数:partition函数 1.1.20 字符串的插入 40 范例1-20 字符串的插入 40 ∷相关函数:insert函数 1.1.21 字符串的匹配 42 范例1-21 字符串的匹配 42 ∷相关函数:nfind函数 1.1.22 字符串的合并 43 范例1-22 字符串的合并 43 ∷相关函数:catstr函数 1.1.23 文本编辑 45 范例1-23 文本编辑 45 ∷相关函数:StrAssign函数 1.2 栈和队列 54 1.2.1 用数组仿真堆栈 54 范例1-24 用数组仿真堆栈 54 ∷相关函数:push函数 pop函数 1.2.2 用链表仿真堆栈 57 范例1-25 用链表仿真堆栈 57 ∷相关函数:push函数 pop函数 1.2.3 顺序栈公用 59 范例1-26 顺序栈公用 59 ∷相关函数:push函数 pop函数 1.2.4 进制转换问题 61 范例1-27 进制转换问题 61 ∷相关函数:MultiBaseOutput函数 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函数:push函数 pop函数 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函数:EnQueue函数 DeQueue函数 1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函数:push函数 pop函数 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函数:EnQueue函数 DeQueue函数 DancePartner函数 1.3 链表 75 1.3.1 头插法建立单链表 75 范例1-32 头插法建立单链表 75 ∷相关函数:createlist函数 1.3.2 限制链表长度建立单链表 77 范例1-33 限制链表长度建立长单链表 77 ∷相关函数:createlist函数 1.3.3 尾插法建立单链表 79 范例1-34 尾插法建立单链表 79 ∷相关函数:createlist函数 1.3.4 按序号查找单链表 80 范例1-35 按序号查找单链表 80 ∷相关函数:getnode函数 1.3.5 按值查找单链表 82 范例1-36 按值查找单链表 82 ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 范例1-39 归并两个单链表 88 ∷相关函数:concatenate函数 1.3.9 动态堆栈 90 范例1-40 动态堆栈 90 ∷相关函数:push函数 Pop函数 1.3.10 动态队列 93 范例1-41 动态队列 93 ∷相关函数:Enqueue函数 1.3.11 初始化单循环链表 95 范例1-42 初始化单循环链表 95 ∷相关函数:ListLength_CL函数 1.3.12 查询元素的前驱和后继 98 范例1-43 查询元素的前驱和后继 98 ∷相关函数:PriorElem_CL函数 NextElem_CL函数 1.3.13 单循环链表中元素的删除 101 范例1-44 单循环链表中元素的删除 101 ∷相关函数:ListDelete_CL函数 1.3.14 单循环链表的清除和销毁 107 范例1-45 单循环链表的清除和销毁 107 ∷相关函数:DestroyList函数 1.3.15 仅设表尾指针循环链表的合并 110 范例1-46 仅设表尾指针循环链表的合并 110 ∷相关函数:MergeList_CL函数 1.3.16 正序输出双向链表 113 范例1-47 正序输出双向链表 113 ∷相关函数:ListInsert函数 ListTraverse函数 1.3.17 逆向输出双向链表 116 范例1-48 三角矩阵建立 116 ∷相关函数:ListTraverseBack函数 1.3.18 删除双向链表中的节点 121 范例1-49 删除双向链表中的节点 121 ∷相关函数:ListDelete函数 1.3.19 双向链表的元素个数 124 范例1-50 双向链表的元素个数 124 ∷相关函数:ListLength函数 1.3.20 判断双向链表是否为空 126 范例1-51 判断双向链表是否为空 126 ∷相关函数:ListEmpty函数 1.3.21 双向链表元素值的查询 129 范例1-52 双向链表元素值的查询 129 ∷相关函数:GetElemP函数 1.3.22 稀疏矩阵的建立 136 范例1-53 稀疏矩阵的建立 136 ∷相关函数:Create函数 1.3.23 稀疏矩阵的删除 138 范例1-54 稀疏矩阵的删除 138 ∷相关函数:erase函数 1.4 树和二叉树 141 1.4.1 获得二叉树的深度和根(顺序结构) 141 范例1-55 获得二叉树的深度和根 141 ∷相关函数:BiTreeDepth函数 Root函数 1.4.2 获得二叉树的深度和根(链表结构) 144 范例1-56 获得二叉树的深度和根 144 ∷相关函数:BiTreeDepth函数 Root函数 1.4.3 树的插入(顺序结构) 147 范例1-57 树的插入 147 ∷相关函数:InsertChild函数 1.4.4 节点的修改(顺序结构) 150 范例1-58 节点的修改 150 ∷相关函数:Assign函数 1.4.5 节点的修改(链式结构) 154 范例1-59 节点的修改 154 ∷相关函数:Assign函数 1.4.6 双亲、孩子和兄弟节点的查询(顺序结构) 158 范例1-60 双亲、孩子和兄弟节点的查询 158 ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.8 中序遍历二叉树(顺序结构) 169 范例1-62 中序遍历二叉树 169 ∷相关函数:InOrderTraverse函数 1.4.9 中序遍历二叉树(链式结构) 171 范例1-63 中序遍历二叉树 171 ∷相关函数:InOrderTraverse函数 1.4.10 中序非递归遍历二叉树(链式结构)(1) 174 范例1-64 中序非递归遍历二叉树 174 ∷相关函数:InOrderTraverse函数 1.4.11 中序非递归遍历二叉树(链式结构)(2) 177 范例1-65 中序非递归遍历二叉树 177 ∷相关函数:InOrderTraverse2函数 1.4.12 后序遍历二叉树(顺序结构) 180 范例1-66 后序遍历二叉树 180 ∷相关函数:PostOrderTraverse函数 1.4.13 后序遍历二叉树(链式结构) 183 范例1-67 后序遍历二叉树 183 ∷相关函数:PostOrderTraverse函数 1.4.14 层次遍历二叉树(顺序结构) 186 范例1-68 层次遍历二叉树 186 ∷相关函数:LevelOrderTraverse函数 1.4.15 层次遍历二叉树(链式结构) 188 范例1-68 层次遍历二叉树 188 ∷相关函数:LevelOrderTraverse函数 1.4.16 树的合并 191 范例1-70 树的合并 191 ∷相关函数:Find函数 Union函数 1.4.17 树的二叉链表存储的基本操作 193 范例1-71 树的二叉链表存储的基本操作 193 ∷相关函数:LevelOrderTraverse函数 1.4.18 二叉树的三叉链表存储的基本操作 201 范例1-72 二叉树的三叉链表存储表示 201 ∷相关函数:CreateBiTree函数 1.4.19 二叉树的二叉线索存储的基本操作 212 范例1-73 二叉树的二叉线索存储 212 ∷相关函数:CreateBiThrTree函数 1.4.20 树的双亲表存储的基本操作 215 范例1-74 树的双亲表存储的基本操作 215 ∷相关函数:CreateTree函数 1.4.21 哈夫曼编码(1) 223 范例1-75 哈夫曼编码(1) 223 ∷相关函数:HuffmanCoding函数 1.4.22 哈夫曼编码(2) 226 范例1-76 哈夫曼编码(2) 226 ∷相关函数:HuffmanCoding函数 1.5 排序 229 1.5.1 直接插入排序 229 范例1-77 直接插入排序 229 ∷相关函数:InsertSort函数 1.5.2 折半插入排序(顺序结构) 231 范例1-78 折半插入排序(顺序结构) 231 ∷相关函数:BInsertSort函数 1.5.3 2—路插入排序(顺序结构) 233 范例1-79 2—路插入排序(顺序结构) 233 ∷相关函数:P2_InsertSort函数 1.5.4 折半插入排序(链式结构) 235 范例1-80 折半插入排序(链式结构) 235 ∷相关函数:Arrange函数 1.5.5 2—路插入排序(链式结构) 238 范例1-81 2—路插入排序(链式结构) 238 ∷相关函数:Rearrange函数 1.5.6 希尔排序 241 范例1-82 希尔排序 241 ∷相关函数:ShellSort函数 1.5.7 冒泡排序 243 范例1-83 冒泡排序 243 ∷相关函数:bubble_sort函数 1.5.8 一趟快速排序 246 范例1-84 一趟快速排序 246 ∷相关函数:QSort函数 1.5.9 一趟快速排序的改进算法 248 范例1-85 一趟快速排序的改进算法 248 ∷相关函数:QuickSort函数 1.5.10 简单选择排序 250 范例1-86 简单选择排序 250 ∷相关函数:SelectSort函数 1.5.11 箱子排序 252 范例1-87 箱子排序 252 ∷相关函数:sort函数 1.5.12 树型选择排序 254 范例1-88 树型选择排序 254 ∷相关函数:TreeSort函数 1.5.13 堆排序 256 范例1-89 堆排序 256 ∷相关函数:HeapSort函数 1.5.14 归并排序 258 范例1-90 归并排序 258 ∷相关函数:MergeSort函数 1.5.15 多路平衡归并排序 260 范例1-91 多路平衡归并排序 260 ∷相关函数:K_Merge函数 1.5.16 置换—选择排序 265 范例1-92 置换—选择排序 265 ∷相关函数:Replace_Selection函数 1.5.17 文件的归并 269 范例1-93 文件的归并 269 ∷相关函数:K_Merge函数 1.6 查找 272 1.6.1 顺序表的查找 273 范例1-94 顺序表的查找 273 ∷相关函数:Search_Seq函数 1.6.2 静态树表的查找 276 范例1-95 静态树表的查找 276 ∷相关函数:Search_SOSTree函数 1.6.3 二叉排序树的基本操作 280 范例1-96 二叉排序树的基本操作 280 ∷相关函数:InsertBST函数 1.6.4 平衡二叉树的基本操作 285 范例1-97 平衡二叉树的基本操作 285 ∷相关函数:SearchBST函数 1.6.5 B树的基本操作 290 范例1-98 B树的基本操作 290 ∷相关函数:SearchBTree函数 1.6.6 按关键字符串的遍历双链键树 295 范例1-99 按关键字符串遍历双链键树 295 ∷相关函数:SearchDLTree函数 1.6.7 按关键字符串的遍历Trie树 301 范例1-100 按关键字符串遍历Trie树 301 ∷相关函数:SearchTrie函数 1.6.8 哈希表的基本操作 306 范例1-101 哈希表的基本操作 306 ∷相关函数:SearchHash函数 1.7 图 311 1.7.1 图的邻接矩阵存储表示 311 范例1-102 图的邻接矩阵存储表示 ∷相关函数:CreateFAG函数 CreateDG函数 1.7.2 图的邻接表存储表示 324 范例1-103 图的邻接表存储表示 324 ∷相关函数:CreateFAG函数 1.7.3 有向图的十字链表存储表示 335 范例1-104 有向图的十字链表存储表示 335 ∷相关函数:CreateDG函数 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函数:CreateGraph函数 1.7.5 最小生成树 355 范例1-106 最小生成树 355 ∷相关函数:MiniSpanTree_PRIM函数 1.7.6 关节点和重连通分量 359 范例1-107 关节点和重连通分量 359 ∷相关函数:FindArticul函数 1.7.7 拓扑排序 366 范例1-108 拓扑排序 366 ∷相关函数:TopologicalSort函数 1.7.8 关键路径 374 范例1-109 关键路径 374 ∷相关函数:CriticalPath函数 1.7.9 最短路径 383 范例1-110 最短路径 383 ∷相关函数:ShortestPath_DIJ函数 1.7.10 每一对顶点之间的最短路径 387 范例1-111 每一对顶点之间的最短路径 387 ∷相关函数:ShortestPath_FLOYD函数 1.8 本章小结 395 第2章 数值计算 397 2.1 常见的数学函数 398 2.1.1 求整数的绝对值 398 范例2-1 求整数的绝对值 398 ∷相关函数:abs函数 2.1.2 求长整型整数的绝对值 399 范例2-2 求长整型整数的绝对值 399 ∷相关函数:labs函数 2.1.2 求浮点数的绝对值 400 范例2-2 求浮点数的绝对值 400 ∷相关函数:fabs函数 2.1.4 求反余弦 400 范例2-4 求反余弦 400 ∷相关函数:acos函数 2.1.5 求反正弦 401 范例2-5 求反正弦 401 ∷相关函数:asin函数 2.1.6 求反正切 402 范例2-6 求反正切 402 ∷相关函数:atan函数 2.1.7 对浮点数进行舍入 403 范例2-7 对浮点数进行舍入 403 ∷相关函数:ceil函数 2.1.8 求余弦 404 范例2-8 求余弦 404 ∷相关函数:cos函数 2.1.9 求双曲余弦 405 范例2-9 求双曲余弦 405 ∷相关函数:cosh函数 2.1.10 求正弦 406 范例2-10 求正弦 406 ∷相关函数:sin函数 2.1.11 求双曲正弦 406 范例2-11 求双曲正弦 406 ∷相关函数:sinh函数 2.1.12 求正切 407 范例2-12 求正切 407 ∷相关函数:tan函数 2.1.13 求双曲正切 408 范例2-13 求双曲正切 408 ∷相关函数:tanh函数 2.1.14 获得整数相除的商和余数 409 范例2-14 获得整数相除的商和余数 409 ∷相关函数:div函数 2.1.15 求ex 410 范例2-15 求ex 410 ∷相关函数:exp函数 2.1.16 获取浮点相除的余数 411 范例2-16 获取浮点数相除的余数 411 ∷相关函数:fmod函数 2.1.17 获取浮点数的尾数和指数 412 范例2-17 获取浮点数的尾数和指数 412 ∷相关函数:frexp函数 2.1.18 求x2exponent 413 范例2-18 一维多项式求值 413 ∷相关函数:ldexp函数 2.1.19 求自然对数 413 范例2-19 求自然对数 413 ∷相关函数:log 函数 2.1.20 求lgx 414 范例2-20 求lgx 414 ∷相关函数:log10函数 2.1.21 获取浮点数的整数部分和小数部分 415 范例2-21 第二类椭圆积分 415 ∷相关函数:modf函数 2.1.22 求xy 416 范例2-22 求xy 416 ∷相关函数:pow函数 2.1.23 求10x 417 范例2-23 求10x 417 ∷相关函数:pow10函数 2.1.24 获取随机数 418 范例2-24 获取随机数 418 ∷相关函数:rand函数 2.1.25 设置随机数生成器初值 418 范例2-25 设置随机数生成器初值 418 ∷相关函数:srand函数 2.1.26 获取最大值和最小值 419 范例2-26 获取最大值和最小值 419 ∷相关函数:max函数 min函数 2.1.27 求直角三角形的斜边长 421 范例2-27 求直角三角形的斜边长 421 ∷相关函数:hypot函数 2.1.28 获取多项式的值 421 范例2-28 获取多项式的值 421 ∷相关函数:poly函数 2.2 多项式的计算 422 2.2.1 一维多项式求值 422 范例2-29 一维多项式求值 422 ∷相关函数:polyval函数 2.2.2 二维多项式求值 424 范例2-30 二维多项式求值 424 ∷相关函数:tdpolyval函数 2.2.3 复系数一维多项式求值 425 范例2-31 复系数一维多项式求值 425 ∷相关函数:cppolyval函数 2.2.4 多项式相乘 427 范例2-32 多项式相乘 427 ∷相关函数:polymul函数 2.2.5 复系数多项式相乘 428 范例2-33 复系数多项式相乘 428 ∷相关函数:cppolymul函数 2.2.6 多项式除法 430 范例2-34 多项式除法 430 ∷相关函数:polydiv函数 2.2.7 复数多项式相除 432 范例2-35 复数多项式相除 432 ∷相关函数:cppolydiv函数 2.3 复数运算 435 2.3.1 复数乘法 435 范例2-36 复数乘法 435 ∷相关函数:cpmul函数 2.3.2 复数除法 436 范例2-37 复数除法 436 ∷相关函数:cpdiv函数 2.3.3 复数乘幂 437 范例2-38 复数乘幂 437 ∷相关函数:cppower函数 2.3.4 复数的n次方根 439 范例2-39 复数乘法 439 ∷相关函数:cproot函数 2.3.5 复数指数 441 范例2-40 复数指数 441 ∷相关函数:polyval函数 2.3.6 复数对数 442 范例2-41 复数对数 442 ∷相关函数:cplog函数 2.3.7 复数正弦 443 范例2-42 复数正弦 443 ∷相关函数:cpsin函数 2.3.8 复数余弦 444 范例2-43 复数余弦 444 ∷相关函数:cpcos函数 2.4 随机数的产生 445 2.4.1 产生0~1之间均匀分布的随机数 446 范例2-44 0~1之间均匀分布的随机数 446 ∷相关函数:edisrnd函数 2.4.2 产生0~1之间均匀分布的随机数序列数 447 范例2-45 0~1之间均匀分布的随机数序列 447 ∷相关函数:edisrndsq函数 2.4.3 产生任意区间内均匀分布的随机数 448 范例2-46 产生任意区间内均匀分布的随机数 448 ∷相关函数:itervalrnd函数 2.4.4 产生任意区间内均匀分布的随机数序列 450 范例2-47 产生任意区间内均匀分布的随机数序列 450 ∷相关函数:itervalrndsq函数 2.4.5 产生任意均值与方差的正态分布的随机数 451 范例2-48 任意均值与方差的正态分布的随机数 451 ∷相关函数:nordisrnd函数 2.4.6 产生任意均值与方差的正态分布的随机数序列 453 范例2-49 任意均值与方差的正态分布随机数序列 453 ∷相关函数:nordisrndsq函数 2.5 矩阵运算 454 2.5.1 实矩阵相乘 454 范例2-50 实矩阵相乘 454 ∷相关函数:matrixmul函数 2.5.2 复矩阵相乘 456 范例2-51 复矩阵相乘 456 ∷相关函数:cpmatrixmul函数 2.5.3 一般实矩阵求逆 458 范例2-52 一般实矩阵求逆 458 ∷相关函数:matrix_inverse函数 2.5.4 一般复矩阵求逆 462 范例2-53 一般复矩阵求逆 462 ∷相关函数:multi_matrix_inverse函数 2.5.5 对称正定矩阵的求逆 465 范例2-54 对称正定矩阵的求逆 465 ∷相关函数:symmetric_positive_definite_matrix函数 2.5.6 托伯利兹矩阵求逆的特兰持方法 467 范例2-55 托伯利兹矩阵求逆的特兰持方法 467 ∷相关函数:toeplitz_inv函数 2.5.7 求一般行列式的值 470 范例2-56 求一般行列式的值 470 ∷相关函数:determinant_value函数 2.5.8 求矩阵的秩 472 范例2-57 求矩阵的秩 472 ∷相关函数:determinant_rank函数 2.5.9 对称正定矩阵的乔里斯基分解与行列式求值 474 范例2-58 对称正定矩阵的乔里斯基分解 474 ∷相关函数:cholesky_method函数 2.5.10 矩阵的三角分解 476 范例2-59 矩阵的三角分解 476 ∷相关函数:triangular_decomposition函数 2.5.11 一般实矩阵的QR分解 478 范例2-60 一般实矩阵的QR分解 478 ∷相关函数:qr_decomposition函数 2.5.12 求广义逆的奇异值分解法 480 范例2-61 求广义逆的奇异值分解法 480 ∷相关函数:singular_value_decomposition函数 generalized_inverses函数 2.6 矩阵特征值与特征向量的计算 489 2.6.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 489 范例2-62 约化对称矩阵为对称三对角阵 489 ∷相关函数:Householder_method函数 2.6.2 求对称三对角阵的全部特征值与特征向量 492 范例2-63 求对称三对角阵的全部特征值 492 ∷相关函数:def_qr函数 2.6.3 约化一般实矩阵为赫申伯格矩阵的初等相似变换法 496 范例2-64 约化实矩阵为赫申伯格矩阵 496 ∷相关函数:trans_hessenbreg函数 2.6.4 求赫申伯格矩阵全部特征值的QR方法 498 范例2-65 求赫申伯格矩阵全部特征值 498 ∷相关函数:hessenbreg_qr函数 2.6.5 求实对称矩阵特征值与特征向量的雅可比法 502 范例2-66 雅可比法求特征值与特征向量 502 ∷相关函数:jacobi_method函数 2.6.6 求实对称矩阵特征值与特征向量的雅可比过关法 505 范例2-67 雅可比过关法 505 ∷相关函数:jacobi_clearance函数 2.7 线性代数方程组的求解 507 2.7.1 求解实系数方程组的全选主元高斯消去法 508 范例2-68 全选主元高斯消去法 508 ∷相关函数:gauss_elimination函数 2.7.2 求解实系数方程组的全选主元高斯—约当消去法 510 范例2-69 全选主元高斯—约当消去法 510 ∷相关函数:gauss_jordan_elimination函数 2.7.3 求解复系数方程组的全选主元高斯消去法 513 范例2-70 求解复系数方程组(方法一) 513 ∷相关函数:plu_gauss函数 2.7.4 求解复系数方程组的全选主元高斯—约当消去法 516 范例2-71 求解复系数方程组(方法二) 516 ∷相关函数:plu_gauss_jordan函数 2.7.5 求解三对角线方程组的追赶法 519 范例2-72 求解三对角线方程组的追赶法 519 ∷相关函数:tridiagonal_chase函数 2.7.6 求解一般带型方程组 521 范例2-73 求解一般带型方程组 521 ∷相关函数:principal_gauss函数 2.7.7 求解对称方程组的分解法 523 范例2-74 求解对称方程组的分解法 523 ∷相关函数:equations_decomposition函数 2.7.8 求解对称正定方程组的平方根法 526 范例2-75 求解对称正定方程组的平方根法 526 ∷相关函数:equations_square_root函数 2.7.9 求解大型稀疏方程组 528 范例2-76 求解大型稀疏方程组 528 ∷相关函数:sparse_gauss_jordan函数 2.7.10 求解托伯利兹方程组的列文逊方法 531 范例2-77 求解托伯利兹方程组 531 ∷相关函数:toeplitz_levinson函数 2.7.11 高斯—赛德尔迭代法 533 范例2-78 高斯—赛德尔迭代法 533 ∷相关函数:gauss_seidel_iteration函数 2.7.12 求解对称正定方程组的共轭梯度法 535 范例2-79 求解对称正定方程组的共轭梯度法 535 ∷相关函数:conjugate_gradient_method函数 2.7.13 求解线性最小二乘问题的豪斯荷尔德变换法 537 范例2-80 求解线性最小二乘问题 537 ∷相关函数:least_square_householder函数 2.7.14 求解线性最小二乘问题的广义逆法 540 范例2-81 求解线性最小二乘问题的广义逆法 540 ∷相关函数:least_squares_reversion函数 2.7.15 求解病态方程组 549 范例2-82 求解病态方程组 549 ∷相关函数:morbid_equations函数 2.8 非线性方程与方程组的求解 553 2.8.1 求非线性方程一个实根的对分法 553 范例2-83 对分法 553 ∷相关函数:nonlinear_dichotomy函数 2.8.2 求非线性方程一个实根的牛顿法 555 范例2-84 牛顿法 555 ∷相关函数:newton_iterative函数 2.8.3 求非线性方程一个实根的埃特金迭代法 557 范例2-85 埃特金迭代法 557 ∷相关函数:aitken_iterative函数 2.8.4 求非线性方程一个实根的连分式法 558 范例2-86 连分式法 558 ∷相关函数:continued_fraction函数 2.8.5 求实系数代数方程全部根的QR方法 560 范例2-87 QR方法 560 ∷相关函数:qr_all函数 2.8.6 求实系数代数方程全部根的牛顿下山法 563 范例2-88 求实系数代数方程全部根的牛顿下山法 563 ∷相关函数:newton_descent_all函数 2.8.7 求复系数代数方程全部根的牛顿下山法 568 范例2-89 求复系数代数方程全部根的牛顿下山法 568 ∷相关函数:newton_descent_complex函数 2.8.8 求非线性方程组一组实根的梯度法 572 范例2-90 求非线性方程组一组实根的梯度法 572 ∷相关函数:gradient_nonlinear函数 2.8.9 求非线性方程组一组实根的拟牛顿法 574 范例2-91 求非线性方程组一组实根的拟牛顿法 574 ∷相关函数:quasi_newton_nonlinear函数 2.8.10 求非线性方程一个实根的蒙特卡洛法 577 范例2-92 求非线性方程的蒙特卡洛法 577 ∷相关函数:monte_carlo_nonlinear函数 2.8.11 求实函数或复函数方程一个复根的蒙特卡洛法 579 范例2-93 第二类椭圆积分 579 ∷相关函数:monte_carlo_realplex函数 2.8.12 求非线性方程组一组实根的蒙特卡洛法 581 范例2-94 第二类椭圆积分 581 ∷相关函数:monte_carlo_equation函数 2.9 插值与逼近 583 2.9.1 一元全区间插值 583 范例2-95 一元全区间插值 583 ∷相关函数:interpolation_total函数 2.9.2 一元三点插值 585 范例2-96 一元三点插值 585 ∷相关函数:interpolation_three函数 2.9.3 连分式插值 586 范例2-97 连分式插值 586 ∷相关函数:interpolation_continued函数 2.9.4 埃尔米特插值 588 范例2-98 埃尔米特插值 588 ∷相关函数:interpolation_hermite函数 2.9.5 埃特金逐步插值 590 范例2-99 第二类椭圆积分 590 ∷相关函数:interpolation_aitken函数 2.9.6 光滑插值 592 范例2-100 光滑插值 592 ∷相关函数:interpolation_akima函数 2.9.7 第一种边界条件的三次样条函数插值、微商与积分 595 范例2-101 第一种边界条件的三次样条函数 595 ∷相关函数:cubic_spline_first函数 2.9.8 第二种边界条件的三次样条函数插值、微商与积分 598 范例2-102 第二种边界条件的三次样条函数 598 ∷相关函数:cubic_spline_second函数 2.9.9 第三种边界条件的三次样条函数插值、微商与积分 600 范例2-103 第三种边界条件的三次样条函数 600 ∷相关函数:cubic_spline_third函数 2.9.10 二元三点插值 604 范例2-104 二元三点插值 604 ∷相关函数:interpolation_point函数 2.9.11 二元全区间插值 606 范例2-105 二元全区间插值 606 ∷相关函数:interpolation_total函数 2.9.12 最小二乘曲线拟合 608 范例2-106 最小二乘曲线拟合 608 ∷相关函数:least_squares_fitting函数 2.9.13 切比雪夫曲线拟合 611 范例2-107 切比雪夫曲线拟合 611 ∷相关函数:chebyshev_fitting函数 2.9.14 最佳一致逼近的里米兹方法 614 范例2-108 最佳一致逼近的里米兹方法 614 ∷相关函数:remez_method函数 2.9.15 矩形域的最小二乘曲面拟合 616 范例2-109 矩形域的最小二乘曲面拟合 616 ∷相关函数:rec_fitting函数 2.10 数值积分 621 2.10.1 变步长梯形求积法 621 范例2-110 变步长梯形求积法 621 ∷相关函数:integration_ladder函数 2.10.2 变步长辛卜生求积法 623 范例2-111 变步长辛卜生求积法 623 ∷相关函数:integration_simpson函数 2.10.3 自适应梯形求积法 624 范例2-112 自适应梯形求积法 624 ∷相关函数:integration_self_adaptive函数 2.10.4 龙贝格求积法 626 范例2-113 龙贝格求积法 626 ∷相关函数:integration_romberg函数 2.10.5 计算一维积分的连分式法 627 范例2-114 计算一维积分的连分式法 627 ∷相关函数:continued_fractions函数 2.10.6 高振荡函数求积法 629 范例2-115 高振荡函数求积法 629 ∷相关函数:higher_oscillatory_integration函数 2.10.7 勒让德—高斯求积法 631 范例2-116 勒让德—高斯求积法 631 ∷相关函数:legendre_gauss函数 2.10.8 拉盖尔—高斯求积法 633 范例2-117 拉盖尔—高斯求积法 633 ∷相关函数:laguerre_gauss函数 2.10.9 埃尔米特—高斯求积法 634 范例2-118 埃尔米特—高斯求积法 634 ∷相关函数:hermite_gauss函数 2.10.10 切比雪夫求积法 635 范例2-119 切比雪夫求积法 635 ∷相关函数:chebyshev函数 2.10.11 计算一维积分的蒙特卡洛法 637 范例2-120 计算一维积分的蒙特卡洛法 637 ∷相关函数:monte_carlo函数 2.10.12 变步长辛卜生二重积分法 638 范例2-121 变步长辛卜生二重积分法 638 ∷相关函数:simpson函数 2.10.13 计算多重积分的高斯方法 640 范例2-122 计算多重积分的高斯方法 640 ∷相关函数:gauss函数 2.10.14 计算二重积分的连分式法 643 范例2-123 计算二重积分的连分式法 643 ∷相关函数:continued_fractions_dual函数 2.10.15 计算多重积分的蒙特卡洛法 645 范例2-124 计算多重积分的蒙特卡洛法 645 ∷相关函数:monte_carlo_multi函数 2.11 常微分方程组的求解 647 2.11.1 全区间积分的定步长欧拉方法 647 范例2-125 全区间积分的定步长欧拉方法 647 ∷相关函数:euler_step函数.. 2.11.2 积分一步的变步长欧拉方法 649 范例2-126 积分一步的变步长欧拉方法 649 ∷相关函数:euler_variable函数 2.11.3 全区间积分的维梯方法 651 范例2-127 全区间积分的维梯方法 651 ∷相关函数:witty函数 2.11.4 全区间积分的定步长龙格—库塔方法 653 范例2-128 全区间积分的定步长龙格—库塔方法实例位置 653 ∷相关函数:runge_kutta函数 2.11.5 积分一步的变步长龙格—库塔方法 655 范例2-129 积分一步的变步长龙格—库塔方法实例位置 655 ∷相关函数:runge_kutta_steps函数 2.11.6 积分一步的变步长基尔方法 657 范例2-130 积分一步的变步长基尔方法 657 ∷相关函数:gill函数 2.11.7 全区间积分的变步长默森方法 659 范例2-131 全区间积分的变步长默森方法 659 ∷相关函数:merson函数 2.11.8 积分一步的连分式法 662 范例2-132 积分一步的连分式法 662 ∷相关函数:continued_step函数 2.11.9 全区间积分的双边法 665 范例2-133 全区间积分的双边法 665 ∷相关函数:bilateral函数 2.11.10 全区间积分的阿当姆斯预报校正法 668 范例2-134 阿当姆斯预报校正法 668 ∷相关函数:adams函数 2.11.11 全区间积分的哈明方法 671 范例2-135 全区间积分的哈明方法 671 ∷相关函数:hamming函数 2.11.12 积分一步的特雷纳方法 675 范例2-136 积分一步的特雷纳方法 675 ∷相关函数:treanor函数 2.11.13 二阶微分方程边值问题的数值解法 678 范例2-137 二阶微分方程边值问题的数值解法 678 ∷相关函数:finite_difference函数 2.12 数据处理与回归分析 680 2.12.1 随机样本分析 680 范例2-138 随机样本分析 680 ∷相关函数:rndsplanalysis函数 2.12.2 一元线性回归分析 683 范例2-139 一元线性回归分析 683 ∷相关函数:liregression函数 2.12.3 多元线性回归分析 685 范例2-140 多元线性回归分析 685 ∷相关函数:mulliregression函数 2.12.4 半对数数据相关 688 范例2-141 半对数数据相关 688 ∷相关函数:fittinglogt函数 2.12.5 对数数据相关 690 范例2-142 对数数据相关 690 ∷相关函数:fittingln函数 2.13 极值问题的求解 691 2.13.1 一维极值连分式法 691 范例2-143 一维极值连分式法 691 ∷相关函数:extremum函数 2.13.2 n维极值连分式法 693 范例2-144 n维极值连分式法 693 ∷相关函数:nextremum函数 2.13.3 不等式约束线性规划问题 696 范例2-145 不等式约束线性规划问题 696 ∷相关函数:linearprogram函数 2.14 数学变换与滤波 700 2.14.1 傅里叶级数逼近 700 范例2-146 傅里叶级数逼近 700 ∷相关函数:seriesfour函数 2.14.2 快速傅里叶变换 702 范例2-147 快速傅里叶变换 702 ∷相关函数:quickfft函数 2.14.3 快速沃什变换 705 范例2-148 快速沃什变换 705 ∷相关函数:quickfwt函数 2.14.4 五点三次平滑 706 范例2-149 五点三次平滑 706 ∷相关函数:smoothness函数 2.14.5 卡尔曼滤波 708 范例2-150 卡尔曼滤波 708 ∷相关函数:kalfilter函数 2.14.6 α-β-γ滤波 713 范例2-151 α-β-γ滤波 713 ∷相关函数:alphabgfilter函数 2.15 特殊函数 714 2.15.1 Gamma函数 715 范例2-152 Gamma函数 715 ∷相关函数:Gamma函数 2.15.2 不完全Gamma函数 716 范例2-153 不完全Gamma函数 716 ∷相关函数:incomgam函数 2.15.3 误差函数 719 范例2-154 误差函数 719 ∷相关函数:errorfun函数 2.15.4 第一类整数Bessel函数 721 范例2-155 第一类整数Bessel函数 721 ∷相关函数:bessel1函数 2.15.5 第二类整数Bessel函数 724 范例2-156 第二类整数Bessel函数 724 ∷相关函数:bessel2函数 2.15.6 变形第一类整数Bessel函数 727 范例2-157 变形第二类整数Bessel函数 727 ∷相关函数:varbessel1函数 2.15.7 变形第二类整数Bessel函数 729 范例2-158 变形第二类整数Bessel函数 729 ∷相关函数:varbessel2函数 2.15.8 不完全Beta函数 734 范例2-159 不完全Beta函数 734 ∷相关函数:beta函数 2.15.9 正态分布函数 736 范例2-160 正态分布函数 736 ∷相关函数:gauss函数 2.15.10 t-分布函数 739 范例2-161 t-分布函数 739 ∷相关函数:tdistribution函数 2.15.11 2-分布函数 742 范例2-162 2-分布函数 742 ∷相关函数:xdistribution函数 2.15.12 F-分布函数 744 范例2-163 F-分布函数 744 ∷相关函数:fdistribution函数 2.15.13 正弦积分 747 范例2-164 正弦积分 747 ∷相关函数:sinintegral函数 2.15.14 余弦积分 749 范例2-165 余弦积分 749 ∷相关函数:cosintegral函数 2.15.15 指数积分 750 范例2-166 指数积分 750 ∷相关函数:expintegral函数 2.15.16 第一类椭圆积分 752 范例2-167 第一类椭圆积分 752 ∷相关函数:ellipseintegral1函数 2.15.17 第二类椭圆积分 754 范例2-168 第二类椭圆积分 754 ∷相关函数:ellipseintegral2函数 2.16 本章小结 756 第3章 图形图像处理 757 3.1 字符屏幕 758 3.1.1 文本的输入与输出 758 范例3-1 文本的输入与输出 758 ∷相关函数:printf函数 scanf函数 3.1.2 outtext、outtextxy函数输出 759 范例3-2 outtext, outtextxy函数输出 759 ∷相关函数:outtext函数 outtextxy函数 3.1.3 设置文本格式 761 范例3-3 设置文本格式 761 ∷相关函数:settextstyle函数 3.1.4 设置图形文本排列方式 763 范例3-4 设置图形文本排列方式 763 ∷相关函数:settextjustify函数 3.1.5 设置用户字符比例 765 范例3-5 设置用户字符比例 765 ∷相关函数:setusercharsize函数 3.1.6 控制文本的明暗度 766 范例3-6 控制文本的明暗度 766 ∷相关函数:highvideo函数 normvideo函数 lowvideo函数 3.1.7 设置文本的前景色和背景色 767 范例3-7 设置文本的前景色和背景色 767 ∷相关函数:textcolor函数 textbackground函数 3.1.8 字符窗口 770 范例3-8 字符窗口 770 ∷相关函数:clrscr函数 window函数 gotoxy函数 3.1.9 清除光标行尾字符 772 范例3-9 清除光标行尾字符 772 ∷相关函数:clreol函数 3.1.10 插入与删除行 773 范例3-10 插入与删除行 773 ∷相关函数:insline函数 delline函数 3.1.11 屏幕参数检测 774 范例3-11 屏幕参数检测 774 ∷相关函数:getgraphmode函数 getmaxx函数 getmaxy函数 getmaxcolor函数 cleardevice函数 3.2 图形图像处理基础 777 3.2.1 绘制像素点 777 范例3-12 绘制像素点 777 ∷相关函数:putpixel函数 3.2.2 绘制直线 778 范例3-13 绘制直线 778 ∷相关函数:line函数 lineto函数 linerel函数 moveto函数 moverel函数 3.2.3 绘制矩形 780 范例3-14 绘制矩形 780 ∷相关函数:rectangle函数 3.2.4 绘制多边形 781 范例3-15 绘制多边形 781 ∷相关函数:drawpoly函数 3.2.5 绘制圆 783 范例3-16 绘制圆 783 ∷相关函数:circle函数 3.2.6 绘制椭圆 784 范例3-17 绘制椭圆 784 ∷相关函数:ellipse函数 fillellipse函数 3.2.7 绘制圆弧 786 范例3-18 绘制圆弧 786 ∷相关函数:arc函数 3.2.8 绘制扇区 787 范例3-19 绘制扇区 787 ∷相关函数:pieslice函数 sector函数 3.2.9 绘制条块 788 范例3-20 绘制条块 788 ∷相关函数:bar函数 bar3d函数 3.2.10 图设置线型 790 范例3-21 设置线型 790 ∷相关函数:Setlinestyle函数 3.2.11 绘制填充矩形 792 范例3-22 绘制填充矩形 792 ∷相关函数:setfillstyle函数 floodfill函数 3.2.12 填充多边形 795 范例3-23 填充多边形 795 ∷相关函数:fillpoly函数 3.2.14 设置用户图样 796 范例3-24 设置用户图样 796 ∷相关函数:setfillpattern函数 3.3 图形图像处理进阶 798 3.3.1 绘制彩色点云 798 范例3-25 绘制彩色点云 798 ∷相关函数:rand函数 kbhit函数 3.3.2 绘制正多边形 799 范例3-26 绘制正多边形 799 ∷相关函数:sin函数 cos函数 3.3.3 图形法绘制圆 801 范例3-27 图形法绘制圆 801 ∷相关函数:drawCircle函数 3.3.4 图形法绘制椭圆 803 范例3-28 图形法绘制椭圆 803 ∷相关函数:ellipse1函数 3.3.5 绘制正弦曲线 805 范例3-29 绘制正弦曲线 805 ∷相关函数:lineto函数 3.3.6 绘制抛物样条曲线 806 范例3-30 绘制抛物样条曲线 806 ∷相关函数:parspl函数 marking函数 3.3.7 绘制布朗曲线 809 范例3-31 绘制布朗曲线 809 ∷相关函数:CreateFractalImage函数 Gauss函数 3.3.8 动态绘制256色线条 811 范例3-32 动态绘制256色线条 811 ∷相关函数:int86函数 3.3.9 三原色亮度渐变 813 范例3-33 三原色亮度渐变 813 ∷相关函数:geninterrupt函数 3.3.10 三视图模拟 815 范例3-34 三视图模拟 815 ∷相关函数:front_view函数 top_view函数 left_view函数 perspective_view函数 3.3.11 空间椭球模拟 817 范例3-35 空间椭球模拟 817 ∷相关函数:trans函数 draw函数 3.3.12 百叶窗效果 820 范例3-36 百叶窗效果 820 ∷相关函数:putpoint函数 3.3.13 视觉欺骗 822 范例3-37 视觉欺骗 822 ∷相关函数:dot函数 circ函数 bulb函数 3.3.14 三维建筑物 824 范例3-38 三维建筑物 824 ∷相关函数:liner函数 rightlead函数 leftlead函数 shadow函数 identifier函数 3.4 组合图案绘制 830 3.4.1 一箭穿心图案 830 范例3-39 重新打开文件流 830 ∷相关函数:draw函数 arrow函数 3.4.2 六叶图案 832 范例3-40 六叶图案 832 ∷相关函数:arc函数 3.4.3 花瓣形图案 833 范例3-41 花瓣形图案 833 ∷相关函数:line函数 3.4.4 雪花图案 835 范例3-42 雪花图案 835 ∷相关函数:setviewport函数 3.4.5 布艺图案 837 范例3-43 布艺图案 837 ∷相关函数:fractal函数 3.4.6 飘带图案 838 范例3-44 飘带图案 838 ∷相关函数:line函数 3.4.7 金刚石图案 840 范例3-45 金刚石图案 840 ∷相关函数:line函数 3.4.8 圆环图案 841 范例3-46 圆环图案 841 ∷相关函数:circles函数 3.4.9 肾型图案 843 范例3-47 肾型图案 843 ∷相关函数:circle函数 3.4.10 心脏型图案 844 范例3-48 心脏型图案 844 ∷相关函数:circle函数 3.4.11 鱼图案 846 范例3-49 重新打开文件流 846 ∷相关函数:arc函数 3.4.12 沙丘图案 848 范例3-50 沙丘图案 848 ∷相关函数:lineto函数 3.4.13 正六边形螺旋图案 849 范例3-51 正六边形螺旋图案 849 ∷相关函数:polygonc函数 3.4.14 正方形螺旋拼块图案 851 范例3-52 正方形螺旋拼块图案 851 ∷相关函数:polygonc函数 block函数 3.4.15 递归法绘制三角形图案 853 范例3-53 递归法绘制三角形图案 853 ∷相关函数:elli函数 3.4.16 玫瑰图案 855 范例3-54 玫瑰图案 855 ∷相关函数:elli函数 draw函数 3.4.17 天空图案 859 范例3-55 天空图案 859 ∷相关函数:int86函数 3.4.18 Mandelbrot分形图案 864 范例3-56 Mandelbrot分形图案 864 ∷相关函数:mandelbrot函数 iterate函数 3.5 窗体界面与报表设计 866 3.5.1 窗体设计 866 范例3-57 窗体设计 866 ∷相关函数:mainform函数 windowborder函数 controls函数 3.5.2 简单菜单设计 871 范例3-58 简单菜单设计 871 ∷相关函数:initm函数 showItems函数 process 函数 process3函数 process1函数 3.5.3 制作表格 877 范例3-59 制作表格 877 ∷相关函数:putpixel函数 3.5.4 折线图 878 范例3-60 折线图 878 ∷相关函数:itoa函数 settextjustify函数 3.5.5 饼状图 880 范例3-61 饼状图 880 ∷相关函数:pieslice函数 3.5.6 柱状图 881 范例3-62 柱状图 881 ∷相关函数:Funscore函数 Drowxy 函数 Fundrow函数 3.6 动画制作 884 3.6.1 旋转的立体椭球 884 范例3-63 旋转的立体椭球 884 ∷相关函数:setactivepage函数 setvisualpage函数 3.6.2 小球碰撞演示 887 范例3-64 小球碰撞演示 887 ∷相关函数:imagsize函数 getimage函数 putimage函数 3.6.3 飘动的旗帜 889 范例3-65 飘动的旗帜 889 ∷相关函数:hor_wave_line函数 ver_wave_line函数 3.6.4 行驶中的小车 891 范例3-66 行驶中的小车 891 ∷相关函数:imagsize函数 getimage函数 putimage函数 3.6.5 不停动嘴巴的头 893 范例3-67 不停动嘴巴的头 893 ∷相关函数:getaspectratio函数 setaspectratio函数 setactivepage函数 setvisualpage函数 3.6.6 旋转的太极图 898 范例3-68 旋转的太极图 898 ∷相关函数:getpalette函数 sector函数 3.6.7 螺旋运动的圆斑 901 范例3-69 螺旋运动的圆斑 901 ∷相关函数:drawgoal函数 3.6.8 闪动的彩色圆斑 903 范例3-70 闪动的彩色圆斑 903 ∷相关函数:drawgoal函数 3.6.9 奔跑的小人 904 范例3-71 奔跑的小人 904 ∷相关函数:line函数 circle函数 3.6.10 发射火箭 907 范例3-72 发射火箭 907 ∷相关函数:DrawStar函数 DrawGun函数 DrawPlan函数 3.6.11 擦玻璃 911 范例3-73 擦玻璃 911 ∷相关函数:pieslice函数 bioskey函数 3.6.12 流星球 914 范例3-74 流星球 914 ∷相关函数:getimage函数 putimage函数 3.6.13 简单时钟 916 范例3-75 简单时钟 916 ∷相关函数:gettime函数 3.6.14 立体时钟 918 范例3-76 立体时钟 918 ∷相关函数:time函数 3.6.15 飘雪 920 范例3-77 飘雪 920 ∷相关函数:DrawSnow函数 Pr函数 3.6.16 制作火焰 923 范例3-78 制作火焰 923 ∷相关函数:outportb函数 pokeb函数 3.6.17 天体系统 926 范例3-79 天体系统 926 ∷相关函数:init_start函数 roll函数 3.6.18 扇动翅膀的蝴蝶 935 范例3-80 扇动翅膀的蝴蝶 935 ∷相关函数:putpixel函数 3.6.19 米奇 936 范例3-81 重新打开文件流 936 ∷相关函数:imagsize函数 getimage函数 putimage函数 3.7 本章小结 940 第4章 磁盘、目录和文件的操作 941 4.1 磁盘的操作 942 4.1.1 获取当前盘驱动器 942 范例4-1 获取当前盘驱动器 942 ∷相关函数:getdisk函数 4.1.2 设置当前驱动器 943 范例4-2 设置当前驱动器 943 ∷相关函数:setdisk函数 4.1.3 获取磁盘的可用空间 945 范例4-3 获取磁盘的可用空间 945 ∷相关函数:getdfree函数 4.1.4 测试软驱是否可用 946 范例4-4 测试软驱是否可用 946 ∷相关函数:biosdisk函数 4.2 目录的操作 948 4.2.1 创建目录 948 范例4-5 创建目录 948 ∷相关函数:mkdir函数 4.2.2 改变当前目录 950 范例4-6 改变当前目录 950 ∷相关函数:chdir函数 4.2.3 删除目录 952 范例4-7 删除目录 952 ∷相关函数:rmdir函数 4.3 文件的操作 953 4.3.1 用fopen函数打开文件 953 范例4-8 用fopen函数打开文件 953 ∷相关函数:fopen函数 4.3.2 打开系统temp目录中的文件 955 范例4-9 打开系统temp目录中的文件 955 ∷相关函数:getenv函数 4.3.2 使用低级函数打开和关闭文件 957 范例4-10 使用低级函数打开和关闭文件 957 ∷相关函数:open函数 close函数 4.3.3 用fclose函数关闭文件 959 范例4-11 用fclose函数关闭文件 959 ∷相关函数:fclose函数 4.3.4 一次性关闭所有被打开的文件 961 范例4-12 一次性关闭所有被打开的文件 961 ∷相关函数:fcloseall函数 4.3.5 以字符为单位读写文件 963 范例4-13 以字符为单位读写文件 963 ∷相关函数:fgetc函数 fputc函数 4.3.6 以字为单位读写文件 965 范例4-14 以字为单位读写文件 965 ∷相关函数:getw函数 putw函数 4.3.7 以低级的方式读写文件 967 范例4-15 以低级的方式读写文件 967 ∷相关函数:read函数 write函数 4.3.8 按结构读写文件 969 范例4-16 按结构读写文件 969 ∷相关函数:read函数 write函数 4.3.9 格式化写文件 971 范例4-17 格式化写文件 971 ∷相关函数:fprintf函数 4.3.10 格式化读文件 972 范例4-18 格式化读文件 972 ∷相关函数:fscanf函数 4.3.11 以行为单位写文件 974 范例4-19 以行为单位写文件 974 ∷相关函数:fputs函数 4.3.12 以行为单位读文件 975 范例4-20 以行为单位读文件 975 ∷相关函数:fgets函数 4.3.13 将缓冲区内容写入文件 977 范例4-21 将缓冲区内容写入文件 977 ∷相关函数:setbuf函数 4.3.14 用lseek函数定位文件指针 978 范例4-22 用lseek函数定位文件指针 978 ∷相关函数:lseek函数 4.3.15 获取文件流的文件句柄 980 范例4-23 获取文件流的文件句柄 980 ∷相关函数:fileno函数 4.3.16 从文件流指针中导出文件句柄 982 范例4-24 从文件流指针中导出文件句柄 982 ∷相关函数:fopen函数 4.3.17 利用eof函数判断文件是否结束 984 范例4-25 利用eof函数判断文件是否结束 984 ∷相关函数:eof函数 4.3.18 利用feof函数判断文件结尾 986 范例4-26 利用feof函数判断文件结尾 986 ∷相关函数:feof函数 4.3.19 刷新I/O流 988 范例4-27 刷新I/O流 988 ∷相关函数:fflush函数 4.3.20 利用tmpnam函数创建临时文件名 990 范例4-28 利用tmpnam函数创建临时文件名 990 ∷相关函数:tmpnam函数 4.3.21 创建真正的临时文件 992 范例4-29 创建真正的临时文件 992 ∷相关函数:tmpfile函数 4.3.22 创建文件 993 范例4-30 创建文件 993 ∷相关函数:creat函数 4.3.23 在指定目录中创建唯一文件 995 范例4-31 在指定目录中创建唯一文件 995 ∷相关函数:creattemp函数 4.3.24 利用creatnew函数创建新文件 996 范例4-32 利用creatnew函数创建新文件 996 ∷相关函数:creatnew函数 4.3.25 删除文件 998 范例4-33 删除文件 998 ∷相关函数:remove函数 4.3.26 查找文件获取文件的路径 1000 范例4-34 查找文件获取文件的路径 1000 ∷相关函数:searchpath函数 4.3.27 分解文件路径 1001 范例4-35 分解文件路径 1001 ∷相关函数:fnsplit函数 4.3.28 建立文件完全路径名 1003 范例4-36 建立文件完全路径名 1003 ∷相关函数:fnmerge 函数 4.3.29 读取文件分配表信息 1005 范例4-37 读取文件分配表信息 1005 ∷相关函数:getfat函数 getfatd函数 4.3.30 判断读写所在的文件的位置 1007 范例4-38 判断读写所在的文件的位置 1007 ∷相关函数:ftell函数 4.3.31 重命名文件 1009 范例4-39 重命名文件 1009 ∷相关函数:rename函数 4.3.32 判断访问文件的模式 1011 范例4-40 判断访问文件的模式 1011 ∷相关函数:access函数 4.3.34 设置文件访问模式 1013 范例4-41 设置文件访问模式 1013 ∷相关函数:chmod函数 4.3.35 显示文件的属性 1015 范例4-42 显示文件的属性 1015 ∷相关函数:_chmod函数 4.3.36 检测文件流的错误 1017 范例4-43 检测文件流的错误 1017 ∷相关函数:ferror函数 4.3.37 判断文件的长度 1019 范例4-44 判断文件的长度 1019 ∷相关函数:filelength函数 4.3.38 通过句柄设置打开文件的方式 1022 范例4-45 通过句柄设置打开文件的方式 1022 ∷相关函数:setmode函数 4.3.39 读取文件的时间和日期标记 1023 范例4-46 读取文件的时间和日期标记 1023 ∷相关函数:getftime函数 4.3.40 设置文件的时间和日期标记 1026 范例4-47 设置文件的时间和日期标记 1026 ∷相关函数:setftimet函数 4.3.41 改变文件的长度 1028 范例4-48 改变文件的长度 1028 ∷相关函数:chsize函数 4.3.42 控制文件打开操作的读写模式 1029 范例4-49 控制文件打开操作的读写模式 1029 ∷相关函数:umask函数 4.3.43 复制文件句柄 1032 范例4-50 复制文件句柄 1032 ∷相关函数:dup函数 4.3.44 强制复制文件句柄 1033 范例4-51 强制复制文件句柄 1033 ∷相关函数:dup2函数 4.3.45 用句柄判断读写所在的文件的位置 1036 范例4-52 用句柄判断当前文件指针的位置 1036 ∷相关函数:tell函数 4.3.46 根据当前位置定位文件指针 1038 范例4-53 根据当前位置定位文件指针 1038 ∷相关函数:fseek函数 4.3.47 获取文件句柄的信息 1039 范例4-54 获取文件句柄的信息 1039 ∷相关函数:fstat函数 4.3.48 重新打开文件流 1041 范例4-55 重新打开文件流 1041 ∷相关函数:freopen函数 4.4 本章小结 1043 第5章 系统调用 1045 5.1 时间和日期的操作 1046 5.1.1 获取当前的时间和日期 1046 范例5-1 获取当前时间和日期 1046 ∷相关函数:time函数 5.1.2 让程序延时指定的时间段 1047 范例5-2 让程序延时指定的时间段 1047 ∷相关函数:delay函数 5.1.3 比较两个时间 1048 范例5-3 比较两个时间 1048 ∷相关函数:difftime函数 5.1.4 读BIOS计时器 1050 范例5-4 读BIOS计时器 1050 ∷相关函数:biostime函数 5.1.5 比较两个时间获取当地时间 1051 范例5-5 获取当地时间 1051 ∷相关函数:localtime函数 5.1.6 获取格林威治平时 1052 范例5-6 获取格林威治平时 1052 ∷相关函数:gmtime函数 5.1.7 获取DOS系统时间 1054 范例5-7 获取DOS系统时间 1054 ∷相关函数:gettime函数 5.1.8 获取DOS系统日期 1055 范例5-8 获取DOS系统日期 1055 ∷相关函数:getdate函数 5.1.9 设置DOS系统时间 1057 范例5-9 设置DOS系统时间 1057 ∷相关函数:settime函数 5.1.10 设置DOS系统日期 1059 范例5-10 设置DOS系统日期 1059 ∷相关函数:setdate函数 5.1.11 获取时区信息 1061 范例5-11 获取时区信息 1061 ∷相关函数:ftime函数 5.2 BIOS的操作 1062 5.2.1 利用BIOS获取打印机的状态 1062 范例5-12 利用BIOS获取打印机的状态 1062 ∷相关函数:biosprint函数 5.2.2 获取Ctrl+Break信息 1064 范例5-13 获取CTRL+BREAK信息 1064 ∷相关函数:getcbrk函数 5.2.3 暂时挂起程序 1066 范例5-14 暂时挂起程序 1066 ∷相关函数:sleep函数 5.2.4 控制声音 1067 范例5-15 控制声音 1067 5.2.5 利用bdos函数访问DOS服务 1068 范例5-16 利用bdos函数访问DOS服务 1068 ∷相关函数:bdos函数 5.2.6 获取BIOS常规内存数量 1071 范例5-17 获取BIOS常规内存数量 1071 ∷相关函数:biosmemory函数 5.2.7 获取寄存器设置信息 1072 范例5-18 获取寄存器设置信息 1072 ∷相关函数:segread函数 5.3 内存的操作 1074 5.3.1 给内存区域赋值 1074 范例5-19 给内存区域赋值 1074 ∷相关函数:memset函数 5.3.2 获取时区信息复制内存区域 1076 范例5-20 复制内存区域 1076 5.3.3 复制内存区域指定的字节 1078 范例5-21 复制内存区域指定的字节 1078 ∷相关函数:memccpy函数 5.3.4 获取时区信息 1080 范例5-22 比较两个无符号字符数组 1080 5.3.5 交换字符串的两个相邻字节内容 1082 范例5-23 交换字符串的两个相邻字节内容 1082 ∷相关函数:swab函数 5.3.6 利用brk函数改变堆的大小 1084 范例5-24 利用brk函数改变堆的大小 1084 ∷相关函数:brk函数 5.3.7 获取指定内存单元内容 1086 范例5-25 获取指定内存单元内容 1086 5.3.8 设置指定内存单元内容 1088 范例5-26 设置指定内存单元内容 1088 5.4 本章小结 1090 索引... 1091

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值