Giáo trình môn lập trình Pascal

61 231 0
Giáo trình môn 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

MỤC LỤC Chương Làm quen ngôn ngữ lập trình Pascal .2 Giới thiệu khái niệm lập trình 1.1 Ngơn ngữ Pascal 1.2 Turbo Pascal Làm quen môi trường phát triển phần mềm 2.1 Khởi động Turbo Pascal 2.2 Các thao tác thường sử dụng Turbo Pascal Chương Các thành phần Hệ thống từ khóa kí hiệu dùng ngơn ngữ lập trình 1.1 Bộ chữ viết 1.2 Từ khóa .8 1.3 Tên .9 Các kiểu liệu bản: kiểu số, ký tự, chuỗi, 10 2.1 Kiểu Logic 10 2.2 Kiểu số nguyên 10 Hằng, biến, hàm, phép toán biểu thức 13 3.1 Khai báo .13 3.2 Khai báo biến .13 3.3 Định nghĩa kiểu: 14 3.4 Biểu thức 14 Các lệnh, khối lệnh 15 4.1 Câu lệnh đơn giản 15 4.2 Câu lệnh có cấu trúc 15 4.3 Các lệnh nhập xuất liệu 15 Thực thi chương trình, nhập liệu, nhận kết 17 5.1 Các bước lập chương trình Pascal .17 5.2 Cấu trúc chung chương trình Pascal 17 Chương 20 Các cấu trúc điều khiển 20 Các lệnh cấu trúc lựa chọn 20 1.1 Lệnh cấu trúc rẽ nhánh 20 1.2 Lệnh cấu trúc lựa chọn 21 1.3 Các lệnh vòng lặp 24 Lệnh lặp với số lần lặp không xác định 27 2.1 Dạng 1: 27 2.2 Dạng 2: 28 Chương 31 Hàm thủ tục .31 Khái niệm chương trình .31 Các hàm thủ tục ngơn ngữ lập trình 32 2.1 Hàm (Function) 32 2.2 Thủ tục (Procedure) .36 Tham trị tham biến .37 Sự hoạt động chương trình gọi bố trí biến 39 VẤN ĐỀ TRUYỀN THAM SỐ KHI GỌI CHƯƠNG TRÌNH CON 40 Chương 44 Dữ liệu kiểu tập hợp, mảng ghi 44 Kiểu tập hợp, phép toán tập hợp 44 1.1 Định nghĩa khai báo 44 1.2 Mô tả tập hợp phép toán tập hợp .44 1.3 Viết đọc liệu tập hợp 47 Khái niệm mảng, khai báo mảng, gán giá trị 48 2.1 Khái niệm 48 2.2 Mảng chiều 48 2.3 Mảng nhiều chiều 50 Kiểu ghi 52 3.1 Khái niệm khai báo 52 3.2 Truy xuất ghi 53 3.3 Câu lệnh With … .54 Chương 56 Dữ liệu kiểu chuỗi 56 Khai báo 56 Các thao tác chuỗi 56 2.1 Các phép toán hàm kiểu chuỗi .56 2.2 Truy xuất ký tự chuỗi 61 Chương Làm quen ngơn ngữ lập trình Pascal Giới thiệu khái niệm lập trình 1.1 Ngơn ngữ Pascal Vào đầu năm 1970 nhu cầu học tập sinh viên, giáo sư Niklaus Writh - Trường Đại Học Kỹ Thuật Zurich - Thụy Sĩ sáng tác ngơn ngữ lập trình cấp cao cho cơng tác giảng dạy sinh viên Ngôn ngữ đặt tên PASCAL để tưởng nhớ đến nhà toán học người Pháp Blaise Pascal Pascal ngơn ngữ lập trình có cấu trúc thể phương diện - Về mặt liệu: Ngoài kiểu liệu đơn giản có kiểu liệu có cấu trúc Ta xây dựng kiểu liệu phức tạp từ kiểu liệu có - Về mặt câu lệnh: Từ câu lệnh đơn giản lệnh có cấu trúc ta xây dựng câu lệnh hợp thành - Về mặt chương trình: Một chương trình chia làm nhiều chương trình 1.2 Turbo Pascal Khi đời, Standart Pascal ngôn ngữ đơn giản, dùng để giảng dạy học tập, ưu điểm phát huy trở thành ngôn ngữ mạnh Từ Pascal chuẩn ban đầu, nhiều công ty phần mềm cải tiến với nhiều thêm bớt khác TURBO PASCAL sản phẩm hãng Borland dùng phổ biến giới ưu điểm như: tốc độ nhanh, cải tiến so với Pascal chuẩn phù hợp với yêu cầu người dùng TURBO PASCAL 4.0 trở có cải tiến quan trọng đưa khái niệm Unit để dịch sẵn Module đĩa, làm cho việc lập trình trở nên ngắn gọn, dễ dàng, chương trình viết dễ hiểu Từ phiên 5.5 (ra đời năm 1989) trở đi, Turbo Pascal có kiểu liệu hồn tồn kiểu Object cho phép đưa mã lệnh xen kẽ với liệu Ngồi thư viện đồ hoạ phong phú với nhiều tính mạnh, ngơn ngữ lập trình cấp cao Delphi sử dụng cú pháp tương tự Turbo Pascal Turbo Pascal 7.0 phiên cuối Borland Sau phiên hãng Borland chuyển sang Pascal For Windows thời gian ngắn sản xuất DELPHI Turbo Pascal 7.0 hỗ trợ mạnh mẽ lập trình hướng đối tượng có nhược điểm bị lỗi “Devide by zero” tất máy có xung nhịp lớn 300 MHz Giải vấn đề có hai phương án: a Cập nhật file TURBO.TPL thư mục \BP\BIN b Sử dụng Free Pascal Ngoài nên lưu ý Turbo Pascal chạy chế độ thực (real mode) nên chạy Windows XP hay khởi động lại máy Nên chạy Borland Pascal Khi Windows tạo môi trường DOS giả lập chạy chế độ đa nhiệm tiện lợi Làm quen môi trường phát triển phần mềm 2.1 Khởi động Turbo Pascal Nếu máy tính cài đặt Turbo Pascal đĩa, ta khởi động chúng sau (Nếu máy tính chưa có, phải cài đặt Turbo Pascal sau thực thi được) - Từ MS-DOS: Đảm bảo thư mục hành vị trí cài đặt (hoặc dùng lệnh PATH) Turbo Pascal Ta đánh vào TURBO Enter - Từ Windows: Ta nên giả lập MS-DOS Mode cho tập tin TURBO.EXE Shortcut nó, khơng ta thực thi TURBO PASCAL chương trình khỏi Windows, trở MS-DOS Sau thoát Turbo Pascal ta phải đánh lệnh EXIT để khởi động lại Windows Cách giả lập sau: · Nhắp chuột phải lên tập tin TURBO.EXE Shortcut nó, chọn Properties · Chọn thẻ Program đánh check hình sau Chọn OK hộp thoại, sau khởi động Turbo Pascal, hình soạn thảo sau khởi động TURBO PASCAL xuất Cài đặt sử dụng Borland Pascal 7.0: Gói cài đặt Borland Pascal thường đặt thư mục BP70 Mở thư mục chạy file cài đặt INSTALL.EXE Làm theo hướng dẫn q trình cài đặt Thơng thường sau cài đặt xong, chương trình đặt C:\BP Hãy vào C:\BP\BIN để cập nhật lại file Turbo.tpl (Chép đè file tên thư mục \BP70\Huongdan\ lên file này) Thay chạy TURBO PASCAL (File thực thi: BP\BIN\Turbo.exe) tạo Shorcut chạy BORLAND PASCAL (File thực thi: BP\BIN\BP.exe) Các thao tác sử dụng Borland Pascal hoàn toàn giống với thao tác Turbo Pascal nói 2.2 Các thao tác thường sử dụng Turbo Pascal Khi ta muốn tạo mở tập tin có đĩa ta dùng phím F3 Sau đưa vào tên vị trí tập tin Nếu tập tin tồn Turbo Pascal mở nội dung lên cho ta xem, tên tập tin chưa có Turbo Pascal tạo tập tin (với tên mà ta định) Khi muốn lưu lại tập tin ta dùng phím F2 Trước khỏi chương trình, ta nên lưu tập tin lại, chưa lưu chương trình hỏi ta có lưu tập tin lại hay khơng Nếu ta chọn Yes (ấn phím Y) chương trình lưu lại, chọn No (ấn phím N) chương trình khơng lưu Một số phím thông dụng TURBO PASCAL 7.0 Chương Các thành phần Hệ thống từ khóa kí hiệu dùng ngơn ngữ lập trình 1.1 Bộ chữ viết Bộ chữ ngôn ngữ Pascal gồm: · 26 chữ la tinh lớn: A, B, C… Z · 26 chữ la tinh nhỏ: a, b, c, … z · Dấu gạch _ (đánh vào cách kết hợp phím Shift với dấu trừ) · Bộ chữ số thập phân: 0, 1, 2, 3, 4, 5, 6, 7, 8, · Các ký hiệu toán học: +, -, *, /, =, , (, ) · Các ký hiệu đặc biệt: , : ; [ ] ? % @ \ | ! # $ { } · Dấu khoảng cách (khoảng trắng – Space) 1.2 Từ khóa Các từ khố từ dành riêng (reserved words) Pascal mà người lập trình sử dụng chúng chương trình để thiết kế chương trình Khơng dùng từ khố để đặt cho tên riêng tên biến, tên kiểu, tên hàm… Một số từ khoá Pascal gồm: - Phép so sánh = B cho kết True phần tử B có A 1.3 Viết đọc liệu tập hợp Đối với liệu kiểu tập hợp ta viết đọc vào lệnh Read, Readln, Write, Writeln Tuy nhiên ta lập trình thực thao tác Ví dụ sau nhập vào tập hợp kiểu Char in lên hình tập hợp vừa nhập Type CHUCAI = SET OF CHAR; Var cc: CHUCAI; i, n: Integer; ch: Char; Begin Write(‘ Tập hợp có phần tử? ‘); Readln(n); cc := []; For i := to n Begin Write(‘ Phần tử thứ ‘ ,i, ’ là: ’); Readln(ch); cc:= cc + [ch]; End; Writeln(‘Các phần tử tập hợp bạn vừa nhập’); For ch := ‘A’ to ‘z’ If ch IN cc then Write(ch: 5); Readln; End Khái niệm mảng, khai báo mảng, gán giá trị 2.1 Khái niệm Mảng (Array) tập hợp phần tử cố định có kiểu gọi kiểu phần tử Kiểu phần tử kiểu vô hướng, kiểu String, kiểu tập hợp, kiểu Record Đôi ta dùng mảng để làm kiểu phần tử cho mảng, trường hợp gọi mảng mảng 2.2 Mảng chiều 2.2.1 Khai báo: Tập số phải kiểu miền con, kiểu vô hướng liệt kê, kiểu char kiểu boolean Tuy nhiên người ta thường dùng kiểu miền số nguyên dễ hình dung gần giống với khái niệm số tốn học Có hai cách khai báo khai báo gián tiếp khai báo trực tiếp Type Vector = Array[1 10] of Integer; Var vt: Vector ; Hoặc ta khai báo sau: Var vt: Array[1 10] of Integer; Ta thấy cách cách khai báo trực tiếp ngắn hơn, số trường hợp lại bất tiện, chí khơng sử dụng truyền tham số cho chương trình Ta lấy ví dụ sau: Procedure THUTUC(A: Array[1 20] of Integer); Thủ tục sai ta khơng thể truyền tham số cho Ta phải viết: Type MANG = Array[1 20] of Integer; Procedure THUTUC(A: MANG); 2.2.2 Truy xuất phần tử mảng Mỗi phần tử mảng truy xuất thông qua tên biến mảng với số mảng cặp dấu [] Ta xét ví dụ Khai báo hình ảnh diễn giải đây, giúp dễ hiểu Type MANG = Array[1 10] of Integer; Var A: MANG; Ví dụ: Viết chương trình nhập vào mảng in mảng sau xắp xếp phần tử mảng tăng dần Uses Crt; Type MANG = Array[1 50] of Integer; Var A: MANG; i, j, n, tam: Integer; Begin Write(‘Bạn nhập phần tử: ’); Readln(n); {Nhập n phần tử} For i := to n Begin Write(‘Phần tử ‘ , i , ’ là: ’); Readln(A[i]); End; {Sắp xếp tăng dần} For i := to n-1 For j := i + to n If A[i] > A[j] then Begin tam := A[i]; A[i] := A[j]; A[j] := tam; End; {In phần tử mảng ra} For i:=1 to n Write(A[i]:10); Readln; End Chú ý: Hai mảng A B có số phần tử kiểu phần tử, ta thay tồn phần tử A phần tử tương ứng B phép gán A := B 2.3 Mảng nhiều chiều 2.3.1 Khai báo Ví dụ ta khai báo: Type MANG = Array[1 20,1 20] of Integer; Var A: MANG; Hoặc khai báo: Var A: Array[1 20,1 20] of Integer; Mảng hai chiều khai báo mảng chiều mảng chiều, ta khai báo nhưu sau: Type KieuPhantu = Array[1 20] of Integer; Var A: Array[1 20] of KieuPhantu; 2.3.2 Truy xuất phần tử mảng Mảng hai chiều tổ chức ma trận, phần tử ma trận tương tự phần tử mảng hai chiều Ta truy xuất phần tử mảng hai chiều thông qua tên biến, theo sau cặp số cách dấu , (phẩy) hai cặp dấu [][] Ví dụ: A[3,2] A[2][3] Ta hình dung mảng A: Array[1 4, 5] sau Ví dụ: Nhập vào ma trận số nguyên in ma trận theo dạng tốn học Type MANG = Array[1 20,1 20] of Integer; Var A: MANG; i, j, n, m: Integer; Begin Write(‘Ma trận có dòng: ’); Readln(n); Write(‘Ma trận có cột: ’); Readln(m); {Nhập vào mảng hai chiều} For i := to n For j := to m Begin Write(‘Phần tử A[ ‘ ,i, ’ , ‘ ,j, ’] là: ’); Readln(A[ i , j ]); End; {In phần tử ma trận} For i := to n Begin For j := to m Write(A[i,j]:10); Writeln; End; Readln; End Kiểu ghi 3.1 Khái niệm khai báo Chúng ta học cấu trúc liệu mảng (Array), tập hợp (Set) Các kiểu liệu tập hợp có kiểu kả sử dụng kiểu liệu hạn chế Vấn đề đặt có kiểu cấu trúc liệu có nhiều phần tử khác kiểu lại liên quan đến nhau, người ta định nghĩa kiểu mẩu tin (RECORD) để đáp ứng vấn đề Cấu trúc liệu kiểu RECORD gắn liền với cấu trúc liệu kiểu FILE (được trình bày chương sau) để lưu trữ liệu Dĩ nhiên Pascal cho phép sử dụng RECORD độc lập với FILE Khai báo liệu kiểu RECORD bắt đầu chữ RECORD danh sách phần tử Record gọi trường (Fields), trường có tên trường, kiểu trường Kết thúc khai báo Record tìư khố END; (End chấm phẩy) Ta xem cú pháp khai báo Ta xét ví dụ Khai báo Record thuộc tính học sinh Type HOCSINH = RECORD Holot: String[30]; Ten: String[10]; Lop: Byte; Diachi: String; END; Var hsa, hsb, hsc: HOCSINH; Lop10A: Array[1 50] of HOCSINH; 3.2 Truy xuất ghi Để truy xuất trường Record, ta cần dùng tên biến kiểu Record sau dấu (chấm) đến trường Ví dụ ta nhập vào in thuộc tính học sinh a (hsa) khai báo Type HOCSINH = RECORD Holot: String[30]; Ten: String[10]; Lop: Byte; Diachi: String; END; Var hsa: HOCSINH; Begin Write(‘ Nhập vào họ chữ lót: ‘); Readln(hsa.Holot); Write(‘ Nhập vào tên: ‘); Readln(hsa.Ten); Write(‘ Nhập vào lớp: ‘); Readln(hsa.Lop); Write(‘ Nhập vào địa chỉ: ‘); Readln(hsa.Diachi); Writeln(‘ Thông tin học sinh bạn vừa nhập ’); Writeln(‘ Họ tên: ’ , hsa Holot,’ ‘, hsa.Ten); Writeln(‘ Lớp: ’ , hsa.Lop); Writeln(‘ Địa chỉ: ’ , hsa.Diachi); Readln; End Ta lưu ý lệnh hsb := hsa chép toàn hsa vào hsb Đây việc truy xuất vào tồn biến kiểu Record khơng riêng lẻ trường 3.3 Câu lệnh With … Như ta thấy việc truy xuất trường biến kiểu Record phải thông qua tên dấu chấm, làm phức tạp thêm chương trình, giải bớt phần hức tạp này, Pascal đưa câu lệnh With … ta viết chương trình nhập học sinh lớp 10A khai báo trên, có dùng lệnh With … Var Lop10A: Array[1 50] of HOCSINH; i, n: Integer; Begin Write(‘ Lớp có học sinh? ‘); Readln(n); For i:=1 to n With Lop10A[i] Begin Write(‘ Nhập họ chữ lót: ‘); Readln(Holot); Write(‘ Nhập vào tên: ‘); Readln(Ten); Write(‘ Nhập vào lớp: ‘); Readln(Lop); Write(‘ Nhập vào địa chỉ: ‘); Readln(Diachi); End; Writeln(‘ Thông tin học sinh bạn vừa nhập ’); For i:=1 to n With Lop10A[i] Begin Writeln(‘ Họ tên: ’ , Holot,’ ‘, Ten); Writeln(‘ Lớp: ’ , Lop); Writeln(‘ Địa chỉ: ’ , Diachi); End; Readln; End Chương Dữ liệu kiểu chuỗi Khai báo Khai báo kiểu String (chuỗi) có hai cách khai báo gián tiếp (khai báo kiểu khai báo biến) khai báo trực tiếp Độ dài tối đa biến kiểu String 255 ký tự, nhiên ta giảm độ dài tối đa chuỗi khai báo biến để tiết kiệm ô nhớ Việc khai báo thực Khai báo gián tiếp Type KIEU = String[20]; {Độ dài tối đa 20} Var st: KIEU; Khai báo trực tiếp Var st: String[20]; {Độ dài tối đa 20} maxst: String; {Độ dài tối đa 255} Các thao tác chuỗi 2.1 Các phép toán hàm kiểu chuỗi a Phép gán: Phép gán tiến hành bình thường phép gán kiểu vô hướng khác Tuy nhiên cần lưu ý String nằm cặp dấu ‘ ’ (nháy đơn) Ví dụ: Hoten := ‘Nguyễn Văn Thành’; b Phép cộng Là phép ghép chuỗi thứ với chuỗi thứ hai Ví dụ: Hoten := ‘Nguyễn Văn ’ + ‘Thành’; c So sánh chuỗi Khi so sánh hai chuỗi ký tự ký tự so sánh cặp trái qua phải theo bảng mã ASCII Các khả xảy sau: - Hai chuỗi hồn tồn giống (‘ABC’=’ABC’) - Tính từ trái qua phải, chuỗi có ký tự khác nhỏ nhỏ (‘ABCDEF’

Ngày đăng: 09/06/2018, 22:01

Từ khóa liên quan

Mục lục

  • Chương 1

  • Làm quen ngôn ngữ lập trình Pascal

    • 1. Giới thiệu các khái niệm cơ bản về lập trình

      • 1.1. Ngôn ngữ Pascal

      • 1.2. Turbo Pascal

      • 2. Làm quen môi trường phát triển phần mềm

        • 2.1. Khởi động Turbo Pascal

        • 2.2. Các thao tác thường sử dụng trên Turbo Pascal

        • Chương 2

        • Các thành phần cơ bản

          • 1. Hệ thống từ khóa và kí hiệu được dùng trong ngôn ngữ lập trình

            • 1.1. Bộ chữ viết

            • 1.2. Từ khóa

            • 1.3. Tên

            • 2. Các kiểu dữ liệu cơ bản: kiểu số, ký tự, chuỗi, ...

              • 2.1. Kiểu Logic

              • 2.2. Kiểu số nguyên

              • 3. Hằng, biến, hàm, các phép toán và biểu thức

                • 3.1. Khai báo hằng

                • 3.2. Khai báo biến

                • 3.3. Định nghĩa kiểu:

                • 3.4. Biểu thức

                • 4. Các lệnh, khối lệnh

                  • 4.1. Câu lệnh đơn giản

                  • 4.2. Câu lệnh có cấu trúc

                  • 4.3. Các lệnh nhập xuất dữ liệu

                  • 5. Thực thi chương trình, nhập dữ liệu, nhận kết quả

                    • 5.1. Các bước cơ bản khi lập một chương trình Pascal

                    • 5.2. Cấu trúc chung của một chương trình Pascal

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

  • Đang cập nhật ...

Tài liệu liên quan