C语言教程:根据N-S图解密程序设计

需积分: 50 6 下载量 35 浏览量 更新于2024-07-13 收藏 4.17MB PPT 举报
"由此N-S图可以编写出以下的函数-一部c语言教程" 这篇资源是一个关于C语言编程的教程,主要讲解如何根据N-S图编写函数。N-S图,也称为诺依曼-斯蒂娜图,是一种流程图,用于表示程序的逻辑结构,特别是在算法设计中广泛使用。在这个例子中,我们看到的函数`solv_quadr_equa`是用于解决二次方程的。该函数接受三个参数:`a`, `b`, `c`,分别代表二次方程的系数。下面是对这个函数的详细解释: 1. 首先,函数检查`a`是否等于0。如果`a`等于0,这意味着方程不是二次方程,而是线性方程或没有解。在这种情况下,函数进一步检查`b`是否也为0。如果`b`也等于0,说明输入错误,因为这会导致无限多个解,函数输出"No answer due to input error"。如果`b`不等于0,那么方程有一个唯一根`-c/b`,函数会输出这个根。 2. 当`a`不等于0时,函数进入处理二次方程的逻辑。首先计算判别式`disc = b*b - 4*a*c`,这是判断方程根性质的关键值。接着,计算`twoa = 2*a`,这是为了简化后续计算。然后,计算`term1 = -b/twoa`,这是二次方程根的一般部分。 3. 接下来,函数利用`sqrt(fabs(disc))`计算判别式的平方根,其中`fabs`是绝对值函数,确保平方根总是非负的。然后,`term2`被定义为平方根除以`twoa`,这是根的虚部(如果存在的话)。 4. 判别式`disc`小于0时,方程有两个复数根。在这种情况下,函数输出"complex root:\n real part=xxx, imag part=xxx",其中`xxx`由`term1`和`term2`计算得出。 5. 如果判别式`disc`大于等于0,方程有两个实数根。此时,函数输出"real root:\n root1=xxx, root2=xxx",`root1`和`root2`分别是`term1 + term2`和`term1 - term2`。 教程可能覆盖了C语言的基础,包括: - 第1章介绍了C语言程序设计的基本概念,包括程序设计语言、C语言的特点和程序的构成。 - 第2章涉及基本数据类型,如整型、浮点型等。 - 第3章讲述了流程控制语句,如if-else、for、while等。 - 第4章是模块化程序设计,可能涵盖了函数的定义和使用。 - 第5章到第8章分别讨论了数组、指针、用户自定义数据类型和文件操作。 - 第9章简要介绍了面向对象的程序设计,这是C++中的概念,但可能在C语言中有所提及。 通过这个函数的示例,读者可以学习如何从流程图转换为实际的C语言代码,理解条件判断和数值计算的实现方式。同时,整个教程提供了一个全面的C语言学习路径,适合初学者入门。