产品自荐:小学生都在用这个软件学 C++, AdaCpp 堪称算法学习的颠覆式体验。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yushuxin
V2EX    分享创造

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

  •  
  •   yushuxin
    PRO
    109 天前 1480 次点击
    这是一个创建于 109 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么会有 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  
       108 天前   1
    这个很适合初学者,大佬可以把它拓展一下,可用于多种语言编程,例如 java 、python……
    yushuxin
        2
    yushuxin  
    OP
    PRO
       108 天前
    @midpoint 谢谢
    bao3
        3
    bao3  
       108 天前
    哇,真很赞,我感觉一些高阶的功能可以收费,普通的练习可以全免费。由于输出是说人话,光是这一点,就足够吸引人了。
    Johnyoung
        4
    Johnyoung  
       108 天前
    体验了下,真的很棒,很赞同你的理念,语法会变语言会换,但背后的思想是永恒的
    WebKit
        5
    WebKit  
       107 天前
    感觉不错,为什么我实际使用跟你截图的配色不一样。还有再开发个学 rust 的吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5575 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 07:20 PVG 15:20 LAX 00:20 JFK 03:20
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86