1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Lý thuyết và bài tập về cấu trúc lặp trong ngôn ngữ lập trình python(1)

17 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lý Thuyết Và Bài Tập Về Cấu Trúc Lặp Trong Ngôn Ngữ Lập Trình Python
Tác giả Vũ Thị Duyên, Đỗ Thị Xuyến, Nguyễn Thị Loan, Bùi Thị Miền, Bùi Thị Thu
Trường học Trường THPT Bình Minh
Chuyên ngành Tin học
Thể loại sáng kiến
Thành phố Ninh Bình
Định dạng
Số trang 17
Dung lượng 35,11 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tên sáng kiến, lĩnh vực áp dụng- Là nhóm tác giả đề nghị xét công nhận sáng kiến: “Lý thuyết và bàitập về cấu trúc lặp trong ngôn ngữ lập trình Python”.- Lĩnh vực áp dụng: Môn Tin học..

Trang 1

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

ĐƠN YÊU CẦU CÔNG NHẬN SÁNG KIẾN

Kính gửi: Hội đồng sáng kiến Sở GD & ĐT Ninh Bình

Chúng tôi gồm:

T

Ngày tháng năm sinh

Nơi công tác

Chức vụ

Trình độ chuyên môn

Tỷ lệ (%) đóng góp vào việc tạo ra sáng kiến

6

THPT Bình Minh

Giáo

5

THPT Bình Minh

Giáo

3 Nguyễn Thị Loan 10/01/198

3

THPT Bình Minh

Giáo

7

THPT Bình Minh

Giáo

8

THPT Bình Minh

Giáo

1 Tên sáng kiến, lĩnh vực áp dụng

- Là (nhóm tác giả) đề nghị xét công nhận sáng kiến: “Lý thuyết và bài tập về cấu trúc lặp trong ngôn ngữ lập trình Python”.

- Lĩnh vực áp dụng: Môn Tin học

2 Nội dung

Trang 2

a Giải pháp cũ thường làm:

Ngày nay, trên thế giới đang diễn ra quá trình tin học hoá trên nhiều lĩnh vực hoạt động của xã hội loài người và đem lại nhiều hiệu quả to lớn Việc sử dụng máy tính không còn chỉ bó hẹp trong viện nghiên cứu, các trường đại học, các trung tâm máy tính mà còn mở rộng ra mọi cơ quan, tổ chức kinh tế, và trong các gia đình Song song với quá trình trên, việc giảng dạy Tin học trong các trường đại học, THPT cũng được đẩy mạnh Việc tiếp cận với Tin học đang rất được phụ huynh và học sinh quan tâm

Chính vì vậy, đối với mỗi giáo viên giảng dạy môn Tin học ở các trường phổ thông, việc tìm hiểu, nghiên cứu các vấn đề về Tin học, cùng với việc tìm các biện pháp giảng dạy Tin học trong nhà trường phổ thông là một công việc cần phải làm thường xuyên, nhằm đáp ứng với sự đòi hỏi ngày càng cao của gia đình, nhà trường và xã hội

Những năm gần đây việc thay đổi sách giáo khoa là một bước tiến lớn trong giáo dục nói chung và với môn Tin học nói riêng Đối với môn Tin học đã

có nhiều đổi mới, học sinh được tiếp cận với Tin học qua đầy đủ các chủ đề Một trong những chủ đề được học sinh yêu thích đó là chủ đề F “Giải quyết vấn

đề với sự trợ giúp của máy tính” Ngôn ngữ lập trình được lựa chọn để giảng dạy và học tập là ngôn ngữ lập trình Python, đây là ngôn ngữ mới và có nhiều tính năng ưu việt Tuy nhiên, do là ngôn ngữ mới, nên tài liệu tiếng việt chưa phong phú, học sinh khó khăn khi tìm kiếm tài liệu học tập Đặc biệt, khi giảng dạy cho học sinh phần câu lệnh lặp, chúng tôi nhận thấy học sinh vẫn còn gặp phải nhiều vấn đề khó khăn như: nhiều học sinh còn lúng túng, chưa phân biệt rõ được các loại câu lệnh lặp, dẫn đến không biết nên lựa chọn và sử dụng câu lệnh lặp nào cho phù hợp với yêu cầu bài toán và tối ưu hóa thuật toán? Một số học sinh khá, giỏi có thể sử dụng cấu trúc lặp để mô tả nhưng đa số chưa biết tối ưu hóa thuật toán để giảm số lần lặp, các em cũng chưa biết cách sử dụng linh hoạt cấu trúc lặp vào giải quyết các bài toán

Trang 3

Chính vì vậy chúng tôi đã lựa chọn đề tài: “Lý thuyết và bài tập cấu trúc lặp trong ngôn ngữ lập trình Python” Với mong muốn tạo ra một tài liệu hữu

ích cho học sinh và giáo viên khi tiếp cận ngôn ngữ mới

b Giải pháp mới được cải tiến

Tài liệu được viết cho bài 8, bài 9: Câu lệnh lặp nằm trong chủ đê F “Giải quyết vấn đề với sự trợ giúp của máy tính”, sách giáo khoa tin học 10, dùng ngôn ngữ Python để minh hoạ Nội dung chia làm 3 phần: Lý thuyết, bài tập có lời giải và bài tập áp dụng học sinh tự tìm kiếm lời giải

Phần lý thuyết bám sát nội dung sách giáo khoa, được viết rõ ràng, có ví

dụ cụ thể cho từng phần và phân tích kỹ ví dụ để học sinh nắm và hiểu được kỹ phần kiến thức đưa ra

Phần bài tập có lời giải được viết từ các bài tập đơn giản nhất tới các bài toán phức tạp hơn giúp học sinh dễ dàng nắm được kiến thức và cách thức sử dụng cấu trúc lặp Các bài tập được viết với các cách khác nhau, được giải thích

kỹ, đưa ra được ứng dụng của các bài toán Phần bài tập không có lời giải đưa ra

1 số bài tập có thể sử dụng cấu trúc lặp để giải quyết, các bài tập từ đơn giản đến khó giúp học sinh tự kiểm tra lại kiến thức, khả năng áp dụng kiến thức vào các bài toán khác nhau

Bài tập có tích hợp giải quyết các bài toán thực tế và các môn học khác như toán học, sinh học… giúp học sinh thấy được ứng dụng của môn Tin học vào giải quyết các bài toán thực tế, thấy được khả năng sử dụng môn học để giải quyết các môn học khác Từ đó, nắm được tính ứng dụng cao của môn học, tăng thêm niềm yêu thích và động lực học tập cho học sinh

3 Hiệu quả kinh tế, xã hội dự kiến đạt được

Hiện tại sách và tài liệu về bộ môn Tin học dành cho học sinh còn ít so với các bộ môn khác, học sinh trong trường rất khó khăn khi mua tài liệu tham khảo, học sinh thường tìm kiếm trên mạng, trên thực tế các tài liệu trên mạng cũng ít và sơ sài Chính vì vậy việc nghiên cứu và xây dựng các bộ tài liệu chi tiết phù hợp cho học sinh là việc làm hết sức cần thiết, giúp các em học sinh có

Trang 4

thể tiếp cận được dễ dàng kiến thức của môn học, từ đó thêm yêu thích và mong muốn học tập nghiên cứu về môn học hơn

4 Điều kiện và khả năng áp dụng

Nội dung sáng kiến được xây dựng phù hợp với học sinh, giúp học sinh

có 1 tài liệu tốt phục vụ cho quá trình học tập và nghiên cứu Hỗ trợ cho giáo viên trong quá trình giảng dạy Nhất là đối với học sinh có nhu cầu tìm hiểu sâu hơn về kiến thức lập trình, các học sinh tham gia các kỳ thi học sinh giỏi và học sinh có nhu cầu thi vào các trường công nghệ thông tin Bước đầu tạo nền tảng kiến thức tốt cho việc phát triển tư duy lập trình cho học sinh

Chúng tôi xin cam đoan mọi thông tin nêu trong đơn là trung thực, đúng

sự thật và hoàn toàn chịu trách nhiệm trước pháp luật

XÁC NHẬN CỦA LÃNH ĐẠO

ĐƠN VỊ CƠ SỞ

Bình Minh, tháng 5 năm 2023

Người nộp đơn

Vũ Thị Duyên

Đỗ Thị Xuyến

Nguyễn Thị Loan

Bùi Thị Miền

Bùi Thị Thu

Trang 5

PHỤ LỤC CẤU TRÚC LẶP

I LÝ THUYẾT

1 Lặp với số lần biết trước và câu lệnh for

- Cú pháp:

for biến_chạy in dãy_giá_trị:

khối lệnh

- Ý nghĩa: Biến_chạy có giá trị lần lượt từ giá trị đầu đến giá trị cuối của dãy giá trị, mỗi lần lặp thì thực hiện dãy lệnh trong for

- Trong đó: dãy_giá_trị có thể là hàm range, xâu hoặc mảng Một số dạng của hàm range như sau:

+ range (m,n): Dãy các giá trị từ m đến n-1

+ range(1,n,2): Dãy các số lẻ từ 1 đến n-1

+ range(n,0,-1): Dãy các giá trị giảm từ n đến 1

+ range(n): Dãy các giá trị từ 0, 1, 2, … đến n-1 giống range(0,n) hoặc

range(0,n,1)

Ví dụ 1: for i in range(1,4):

print (“xin chao”)

 nội dung in ra màn hình: xin chao

xin chao xin chao

Ví dụ 2: s="Python"

for ch in s: print(ch)

 nội dung in ra màn hình:

P

y

t

h

o

n

Trang 6

2 Lặp với số lần chưa biết trước và câu lệnh while

- Cú pháp:

while <điều kiện>:

<Dãy các lệnh>

- Ý nghĩa: Trong khi điều kiện còn đúng thì dãy các lệnh còn được thực hiện

- Ví dụ: Nhập 1 số nguyên dương a là số đo 1 cạnh của hình vuông In ra chu vi hình vuông đó

a=int(input("nhap a:"))

while (a<=0):

a=int(input("nhap lai a>0:"))

print("chu vi hình vuong la:",a*4)

3 Câu lệnh break, continue, pass và else trong cấu trúc lặp

- break: Dùng để thoát ngay khỏi câu lệnh lặp kể từ vị trí của break.

- continue: Dùng để bỏ qua vòng lặp hiện tại kể từ vị trí của continue và chuyển ngay sang vòng lặp tiếp theo

II BÀI TẬP TRẮC NGHIỆM

Câu 1: Trong các câu sau, câu nào đúng?

a Chỉ có ngôn ngữ Python mới có câu lệnh thể hiện cấu trúc lặp

b Trong Python chỉ có câu lệnh lặp while để thể hiện cấu trúc lặp

c Trong Python chỉ có câu lệnh lặp for để thể hiện cấu trúc lặp

d Trong Python có thể sử dụng cả câu lệnh for hoặc câu lệnh lặp while để thể hiện cấu trúc lặp.

Câu 2: Trong Python, câu lệnh lặp với số lần biết trước có dạng:

a For biến_chạy in danh_sách_giá_trị:

Câu lệnh hay nhóm lệnh;

b For biến_chạy in danh_sách_giá_trị ;

Câu lệnh hay nhóm lệnh

c for biến_chạy in danh_sách_giá_trị:

Câu lệnh hay nhóm lệnh

d for biến_chạy in danh_sách_giá_trị;

Trang 7

Câu lệnh hay nhóm lệnh

Câu 3: Trong Python, câu lệnh lặp với số lần không biết trước có dạng:

a while <điều kiện>; câu lệnh hay nhóm câu lệnh

b while <điều kiện>: câu lệnh hay nhóm câu lệnh;

c while <điều kiện>;

câu lệnh hay nhóm câu lệnh

d while <điều kiện>:

câu lệnh hay nhóm câu lệnh Câu 4: Đoạn chương trình sau cho kết quả gì?

for i in range (0,4):

print(i)

a in ra 4 dòng gồm các số từ 0 đến 3

b in ra 4 dòng gồm các số từ 1 đến 4

c in ra 1 dòng gồm các số từ 0 đến 3

d in ra 1 dòng gồm các số 1 đến 4

Câu 5: Cho đoạn chương trình Python sau đây:

tong=0

while tong<9:

tong=tong+1 Sau khi thực hiện đoạn chương trình trên, giá trị của tổng bằng bao nhiêu:

a 8

b 9

c 10

d 11

Câu 6: Trong Python có mấy dạng lặp:

Câu 7: Câu lệnh với số lần lặp được biết trước

Câu 8: Vòng lặp với số lần không biết trước câu lệnh hay nhóm câu lệnh được

thực hiện khi:

Trang 8

A <Điều kiện> sai B <Điều kiện> đúng.

C <Điều kiện> lớn hơn 0 D <Điều kiện> bằng 0

Câu 9: Cấu trúc lặp với số lần không biết trước là:

Cấu trúc lặp với số lần không biết trước là:

1 for <Biến chạy> in range(m,n)

<Khối lệnh cần lặp>

2 while <Điều kiện>:

<Câu lệnh hay khối lệnh>

3 while <Điều kiện>:

4 for <Biến chạy> in range(m,n):

<Khối lệnh cần lặp>

Câu 10: <Điều kiện> trong câu lệnh lặp với số lần không biết trước là:

A Hàm toán học B Biểu thức logic.

C Biểu thức quan hệ D Biểu thức tính toán

Câu 11: Phát biểu nào sau đây là sai?

A Dùng câu lệnh while ta cũng thể hiện được cấu trúc lặp với số lần biết trước

B Dùng câu lệnh for ta cũng thể hiện được cấu trúc lặp với số lần không biết trước.

C Trong Python có 2 dạng lặp: Lặp với số lần biết trước và lặp với số lần không biết trước

D Câu lệnh thể hiện lặp với số lần không biết trước phải sử dụng một biểu thức logic làm điều kiện lặp

Câu 12: Cho đoạn chương trình sau:

i=1 s=0 while <điều kiện>:

s=s+i i=i+1

Trang 9

Đoạn chương trình trên tính tổng s=1+2+3+ +10, <điều kiện> là:

A i<=10 B i==10 C i>=10 D i>10

Câu 13: Cho đoạn lệnh sau:

for i in range(1,5):

print(i) Trên màn hình i có các giá trị là:

A 0 1 2 3 4 5 B 1 2 3 4 5 C 0 1 2 3 4 D 1 2 3 4 Câu 14: Khi có một (hay nhiều) thao tác cần được thực hiện lặp lại một số lần

liên tiếp trong quá trình thực hiện thuật toán thì cần dùng

A Cấu trúc vòng B Cấu trúc so sánh

C Cấu trúc lặp D Cấu trúc rẽ nhánh

Câu 15: Cho đoạn chương trình sau:

i=0

while i<=5:

s=s+i

i=i+1

Trong đoạn chương trình trên vòng lặp được thực hiện bao nhiêu lần?

Câu 16: Cho đoạn chương trình sau:

s=0

i=1

while i<=5:

s=s+1

i=i+1

Sau khi thực hiện đoạn chương trình trên giá trị của s là:

A 9 B 5 C 15 D 10

Câu 17: Hàm range(101) sẽ tạo ra

A một dãy số từ 1 đến 101 B một dãy số từ 0 đến 100.

C một dãy số ngẫu nhiên 101 D 101 số ngẫu nhiên

Câu 18: Cho đoạn chương trình sau:

Trang 10

for i in range(6):

print(i)

Trong đoạn chương trình trên vòng lặp được thực hiện bao nhiêu lần?

Câu 19: Cho bài toán tính tổng s=1+2+3+ +n Để giải bài toán trên ta có thể

dùng:

A Cấu trúc rẽ nhánh B Cấu trúc lặp.

C Hàm ceil() D Hàm toán học sqrt()

Câu 20: Câu lệnh với số lần lặp không biết trước

Câu 21: Vòng lặp với số lần không biết trước kết thúc khi:

A <Điều kiện> sai. B <Điều kiện> đúng

C <Điều kiện> lớn hơn 0 D <Điều kiện> bằng 0

Câu 22: Cho đoạn lệnh sau:

for i in range(5):

print(i) Trên màn hình i có các giá trị là:

A 0 1 2 3 4 5 B 1 2 3 4 5 C 0 1 2 3 4 D 1 2 3 4

III BÀI TẬP TỰ LUẬN CÓ LỜI GIẢI

Câu 1: Viết chương trình in các số từ 1 đến n, mỗi số trên 1 dòng?

Đáp án:

n=int(input("nhap n:"))

for i in range(1,n+1):

print(i)

Câu 2: Viết chương trình in các số chẵn nhỏ hơn n?

Đáp án:

n=int(input("nhap n:"))

for i in range(2,n+1,2):

print(i)

Câu 3: Viết chương trình in các số chia hết cho 3 hoặc 5 nhỏ hơn n?

Trang 11

Đáp án:

n=int(input("nhap n:"))

for i in range(1,n+1):

if i%3==0 or i%5==0: print(i)

Câu 4: Viết chương trình tính tổng các số chẵn nhỏ hơn n?

n=int(input("nhap n:"))

s = 0;

for i in range(2,n+1,2):

s += i

print (s)

Câu 5: Viết chương trình đếm các ước số của n (không kể chính nó)?

n=int(input("nhap n:"))

dem = 0

for i in range(1,n):

if n%i == 0: dem += 1

print("So luong uoc cua n la:",dem)

Câu 6: Viết chương trình tính tổng các ước của n?

n=int(input("nhap n:"))

s = 0 for i in range(1,n+1):

if n%i == 0: s += i print("So luong uoc cua n la:",s)

Câu 7:

Nhập 2 số nguyên dương a, b là số đo 2 cạnh của hình chữ nhật Tính và

in ra chu vi và diện tích hình chữ nhật đó?

a=int(input("nhap a:")) b=int(input("nhap b:")) while a<=0 or b<=0:

a=int(input("nhap lai a>0:")) b=int(input("nhap lai b>0:"))

Trang 12

print("chu vi hình chu nhat la:",(a+b)*2) print("dien tich hình chu nhat la:",a*b)

Câu 8:

Tính và đưa kết quả ra màn hình tổng:

S=1

a+

1

a+1+

1

a+2+…+

1

a+n+

cho đến khi: a+n1 <0,0001 , với a nhập vào từ bàn phím Chương trình:

a = int(input(“Nhap a: “))

S = 0; n = 0;

while not (1/(a+n)<0.0001):

S += 1/(a+n)

n += 1 print(“Tổng cần tính là”,S)

Câu 9:

Viết chương trình giải bài toán:

Vừa gà vừa chó

Bó lại cho tròn

Ba mươi sáu con

Một trăm chân chẵn

Hỏi bao nhiêu gà, bao nhiêu chó?

Chương trình:

Cách 1:

for x in range (0, 37):

for y in range (0,37):

if x+y==36 and 2*x+4*y==100:

print("so ga la:", x)

print("so cho la:",y)

Cách 2:

Trang 13

for x in range (0, 37):

y=36-x

if 2*x+4*y==100:

print("so ga la:", x)

print("so cho la:",y)

Câu 10: Trong nông nghiệp bèo hoa dâu được dùng làm phân bón, nó rất tốt cho

cây trồng Mới đây các nhà khoa học Việt Nam đã phát hiện ra bèo hoa dâu có thể dùng để chiết xuất ra chất có tác dụng kích thích hệ miễn dịch và hỗ trợ điều trị bệnh ung thư Trong phòng nghiên cứu, các nhà khoa học đã thử công nghệ mới khi nuôi bèo Ban đầu trong hồ có 1 cây bèo, sau hai ngày cây bèo này sẽ phát triển ra 1 cây bèo mới, sau đó mỗi ngày sẽ phát triển thành 1 cây bèo mới Mỗi cây bèo mới cũng sau hai ngày lại tiếp tục phát triển thêm 1 cây bèo nữa, từ đó mỗi ngày sẽ liên tục phát triển thêm 1 cây bèo mới Hãy viết chương trình tính xem sau n ngày sẽ có được tất cả bao nhiêu cây bèo hoa dâu

Chương trình:

a=1 b=1 n=int(input("nhap n:"))

if n==1 or n==2:

print("so beo la: 1") else:

for i in range (3, n+1):

c=a+b a=b b=c print(c)

Câu 11: Một quần thể vi khuẩn ban đầu có N0 tế bào Sau một khoảng thời gian nuôi cấy thì số tế bào trong quần thể đạt đến số lượng là Nt tế bào Viết chương trình nhập N0, và Nt, tính và in ra n là số thế hệ của quần thể đó? Cho biết công thức tính số lượng tế bào như sau: Nt = N0 x 2n

Trang 14

Ví dụ: Với N0=1; Nt = 8  n=3

Chương trình:

n0=int(input("Nhap so luong te bao ban dau:")) nt=int(input("Nhap so luong te bao ve sau:")) n=0

k=nt//n0 while k!=1:

k=k/2 n=n+1 print("So the he la:",n)

Câu 12:

Nhập n, kiểm tra n có phải là số nguyên tố hay không?

Chương trình:

import math n=int(input("nhap n:")) kt=1

for i in range(2, int(math.sqrt(n))+1):

if n%i==0:

kt=0 break

if kt==0: print(" n khong la so nguyen to") else: print("n khong la so nguyen to")

Câu 13:

Viết chương trình nhập vào 2 số nguyên dương, tính và xuất ra màn hình ước chung lớn nhất và bội chung nhỏ nhất của 2 số đó

Chương trình:

m = int(input("Nhap m: "))

n = int(input("Nhap n: ")) tich = m*n

while m != n:

Ngày đăng: 16/01/2024, 16:24

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w