郭炜专题

C++面向对象程序设计-北京大学-郭炜【课程笔记(七)】

C++面向对象程序设计-北京大学-郭炜【课程笔记(七)】 1、类型转换运算符2、自增、自减运算符的重载3、继承和派生的基本概念3.1、基本概念3.2、派生类对象的内存空间 4、继承关系和复合关系4.1、继承关系的使用4.2、复合关系的使用 5、派生类覆盖基类成员6、存储权限说明符:protected7、派生类的构造函数8、public继承的赋值兼容规则9、直接基类与间接基类(套娃)

程序设计与算法二郭炜递归004二的幂次方表示及解题思路

题目 任何一个正整数都可以用2的幂次方表示。例如: 137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7=22+2+20(21用2表示) 3=2+20 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如: 1315=2^10+2^8

程序设计与算法二郭炜递归003全排列及解题思路

题目 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有’a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。 输入 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。 输出 输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义:

程序设计与算法二郭炜枚举002拨钟问题及解题思路

题目 有9个时钟,排成一个3*3的矩阵。 现在需要用最少的移动,将9个时钟的指针都拨到12点的位置。共允许有9种不同的移动。如下表所示,每个移动会将若干个时钟的指针沿顺时针方向拨动90度。 移动 影响的时钟 1 ABDE 2 ABC 3 BCEF 4 ADG 5 BDEFH 6 CFI 7 DEGH 8 GHI 9 EFHI 输入 9个整数,表示各时钟指针的起始位置,相邻两个整数之间用单

程序设计与算法二郭炜枚举001特殊密码锁及解题思路

题目 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。 然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转。当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮。 当前密码锁状态已知,需要解决的问题是,你至少需要按多少次按钮,才能将密码锁转变为所期望的目标状态。 输入 两行,给出两个由0、1组

郭炜老师mooc第十一章数据分析和展示(numpy,pandas, matplotlib)

多维数组库numpy numpy创建数组的常用函数 # numpy数组import numpy as np #以后numpy简写为npprint(np.array([1,2,3])) #>>[1 2 3]print(np.arange(1,9,2)) #>>[1 3 5 7] 不包括9print(np.linspace(1,10,4)) #>>[ 1. 4. 7. 10.

郭炜老师mooc第九章正则表达式

正则表达式 正则表达式是个某些字符有特殊含义字符串,表示一种字符串的模式(格式) 正则表达式中的功能字符  d:digits:spacew:word  花括号量词{m,n},逗号后面要紧跟数字,不能打空格,否则输出结果和你想象的不一样,当然我并不知道为什么! import rept = "\d{1, 3}"print(re.findall(pt, "1234567890"))

C++面向对象程序设计-北京大学-郭炜【课程笔记(五)】

C++面向对象程序设计-北京大学-郭炜【课程笔记(五)】 1、常量对象、常量成员函数1.1、常量对象1.2、常量成员函数1.3、常引用 2、友元(friends)2.1、友元函数2.2、友元类 3、运算符重载的基本概念3.1、运算符重载 4、赋值运算符的重载4、重载赋值运算符的意义 – 浅拷贝和深拷贝5、运算符重载为友元 写毕业论文中:学习速度较慢 开始课程:P14 4-4.常量对

C++面向对象程序设计-北京大学-郭炜【课程笔记(四)】

C++面向对象程序设计-北京大学-郭炜【课程笔记(四)】 1、this指针1.1、this指针的作用1.2、this指针和静态成员函数 2、静态成员变量和静态成员函数2.1、基本概念2.2、基本概念总结2.3、如何访问静态成员2.4、静态成员变量的使用场景(重要)2.5、2.4节中CRectangle类写法,有何缺陷? 3、成员对象和封闭类3.1、封闭类构造函数的初始化列表3.2、封闭类构造

C++面向对象程序设计-北京大学-郭炜【课程笔记(三)】

C++面向对象程序设计-北京大学-郭炜【课程笔记(三)】 1、构造函数(constructor)1.1、基本概念 2、赋值构造函数2.1、基本概念2.1、复制构造函数起作用的三种情况2.2、常引用参数的使用 3、类型转换构造函数3.1、什么事类型转换构造函数 4、析构函数4.1、什么是析构函数4.2、析构函数和数组4.3、析构函数和运算符 delete 5、构造函数析构函数调用时机

C++面向对象程序设计-北京大学-郭炜【课程笔记(二)】

C++面向对象程序设计-北京大学-郭炜【课程笔记(二)】 1、结构化程序设计结构化程序设计的不足 2、面向对象的程序设计2.1、面向对象的程序设计2.2、从客观事物抽象出类2.3、对象的内存分配2.4、对象之间的运算2.5、使用类的成员变量和成员函数`用法1:对象名.成员名``用法2:指针->成员名``用法3:引用.成员名` 2.6、类成员的可访问范围2.6.1、代码实例2.6.2、priv

C++面向对象程序设计-北京大学-郭炜【课程笔记(一)】

C++面向对象程序设计-北京大学-郭炜【课程笔记(一)】 1、引用的概念1.1、引用应用的简单示例1.2、常引用 2、"const"关键字的用法(常量指针/指针常量)3、动态内存分配4、内联函数5、函数重载5.1、什么是函数重载5.2、函数的缺省参数 1、引用的概念 下面的写法定义了一个引用,并将其初始化为引用某哥变量。 类型名 & 引用名 = 某变量名; 某个变量的引用,等

程序设计实习 刘家瑛 郭炜

北京大学:程序设计实习 刘家瑛 郭炜 章节内容 从C走进C++ 1.1函数指针 1.2命令行参数 1.3位运算 1.4引用 1.5const关键字和常量 1.6动态内存分配 1.7内联函数和重载函数 1.8函数缺省参数 类和对象初探 2.1面向对象程序设计方法 2.2面向对象语言的发展历程

北京大学郭炜-生理周期 思路细讲

北京大学郭炜-生理周期 人有体力、情商、智商的高峰日子,它们分别每隔 23天、28天和33天出现一次。对于每个人,我们想 知道何时三个高峰落在同一天。给定三个高峰出现 的日子p,e和i(不一定是第一次高峰出现的日子), 再给定另一个指定的日子d,你的任务是输出日子d 之后,下一次三个高峰落在同一天的日子(用距离d 的天数表示)。例如:给定日子为10,下次出现三 个高峰同一天的日子是12,则输出2