1. Trang chủ
  2. » Giáo án - Bài giảng

skkn kĩ năng cơ bản để giải bài toán bằng ngôn ngữ lập trình pascal trên máy tính

25 754 3

Đ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 25
Dung lượng 240 KB

Nội dung

Tuy nhiên, chất lượng bộ mônTin học lớp 8 qua các năm học chưa cao, đặc biệt là kĩ năng lập trình còn hạn chế.Mục đích của tôi là giúp học sinh lớp 8 nắm được những “kĩ năng cơ bản để gi

Trang 1

I LỜI MỞ ĐẦU:

Xuất phát từ nhu cầu của xã hội ngày một phát triển cùng với sự phát triểncủa khoa học kỹ thuật đã kéo theo sự phát triển như vũ bão của tin học hay côngnghệ thông tin Sự phát triển của tin học đã đem lại hiệu quả to lớn cho hầu hết cáclĩnh vực của xã hội, hơn thế nữa nó còn đi sâu vào đời sống của con người Để đápứng được các yêu cầu trên, môn Tin học đã được đưa vào giảng dạy ở các trườngphổ thông với vai trò là môn học tự chọn với thời lượng 2 tiết/tuần cho tất cả cáclớp ở các cấp học Mặc dù đây là môn tự chọn nhưng hiện nay môn tin học đượcxem là môn học ứng dụng vào thực tiễn đời sống ngày càng nhiều, đồng thời hỗ trợđắc lực cho ngành kinh tế xã hội hiện đại như ngày nay

1 Lý do chọn đề tài:

Trải qua những năm trực tiếp giảng dạy bộ môn Tin học ở trường THCS ĐạiPhước, cũng như qua quá trình trao đổi với đồng nghiệp tôi nhận thấy: hầu như họcsinh đều rất yêu thích và hứng thú với môn Tin học Tuy nhiên, chất lượng bộ mônTin học lớp 8 qua các năm học chưa cao, đặc biệt là kĩ năng lập trình còn hạn chế.Mục đích của tôi là giúp học sinh lớp 8 nắm được những “kĩ năng cơ bản để giải bài toán bằng ngôn ngữ lập trình Pascal trên máy tính”. Tạo cho học sinh niềm hứngthú và say mê trong lập trình để từ đó giúp cho các em phát huy tính tích cực, tự giác,chủ động, sáng tạo, rèn luyện thói quen làm việc độc lập và kỹ năng lập trình Bêncạnh đó, học sinh còn biết vận dụng để giải quyết các bài toán thường gặp trong thựctế; tạo nên nhiều hứng thú trong học tập đó là lý do tôi chọn đề tài này

a) Cơ sở lý luận:

- Chúng ta đang sống trong thời đại khoa học điện tử, thời đại bùng nổthông tin và mạng máy tính Công nghệ thông tin là tập hợp các phương pháp khoahọc, các phương tiện và công cụ kỹ thuật hiện đại nhằm tổ chức khai thác và sửdụng có hiệu quả các nguồn tài nguyên thông tin rất phong phú và tiềm năng trongmọi lĩnh vực hoạt động của con người và xã hội

- Bộ GD&ĐT đã chỉ rõ: Nâng cao nhận thức về vai trò của CNTT; ứng dụng

và phát triển CNTT trong giáo dục và đào tạo sẽ tạo một bước chuyển cơ bản trongquá trình đổi mới nội dung, chương trình, phương pháp giảng dạy, học tập và quản

lí giáo dục

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-20181

Trang 2

b) Cơ sở thực tiễn:

- Đặc trưng của môn Tin học là môn khoa học gắn liền với công nghệ hiệnđại, do vậy dạy học Tin học trong nhà trường nhằm trang bị cho học sinh kiến thứckhoa học về Tin học, phát triển tư duy thuật toán, kỹ năng lập trình và tiếp cậnnhững công nghệ mới của Tin học phục vụ học tập và đời sống Nội dung chươngtrình của môn Tin học hiện hành ở các trường THCS đã đáp ứng được những yêucầu trên

- Trong nhà trường hiện đang phấn đấu các mục tiêu cụ thể của ngành là: Tổchức tốt việc hướng dẫn học sinh biết cách lập trình để tham gia các kỳ thi như Tinhọc trẻ, học sinh giỏi lớp 9,…

2 Phạm vi nghiên cứu của đề tài: Học sinh khối 8, 9 trong trường trung học

cơ sở Đại Phước

II THỰC TRANG CỦA NỘI DUNG ĐỀ TÀI NGHIÊN CỨU:

- Lập trình Pascal được xem là nội dung "khó" đối với học sinh THCS ở chỗ:Môi trường lập trình Pascal có giao diện và các từ khóa đều bằng tiếng Anh, cácdòng thông báo hay trợ giúp cũng vậy Bình diện chung học sinh THCS vốn tiếngAnh không nhiều, đa số các em còn yếu về tiếng Anh Lấy đơn vị lớp để tính thìmỗi lớp chỉ có một vài em được gọi là "thông thạo" tiếng Anh qua các bài học Hầuhết số còn lại nằm trong trạng thái "mù tịt" Đây là một khó khăn cho việc hiểuđược ngôn ngữ lập trình Pascal hay Free Pascal

- Từ thực tế trong quá trình dạy học tôi luôn băn khoăn trăn trở làm thế nàonâng cao chất lượng kỹ năng lập trình cho học sinh lớp 8 Việc tiếp cận với mônhọc rất khó khăn, phải làm rất nhiều lần và thực hành rất nhiều tiết các em mớihiểu việc nhập và xuất dữ liệu, điều này sẽ rất khó khăn để các em hình thành kỹnăng viết chương trình

- Qua kiểm tra chất lượng học kỳ 1 năm học 2016-2017, tôi thấy kỹ năng cơ bản

để giải bài toán trên máy tính bằng ngôn ngữ lập trình Pascal của học sinh lớp 8 là rấtyếu Khi giải bài toán trên máy tính 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; xây dựng

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-20182

Trang 3

thuật toán; 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 Vì thế, kết quả kiểm tra học kỳ 1 là rất thấp.

Kết quả khảo sát kiểm tra thực hành học kỳ 1 năm học 2016-2017 (lập trình)

T

số

Kết quả kiểm tra

a Khái niệm bài toán:

Bài toán là một công việc hay một nhiệm vụ nào đó cần phải giải quyết, đối với bất

kỳ một bài toán nào thì học sinh cũng được giáo viên hướng dẫn là phải đọc kỹ đềrồi xác định yêu cầu: A  B

b Bài toán lập trình trên máy vi tính:

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

- A: là đưa thông tin vào – thông tin trước khi xử lý (Input )

- B: là đưa thông tin ra – kết quả sau khi xử lý (Output)

- : là chương trình tạo từ các câu lệnh cơ bản của máy tính cho phép xử lý

từ A đến B

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-20183

Trang 4

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

Việc xác định bài toán là xác định xem ta phải giải quyết vấn đề gì? Với giảthiết nào đã cho và với lời giải cần đạt những yêu cầu gì Khác với các bài toánthuầ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ầnxá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 (nếu lời giải

tốt nhất đòi hỏi quá nhiều thời gian và chi phí).

Input  Process  Output (Dữ liệu vào  Xử lý  Kết quả ra)

d Một số ví dụ:

Ví dụ 1: Tính diện tích hình vuông.

Các bước xác định cho bài toán:

+ Thông tin vào (Input): Cạnh hình vuông a

+ Thông tin ra (Output): Kết quả diện tích khi đưa a vào

+ Các dữ liệu cần xử lý để cho ra thông tin kết quả như:

Lần lượt đưa giá trị a vào (cho a = 4 hay a là giá trị bất kỳ nào đó)

Áp dụng công thức tính diện tích hình vuông: a*aKết quả in ra là tích của giá trị cụ thể tương ứng của a do người chạychương trình nhập vào

Ví dụ 2: Nhập vào một xâu ký tự và in ra màn hình xâu đã được đổi thành in hoa.

Các bước xác định cho bài toán:

+ Input: Xâu ký tự

+ Output: Xâu ký tự đã đổi thành in hoa

+ Các dữ liệu cần xử lý để chế biến thông tin như:

Lần lượt đưa xâu ký tự vào (S = abcd hay S là xâu bất kỳ)

Áp dụng công thức :

Xác định chiều dài xâu ký tự bằng hàm Length(s)For i:=1 to length(St) do St[i]:=Upcase(St[i]);

Kết quả in ra là ABCD

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

Các bước xác định cho bài toán:

+ Input: Các số b, c

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-20184

Trang 5

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

+ Các dữ liệu cần xử lý để chế biến thông tin như:

Lần lượt đưa giá trị b, c vào ( b = 3 ; c= - 6)

Áp dụng công thức:

- Nếu b = 0 và c = 0 thì phương trình có vô số nghiệm

- Nếu b = 0 và c ≠ 0 thì phương trình vô nghiệm

- Nếu b ≠ 0 thì phương trình có nghiệm x = -c/b;

Kết quả in ra là x = 2

Ví dụ 4: Tìm giá trị lớn nhất của một dãy số nguyên

Các bước xác định cho bài toán:

+ Input: số nguyên dương N và dãy N số nguyên a1, …., aN

N = 5 ; (7, 5, 9, 4, 10)+ Output: Giá trị lớn nhất Max của dãy số

+ Các dữ liệu cần xử lý để chế biến thông tin như:

Khởi tạo giá trị Max = a1

Lần lượt với i từ 2 đến N, so sánh giá trị số hạng ai với giá trị Max, nếu ai > Max thì Max nhận giá trị mới là ai

Kết quả in ra là Max = 10

2 Tìm cấu trúc dữ liệu biểu diễn thuật toán:

* Cấu trúc dữ liệu (data structure): Là kiểu dữ liệu mà bên trong nó có

chứa nhiều thành phần dữ liệu và các thành phần dữ liệu đấy được tổ chức theomột cấu trúc nào đó Nó dùng để biểu diễn cho các thông tin có cấu trúc của bàitoán Cấu trúc dữ liệu thể hiện khía cạnh logic của dữ liệu Ví dụ cấu trúc dữ liệuđơn giản nhất trong chương trình tin học lớp 8 là mảng

Còn các dữ liệu không có cấu trúc được gọi là các dữ liệu vô hướng hay các

dữ liệu đơn giản VD: các kiểu dữ liệu số nguyên (integer), số thực (real), logic

(boolean) là các kiểu dữ liệu đơn giản

* 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ìnhtrạ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

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-20185

Trang 6

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ặckhô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ựachọ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ạnchươ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

3 Xây dựng thuật toán:

Đây là bước khó nhất đối với học sinh và cũng cho giáo viên khi dạy phầnnày vì các em quen giải bài toán cụ thể nào đó và giải bài toán bằng ngôn ngữ tựnhiên mà các em đã học còn bây giờ các em phải xây dựng thuật toán của một bàitoán tổng quát và bằng ngôn ngữ lập trình của máy

a Khái niệm thuật toán:

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 địnhmộ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 (Input), sau

số hữu hạn bước thực hiện các thao tác đã chỉ ra, ta đạt được kết quả đã định(Output)

b Phương pháp biểu diễn thuật toán:

Trong phần này chúng ta cần đưa ra một phương pháp mô tả thuật toán mộtcách khoa học để học sinh nhận biết được quy trình làm việc của máy vi tính(Ngôn ngữ lập trình) làm việc như thế nào Mô tả thuật toán là bước quan trọngnhất đối với người lập trình, nếu người lập trình mô tả thuật toán sai hoặc dài dòngthì dẫn đến khi viết chương trình sẽ khó khăn hoặc sẽ cho kết quả sai Ở bước nàyđòi hỏi người lập trình cần có những hiểu biết cơ bản về toán học thì khả năng biểu

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-20186

ALGORITHM

Trang 7

diễn thuật toán sẽ trở nên đơn giản hơn và sẽ thấy bài toán trở nên gần gủi Vì vậytrong phần này tôi sẽ đã đưa ra hai phương pháp mô tả thuật toán một cách rõ ràng

và khoa học nhất để các em dễ dàng mô tả thuật toán đúng theo ý tưởng của mình

b.1: Phương pháp biểu diễn từng bước:

* Phương pháp:

- Các thao tác của giải thuật được liệt kê từng bước

- Tại mỗi bước, sử dụng ngôn ngữ tự nhiên để diễn tả công việc phải làm

- Bước đứng trước (có số thứ tự nhỏ hơn) được thực hiện trước, thực hiệnxong bước này mới chuyển sang bước khác, không nhập nhằng

+ Nếu a = s thì ghi nhận vị trí của phần tử s (p)

+ Nếu a ≠ s và s chưa phải phần tử cuối cùng trong dãy thì gán s bằng phần

tử tiếp theo và lặp lại bước 4

+ Nếu a ≠ s và s là phần tử cuối cùng của dãy thì gán p = 0

- Bước 5: Nếu p ≠ 0 thì đưa ra vị trí cần tìm là p, ngược lại thông báo khôngtìm thấy, kết thúc

Thuật toán “Tìm ước số chung lớn nhất của 2 số nguyên dương a,b.

- 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 akhá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:=a-b và quay trởlại bước 2 Ngược lại ước số chung là b:=b-a và quay trở lại bước 2

Thuật toán “giải phương trình bậc nhất dạng tổng quát bx + c = 0”

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-20187

Trang 8

- Bước1 Nhập b, c là các số nguyên.

- Bước2 Nếu b = 0 chuyển đến bước 4

- Bước 3 Tính nghiệm phương trình x = - c /b và chuyển tới bước 5

- Bước 4 Nếu c ≠ 0, thông báo phương trình đã cho vô nghiệm ngược lại (c

= 0) thông báo phương trình có vô số nghiệm

- Bước 5 Kết thúc

Thuật toán “Tính chu vi, diện tích hình chữ nhật”

- Bước1 Nhập hai cạnh a,b

- Bước 2 Tính chu vi C = 2*(a+b)

- Bước 3 Tính diện tích S = a*b

- Bước 3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc

- Bước 4: Nếu ai > Max thì Max ← ai ;

i ← i+1 ; rồi quay lại bước 3 ;

b.2: Phương pháp biểu diễn bằng sơ đồ khối:

* Phương pháp:

- Sử dụng mũi tên để quy định trình tự thực hiện các thao tác

- Sử dụng các hình khối để minh hoạ cho các lệnh hay thao tác

+ Khối bắt đầu+ Khối kết thúc+ Khối thao tác thực hiện tính toán+ Khối kiểm tra điều kiện

+ Khối vào/ra dữ liệu+ Khối gọi chương trình con,…

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-20188

Trang 9

Các ký hiệu trong phương pháp biểu diễn này:

Từ các khối ở trên có một số cấu trúc như sau:

Thuật toán “Tính chu vi, diện tích hình chữ nhật”

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-20189

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

Khối bắt đầu và kết thúc

Thực hiện công việc A

Vào/ra dữ liệu

- Gọi chương trình con A

- Kiểm tra điều kiện: Tùy thuộc điều kiện(Đúng hay Sai) mà rẽ nhánh thích hợp

End

C := 2*(a+b)

S := a*b

§äc c¹nh a,b

repeat… until…

Trang 10

Thuật toán “Tính chu vi, diện tích hình tam giác”

Thuật toán “Tìm giá trị lớn nhất của một dãy số nguyên”

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-201810

* ) (

* ) (

Trang 11

c Tính chất của thuật toán:

* Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện các

thao tác

* Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuật toán kết

thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo

* Tính đúng đắn: Sau khi thuật toán kết thúc, ta phải nhận được Output cần tìm.

Ví dụ: Với thuật toán tìm giá trị lớn nhất của dãy số nguyên đã xét ở trên

Tính dừng: Vì giá trị của i mỗi lần tăng lên 1 nên sau N lần thì i> N, khi đókết quả phép so sánh ở bước 3 xác định việc đưa ra giá trị Max rồi kết thúc

Tính xác định: Thứ tự thực hiện các bước của thuật toán được mặc định làtuần tự nên sau bước 1 là bước 2, sau bước 2 là bước 3 Kết quả các phép so sánhtrong bước 3 và bước 4 đều xác định duy nhất bước tiếp theo cần thực hiện

Tính đúng đắn: Vì thuật toán so sánh Max với từng số hạn của dãy số vàthực hiện Max ai nếu ai > Max nên sau khi so sánh hết N số hạng của dãy thìMax là giá trị lớn nhất

- 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áchviế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ểncác ý tưởng ra thành chương trình hoàn chỉnh Để đạt được những điều trên thì cơ bảnhọc sinh phải nắm được cấu trúc chung của một chương trình Pascal cần có nhữngthành phần nào

Trang 12

* Phần khai báo :

- Phần này bắt đầu bằng từ khóa Program rồi tiếp đến là tên của chươngtrình và chấm dứt bằng dấu chấm phẩy (;).Tên chương trình phải được đặt theođúng qui cách của danh hiệu tự đặt (thỏa mãn quy ước đặt tên trong Pascal) Phần

này có hay không cũng được

Ví dụ: Program Phuong_trinh_bac2 ;

Program Vidu ;

- Tiếp đến là khai báo các thư viện bằng từ khóa Uses Mỗi ngôn ngữ lậptrình thường có sẵn một số thư viện cung cấp một số chương trình và lệnh thôngdụng đã được lập sẵn.Ví dụ thư viện crt, graph……Và để sử dụng các chươngtrình đó thì phải khai báo thư viện chứa nó

Ví dụ: Uses crt ; {khai báo thư viện crt }

Thư viện crt trong Pascal cung cấp các chương trình có sẵn để làm việc vớimàn hình và bàn phím Ví dụ muốn xóa những gì đang có trên màn hình kết quả ta

dùng lệnh Clrscr (Nếu như ta sử dụng lệnh này mà không khai báo thư viện Crt thì

máy tính sẽ báo lỗi).

Thực hiện: Nguyễn Thanh Bằng Năm học 2017-201812

Ngày đăng: 26/12/2018, 16:01

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w