Giải toán bằng ngôn ngữ lập trình Pascal

Thứ tư, 22/09/2010 17:10

(TG@) - Chương trình là dãy các lệnh mà máy tính sẽ phải lần lượt làm để giải quyết bài toán tin học: Nhận thông tin vào, mã hóa thành dữ liệu, xử lý dữ liệu đó thành dữ liệu ra, rồi giải mã nó ra thành thông tin.

Ví dụ 1: Giải bài toán làm phép cộng: a+b=c.

Chúng ta phải nhập thông tin a và b từ bàn phím, máy đổi chúng thành dữ liệu dạng nhị phân, làm phép cộng các số nhị phân đó được kết quả là một số nhị phân rồi giải mã nó thành số bình thường mà con người trông thấy, hiểu được! Chẳng hạn: nhập a=2, b=3. Khi vào máy nó trở thành a=00000010, b=000000011, c=a+b=00000101, giải mã ra c=5.

Thuật toán là một phần của chương trình thể hiện được các thủ thuật thông minh của người lập trình để máy chạy đúng nhất, ít lãng phí bộ nhớ và thời gian nhất.

Như vậy, muốn lập trình giỏi phải nắm được tường tận các kiểu dữ liệu, ý nghĩa, cách dùng các câu lệnh, biết dịch xuôi/ngược (từ ngôn ngữ Pascal sang ngôn ngữ của người/hoặc ngược lại) và rồi phải biết cách trình bày các câu lệnh theo những thuật toán thông minh để kết quả là tốt nhất.

Ví dụ 2: Lập trình tính tổng a+b=c,với a, b là các số tự nhiên cỡ 1 byte (giá trị từ 0 đến 255).

Điều đầu tiên chúng ta phải nắm được các biến cần khai báo và phạm vi dữ liệu của nó theo yêu cầu của đề bài. Khi đó ta yêu cầu máy tính hỗ trợ bàn phím và màn hình để nhập/xuất dữ liệu từ bàn phím ra màn hình. Xin máy cấp phát các ô nhớ để chứa các dữ liệu số a, b cỡ 1 byte và c phải là cỡ 2 bytes. Sở dĩ yêu cầu như vậy vì khi cộng 2 số kiểu byte có thể cho số lớn hơn một byte, chẳng hạn a=255, b=1, c=a+b=256 cỡ lớn hơn 1 byte. Do đó, nếu chỉ xin cấp phát cho c một ô nhớ cỡ 1 byte thôi thì kết quả không còn đúng nữa, kết quả sẽ là 255+1=0. Thật vậy, nếu chuyển qua các bit thì: 255=11111111, 1=00000001, c=100000000, có 9 bit, mà 1 byte chỉ có 8 bit, nên bit thứ 9 bên trái nhất sẽ bị tràn khỏi ô nhớ. Thế nên, phải xin cấp phát cho c khối nhớ 2 bytes (16 bit) mới được. Chúng ta hãy tưởng tượng như a, b, c là loại can đựng được 8 lít thôi, mà đổ 9 lít vào thì lít cuối cùng bị tràn. Chuẩn bị xong phần khai báo các biến, chúng ta bắt đầu hình dung sẽ làm các công việc sau như: Xóa màn hình sạch sẽ, viết “a=”, nhập a từ bàn phím, viết “b=”, nhập b từ bàn phím, lấy ô nhớ a cộng với ô nhớ b, kết quả đổ vào khối nhớ c, xuất ra màn hình xâu ký tự “Tong =” và nội dung ô nhớ c, chờ gõ Enter rồi kết thúc. Từ các công việc trên, chúng ta bắt đầu thể hiện bằng ngôn ngữ Pascal (ngôn ngữ này giúp chương trình dịch ra mã máy để thực hiện):

uses crt;

var a,b:byte; c:word; {Yêu cầu máy cấp phát các ô nhớ cho a,b,c:

begin

clrscr; {Xóa màn hình sạch sẽ}

write(‘a=’); {Viết a= và con trỏ chờ ngay sau dầu bằng đó}

readln(a); {Đưa số a gõ từ bàn phím cho đến khi gõ Enter vào thành dữ liệu ở ô nhớ a}

write(‘b=’);{Viết b= và con trỏ chờ ngay sau dầu bằng đó}

readln(b);{Đưa số b gõ từ bàn phím cho đến khi gõ Enter vào thành dữ liệu ở ô nhớ b}

c:=a+b; {Lấy ô nhớ a cộng ô nhớ b, kết quả lưu vào ô nhớ c}

writeln(‘Tong = ‘,c); {Viết “Tong = “ và nội dung khối nhớ c ra sau dấu bằng, rồi xuốngdòng}

readln {Chờ gõ Enter}

end. {Kết thúc}

Qua ví dụ này, ta đã nắm được các bước để giải một bài toán và các lưu ý trong quá trình khai báo dữ liệu. Các bạn hãy thử lập trình để tính Hiệu, Tích, Thương của 2 số tự nhiên cỡ 1 byte, rồi thử lại trong mọi trường hợp: Phép trừ thử với cả aCuối cùng, xin nhấn mạnh một điều là các bạn hãy nắm chắc các kiểu dữ liệu, quy tắc cú pháp, thuật toán đơn giản, giáo khoa... rồi tiến đến các thuật toán phức tạp hơn (chẳng hạn như lý thuyết đồ thị, lý thuyết trò chơi) và dần đến những bài toán không mẫu mực khác (các bài thi học sinh giỏi tin học quốc gia, khu vực và quốc tế). Thật ra, Pascal không cho ra sản phẩm thương mại gì lớn mà chủ yếu là giúp bạn trẻ, học sinh phổ thông một môi trường rèn luyện mình để sau này trở thành người có đầu óc tổ chức quản lý khéo léo, hiệu quả và tối ưu.

Pascal là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh, được Niklaus Wirth phát triển vào năm 1970 là ngôn ngữ đặc biệt thích hợp cho kiểu lập trình có cấu trúc. Ban đầu, Pascal là một ngôn ngữ được hướng dẫn để dùng trong giảng dạy về lập trình có cấu trúc và nhiều thế hệ học sinh, sinh viên đã “vào đời” thông qua việc học Pascal như ngôn ngữ vỡ lòng trong các chương trình học đại cương. Ở môi trường này, học sinh sở hữu một lượng tài nguyên là các kiểu dữ liệu đơn giản, cùng các câu lệnh rất rõ ràng, trong sáng, nhất quán và rất dễ thuộc. Tuy nhiên, nó đòi hỏi ở người lập trình tài bố cục, thiết kế thuật toán sao cho đúng đắn, hiệu quả và tối ưu, rồi vận dụng các quy tắc cú pháp để viết ra được các câu lệnh phù hợp.

admin

Hà Nội và Grab Việt Nam hợp tác phát triển đô thị thông minh, chuyển đổi số

Hà Nội và Grab Việt Nam hợp tác phát triển đô thị thông minh, chuyển đổi số

Tiêu dùng thông minh 22:37

TP Hà Nội và Grab Việt Nam vừa ký kết Biên bản ghi nhớ nhằm thúc đẩy hỗ trợ các mục tiêu phát triển đô thị xanh, thông minh và thúc đẩy chuyển đổi số.

Cựu cán bộ xã xót xa khi mộ con bị di dời: Đà Nẵng giao thanh tra vào cuộc

Cựu cán bộ xã xót xa khi mộ con bị di dời: Đà Nẵng giao thanh tra vào cuộc

Thời sự 21:21

(NLĐO) – Chủ tịch UBND TP Đà Nẵng giao Thanh tra thành phố kiểm tra điều kiện thụ lý đơn, báo cáo, đề xuất Chủ tịch UBND thành phố xử lý

Đề xuất hỗ trợ đóng BHXH bắt buộc, giảm tuổi hưởng trợ cấp còn 70

Đề xuất hỗ trợ đóng BHXH bắt buộc, giảm tuổi hưởng trợ cấp còn 70

Lao động 21:02

(NLĐO) - Dự thảo Luật BHXH sửa đổi đề xuất hỗ trợ đóng BHXH bắt buộc, cấp sổ điện tử và giảm tuổi hưởng trợ cấp hưu trí xã hội từ 75 xuống 70.

Sai lầm khi sơ cứu trẻ đuối nước khiến bác sĩ đau lòng

Sai lầm khi sơ cứu trẻ đuối nước khiến bác sĩ đau lòng

Sức khỏe 21:01

(NLĐO) - Trong hai ngày cuối tuần, ba trẻ đuối nước nhập viện, một em tử vong. Bác sĩ cho biết nhiều trường hợp bị sơ cứu sai, làm mất "thời gian vàng".

In hộp giấy đựng bánh theo yêu cầu thương hiệu và bảo vệ sản phẩm

In hộp giấy đựng bánh theo yêu cầu thương hiệu và bảo vệ sản phẩm

Tiêu dùng thông minh 19:39

In hộp giấy đựng bánh theo yêu cầu là lựa chọn phù hợp cho tiệm bánh, cửa hàng và doanh nghiệp cần bao bì đẹp, đúng kích thước, hỗ trợ quảng bá thương hiệu.

Chủ quan với chứng tiểu ra máu, người đàn ông phát hiện bị ung thư bàng quang

Chủ quan với chứng tiểu ra máu, người đàn ông phát hiện bị ung thư bàng quang

Sức khỏe 19:37

(NLĐO) - Một trường hợp ung thư bàng quang giai đoạn muộn về thói quen tự ý điều trị theo kinh nghiệm truyền miệng

Chiến sự Trung Đông ngày 30-6: Tổng thống Iran gửi thông điệp đến Mỹ, Iran cứng rắn về Hormuz

Chiến sự Trung Đông ngày 30-6: Tổng thống Iran gửi thông điệp đến Mỹ, Iran cứng rắn về Hormuz

Quốc tế 19:37

(NLĐO) - Bộ Ngoại giao Oman cho rằng trách nhiệm bảo đảm sự an toàn ở eo biển Hormuz thuộc về Iran.

Thưởng thức thiên đường nhiệt đới tại “Lễ Hội Trái Cây Gigamall 2026”

Thưởng thức thiên đường nhiệt đới tại “Lễ Hội Trái Cây Gigamall 2026”

Ẩm thực 19:11

Mùa hè năm nay, TTTM Gigamall mang đến không gian rực rỡ sắc màu nhiệt đới với sự kiện “Lễ Hội Trái Cây Gigamall 2026”, diễn ra từ ngày 7-7-2026 đến 12-7-2026

Highlight: Đức lần đầu gục ngã ở loạt luân lưu 11 m tại World Cup

Highlight: Đức lần đầu gục ngã ở loạt luân lưu 11 m tại World Cup

World Cup 2026 18:54

(NLĐO) - Lần đầu tiên, tuyển Đức thua sốc ở loạt luân lưu 11 m trong lịch sử World Cup khi bị Paraguay loại ở vòng 1/16 vào sáng 30-6

Bùng nổ hè 2026 với loạt siêu phẩm công nghệ giải trí đỉnh cao tại TTTM Gigamall

Bùng nổ hè 2026 với loạt siêu phẩm công nghệ giải trí đỉnh cao tại TTTM Gigamall

Điểm đến 18:32

Chào đón mùa hè 2026, công viên công nghệ giải trí đa tầng Gigaversal tại tầng 6 TTTM Gigamall chính thức kích hoạt chuỗi bom tấn giải trí đỉnh cao.

XEM THÊM