Bài giảng Nhập môn tin học: Phần 2 - Pascal căn bản với mục tiêu giới thiệu khái niệm cơ bản về lập trình trên máy tính bằng ngôn ngữ Pascal; cung cấp cơ sở lý thuyết và kỹ năng cơ bản về lập trình cho các môn học sau.
Phần PASCAL CĂN BẢN ThS Trương Vĩnh Hảo haotruongvinh@yahoo.com www.dtvc.edu.vn/?tvhao Giới thiệu Mục tiêu – Giới thiệu khái niệm lập trình máy tính ngôn ngữ PASCAL – Cung cấp sở lý thuyết kỹ lập trình cho môn học sau Nội dung – Sơ lược ngơn ngữ lập trình – Ngơn ngữ minh họa Pseudo code Pascal – Các giải thuật www.dtvc.edu.vn/?tvhao Trang Ngơn ngữ lập trình Ngơn ngữ lập trình – Phương tiện để viết chương trình cho máy tính – Hàng trăm ngơn ngữ lập trình khác – Những quy định cú pháp (syntax) & ngữ nghĩa (semantic) – Máy tính hiểu Phân chia làm nhóm – Ngơn ngữ máy - Machine languages Ngôn ngữ máy tính - CPU – Hợp ngữ - Assembly languages – Ngôn ngữ cấp cao - High-level languages www.dtvc.edu.vn/?tvhao Trang Ngôn ngữ máy - Machine languages Ngôn ngữ máy tính (CPU) hiểu trực tiếp Được xác định tập lệnh CPU – – – – Phụ thuộc vào máy tính cụ thể Dạng nhị phân {0,1}* Rất khó đọc hiểu Khó có khả viết chương trình trực tiếp Khó nhớ hàng chục ngàn lệnh dạng {0,1}* Rất khó xác định & sửa lỗi Không sử dụng thực tế để viết chương trình Nền tảng xây dựng hợp ngữ www.dtvc.edu.vn/?tvhao Trang Hợp ngữ - Assembly Languages Sử dụng từ khóa tiếng Anh cho lệnh hay nhóm lệnh mã máy Được dịch sang mã máy thực Chuyển đỗi nhanh chóng Dễ đọc dễ hiểu Vẫn tương đối khó sử dụng – Các lệnh cịn đơn giản nên phải dùng nhiều lệnh – Chưa có cấu trúc điều khiển thuận tiện – Khả tìm sửa lỗi chưa thuận tiện Nền tảng xây dựng ngôn ngữ cấp cao www.dtvc.edu.vn/?tvhao Trang Ngôn ngữ cấp cao Một câu lệnh diễn tả nhiều động thái Có cấu trúc ngày giống ngơn ngữ tự nhiên (tiếng Anh) Được dịch sang assembly hay mã máy chương trình dịch trước thực thi – Source code & Executed code Được phân làm nhiều lớp – – – – Lập trình goto Lập trình cấu trúc – Structured Lập trình hướng đối tượng – Object Oriented Các dạng khác www.dtvc.edu.vn/?tvhao Trang Học ngơn ngữ lập trình Học ngữ pháp – Quy tắc ngữ pháp – Từ vựng – Cấu trúc câu Ngữ nghĩa lệnh Các “thành ngữ” Học ngơn ngữ lập trình VS Học ngôn ngữ tự nhiên – Quy tắc ngữ pháp đơn giản – Từ vựng ít, tự quy định – Cấu trúc câu đơn giản Hạn chế khó khăn sử dụng ngơn ngữ lập trình www.dtvc.edu.vn/?tvhao Trang Chương trình dịch Dùng để dịch từ ngơn ngữ lập trình sang ngơn ngữ lập trình khác Mục tiêu cuối dịch sang mã máy để có executed code –> chương trình thực thi Phân loại: – Intepreter – thông dịch – Compiler – biên dịch – Intepreter vs Compiler Công cụ phát triển – Integrated Development Environment (IDE) – Soạn thảo – Dịch sửa lỗi chương trình – Chạy thử sửa lỗi www.dtvc.edu.vn/?tvhao Trang Một số khái niệm khác Lỗi sửa lỗi – Syntax error – lỗi ngữ pháp – Semantic error- lỗi ngữ nghĩa – Runtime error - Lỗi thực thi Debug – Tìm sửa lỗi Dữ liệu, kiểu liệu – Các kiểu liệu integer, long, character, byte, … Real (double, float) Kiểu khác: string – Kiểu liệu có cấu trúc: array, string, record, Biến (Variable) & Hằng (Constant) Giải thuật: khái niệm, công cụ biểu diễn Flow chart – lưu đồ www.dtvc.edu.vn/?tvhao Trang Flow chart • Start /Begin bắt đầu giải thuật Chỉ có điểm START Start • Dịng xử lý • Input / Output liệu xuất/nhập • Đặc tả thao tác xử lý hay tính tốn liệu No Điều kiện • Điều khiển rẽ nhánh Yes Giá trị xét phân nhánh • Phát biểu rẽ nhánh khác Trường hợp Stop www.dtvc.edu.vn/?tvhao Trường hợp i Khác • Stop/End kết thúc giải thuật Có thể có nhiều điểm STOP Trang 10 Kiểu RECORD Record kiểu liệu gồm nhiều thành phần, thành phần thuộc kiểu liệu khác Khai báo tênkieu = Record tênfield:kieudulieu_cua_field; …… tênfield:kieudulieu_cua_field; end; www.dtvc.edu.vn/?tvhao Trang 56 Kiểu Record (tt) Các phép tốn – Có thể gán giá trị biến record thuộc kiểu cho Khi gán field tương ứng – Có thể truy cập đến thành phần (field) record cách dùng cấu trúc biênrecord.tênfield – Mỗi field dùng biến thuộc kiểu liệu tương ứng Record record Trong cấu trúc field record record khác Khi dield record tương ứng record đề truy cập đến field bên dạng recordname.fieldrecord.field www.dtvc.edu.vn/?tvhao Trang 57 Phát biểu WITH WITH phát biểu dùng với kiểu liệu record Phát biểu WITH có dạng WITH recordname Statement; record name biến record, Statement phát biểu Ý nghĩa phát biểu WITH Trong phần thân phát biểu WITH, muôn truy cập đến field record tương ứng ta cần dùng tên filed mà không cần dùng Tênrecord.tênfield thông thường www.dtvc.edu.vn/?tvhao Trang 58 Kiểu tập hợp Định nghĩa: Khai báo: Dữ liệu kiểu tập hợp tập hợp nhiều liệu thuộc kiều rời rạc – Tênkieu = set of kiểu sở – Ví dụ: tapnguyen = setof integer; Một liệu kiểu tập hợp tập hợp biểu diễn dạng [phantu, phantu, ] Có thể gán tập hợp cho tập hợp chúng có kiểu sở Ví dụ: t1 := [1,3,5,8] hay t2:=t1 www.dtvc.edu.vn/?tvhao Trang 59 Các phép toán tập hợp Với biến kiểu tập hợp ta có phép tốn – – – – – Phép toán = : cho giá trị TRUE hai tập hợp Phép toán : cho giá trị TRUE hai tập hợp khác Phép toán =B TRUE A chứa B Phép toán IN : X IN A cho giá trị TRUE A phần tử X – Phép hợp + : A+B hợp hai tập A, B – Phép giao +*: A*B giao hai tập A, B – Phép hiệu - : A-B hiệu hai tập A,B www.dtvc.edu.vn/?tvhao Trang 60 Chương trình Chương trình Phân loại khai báo Thông số: phân loại ý nghĩa Biến cục toàn cục Tầm vực chương trình – biến Đệ quy Chương trình Khái niệm: Chương trình đoạn chương trình có tên gọi thực nhiều nơi chương trình Tại phải dùng chương trình con: – Có cơng việc cần phải thực nhiều nơi chương trình => tách cơng việc thành chương trình – Phân đoạn, module chương trình để thuận tiện quản lý, trình bày phát triển Các lợi ích việc sử dụng chương trình Các loại chương trình con: Procedure & Function www.dtvc.edu.vn/?tvhao Trang 62 Phương thức thực chương trình Thơng số: giá trị thay đổi cho lần thực chương trình con, thơng thường liệu cụ thể cần cho tháo tác sử lý trường hợp gọi chương trình Danh sách thơng số Phương thức dịch chuyển điều khiển gọi chương trình Một số điểm ý việc sử dụng chương trình Khai báo chương trình chương trình PASCAL www.dtvc.edu.vn/?tvhao Trang 63 Chương trình Procedure Procedure TenChuongTrinhCon(danhsachthongso); Cont Type Var Khai báo chương trình Begin Phần thân chương trình End; ** Chương trình có chương trình bên www.dtvc.edu.vn/?tvhao Trang 64 Chương trình Function Function TenChuongTrinhCon(danhsachthongso):KieuDuLieuCuaTriTraVe; Cont Type Var Khai báo chương trình Begin Phần thân chương trình TenChuongTrinhCon:=GiaTriTraVe;** End; ** Trong thân chương trình phải có lệnh gán giá trị trả cho tên chương trình Tên chương trình function dùng biến có kiểu liệu kiểu chương trình function www.dtvc.edu.vn/?tvhao Trang 65 Thơng số Thơng số hình thức: thông số khai báo danh sách thơng số Khi chương trình gọi thực thơng số truyền giá trị cụ thể cho chương trình thực Thông số thực: giá trị cụ thể (biến, hằng, giá trị) truyền cho thơng số hình thức chương trình gọi thơng số thực Thơng số hình thức có loại: – Thơng số hình thức trị – Thơng số hình thức biến Thông số thực hợp lệ cho thông số hình thức phụ thuộc vào loại thơng số hình thức www.dtvc.edu.vn/?tvhao Trang 66 Thơng số hình thức trị Định nghĩa: Những thơng số hình thức khơng sau từ khố var khai báo danh sách thơng số thơgn số hình thức trị Ví dụ: procedure ABC (A: integer, var B: real, C:string); Thông số hình thức trị A C Khi truyền thông số, thông số thực truyền TRỊ cho thơng số hình thức trị Mọi thay đổi thơng số hình thức trị chương trình KHƠNG ảnh hưởng đến trị thơng số thực truyền cho Thơng số thực cho thơng số hình thức trị biểu thức kiểu www.dtvc.edu.vn/?tvhao Trang 67 Thơng số hình thức biến Định nghĩa: Những thơng số hình thức sau từ khố var khai báo danh sách thông số thông số hình thức biến Ví dụ: procedure ABC (A: integer, var B: real, C:string); Thơng số hình thức trị A C Khi truyền thông số, thơng số thực truyền địa cho thơng số hình thức trị Mọi thay đổi thơng số hình thức trị chương trình SẼ ảnh hưởng trực tiếp tức thời lên ô nhớ thông số thực, tức ảnh hưởng đến thơng số thực tương ứng Thơng số thực cho thơng số hình thức trị phải biến kiểu Thơng số hình thức biến cịn dùng để trả giá trị cần thiết cho chương trình gọi sau chương trình kết thúc www.dtvc.edu.vn/?tvhao Trang 68 Cấu trúc khối chương trinh Pascal Định nghĩa Khối: Một khối (block) gồm phần: – Phần khai báo với khia báo: const, type, var, chương trình – Phần thân: bắt đầu BEGIN, phát biểu kết thúc END Như vậy: – Một chương trình Block – Một chương trình Block – Trong chương trình có chương trình chương trình có chương trình khác -> block có block – Một chương trình Block với Block lồng vào www.dtvc.edu.vn/?tvhao ChuongTrinhChinh A A1 A2 B B1 B2 B21 B2 C Trang 69 Vấn đề tầm vực Định nghĩa : Tầm vực (Scope) đối tượng chương trình vùng má biết đến sử dụng Tầm vực áp dụng đối tương như: biến, hằng, kiểu liệu, chương trình Qui tắc xác định tầm vực: Tầm vực đối tượng xác định từ vị trí mà khai báo hết Block chứa khai báo đó, kể Block bên Ngoại trừ trường hợp có khai báo lại khối Khai báo lại: Nếu khối A chứa khối B khối khai báo đối tượng tênX Khối B truy xuất đối tượng X khơng thể truy xuất đối tượng X khối A X www.dtvc.edu.vn/?tvhao X Trang 70 ... X1:= (-b + sqrt(Delta)) /2/ a X2:= (-b - sqrt(Delta)) /2/ a end; Trang 32 Phát biểu IF Then Else Dùng để chọn lựa phát biểu thực phát biểu Cú pháp if then statement1 else statement2 ;... Statement2 Ví dụ If Delta > then begin X1:= (-b + sqrt(Delta)) /2/ a X2:= (-b - sqrt(Delta)) /2/ a end else Writeln(‘Còn xét tiếp’); Trang 33 Trường hợp đặc biệt Xét phát biểu sau: If ĐK1 then if ĐK2... miền giá trị - 327 67 đến 327 68 ký tự E (3.2E8) Chiếm byte nhớ.Miền giá trị nhỏ đến (1.9E-39) lớn đến (1.7E38) Kiểu Char: biểu diễn cho liệu ký tự Chiếm byte nhớ Miền giá trị theo bảng mã ASCCI