讲义
课程
作业
真题
竞赛
课时
模板
  • 2023天津CSP-J组 第一轮 成绩
  • 2023天津CSP-S组 第一轮 成绩
  • 2023天津CSP第二轮晋级名单(J&S)
  • 2023竞赛大纲
  • 2023机试环境(禁止使用手机下载,镜像文件过大)
课程
作业
真题
竞赛
课时
模板
  • 2023天津CSP-J组 第一轮 成绩
  • 2023天津CSP-S组 第一轮 成绩
  • 2023天津CSP第二轮晋级名单(J&S)
  • 2023竞赛大纲
  • 2023机试环境(禁止使用手机下载,镜像文件过大)
  • 前言
  • 入门篇
    • 编程概述
    • 语言简介
    • 开发环境
    • 基础结构
    • 数据类型
    • 常量与变量
    • 赋值语句
    • 运算符
    • 作用域
    • 输入输出
    • 控制结构
    • 数组
    • 函数
    • 文件和结构体
    • 指针与链表
    • 线上学习
  • 算法篇
    • 高精度计算
    • 算法复杂度
    • 排序算法
    • 递推算法
    • 搜索与回溯算法
    • 动态规划
    • 贪心算法
    • 分治算法
  • 数据结构篇
    • 栈
    • 队列
    • 树
    • 堆
    • 表达式转换
    • 哈夫曼编码
    • 图

前言

chao_smile2023/10/16

随着 21 世纪信息技术的蓬勃发展,人工智能已经渗透到我们生活的方方面面,不再局限于实验室内的研究,也不再只是国际象棋等领域的胜利者。它已成为千家万户生活中不可或缺的技术应用,影响着我们的日常生活。在安防领域,人工智能可以精确而高效地辨认身份;在自然语言处理领域,智能客服、机器翻译、自动同声传译等技术极大地推动了生产力的发展。而无人驾驶、图像分类、新闻推荐等领域的应用也反映了人工智能技术日益成熟。在这个人工智能时代,计算思维变得至关重要,而编程成为了计算思维的关键表达方式,这也是国内众多计算机领域学者的一致看法。

那么,为什么我们要选择学习C++编程语言呢?C++语言是国内最具影响力的中小学编程竞赛——中国计算机学会主办的全国青少年信息学奥林匹克竞赛(NOI)未来唯一指定的参赛语言,且当前 NOIP 明确只能使用C++语言。所以学习C++语言无疑对于编程竞赛是利好的。同时C++语言拥有高级语言的基本结构和语句与低级语言的实用性结合起来的特点,使其既具有高级语言的功能,又具有低级语言的很多特性,C++语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,使得C++语言在代码效率方面可以和汇编语言相媲美,一般只比汇编程序生成的目标代码效率低 10%〜20%。综上所述学习 C++语言对于竞赛与实体开发能力都将有很大的提升。

这时的你或许会想,中小学生学习C++编程难不难?答案是肯定的,在学习过程中感到困难是正常的,但这种困难的感觉不仅仅局限于中小学生,大学生也会感到挑战。值得一提的是,对比之后我们会发现,中小学生学习编程语言的速度通常更快,记忆时间更久远。想想特斯拉的创始人埃隆·马斯克,他在 9 岁时就开始学习编程。或者 Uber 的首席执行官特拉维斯·卡兰尼克,他在 6 岁时就涉足编程世界。还有那个赢遍人类的围棋机器人 AlphaGo 的设计者戴密斯·哈萨比斯,他在 8 岁时也开始了编程之旅。8 到 18 岁正是抽象逻辑思维的形成期,同时也是学习编程的最佳时期。

在本学期,我将有幸教同学掌握 C++ 语言的关键语法,包括输入输出、条件分支、循环、逻辑运算等等。更重要的是,我希望同学能够独立解决较为容易的编程问题,这不仅是技能的积累,更是自信心的培养。我的愿望是,同学不仅仅会获得 C++ 编程知识,还会培养起对编程学习的浓厚兴趣。这将为同学未来的学术竞赛和人工智能技术的学习打下坚实的基础。

在这个学期中,我们将一同探索编程的奥秘,一步步解锁代码的力量。不论同学是否曾经接触过编程,我相信,通过努力学习和探索,同学都能够成为出色的程序员。让我们一起踏上这段激动人心的编程之旅吧!

祝愿同学学有所成,充满激情!

中国发展成就

1969—2022:互联网发展史

第一课第二课第三课第四课第五课第六课第七课阶段小测第八课第九课第十课第十一课第十二课第十三课第十四课阶段复习第十五课第十六课第十七课第十八课阶段复习第十九课第二十课第二十一课第二十二课第二十三课第二十四课第二十五课第二十六课第二十七课第二十八课第二十九课第三十课第三十一课第三十二课第三十三课第三十四课第三十五课第三十六课

真题1真题2真题3真题4真题5真题6真题7真题8复赛注意事项

const memoize = function (func, content) {
  let cache = new Map();
  content = content || this;
  return (...key) => {
    if (!cache.has(key)) {
      cache.set(key, func.apply(content, key));
    }
    return cache.get(key);
  };
};
const calc = memoize(add);
const num1 = calc(100, 200);
const num2 = calc(100, 200);
Next
入门篇
津ICP备2020007982号-2