事无巨细,代码亦然

事无巨细,代码亦然

重读C++Primer(第四版,李师贤等译),做第六章的习题6.9。侯捷先生出了C++Primer3rd的习题集,于是对照看看。惭愧至极,事无巨细尤其是代码,大家编程,极小的细节如命名,输出等都考虑等令人惊叹。并且jjhou在习题6.9中体现出的及其严密的逻辑也是让我

于是,将习题6.9的代码贴出来(jjhou),程序在vc6.0中编译通过。

 

习题6.9:修改元音统计程序使其可以统计以下双字符序列出现的次数:fffl以及fi

完整代码:

#include<iostream>

#include<cctype>

using namespace std;

 

int main()

{

       char ch;

       int aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0,

              blankCnt = 0, tabCnt = 0, newlineCnt = 0,

              ffCnt = 0, flCnt = 0, fiCnt = 0,

              consonantCnt = 0;

 

       while( cin.get(ch) )

       {

              switch( ch )

              {

              case 'a': case 'A':

                     ++aCnt;

                     break;

              case 'e': case 'E':

                     ++eCnt;

                     break;

              case 'i': case 'I':

                     ++iCnt;

                     break;

              case 'o': case 'O':

                     ++oCnt;

                     break;

              case 'u': case 'U':

                     ++uCnt;

                     break;

              case ' ':

                     ++blankCnt;

                     break;

              case '/t':

                     ++tabCnt;

                     break;

              case '/n':

                     ++newlineCnt;

                     break;

              case 'f':

                     ++consonantCnt;

                     cin.get(ch);

                     switch(ch)

                     {

                     case 'f':

                            ++consonantCnt;

                            ++ffCnt;

                            break;

                     case 'l':

                            ++consonantCnt;

                            ++flCnt;

                            break;

                     case 'i':

                            ++iCnt;

                            ++fiCnt;

                            break;

                     default:

                            cin.putback(ch);

                            break;

                     }

                     break;

              default:

                     if( isalpha(ch) )

                            ++consonantCnt;

                     break;

              }

       }

 

       cout << "vowel a:" << aCnt << endl

               << "vowel e:" << eCnt << endl

               << "vowel i:" << iCnt << endl

               << "vowel o:" << oCnt << endl

               << "vowel u:" << uCnt << endl

               << "consonant:" << consonantCnt << endl

               << "ff:" << ffCnt << endl

               << "fl:" << flCnt << endl

               << "fi:" << fiCnt << endl

               << "blan:" << blankCnt << endl

               << "tab:" << tabCnt << endl

               << "newline:" << newlineCnt << endl;

 

       return 0;

}

### 论文写作中伪代码的编写标准与规范 在撰写学术论文时,为了清晰表达算法逻辑并提高读者理解程度,遵循严格的伪代码编写标准至关重要。以下是几个关键要点: #### 输入输出定义 每一段伪代码应当明确定义其接收的数据形式即输入项以及产生的结果即输出项[^2]。 #### 方法名称的选择 对于那些会被其他部分调用的方法而言,应该赋予它们易于识别的名字;而对于仅限于内部使用的辅助功能,则可以根据实际情况决定是否为其指定特定称呼。 #### 注释的重要性 在整个过程中加入必要的解释性文字可以帮助审稿人和其他研究者更好地把握作者意图。特别是针对核心操作流程给予简短而精准的描述是非常有益的做法。 #### 长度控制 理想情况下,单个算法片段不宜过长也不宜太短——通常建议保持在大约十五到三十行之间以便阅读和审查人员能够快速掌握整体结构而不至于迷失细节之中。 #### 数学符号的应用 适当引入数学公式不仅能使表述更加严谨精确,而且有助于节省篇幅。当涉及到具体数值计算或者理论推导环节时,可以直接引用先前工作中已经确立的相关结论来简化当前工作的阐述过程。 #### 步骤精炼 并非所有的实现细节都需要事无巨细地记录下来,在不影响理解和验证的前提下,某些显而易见或是次要性的处理步骤是可以被合理省略掉的。 #### 复杂度分析 完成基本框架搭建之后,还应对所提出的解决方案进行全面评估,包括但不限于运行时间和内存占用等方面的表现指标,并通过图表等形式直观展示出来以增强说服力。 ```latex \begin{algorithm} \caption{Example Algorithm}\label{alg:example} \KwIn{$input\_data$} \KwOut{$output\_result$} Initialize parameters $\mathbf{\Theta}$ \\ % Main loop For $t=1,\dots,T$: \\ Compute gradient $\nabla_\theta J(\theta)$ using backpropagation\\ Update weights via optimization algorithm:\\ $\theta := \theta - \alpha\nabla_\theta J(\theta)$ \\ Return final model parameters $\hat{\theta}$ \end{algorithm} ``` 上述LaTeX代码展示了如何创建一个简单的机器学习训练循环作为例子,其中包含了输入参数、输出结果、初始化设置、主迭代体以及返回值等组成部分。 #### 符号一致性 确保所有变量名与其含义相符非常重要。例如,矩阵可以用粗体字母表示(如$\mathbf{O}, \mathbf{D}$),标量则采用正常字体大小写字母区分不同概念(比如$v, t, a$)。这种做法既方便自己整理思路也利于他人解读文档内容[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值