V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yushuxin
V2EX  ›  分享创造

产品自荐:小学生都在用这个软件学 C++, AdaCpp 堪称算法学习的颠覆式体验。

  •  
  •   yushuxin · 8 天前 · 964 次点击

    🌟 为什么会有 AdaCpp

    嗨,我是 catnull ,一个热衷于写题的 ACMer (最好成绩:ACM-ICPC World Final 27th Place)。因为一些个人原因,去年开始带一些小学生学习信奥赛,没想到十几年过去了,现在的学生竟然还是在用 dev-c++。

    倒不是说 Dev-C++不好,只是觉得有点跟不上时代落伍了

    这么多年了 Dev-C++版本乱七八糟的,第一次上课给学生装软件就花了不少时间。还有明明就是少一个分号的事情,Dev-C++非要把那个编译错误搞成好几行的"英文乱码",小孩子第一次接触这个可不是崩溃嘛,家长就只好花大钱找我们这种竞赛生来辅导。

    虽然我的课时费是一小时 1800 ,但我还是觉得上课来回答这种分号问题真的是互相浪费,现在 AI 都这么发达了,明明可以让 AI 来人话回答这些超简单的问题,干嘛非要大价钱请个老师呢?现在这个时代就应该用 AI 来重塑编程学习的方法才对呀!

    于是,AdaCpp 就诞生了,用一句话来说就是:

    AdaCpp 是一款零安装、浏览器即用的在线 C++ 学习环境。学习过程中,AI 会用"人话"拆解思路、指出错误并给出改进建议。

    体验地址: https://www.adacpp.com

    这里插一句,为什么我要做网页版的 IDE ,因为工作之后我就一直在用 mac 电脑了, 结果找了半天都没找到一个在 mac 上编写 C++的轻量级的 IDE ,最后临时借了一台 surface 去上课,所以我觉得 AdaCpp 真的是可以救我这种小老师的狗命啊。

    光这么说可能有点抽象,来看一下 AdaCpp 的实战结果,你马上就明白为什么 AI 可以赋能 C++编程学习了。

    ⚡ 亮点 1:开箱即用

    如前文所述,AdaCpp 是一款零安装、浏览器即用的在线 C++ 学习环境。无需下载、无需登录、无需配置!打开浏览器就是你的 C++开发环境!

    这里引用宋丹丹灵魂提问:使用 AdaCpp 一共需要几步? 答:3 步!

    第一步:浏览器中输入网址:adacpp.com 第二步:在 Monaco Editor 中输入代码 第三步:点击编译运行

    Image

    🧐 亮点 2:人话解析编译错误

    来来来,我们我们一起来找茬,这段代码到底有几个编译错误都是啥?

    Image

    眼尖的朋友是不是一秒钟就能发现:错误是变量名写错了,这个name1没给定义直接用了,把前面定义改成name1或者后面这个name1改成name都行。可是这下面编译这编译错误给写的啥子呀?

    error: 'name1' was not declared in this scope
       15 |     cout << "Hello " << name1 << endl;
          |                        ^~~~~
    

    这东西最早反正我是看了超级头大的。这个时候,咱这个解析编译错误的功能不就派上用场了吗?

    点击终端这个解析编译错误的按键,就可以在右侧的 AI 助手这个面板看到详细解析:

    • 这里就是会帮我们人话解析编译错误,
    • 然后逐个错误解析,告诉我们为什么错以及怎么修改,
    • 最后还会整合一下知识点,让学生深入理解问题具体的语法规则。

    Image

    ✍️ 亮点 3:一键注释让复杂语法秒变简单

    刚接触 C++的学生最大的疑问就是这些代码都是什么意思啊?为什么要有include,为什么要有using namespace,为什么这个<<符号是输出等等等等无穷无尽的问题。

    这个时候就可以使用我们的一键注释功能了!可以让每一行代码都变成有意义的内容!

    Image

    🧩亮点 4:代码体检辅助理解代码逻辑

    很多学生在学习算法的时候有个超级大的问题,是理不清除算法逻辑,比如下面这个很简单的二分算法

    Image

    那这个时候就可以来使用我们的代码体检功能啦🚀️

    Image

    上面视频里有几个关键点:

    1. 首先点击这个代码体检,就会给我们一个大致的代码分析,告诉我们这段代码要干什么,使用的核心算法是什么Image
    2. 然后重点来了,这里还会生成一个流程图帮我们梳理代码逻辑,图形化的方式去理解这个代码大致含义到底是什么。 Image
    3. 另外还有时间复杂度、空间复杂度的分析,以及代码可能存在的潜在问题分析。因为这段代码没什么问题,所以这里就说写的很规范啦,那如果写这个二分出现明显的逻辑错误,也会在代码体检里面提示我们有些错误啦。 Image

    🛠亮点 5:辅助排障增加关键输出

    学过 C++,写过题的一定都知道!代码要是出问题了,我们得加输出去看到底是哪儿的输出不对劲儿,才能来找出写错的逻辑啊。

    虽然这是个好方法, 但是写输出删输出这个事儿就比较麻烦,找到错误了还好,然后一激动输出没删除干净就直接提交,又喜提一个 WA ,然后 WAWAWA ,WA 半天发现是没删掉输出,一整个大吐血。所以我就加了一个自己超级心水的功能叫做辅助排障❤️!

    这里就是点击那个辅助排障,就可以让 AI 给我狂加输出信息,各种[debug info] 都给我加上,还怕找不出错误吗?

    Image

    然后想删掉的时候也很简单,再点一下这个按钮可以了!一键删除所有调试信息,又获得一份清清爽爽的代码。

    Image

    💁结语

    以上就是 AdaCpp 最核心的一些功能,当然一些基础的存储文件等等那不都是必须的嘛?另外以后还想要加上的内容包括但不限于题目解析、云端存储等等。

    目前 AI 的调用限制是 1 分钟 1 次(基本上等于全免费啦)欢迎大家使用体验呀!大家要是有什么关于新功能的想法我太太太太太太欢迎投喂了! 感恩的心,先比个心ღ( ´・ᴗ・` )~

    再来一次体验地址: https://www.adacpp.com

    最后,我猜肯定会有人问,为什么只做 C++版本的,别的语言不做吗?

    因为现在这个世道,AI 早就可以写出任何的代码了,掌握一种语言的语法根本不是什么核心竞争力。但是!掌握算法是呀!

    学写 C++,学的不是 C++的语法,而是 C++背后所代表的算法,只有把算法的逻辑完整地写成可运行的代码,才能真正理解并检验它的思想。这种对算法思维的锤炼,比熟悉任何语言的细节都更能提升解决复杂问题的能力。这也是为什么我在毕业多年之后依旧热衷写题的原因,每一次用 C++ 写出高效算法,都像重新发现思考的乐趣。

    最后的最后,谨以“Ada”致敬那位开启机器运算时代的第一位程序员——埃达·洛芙莱斯,愿 AdaCpp 可以助力每一位学习 C++/计算机算法的伙伴~

    5 条回复    2025-06-27 16:29:10 +08:00
    midpoint
        1
    midpoint  
       8 天前   ❤️ 1
    这个很适合初学者,大佬可以把它拓展一下,可用于多种语言编程,例如 java 、python……
    yushuxin
        2
    yushuxin  
    OP
       8 天前
    @midpoint 谢谢
    bao3
        3
    bao3  
       7 天前
    哇,真很赞,我感觉一些高阶的功能可以收费,普通的练习可以全免费。由于输出是说人话,光是这一点,就足够吸引人了。
    Johnyoung
        4
    Johnyoung  
       7 天前
    体验了下,真的很棒,很赞同你的理念,语法会变语言会换,但背后的思想是永恒的
    WebKit
        5
    WebKit  
       7 天前
    感觉不错,为什么我实际使用跟你截图的配色不一样。还有再开发个学 rust 的吧
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1714 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:20 · PVG 00:20 · LAX 09:20 · JFK 12:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.