From bb181abf6989f112a8aa12a7419d76f494817996 Mon Sep 17 00:00:00 2001 From: bai Date: Wed, 18 Sep 2024 21:29:14 +0800 Subject: [PATCH] 2024-9-18-4 --- c++.tex | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/c++.tex b/c++.tex index 8f668ac..be3653e 100644 --- a/c++.tex +++ b/c++.tex @@ -55,6 +55,23 @@ switch语句括号中值必须是整型、字符型或枚举类型。特别的 \end{description} \textcolor{red}{为什么vector不做越界检查呢?} +错误的来源: +\begin{itemize} + \item 缺少规划,如果事先没有规划好程序做什么,就不能检查所有的“死角”,并确认所有可能的情况都会被正确处理 + \item 不完备的程序,不可能考虑所有可能的情况 + \item 意外的参数,如果为一个函数输入了一个不能处理的参数 + \item 意外的输入,键盘、文件、图形界面和网络都有可能出错 + \item 意外状态,多数程序都保留了很多系统的各个部分的状态,如果这些状态数据出错或不完整会导致程序出错 + \item 逻辑错误,程序没有按照我们期望的逻辑运行。 +\end{itemize} +做过分析(理解问题)和设计(决定解决方案的整体结构)以后才进行程序设计。分析判断应该做什么并且给出对当前问题理解的描述,也称为需求集合或规范,设计给出系统的整体结构图,并确定具体的实现内容以及它们之间的相互关系,实现编写代码、调试并测试,确保程序完成预期的功能。 + +定义一个文法来定义表达式的语法,然后在程序中实现这些文法规则。 + +如何来读入一个文法呢?基本文法是这样的:对于给定输入,从顶层规则开始,搜索与输入单词匹配的规则。根据文法读取单词流的方式称为语法分析,实现的程序称为分析器或语法分析器。 + + +