Viết chương trình tính diện tích hình chữ nhật với hai cạnh ab nhập từ bàn phím Python

Diện tích hình chữ nhật chính là phần được đo bằng độ lớn bề mặt của hình, là phần mặt phẳng mà bạn có thể nhìn thấy. Vậy nên, muốn tính diện tích hình chữ nhật ta sẽ lấy chiều dài nhân với chiều rộng.

Bài thực hành python

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.08 MB, 34 trang )

Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

1
Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng
Bài Thực hành 1- Nhập – Xuất trong Python

MỤC TIÊU

 Trình bày được các kiểu dữ liệu cơ bản, cú pháp các câu lệnh nhập/xuất
 Vận dụng được các kiến thức cơ bản về biểu thức, thư viện toán học math trong khi
xây dựng chương trình
 Vận dụng được để viết các chương trình theo yêu cầu.

BÀI TẬP CÓ LỜI GIẢI

I. Cấu trúc rẽ nhánh
Bài 1 Xây dựng chương trình có giao diện như sau:
************************************
*
LẬP TRÌNH CĂN BẢN
*
*
Ngôn ngữ: PYTHON
*
*
Số Tín Chỉ: 3
*
************************************
Cách làm: Sử dụng cú pháp lệnh xuất dữ liệu print ra màn hình theo định dạng
 Chương trình minh họa
print('************************************')

print('*
LẬP TRÌNH CĂN BẢN
*')
print('*
Ngôn ngữ: PYTHON
*')
print('*
Số Tín Chỉ: 3
*')
print('************************************')
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Viết sai print
 Thiếu dấu nháy đơn để kết thúc chuỗi hoặc dấu đóng ngoặc
Bài 2 Xây dựng chương trình nhập vào hai số a, b từ bàn phím, sau đó tính tổng và in kết quả ra
màn hình.
 Xác định yêu cầu bài toán
- Dữ liệu nhập vào: hai số a, b
- Dữ liệu xuất ra: Tổng a+b
- Cách làm: Xác định các biến vào/ra/trung gian trong bài toán. Biến vào a, b kiểu
số (số nguyên hoặc thực); Biến ra tong kiểu số và cùng kiểu vơia a/b.
+ Bước 1: Nhập hai số a, b từ bàn phím
+
Bước 2: Sử dụng toán tử + để tính tổng hai số
+
Bước 3: In kết quả ra màn hình
 Chương trình minh họa
a=float(input('Nhập vào số a: '))
2
Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng
b=float(input('Nhập vào số b: '))
print(a+b)
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Thiếu chuyển đổi kiểu dữ liệu cho a sang kiểu số nguyên
 Viết sai biểu thức ép kiểu
Bài 3 Xây dựng chương trình nhập vào hai số a, n từ bàn phím, sau đó tính an và in kết quả ra
màn hình.
 Xác định yêu cầu bài toán
- Dữ liệu nhập vào: hai số a, n
- Dữ liệu xuất ra: an
- Cách làm: Xác định các biến vào/ra/trung gian trong bài toán. Biến vào a, n kiểu
số (Giả sử chọn a và n kiểu số nguyên); Biến ra an kiểu float (Có thể khai báo
biến hoặc xuất trực tiếp ra màn hình, trong bài này chọn cách thứ 2)
+ Bước 1: Nhập hai số a, n từ bàn phím.
+ Bước 2: Sử dụng toán tử a**n trong để tính an
+ Bước 3: In kết quả ra màn hình
 Chương trình minh họa
a=float(input('Nhập vào số a: '))
n=float(input('Nhập vào số n: '))
print(a**n)
Kết quả chạy chương trình với giá trị nhập vào là a=2 và n=4

Bài 4 Xây dựng chương trình nhập sử dụng thư viện math lấy giá trị hằng số Pi, nhập giá trị bán
kính và in chu vi diện tích của hình tròn tương ứng ra màn hình.
 Xác định yêu cầu bài toán
- Dữ liệu nhập vào: số r
- Dữ liệu xuất ra: CV=2*Pi*r và DT=Pi*r*r với Pi=math.Pi
- Cách làm:
+ Import thư viện math

+ Xác định các biến vào/ra/trung gian trong bài toán gồm: Pi, CV, DT
+ Bước 1: import thư viện: import math
+ Bước 2: Nhập bán kính r=(float)raw()
+ Bước 3: Sử dụng các hàm hay giá trị hằng cần thiết mà math hỗ trợ như:
math.pi để tính CV, DT và hiển thị kết quả ra màn hình
 Chương trình minh họa
import math
r=float(input('Nhap bán kính r='))
print('Chu vi hình tròn là: ',2*math.pi*r)
3

Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng
print('Diện tích hình tròn là: ',math.pi*r*r )
Kết quả chạy chương trình với giá trị nhập vào là r=1

 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Viết toán tử nhân sai như: 2Pi*r
 Viết sau math.Pi, math.PI do chưa có ý thức đầy đủ về viết hoa thường.

BÀI TẬP TỰ LÀM

Bài 1 Xây dựng chương trình hiển thị ra màn hình menu như sau:
F1: Nhap
F5: Tim kiếm theo ten
F2: Nhap them

F6: Hiển thị học sinh gioi

F3: Doc tep

F7: Thong ke

F4: Hien thi

ESC: Thoat

Bài 2 Xây dựng chương trình hiển thị ra màn hình các dấu sao tạo thành hình như sau:
a
b
*****
*
*
*
* *
*
*
*
*
*****
*******
Bài 3 Xây dựng chương trình giới thiệu về bạn: tên, tuổi, ngày tháng năm sinh, địa chỉ, nghề
nghiệp, sở thích và một số thông tin khác.
Bài 4 Mở rộng bài mẫu 2 cho phép chương trình nhập tài khoản sau “Tai khoan:” và mật khẩu từ
bàn phím sau “Mat khau:“
Bài 5 Xây dựng chương trình sumi giúp người và máy tính nói chuyện với nhau về: tên, tuổi,
giới tính, số điện thoại, email, địa chỉ, nghề nghiệp, sở thích, sở trường và một số thông tin khác.
Bài 6: Viết chương trình nhập vào kích thước chiều dài của một hình chữ nhật, hiển thị ra màn
hình chu vi và diện tích của hình chữ nhật đó.
Bài 7: Viết chương trình nhập vào kích thước chiều dài cạnh của một hình vuông, hiển thị ra
màn hình chu vi và diện tích của hình vuông đó.

Bài 6: Viết chương trình nhập vào kích thước độ dài bán kính của một hình tròn, hiển thị ra màn
hình chu vi và diện tích của hình tròn đó.

4
Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài Thực hành 2- Cấu trúc điều khiển
MỤC TIÊU
 Trình bày được cú pháp các câu lệnh nhập/xuất
 Trình bày được cú pháp các câu lệnh rẽ nhánh: if khuyết, if else và if elif
 Mô tả được hoạt động của các cấu trúc rẽ nhánh
 Đưa ra được điểm khác nhau của lệnh rẽ nhánh if, if else và if elif
 Lựa chọn được cấu trúc rẽ nhánh thích hợp và vận dụng linh hoạt trong khi
xây dựng chương trình
 Phân tích được cú pháp của các cấu trúc lặp: while, for
 So sánh được điểm giống và khác nhau giữa các dạng lệnh
 Sử dụng thành thạo các câu lệnh lặp để thể hiện giải thuật
 Vận dụng được để viết các chương trình theo yêu cầu.

BÀI TẬP CÓ LỜI GIẢI

Bài 1 Xây dựng chương trình nhập vào một số từ bàn phím, kiểm tra xem số đó là số đó
có chia hết cho 2 hay không và in kết quả ra màn hình.
 Xác định yêu cầu bài toán:
- Dữ liệu nhập vào: a
- Dữ liệu xuất ra: a chia hết cho 2 hoặc a không chia hết cho 2
- Cách làm: Xác định các biến vào/ra/trung gian trong bài toán gồm biến nhập
vào a kiểu số nguyên
+ Bước 1: Nhập một số nguyên từ bàn phím (giả sử đặt tên là a)

+ Bước 2: Kiểm tra số a có chia hết cho 2 hay không (dùng toán tử %, a
chia hết cho 2 thì a chia 2 dư 0, ngược lại a chia 2 dư 1)
+ Bước 3: Dùng cấu trúc điều khiển if…else để kiểm tra
o Nếu số a%2==0 thì in ra thông báo: đây là số chẵn
o Ngược lại thì in ra thông báo: đây là số lẻ
 Chương trình minh họa
a=int(input('Nhập vào số a: '))
if a%2==0:
print(a, 'là số chẵn')
else:
print(a, 'là số lẻ')
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
5
Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Thiếu chuyển đổi kiểu dữ liệu cho a sang kiểu số nguyên
Viết sai toán tử kiểm tra bằng == thành =
Thiếu dấu : để bắt đầu khối các lệnh con
Câu lệnh con không viết thụt lùi đầu dòng

Bài 2 Xây dựng chương trình nhập vào một số nguyên dương N sau đó tính tổng N số
nguyên dương đầu tiên.
 Xác định yêu cầu bài toán

- Dữ liệu nhập vào: N nguyên dương
- Dữ liệu xuất ra: S=1+2+3+…..+N
- Cách làm:
o
Bước 1: Nhập số nguyên dương N
o
Bước 2: Áp dụng cấu trúc lặp for để duyệt từ 1N, tại mỗi lần duyệt
cộng giá trị vào viết S
o
Bước 3: In kết quả ra màn hình
 Chương trình minh họa
n=int(input('Nhập vào số nguyên n: '))
s=0
for i in range(1,n+1,1):
s+=i
print(s)
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Viết hàm range sai hoặc không cho đúng giá trị yêu cầu, như range(n),
range(1,n,1)
 Viết biểu thức lặp sai
1
2
1
3

Bài 3 Tìm n nhỏ nhất để S>a lớn hơn a, a nhập vào từ bàn phím. Biết S  1    ... 
1
n

 Xác định yêu cầu bài toán
- Dữ liệu nhập vào: Số thực a
- Dữ liệu xuất ra: n thỏa điều kiện.
- Cách làm:
o
Bước 1: Nhập số thực a
o
Bước 2: Khởi gán giá trị cho biến lưu trữ s=0 và n=0.
o
Bước 3: Dùng cấu trúc lặp while để duyệt từ 1N, tại mỗi vòng lặp
tăng n và cộng thêm 1/n vào biến lưu trữ s, kiểm tra nếu s thỏa điều
kiện>a thì thoát khỏi vòng lặp và in kết quả ra màn hình.
6
Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng
 Chương trình minh họa
a=float(input('Nhập vào số nguyên a: '))
n=0
s=0
while(s<=a):
n+=1
s+=1/n
print('Giá trị n nhỏ nhất để s>',a,' là: n=',n,'Khi đó s=',s)
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Thiếu chuyển đổi kiểu dữ liệu cho a sang kiểu số
 Thiếu dấu : để bắt đầu khối các lệnh con
 Hai câu lệnh con n+=1 và s+=1/n không thẳng lề trái

 Chưa phân biệt rõ ràng kiểu dữ liệu số và kiểu dữ liệu chuỗi
Bài 4 Xây dựng chương trình ĐĂNG NHẬP có giao diện như bài 1. Cho phép người
dùng nhập tên tài khoản và mật khẩu tối đa 3 lần. Nếu tài khoản = “CSKTLT” và mật
khẩu=”fit@123” thì hiển thị “DANG NHAP THANH CONG”. Nếu cả 3 lần nhập thông
tin tên tài khoản và mật khẩu chưa đúng thì hiển thị “DANG NHAP THAT BAI”
Gợi ý xác định yêu cầu bài toán
 Dữ liệu nhập vào: tk, mk
 Dữ liệu xuất ra: “DANG NHAP THANH CONG” hoặc “DANG NHAP
THAT BAI”
 Cách làm: Xác định các biến vào/ra/trung gian trong bài toán gồm biến
nhập vào tk, mk kiểu string; biến trung gian dem để đếm số lần người dùng
nhập tk, mk.
Dùng lệnh lặp while với điều kiện lặp là dem<3 tức khi dem>=3 thì thoát,
công việc lặp gồm: Nhập tk, mk; kiểm tra xem đăng nhập xem có thành
công không?; Cuối cùng là kiểm tra xem đã quá số lần nhập sai trong giới
hạn cho phép là 3 hay chưa?
o Bước 1: Sử dụng lệnh lặp với điều kiện lặp là dem<3
o Bước 2: Viết công việc lặp
 Hiển thị “Tai khoan:” và nhập giá trị cho biến tk, sử dụng cú
pháp xuất dữ liệu ra màn hình Write(" Tai khoan: ");
 Hiển thị “Mat khau: " nhập giá trị cho biến mk
 Dùng cấu trúc rẽ nhánh if để kiểm tra nếu (tk== "CSKTLT"
&& mk == "fit@123”) đúng thì xuất dữ liệu ra màn hình
“DANG NHAP THANH CONG”
 Xác định yêu cầu bài toán
7
Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

- Dữ liệu nhập vào: Số thực a
- Dữ liệu xuất ra: n thỏa điều kiện.
- Cách làm:
o
Bước 1: Nhập số thực a
o
Bước 2: Khởi gán giá trị cho biến lưu trữ s=0 và n=0.
o
Bước 3: Dùng cấu trúc lặp while để duyệt từ 1N, tại mỗi vòng lặp
tăng n và cộng thêm 1/n vào biến lưu trữ s, kiểm tra nếu s thỏa điều
kiện>a thì thoát khỏi vòng lặp và in kết quả ra màn hình.
 Chương trình minh họa
dem=0
while(dem<3):
print('Lần đăng nhập thứ: ', dem + 1)
tk = input('Nhap tai khoản: ')
mk = input('Nhap Mật khẩu: ')
if(tk== 'python' and mk == 'fit@123'):
print('DANG NHAP THANH CONG')
break
else: dem+=1
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Viết sai tên toán tử quan hệ ==, toán tử and
 Tổ chức các lệnh con trong vòng lặp while
 Quên không tăng giá trị cho biến đếm số lần đăng nhập
 Dùng cấu trúc rẽ nhánh
 Không viết lệnh break
Bài 5 Xây dựng chương trình nhập vào số N, rồi kiểm tra xem N có phải là số nguyên tố
hay không.
 Phân tích bài toán

- Dữ liệu nhập vào: Số nguyên n
- Dữ liệu xuất ra: Có/không
- Cách làm:
- Bước 1: Nhập số nguyên dương N sử dụng cú pháp vào ra
- Bước 2: Số nguyên tố là số chỉ có hai ước số là 1 và chính nó. Như vậy, nếu trong
khoảng từ 2 đến √N không tồn tại một ước số nào của N (số ước=0), thì N là số
nguyên tố.
- Bước 3: Giả sử dùng biến chạy i, duyệt i từ (2) đến √N (có thể chọn cận trên là N/2
hoặc N-1 cũng được) với bước nhảy là 1. Kiểm tra số N có chia hết cho i hay không,
8
Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng
nếu có thì in kết quả ra màn hình N không là số nguyên tố và thoát; Nếu số ước=0 thì
N là số nguyên tố.
 Chương trình minh họa
import math
N= int(input('Nhap số nguyên dương N= '))
i=2
souoc=0
while (i<=math.sqrt(N)):
if(N%i==0):
break
else:
souoc+=1
i+=1
if(souoc==0):
print(N, ' là số nguyên số')

else:
print(N, ' là hợp số')
Cách giải quyết khác
Bài này có thể dùng kỹ thuật cờ để giải quyết
- Bước 1. Lúc đầu mặc định N là số nguyên tố (phất cờ);
- Bước 2. (lặp) Kiểm tra nếu N có ước khác 1 hoặc chính nó thì N là số
nguyên tố (hạ cờ xuống);
- Bước 3. Cuối cùng kiểm tra trạng thái cờ: Nếu cờ đang phất thì đúng N là
số nguyên tố; Nếu cờ đã bị hạ xuống thì sai N không là số nguyên tố.
 Chương trình minh họa
import math
N= int(input('Nhap số nguyên dương N= '))
i=2
ok=True
while (i<=math.sqrt(N)):
if(N%i==0):
ok=False
break
i+=1
if(ok):
print(N, ' là số nguyên số')
else:
print(N, ' là hợp số')
9
Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài tập tự làm

Bài 1 Viết chương trình quản lý tiền điện của một hộ với các thông tin sau: họ tên một
chủ hộ, chỉ số điện kế tháng trước (chiso1) và chỉ số điện kế tháng này (chiso2), tính tiền
điện tháng này cho hộ, biết rằng :
- Mỗi kw trong 60 kw đầu tiên có đơn gía là 5đ,
Từ kw thứ 61 đến kw thứ 160 có đơn giá 8đ,
Từ kw thứ 161 trở lên có đơn gía 10đ.
Gợi ý:
Bước 1: Nhập vào chiso1 và chiso2
Bước 2: Tính số KW của tháng bằng cách: soKW=chiso2-chiso1
Bước 3: Dùng cấu trúc if để kiểm tra
+ Nếu soKW<=60sotien=soKW*5
+ Nếu 61<=soKW<=160tính số KW vượt quá 60. Vậy số tiền sẽ được tính như sau:
sotien=60*5+soKWvuot*8
+ Nếu 161<=soKW tính số KW vượt quá 161. Vậy số tiền sẽ được tính như sau:
Sotien=60*5+100*8+soKWvuot*10
- Bước 4: In kết quả ra màn hình
Bài 2 Xây dựng chương trình giải phương trình bậc 2: ax2+bx+c=0 (với a,b,c nhập từ bàn
phím)
Gợi ý:
- Bước 1: Nhập các hệ số của phương trình bậc hai
- Bước 2: Sử dụng cấu trúc if…else để giải bài toán
+ Đầu tiên kiểm tra hệ số a, nếu a=0kết luận đây không là phương trình bậc hai,
ngược lại tính delta như sau: delta=b*b-4*a*c
+ Kiểm tra giá trị của delta:
Nếu delta<0kết luận phương trình vô nghiệm
Nếu delta=0phương trình có nghiệm kép x=-b/(2*a)
Nếu delta>0phương trình có hai nghiệm phân biệt:
X1=-(b+sqlt(delta))/(2*a)
X2=-(b-sqlt(delta))/(2*a)
- Bước 3: In kết quả ra màn hình

Bài 3 Xây dựng chương trình nhập một tháng, cho biết tháng đó thuộc mùa nào (Xuân,
Hạ, Thu, Ðông), biết rằng tháng 2, 3, 4 là mùa Xuân, tháng 5, 6, 7: mùa Hè, tháng 8, 9,
10: mùa Thu, và tháng 11, 12, 1: mùa Ðông.
Gợi ý:
- Bước 1: nhập vào một số từ bàn phím ()
10
Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

- Bước 2: Sử dụng cấu trúc if elif để kiểm tra
+ Trường hợp: 2,3,4thông báo đây là mùa xuân
+ Trường hợp: 5,6,7thông báo đây là mùa hè
+ Trường hợp: 28,9,10thông báo đây là mùa thu
+ Trường hợp: 11,12,1thông báo đây là mùa đông
- Bước 3: In kết quả ra màn hình
Bài 4 Viết chương trình nhập vào số nguyên N (0