C++:专题二实验(求方程ax²+bx+c=0的解、海伦公式、调试)
文章目录
创作说明:
受前辈@mark7758启发,学习并借鉴了前辈的作品后,着手创作本系列文章,以便记录学习过程,以及供同学们学习交流。
实验目的:
- 掌握C++中的基本数据类型的算术运算和逻辑运算;
- 理解并掌握C++中运算符的优先级;
- 掌握简单的类型转换方法;
- 掌握C++的math头文件中常用的几种数学运算;
- 了解visual studio的debug功能,并使用debug功能完成单步执行程序、设置断点和观察变量值等操作。
实验内容:
- 给出系数a b c,求方程ax²+bx+c=0的解。a、b、c是浮点数。要求在程序中包含方程是一次方程还是二次方程的判断,对于解的个数不同的情况,也要分情况输出。
- 三角型的面积有很多种求法,有一种求法叫海伦公式,是在已知三角形三边长的条件下求解三角形面积的方法。用海伦公式求解三角形面积。
- 学习使用visual studio的debug功能并进行简单的调试操作。
(一)给出系数a b c,求方程ax²+bx+c=0的解。a、b、c是浮点数。要求在程序中包含方程是一次方程还是二次方程的判断,对于解的个数不同的情况,也要分情况输出。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a, b, c, delta, result, result2;
cout << "请输入方程ax^2+bx+c=0中a,b,c的值:" << endl;
cin >> a >> b >> c;
delta = b * b - 4 * a * c;
if(a == 0)
{
if(b == 0)
cout << "这不是方程" << endl;
else
{
result = -c / b;
cout << "方程" << b << "x+" << c << "=0为一次方程" << endl;
cout << "其结果为:x=" << result << endl;
}
}
else
{
if(b == 0)
cout << "方程" << a*a << "x^2+" << c << "=0为二次方程" << endl;
else
cout << "方程" << a*a << "x^2+" << b << "x+" << c << "=0为二次方程" << endl;
if(delta < 0)
cout << "方程无解" << endl;
else if(delta == 0)
{
result = -b / (a * 2);
cout << "方程只有一个解" << endl;
cout << "其结果为x1=x2=" << result << endl;
}
else
{
result = (-b + sqrt(delta)) / (a * 2);
result2 = (-b - sqrt(delta)) / (a * 2);
cout << "方程有两个解" << endl;
cout << "其结果为x1=" << result << ",x2=" << result2 << endl;
}
}
}
(二)三角型的面积有很多种求法,有一种求法叫海伦公式,是在已知三角形三边长的条件下求解三角形面积的方法。用海伦公式求解三角形面积。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a, b, c, delta, p, s;
cout << "请输入三角形的三边长a,b,c:" << endl;
cin >> a >> b >> c;
p = (a + b + c) / 2;
delta = p * (p - a) * (p - b) * (p - c);
if(delta <= 0)
cout << "三角形边长输入有误!" << endl;
else
{
s = sqrt(delta);
cout << "三角形的面积为:" << s << endl;
}
}
(三)学习使用visual studio的debug功能并进行简单的调试操作。
*图片来自@mark77581
原文链接:https://blog.youkuaiyun.com/Mark7758/article/details/109214385?spm=1001.2014.3001.5501* ↩︎