Bài giảng Tin học 11 - Bài 16: Ví dụ làm việc với tệp - Năm học 2022-2023 - Nguyễn Lan Hương - Trường THPT Nguyễn Thái Học

Bài giảng Tin học 11 - Bài 16: Ví dụ làm việc với tệp - Năm học 2022-2023 - Nguyễn Lan Hương - Trường THPT Nguyễn Thái Học

Bài 1: Viết chương trình đọc 3 số nguyên a,b,c từ tệp BAI1.INP, a#0.

Ghi ra tệp BAI1.OUT kết luận nghiệm của phương trình bậc 2 ax2+bx+c=0

+ Dữ liệu vào: Từ file văn bản BAI1.INP:

 Dòng 1: ghi 3 số nguyên a,b,c

+ Dữ liệu ra: Ghi ra file văn bản BAI1.OUT

 - Nếu phương trình vô nghiệm thì ghi : PTVN

 - Nếu phương trình có 2 nghiệm thì ghi :

 x1=

 x2=

 - Nếu phương trình có 1 nghiệm kép thì ghi :

 Nghiệm kép x=

 

pptx 18 trang Trí Tài 03/07/2023 740
Bạn đang xem tài liệu "Bài giảng Tin học 11 - Bài 16: Ví dụ làm việc với tệp - Năm học 2022-2023 - Nguyễn Lan Hương - Trường THPT Nguyễn Thái Học", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tiết 39+40: Bài 16VÍ DỤ LÀM VIỆC VỚI TỆP 
Bài 1 : Viết chương trình đọc 3 số nguyên a,b,c từ tệp BAI1.INP, a#0. 
Ghi ra tệp BAI1.OUT kết luận nghiệm của phương trình bậc 2 ax 2 +bx+c=0 
+ Dữ liệu vào: Từ file văn bản BAI1.INP: 
 Dòng 1: ghi 3 số nguyên a,b,c 
+ Dữ liệu ra: Ghi ra file văn bản BAI1.OUT 
 - Nếu phương trình vô nghiệm thì ghi : PTVN 
 - Nếu phương trình có 2 nghiệm thì ghi : 
 x1 = 
 x2= 
 - Nếu phương trình có 1 nghiệm kép thì ghi : 
 Nghiệm kép x= 
f=open("BAI1.inp ",'r', encoding='utf-8') 
g=open (" BAI1.out",'w', encoding='utf-8') 
s=f.readline() 
#p,q,r=map(int,s.split()) 
ds=s.split () 
a=int(ds[0]) 
b=int(ds[1]) 
c=int(ds[2]) 
from math import * 
delta=b*b-4*a*c 
if delta<0: 
 g.write("PTVN") 
elif delta==0: 
 x=-b/(2*a) 
 g.write("Nghiệm kép"+str(x)) 
else: 
 x1=(-b-sqrt(delta))/(2*a) 
 x2=-b/a-x1 
 g.write("x1="+str(x1)+"\n") 
 g.write("x2="+str(x2)+"\n") 
 f.close () 
g.close () 
Chương trình bài 1 : 
Bài 2 : Cho 3 số nguyên dương p, q, r 
Yêu cầu: Kiểm tra 3 số này, theo thứ tự có tạo thành một cấp số nhân hay không. Nếu có thì in ra “YES”, ngược lại thì in ra “NO” 
Dữ liệu vào: Từ file văn bản BAI2.INP : 
Gồm một dòng chứa 3 số nguyên dương p, q, r (p, q ≤ 10 9 ). Các số viết cách nhau một dấu cách 
Dữ liệu ra: Ghi ra file văn bản BAI2.OUT 
- Gồm 1 dòng ghi YES hoặc NO tương ứng với kết quả của bài toán dãy số là cấp số nhân hay không là cấp số nhân 
f=open("BAI2.inp ",'r', encoding='utf-8') 
g=open("BAI2.out ",'w', encoding='utf-8') 
s=f.readline() 
 #p,q,r=map(int,s.split()) 
ds=s.split() 
p=int(ds[0]) 
q=int(ds[1]) 
r=int(ds[2]) 
if q*q==p*r: 
	g.write("YES") 
else: 
	g.write("NO") 
f.close() 
g.close() 
Chương trình bài 2: 
Cách 1 
Bài 3 
Cho một số nguyên dương n 
Yêu cầu: Phân tích n thành tích các thừa số nguyên tố. In ra tích các thừa số nguyên tố theo thứ tự từ bé đến lớn 
Dữ liệu vào: Từ file văn bản FPRIME.INP: 
Gồm một số nguyên dương n (2 ≤ n ≤ 10 6 ). 
Dữ liệu ra: Ghi ra file văn bản FPRIME.OUT 
- Gồm 1 dòng ghi ra số theo yêu cầu của đề bài, mỗi số cách nhau một dấu cách 
Bài 4 
Cho một dãy số nguyên dương có n phần tử 
Yêu cầu: Tìm ước chung lớn nhất của dãy số đó 
Dữ liệu vào: Từ file văn bản GCDSEQ.INP gồm: 
Dòng 1: gồm một số nguyên dương n (n ≤ 1000). 
Dòng 2: gồm n số nguyên dương là các phần tử của dãy số. (Các số có giá trị không vượt quá 10 6 và các số cách nhau 1 dấu cách) 
Dữ liệu ra: Ghi ra file văn bản GCDSEQ.OUT 
- Gồm 1 số nguyên duy nhất là ước chung lớn nhất của dãy số 
Bài 4 
Cho một dãy số nguyên A có n phần tử: A 1 , A 2 , A n . 
Yêu cầu: Tìm dãy con liên tiếp đan dấu dài nhất 
Dữ liệu vào: Từ file văn bản MIX.INP gồm: 
Dòng 1: gồm một số nguyên dương n (n ≤ 1000). 
Dòng 2: gồm n số nguyên A i là các phần tử của dãy số. (1 ≤ i ≤ n, |A i | ≤ 10 6 ). Các số cách nhau bởi dấu cách 
Dữ liệu ra: Ghi ra file văn bản MIX.OUT 
Dòng 1: gồm một số nguyên k là độ dài của dãy con dài nhất tìm được 
Dòng 2: gồm k số nguyên là dãy con thỏa mãn đề bài 
Bài toán có thể có nhiều kết quả. In ra dãy con dài nhất đầu tiên khi xét từ trái qua phải 
Giải thích: 
i là biến chạy 
m lưu độ dài max của dãy đan dấu 
dau, cuoi: chỉ vào vị trí đầu và cuối của dãy đan dấu 
Ví dụ : 
N = 16 
Dãy a = 1 -2 3 -4 -5 6 -7 8 -9 -8 -7 6 -5 4 -3 2 
Độ dài dãy lớn nhất là: 6, từ vị trí 10 đến 15 (nhớ list đánh số bắt đầu từ 0) 
Dãy đan dấu lớn nhất là: -7 6 -5 4 -3 2 
Bài 5 
Cho 3 dãy số nguyên A, B, C mỗi dãy số gồm N phần tử 
Yêu cầu: tìm cột được tạo ba phần tử tương ứng của 3 dãy số A i , B i , C i có tổng lớn nhất 
Dữ liệu vào: Từ file văn bản 3SEQ.INP gồm: 
Dòng 1: gồm một số nguyên dương n (n ≤ 1000). 
Ba dòng tiếp theo mỗi dòng gồm n số nguyên dương có giá trị không quá 10 6 mô tả 3 dãy số đó. Các số cách nhau bởi dấu cách 
Dữ liệu ra: Ghi ra file văn bản 3SEQ.OUT gồm 1 số nguyên duy nhất là tổng của cột lớn nhất tìm được 

Tài liệu đính kèm:

  • pptxbai_giang_tin_hoc_11_bai_16_vi_du_lam_viec_voi_tep_nam_hoc_2.pptx