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

Kỹ năng giải toán bằng ngôn ngữ lập trình pascal môn tin học 8 tai trường THCS tân tiến

59 2,3K 11

Đ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

Định dạng
Số trang 59
Dung lượng 231 KB

Nội dung

Chuyên đề : “KỸ NĂNG GIẢI TOÁN TRÊN MÁY TÍNH BẰNG NGÔN NGỮ LẬP TRÌNH PASCAL MÔN TIN HỌC 8 TẠI TRƯỜNG THCS TÂN TIẾN”.. Chuyên đề: KỸ NĂNG GIẢI TOÁN TRÊN MÁY TÍNH BẰNG NGÔN NGỮ LẬP TRÌNH P

Trang 1

Chuyên đề : “KỸ NĂNG GIẢI TOÁN TRÊN MÁY TÍNH BẰNG NGÔN NGỮ LẬP TRÌNH PASCAL MÔN TIN HỌC 8

TẠI TRƯỜNG THCS TÂN TIẾN”.

Người thực hiện: Nguyễn Thị Thuận Tổ: Toán – lý

Trang 2

Chuyên đề: KỸ NĂNG GIẢI TOÁN TRÊN MÁY

TÍNH BẰNG NGÔN NGỮ LẬP TRÌNH PASCAL MÔN TIN HỌC 8 TẠI TRƯỜNG THCS TÂN TIẾN”.

A ĐẶT VẤN ĐỀ

B GIẢI QUYẾT VẤN ĐỀ

C KẾT THÚC VẤN ĐỀ

Trang 3

Chuyên đề: KỸ NĂNG GIẢI TOÁN TRÊN MÁY

TÍNH BẰNG NGÔN NGỮ LẬP TRÌNH PASCAL MÔN TIN HỌC 8 TẠI TRƯỜNG THCS TÂN TIẾN”.

1 Lý do

2 Tính mới về khoa học

3 Phạm vi nghiên cứu của đề tài

4 Các phuơng pháp hoạt động thực hiện

A ĐẶT VẤN ĐỀ

Trang 4

Ngày nay con người không biết sử dụng máy vi tính thì coi như là

mù chữ? Vậy khi biết sử dụng máy vi tính rồi chúng ta sẽ làm gì hay chỉ ngồi chơi điện tử, các trò giải trí, soạn thảo các bài văn bản mà

mạng Điều đó đã thúc đẩy tôi rất nhiều trong việc dạy học là làm sao đưa ra được cho các em sự đam mê, hứng thú môn tin học và phát

triển tài năng của học sinh trong việc đào tạo nhân tài cho đất nước

Ngôn ngữ lập trình PASCAL là một phần mềm có cú pháp sáng

sủa, dễ hiểu, dành cho người mới học lập trình và rất được nhiều độc giả quan tâm và chính điều đó cũng có nhiều cuốn sách do nhiều tác giả viết Song với bản thân tôi khi lựa chọn viết đề tài này là muốn đưa

ra “ KỸ NĂNG GIẢI TOÁN TRÊN MÁY TÍNH BẰNG NGÔN NGỮ LẬP

A ĐẶT VẤN ĐỀ:

1 Lý do

Trang 5

Là một giáo viên tin học trường THCS Tân Tiến, mục tiêu

chính của tôi là giúp học sinh không chỉ biết soạn thảo mà còn

phải có khả năng phân tích, tổng hợp, trừu tượng hoá, khái quát hoá vấn đề và đặc biệt là phát triển tư duy, sáng tạo Những năm qua môn tin học ở THCS chưa có sách giáo viên cụ thể hướng dẫn cho học sinh về cách phân tích lập trình nên việc học của học sinh phụ thuộc rất lớn ở mỗi giáo viên đứng lớp Vì vậy học sinh chưa

có tính độc lập sáng tạo mà phải nhờ vào giáo viên rất nhiều.Vì thế

mà tôi sẽ hướng cho học sinh lớp 8 nắm vững các kỹ năng và kiến thức cơ bản để từ đó tạo tiền đề cho việc học lập trình về sau.

2 Tính mới về khoa học

A ĐẶT VẤN ĐỀ:

1 Lý do

Trang 6

- Các tiết học tin học của học sinh khối 8 trường THCS Tân Tiến huyện Đồng Phú Tỉnh Bình Phước.

- Sự hứng thú và tích cực của học sinh lớp 8 về tiết học

-Thời gian nghiên cứu là từ năm học 2011-2012 đến năm học

2013- 2014.

4 Các phương pháp hoạt động thực hiện sáng kiến kinh nghiệm:

- Phương pháp tổng hợp kinh nghiệm trong giảng dạy

- Phương pháp trò chuyện trao đổi

- Phương pháp nghiên cứu tài liệu trên sách, báo, internet,…

Trang 7

Chuyên đề: KỸ NĂNG GIẢI TOÁN TRÊN MÁY

TÍNH BẰNG NGÔN NGỮ LẬP TRÌNH PASCAL MÔN TIN HỌC 8 TẠI TRƯỜNG THCS TÂN TIẾN”.

Trang 8

1.Thực trạng

- Trong quá trình giảng dạy tôi nhận thấy ở các em học sinh, mới đầu cũng rất sợ khi thấy giải một bài toán Ở ngoài giải bài

toán thì đơn giản và chỉ trong vòng vài giây có thể nhẩm ra kết

quả Còn ở trong lập trình cũng bài toán đó mà phải làm đến hàng chục phút mà lại có thể cho kết quả sai Nhưng bằng những tâm huyết của mình và cũng như sự yêu thích của học sinh Dạy học là làm sao giúp cho các em có sự đam mê, hứng thú học tập bộ môn tin học và phát triển tài năng của học sinh.

A ĐẶT VẤN ĐỀ

B GIẢI QUYẾT VẤN ĐỀ

Trang 9

- Qua hai năm giảng dạy chương trình tin học lớp 8, tôi nhận thấy rằng kĩ năng giải bài toán trên máy tính của các em còn yếu.

- Khi giải bài toán trên máy học sinh chỉ quan tâm đến công thức để tính toán ra kết quả bài toán mà quên các bước xác định thông tin vào, thông tin ra và xây dựng thuật toán Khi chạy

chương trình thì học sinh chưa nhận biết được kết quả chương trình đúng hay sai

- Trước khi thực hiện đề tài, tôi đã khảo sát học sinh khối 8 thông qua giờ dạy lý thuyết, dạy thực hành, kiểm tra bài cũ

Tổng hợp kết quả thu được năm 2010 - 2011:

A ĐẶT VẤN ĐỀ

B GIẢI QUYẾT VẤN ĐỀ

1 Thực trạng

2 Cơ sở lý luận

Trang 10

Phương pháp cơ bản giải các bài toán trong tin học không chỉ dùng để giải một bài toán cụ thể mà còn giải một lớp các bài toán cụ thể thuộc cùng một loại Bài toán được cấu tạo từ hai yếu tố cơ bản: Thông tin vào (Input) và thông tin ra (Output) Phương pháp tổng quát để giải một bài toán bằng máy vi tính dựa trên ngôn ngữ pascal thì cần 4 bước:

Bước 1: Xác định các bài toán.

Bước 2: Tìm thuật toán.

Bước 3: Viết chương trình.

Bước 4: Chạy thử, sửa đổi chương trình.

Trang 11

1 Khái niệm bài toán

2 Bài toán trên máy vi tính

3 Một số ví dụ

I XÁC ĐỊNH BÀI TOÁN

Trang 12

Bài toán là một công việc hay một nhiệm vụ cần phải giải

quyết.

Đối với học sinh lớp 8 do chương trình học toán của các chỉ mới đến giải phương trình bậc nhất là cao nhất Nên việc

đưa các lớp bài toán vào giải cho các em đang còn một

phần nào bị hạn chế Nhưng bất kỳ một bài toán nào thì

chúng ta cũng phải xác định bài toán, tức là xác định rõ điều kiện cho trước và kết quả cần thu được: A  B

Trong đó:

A là giải thiết: Điều kiện cho trước.

B là kết luận: Kết quả cần thu được.

 Là suy luận: Giải pháp cần xác định hay một chuỗi thao tác

thực hiện từ A đến B.

1 Khái niệm bài toán

I XÁC ĐỊNH BÀI TOÁN

Trang 13

Bài toán trên máy cũng mang đầy đủ các tính chất của bài toán tổng quát trên, nhưng nó lại được diễn đạt theo một các khác A  B

A: là đưa thông tin đã cho (Input )

B: là đưa thông tin cần tìm (Output)

 : là chương trình tạo từ các lệnh cơ bản của máy tính cho phép biến đổi từ A đến B.

1 Khái niệm bài toán

2 Bài toán trên máy vi tính

I XÁC ĐỊNH BÀI TOÁN

Trang 14

Vd1: Giải phương trình bậc nhất dạng tổng quát bx + c = 0.

+ INPUT: Các số b, c.

+ OUTPUT: Nghiệm của phương trình bậc nhất.

+ Xác định các thao tác chế biến thông tin:

Lần đưa b,c vào (b=2, c=4)

Tìm nghiệm bằng công thức: -c/b

Kết quả in ra: -2.

1 Khái niệm bài toán

2 Bài toán trên máy vi tính

3 Một số ví dụ

I XÁC ĐỊNH BÀI TOÁN

Trang 15

Ví dụ 2: Tính diện tích S hình chữ nhật Biết a, b nhập

từ bàn phím.

+ INPUT: Chiều dài là a, chiều rộng là b.

+ OUTPUT: Kết quả diện tích S.

+ Các thông tin cần chế biến thông tin như:

Lần lượt đưa a, b vào (cho a=5, b=7)

Áp dụng công thức tính diện tích hình chữ nhật: a*b Kết quả in ra là 35.

1 Khái niệm bài toán

2 Bài toán trên máy vi tính

3 Một số ví dụ

I XÁC ĐỊNH BÀI TOÁN

Trang 16

Ví dụ 3: Cho 2 số tự nhiên a, b Tìm ước số chung lớn

nhất của chúng.

+ INPUT: Hai số tự nhiên a, b

+ OUTPUT: Số tự nhiên d thoả mãn:

d là ước của a và d là ước của b

d là số lớn nhất trong tập các ước chung của a, b + Xác định các thao tác chế biến thông tin

Xây dựng hữu hạn các thao tác cho phép tính

được d từ a và b.

Nhập a =8 b= 6 ,Kết quả d =2

1 Khái niệm bài toán

2 Bài toán trên máy vi tính

3 Một số ví dụ

I XÁC ĐỊNH BÀI TOÁN

Trang 17

Ví dụ 4: Tìm tất cả các số nguyên tố trong N số tự

nhiên đầu tiên:

+ INPUT: Nhập số nguyên N +OUTPUT: Các số nguyên tố (chia hết cho 1 và chính nó) nằm trong khoản từ 2 đến N.

+ Xác định các thao tác chế biến thông tin: Nhập N=11, các số nguyên tố là: 2,3,5,7,11

Ví dụ 5: Tìm số lớn nhất trong 3 số a, b, c nguyên

dương được nhập vào từ bàn phím.

+ INPUT: Ba số nguyên dương a,b,c.

+ OUTPUT: Max của 3 số a, b, c.

+ Xác định các thao tác chế biến thông tin:

Nhập a=5, b=9, c=65

Kết quả: max= 65.

Trang 18

Ví dụ 6: Tính tổng của N số tự nhiên đầu tiên.

+ INPUT: Dãy số tự nhiên đầu tiên 1,2, ,N +OUTPUT: Giá trị của tổng 1+2+ +N.

+Xác định các thao tác chế biến thông tin: Nhập N=100

Kết quả: 1505.

Trang 19

Thuật toán là một quá trình gồm một dãy hữu hạn các thao tác đơn giản được sắp xếp theo một trình tự xác định sao cho theo đó từ Input của bài toán sẽ tìm ra được output bài toán.

Một bài toán ta có 4 cách thể hiện thuật toán:

Cách 1: Các bước xác định bài toán bằng lời Cách 2: Lập sơ đồ khối

Cách 3: Ngôn ngữ phỏng trình Cách 4: Dùng một ngôn ngữ lập trình (Pascal).

I XÁC ĐỊNH BÀI TOÁN

II TÌM THUẬT TOÁN

Trang 20

Cách 1 : Các bước xác định bài toán bằng lời:

Trang 21

Begin Nhập N

Cách 2: Giải bài toán bằng sơ đồ

- Có hình thoi: Thể hiện các thao tác so sánh.

- Hình chữ nhật: Thể hiện các phép tính toán, các câu lệnh.

- Hình ôvan: Thể hiện bắt đầu và kết thúc.

- Các mũi tên: Quy định trình tự các thao tác.

Trang 22

Bắt đầu Nhập N For i:=1 to N do S:= S + i;

Kết thúc in ra tổng N số tự nhiên đầu tiên.

Cách 1: Các bước xác định bài toán bằng lời Cách 2: Lập sơ đồ khối

Cách 3: Ngôn ngữ phỏng trình

I XÁC ĐỊNH BÀI TOÁN

II TÌM THUẬT TOÁN

Trang 23

For i:=1 to N do S:=S+i;

WRITELN(' Tong cua ',N,'so tu nhien dau tien cua S= ',S); READLN

END.

II TÌM THUẬT TOÁN

Cách 1: Các bước xác định bài toán bằng lời

Cách 2: Lập sơ đồ khối

Cách 3: Ngôn ngữ phỏng trình

Cách 4: Viết chương trình hoàn chỉnh (dùng ngôn ngữ Pascal)

Trang 24

Ví dụ 2: Tìm ước số chung lớn nhất của 2 số nguyên

dương a, b.

Ta có thể giải bằng các cách sau:

Cách 1 : Các bước xác định bài toán bằng lời:

Bước 1: Nhập 2 số nguyên dương là a, b

Bước 2: So sánh giá trị a và b Nếu a bằng b thì sang bước 3, ngược lại a khác b thì sang b ước 4.

Bước 3: Tìm được ước số chung là a và kết thúc

chương trình.

Bước 4: Nếu a lớn hơn b thì ước số chung lớn nhất là

a và quay trở lại bước 2 Ngược lại ước số chung là b và quay trở lại bước 2

Trang 25

Cách 2 : Giải bài toán bằng sơ đồ

- Có hình thoi: Thể hiện các thao tác so sánh.

- Hình chữ nhật: Thể hiện các phép tính toán, các câu lệnh.

- Hình ôvan: Thể hiện bắt đầu và kết thúc.

- Các mũi tên: Quy định trình tự các thao tác.

Begin Nhập a, b

END

a>b

b:= b - a a:= a-b

đúng

đúng

sai sa

i

Trang 26

Cách 3 : Dùng ngôn ngữ phỏng trình

Bắt đầu Nhập a, b While (a khác b) do

IF a>b then thay a :=a -b Else thay b:=b-a;

Kết thúc in ra USCLN (a, b)

Trang 27

Cách 4 : Viết chương trình hoàn chỉnh (dùng ngôn ngữ pascal)

WRITE('nhap gia tri a='); READLN(a);

WRITE('nhap gia tri b='); READLN(b);

WHILE a<>b DO

IF a>b THEN a:=a -b else b:=b-a;

WRITELN('uoc so chung lon nhat: ',a:4);

READLN

END.

Trang 28

II TÌM THUẬT TOÁN

III VIẾT CHƯƠNG TRÌNH

Trang 29

Lập trình là dùng ngôn ngữ máy vi tính cụ thể nào (ngôn ngữ Pascal) để diễn tả thuật toán, cấu trúc dữ liệu thành câu lệnh để máy tính có thể thực hiện được và giải

quyết đúng bài toán mà người lập trình mong muốn.

I XÁC ĐỊNH BÀI TOÁN

II TÌM THUẬT TOÁN

III VIẾT CHƯƠNG TRÌNH

Trang 30

- Sau khi đã có thuật toán ta phải lập trình để thực hiện thuật toán đó Muốn lập trình đạt hiệu quả cao, cần phải có kỹ thuật lập trình tốt Kỹ thuật lập trình tốt thể hiện ở kỹ năng viết chương trình, khả năng gỡ rối và thao tác nhanh.

- Lập trình tốt không chỉ nắm vững ngôn ngữ lập trình là đủ, mà phải biết cách viết chương trình một cách uyển chuyển, khôn khéo

và phát triển dần dần để chuyển các ý tưởng ra thành chương trình hoàn chỉnh.

- Kinh nghiệm cho thấy một thuật toán hay nhưng do cài đặt vụng

về nên khi chạy lại cho kết quả sai hoặc tốc độ chậm.

I XÁC ĐỊNH BÀI TOÁN

II TÌM THUẬT TOÁN

III VIẾT CHƯƠNG TRÌNH

1 Kỹ năng lập trình

Trang 31

Một bài toán ta có thể đưa ra nhiều cách giải khác nhau, song là một giáo viên thì chúng ta cần giúp học sinh viết chương trình làm sao người xem nhìn vào có thể dễ hiểu được bài toán đó là gì? Do

đó, việc tinh chỉnh các bước cho bài toán trong máy tính là phương pháp khoa học, có hệ thống giúp ta phân tích các thuật toán và cấu trúc dữ liệu từ đó thành một chương trình Muốn lập trình giỏi

không phải chỉ cần nắm ngôn ngữ lập trình là đủ Mà vấn đề cốt

yếu là biết phương pháp phát triển dần dần để chuyển các ý tưởng

ra thành chương trình hoàn chỉnh.

Một chương trình bắt đầu được viết bằng lời tự nhiên (tiếng

việt) thể hiện sự phân tích tổng thể của người lập trình, được thể hiện ở từng bước sau các câu lệnh được phân tích chi tiết hơn

Bằng những lời khác nhau, tương ứng với sự phân tích công việc thành các việc nhỏ, chi tiết hơn, dễ hiểu và chỉnh xác hơn Người lập trình có thể đưa ra phương pháp tinh chỉnh từng bước, thể hiện

tư duy để giải quyết những vấn đề của bài toán từ trên xuống

Trong đó, các bư ớc hướng về phương pháp lập trình tối ưu, sáng sửa làm cho bài toán được giải một cách gọn gàng nhất, chính xác

1 Kỹ năng lập trình

2 Phương pháp tinh chỉnh từng bước

Trang 32

Ví dụ 1 Kiểm tra N có phải là số nguyên tố hay không? Biết N nhập

từ bàn phím.

Tinh chế lần 1:

- Cho i chạy từ 1 đến N

- Nếu N= 1 thì không phải số nguyên tố.

- Nếu N chia hết cho i (i<=N) thì dem=dem+i.

- Nếu N chia hết cho 2 số thì N là số nguyên tố Ngược lại là không.

I XÁC ĐỊNH BÀI TOÁN

II TÌM THUẬT TOÁN

III VIẾT CHƯƠNG TRÌNH

1 Kỹ năng lập trình

2 Phương pháp tinh chỉnh từng bước

3 Ví dụ

Trang 33

2 Tinh chế lần 2 (chương trình hoàn chỉnh)

Tinh chế lần 3 : Thuật toán trên n=1 là số nguyên tố là sai và ta

không cần kiểm tra đến giá trị i=N-1 mà chỉ cần kiểm tra tới N/2 (N div 2) vì không có ước nào của N lớn hơn N/2.

Trang 34

Program KT_NGUYENTO;

Var i, kt ,n: integer;

Begin Writeln(‘Nhap N=’); readln(N);

If N=1 then kt:=0 else

For i := 2 to N div 2 do

If N mod i = 0 then Begin

kt:=0;

Break;

End Else kt := 1;

If kt=1 then writeln(N,’la so nguyen to’) Else writeln(N,’khong la so nguyen to’);

Readln End.

Tinh chế lần 4 : Thay vì kiểm tra đến giá trị N/2 mà chỉ cần kiểm tra đến căn bậc 2 của N là được Và chỉ tính một lần trước khi thực hiện

Trang 35

Program KT_NGUYENTO;

Var i, kt, n, m: integer;

Begin Writeln(‘Nhap N=’); readln(N);

If N=1 then kt:=0 else

begin kt:=1;

If kt=1 then writeln(N,’la so nguyen to’) Else writeln(N,’khong la so nguyen to’); Readln

Trang 36

Tinh chế lần 5 :

- Ta lại thấy rằng số nguyên tố chỉ có thể là số lẻ trừ số 2,

do đó không cần chia hết cho các số chẵn ta chỉ cần kiểm tra các ước số (giá trị của i) là số lẻ.

- Xét ước số của nguyên tố tiếp theo có thể có của N là 3 Nếu N chia hết cho 2 hoặc 3 thì kết luận không phải số

nguyên tố Ta bắt đầu giá trị của i=5.

Trang 37

If N mod i=0 then Begin

kt:=0;

Break;

End Else kt:=1;

Trang 38

Vậy đó là kỹ năng lập trình người lập trình có thể tinh chế chương trình từng bước làm sao đưa ra một phương án tối ưu cho người xem dễ tiếp thu cũng như chiếm bộ nhớ của máy tính càng ít các tốt.

Trang 39

II TÌM THUẬT TOÁN

III VIẾT CHƯƠNG TRÌNH

IV CHẠY THỬ, THAY ĐỔI, KIỂM TRA CHƯƠNG TRÌNH

Trang 40

Một chương trình đã viết xong chưa chắc đã chạy được trên máy vi tính để cho kết quả mong muốn.

Ví dụ: Tìm số lớn nhất trong 3 số a, b, c nguyên dương được

Write('nhap 3 so='); readln(a,b,c);

If a<b then a:=b Else if a<c then a:=c;

Write('so lon nhat la ',a);

Readln End.

IV CHẠY THỬ, THAY ĐỔI, KIỂM TRA CHƯƠNG TRÌNH

1 Chạy thử

Trang 41

Với chương trình này cũng chạy được song đáp số có lúc đúng, có lúc sai tùy thuộc vào lúc nhập giá trị a, b, c {Nếu ta nhập thứ tự a=8, b=9,

c=17 Thì sẽ cho ta kết quả số lớn nhất là 9 Vậy thì sai hoàn toàn}

Do đó người lập trình cần phải biết cách tìm lỗi Sữa lỗi, điều chỉnh viết lại chương trình cũng là kỹ năng quan trọng của người lập trình Vậy với ví

dụ trên để kết quả luôn đúng thì ta có thể viết lại chương trình

If max < b then max:=b;

If max < c then max:=c;

Writeln(' so lon nhat la ',max);

Readln

IV CHẠY THỬ, THAY ĐỔI, KIỂM TRA CHƯƠNG TRÌNH

1 Chạy thử

Trang 43

Lỗi về thuật toán : Điều chỉnh lại thuật toán, thêm vị trí có thể, loại bỏ thuật toán sai, tìm thuật toán khác nghĩa làm lại từ đầu.

n

1

3

1 2

Trang 44

Ví dụ : Viết chương trình giải phương trình bậc nhất

ax+b=0 với a, b được nhập vào từ bàn phím

.

Program phuong_trinh_bac_nhat;

Var a,b: real;

Begin

Write('nhap cac he so a='); Readln(a);

Write('nhap cac he so b='); Readln(b);

If a<>0 then writeln ('moi so deu la nghiem') Else if b<>0 then writeln('phuong trinh co nghiem',-b/a:4:2) Else writeln ('phuong trinh vo nghiem');

Readln End.

trên xuống dưới để đặt lại cho đúng với thuật toán.

Ngày đăng: 24/11/2014, 07:51

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w