- 博客(86)
- 收藏
- 关注
原创 C语言进阶:预处理命令(三)
define 宏名 第一行 \第二行 \第三行 \第n行// 替换为 "Hello World"return 0;#可以将宏参数转换为字符串字面量,随后进行替换。
2025-11-14 08:48:32
863
原创 JS宏连接数据库:使用Connections创建的对象
在上一章节中,我们学习了工作簿中的连接对象集合——Connections对象。通过该对象提供的Add方法或Add2方法,可以为当前工作簿创建数据连接。需要注意的是,最终生成的连接对象类型(如OLEDBConnection或ODBCConnection)取决于所使用的连接字符串类型:若连接字符串基于OLEDB协议,则生成OLEDBConnection对象;若基于ODBC协议,则生成ODBCConnection对象。
2025-11-13 18:33:25
848
原创 JS宏连接数据库:认识工作簿上的连接对象
本文介绍了WPS OFFICE中工作簿层面的连接对象Connections及其使用方法。Connections集合包含了工作簿中所有与外部数据源的连接,不同于工作表级的QueryTables。文章详细讲解了Connections的属性和方法,包括Count、Add2、AddFromFile等,重点说明了如何创建和管理工作簿级连接,并指出WPS中与PowerPivot模型相关的参数实际作用有限。通过示例代码展示了连接对象的创建和访问方式,帮助用户实现数据库与工作表的数据交互。
2025-11-13 10:29:39
1009
原创 C语言进阶:预处理命令(二)
预定义宏是指不需要用户使用#define定义就可以使用的特殊宏名称,通常是由预处理器提前定义好的。预定义宏名称是由 _ _ 开头和结尾,中间是大写字符。__LINE__:当前编译代码的行号。__FILE__:当前源程序文件的名称。__DATE__:当前源程序创建日期。__TIME__:当前源程序创建时间。__STDC__:判断当前编译器是否是ANSI C。如果是返回 1。这些定义在实际开发中,结合条件编译可以实现跨平台的效果。
2025-11-13 09:04:41
782
原创 C语言进阶:预处理命令(一)
宏定义是预处理命令的一种,通常使用预处理指令#define来定义。主要是用于定义一个标识符和一个字符串,用这个标识符来代表这个字符串,在程序中每次遇到这个标识符就是用这个字符串来替换它。#define 宏名称 宏字符串#:表示这是一条预处理命令。宏名称:是一个标识符,必须符合C语言中对标识符的命名规范。习惯用大写字符表示宏字符串:可以是常数、表达式或格式字符串假设在宏定义时在末尾添加分号:这里会导致编译报错,因为 PI 被直接替换成了 3.1415926535;造成了语法错误。所以在进行宏定义时,
2025-11-12 08:41:14
721
原创 C语言进阶:位操作
得益于对内存的直接操作和原生位运算支持,现代C语言在系统编程、嵌入式开发等需要精细硬件控制的领域,已能有效替代汇编语言的传统角色。正因如此,掌握C语言必须深入理解位运算的底层机制。
2025-11-11 18:42:13
833
原创 JS宏连接数据库:ODBC在JS宏中的使用
ODBC字符串的优势在于其跨平台性和通用性,通过统一的格式规范,使得不同的应用程序(如ERP系统、数据分析工具等)能够以标准化的方式连接各种主流数据库系统(包括MySQL、SQL Server、Oracle、PostgreSQL等)。现代开发实践中,虽然出现了更先进的连接方式(如ADO.NET、JDBC等),但ODBC字符串仍然是许多遗留系统和跨平台应用中的重要连接机制。MySQL 官方提供的 ODBC 驱动程序叫做 MySQL Connector/ODBC,它是官方维护和支持的,兼容性好。
2025-11-10 09:08:03
733
原创 JS宏连接数据库:工作表上的连接
QueryTables 是工作表中用于管理外部数据查询与连接的对象集合,它代表了一组通过特定数据连接(如 OLEDB、ODBC、Web 查询等)从外部源导入到工作表中的数据区域。每一个通过OLEDB 等方式导入的数据表,通常都会对应一个 QueryTable 对象,你可以通过该对象对数据进行刷新、更改连接、设置参数、控制更新行为等操作。
2025-11-09 12:01:59
1265
原创 C语言进阶:深入理解函数
本文深入探讨C语言函数特性与参数传递机制。研究发现函数名本质上是函数地址,通过实验证实add()、(&add)()和(*add)()三种调用方式完全等价。重点分析了参数传递的两种方式:值传递会创建实参副本,不影响原变量;地址传递通过指针间接修改原变量。文章还警示了返回局部变量地址的危险性,并通过实例展示了结构体参数传递的最佳实践。这些核心概念对编写正确、高效的C程序至关重要。
2025-11-08 17:47:17
934
原创 C语言进阶:共用体和枚举
同一内存虽然可以用来存放不同类型成员,但是每次只能存放一种类型,而不能同时存放所有类型。也就是说,无论共用体中有多少变量,在同一时间类,起作用的有且只有一个。共用体变量中,起作用的永远是最后存放的成员。存入新成员后,原有成员将失去作用。共用体变量的地址与成员地址是一样的,因为他们指向同一片空间不要直接对共用体变量名赋值(看上述示例),也不能企图引用变量名来得到一个值这里Llong就代表long long 这种数据类型,可以用来定义长整型变量。int data;} N;
2025-11-08 16:08:13
717
原创 OLEDB连接对象介绍(一)
参数说明OLEDB连接方式OLE DB 驱动提供程序版本数据库密码User ID=**;数据库用户名连接默认数据库数据库服务器地址(IP或主机名)连接成功后保留密码信息不加密数据传输不信任服务器证书(需要有效证书)网络包大小(字节)连接重试次数重试间隔(秒)启用透明网络IP解析使用存储过程准备语句自动转换字符集客户端计算机名称禁用多活动结果集数据类型兼容模式(0=最新)应用程序意图(读写模式)禁用多子网故障转移。
2025-11-07 16:43:14
776
原创 C语言进阶:结构体与结构体指针
在C语言中,结构体是一种用户自定义的数据类型,它允许将不同类型的数据组合在一起,形成一个逻辑上的整体,便于表示一个对象或实体。// 定义一个结构体类型 Studentint id;// 学号// 姓名// 分数这个 Student 结构体包含三个成员:学号(整型)、姓名(字符数组)、分数(浮点型)。
2025-10-28 14:13:26
389
原创 C语言进阶:深入探讨指针(二)
顾名思义,所谓指向数组的指针,就是用来存储数组地址的指针。// 包含5个int的指针// int (*) [5] :是数组指针类型,表示指向包含 5 个 int 的数组,p 是指针变量注意点:&arr 和 arr 是存在区别的,比如定义一个数组 int arr[n]arr 在大多数表达式中(比如作为函数参数传递、进行算术运算时)会退化为指向其首元素的指针,即类型为 int*,它等价于 &arr[0]。
2025-10-28 10:52:47
688
原创 C语言进阶:数组与指针
空指针:在变量声明的时候,如果没有确切的地址可以赋值,就可以给指针变量赋值位NULL,这样的指针就是空指针。这样的指针指向内存地址为 0,在大多数系统上,内存地址为0处的位置具有特殊意义,所以不能对空指针解引用,否则会触发操作系统的一种内存保护机制。相信通过上面的学习,你已经完全掌握了C语言中的数组和指针的使用。因此,我们不妨将其理解为:一系列相同类型的变量,比如:n1,n2,n3......。元素的索引是放在方括号内,跟在数组名称的后边。相信现在你的表情可能是 😱 这样的,也可能是 😳 这样的。
2025-10-27 11:24:49
700
原创 C语言基础入门(六)
在 C 语言中,函数(Function) 是程序的基本组成单元之一,用于将一段具有特定功能的代码封装起来,实现代码的模块化、复用性和可维护性。通俗来讲,函数是一段能完成特定任务的独立程序代码,它可以接收输入(参数),对参数进行处理。如果需要返回值,就返回相应的结果。(输入参数 --- 处理参数 --- 返回结果(可有可无))在声明函数之后,C 程序知道有这么一个函数的存在,但是不知道这个函数具体是用来做什么的。因此,函数的定义是必须的。
2025-10-21 09:14:45
787
原创 C语言基础入门(五)
更通俗来讲,它是基于一个命题(条件)的真假,来决定返回不同值或执行不同分支的一种表达式。因此,条件表达式中的条件部分,通常就是一个可以判断真假的命题(比如 x > 0、isLoggedIn 等)。上述是一个简单的单条件结构,此外还有多条件结构,比如当条件为真时,在执行操作A中再来一个条件判断,这样又会多出两个分支。这样的代码是非常危险的,如果不进行人为干预,它会一直运行,直到你的电脑cpu爆满导致系统异常。注意:在一个程序中,如果goto太多,容易导致程序混乱,逻辑不清晰,不利于维护。
2025-10-20 15:41:08
610
原创 C语言入门(三)
所谓变量,他是程序可操作区的存储名称。C语言中,每个变量都有自己的类型。这一特性,决定了变量的存储空间。long a;// 在内存中开辟出32个比特位的空间,用于变量a的存储char b;// 在内存中开辟出8个比特位的空间,用于变量b的存储变量类型 标识符变量类型:参考前面的数据类型标识符:也就是变量名称,在命名时须遵守相应标识符规则。
2025-10-17 10:00:13
769
原创 C语言基础入门(二)
VS Code 的绝大多数命令都可以在命令面板里搜到,所以熟练使用命令面板,你就可以摆脱鼠标,完全通过键盘操作来完成全部编码工作。那么有没有更好用,更强大的编辑器呢?执行后,会编译出一个a.exe的文件(注意,需要将gcc/gdb配置成环境变量哦,详见本专栏第一篇文章)。下载安装后,直接下载code runner扩展,他能自动识别环境变量,运行C代码,比vs code简单很多,本身就是一个IDE。进行上述配置后,你的vs code就变成了IDE,不过这一切有一个前提,需要配置gcc与gdb的环境变量。
2025-09-29 16:40:19
796
原创 C语言基础入门(一)
一、C语言简介1、背景20世纪60年代,计算机编程语言主要分为两大类:低级语言(如汇编语言):与计算机硬件紧密相关,执行效率高,但学习成本高,编写困难且可读性较差,还不可移植高级语言(比如COBOL、B语言等):这是更接近人类语言,可读性好,但执行效率往往不如低级语言,尤其在系统编程方面存在局限。当时, 正在参与开发一个叫做 Multics(多路信息与计算服务) 的操作系统项目,目标是创建一个多用户、多任务的操作系统。
2025-09-29 10:03:04
624
原创 C语言中的浮点数与整数的存储方式
特性整数(int, long等)浮点数(float, double)表示内容整数值(正、负或零)带小数部分的实数(可能有精度损失)存储格式二进制原码或补码IEEE 754 标准(符号、指数、尾数)是否有精度问题无有(特别是小数,如 0.1 无法精确表示)比较操作直接比较是否相等不可直接比较是否相等,应考虑误差范围典型用途计数、索引、离散值科学计算、测量值、图形坐标等连续值常见类型(32位系统)int(32位)、long(32/64位)
2025-09-27 20:14:10
1388
原创 网络爬虫(一):简介
User-Agent轮换Win64;ip代理池请求延迟time.sleep(random.uniform(0.5, 1.5)) # 随机延迟处理cookie。
2025-06-18 18:03:38
1328
原创 JS宏进阶:数据分类之逻辑回归
逻辑回归(Logistic Regression)是一种用于解决分类问题的统计学习方法,特别是适用于二分类问题。总的来说,逻辑回归是一种简单、高效且易于理解的分类算法,特别适用于二分类问题。然而,在选择使用逻辑回归时,也需要考虑其局限性,并根据具体问题和数据特点进行选择和优化。
2025-03-03 15:14:11
381
原创 JS宏案例:多项式回归
多项式回归是曲线回归的一种,它通过在传统的线性回归模型中增加变量的高次项(如平方项、立方项等),来捕捉数据中的非线性关系。其基本原理是在线性回归的基础上,将自变量的幂次作为新的特征加入模型中,从而使模型能够捕捉到数据的非线性结构。C:表示回归常数k:表示回归系数:表示误差系数n:多项式的阶数与线性回归相比,多项式回归能够拟合数据之间的非线性关系。这种方法的核心思想是,任何光滑的曲线都可以通过适当高阶的多项式来逼近。因此,多项式回归在处理具有曲线趋势的数据时具有更高的灵活性。
2025-03-02 15:36:31
1233
原创 JS宏案例:搞个简单版的Series
Series 类是 pandas 库中的一个核心数据结构,它类似于一维数组,由数据和索引两部分组成;它是一种非常灵活且功能强大的数据结构,适用于各种数据处理和分析任务。结构:Series 类对象包括索引(index)和数据(values)两部分。索引位于左侧,数据位于右侧。索引样式丰富,可以是自动生成的整数索引(从0开始递增),也可以是自定义的标签索引或时间索引。数据类型:Series 类中的数据可以是任意类型,如整数、字符串、浮点数等。
2025-03-01 14:57:37
781
原创 JS宏案例:在wps编辑器中玩numpy
this.name = "维度错误";this.name = "值错误";上述代码中,定义了一个维度错误和值错误,是py中numpy模块中常见的两种错误。以上就是UP在wps编辑器中使用JS编写的numpy啦,当然和py中的numpy对比还存在很多的不足,比如random板块中就没有seed这一方法等等。不过对于一般情况而言应该是够用的,祝大家玩的愉快。
2025-02-28 14:38:44
1343
原创 python曲线回归小案例教程
曲线回归是一种统计方法,用于建立自变量(独立变量)和因变量(依赖变量)之间的非线性关系模型。与线性回归不同,线性回归假设自变量和因变量之间的关系是线性的,即可以通过一条直线来描述数据点的趋势;而曲线回归则允许这种关系是非线性的,可能表现为曲线、抛物线、指数、对数或其他复杂的数学形式。非线性关系:曲线回归适用于那些不能用直线来充分描述的数据关系。它允许模型以曲线形式拟合数据,以更好地捕捉数据的实际模式。数学模型:在曲线回归中,需要选择一个合适的数学模型来描述自变量和因变量之间的关系。
2025-02-26 09:18:54
1085
原创 JS宏进阶:浅谈曲线回归
事实上,手算曲线回归的方法并不是只有最小二乘法这一种。本文只是使用最小二乘法计算二次曲线回归的JS代码示例。除此之外,还有多项式逼近,将曲线直线化等常用方法。但UP认为,这些方法都不如最小二乘来的简单直接。比如:当你使用多项式逼近法时容易导致过拟合的问题,因此在实际过程中,还需要一些交叉检验来评估模型的。再如,直线化法,就是将曲线转化为直线,再利用直线回归来求解,像上述示例中的二次曲线回归,可以将x^2看成一个整体,然后利用多元线性回归来解决,而在计算过程中,还是离不开最小二乘法。%20c。
2025-02-25 15:04:43
862
原创 Python逻辑回归小案例教程
这里我们使用一个常见的开源数据集:Breast Cancer Wisconsin Dataset,该数据集可以从scikit-learn的datasets模块中加载。这个任务的目标是预测肿瘤是良性的还是恶性的。load_breast_cancer():从scikit-learn中加载乳腺癌数据集。X:特征矩阵,包含关于肿瘤的特征数据。y:目标向量,包含肿瘤的分类标签(0为良性,1为恶性)。逻辑回归是一种基础且强大的分类工具,特别适用于二分类问题。尽管它有一些限制,但在许多实际应用中仍然非常有效。
2025-02-22 16:24:37
1096
原创 PYTHON机器学习小项目教程:预测鸢尾花种类
通过以上步骤,你已经完成了一个简单的机器学习项目,使用 k-NN 分类器来预测鸢尾花的种类。你可以尝试不同的模型、调整参数或者进行特征工程,以提高模型的性能。随着经验的积累,你可以挑战更复杂的数据集和问题。
2025-02-21 16:55:13
1064
原创 JS宏进阶:数据分析之线性回归
什么时线性回归?线性回归时是用来干什么的?线性回归是回归分析的一种,用于确定两种或两种以上变量之间相互依赖的定量关系。其核心思想是通过找到一个线性方程,来预测一个或多个自变量(independent variables)与因变量(dependent variable)之间的关系。线性回归的目标是画出一条最佳拟合线(best-fitting line),从而了解变量之间的相互作用。在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计。
2025-02-21 11:00:23
1063
原创 JS宏实例:数据透视工具的制作(三)
要实现数据透视功能,上述两个类需要结合使用。通过TablePivot中的groupBy方法返回GroupBy对象,再根据合适的汇总方式进行汇总。这样编程的灵活性与可扩展性较高,如需要新增一种汇总方式,可直接再GroupBy中添加新的属性或方法。
2025-02-20 10:39:28
867
原创 JS宏案例:分层抽样
分层抽样是一种将数据集划分为多个互不重叠的子群(层),然后从每一层中独立进行抽样的方法。这种方法可以确保各个子群在样本中得到适当的代表,从而提高样本的代表性。它适用于总体个数较少,且总体中各单位之间差异较小的情况,且抽样误差可以事先计算,并控制在一定范围内;但是当总体数量较大时,抽样过程可能较为繁琐。在进行分层抽样时,要确保分层的合理性。换句话说分层标准应具有科学性和代表性,能够反映总体的主要特征的。保持样本的随机性和独立性,即在各层内抽取样本时,应确保样本的随机性和独立性,避免样本偏倚和误差。
2025-02-19 09:12:54
1085
原创 JS宏案例:哈希分区与抽样
哈希分区和抽样在数据处理和分析中各自扮演着不同的角色,但它们在某些情况下可以相互结合使用。例如,在数据仓库中,可以使用哈希分区将数据分布到多个分区中,以优化查询性能。然后,在每个分区上应用抽样方法,以减少需要处理的数据量,并快速获取每个分区的特征信息。这种结合使用的方法可以在保证一定精度的前提下,大大提高数据处理的效率。总而言之,哈希分区和抽样是数据处理和数据分析中的两个重要概念,它们在不同的场景下发挥着重要作用。哈希分区通过将数据均匀分布到多个分区中,可以优化查询性能、简化管理和提高系统的可扩展性。
2025-02-18 15:54:30
1325
原创 JS宏实例:数据透视工具的制作(二)
上一节中,我们简单介绍了使用JS宏进行数据透视工具制作大致思路。今天,我们根据相关思路来搭建相关界面,并对界面按钮功能进行介绍。在wps中,设计操作界面主要有两种方式:一是利用wps表格与一些图片或控件来进行搭建,这样制作的界面发挥空间较大,可以制作出比较好看的操作界面。一是利用wps窗体来进行搭建,由于wps窗体自身的局限性,制作出的界面虽功能健全,但样式单一。在本次案例中,将使用wps窗体搭建一个简单的操作界面。
2025-02-17 13:50:40
1279
原创 JS宏进阶:递归练习
这段代码使用了递归和回溯的思想,动态生成了所有可能的排列。递归函数通过拆分问题(当前部分和剩余部分),逐步构建解,并利用终止条件结束递归。
2025-02-16 14:13:49
944
在JS中玩python中的numpy
2025-02-28
npm安装包遇到的问题
2025-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅