Khái niệm về lập trình máy tính để giải các bài toán ứng dụng

10 340 0
Khái niệm về lập trình máy tính để giải các bài toán ứng dụng

Đang tải... (xem toàn văn)

Thông tin tài liệu

Khái niệm lập trình máy tính để giải toán ứng dụng Khái niệm lập trình máy tính để giải toán ứng dụng Bởi: PGS TS NGƯT Phạm Văn Huấn Phần cứng phần mềm máy tính Máy tính thiết kế để thực thao tác tuân theo tập câu lệnh người dùng viết ra, gọi chương trình Các máy tính có cấu tạo chung bên hình 1.1 Người dùng sử dụng bàn phím, chuột thiết bị nhập liệu khác để đưa thông tin vào máy tính Bộ xử lý (processor) phần máy tính kiểm soát tất phần khác Bộ xử lý nhận liệu vào lưu chúng nhớ (memory) Nó nhận biết lệnh chương trình Nếu ta muốn cộng hai giá trị, xử lý lấy hai giá trị từ nhớ gửi đến khối xử lý số học lôgic (ALU) Khối thực phép cộng xử lý lưu kết vào nhớ Trong xử lý, xử lý khối số học lôgic sử dụng lượng nhớ nhỏ gọi nhớ (internal memory) Phần lớn liệu lưu nhớ (external memory) đĩa cứng, đĩa mềm, chúng nối với xử lý Bộ xử lý, nhớ ALU gọi chung khối xử lý trung tâm hay CPU Trong chương trình, ta thường lệnh cho máy tính in kết tính toán lên hình hay máy in nối với máy tính thiết bị xuất liệu Phần mềm chứa dẫn lệnh mà ta muốn máy tính thực Phần mềm viết nhiều ngôn ngữ cho nhiều mục đích Những chương trình thực thao tác chung, thường nhiều người sử dụng gọi phần mềm công cụ Hệ điều hành tập hợp chương trình giúp người dùng giao tiếp với máy tính Hệ điều hành tạo môi trường thuận tiện cho người dùng “giao tiếp” với máy tính, thực chương trình ứng dụng biên dịch ngôn ngữ lập trình, phần mềm công cụ Hệ điều hành gồm số chương trình cho phép thao tác với file in, chép, hiển thị danh sách file Những hệ điều hành đại Windows giúp máy tính nhận biết quản lý công việc nhiều thiết bị ngoại 1/10 Khái niệm lập trình máy tính để giải toán ứng dụng vi nối kèm với máy tính thiết bị nhập, xuất liệu, hình, máy in, máy quét ảnh, loa, máy quan trắc chuyên dụng Sơ đồ khối máy tính Thông thường chuyên gia lập chương trình viết nhiều chương trình để máy tính thực hiện, từ chương trình đơn giản để giải toán nhỏ, tính toán vài giá trị, đến chương trình đồ sộ xử lý thông tin phức tạp, thông minh, giải toán khoa học kĩ thuật lớn, chế văn bản, thiết kế đồ họa, chương trình nghe nhạc, xem phim, trò chơi, truy cập Internet Những chương trình tương đối lớn phức tạp thường gọi phần mềm Người dùng máy tính sử dụng chương trình Ngày có cảm giác máy tính làm tất việc Tuy nhiên, phải nhớ tất máy tính làm làm việc theo chương trình người tạo Thực chương trình máy tính Thực chương trình máy tính thường gọi tắt chạy chương trình Khi người dùng máy tính muốn làm việc đó, thí dụ giải toán, người dùng phải viết chương trình máy thực Người lập trình thường viết chương trình máy tính ngôn ngữ bậc cao với câu lệnh giống câu tiếng Anh, dễ học sử dụng Ngôn ngữ Fortran thuộc loại Mỗi bước ta muốn máy tính thực phải mô tả theo cú pháp ngôn ngữ đặc thù (language syntax) Tuy nhiên, chương trình ta viết phải chương trình chuyên (bộ biên dịch - compiler) dịch thành ngôn ngữ máy máy tính hiểu thực Khi compiler dịch dòng lệnh ta viết, tự động tìm lỗi dịch, hay lỗi cú pháp (syntax error), tức lỗi tả, dấu phân cách Nếu chương trình viết có lỗi dịch, biên dịch thông báo để người viết chương trình sửa Sau 2/10 Khái niệm lập trình máy tính để giải toán ứng dụng sửa hết lỗi, ta chạy lại chương trình bước dịch Một dịch xong, chương trình soạn thảo liên kết (linkage editor program) thực việc hoàn tất sẵn sàng cho bước thực Chính bước lệnh ta viết thực máy tính Lỗi chương trình xuất bước này, gọi lỗi chạy chương trình (run-time error) hay lỗi lôgic Những lỗi không liên quan tới cú pháp lệnh, mà liên quan tới lôgic lệnh, lộ máy tính thực thi câu lệnh Thí dụ, lệnh X = A/B câu lệnh đúng, bảo máy tính lấy A chia cho B gọi kết X Tuy nhiên, giả sử B không, phép tính chia cho số không phép tính sai, nghĩa ta thông báo lỗi chạy chương trình Các lỗi lôgic thông báo Thí dụ, chương trình thay chia số cho 0.10 ta viết thành nhân với 0.10, chạy chương trình chẳng có lỗi thông báo, đáp số toán, tức kết mà ta mong đợi, sai Quy trình giải toán máy tính Nhìn chung công việc giải toán máy tính gồm năm bước sau: 1) Phát biểu toán cách rõ ràng 2) Mô tả thông tin nhập vào xuất 3) Giải toán tay tập liệu đơn giản 4) Phát triển cách giải toán thành dạng tổng quát 5) Kiểm tra đáp số với nhiều tập liệu khác Bây ta minh họa năm bước qua thí dụ toán tính giá trị trung bình tập số liệu thực nghiệm Bước 1: Ta phát biểu toán cách rõ ràng sau: “Tính trị số trung bình tập giá trị số liệu thực nghiệm” Bước 2: Chỉ cụ thể số liệu vào gì, hình thức Nếu có tờ ghi số giá trị số liệu, đòi hỏi nhập vào máy qua bàn phím, hết số liệu gõ giá trị 0.0 để báo hết, sau tính trị số trung bình in kết trị số trung bình Vậy phải mô tả bước sau: “Đầu vào chuỗi giá trị số thực khác không Đầu giá trị trung bình, số thực in hình” Giả sử đầu vào số số liệu ghi vào tệp (file) ổ cứng, quy cách ghi có đặc điểm định, bước mô tả vào hoàn toàn khác cách 3/10 Khái niệm lập trình máy tính để giải toán ứng dụng giải khác Khi ta phải mô tả rõ cách thức số liệu ghi file Thí dụ, ta mô tả liệu đầu vào đầu sau: Dữ liệu đầu vào chuỗi số thực ghi file văn có tên SOLIEU.DAT với quy cách ghi sau: dòng ghi số nguyên số phần tử chuỗi, dòng tiếp sau ghi số thực, số dòng Bước 3: Dùng máy tính tay tính thử với tập đơn giản gồm năm số liệu: thí dụ: Thứ tự Giá trị 23.43 37.43 34.91 28.37 30.62 Trung bình = 30.95 Tập số liệu kết dùng để kiểm tra bước Bước 4: Trong bước ta khái quát lại thao tác cần làm bước Tuần tự thao tác để dẫn đến giải toán thuật giải hay thuật toán (algorithm) Ta mô tả từ đầu đến cuối trình giải Chia trình thành số khối liệt kê khối Sau chương trình máy tính thực khối chia Trong khối ta lại chi tiết hóa thêm đến mức chuyển thành lệnh máy tính Vậy áp dụng hai phương pháp: phân khối chi tiết hóa khối Với toán xét, trường hợp liệu đầu vào cần nhập từ bàn phím, ta chia thành ba khối: - Nhập giá trị số lấy tổng chúng - Chia tổng cho số giá trị - In trị số trung bình Cụ thể hóa khối dẫn tới giả trình chương trình sau: Cho tổng giá trị không Cho số số liệu vào không Nhập vào giá trị kiểm tra chừng giá trị nhập vào khác số 0.0 thì: 4/10 Khái niệm lập trình máy tính để giải toán ứng dụng - Cộng thêm giá trị vào tổng - Cộng thêm vào số số liệu Chia tổng cho số số liệu để giá trị trung bình In giá trị trung bình Vì thuật giải mô tả chi tiết, ta chuyển thuật giải thành chương trình sau: PROGRAM TGTTB INTEGER DEM REAL X, TONG, TB TONG = 0.0 DEM = READ*, X IF (X NE 0.0) THEN TONG = TONG + X DEM = DEM + GOTO END IF TB = TONG / REAL(DEM) PRINT 6, TB FORMAT (1X, 'TRUNG BINH BANG ' , F6.2) STOP END 5/10 Khái niệm lập trình máy tính để giải toán ứng dụng Bước 5: Trong bước ta thử chạy chương trình viết với tập số liệu thử cách tính tay mục Đầu hình máy tính phải sau: ***SORRY, THIS MEDIA TYPE IS NOT SUPPORTED.*** Ngoài ra, ta chạy thử với số tập số liệu khác để tin vào tính đắn lôgic hoàn hảo chương trình xây dựng Những khái niệm thuật giải giả trình có ý nghĩa quan trọng Cách giải, phương pháp giải toán thuật giải Các toán khoa học kĩ thuật thực máy tính thường có thuật giải phương pháp toán học khoa học chuyên ngành mà người lập trình biết Một số nhiệm vụ, toán khác có cách giải xuất phát từ kinh nghiệm thực tế, từ cách suy nghĩ lôgic thường ngày Thí dụ, giải phương trình bậc hai ax2 + bx + c = máy tính, ta tính giá trị biệt thức Δ Sau tùy giá trị Δ là: Δ < phương trình vô nghiệm, Δ = phương trình có nghiệm kép Δ > phương trình có hai nghiệm riêng biệt mà đưa thông báo kết Trong thí dụ này, thuật toán phương pháp quen thuộc mà học đại số Một thí dụ khác: Có danh sách sinh viên với điểm môn thi Sắp xếp lại danh sách cho người có điểm thi cao dòng Ta làm sau: Tạm thời xem người thứ người đứng đầu danh sách Dùng ngón tay trỏ dõi theo người lại, kể từ người thứ hai hết danh sách, có điểm thi cao chuyển người lên đầu danh sách người đầu danh sách chuyển xuống chỗ người vừa thay Kết ta danh sách với người có điểm thi cao dòng đầu Nhưng từ dòng thứ hai đến dòng cuối danh sách thứ tự lộn xộn Bây ta việc xếp lại từ dòng thứ hai trở Ta theo dõi từ người thứ ba người cuối cùng, có điểm thi cao đưa lên dòng thứ hai người dòng thứ hai bị đưa xuống dòng người vừa thay Kết người dòng thứ hai danh sách người có điểm thi cao thứ nhì Nhưng từ dòng thứ ba đến cuối danh sách lộn xộn Tiếp tục, ta phải xếp lại danh sách kể từ dòng thứ ba theo cách Lặp lại công việc dòng trước dòng cuối cùng, ta danh sách hoàn chỉnh xếp theo thứ tự giảm dần điểm thi Ta thấy, trường hợp thuật giải toán cách mà thường làm thực tế đời sống phải xếp lại danh sách theo thứ tự 6/10 Khái niệm lập trình máy tính để giải toán ứng dụng không dùng máy tính Và cách làm “bằng tay” áp dụng làm thuật toán cho loại toán xếp máy tính Chúng giới thiệu chi tiết hai thí dụ vừa cốt để sinh viên ý thức tư thuật giải, suy nghĩ cách giải bước quan trọng bắt tay vào xây dựng chương trình máy tính Có xác định thuật giải nói đến việc lập chương trình để giải toán máy tính Còn giả trình giống lời dẫn phương pháp, cách giải cho thực bước thuật giải toán để dẫn tới kết Bạn tưởng tượng đời sống bạn muốn nhờ thực nhiệm vụ Nếu nhiệm vụ không tầm thường, thường bạn phải giải thích tóm tắt yêu cầu, thực nhiệm vụ cho người ta - bạn đặt chương trình cho người ta thực Như vậy, ta thấy thực chất giả trình chương trình, có điều viết ngắn gọn vài câu, vài kí hiệu quen dùng, chưa viết ngôn ngữ lập trình cụ thể mà Một chương trình máy tính viết ngôn ngữ Fortran hay ngôn ngữ khác chẳng qua lời dẫn viết theo qui ước kí hiệu để máy tính hiểu mà làm thay cho ta Những chương trình Fortran hoàn chỉnh Chương trình TGTTB mục trước thí dụ chương trình hoàn chỉnh Như ta thấy chương trình hoàn chỉnh bắt đầu lệnh PROGRAM bắt đầu chương trình Dạng tổng quát lệnh sau: PROGRAM Tên chương trình tên chương trình xâu ký tự gồm từ đến sáu ký tự, bắt đầu chữ chứa chữ la tinh chữ số Kết thúc chương trình hai lệnh: STOP END Lệnh PROGRAM lệnh STOP lệnh tùy chọn, không thiết phải có Nếu ta không viết ra, chúng chương trình dịch tự thêm vào Phần thân chương trình gồm tất lệnh khác nhằm thực toán giải chia thành hai nhóm: nhóm lệnh thực (executable statement) nhóm lệnh không thực (non-executable statement) hay gọi lệnh mô tả, lệnh khai báo Nhóm lệnh mô tả phải nằm phía thân chương trình Như chương trình Fortran có cấu trúc tổng quát sau: 7/10 Khái niệm lập trình máy tính để giải toán ứng dụng PROGRAM Tên chương trình Các lệnh không thực (Non-executable statements) Các lệnh thực (Executable statements) STOP END Trong chương trình tính giá trị trung bình chuỗi số thực thí dụ trên, ta thấy sau từ khóa PROGRAM tên chương trình - cụm chữ TGTTB Nhóm lệnh không thực (những lệnh mô tả) gồm lệnh: INTEGER DEM REAL X, TONG, TB nhóm lệnh thực gồm lệnh tiếp sau hai lệnh trên: TONG = 0.0 DEM = READ*, X IF (X NE 0.0) THEN TONG = TONG + X DEM = DEM + GOTO END IF TB = TONG / REAL(DEM) PRINT 6, TB FORMAT (1X, 'TRUNG BINH BANG ' , F6.2) 8/10 Khái niệm lập trình máy tính để giải toán ứng dụng Những lệnh thực thường lệnh gán, lệnh tính toán phép tính, lệnh chuyển điều khiển, đọc, ghi số liệu số lệnh khác Cuối chương trình có lệnh STOP END Trong thực tế có chương trình lớn nhiều, gồm hàng nghìn dòng lệnh có cấu trúc phức tạp Nhưng ta thấy có phần đầu, phần thân phần cuối, phần thân chương trình có hai nhóm lệnh giống chương trình đơn giản Quy cách soạn thảo chương trình Fortran Các chương trình Fortran soạn thảo nhờ soạn thảo (editor) phần mềm soạn văn Các lệnh chương trình viết thành dòng nối tiếp nhau, lệnh dòng Trên hình soạn thảo chuẩn *) Trước người ta phải dùng giấy chuyên dụng, gọi blank, để viết chương trình Fortran Sau lệnh chương trình từ giấy chuẩn ghi vào tờ bìa chuyên dụng có hình dáng đặc biệt máy đục lỗ giúp tự động mã hóa ký tự dòng lệnh thành hàng lỗ với vị trí khác Ngày soạn thảo giúp viết lệnh trực tiếp từ bàn phím, viết ký tự ký hiệu hình để dễ theo dõi chỉnh sửa giống ta soạn thảo văn bất kỳ, sau lưu máy tính dạng file nguồn *) người ta quy ước cột từ đến (hình 1.2) dùng để ghi số hiệu lệnh hay gọi nhãn lệnh, cột chuyên dùng để ghi ký tự nối dòng lệnh, nội dung dòng lệnh ghi cột từ đến 72 Tất thông tin cột 72 bị bỏ qua Quy cách viết lệnh Fortran hình soạn thảo Nhãn lệnh số nguyên dương, khác không, dùng để số hiệu dòng lệnh Chỉ dòng lệnh cần chuyển điều khiển tới dòng lệnh khác thiết phải có nhãn lệnh Dấu nối dòng lệnh ký tự ký tự trống số không, thường người ta hay dùng dấu * dấu +, để dòng phần nối tiếp lệnh dòng Trong dòng lệnh có ký tự trống để dễ đọc Trong chương trình soạn thảo có dòng ghi (comment lines); dòng không thuộc nội dung chương trình, không dịch dịch chương trình, mà có tác dụng gợi nhớ cho người lập trình theo dõi kiểm tra chương trình Tất dòng ghi phải bắt đầu chữ cái, thường người ta 9/10 Khái niệm lập trình máy tính để giải toán ứng dụng dùng chữ C (chữ từ comment), đứng cột thứ cột dùng để ghi nhãn Trong sách sử dụng chữ C để đánh dấu dòng ghi chương trình Xây dựng chương trình máy tính nói chung công việc khó đòi hỏi tính cẩn thận, tỉ mỉ Kinh nghiệm cho thấy người lập trình thành thạo, viết chương trình dù đơn giản mắc lỗi, có lỗi không ngờ tới Do đó, số sách dạy ngôn ngữ lập trình, người ta khuyên người học từ đầu ý luyện thói quen, hay phong cách (style) soạn thảo chương trình Một chương trình đẹp chương trình tính nhanh mà ta cần tính, đơn giản, dễ hiểu sáng sủa cách trình bày Trong tài liệu có dẫn, lời khuyên quan trọng cho người học rèn luyện phong cách soạn chương trình Chịu khó rèn luyện thói quen tốt góp phần giúp tiến xa Bài tập Nếu dùng chữ C làm dấu nối dòng lệnh có không? Các nhãn chương trình có cần tăng dần không? Nêu bước giải toán xếp chuỗi số nguyên nhập từ bàn phím theo thứ tự lớn dần Viết giả trình cho toán 10/10 ... 6/10 Khái niệm lập trình máy tính để giải toán ứng dụng không dùng máy tính Và cách làm “bằng tay” áp dụng làm thuật toán cho loại toán xếp máy tính Chúng giới thiệu chi tiết hai thí dụ vừa cốt để. . .Khái niệm lập trình máy tính để giải toán ứng dụng vi nối kèm với máy tính thiết bị nhập, xuất liệu, hình, máy in, máy quét ảnh, loa, máy quan trắc chuyên dụng Sơ đồ khối máy tính Thông... F6.2) STOP END 5/10 Khái niệm lập trình máy tính để giải toán ứng dụng Bước 5: Trong bước ta thử chạy chương trình viết với tập số liệu thử cách tính tay mục Đầu hình máy tính phải sau: ***SORRY,

Ngày đăng: 29/12/2015, 10:08

Từ khóa liên quan

Mục lục

  • Khái niệm về lập trình máy tính để giải các bài toán ứng dụng

  • Phần cứng và phần mềm máy tính

  • Thực hiện một chương trình máy tính

  • Quy trình giải bài toán trên máy tính

  • Những chương trình Fortran hoàn chỉnh

  • Quy cách soạn thảo một chương trình Fortran

Tài liệu cùng người dùng

Tài liệu liên quan