第1章 ICON语言基础 1
1.1 ICON是什么样的语言 1
1.1.1 ICON语言及其特点 1
1.1.2 ICON语言的发展 3
1.2 ICON的安装 4
1.2.1 如何得到ICON 4
1.2.2 ICON的安装 5
1.2.3 ICON的运行环境 7
1.3 ICON的程序 7
1.3.1 ICON程序的结构 7
1.3.2 ICON程序的建立、编译、运行和调试 9
1.3.3 程序举例 12
1.4.1 过程的组成 14
1.4 过程 14
1.4.2 过程间的数据传递 15
1.5 识别符、运算符、保留字、关键字 17
1.5.1 识别符 17
1.5.2 运算符 17
1.5.3 保留字 18
1.5.4 关键字 19
1.6 常量和变量 20
1.6.1 常量 20
1.6.2 变量 20
1.7 数据类型 22
1.8 语句 23
1.8.1 表达式和语句 23
1.8.2 保留字语句 23
1.8.4 语句的成功、失败和出错 24
1.8.3 注释语句 24
1.9.1 什么是函数 25
1.9.2 函数的调用 25
1.9.3 函数的使用 25
1.9 函数 25
1.9.4 函数和过程 26
1.9.5 函数的分类 26
1.10 与计算机对话 27
练习1 28
第2章 数学运算 29
2.1 数的分类 29
2.1.1 整数(i) 29
2.1.2 实数(r) 29
2.1.3 非十进制整数 29
2.2.2 中加运算符 32
2.2 数学运算符 32
2.2.1 前加运算符 32
2.2.3 运算符的优先级和结合方向 33
2.2.4 程序举例 34
2.3 数学函数 35
2.3.1 一般数学函数 35
2.3.2 三角函数 36
2.3.3 转换函数 36
2.4 与数有关的关键字 36
2.5 程序举例 37
2.6 用输入、输出函数向程序提供数据 38
练习2 39
3.1 定向执行控制结构(if…then…) 40
第3章 控制结构 40
3.2 选择执行控制结构(if…then…else…) 41
3.3 if…then…和if…then…else…语句的嵌套 43
3.4 重复控制结构(repeat…) 46
3.4.1 重复控制 46
3.4.2 中止或跳出循环的方法 46
3.4.3 随机数 47
练习3 49
第4章 字符集和字符串 51
4.1 字符 51
4.1.1 ASCII码 51
4.1.2 字符函数 51
4.2 字符集 52
4.2.1 字符集合 52
4.2.3 字符集的运用 53
4.2.2 字符集的运算 53
4.3 字符串 54
4.3.1 字符串的构成和形式 54
4.3.2 字符串的运算和比较 57
4.4 字符串函数 60
4.4.1 字符串操作函数 60
4.5 汉字和汉字字符集 61
4.5.1 汉字的编码 61
4.5.2 汉字是字符串 63
4.5.3 汉字的大小 64
练习4 65
5.2 打开和关闭文件 66
5.1.2 文本文件、文书文件和二进制文件 66
5.1 设备和文件 66
第5章 输入、输出 66
5.1.1 文件 66
5.2.1 打开文件 67
5.2.2 关闭文件 68
5.3 从文件输入 68
5.4 向文件输出 69
5.5 字符串格式函数 71
5.6 与输入、输出有关的函数 75
5.6.1 键盘函数 75
5.6.2 文件操作函数 75
5.7.1 迭代 76
5.7.2 迭代控制结构 76
5.7 迭代控制结构(every…do…) 76
5.7.3 do…分句的省略 79
5.7.4 every…do…的嵌套 79
5.8 程序举例 81
练习5 86
第6章 字符串分析和搜索 87
6.1 字符串分析 87
6.1.1 字符串分析和字符串分析函数 87
6.1.2 字符串分析函数的比较 88
6.1.3 限定分析对象中的位置 89
6.1.4 字符串分析应用举例 90
6.2 条件循环控制结构 93
6.2.1 条件循环和条件循环控制结构(while…do…) 93
6.2.4 while…do…结构的使用 94
6.2.3 do…分句的省略 94
6.2.2 while…do…的嵌套 94
6.3 字符串搜索 96
6.3.1 字符串搜索和搜索算子 96
6.3.2 比配和比配函数 98
6.3.3 字符串搜索的环境和嵌套 100
6.3.4 字符串搜索应用举例 100
练习6 109
第7章 结构数据 110
7.1 结构数据和下标变量 110
7.2 表 110
7.2.1 表的建立 110
7.2.2 表的运算 111
7.2.3 表的参引 111
7.2.4 表的赋值 112
7.2.5 表处理函数 113
7.2.6 表的使用 115
7.3 集合 119
7.3.1 集合的建立 119
7.3.2 集合的运算 119
7.3.3 集合处理函数 120
7.3.4 集合的使用 120
7.4 索引表 123
7.4.1 索引表的建立 123
7.4.2 索引表的参引和赋值 124
7.4.3 索引表的运算 124
7.4.4 索引表处理函数 124
7.4.5 索引表排序 125
7.4.6 索引表的使用 126
7.5.1 记录的定义 134
7.5 记录 134
7.5.2 记录的处理 135
7.5.3 选择控制结构(case…of…) 136
7.5.4 记录的使用 137
练习7 140
第8章 编译选项、命令行参数和预处理指令 142
8.1 编译选项 142
8.2 命令行参数 144
8.2.1 命令行参数 144
8.2.2 命令行参数的传递 144
8.2.3 命令行参数的使用 144
8.2.4 一个处理命令行参数的过程 146
8.3.2 常用的预处理指令 151
8.3 预处理指令 151
8.3.1 预处理指令及其作用 151
8.3.3 程序举例 154
练习8 156
第9章 排序 158
9.1 排序及其原理 158
9.2 排序的方法和过程 159
9.2.1 冒泡排序法 159
9.2.2 选择排序法 163
9.2.3 谢尔排序法 164
9.3 中文排序 167
9.3.1 汉字内码的特点及排序时的问题 167
9.3.2 汉字排序 167
9.3.3 中文词语排序 174
练习9 177
第10章 多值式和协表达式 178
10.1 多值表达式 178
10.1.1 多值表达式及其特点 178
10.1.2 产生系列值的环境 178
10.1.3 多值表达式 180
10.1.4 多值式做参数时执行的顺序 182
10.1.5 限制多值式产生值的数目 183
10.2 协表达式 183
10.2.1 协表达式及其作用 183
10.2.2 协表达式的建立 183
10.2.3 协表达式的激活 184
10.2.5 协表达式的使用 185
10.2.4 协表达式的更新 185
10.2.6 内设协表达式 191
练习10 191
第11章 编程中的一些技术 192
11.1 递归 192
11.1.1 什么是递归 192
11.1.2 递归过程 193
11.2 非关联化 197
11.2.1 什么是非关联化 197
11.2.2 非关联化算子 198
11.3 值的比较和复制 199
11.3.1 值的比较 199
11.3.2 值的复制 201
11.4 回溯 202
11.4.1 控制回溯 203
11.4.2 数据回溯和可逆赋值算子 204
11.4.3 受约束表达式 205
11.5 模式比配 206
11.5.1 什么是模式比配 206
11.5.2 模式比配表达式 206
11.5.3 比配过程 207
11.6 分批处理和运行时与磁盘交换数据 210
11.6.1 分批处理 210
11.6.2 运行时与磁盘交换数据 213
练习11 220
12.1.1 明确任务 222
12.1.2 明确流程和完成各部分的过程 222
12.1 程序的设计和编写 222
第12章 程序的编写和调试 222
12.1.3 编写各个过程 224
12.1.4 把所有过程联结在一起 229
12.2 程序的调试 234
12.2.1 句法错误的查找和改正 234
12.2.2 逻辑错误的查找和改正 236
练习12 241
附录 242
附录1ASCII字符表 242
附录2数据类型、保留字、关键字和转义字符 243
附录3运算符及其需要的数据类型 245
附录4表达式和表达式的优先级 247
附录5主要内设函数说明 250
附录6预处理指令 264