Stanford CS143 速通PA1教程

2023-11-08

今天做完了CS143的PA1,感觉最难的地方在于官方没有具体的文档(edX),然后COOL语言调试比较困难,以下是我对同样打算入坑CS143的同学的一些帮助吧:

速通前的准备

  • Virtual VM Setup:如果还没有搭好环境的,建议跟着官网的搭一下,我选择的是傻瓜式的搭建方法,就是用官方给的环境,这个最方便,也不容易出问题。
  • PA1.pdf(见我的仓库):没有在edX找到文档,这是我从别人的仓库借鉴过来的,里面详细地说明了要求的。
  • cool-manual.pdf(见我的仓库):同样是补充材料,很有用,在做之前可以先通读下,了解下COOL语言的语法,当然上课讲的几个例子(02-01 ~ 02-03)也需要过一遍。
  • example里面的list.cl:这个很有用,因为它作为链表,利用头插的方式实现,与栈的思想是一致的,改一改就可以做成栈了。

我的体会

以上三个看完(manual可以作为语法的补充,用的时候看),就可以着手写了,当然写得还是比较难受,毕竟是一门新的语言,然后其实最大的坑在于,COOL的调试非常拉跨,所以很多时候你只是模糊地知道在某一行的附近发生了错误,我遇到的一些坑如下:

  • if then else是一个整体,不能没有then,或者else
  • 不能在代码段中声明变量

代码实现与资料:

上述资料和我的代码实现,都在这个仓库里面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Stanford CS143 速通PA1教程 的相关文章

  • 多个DLL之间的Static变量以及模板实例化

    结论如下 1 DLL之间调用类public静态成员变量 不能使用A m static形式调用 其中A为类名 m static为A中的static成员变量 若使用 编译出现链接错误 必须使用函数调用方式 为m static增加set get函
  • C语言-宏定义

    C语言 宏定义 1 宏定义是什么 2 宏定义怎么用 2 1 宏定义常量 2 1 1 预定义宏 2 1 2 自定义宏 2 2 带参数的宏 2 3 编译预处理 3 宏展开 4 编译预处理指令 1 宏定义是什么 宏是用来表示一段代码的标识符 宏也
  • 【栈】逆波兰计算器

    文章目录 前言 一 基本概念 1 1 介绍 1 2 入栈和出栈示意图 1 3 栈的应用场景 二 使用数组模拟栈 2 1 思路分析 2 2 代码实现 2 3 测试 三 使用栈模拟中缀表达式计算器 3 1 整体思路 3 2 验证3 2 6 2
  • 多益视频面试

    多益面试 有一种怀疑人生的感觉 向老师 我对不起你 去年刚学的网络安全 我竟然没说出来加密算法的名字 也并不是题很难 而是简单的就是说不出来 写不出来 而难的也就是听过而已 问题 1 说一下什么是线程安全 线程安全的场景 线程安全就是确保程
  • 指针的删除

    1 在链表中 将某个指针delete 指向该指针的那个指针的next 不会自动赋值为NULL 需要手动赋值 2 删掉 某指针所指向的内存 该指针仍然可以使用 下面是一个带头指针的单向链表 void Stack Pop int value i
  • MATLAB下配置C和C++编译器(MinGW)

    很多时候需要在Matlab下使用C或C 边写的代码 这时候就需要先用编译器将代码编译成Matlab可以用的mex文件 检测Matlab有没有可以使用的编译器 可以在命令行窗口下 输入mex setup 如果有的话就会显示出可以用的编译器 无
  • 全局变量 multiple definition of 问题解决方法

    解决方法 1 给每一个头文件加上条件编译 注 此方法不是解决上述问题的方法 只是解决multiple definition of的一个方法 当多个文件包含同一个头文件时 而头文件中没有加上条件编译 就会独立的解释 然后生成每个文件生成独立的
  • 剑指 Offer 09. 用两个栈实现队列

    题目链接 09 用两个栈实现队列 思路分析 用两个栈实现队列 首先把1 gt 2然后逐个弹出顶端元素 class CQueue public stack
  • 从0开始的(c语言)数据结构学习 3:栈

    注 本文以造轮子为主 属于相对理论性 教学性的东西 在实际使用中 如果你是c 请直接 include lt stack gt 理解 什么是栈 你现在有一个放网球的竖球筒 每次你放进去的球都会放在最上面 同理 当你要取出来一个球的时候 也只能
  • 为什么C++编译器不能支持对模板的分离式编译

    为什么C 编译器不能支持对模板的分离式编译 刘未鹏 pongba C 的罗浮宫 http blog csdn net pongba 首先 一个编译单元 translation unit 是指一个 cpp文件以及它所 include的所有 h
  • 编译器何时调用默认构造函数

    总的来说 编译器只在它需要的时候才会合成一个默认构造函数 或者扩张所有已存在的构造函数 一个类满足下列其中任何一个条件 1 包含了一个类的对象 这个对象有一个构造函数 包括编译器合成的默认构造函数 2 如果继承自一些基类 其中某些基类有一个
  • 数据结构之 栈(C语言实现)

    数据结构之 栈 C语言实现 1 栈的模型 栈 stack 是限制插入和删除只能在一个位置上进行的表 该位置是表的末端 叫做栈的顶 top 对栈的基本操作有push 进栈 和pop 出栈 前者相当于插入 后者则是删除最后插入的元素 最后插入的
  • vscode运行cpp文件:检测到 #include 错误。请更新 includePath。已为此翻译单元(E:\C++ Code\test1\test1\test1.cpp)禁用波形曲线。

    刚为vscode配置好C 编译环境准备刷leetcode 结果写cpp文件时发现 include头文件总是报错 我就很迷惑了 include
  • 栈之中缀表达式转后缀表达式

    题目描述 就是把我们平常写的运算表达式换成另外一种表达式 运算符前面两个数字执行相关操作 用图说明一下 比如3 2 gt 3 2 比如3 3 2 gt 3 3 2 再比如 3 3 2 2 3 gt 3 3 2 2 3 程序设计思路 特殊情况
  • C++泛型编程:源起、实现与意义

    C 泛型编程 源起 实现与意义 为什么泛型泛型编程 Generic Programming 最初提出时的动机很简单直接 发明一种语言机制 能够帮助实现一个通用的标准容器库 所谓通用的标准容器库 就是要能够做到 比如用一个List类存放所有可
  • 编译优化之 - 向量化优化入门

    1 介绍 2 Intel高级向量扩展 3 GCC中向量化 4 ICC中向量化 5 AOCC LLVM中向量化 1 介绍 什么是自动向量化 自动向量化 automatic vectorization 是自动并行化 automatic para
  • 使用嵌入式linux完全手册光盘的arm-linux-gcc 遇到问题 自己编译

    Redhat9下重新生成交叉编译器gcc 3 4 5 glibc 2 3 6 看到论坛上有兄弟也遇到 arm linux gcc lib tls libc so 6 version GLIBC 2 4 not found required
  • 【转】结构体中Char a[0]用法——柔性数组

    有如下定义 typedef struct char a char b 0 其中元素Char b 0 叫做柔性数组 主要用于使结构体包含可变长字段 详细内容如下 柔性数组 柔性数组结构成员 C99中 结构中的最后一个元素允许是未知大小的数组
  • C++-必知必会_类模板成员特化(条款48)

    类模板成员特化 再提醒一下 虽然模板的特化和类的派生之间没有任何关 系 但在特化模板的时候 不妨借鉴一下派生的精神 也就意味 着一个完全特化或局部特化通常必须重新实现 主模板具备的 所有能力 例1 主模板 template lt typen
  • C++用两个栈实现队列

    1 基础 队列 先进先出 即插入数据在队尾进行 删除数据在队头进行 栈 后进先出 即插入与删除数据均在栈顶进行 2 思路 两个栈实现一个队列的思想 用pushStack栈作为push数据的栈 用popStack栈作为pop数据的栈 只要是对

随机推荐

  • 图像分析技术大比拼:图像分类、图像识别、目标检测的优缺点分析与算法比较

    计算机视觉是人工智能领域的一个重要分支 它旨在构建能够理解和处理图像 视频等视觉信息的计算机系统 在计算机视觉领域中 图像分类 图像识别和目标检测是三个重要的任务 一 图像分类 图像分类是计算机视觉领域最基础的任务之一 它的目的是将一张图像
  • Linux--高级IO

    高级IO 1 五种IO模型 阻塞IO 在内核将数据准备好之前 系统调用会一直等待 所有的套接字 默认都是阻塞方式 阻塞IO是最常见的IO模型 非阻塞IO 如果内核还未将数据准备好 系统调用仍然会直接返回 并且返回EWOULDBLOCK错误码
  • PyCharm创建virtualenv方法

    Python的版本众多 在加上适用不同版本的Python Package 这导致在同时进行几个项目时 对库的依赖存在很大的问题 这个时候就牵涉到对Python以及依赖库的版本管理 方便进行开发 virtualenv就是用来解决这个问题的 下
  • Kafka 验证部署(单机版)kafka-producer-perf-test.sh 吞吐量测试工具的基本使用

    1 测试topic创建与删除 1 创建一个测试topic 名为test topic 创建3个分区 每个分区分配1个副本 因为是单机kafka 如果是集群的话可以分配多个副本 如果分配的副本数大于broker的数量时 会报错 bin kafk
  • 华为内部面试题库---(14)

    1 关于虚拟地址空间的说法错误的是 A 进程地址空间是用多少分配多少 4G仅仅是最大限额 B 进程的地址空间并不一定对应实际的物理页 C 不同进程的不同虚拟地址可以映射到相同的物理页 D 不同进程的相同虚拟地址不能映射到相同的物理页 解答
  • KNN回归-预测二手车

    KNN是一个典型的分类模型 就时预测类别 例如苹果 香蕉等 预测的结果是 训练集上已经包含的类别 并不会预测出新的类别 二手车价格预测是预测车的价格 是数值 理应按照回归算法来算 怎么用knn来实现回归问题呢 找到最近的K样本之后 我们直接
  • Android - 常见内存泄露问题盘点

    1 内存泄漏的本质 内存泄漏的本质就是对象引用未释放 当对象被创建时 如果没有被正确释放 那么这些对象就会一直占用内存 直到应用程序退出 例如 当一个Activity被销毁时 如果它还持有其他对象的引用 那么这些对象就无法被垃圾回收器回收
  • 层层深入高效地拿下商户收获刷脸红利

    无现金时代已陪伴我们许久 扫码支付给消费者带去诸多便利 正当人们刚刚养成扫码支付消费习惯的时候 刷脸支付这种新的支付方式又来了 两年后 我们或将迎来 无手机 支付时代 刷脸支付将使得消费者拥有更加流畅的支付体验 对商户来说 收款也变得更加高
  • python模块matplotlib.pyplot用法_python – 虽然使用pyplot.show(),但如何使用matplotlib保持图形大小不变?...

    看看下面的python示例 import matplotlib as mpl import matplotlib pyplot as plt mpl rcParams figure figsize 8 27 11 69 fig plt fi
  • Python 数据分析与数据可视化(三)列表、元组、字典、集合与字符串

    文章目录 3 列表 元组 字典 集合与字符串 3 1 列表与列表推导式 3 1 1 创建列表 下标访问 3 1 1 1 简介 3 1 1 2 创建列表 3 1 1 3 使用下标访问列表中的元素 3 1 2 列表常用方法 3 1 2 1 ap
  • 输入身份证号判断性别并求年龄

    include
  • 如何二次封装一个el-table组件并二次复用

    注 示例使用的是vue3和element 进行二次封装的 首先我们来看效果图 总共可以分为以下几个模块 表格数据操作按钮区域 表格信息提示区域 表格主体内容展示区域 表格分页区域 表单搜索没有封装在这里是为了降低代码的耦合性 有兴趣的可以查
  • c# dataGridView 数据合并单元格

    原文地址http sigechuizi cn article 133
  • unity登录界面和场景异步加载多种方式

    文字加载场景切换 挂到摄象机上 拖入文本 此文本用于显示加载文本的位置 实际显示内容位文中文本 正在加载中时显示 夏目正在努力加载哦 加载完成后显示 ok using UnityEngine using System Collections
  • 猿人学第3题-访问逻辑 - 推心置腹分析

    3 访问逻辑 推心置腹分析 1 请求页面并进行抓包 https match yuanrenxue cn match 3 2 对抓包进行分析 判断发现每次数据请求前先请求 https match yuanrenxue cn jssm 分析参数
  • 查T结果与Z结果的P值[转载]

    T检验P值表格来自 https blog csdn net m0 37777649 article details 74937242 Z检验表格来自 https wenku baidu com view 4926021f10a6f524cc
  • 关于虚拟机的认识

    一 在实体机 物理机 上 localhost它是一个域名 对应的ip地址为 127 0 0 1 计算机网络这本书中规定的 指的本机 关于127 0 0 1 为什么是 localhost 在 C Windows System32 driver
  • bash devtty No such device or address

    hexo d bash dev tty No such device or address error failed to execute prompt script exit code 1 fatal could not read Use
  • [囧途系列之特别篇]IT者的生存之路

    blog csdn net shenyisyn article details 8545410 此文特别送给 csdn网友 kkgbn 盖宝宁 前言 我的一个很早的转文 一对夫妻程序员的故事 看到了一个由kkgbn发表的评论 评论的大意是
  • Stanford CS143 速通PA1教程

    今天做完了CS143的PA1 感觉最难的地方在于官方没有具体的文档 edX 然后COOL语言调试比较困难 以下是我对同样打算入坑CS143的同学的一些帮助吧 速通前的准备 Virtual VM Setup 如果还没有搭好环境的 建议跟着官网