1. Trang chủ
  2. » Luận Văn - Báo Cáo

skkn một số bước cơ bản giúp học sinh giải bài toán trên máy tính

17 401 2

Đ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 17
Dung lượng 137 KB

Nội dung

Ngày nay, trong thời đại bùng nổ thơng tin, việc lập được các chương trình tự hoạt động cho máy tính là rất cần thiết, và để làm được việc đĩ cần cĩ một quá trình nghiên cứu, học tập về

Trang 1

I LÍ DO CHỌN ĐỀ TÀI:

Dựa trên mục tiêu đổi mới chương trình giáo dục phổ thơng của Bộ GD- ĐT ban hành nhằm gĩp phần năng cao chất lượng giáo dục tồn diện, tăng cường bồi dưỡng cho thế hệ trẻ lịng yêu nước, tinh thần tự tơn dân tộc, lịng nhân ái, ý thức tơn trọng pháp luật, tinh thần hiếu học, chí tiến thủ Hỗ trợ tích cực việc đổi mới phương pháp dạy và học; Phát huy tư duy sáng tạo và năng lực tự học, khả năng ứng dụng kiến thức đã học của học sinh, quan tâm đúng mức tới các loại trình độ học tập Tiếp cận trình độ giáo dục phổ thơng của các nước tiên tiến trong khu vực

và trên thế giới Đảm bảo tính kế thừa, đảm bảo các tiêu chuẩn cơ bản, tinh giản, sát thực tiễn và điều kiện của nền giáo dục Việt Nam đã áp dụng cho tất cả các mơn học nĩi chung và mơn tin học nĩi riêng

Từ năm 2006 đến nay, mơn tin học đã được áp dụng cho mọi đối tượng học sinh trung học phổ thơng (THPT) khơng phân hĩa theo chuyên ban và được dạy cho

cả 3 khối lớp 10, 11, 12 Song mơn tin học ở bậc Trung học cơ sở là một mơn học

tự chọn Do vậy mà mơn tin học ở bậc THPT được xây dựng trên giả thiết là một mơn học mới nên học sinh phải học lại từ đầu Vả lại mơn tin học nhằm cung cấp cho học sinh những kiến thức phổ thơng về ngành khoa học tin học, hình thành và phát triển khả năng tư duy thuật tốn, năng lực sử dụng các thành tựu của ngành khoa học trong học tập và trong lĩnh vực hoạt động của mình sau này Đặc biệt là

về kiến thức sẽ trang bị cho học sinh một cách tương đối cĩ hệ thống các khái niệm

cơ bản nhất ở mức phổ thơng về tin học, một ngành khoa học với những đặc thù

Trang 2

sử dụng Internet, khai thác được các phần mềm thơng dụng, giải được các bài tốn đơn giản bằng máy tính Cịn về thái độ thì rèn luyện cho học sinh phong cách suy nghĩ và làm việc khoa học như sự ham hiểu biết, tìm tịi, sáng tạo, chuẩn mực chính xác trong suy nghĩ và hành động, say mê mơn học, cẩn thận trong cơng việc, hợp tác tốt với bạn bè

Xuất phát từ thực tiễn giảng dạy tại trường THPT Sơng Ray Tơi thấy rằng,

để đạt hiệu quả cao trong mỗi phần học, mỗi tiết học cần cĩ cách thiết kế bài giảng cho phù hợp với nội dung kiến thức, phương pháp, phương tiện dạy học phải phù hợp với từng đối tượng học sinh Để qua mỗi phần học, mỗi tiết học, học sinh thích thú với kiến thức mới, qua đĩ hiểu được kiến thức đã học trên lớp, đồng thời học sinh thấy được tầm quan trọng của vấn đề và việc ứng dụng của kiến thức để đáp ứng những yêu cầu của mơn học, sau đĩ là việc ứng dụng của nĩ vào các cơng việc thực tiễn trong đời sống xã hội (nếu cĩ)

Ngày nay, trong thời đại bùng nổ thơng tin, việc lập được các chương trình tự hoạt động cho máy tính là rất cần thiết, và để làm được việc đĩ cần cĩ một quá trình nghiên cứu, học tập về ngơn ngữ lập trình lâu dài, qua đĩ nhà lập trình cĩ thể chọn một ngơn ngữ lập trình thích hợp Tuy nhiên mọi thứ điều cĩ điểm khởi đầu của nĩ, với học sinh bước đầu muốn giải một bài tốn trên máy tính khơng phải là đơn giản

Do đĩ mà tơi đã chọn đề tài : “Một số bước cơ bản giúp học sinh giải bài tốn trên máy tính” để các em thấy hứng thú, tích cực chủ động hơn đối với bộ mơn tin học

Ii tổ chức thực hiện ĐỀ TÀI :

1 Cơ sở lí luận :

Trong quá trình nghiên cứu giải quyết các vấn đề về bài tốn, người ta đã đưa ra những nhận xét như sau:

o Cĩ nhiều bài tốn cho đến nay vẫn chưa tìm ra một cách giải theo kiểu thuật tốn và cũng khơng biết là cĩ tồn tại thuật tốn hay khơng

o Cĩ nhiều bài tốn đã cĩ thuật tốn để giải nhưng khơng chấp nhận được vì thời gian giải theo thuật tốn đĩ quá lớn hoặc các điều kiện cho thuật tốn khĩ đáp ứng

Trang 3

o Có những bài toán được giải theo những cách giải vi phạm thuật toán nhưng vẫn chấp nhận được

Từ những nhận định trên, người ta thấy rằng cần phải có những đổi mới cho khái niệm thuật toán Người ta đã mở rộng hai tiêu chuẩn của thuật toán: Tính xác định và tính đúng đắn Việc mở rộng tính xác định đối với thuật toán đã được thể hiện qua các giải thuật đệ quy và ngẫu nhiên Tính đúng của thuật toán bây giờ không còn bắt buộc đối với một số cách giải bài toán, nhất là các cách giải gần đúng Trong thực tiễn có nhiều trường hợp người ta chấp nhận các cách giải thường cho kết quả tốt nhưng ít phức tạp và hiệu quả Chẳng hạn nếu giải một bài toán bằng thuật toán tối ưu đòi hỏi máy tính thực hiện nhiều năm thì chúng ta có thể sẵn lòng chấp nhận một giải pháp gần tối ưu mà chỉ cần máy tính chạy trong vài ngày hoặc vài giờ Các cách giải chấp nhận được nhưng không hoàn toàn đáp ứng đầy đủ các tiêu chuẩn của thuật toán thường được gọi là các thuật giải Khái niệm mở rộng này của thuật toán đã mở cửa cho chúng ta trong việc tìm kiếm phương pháp để giải quyết các bài toán được đặt ra

Hạt nhân của chương trình máy tính là sự lưu trữ và xử lý thông tin Việc tổ chức dữ liệu như thế nào có ảnh hưởng rất lớn đến cách thức xử lý dữ liệu đó, cũng như tốc độ thực thi và sự chiếm dụng bộ nhớ của chương trình Do đó mục đích của

đề tài này là cung cấp những hiểu biết nền tảng trong việc thiết kế một chương trình trên máy tính để thấy rõ được sự cần thiết của việc phân tích, lựa chọn cấu trúc dữ liệu phù hợp cho từng bài toán cụ thể Trong phạm vi tin học, ta có thể quan niệm bài toán là một việc nào đó mà ta muốn máy tính thực hiện Chẳng hạn như muốn đưa một dòng chữ ra màn hình, giải phương trình bậc hai, tìm ước chung lớn nhất của hai số nguyên dương, kiểm tra tính nguyên tố của một số nguyên dương hay xếp loại học tập của một lớp,… Khi dùng máy tính giải bài toán, ta cần quan tâm đến hai yếu tố đó là đưa vào máy thông tin gì (Input) và cần lấy ra thông tin gì (Output) Do đó để phát biểu một bài toán ta cần phải trình bày rõ Input và Output

Trang 4

xu hướng nghiên cứu định tính các bài toán có nghĩa là người ta có thể chỉ cần chứng minh sự tồn tại của lời giải và không cần chỉ ra một cách tường minh cách tìm lời giải đó Đối với việc chỉ ra tường minh một cách tìm Output của bài toán được gọi là một thuật toán (Algorithm) giải bài toán đó Có nhiều định nghĩa khác nhau về thuật toán và đây là một định nghĩa thường dùng “Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định Sao cho sau khi thực hiện dãy thao tác ấy, từ Input của bài toán ta nhận được Output cần tìm” Hiểu rõ khái niệm thuật toán là cách giải bài toán mà về nguyên tắc có thể giao cho máy tính thực hiện

Xây dựng thuật toán cho một số bài toán đơn giản Qua đó hình thành một số

kỹ năng chuẩn bị tiếp thu việc học ngôn ngữ lập trình, cách dùng biến, khởi tạo giá trị biến Các kiến thức trên góp phần phát triển khả năng tư duy khi giải quyết các vấn đề trong khoa học cũng như trong cuộc sống

2.Nội dung, biện pháp thực hiện các giải pháp của đề tài

Học sử dụng máy tính thực chất là học cách giao cho máy tính việc mà ta muốn nó làm Khả năng khai thác máy tính phụ thuộc rất nhiều vào sự hiểu biết của người dùng Để giải bài toán trên máy tính thường được tiến hành qua các bước như sau:

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

Việc xác định bài toán tức là xác định xem ta phải giải quyết vấn đề gì? Với giả thiết nào đã cho và lời giải cần đạt những yêu cầu gì? Khác với các bài toán thuần túy trong toán học là chỉ cần xác định rõ giả thiết và kết luận chứ không cần xác định yêu cầu về lời giải, đôi khi những bài toán tin học trong thực tế chỉ cần tìm lời giải tốt tới mức nào đó, thậm chí là chỉ ở mức chấp nhận được Như đã trình bày

ở mục cơ sở lí luận, mỗi bài toán được đặc tả bởi hai thành phần đó là Input và Output Việc xác định bài toán chính là xác định rõ hai thành phần này và mối quan

hệ giữa chúng Các thông tin đó cần được nghiên cứu cẩn thận để có thể lựa chọn thuật toán, cách thể hiện các đại lượng đã cho, các đại lượng phát sinh trong quá trình giải bài toán và ngôn ngữ lập trình thích hợp

Trang 5

Ví dụ 1:

Bài toán tìm ước chung lớn nhất của hai số nguyên dương a và b

- Xác định bài toán :

o Input: Hai số nguyên dương a và b

o Output: UCLN(a,b)

Ví dụ 2:

Bài toán tìm nghiệm của phương trình bậc hai: ax2 + bx + c = 0 (a ≠ 0)

- Xác định bài toán :

o Input: Các số thực a,b,c (a ≠ 0)

o Output: Tất cả các nghiệm x thoả mãn phương trình: ax2 + bx + c = 0

Ví dụ 3:

Bài toán xếp loại học tập của một lớp

- Xác định bài toán :

o Input: bảng điểm của học sinh trong lớp

o Output: bảng xếp loại học lực

Trong thực tế, ta nên xét một vài trường hợp cụ thể, thông qua đó hiểu được bài toán rõ hơn và thấy được các thao tác cần phải tiến hành Đối với những bài toán đơn giản, đôi khi chỉ cần qua ví dụ là ta có thể đưa về một bài toán quen thuộc

để giải

Bước 2: Lựa chọn hoặc thiết kế thuật toán

Bước lựa chọn hoặc thiết kế thuật toán là bước quan trọng nhất để giải một bài toán Mỗi thuật toán chỉ giải một bài toán nào đó nhưng có thể có nhiều thuật toán khác nhau cùng giải một bài toán Nên ta cần thiết kế hoặc chọn một thuật toán phù hợp đã có để giải bài toán cho trước Khi thiết kế hoặc lựa chọn thuật toán người ta thường quan tâm đến các tài nguyên như thời gian thực hiện, số lượng ô nhớ,… Trong các loại tài nguyên người ta quan tâm nhiều nhất đến thời gian vì đó

là dạng tài nguyên không tái tạo được

Trang 6

Ví dụ: với bài toán tìm kiếm, nếu dãy đã cho là dãy đã sắp xếp thì dễ thấy thuật toán tìm kiếm nhị phân cần ít thao tác hơn nhiều so với thuật toán tìm kiếm tuần tự Vì thế nó cần ít thời gian thực hiện hơn

Một tiêu chí khác được rất nhiều người quan tâm là cần thiết kế hoặc lựa chọn thuật toán sao cho việc viết chương trình cho thuật toán đó ít phức tạp Do vậy khi thiết kế hoặc lựa chọn thuật toán để giải một bài toán cụ thể cần căn cứ vào lượng tài nguyên mà thuật toán đòi hỏi và lượng tài nguyên thực tế cho phép

Ngoài ra khi giải một bài toán, ta cần phải định nghĩa tập hợp dữ liệu để biểu diễn tình trạng cụ thể Việc lựa chọn này tùy thuộc vào vấn đề cần giải quyết và những thao tác sẽ tiến hành trên dữ liệu vào Có những thuật toán chỉ thích ứng với một cách tổ chức dữ liệu nhất định, đối với những cách tổ chức dữ liệu khác thì sẽ kém hiệu quả hoặc không thể thực hiện được Chính vì vậy nên bước xây dựng cấu trúc dữ liệu không thể tách rời bước tìm kiếm thuật toán giải quyết vấn đề Các tiêu chuẩn khi lựa chọn cấu trúc dữ liệu:

 Cấu trúc dữ liệu trước hết phải biểu diễn được đầy đủ các thông tin nhập và xuất của bài toán

 Cấu trúc dữ liệu phải phù hợp với các thao tác của thuật toán mà ta lựa chọn

để giải quyết bài toán

 Cấu trúc dữ liệu phải cài đặt được trên máy tính với ngôn ngữ lập trình đang

sử dụng

Đối với một số bài toán, trước khi tổ chức dữ liệu ta phải viết một đoạn chương trình nhỏ để khảo sát xem dữ liệu cần lưu trữ lớn tới mức độ nào

Thuật toán là một hệ thống chặt chẽ và rõ ràng các quy tắc nhằm xác định một dãy thao tác trên cấu trúc dữ liệu sao cho: với một bộ dữ liệu vào, sau số hữu hạn bước thực hiện các thao tác đã chỉ ra, ta đạt được mục tiêu đã định

Thuật toán thông thường có 5 đặc trưng sau:

o Tính đơn nghĩa

Ở mỗi bước của thuật toán, các thao tác phải hết sức rõ ràng, không gây nên sự nhập nhằng, lộn xộn, tùy tiện, đa nghĩa

Trang 7

o Tính dừng:

Thuật toán không được rơi vào quá trình vô hạn, phải dừng lại và cho kết quả sau một số hữu hạn bước

Trang 8

o Tính đúng:

Sau khi thực hiện tất cả các bước của thuật toán theo đúng quá trình đã định, ta phải được kết quả mong muốn với mọi bộ dữ liệu đầu vào Kết quả đó được kiểm chứng bằng yêu cầu bài toán

o Tính khả dụng

Thuật toán phải dễ sửa lỗi để thích ứng được với bất kỳ bài toán nào trong một lớp các bài toán và có thể làm việc trên các dữ liệu khác nhau

o Tính khả thi

Kích thước phải đủ nhỏ: Ví dụ: một thuật toán sẽ có tính hiệu quả bằng 0 nếu lượng bộ nhớ mà nó yêu cầu vượt quá khả năng lưu trữ của hệ thống máy tính Thuật toán phải chuyển được thành chương trình: Ví dụ thuật toán yêu cầu phải biểu diễn được số vô tỷ với độ chính xác tuyệt đối là không thể thực hiện được với các hệ thống máy tính hiện nay

Thuật toán phải được máy tính thực hiện trong thời gian cho phép, điều này khác với lời giải toán(chỉ cần chứng minh và kết thúc sau một số hữu hạn bước) Ví dụ: chương trình sắp xếp thời khóa biểu cho một học kỳ thì không thể cho máy tính chạy tới học kỳ sau mới có kết quả được

Ví dụ:

Bài toán tìm ước chung lớn nhất của hai số nguyên dương a và b

Thuật toán sẽ được tiến hành mô tả như sau: (có 2 cách)

Cách 1: Diễn tả thuật toán

B1: Nhập 2 số nguyên dương a,b B2: Nếu a = b thì lấy giá trị chung này làm UCLN rồi chuyển đến B5 B3: Nếu a>b thì a  a – b; rồi quay lại B2

B4: Nếu b>a thì b  b – a; rồi quay lại B2

B5: Đưa ra kết quả UCLN rồi kết thúc

Ngoài cách liệt kê dãy các thao tác như trên, thuật toán còn có thể được diễn tả bằng sơ đồ khối Trong sơ đồ khối, người ta dùng một số khối, đường có mũi tên với:

Trang 9

o Hình thoi ◊ : Thể hiện thao tác so sánh.

o Hình chữ nhật : Thể hiện các phép tính toán

o Hình Ô van ○ : Thể hiện thao tác nhập, xuất dữ liệu

o Các mũi tên  : Qui định trình tự thực hiện các thao tác

Cách 2: Vẽ sơ đồ khối

Nhập a,b

a=b

a>b

aa-b

bb-a

Lấy giá trị chung làm UCLN, rồi két

thúc.

Đ

S S

Đ

Trang 10

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

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

Thông thường, ta không nên cụ thể hóa ngay toàn bộ chương trình mà nên tiến hành theo phương pháp tinh chế từng bước

Ban đầu chương trình được thể hiện bằng ngôn ngữ tự nhiên, thể hiện thuật toán với các bước tổng thể, mỗi bước nêu lên một công việc phải thực hiện

Một công việc đơn giản, hoặc một đoạn chương trình đã được học thuộc thì ta tiến hành viết mã lệnh ngay bằng ngôn ngữ lập trình

Một công việc phức tạp thì phải chia ra thành những công việc nhỏ hơn để tiếp tục với những công việc nhỏ hơn đó

Trong quá trình tinh chế từng bước ta phải đưa ra những biểu diễn dữ liệu, như vậy cùng với sự tinh chế các công việc, dữ liệu cũng được tinh chế dần, có cấu trúc hơn, thể hiện rõ hơn mối liên hệ giữa các dữ liệu

Phương pháp tinh chế từng bước là một thể hiện của tư duy giải quyết vấn đề từ trên xuống, giúp cho người lập trình có một định hướng thể hiện phong cách viết chương trình Tránh việc mò mẫm, xóa đi viết lại nhiều lần, biến chương trình thành tờ giấy nháp Do vậy khi viết chương trình ta nên chọn một ngôn ngữ lập trình hoặc một phần mềm chuyên dụng thích hợp với thuật toán Viết chương trình trong ngôn ngữ nào thì cần phải tuân theo đúng qui định ngữ pháp của ngôn ngữ đó

Ví dụ:

Viết chương trình tìm ước chung lớn nhất của hai số nguyên dương a và b

Trang 11

Để kế thừa cho chương trình lớp 11, tôi chọn ngôn ngữ lập trình bậc cao Turbo Pascal một phần mềm chuyên dụng thích hợp với thuật toán để viết chương trình trên

Program UCLN;

Uses crt;

Var a,b : Integer;

Begin

Clrscr;

Write (‘nhap 2 so nguyen duong a, b:’); readln(a,b);

While a< > b do Begin

If a > b then a:= a - b

Else

b: = b - a;

End;

Writeln(‘UCLN cua 2 so nguyen duong la:’,a);

Readln

End.

Bước 4: Hiệu chỉnh

Chương trình là do con người viết ra, cho nên khó có thể tránh khỏi sự nhầm lẫn Một chương trình viết xong chưa chắc đã chạy được ngay trên máy tính để cho ra kết quả mong muốn Kỹ năng tìm lỗi, sửa lỗi, điều chỉnh lại chương trình cũng là một kỹ năng quan trọng của người lập trình Kỹ năng này có được bằng kinh nghiệm tìm và sửa lỗi của chính mình

Có 3 loại lỗi thường gặp khi lập trình:

 Lỗi cú pháp: lỗi này hay gặp nhưng cũng là lỗi dễ sửa nhất Chỉ cần nắm vững ngôn ngữ lập trình là đủ Một người được coi là không biết lập trình

Ngày đăng: 03/12/2015, 20:05

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w