biji/c++.tex

81 lines
3.7 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[UTF8]{ctexcap}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{xcolor}
%opening
\title{C++学习笔记}
\author{行走的芦苇}
\begin{document}
\maketitle
%\begin{abstract}
%\end{abstract}
\section{基本概念}
在协作完成一个大的软件时,应如何合理地设计程序结构,并保证每一个子程序之间都能正确地共享和交换数据,这是编程的\textcolor{red}{核心问题}
程序员的任务是将计算表达出来,并且做到:
\begin{itemize}
\item 正确
\item 简单
\item 高效
\end{itemize}
一个看似矛盾的事实:关注代码结构和代码“质量”是程序取得成功的最快捷径。\\
程序的组织体现了程序员的编程思路、目前手段主要是把大的计算任务划分为许多小任务,这一技术主要包括两类方法。
\begin{itemize}
\item[抽象]:即不需要了解的程序具体实现细节被隐藏在相应的接口后边
\item[分治]:把一个大问题分为几个小问题分别解决
\end{itemize}
对于一个好的程序员和系统设计师,软件的\textbf{结构问题}是在开发过程中始终要关注的最重要问题。
将问题不断的分解、细化,直到问题小到能够被我们很好的理解和解决为止\\
表达式是程序的最小组成单元,表达式就是从一些操作数计算一个值。\\
左值:一个变量;右值,一个变量的值\\
符号常量表示那些在初始化后值不再改变的数值量。\\
表达式语句主要包括赋值语句、I/O语句和函数调用。声明语句呢
除了合法输入情况以外,程序必须经过各种非法输入的检验。\\
switch语句括号中值必须是整型、字符型或枚举类型。特别的不能使用字符串型\\
\begin{verbatim}
char* ca = reinterpret_cast<char*>(&a);
\end{verbatim}
判定一个自然数是质量的方法:
对于任一自然数$N$$0 <m <N-1$,若$ \frac{N}{m}\neq 0$,则$N$为质数。\par
\textbf{算法描述}
\begin{description}
\item[输入]输入正整数$N$,$N>=3$
\item[判定]对于$\forall M~~2<M<N-1$,若$N\%M == 0$,则$N$为质数。
\end{description}
\textcolor{red}{为什么vector不做越界检查呢}
错误的来源:
\begin{itemize}
\item 缺少规划,如果事先没有规划好程序做什么,就不能检查所有的“死角”,并确认所有可能的情况都会被正确处理
\item 不完备的程序,不可能考虑所有可能的情况
\item 意外的参数,如果为一个函数输入了一个不能处理的参数
\item 意外的输入,键盘、文件、图形界面和网络都有可能出错
\item 意外状态,多数程序都保留了很多系统的各个部分的状态,如果这些状态数据出错或不完整会导致程序出错
\item 逻辑错误,程序没有按照我们期望的逻辑运行。
\end{itemize}
做过分析(理解问题)和设计(决定解决方案的整体结构)以后才进行程序设计。分析判断应该做什么并且给出对当前问题理解的描述,也称为需求集合或规范,设计给出系统的整体结构图,并确定具体的实现内容以及它们之间的相互关系,实现编写代码、调试并测试,确保程序完成预期的功能。
定义一个文法来定义表达式的语法,然后在程序中实现这些文法规则。
如何来读入一个文法呢?基本文法是这样的:对于给定输入,从顶层规则开始,搜索与输入单词匹配的规则。根据文法读取单词流的方式称为语法分析,实现的程序称为分析器或语法分析器。
\end{document}