1.3课后阅读 ·5 1.23算法的描述方法与基本控制结构 (①)算法的描述方法:自然语言,流程图(见下图左),伪代码(见下图右)等 开始 算法12U分解 1:fork I ton-1 do 输入a,b fori=k+ltondo lk=ak/a%计算L的第k列 and for a>b? fori=ton do max=a max=b fori=k+lton do forj=k+l ton do 更新Ak+1:+1:m 了输出max end for 结束 end for 白注记:流程图:简洁、直观、准确: 伪代码:易于编程实现 (2)算法的三种基本控制结构:顺序结构,选择结构,循环结构. 顺序结构是最基本、也是最常用的程序设计结构,它按照程序语句行的自然顺序,一条一条地 执行程序: 选择结构,又称分支结构或条件结构,包括简单选择和多分支选择结构,可根据条件,判断应该 选择哪一条分支来执行; 循环结构,可根据给定的条件,判断是否需要重复执行某一相同的程序段 e型福 顺序结构 选择结构 循环结构 凸注记:三种结构的共同点:(1)只有一个入口:(2)只有一个出口;(3)结构内每一部分都有材 会赦执行:(④)结枸内不存在“死循环”· 1.3课后阅读 ·EEE浮点运算标准,了解计算机中浮点数是怎样存储和运算的, http://math.ecnu.edu.cn/-jypan
1.3 课后阅读 · 5 · 1.2.3 算法的描述方法与基本控制结构 (1) 算法的描述方法: 自然语言, 流程图(见下图左), 伪代码(见下图右)等. 开始 输入 a, b a>b? max=a 结束 max=b 输出 max Yes No b 注记:流程图: 简洁、直观、准确; 伪代码: 易于编程实现. (2) 算法的三种基本控制结构: 顺序结构, 选择结构, 循环结构. • 顺序结构是最基本、也是最常用的程序设计结构, 它按照程序语句行的自然顺序, 一条一条地 执行程序; • 选择结构, 又称分支结构或条件结构, 包括简单选择和多分支选择结构, 可根据条件, 判断应该 选择哪一条分支来执行; • 循环结构, 可根据给定的条件, 判断是否需要重复执行某一相同的程序段. 顺序结构 选择结构 循环结构 b 注记:三种结构的共同点: (1) 只有一个入口; (2) 只有一个出口; (3) 结构内每一部分都有机 会被执行; (4) 结构内不存在“死循环”. 1.3 课后阅读 • IEEE 浮点运算标准, 了解计算机中浮点数是怎样存储和运算的. http://math.ecnu.edu.cn/~jypan 仅供课堂教学使用,请勿外传
6. 第一讲计算机基础 1.4课后练习 仅供课堂教学使用,请仍外传 练习1.1将下列二进制数转化为十进制数 101,100111.11010.011 练习1.2将下列十进制数转化为二进制数: 101,0.5625,93.328125 练习1.3(思考)如何计算小数的补码 http://math.ecnu.edu.cn/-jypan
· 6 · 第一讲 计算机基础 1.4 课后练习 练习 1.1 将下列二进制数转化为十进制数: 101, 100111, 11010.011 练习 1.2 将下列十进制数转化为二进制数: 101, 0.5625, 93.328125 练习 1.3 (思考) 如何计算小数的补码. http://math.ecnu.edu.cn/~jypan 仅供课堂教学使用,请勿外传
第二讲C+编程基础 本讲主要内容: ·C+语言概述 .C+的发展 ·C+源程序结构与书写规范 ·C+编译器和集成开发环境 ·C+编程基础 C+字符集:标识符,关键宁 ·C+数据类型与类型转换 ·变量、常量、符号常量 ·运算符、运算优先级 .语句与表达式 ·数据的简单输入输出 输出:cout,输入:cin 操纵符:控制输出的格式 C+是一门广泛使用的面向对象编程语言,其语法丰富,且灵活高效,是当前高性能科学计算和大 型软件开发的首选编程语言.但C+同时也是一门不易掌握的编程语言,尤其是使用其高级特性时,需 要深人了解它的底层. 学习编程是一个循序渐进的过程,通过本课程,希望大家能: ·掌握C+的基本语法规则,熟练阅读和分析C+程序源代码,并掌握类与对象的相关知识 ·掌握算法设计基本思想和方法,培养面向对象的程序设计能力,掌握基本的编程和调试技术, ·培养编程兴趣,了解内存、编译和链接相关知识,弄清编程语言的内在机理 业学习C+,不仅要理解C+编程的基本概念,掌提语言的技术细节,更重要的是培养编程思维 2.1C+语言概述 ·C+是从C语言发展演变而来,可以看成是C的超集:1 ·1979年,当时在美国AT&T公司贝尔实验室工作的Bjare Stroustrup博士开始开发一门新语言,当 时称为“C with Classes”,目的是将面向对象编程技术添加到C语言中: ·1983年,在Rick Mascitti的建议下,正式取名为C+(或CPlusPlus): the Cprogramming language..”有学者可能持不同的观点,但这不影响C+的学习 7
第二讲 C++ 编程基础 本讲主要内容: • C++ 语言概述 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境 • C++ 编程基础 C++ 字符集: 标识符, 关键字 C++ 数据类型与类型转换 变量、常量、符号常量 运算符、运算优先级 语句与表达式 • 数据的简单输入输出 输出: cout, 输入: cin 操纵符: 控制输出的格式 C++ 是一门广泛使用的面向对象编程语言, 其语法丰富, 且灵活高效, 是当前高性能科学计算和大 型软件开发的首选编程语言. 但 C++ 同时也是一门不易掌握的编程语言, 尤其是使用其高级特性时, 需 要深入了解它的底层. 学习编程是一个循序渐进的过程, 通过本课程, 希望大家能: • 掌握 C++ 的基本语法规则, 熟练阅读和分析 C++ 程序源代码, 并掌握类与对象的相关知识; • 掌握算法设计基本思想和方法, 培养面向对象的程序设计能力, 掌握基本的编程和调试技术; • 培养编程兴趣, 了解内存、编译和链接相关知识, 弄清编程语言的内在机理. K 学习 C++, 不仅要理解 C++ 编程的基本概念, 掌握语言的技术细节, 更重要的是培养编程思维! 2.1 C++ 语言概述 • C++ 是从 C 语言发展演变而来, 可以看成是 C 的超集; 1 • 1979 年, 当时在美国 AT&T 公司贝尔实验室工作的 Bjarne Stroustrup 博士开始开发一门新语言, 当 时称为“C with Classes”, 目的是将面向对象编程技术添加到 C 语言中; • 1983 年, 在 Rick Mascitti 的建议下, 正式取名为 C++(或 CPlusPlus); 1Bjarne Stroustrup 在其著作“The C++ Programming Language”的第一版序言中说: “Except for minor details, C++ is a superset of the C programming language.”有学者可能持不同的观点, 但这不影响 C++ 的学习 7 仅供课堂教学使用,请勿外传
.8 第二讲C+编程基础 ·1989年,ANSI开始C+的标准化工作: ·1998年S0发布了C+的第一个国际标准,通称C+98: ·2003年,C+标准委员会对C+98中的问题进行了修订,发布了C+03版本 ·2011年8月发布C+11,增加了多线程支持、通用编程支持等,标准库也有很多变化 ·2014年8月发布C+14,是对C+11的小范围扩展,主要内容是修复bug和提高性能: ·2017年3月发布C+17.(最新进展见http:/isocpp.org/std/status) 2.1.1C+源程序结构 1 include<iostream>/预处理命令,载入库文件(也称为头文件) 2 using name5 pace std;/使用标准命名室间,即导入其中声明的所有命令、函数等 3 int main()/主函数 5 cout<"He1lo”<endl;/标准输出 6 cout <"Wellcome to C++!"<<endl: return 0; 8 ·C+源程序由一个或多个源文件组成: ·每个源文件可由一个或多个函数组成: ·一个源程序有且只能有一个main函数,即主函数 ·程序执行从main开始,在main中结束; ·源程序中可以有预处理命令(通常以“#”开头),通常应放在源文件或源程序的最前面: ·一行可以写多个语句,一个语句也可以分几行书写: ·“”是注释符 2.1.2C+源程序书写规范 ·每条语句以分号“;”结尾,但预处理命令,函数头和右花括号“)”之后不需要加分号 ·标识符、关键字之间至少加一个空格表示间隔,若已有明显的间隔符,也可不加: ·C+区分大小写,习惯用小写字母: ·常用锯齿形书写格式。 白注记:注惑:所有标点符号必须在英文状态下输入! 。书写漂亮的程序: ·花括号{}要对齐 ·一行写一个语句,一个语句写一行 ●使用TAB缩进: ·有合造的空行:有足够的注释。 http://math.ecnu.edu.cn/-jypan
· 8 · 第二讲 C++ 编程基础 • 1989 年, ANSI 开始 C++ 的标准化工作; • 1998 年 ISO 发布了 C++ 的第一个国际标准, 通称 C++98; • 2003 年, C++ 标准委员会对 C++98 中的问题进行了修订, 发布了 C++03 版本; • 2011 年 8 月发布 C++11, 增加了多线程支持、通用编程支持等, 标准库也有很多变化; • 2014 年 8 月发布 C++14, 是对 C++11 的小范围扩展, 主要内容是修复 bug 和提高性能; • 2017 年 3 月发布 C++17. (最新进展见 http://isocpp.org/std/status) 2.1.1 C++ 源程序结构 1 #include <iostream> // 预处理命令, 载入库文件(也称为头文件) 2 using namespace std; // 使用标准命名空间, 即导入其中声明的所有命令、函数等 3 int main() // 主函数 4 { 5 cout << "Hello" << endl; // 标准输出 6 cout << "Wellcome to C++!" << endl; 7 return 0; 8 } • C++ 源程序由一个或多个源文件组成; • 每个源文件可由一个或多个函数组成; • 一个源程序有且只能有一个 main 函数, 即主函数; • 程序执行从 main 开始, 在 main 中结束; • 源程序中可以有预处理命令(通常以“#”开头), 通常应放在源文件或源程序的最前面; • 一行可以写多个语句, 一个语句也可以分几行书写; •“//”是注释符. 2.1.2 C++ 源程序书写规范 • 每条语句以分号“;”结尾, 但预处理命令, 函数头和右花括号“}”之后不需要加分号; • 标识符、关键字之间至少加一个空格表示间隔, 若已有明显的间隔符, 也可不加; • C++ 区分大小写, 习惯用小写字母; • 常用锯齿形书写格式. b 注记:注意: 所有标点符号必须在英文状态下输入! K 书写漂亮的程序: • 花括号 { } 要对齐; • 一行写一个语句, 一个语句写一行; • 使用 TAB 缩进; • 有合适的空行; 有足够的注释. http://math.ecnu.edu.cn/~jypan 仅供课堂教学使用,请勿外传
2.2C+基础知识 .9 2.13程序编译 ·编译器:将“高级语言”翻译为“机器语言”的工具 ·一个现代编译器的主要工作流程 源代码编译,目标代码链接可执行程序 ·常见的Ct+编译器:Visual C++,GNUC++,Intel C++等等 ·常用的IDE (Integrated Development Environment集成开发环境): (I)Visual Studio:Windows平台上最流行的商业C+集成开发环境 (2)DevC+:小巧,免费,Windows平台上的gc,非常适合学习C+ (3)Code:Blocks:开放源码的全功能跨平台集成开发环境,免费. 2.2C+基础知识 2.2.1C+字符集,标识符,关键字 ·合法的字符集有 (1)字母:包括大写和小写,共52个 (2)数字0到9共10个: (3)空白符:空格符、制表符、换行符: (④标点符号和特殊字符: +-*/=1#%^&()[]{)-~<>\”:;·,? ·C+标识符:用来标识变量名、函数名、对象名等的字符序列 ()由字母、数字、下划线组成第一个字符必须是字母或下划线: (2)区分大小写,不能用关键字: (3)C+不限制标识符长度,实际长度与编译器有关,建议不要超过32个字符: (④命名原则:见名知意,不宜混淆 ·C+关键字:具有特定意义的字符串,也称为保留字,包括:类型标识符、语句定义符(控制命令入、 预处理命令等: 表2.1.C+关键字(部分) bool break case catch char class const continue default delete do double else enum extern false float for friend goto if inline int long namespace new operator private protected public return short signed sizeof static struct switch template this true try typedef typename union unsigned using virtual void while 全部关键字可参见http:/en.cppreference.com/w/cpp/keyword http://math.ecnu.edu.cn/-jypan
2.2 C++ 基础知识 · 9 · 2.1.3 程序编译 • 编译器: 将“高级语言”翻译为“机器语言”的工具; • 一个现代编译器的主要工作流程: 源代码 编译 −−−−−−→ 目标代码 链接 −−−−−−→ 可执行程序 • 常见的 C++ 编译器: Visual C++, GNU C++, Intel C++ 等等 • 常用的 IDE (Integrated Development Environment 集成开发环境): (1) Visual Studio : Windows 平台上最流行的商业 C++ 集成开发环境. (2) Dev C++ : 小巧, 免费, Windows 平台上的 gcc, 非常适合学习 C++. (3) Code::Blocks : 开放源码的全功能跨平台集成开发环境, 免费. 2.2 C++ 基础知识 2.2.1 C++ 字符集, 标识符, 关键字 • 合法的字符集有 (1) 字母: 包括大写和小写, 共 52 个; (2) 数字: 0 到 9 共 10 个; (3) 空白符: 空格符、制表符、换行符; (4) 标点符号和特殊字符: + ‐ * / = ! # % ^ & ( ) [ ] { } _ ~ < > \ ' " : ; . , ? • C++ 标识符: 用来标识变量名、函数名、对象名等的字符序列. (1) 由字母、数字、下划线组成, 第一个字符必须是字母或下划线; (2) 区分大小写, 不能用关键字; (3) C++ 不限制标识符长度, 实际长度与编译器有关, 建议不要超过 32 个字符; (4) 命名原则: 见名知意, 不宜混淆. • C++ 关键字: 具有特定意义的字符串, 也称为保留字, 包括: 类型标识符、语句定义符(控制命令)、 预处理命令等; 表 2.1. C++ 关键字(部分) bool break case catch char class const continue default delete do double else enum extern false float for friend goto if inline int long namespace new operator private protected public return short signed sizeof static struct switch template this true try typedef typename union unsigned using virtual void while † 全部关键字可参见 http://en.cppreference.com/w/cpp/keyword http://math.ecnu.edu.cn/~jypan 仅供课堂教学使用,请勿外传