Giáo trình ngôn ngữ lập trình pascal

140 209 0
Giáo trình ngôn ngữ lập trình pascal

Đ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

TRƢỜNG ĐẠI HỌC QUẢNG BÌNH ThS Lê Minh Thắng GIÁO TRÌNH NGÔN NGỮ LẬP TRÌNH PASCAL (DÀNH CHO CÁC LỚP CAO ĐẲNG CNTT) LƢU HÀNH NỘI BỘ QUẢNG BÌNH, 2016 NGÔN NGỮ LẬP TRÌNH PASCAL GIỚI THIỆU Ngôn ngữ Pascal ngôn ngữ lập trình cấp cao, ngôn ngữ lập trình mang tính cấu trúc định kiểu chặt chẽ Ngôn ngữ Pascal đƣợc sử dụng tƣơng đối phổ biến trƣờng học, đặc biệt bậc trung học đại học Ngôn ngữ lập trình Pascal sử dụng giảng dạy học tập nhằm rèn luyện, phát triển tƣ cho sinh viên phƣơng pháp lập trình, giúp cho sinh viên viết đƣợc chƣơng trình, giải toán cách rõ ràng, mạch lạc chạy đƣợc máy tính điện tử Giáo trình Ngôn ngữ lập trình Pascal không mục đích trên, nhằm cung cấp cho sinh viên kiến thức ngôn ngữ lập trình Pascal Giáo trình gồm có tất 11 chƣơng nhƣ sau: Chƣơng Mở đầu: Chƣơng Các thành phần ngôn ngữ Pascal Chƣơng Các kiểu liệu chuẩn Chƣơng Câu lệnh có cấu trúc điều khiển Chƣơng 5.Chƣơng trình Chƣơng Kiểu vô hƣớng: liệt kê & miền con, kiểu cấu trúc: tập hợp Chƣơng Kiểu mảng Chƣơng Kiểu chuỗi ký tự Chƣơng Kiểu ghi Chƣơng 10 Kiểu tập tin Chƣơng 11 Kiểu trỏ Giáo trình Ngôn ngữ lập trình Pascal đáp ứng phục vụ giảng dạy học tập cho hệ Cao đẳng chuyên ngành CNTT, Toán Tin, Lý Tin Trình bày chi tiết nhƣng ngắn gọn, phần trình bày nội dung lý thuyết luôn có câu hỏi, tập ví dụ minh họa Quá trình biên soạn Giáo trình, cố gắng tham khảo nhiều tài liệu để hoàn thiện Giáo trình, song không tránh khỏi thiếu sót, mong nhận đƣợc ý kiến đóng góp từ sinh viên, độc giả đồng nghiệp Xin chân thành cảm ơn Tác giả ThS Lê Minh Thắng ThS Lê Minh Thắng - Trường Đại học Quảng Bình CHƢƠNG MỞ ĐẦU GIỚI THIỆU NGÔN NGỮ PASCAL 1.1 Xuất xứ ngôn ngữ pascal Pascal ngôn ngữ lập trình cấp cao, giáo sƣ Niklaus Wirth trƣờng Đại học Zurich (Thuỵ Sĩ) thiết kế công bố vào năm 1971 Ông đặt tên cho ngôn ngữ Pascal để tƣởng nhớ đến nhà toán học tiếng Blaise Pascal ngƣời Pháp kỷ 17 * Turbo Pascal: Pascal ngôn ngữ chủ yếu dùng để dạy học, nhờ tính đa chặt chẽ nên ngày đƣợc nhiều ngƣời sử dụng Các hãng phần mềm dựa vào chuẩn mực ngôn ngữ để thêm bớt thƣơng mại hoá với nhiều loại khác nhau: - ISO Pascal: Pascal chuẩn ISO (International Standard Organization) - ANSI Pascal: Pascal Viện tiêu chuẩn Hoa Kỳ (American National Standard Institute) - Turbo Pascal: Pascal hãng Borland - IBM Pascal: Pascal trƣờng Đại học tổng hợp California San Diego - Pascal chạy máy tính VAX * Các phiên củaTurbo Pascal: - Version 5.0 5.5 năm 1989 hãng Borland - Version 6.0 - Version 7.0 năm 1992 (hiện sử dụng chủ yếu củaTurbo Pascal 7.0) 1.2 Đặc điểm ngôn ngữ Pascal - Ngôn ngữ có tính định kiểu chặt chẽ: biến, biểu thức phải có kiểu liệu Điều có nghĩa biến, có kiểu liệu khác phải chuyển đổi để có kiểu liệu - Ngôn ngữ mang tính cấu trúc: điểm giống với ngôn ngữ Algol ngôn ngữ C, Pascal có số đặc điểm riêng, tách liệu tác vụ (statement) cần dùng cho nhiệm vụ định thành khối riêng khối đƣợc tách khỏi phần lại chƣơng trình để ngƣời lập trình giải phần Ngôn ngữ Pascal, ngôn ngữ lập trình có tính cấu trúc thể mặt sau: + Cấu trúc mặt liệu: Từ liệu chuẩn hay liệu cấu trúc, ngƣời lập trình xây dựng kiểu liệu phức tạp + Cấu trúc mặt câu lệnh: Từ câu lệnh đơn hay câu lệnh cấu trúc ngƣời lập trình nhóm chúng lại với để đặt từ khoá BEGIN END thành câu lệnh phức tạp gọi câu lệnh phức hay câu lệnh ghép + Cấu trúc mặt chương trình: Một chƣơng trình chia thành nhiều chƣơng trình dƣới dạng thủ tục, hàm, đơn thể (modules), đơn vị NGÔN NGỮ LẬP TRÌNH PASCAL (Units) độc lập với chƣơng trình mà tƣơng tác chúng liệu đƣa vào nhận lại kết 1.3 Khởi động thoát khỏi Pascal * Khởi động Pascal: Trên môi trƣờng thực nhƣ sau: - Môi trƣờng MS-DOS: - C:\> CD BP\BIN  (Turbo Pascal 7.0) - C:\ BP\BIN>Turbo  - Môi trƣờng Windows: Kích đúp vào biểu tƣợng: Turbo Pascal * Thoát khỏi Pascal: - Môi trƣờng MS-DOS: chọn hai cách sau: + Cách 1: Nhấn tổ hợp phím Alt +X + Cách 2: Chọn F10 ( Alt+F), sau chọn =>File => Exit - Môi trƣờng Windows: + Cách 1: Alt +F4 + Cách 2: chọn File => Exit THUẬT TOÁN (Algorithm) 2.1 Khái niệm thuật toán Thuật toán dãy câu lệnh chặt chẽ rõ ràng xác định trình tự thao tác số đối tƣợng cho sau số hữu hạn bƣớc thực ta đạt đƣợc kết mong muốn Lƣu ý kết thuật toán không phụ thuộc vào ngƣời thực 2.2 Các tính chất thuật toán - Tính phổ dụng: Thuật toán không để giải toán riêng lẻ mà đƣợc dùng để giải lớp toán (có thể vô hạn) toán loại Tính hữu hạn: Thuật toán phải đƣợc kết thúc sau số hữu hạn bƣớc thực thao tác Một thuật toán tính hữu hạn không khả thi - Tính xác định: Thuật toán đòi hỏi bƣớc thao tác phải rõ ràng xác định cách đơn trị bƣớc - Tính hiệu quả: thể yêu cầu sau: + Tính đắn + Tính tối ƣu: tiết kiệm thời gian thực hiện, tiết kiệm nhớ 2.3 Các đại lƣợng thuật toán - Đại lượng vào: đại lƣợng cho trƣớc làm sở cho việc hình thành nên toán - Đại lượng ra: thƣờng kết sau thực xong thuật toán yêu cầu toán - Đại lượng trung gian: đại lƣợng tham gia vào trình để giải toán nhƣng đại lƣợng vào mà đại lƣợng ThS Lê Minh Thắng - Trường Đại học Quảng Bình NGÔN NGỮ LẬP TRÌNH PASCAL Ví dụ: toán giải phƣơng trình bậc 2: ax2 + bx + c = (a≠0) Đại lƣợng vào hệ số a,b,c Đại lƣợng là: nghiệm kép, nghiệm phân biệt câu thông báo vô nghiệm Đại lƣợng trung gian: delta = b2 - 4ac - Hằng, biến, kiểu: Để biểu diễn đại lƣợng thuật toán ta cần sử dụng hằng, biến phải có kiểu liệu định + Hằng: đại lƣợng không thay đổi trình thực thuật toán + Biến: đại lƣợng thay đổi giá trị trình thực thuật toán + Kiểu: tập hợp giá trị (miền trị) mà đại lƣợng nhận, đồng thời với việc quy định phép toán tác động 2.4 Biểu diễn thuật toán [1], [2] 2.4.1 Các dạng biểu diễn thuật toán Để biểu diễn thuật toán, thực theo dạng sau: - Liệt kê bƣớc - Cấu trúc theo ngôn ngữ quy ƣớc thuật toán - Sơ đồ khối (lƣu đồ) 2.4.2 Biểu diễn thuật toán sơ đồ khối Đây dạng biểu diễn có cấu trúc trực quan, rõ ràng * Các kí hiệu dùng để biểu diễn thuật toán: Dùng để bắt đầu, kết thúc thuật toán Dùng để việc nhập liệu xuất liệu Dùng để biểu diễn thao tác thuật toán (tính toán) Dùng để kiểm tra điều kiện (quyết định) Dùng để hƣớng thuật toán (lƣu đồ) Ngoài ra, sử dụng ký hiệu : = để biểu diễn cho việc gán giá trị cho biến Ví dụ, vẽ sơ đồ thuật toán để tìm ƣớc số chung lớn số nguyên dƣơng m n Dữ liệu vào: m,n Dữ liệu ra: ƣớc số chung lớn số ThS Lê Minh Thắng - Trường Đại học Quảng Bình NGÔN NGỮ LẬP TRÌNH PASCAL Lƣu đồ thuật toán: Begin m,n False mn True True m>n False m:=m-n USCLN:=m n:=n-m End KHÁI NIỆM VỀ LẬP TRÌNH CẤU TRÚC  Tổ chức chương trình: Tổ chức chƣơng trình thành hệ phân cấp phải điều khiển mối tƣơng tác thành phần hệ cho mức tƣơng tác tối thiệu Có thể minh hoạ cách tổ chức chƣơng trình tƣơng tự sơ đồ dƣới đây: Thành phố Huyện Quận Phƣờng Quận Phƣờng Huyện Xã Xã Sự phân chia thành phần hệ thành phần cấp thấp phân chia đƣợc thành phần cấp thấp thành phần Mỗi thành phần hệ nên thiết kế lập mối tƣơng tác tối thiểu lên thành phần khác cho giao tiếp rõ ràng kiểm soát đƣợc Ý tƣởng lập trình cấu trúc “chia toán phức tạp thành toán đơn giản”  Trình tự: lập trình cấu trúc lập trình từ xuống Từ trƣớc tới có hai cách lập trình: - Lập trình từ lên: xây dựng vấn đề cụ thể sau ghép nối lại với để trở thành toán lớn Cách có nhƣợc điểm hình ThS Lê Minh Thắng - Trường Đại học Quảng Bình NGÔN NGỮ LẬP TRÌNH PASCAL dung đƣợc tính tổng quát toán - Lập trình từ xuống: lập trình từ xuống cách phân tích tổng quát toán sau giải vấn đề cụ thể  Không cần lệnh Goto: lập trình không cần đến câu lệnh Goto để rẽ nhánh chƣơng trình Câu lệnh Goto làm cho chƣơng trình rƣờm rà, khó hiểu, khó đọc, khó kiểm soát  Sự biến đổi: lập trình cấu trúc cho phép biến đổi toán có sơ đồ khối lớn, phức tạp thành sơ đồ khối nhỏ dạng chuẩn cho chúng diễn đạt đƣợc số cấu trúc điều khiển  Chương trình rõ ràng, sáng sủa: lập trình theo từ xuống, kết hợp với thích, nên dễ dàng kiểm tra tính đắn chƣơng trình Với ý tƣởng này, viết chƣơng trình, thân toát lên câu hỏi trả lời: “Làm ? Làm nhƣ ? Tại sao" CÁC BƢỚC LẬP TRÌNH Để lập chƣơng trình cho máy tính gồm bƣớc sau:  Bước 1: Tìm hiểu mục đích, yêu cầu toán Để giải toán cần trƣớc hết phải tìm hiểu mục đích, yêu cầu toán Sau nắm nội dung toán, ngƣời lập trình dễ dàng tìm đƣợc phƣơng pháp, công cụ để giải toán  Bước 2: Mô tả giải thuật vẽ lưu đồ Sau tìm hiểu mục đích, yêu cầu toán, sử dụng ngôn ngữ toán học để diễn đạt ý tƣởng Trong lập trình cần thiết sử dụng ngôn ngữ giải thuật, sau vẽ lƣu đồ để mô giải thuật thứ tự bƣớc cần thực  Bước 3: Viết chương trình Sau phân tích, thiết kế giai đoạn, mô tả giải thuật vẽ lƣu đồ, ta dùng ngôn ngữ lập trình để viết chƣơng trình chạy máy tính  Bước 4: Nhập chạy thử chương trình Gõ nội dung chƣơng trình vào máy tính tiến hành chạy thử, ý lỗi tả cú pháp câu lệnh ngôn ngữ  Bước 5: Sửa chữa chương trình kiểm tra kết Khi chạy chƣơng trình, có lỗi, hệ thống thông báo kiểu lỗi vị trí có lỗi hình, sửa lỗi Khi chƣơng trình chạy thông suốt, cần kiểm tra kết chƣơng trình Kiểm tra thứ tự ƣu tiên tính toán biểu thức, thƣờng dễ dẫn đến sai kết  Bước 6: ứng dụng bảo quản chương trình Sau kiểm tra chƣơng trình, sai sót, đƣợc ứng dụng, đồng thời lƣu bảo quản chƣơng trình nguồn đảm bảo an toàn Trong trình sử dụng muốn bổ sung thay đổi, cần hiệu chỉnh lại chƣơng trình nguồn để đáp ứng yêu cầu cần thiết ThS Lê Minh Thắng - Trường Đại học Quảng Bình NGÔN NGỮ LẬP TRÌNH PASCAL CÂU HỎI, BÀI TẬP Trình bày thuật toán phƣơng pháp vẽ sơ đồ khối để giải toán sau đây: Tính tổng S= + + + + n (Với n nguyên dƣơng không dùng công thức S=n(n+1)/2) Tính tổng S = * * * * n (dấu * ký hiệu cho phép nhân) Tính tổng S = + * + 1*2*3 + + 1*2*3* *n Tìm số lớn số nguyên nhập vào từ bàn phím Tìm ƣớc số chung lớn số nguyên dƣơng Tìm tất số nguyên tố số nguyên từ đến n (n>=3) Tính tổng số nguyên dƣơng nhập vào từ bàn phím ThS Lê Minh Thắng - Trường Đại học Quảng Bình NGÔN NGỮ LẬP TRÌNH PASCAL Chƣơng CÁC THÀNH PHẦN CỦA NGÔN NGỮ PASCAL CÁC KÝ HIỆU VÀ TỪ KHOÁ PASCAL 1.1 Bộ ký tự Bộ ký tự gồm loại sau: - Các chữ cái: a z; A Z - Các ký tự số: - Các dấu toán: + - * / ^ = > < - Các ký tự đặc biệt: ? ; : ! [ ] { } # $ @ - Dấu gạch nối:_ - Dấu ngăn cách: ký tự trống, dấu nháy đơn: ' ' - Các ký tự điều khiển 1.2 Từ từ khoá Mỗi ngôn ngữ lập trình có từ khoá - Từ: dãy liên tiếp ký tự không chứa ký tự trắng ký tự điều khiển - Từ khóa: từ dành riêng Pascal với chức cú pháp đƣợc quy định sẵn Vì sử dụng từ khoá cần phải theo quy định Ví dụ từ khoá: Begin, end, if, then, const, var, function, 1.3 Các tên chuẩn tên tự đặt - Tên chuẩn : Trong ngôn ngữ Pascal đƣợc thiết lập danh sách tên chuẩn cho kiểu liệu, biến, thủ tục hàm định sẵn thƣ viện chuẩn Chú ý: Turbo Pascal cho phép ngƣời dùng định nghĩa lại tên chuẩn để dùng vào công việc khác - Tên tự đặt: Các tên tự đặt dùng để hằng, kiểu, biến, hàm, thủ tục, unit, tên chƣơng trình, trƣờng kiểu ghi Tên có chiều dài tuỳ ý nhƣng giới hạn chiều dài dòng 127 ký tự Tuy nhiên có 63 ký tự có ý nghĩa Tên phải bắt đầu chữ cái, ký tự khác không đƣợc dùng ký tự trắng ký tự đặc biệt Tốt nên dùng ký tự chữ cái, chữ số dấu gạch dƣới Tên ngƣời sử dụng đặt, nhƣng đặt tên không đƣợc trùng với từ khoá Tên không hợp lệ Tên hợp lệ So nguyen Songuyen / so_nguyen 1so So1 / so_1 Program So hoc; Program sohoc;/ Program So_hoc; Danh sach Danhsach / Danh_sach ThS Lê Minh Thắng - Trường Đại học Quảng Bình NGÔN NGỮ LẬP TRÌNH PASCAL CẤU TRÚC CHUNG CỦA MỘT CHƢƠNG TRÌNH PASCAL 2.1 Cấu trúc chung chƣơng trình Một chƣơng trình Turbo Pascal gồm phần - Tiêu đề - Khai báo định nghĩa - Thân chƣơng trình Chi tiết phần nhƣ sau: Program Tên chƣơng trình; } Tiêu đề: Uses Các đơn vị chƣơng trình; Const Định nghĩa hằng; Type Định nghĩa kiểu liệu ngƣời dùng; Các khai báo & định nghĩa Var Khai báo biến toàn cục; Procedure Xây dựng thủ tục; Function Xây dựng hàm; Begin Các câu lệnh; Thân chƣơng trình 10 End * Phần tiêu đề: Từ khóa để khai báo Program, tiếp sau tên chƣơng trình ngƣời dùng từ đặt, sau tên dấu ";" Tên có tác dụng gợi nhớ đến nội dung chƣơng trình Tuy nhiên phần không bắt buộc phải có (Lƣu ý: tên chƣơng trình phải theo quy cách tên Turbo Pascal) * Phần khai báo định nghĩa: Uses: Dùng để khai báo Unit (đơn vị chƣơng trình) Turbo Pascal Nếu có nhiều unit sử dụng dấu phẩy " , " để ngăn cách Const: Dùng để khai báo Cú pháp: Tên_hằng = Giá trị; Type: Dùng để định nghĩa kiểu liệu ngƣời dùng Cú pháp: Tên _kiểu = định nghĩa cụ thể cho kiểu; Var: Khai báo biến Cú pháp: Tên_ biến : Kiểu liệu; (Hoặc khai báo trực tiếp không thông qua kiểu Type.) Nếu có nhiều biến kiểu sử dụng dấu phẩy " , " để ngăn cách Procedure: Định nghĩa chƣơng trình dạng thủ tục Function: Định nghĩa chƣơng trình dạng hàm Lưu ý: Tùy chƣơng trình cụ thể mà chƣơng trình có phần khai báo định nghĩa phù hợp, có chƣơng trình có phần khai báo, định nghĩa mà khai báo, định nghĩa ngƣợc lại, chí có chƣơng trình không cần đến khai báo hay định nghĩa ThS Lê Minh Thắng - Trường Đại học Quảng Bình NGÔN NGỮ LẬP TRÌNH PASCAL Câu 2: a b c Program Tinhtong; Var i,n:byte; a:Array[1 100] Of Integer; Begin Write(' Nhap so phan tu Mang : '); Readln(n); For i:=1 To n Do Begin Write('-Phan tu A[',i,']= '); Readln(a[i]); End; Write('Tim thay the phan tu bang chi so: '); For i:=1 to n Do If a[i]

Ngày đăng: 24/08/2017, 10:02

Từ khóa liên quan

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

Tài liệu liên quan