Làm sao để không còn lỗi trong pascal năm 2024
Trong quá trình lập trình, chắc hẳn trong chúng ta ai cũng sẽ không tránh được các lỗi trong chương trình của mình (lỗi cú pháp, lỗi thuật toán, . . . ). Nhưng máy tính thì thực hiện những đoạn chương trình của chúng ta rất nhanh có thể là trong vài giây thậm chí vài mili giây. Vậy thì làm sao chúng ta có thể phát hiện ra những dòng code lỗi trong hàng trăm, hàng nghìn dòng code mà ta đã viết ??? Rất may mắn là trong hầu hết các IDE của các ngôn ngữ lập trình đều hỗ trợ một chức năng rất hay được gọi là Debug, bạn có thể gọi là “bắt bọ” hay chạy từng bước đều được 🙂 . Trong bài viết này, tôi sẽ hướng dẫn các bạn làm thế nào để Debug trong IDE Free Pascal. Để Debug được thì bạn cần nắm một số thuật ngữ cơ bản sau :
Để bắt đầu quá trình Debug thì tôi có chuẩn bị sẵn một đoạn code như sau : Đoạn code mẫuTiếp theo là chúng ta sẽ tạo một BreakPoint vào dòng code mà chúng ta muốn bắt đầu chạy từ đó. Để tạo một BreakPoint ta vào menu Debug -> BreakPoint hay chọn 1 dòng code và nhấn Ctrl + F8. Tạo BreakPointKhi tạo thành công một BreakPoint thì dòng code của bạn sẽ được tô màu đỏ BreakPoint tại dòng Readln(n)Sau khi tạo BreakPoint thì ta sẽ mở cửa sổ Watch để thêm các biến mà ta muốn quan sát giá trị cúa nó. Để mở cửa số Watch bạn vào menu Debug -> Watches. Mở cửa số WatchesSau đó, bạn hãy thay đổi kích thước cửa sổ code (cho dễ nhìn hơn thôi) bằng cách :
Sau khi resize xong, bạn vào menu Debug -> Add Watch và nhập tên biến bạn muốn xem giá trị Thêm biến vào WatchesKết quả sau khi thêm các biến vào Watches thì các biến sẽ hiển thị trong cửa Watches bên dưới Sau khi thêm các biến vào WatchesVậy là xong quá trình chuẩn bị rồi. Việc còn lại là bạn bấn Ctrl + F9 để chạy chương trình như bình thường bạn hay chạy thôi . Khi chạy thì dòng màu đỏ của BreakPoint sẽ chuyển sang màu xanh và dòng này chính là biểu thị cho trạng thái code hiện tại của chương trình đang chạy. Thực thi code để DebugSau đó, bạn sẽ chạy từng dòng code ở menu Run và bạn cần lưu ý một số chức năng sau :
Và khi Debug bạn sẽ thấy các giá trị của những biến bạn thêm lúc nãy sẽ thay đổi bên dưới cửa số Watches Giá trị các biến trong cửa số WatchesVậy là xong quá trình Debug rồi. Bây giờ bạn có thể mở những đoạn code mình đã viết và hãy thử Debug và xem kết quả nào Ngày nay bộ môn lập trình tin học Pascal được bộ giáo dục đưa vào thành môn học chính thức trong chương trình tin học THCS, và THPT. Nhận thấy nhiều em học sinh, thậm chí là sinh viên đang học ở các trường ĐH luôn cảm thấy khó khăn trong việc học lập trình Pascal. Trung tâm gia sư Bảng Vàng dành bài viết này để tìm hiểu xem bộ môn này có đến nỗi quá “khó nhằn” không nhé. Vì sao môn Pascal lại khó Theo thói quen của nhiều em học sinh, học môn tin là học những thao tác sử dụng như cách sử dụng internet, sử dụng hệ điều hành window, chương trình soạn thảo văn bản MS Word, chương trình soạn thảo trình diễn MS PowerPoint … Đây là những phần học không cần đòi hỏi tư duy, mà chỉ cần học kĩ và nhớ thao tác, thực hành nhiều lần thì sẽ thành thạo. Nhưng khi học bộ môn lập trình Passal chương trình lớp 8 ở THCS và lớp 11 THPT thì hầu như các em bị “choáng” vì bộ môn rất “mới”, và cách học cũng “mới”. Học những thao tác và thực hành nhiều không còn tác dụng, học thuộc bài cũng không còn ổn nữa. Lúc này các em cần phải học cách tư duy logic, tìm thuật toán, và viết những dòng lệnh máy tính chính xác đến từng đấu chấm, dấu phẩy. Với tâm lí thông thường các em học sinh coi tin học là môn phụ không quan trọng nên nhiều em chủ quan không dành đủ thời gian để học nên không hiểu bài và dần bị mất căn bản. Đây cũng là lí do mà nhiều em bị điểm kém, thậm chí là thi lại, học lại bộ môn tin học mặc dù có thể các em học rất giỏi các môn học khác. Tại sao lại học Pascal Pascal là một ngôn ngữ lập trình cấp cao do Niklaus Wirth, giáo sư điện toán trường đại học Kỹ thuật Zurich (Thụy sĩ) thiết kế và công bố vào năm 1971 và đặt tên là Pascal để tưởng niệm nhà Toán học và Triết học nổi tiếng Blaise Pascal. Đây là một ngôn ngữ lập trình có cấu trúc đơn giản, rõ ràng, cấu trúc chặt chẽ, dễ viết, dễ hiểu cũng như dễ sửa chữa, cải tiến. Do đó Pascal được nhiều quốc gia trong đó có Việt Nam đưa vào chương trình giảng dạy tin học ở các trường phổ thông và đại học như một môn học cơ sở, đại cương. Ở trường phổ thông chúng ta không chú trọng học chuyên sâu về ngôn ngữ lập trình để tạo ra các phần mềm máy tính mà tập trung rèn luyện kĩ năng tư duy logic, tư duy hệ thống và sáng tạo không chỉ để giải quyết những vấn đề trong tin học mà đây còn là những kĩ năng vô cùng quan trọng để giải quyết nhiều vấn đề trong cuộc sống. Học Pascal giúp cho ta hiểu được cách làm việc của máy tính, cách giao tiếp để ra lệnh cho máy tính làm việc theo sự điều khiển của con người thông qua ngôn ngữ lập trình. Các em có thể tạo ra các chương trình thú vị bằng cách sử dụng các câu lệnh Pascal. Cũng giống như những môn học khác như toán học, vật lý, hóa học … khi các em đã thực sự hiểu và yêu thích bộ môn tin học các em sẽ tìm thấy nhiều niềm vui, sự đam mê khi tìm hiểu và khám phá những điều mới mẻ nhưng đầy hấp dẫn trong bộ môn tưởng chừng như khô khan này. Đừng sợ cú pháp các câu lệnh Một số cú pháp và cấu trúc cần học và nhớ, nếu cần thêm có thể tham khảo ở các tài liệu, nhưng chỉ cần chừng này từ khóa thôi là đủ để viết hầu hết các bài tập pascal rồi. Một số hàm thường dùng: ClrScr: lệnh xóa màn hình; Write, Writeln: ghi ra màn hình Read, readln: đọc giá trị vào biến Các phép toán thường dùng: Phép cộng (+); Phép trừ (-); Phép nhân (*); phép chia (/); Phép chia lấy phần nguyên (div); phép chia lấy phần dư(mod); Phép gán (:=), Các phép toán: phép so sánh (=, <, >) và các phép toán logic: AND, OR, XOR, NOT. Một số kiểu dữ liệu thường dùng: Interger, real, string, char, array, Boolean … Các câu lệnh sử dụng thường xuyên + Lệnh ghép : BEGIN .. END + Lệnh chọn : IF .. THEN .. ELSE CASE .. OF . + Lệnh lặp : FOR .. TO .. DO REPEAT .. UNTIL WHILE .. DO Chúng ta thấy rằng cũng không có quá nhiều cấu trúc và cú pháp cần phải nhớ đúng không nào. Gặp những lỗi về cú pháp thì rất dễ sửa, chương trình biên dịch Pascal sẽ báo cho ta chính xác lỗi gì? ở đâu? khi chúng ta chạy chương trình. Cho nên các em không nên tập trung nhiều vào cú pháp ngôn ngữ lập trình mà tập trung nhiều vào tìm thuật toán, tức là tìm tuần tự các bước để giải bài toán. Vì khi chúng ta đã tìm ra được thuật toán rồi thì việc chuyển nó thành chương trình máy tính sẽ không còn gì khó khăn nữa. TẠO SỰ YÊU THÍCH KHI HỌC NGÔN NGỮ LẬP TRÌNH PASCAL Lập trình là môn học hướng dẫn học sinh cách giải các bài toán bằng cách viết chương trình trên máy tính. Đây là môn học mới đối với học sinh nên phần đông các em không nắm bắt được kiến thức để vận dụng vào giải bài tập. Về chương trình dạy lập trình Pascal ở trường phổ thông Ngôn ngữ lập trình đang giảng dạy trong các nhà trường phổ thông như Pascal đang gây khó khăn cho các học sinh mới bắt đầu tìm hiểu học lập trình. Pascal được chọn sử dụng để dạy ngôn ngữ lập trình cho học sinh phổ thông vì 30 năm trước nó không có đối thủ về mặt diễn tả thuật toán một cách trong sáng. Tuy nhiên, hơn 10 năm nay, Pascal mất ưu thế về mọi mặt và có một số nhược điểm so với một số ngôn ngữ khác như: – Giao diện chương trình không thân thiện, dễ gây sự nhàm chán cho học sinh. – Về mặt cú pháp nó chỉ dễ đọc đối với những học sinh các nước nói tiếng Anh. – Không có tính thực tiễn, nên không gây hứng thú cho học sinh, tạo sự yêu thích và kỹ năng lập trình cho học sinh . Về chương trình Pascal hiện tại của học sinh lớp 11: – Áp dụng công thức toán học quá nhiều. Học sinh phải có kiến thức tốt về toán học thì mới giải được các bài tập trong sách giáo khoa. – Đa phần các bài tập liên quan đến tính toán hoặc thuần về toán học, không gắn liền với thực tiễn. Ngôn ngữ lập trình Pascal đòi hỏi sự tư duy rất cao, tuy nhiên mức độ tư duy của các em còn hạn chế và không đồng đều trong một lớp học. Không kích thích tư duy sáng tạo của học sinh. Học sinh chỉ cố gắng hoàn thành một cách bị động các bài tập giáo viên cho. Từ đó học sinh sẽ dễ chán và chỉ học để đối phó với môn học này. – Học sinh chưa hiểu được lập trình để làm gì ngoài việc tính toán với các con số. – Học sinh sẽ tự hỏi lập trình Pascal có ứng dụng như thế nào trong thực tế. Học sinh sẽ rất khó hình dung được các ứng dụng mà lập trình có thể làm được trong thực tế nếu chỉ căn cứ vào lý thuyết thuần túy do giáo viên truyền đạt. – Học sinh khó kiểm tra bài làm của mình sau khi lập trình là đúng hay là sai. Có thể trên lý thuyết là đúng nhưng thực tế có thể sẽ có những trường hợp thiếu chính xác, thường sẽ có một khoảng sai số nhất định nào đó. Qua một thời gian giảng dạy ở trường, tôi nhận thấy khi học Pascal học sinh thường không thích thú với môn học này vì nhiều lý do như khó hiểu, tiếp thu chậm, đòi hỏi tư duy nhiều, … nên việc viết được một chương trình chạy được trên máy tính đối với các em rất khó khăn. Do đó để học tốt đòi hỏi học sinh phải có hứng thú. Cốt lõi của việc đổi mới phương pháp dạy học là giúp học sinh yêu thích, hứng thú với môn học, hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động. Để khắc phục điều này thì chúng ta phải khắc phục được các trường hợp sau: * Trường hợp 1: Học sinh chúng ta vừa đọc xong đề bài là kêu khó, không chịu tìm hiểu xem đề bài yêu cầu gì. Những vấn đề này các em đã được học việc xác định bài toán ở lớp 10 rồi. Sau khi đọc đề bài xong giáo viên hướng dẫn các em xác định rõ bài toán (xác định thành phần Input và Output của bài toán). Từ Inphut và Output của bài toán giáo viên yêu cầu HS gạch ra giấy chỉ ra từng bước để giải quyết bài toán rồi từ đó đưa ra các thuật toán, từng bước tinh chỉnh thuật toán tìm được thuật toán đúng đắn nhất cuối cùng là viết chương trình hoàn chỉnh. VD: Khi yêu cầu HS viết chương trình tính và in ra diện tích và chu vi của hình chữ nhật có cạnh a,b là 2 số nguyên dương được nhập từ bàn phím. Đây là một bài tập dễ nhưng có nhiều HS vẫn không biết bắt đầu giải bài tập từ đâu. – Để giải bài này GV yêu cầu HS xác định input và output của bài toán. Input: 2 số nguyên dương a,b Output: Diện tích và chu vi của hình chữ nhật – GV yêu cấu HS gạch ra các công việc cần làm để giải quyết bài tập này ? Các công việc cần làm để giải quyết bài tập này : + Nhập a,b + Tính diện tích hình chữ nhật + Tính chu vi hình chữ nhật + In ra diện tích hình chữ nhật + In ra chu vi hình chữ nhật – Gv gợi ý yêu vầu HS nêu công thức tính diện tích và chu vi hình chữ nhật? Diện tích S = a*b Chu vi Cv = (a+b)*2 – Với những phân tích có được ở trên GV yêu cầu hãy sữ dụng những câu lệnh của NNLT Pascal để giải quyết các công việc đặt ra của bài tập và sau đó là hoàn thành chương trình. * Trường hợp 2: Hầu như các em học sinh khi thực hành lập trình đều đùn đẩy cho nhau vì sợ mình sẽ không biết gõ gì vào máy tính. Khuyến khích các em cứ mạnh dạn, một lần sai, hai lần sai,… rồi từ từ các em sẽ gõ đúng câu lệnh. Lúc đầu giám sát quá trình làm việc của các em, sửa các lỗi sai, về sau để các em tự làm việc chỉ sửa lỗi khi các em gặp khó khăn thực sự, không giải quyết được bắt buộc cần có hướng dẫn của giáo viên. Khi các em tự gõ chương trình các em mới thực sự hiểu chương trình đó hoạt động thế nào chứ không thể nhìn mà hiểu được. – Trường hợp 3: Khi thực hành các em chỉ gõ cho xong nội dung của bài thực hành chứ không thực sự tìm hiểu xem tại sao lại có câu lệnh đó, tại sao phải dùng cấu trúc điều khiển này mà không dùng cấu trúc điều khiển kia, tới câu lệnh này thì kết quả sẽ như thế nào, … Chính vì vậy mà các em không hiểu bài và không thể tự sửa lỗi nếu gõ sai. Hướng dẫn các em cách chạy chương trình từng bước và cách quan sát giá trị các tham số cần thiết. – Trường hợp 4: Học sinh thường rất lười không chịu học bài. Các em phải học bài thì mới làm bài được, đó là lẽ đương nhiên. Tất cả các bài lý thuyết chính là cái mà chúng ta cần để thực hành, vì vậy phải nắm thật tốt lý thuyết ví dụ như các thủ tục read hay readln, write hay writeln dùng để làm gì? tại sao phải sử dụng các thủ tục đó, không có nó có được không,…, cấu trúc rẽ nhánh thì có mấy dạng, khi nào dùng dạng thiếu, khi nào dùng dạng đủ, khi nào dùng cấu trúc lặp với số lần chưa biết trước, khi nào dùng cấu trúc lặp với số lần biết trước… Thực ra để học tốt lập trình thông qua ngôn ngữ lập trình Pascal không phải là quá khó vì pascal là ngôn ngữ học đường thông dụng nhất, nó rất gần với tư duy tự nhiên vì vậy chỉ cần các em chịu khó học lý thuyết sau đó làm bài tập là có thể đạt được điểm cao. Ngoài các nguyên nhân khách quan, quan trọng nhất vẫn là nguyên nhân chủ quan từ phía học sinh đó là khó tạo sự yêu thích, đam mê từ môn học này mà không đam mê thì rất khó học Pascal một cách tốt nhất, dễ dẫn đến tình trạng học cho qua ngày, học đối phó. Để có thể giúp tạo sự yêu thích bộ môn, từ đó học sinh sẽ học hiệu quả hơn môn lập trình Pascal: phương pháp truyền đạt, hệ thống bài tập, hình thành kỹ năng lập trình.
Trong quá trình giảng dạy bộ môn Tin học, đặc biệt khi dạy lập trình Pascal, môn học mà đòi hỏi phải tư duy sáng tạo nhiều thì cần phải có một phương pháp dạy học phù hợp nhằm đạt hiệu quả cao. Vì vậy việc áp dụng các phương pháp để tạo sự hứng thú, yêu thích môn học, làm cho học sinh có thể nắm được nội dung bài học ngay tại lớp, nắm bắt kiến thức một cách logic và có hệ thống là điều cần thiết. Từ đó giúp cho học sinh phát triển trí tuệ, rèn luyện khả năng lao động sáng tạo, tham gia giờ học tích cực và đặc biệt là yêu thích, hứng thú hơn trong việc tiếp cận với lập trình Pascal, môn học “khô khan” nhất trong các môn học. |