自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 那门用Python讲授的程序设计课程能带给学生什么

那门用Python讲授的程序设计课程能带给学生什么?海洋饼干叔叔 @ 重庆大学最近这几年,Python火上天了。历史上,即便是Python它菩提老祖C语言(Python解释器是用C语言写的),也从未那么火过,毕竞在C语言刚出来那个年代,计算机只有很有钱的人家(比尔盖茨他妈是IBM董事,社会活动家)才有,编程还是少数技术人员拥有的特殊技能。Python火起来的最大原因是所谓人生苦短,我用Python。易学易用的特点使得编程不再是需要专业训练的特殊技能,下至高校教师,家里的小祖宗,上至家里管钱管厨房的领导

2020-08-26 18:23:31 708

原创 Python微实践 - 诗意书香,宋风雅韵

请读者留意rhythmic.get(r,0)的应用,当某个词牌名,比如”点绛唇”第一次被for循环发现时,其在rhythmic字典中尚不存在,get()函数的应用可以避免程序出错并返回指定的默认值0。🚩第2 ~ 4行:打开当前工作路径下的文件songci.json,将其中的内容按字符串形式读出,并借由eval()函数进行转换,并将转换结果赋值给ci。每个字典包含一首宋词,其由至少三个键值对构成,其中”author”对应作者姓名,”paragraphs”对应宋词正文,”rhythmic”则对应词牌名。

2023-07-13 19:33:16 449

原创 Python微实践 - 布莱切利庄园的秘密

二战时期,英国数学家、计算机科学之父Alan Turing在布莱切利庄园成功破译了德军密码,为赢得世界反法西斯战争的胜利做出了重大贡献

2023-07-10 21:52:43 304

原创 各种常用C/C++集成开发环境的安装与配置

为了更加美好的生活,我们为菜鸟们准备了如下常用C/C++集成开发环境的安装和配置指南:

2023-02-18 20:25:35 681 1

原创 C/C++程序的断点调试 - Microsoft Visual Studio

本文以Microsoft Visual Studio为例,简述C/C++程序断点调试的基本方法和过程。其它的IDE环境,大同小异。

2022-12-20 18:49:01 760

原创 C/C++程序的断点调试 - Dev C++

本文以Dev C++ 5.11为例,简述C/C++程序断点调试的基本方法和过程。其它的IDE环境,大同小异。

2022-12-17 12:28:22 3619 1

原创 C/C++程序的断点调试 - CodeBlocks

本文以CodeBlocks为例,简述C/C++程序断点调试的基本方法和过程。其它的IDE环境,大同小异。

2022-12-15 18:29:31 490

原创 C/C++程序的断点调试 - Visual Studio Code

本文以Visual Studio Code为例,简述C/C++程序断点调试的基本方法和过程。其它的IDE环境,大同小异。

2022-12-13 10:30:52 1760

原创 C/C++:双重循环中的break

break语句的执行只会导致其所在层的循环被中止。在一个嵌套的双重循环中,处于内层循环内的break被执行时,只会导致内层循环的中止,外层循环不受影响。

2022-11-28 08:22:04 3232 1

原创 Microsoft Visual Studio C++开发环境的配置及使用

Microsoft Visual Studio C++开发环境的配置及使用

2022-11-24 23:57:14 3470 1

原创 CodeBlocks C++开发环境的配置及使用

CodeBlocks C++开发环境的配置及使用

2022-11-23 17:22:30 1973

原创 Dev C++开发环境的配置及使用

Dev C++开发环境的配置及使用

2022-11-21 22:31:38 2503

原创 C语言,从联合看字节序

C语言中的联合(union)类型为我们提供了操纵和解读“数据”的独特方式,它允许对同一块内存以不同的方式进行解读和操纵。

2022-11-15 13:31:23 361 1

原创 C++里的移动语义 ~ 偷走一个对象里的资源,移入另一个对象

C++提供了**移动拷贝构造函数**以及**移动赋值函数**,它们可以把一个预期不再被需要的对象的资源,如string对象的缓冲区,直接移入另一个对象,从而避免不必要的对象复制行为,进而提高程序运行的效率。

2022-11-08 21:30:49 206

原创 C/C++微实践 - 分形蕨类树叶

借助于4个线性方程组,“凭空”生成一片分形的蕨类植物树叶,感受数学之美。

2022-11-07 09:31:23 859

原创 C/C++微实践 - 细胞计数

从一张二值化的动物组织照片中识别并统计出细胞的数量,涉及文件操作以及图的宽度优先遍历算法。

2022-11-05 11:42:24 2511 2

原创 C/C++微实践 - 发现圆周率

除了祖冲之的割圆法和格雷戈里公式,借助于循环和随机数,我们还可以通过一种特别有趣的方法来估算圆周率。

2022-11-04 11:59:35 3381 2

原创 UTF-8编码及非英文字符的处理与显示

char类型只包含1个字节的存储空间,而1个字节最多能表达256种不同的值。如果只表达英文字符及其标点符号,1个字节足够。但其它文字,比如中文,其“字符”有数万之多。在编码其它语言文字时,可能会使用到不同的多字节编码方案。

2022-11-03 08:44:33 1142 1

原创 在Windows下用mingw手工编译程序

本文是与《C++编程基础及应用》(暂定名)**第12章 - 编译及构建**配套的操作指南,用于演示在Windows命令行环境下使用mingw编译器手工编译并运行程序的过程。

2022-11-02 11:12:08 1762

原创 C/C++函数调用过程的汇编代码分析(arm64指令集)

函数调用过程的汇编代码分析(arm64指令集),顺便关注一下栈空间的分配与回收。

2022-11-01 08:49:39 789

原创 C/C++布尔运算的短路

对于表达式a && b,当a为假时,整个逻辑表达式的结果必为假,评估表达式b的值是不必要的。同样的情况也发生在表达式c || d中,当c为真时,d的真假不影响整个表达式的值。在上述情形下,编译器会略过表达式b和d的运算,这种行为就好比电路“短路”时,电流总是沿阻抗最低的“近路”行进,称之为“布尔运算的短路”。

2022-10-31 08:47:26 789

原创 用C语言读写文本文件

本节主要讨论如何使用C语言读写文本文件。

2022-10-30 18:38:00 5449

原创 用C语言随机读写二进制文件

本节主要讨论如何使用C语言随机读写二进制文件。

2022-10-28 11:17:26 1845

原创 C语言: “老板,来两份外卖,一份卤肉饭(%d),一份鸡汤面(%f)...“

C语言控制台应用中获取用户输入主要靠scanf()函数。在这本以C++作为主线的程序设计教材里,scanf()函数并非必须介绍的内容,故以在线扩展阅读的形式提供。

2022-10-26 09:17:21 224

原创 C++, 多态应用举例之Word

在花费了很多的时间学习多态之后,我们有必要通过一个示例向读者展示多态技术在实践中不可或缺的重要价值。我们从大家常用的文字编辑软件说起。

2022-10-24 10:04:51 1088

原创 C/C++描述 - 矩阵乘积的计算

矩阵运算是现代科学及工程计算的基石之一,而矩阵乘法则是其中最常见一种运算。对于二维矩阵A、B,如果A的列数等于B的行数,则矩阵A、B可乘,其结果矩阵C的行数等于A的行数,列数等于B的列数。

2022-10-23 11:32:41 3028

原创 C/C++描述 - 分治法及归并排序

将两个有序的子数组合并为一个整体有序的数组跟幼稚园里小朋友排队的道理差不多。假设小一班和小二班的小朋友已经按照身高由低到高排好队了,你是幼儿园老师,需要将小一班和小二班的队列合并为按身高由低到高的单一队列,那么,你很容易得到下述算法:比较排头位的两位小朋友的身高,将其中较矮的小朋友“拉”到新的队列中去;重复上述过程直至两个队列的小朋友都被拉完为止。如果其中一个队列的小朋友提前被拉完,那么另一个队列的剩余小朋友依次拉入新队列即可。

2022-10-22 11:29:33 1231

原创 C++中使用boost库存取ini结构化文本文件

包含如下内容的文件dora.ini存储了学号为20210426的某同学的姓名、年龄、以及已修三门课程的名称和分数。这种名为ini的文件格式可以很方便地存储结构化的对象信息。相较于自行设计文本文件的内容结构,直接使用ini格式既方便,扩展性又好。本实践中,我们借助于大名鼎鼎的boost库来解析ini文件。

2022-10-21 10:30:57 999

原创 C/C++中如何让程序接受并处理命令行参数

经由操作系统,用户可以为应用程序的运行指定额外参数,进而影响应用程序的行为。对于C/C++程序而言,经由操作系统提供的运行参数可由main()函数获取并处理。

2022-10-20 10:29:50 1343 2

原创 用C++实现设计模式中的单件

设计模式(design patterns)是软件体系结构中一个比较深入的话题。其中,单件(singleton)模式是其中最简单的一种,它描述了下述应用场景其及解决方案:在程序中,有些类型我们最多只需要一个对象,比如数据库连接、错误日志记录器等等。单件模式试图通过特殊的类设计确保该类型最多只能被实例化一次。

2022-10-20 10:26:33 487

原创 用C++做数据分析 - 唐代诗人的朋友圈

通过分析全唐诗中各位诗人之间的“引用”关系,可以描绘出当时诗坛的大致朋友圈图景:谁跟谁熟?谁是圈子里的带头大哥?全唐诗有4万多首,人工一首一首地筛查费时费力,这种重复的统计性质的工作正是计算机最擅长的。

2022-10-17 23:24:30 2381 1

原创 C/C++里的指针与常量:指向常量的指针 vs. 指向变量的常量型指针

如果试图把一个指向常量对象的指针(&a)赋值给一个指向非常量对象的指针(p1),C++编译器会拒绝(C编译器不会)。

2022-10-16 10:15:45 143

原创 C/C++里危险的宏(Macro)

我们不建议初学者使用宏,因为使用宏的收益远不足以抵消其带给初学者的风险。

2022-10-15 09:04:09 887 2

原创 const float (*a)[3] ? 这是个啥,劝退神器?

C语言的设计者还给我们准备了难以理解的另一种参数数组定义格式,以便让我们知难而退。

2022-10-14 10:04:52 436

原创 C/C++中广受诟病但又依然在用的古老的goto语句

C++中的goto语句用于跳转程序的执行点至指定位置。从效率上看,goto很高效,从软件工程角度,goto语句的使用容易导致程序逻辑混乱、变得难以理解和维护。

2022-10-11 09:52:26 150

原创 【C/C++】一个有点炫技的不必要的“复杂”的for循环示例

C/C++里for循环的初始化语句、测试及更新表达式可以是任意合法的语句/表达式,甚至可以空缺。当初始化语句及测试表达式空缺时,需要用一个分号占位。灵活运行上述特性,可以写出很“复杂”的for循环。

2022-10-10 09:35:46 838

原创 【C/C++】中的隐式类型转换 ~ 关于整数除以整数,商仍为整数的问题

在下述三种情况下,C/C++会进行隐式类型转换(implicit type cast):①变量初始化或者赋值时,值与变量的类型不同;②表达式中不同类型的变量/值进行运算时;③函数参数传递▲时。

2022-10-09 11:12:18 942

原创 C/C++里反直觉并且容易导致错误的逗号操作符

在整数a、b已经被定义的前提下,a = (b++,a*2)是合法的C++代码,其中的逗号是一个操作符。在作者看来,C++中的逗号操作符是一项非常反直觉并且容易导致错误的语法特性,建议读者非必要不使用。

2022-10-08 09:42:14 122

原创 【C/C++】 if (a=1) {...}, 每年都有无数学生犯的错 ~ 说说赋值操作符

a = 3中的赋值(assignment)操作符除了将3传递给变量a之外,还有其它额外功能。

2022-10-07 09:15:13 246 1

原创 C/C++里危险的递增和递减操作符

多年的实践证明,递增和递减操作符的不恰当使用是诸多软件缺陷的来源。在那些新的编程语言比如Python里,不提供递增及递减操作符。

2022-10-06 09:20:48 539 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除