编程基础:求解一元二次方程的逻辑与条件分支

需积分: 9 0 下载量 178 浏览量 更新于2024-09-03 收藏 614KB PDF 举报
"该资源是关于编程基础的教程,特别是逻辑表达式和条件分支的应用,通过求解一元二次方程来阐述。涉及到C++语言,适合NOIP(全国青少年信息学奥林匹克联赛)的参赛者和对趣味编程感兴趣的年轻人学习。内容包括了不同情况下的方程根的计算,如实根、重根和复根,并展示了如何根据判别式判断方程根的性质。" 在编程中,逻辑表达式和条件分支是控制程序流程的关键元素。在这个例子中,主要讲解了如何使用C++来解决一元二次方程的求根问题。一元二次方程通常形式为 ax² + bx + c = 0,其中a、b、c是常数,a不等于0。 首先,程序接收用户输入的a、b、c三个系数,然后利用数学公式计算方程的根。当判别式Δ = b² - 4ac大于0时,方程有两个不同的实根;等于0时,方程有唯一的实根(重根);小于0时,方程没有实根,而是两个复根。 1. 如果判别式Δ等于0,即b² == 4ac,方程有重根,此时使用公式 x1 = x2 = (-b + sqrt(b² - 4ac)) / (2a) 计算根,并输出。 2. 当判别式Δ大于0,即b² > 4ac,方程有两个实根,使用公式 x1 = (-b + sqrt(b² - 4ac)) / (2a) 和 x2 = (-b - sqrt(b² - 4ac)) / (2a) 分别计算,然后输出。 3. 若判别式Δ小于0,即b² < 4ac,方程有复根。此时,可以将方程的根表示为 x1 = shi + xu * i 和 x2 = shi - xu * i,其中shi和xu分别是实部和虚部,可以通过公式 (-b) / (2a) 和 sqrt(4ac - b²) / (2a) 得到。 在C++代码中,`if` 和 `else if` 语句用于实现这些条件分支,`sqrt` 函数用于计算平方根,`fixed` 和 `setprecision` 用于控制浮点数的输出精度。通过这种方式,程序能够根据方程的具体情况进行适当的计算和输出,展示出逻辑表达式和条件分支在实际编程问题中的应用。 这段代码还涉及到使用`<bits/stdc++.h>`头文件,它包含了大部分标准库,简化了代码的引用。同时,`<cmath>`和`<iomanip>`分别提供了数学函数(如sqrt)和数值格式控制功能。`using namespace std;`使得可以不加`std::`直接调用标准库中的函数和对象。 这个资源对于初学者理解逻辑表达式、条件分支和一元二次方程的求解过程非常有帮助,同时也展示了如何在C++中处理数学问题,为参加NOIP或其他编程竞赛的学生提供了实用的编程技巧。

修改以下代码的错误: import requests import csv import json def get_domain(ip): headers = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36', 'Cookie':'Q_UDID=a0087a08-8bc9-3608-ba2c-222f8a5bb22d; __guid=73887506.2650449936607309000.1676255508286.8772; cert_common=bc66e393-d403-4306-a3af-ca9e756ee279; Q=u%3D360H3407396399%26n%3D%26le%3D%26m%3DZGZ1WGWOWGWOWGWOWGWOWGWOZGpk%26qid%3D3407396399%26im%3D1_t0105d6cf9b508f72c8%26src%3Dpcw_quake%26t%3D1; __NS_Q=u%3D360H3407396399%26n%3D%26le%3D%26m%3DZGZ1WGWOWGWOWGWOWGWOWGWOZGpk%26qid%3D3407396399%26im%3D1_t0105d6cf9b508f72c8%26src%3Dpcw_quake%26t%3D1; T=s%3D61eabdeba51590da336567aacbbbeb10%26t%3D1688956103%26lm%3D%26lf%3D2%26sk%3Df74bb63ff29d85c9ac5555881d1cdefc%26mt%3D1688956103%26rc%3D%26v%3D2.0%26a%3D1; __NS_T=s%3D61eabdeba51590da336567aacbbbeb10%26t%3D1688956103%26lm%3D%26lf%3D2%26sk%3Df74bb63ff29d85c9ac5555881d1cdefc%26mt%3D1688956103%26rc%3D%26v%3D2.0%26a%3D1; Qs_lvt_344458=1688953821%2C1688972384; Qs_pv_344458=419022401534077630%2C695021803767435900; Qs_lvt_357693=1688956089%2C1689039786%2C1689125923%2C1689159866%2C1689225298; Qs_pv_357693=2550591914809554000%2C2510008180438029000%2C1154218478966065400%2C2153165497887938300%2C2883541543979267000' } url = 'https://quake.360.net/api/query/domain/' + ip res = requests.get(url=url, headers=headers, timeout=10) content = res.content.decode('utf-8') dirt = json.loads(content.text) for item in dirt['data']['domain']: print(item) def main(): with open('ips.csv', 'r') as file: ips = csv.DictReader(file) for ip in ips: get_domain(ip) if __name__ == '__main__': main()

2023-07-14 上传