1. Xây dựng hàm giải phương trình bậc nhất.
2. Dùng câu lệnh while viết chương trình in các số trong phạm vi từ 1 – n (n được nhập từ bàn
phím)
3. Cho xâu s chứa "Hai, Ba, Tư, Năm, Sáu”. Em hãy dùng lệnh phù hợp để tách xâu trên thành
danh sách các từ?
4. Xây dựng hàm giải phương trình bậc hai.
5. Xây dựng hàm tính n!
6. Viết hàm hoán đổi giá trị của hai số a và b
Quảng cáo
3 câu trả lời 504
pythonCopy code
def giai_pt_bac_nhat(a, b): if a == 0: if b == 0: return "Phương trình vô số nghiệm"else: return "Phương trình vô nghiệm" else: x = -b / a return f"Nghiệm của phương trình là x = {x}"
Viết chương trình in các số từ 1 đến n sử dụng vòng lặp while:
pythonCopy code
def in_so_den_n(n): i = 1 while i <= n: print(i) i += 1
Tách xâu thành danh sách các từ:
pythonCopy code
xau = "Hai, Ba, Tư, Năm, Sáu" ds_tu = xau.split(', ')
Hàm giải phương trình bậc hai:
pythonCopy code
import cmath def giai_pt_bac_hai(a, b, c): delta = b**2 - 4*a*c x1 = (-b + cmath.sqrt(delta)) / (2*a) x2 = (-b - cmath.sqrt(delta)) / (2*a) return x1, x2
Hàm tính n!:
pythonCopy code
def tinh_giai_thua(n): if n == 0 or n == 1: return 1 else: return n * tinh_giai_thua(n-1)
Hàm hoán đổi giá trị của hai số a và b:
pythonCopy code
def hoan_doi(a, b): a, b = b, a return a, b
Dưới đây là các phần giải quyết cho từng yêu cầu của em:
Hàm giải phương trình bậc nhất:
Phương trình bậc nhất có dạng:ax + b = 0ax+b=0
.
Giải phương trình trên, ta có:x = -\frac{b}{a}x=−ab
.
Dưới đây là hàm Python để giải phương trình bậc nhất:
def giai_phuong_trinh_bac_nhat(a, b):
if a == 0:
if b == 0:
return "Phương trình vô số nghiệm"
else:
return "Phương trình vô nghiệm"
else:
x = -b / a
return f"Nghiệm của phương trình là x = {x}"
# Ví dụ sử dụng:
a = 2
b = 3
print(giai_phuong_trinh_bac_nhat(a, b))
Chương trình in các số từ 1 đến n:
Dùng vòng lặp while để in các số từ 1 đến n:
def in_so_tu_1_den_n(n):
i = 1
while i <= n:
print(i, end=" ")
i += 1
# Nhập n từ bàn phím
n = int(input("Nhập n: "))
in_so_tu_1_den_n(n)
Tách xâu thành danh sách các từ:
Sử dụng phương thức split() để tách xâu thành danh sách các từ:
xau_s = "Hai, Ba, Tư, Năm, Sáu"
danh_sach_tu = xau_s.split(", ")
print(danh_sach_tu)
Hàm giải phương trình bậc hai:
Phương trình bậc hai có dạng:ax^2 + bx + c = 0ax2+bx+c=0
.
Sử dụng công thức nghiệm của phương trình bậc hai:
import math
def giai_phuong_trinh_bac_hai(a, b, c):
delta = b**2 - 4*a*c
if delta < 0:
return "Phương trình vô nghiệm"
elif delta == 0:
x = -b / (2*a)
return f"Nghiệm kép của phương trình là x = {x}"
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
return f"Nghiệm của phương trình là x1 = {x1}, x2 = {x2}"
# Ví dụ sử dụng:
a = 1
b = -3
c = 2
print(giai_phuong_trinh_bac_hai(a, b, c))
Hàm tính giai thừa n!:
Sử dụng vòng lặp để tính giai thừa:
def tinh_giai_thua(n):
giai_thua = 1
for i in range(1, n+1):
giai_thua *= i
return giai_thua
# Nhập n từ bàn phím
n = int(input("Nhập n: "))
print(f"{n}! = {tinh_giai_thua(n)}")
Hàm hoán đổi giá trị của hai số a và b:
Sử dụng biến trung gian để hoán đổi giá trị:
def hoan_doi(a, b):
temp = a
a = b
b = temp
return a, b
# Ví dụ sử dụng:
x = 5
y = 10
x, y = hoan_doi(x, y)
print(f"x sau khi hoán đổi: {x}")
print(f"y sau khi
Phương trình bậc 2 là phương trình có dạng: ax² +bx + c = 0. (a≠0) (1)
Ở các lớp dưới ta đã có phương pháp giải bằng cách tính delta:
Đầu tiên tính delta = b² – 4ac
Nếu delta < 0 thì kết luận vô nghiệm
Nếu delta = 0 thì có nghiệm kép
Nếu delta > 0 thì sẽ có 2 nghiệm phân biệt
Ý tưởng
Dùng một vòng do while để nhập a, b, c nếu a = 0, thì nhập lại.
Chúng ta dùng hàm sqrt() trong thư viện math.h để tính căn delta hoặc tính căn không dùng hàm sqrt()tại đây.
Chúng ta tạo hàm giaiPT trả về kiểu int chính là số nghiệm của phương trình (1).
Chúng ta sẽ đưa tham chiếu 2 biến x1 , x2 vào hàm giaiPT để gán giá trị hai nghiệm.
Nếu pt (1) vô nghiện thì giaiPT sẽ trả về 0 , đồng thời gán x1 = x2 =0 .
Nếu pt (1) có nghiệm kép thì giaiPT sẽ trả về 1 , đồng thời gán x1 = x2 = -b/2a .
Nếu pt (1) có 2 nghiệm thì giaiPT sẽ trả về 2 , gán x1 = (-b+√delta ) / 2a x = (-b-√delta ) / 2a .
#include<stdio.h>
#include<math.h>
int giaiPT(float a, float b, float c,float &x1, float &x2){
float delta = b*b - 4*a*c;
if(delta<0){
x1=x2=0.0;
return 0;
}
else if(delta==0){
x1 = x2 = -b/(2*a);
return 1;
}
else{
delta = sqrt(delta);
x1 = (-b + delta) / (2*a);
x2 = (-b - delta) / (2*a);
return 2;
}
}
int main(){
float a,b,c;
float x1,x2;
do{
printf("Nhap a (a!=0): ");
scanf("%f",&a);
printf("Nhap b: ");
scanf("%f",&b);
printf("Nhap c: ");
scanf("%f",&c);
}
while(!a);// Nếu a=0 thì nhập lại
int numNo = giaiPT(a,b,c,x1,x2);
if(numNo == 0) {
printf("Phuong trinh da cho vo nghiem");
}
else if(numNo == 1){
printf("Phuong trinh da cho co nghiem kep x=%.4f",x1);
}
else{
printf("Phuong trinh da cho co hai nghiem phan biet\nx1=%.4f \nx2=%.4f",x1,x2);
}
}
Nhap a (a!=0): 3
Nhap b: -5
Nhap c: 2
Phuong trinh da cho co hai nghiem phan biet
x1=1.0000
x2=0.6667
#include<math.h>
using namespace std;
int giaiPT(float a, float b, float c,float &x1, float &x2){
float delta = b*b - 4*a*c;
if(delta<0){
x1=x2=0.0;
return 0;
}
else if(delta==0){
x1 = x2 = -b/(2*a);
return 1;
}
else{
delta = sqrt(delta);
x1 = (-b + delta) / (2*a);
x2 = (-b - delta) / (2*a);
return 2;
}
}
int main(){
float a,b,c;
float x1,x2;
do{
cout<<"Nhap a (a!=0): ";
cin>>a;
cout<<"Nhap b: ";
cin>>b;
cout<<"Nhap c: ";
cin>>c;
}
while(!a);
int numNo = giaiPT(a,b,c,x1,x2);
if(numNo ==0 ) {
cout<<"Phuong trinh da cho vo nghiem";
}
else if(numNo==1){
cout<<"Phuong trinh da cho co nghiem kep x=%.4f" << x1;
}
else{
cout<<"Phuong trinh da cho co hai nghiem phan biet"<<endl;
cout<< "x1=" << x1<<endl;
cout<< "x2=" << x2<<endl;
}
}
Nhap a (a!=0): 3
Nhap b: -5
Nhap c: 2
Phuong trinh da cho co hai nghiem phan biet
x1=1
x2=0.666667
Quảng cáo
Câu hỏi hot cùng chủ đề
-
29616