94
1 MỤC LỤC Phần 1: Tin học cơ sở ............................................................... 3 Chƣơng 1. Những khái niệm nhập môn tin học cơ sở ............ 3 1.1. Những khái niệm cơ bản. ............................................... 3 1.2. Hệ đếm và cách chuyển đổi giữa các hệ đếm. ................ 9 Chƣơng 2. Hệ điều hành Windows.......................................... 13 2.1. Một số khái niệm ........................................................... 13. 2.2. Một số lệnh hay dùng nhất của Start memu ................... 16 2.3 Cách tổ chức và trao đổi thông tin trên DESKTOP ......... 18 2.4 Cách tạo Shortcut trên DESKTOP .................................. 19 2.5. Trình ứng dụng Windows Explorer ................................ 20 Chƣơng 3. Hệ soạn thảo văn bản Microsoft Word ................. 25 3.1. Khái niệm ..................................................................... 25 3.2. Những yếu tố đầu tiên để soạn thảo văn bản .................. 25 3.3. Cất, mở, đóng tệp tài liệu. .............................................. 28 3.4. Các xử lý văn bản và khối văn bản; định dạng ký tự ...... 29 3.5. Một số kỹ thuật tăng tốc khi soạn thảo văn bản .............. 32 3.6. Tạo bảng và các xử lý trong bảng................................... 37 3.7. Thiết lập trang và một số chức năng khác ...................... 41 Phần 2: Ngôn ngữ lập trình Pascal .......................................... 45 Chƣơng 1. Nhập môn ............................................................... 45 1.1. Những khái niệm mở đầu chung về lập trình .................. 45 1.1.1. Ngôn ngữ lập trình là gì? ....................................... 45 1.1.2. Chương trình là gì? ................................................ 45 1.2. Những khái niệm cơ bản về ngôn ngữ Pascal ................. 47 1.2.1. Bộ ký tự của PASCAL .......................................... 48 1.2.2. Từ khoá ................................................................. 48 1.2.3. Tên ........................................................................ 49 1.2.4. Tên chuẩn .............................................................. 49 1.2.5. Cấu trúc của chương trình viết trên PASCAL ........ 49 1.2.6. Một vài vấn đề khác .............................................. 51 1.3. Các kiểu dữ liệu đơn giản chuẩn, các hàm chuẩn ........... 51 1.4. Các hàm chuẩn của PASCAL. ....................................... 54 1.5. Khai báo hằng, biến, kiểu, biểu thức, câu lệnh ............... 55 Chƣơng 2. Các lệnh cơ bản có cấu trúc .................................. 58 2.1. Cấu trúc tuần tự ............................................................. 58 2.2. Các cấu trúc rẽ nhánh .................................................... 59 2.2.1. Lệnh IF...THEN .................................................... 59

MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

Embed Size (px)

Citation preview

Page 1: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

1

MỤC LỤC

Phần 1: Tin học cơ sở ............................................................... 3

Chƣơng 1. Những khái niệm nhập môn tin học cơ sở ............ 3

1.1. Những khái niệm cơ bản. ............................................... 3

1.2. Hệ đếm và cách chuyển đổi giữa các hệ đếm. ................ 9

Chƣơng 2. Hệ điều hành Windows.......................................... 13

2.1. Một số khái niệm ........................................................... 13.

2.2. Một số lệnh hay dùng nhất của Start memu ................... 16

2.3 Cách tổ chức và trao đổi thông tin trên DESKTOP ......... 18

2.4 Cách tạo Shortcut trên DESKTOP .................................. 19

2.5. Trình ứng dụng Windows Explorer ................................ 20

Chƣơng 3. Hệ soạn thảo văn bản Microsoft Word ................. 25

3.1. Khái niệm ..................................................................... 25

3.2. Những yếu tố đầu tiên để soạn thảo văn bản .................. 25

3.3. Cất, mở, đóng tệp tài liệu. .............................................. 28

3.4. Các xử lý văn bản và khối văn bản; định dạng ký tự ...... 29

3.5. Một số kỹ thuật tăng tốc khi soạn thảo văn bản .............. 32

3.6. Tạo bảng và các xử lý trong bảng................................... 37

3.7. Thiết lập trang và một số chức năng khác ...................... 41

Phần 2: Ngôn ngữ lập trình Pascal.......................................... 45

Chƣơng 1. Nhập môn ............................................................... 45

1.1. Những khái niệm mở đầu chung về lập trình .................. 45

1.1.1. Ngôn ngữ lập trình là gì? ....................................... 45

1.1.2. Chương trình là gì? ................................................ 45

1.2. Những khái niệm cơ bản về ngôn ngữ Pascal ................. 47

1.2.1. Bộ ký tự của PASCAL .......................................... 48

1.2.2. Từ khoá ................................................................. 48

1.2.3. Tên ........................................................................ 49

1.2.4. Tên chuẩn .............................................................. 49

1.2.5. Cấu trúc của chương trình viết trên PASCAL ........ 49

1.2.6. Một vài vấn đề khác .............................................. 51

1.3. Các kiểu dữ liệu đơn giản chuẩn, các hàm chuẩn ........... 51

1.4. Các hàm chuẩn của PASCAL. ....................................... 54

1.5. Khai báo hằng, biến, kiểu, biểu thức, câu lệnh ............... 55

Chƣơng 2. Các lệnh cơ bản có cấu trúc .................................. 58

2.1. Cấu trúc tuần tự ............................................................. 58

2.2. Các cấu trúc rẽ nhánh .................................................... 59

2.2.1. Lệnh IF...THEN .................................................... 59

Page 2: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

2

2.2.2. Lệnh IF...THEN...ELSE ........................................ 60

2.2.3. Lệnh CASE...OF .................................................. 61

2.3. Các cấu trúc lặp (các câu lệnh lặp) ................................. 62

2.3.1. Câu lệnh FOR (dạng tiến và dạng lùi) .................... 62

2.3.2. Câu lệnh REPEAT...UNTIL .................................. 63

2.3.3. Câu lệnh WHILE...DO .......................................... 63

Chƣơng 3. Lập trình cấu trúc trong Pascal (Hàm - Thủ tục) 65

3.1. Thủ tục trong Pascal ...................................................... 65

3.1.1. Thủ tục không có các tham số hình thức. ............... 65

3.1.2. Thủ tục có các tham biến hình thức ....................... 66

3.2. Các loại biến nhớ trong lập trình cấu trúc ....................... 67

3.2.1. Biến chung ............................................................ 67

3.2.2. Biến riêng .............................................................. 67

3.3. Hàm trong Pascal ........................................................... 67

3.4. Hàm đệ quy ................................................................... 69

Chƣơng 4. Mảng và tập hợp .................................................... 72

4.1. Mảng ............................................................................. 72

4.1.1. Khai báo mảng ...................................................... 72

4.1.2. Một số thuật toán cơ bản trên mảng ....................... 73

4.2. Tập hợp ......................................................................... 75

Chƣơng 5. Dữ liệu kiểu xâu ký tự (String) ............................. 79

5.1. Khai báo xâu và các phép toán trên xâu ......................... 79

5.2. Các thủ tục và hàm xử lý xâu ......................................... 80

Chƣơng 6. Dữ liệu kiểu bản ghi và tệp .................................... 82

6.1. Bản ghi .......................................................................... 82

6.2. Mảng các bản ghi ........................................................... 84

6.3. Tệp ................................................................................ 85

Chƣơng 7: Biến con trỏ ........................................................... 91

7.1. Khai báo ........................................................................ 91

7.2. Các phép toán ................................................................. 93

Page 3: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

3

PHẦN 1: TIN HỌC CƠ SỞ

CHƢƠNG 1: NHỮNG KHÁI NIỆM NHẬP MÔN

TIN HỌC CƠ SỞ 1.1. Những khái niệm cơ bản

Tin học là gì?

- Tin học là một bộ môn khoa học có:

Đối tượng nghiên cứu là thông tin.

Phương pháp nghiên cứu chủ yếu là xử lý thông tin tự

động với sự trợ giúp của máy tính.

- Thông tin là một khái niệm trừu tượng, là đại lượng đo

lượng thông tin có ích của một thông báo.

- Đơn vị đo thông tin: là lượng thông tin cần thiết đủ để nhận

biết một trong hai trạng thái có xác suất hiện như nhau của

một đối tượng hai trạng thái.

- Ký hiệu đơn vị đo thông tin là bit (Binary Digit). Ngoài ra

còn có một số đơn vị sau:

Tên gọi Viết tắt Giá trị

Byte B 8 bit

Kilobyte KB 1024B = 210

B

Megabyte MB 1024KB = 210

KB

Gigabyte GB 1024MB = = 210

MB

Tetabyte TB 1024GB = = 210

GB

Sơ đồ khối của máy tính số hiện đại

Hình 1.1: Sơ đồ khối của máy tính

Page 4: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

4

Màn hình (Monitor)

Màn hình có hai dây cáp, một dây nối với thân máy, là cáp

truyền tin; dây thứ hai là cáp điện, có thể nối thẳng với ổ điện hoặc

nối lấy điện từ thân máy.

Màn hình là thiết bị hiện thông tin giao tiếp giữa người sử

dụng và máy tính. Màn hình dùng một loạt các ô vuông rất nhỏ gọi

là các chấm (pixels) để hiển thị hình ảnh. Số các chấm này càng

nhiều thì độ phân giải màn hình càng lớn và khi đó ta thấy hình

ảnh, màu sắc đẹp hơn, cũng như hiển thị được nhiều thông tin hơn.

Có nhiều loại màn hình có chế độ phân giải khác nhau:

CGA (Color Graphic Adaptor) có 8 màu: 640 x 200

EGA (Enhanced Graphic Adaptor) có từ 16 đến 256

màu: 640 x 350

VGA (Video Graphic Adaptor) có độ phân giải cao: 800

x 600, 1024 x 768

Bàn phím (Keyboard)

Bàn phím nối với thân máy bởi một dây cáp (vứa dẫn điện vừa

truyền thông tin). Bàn phím được sử dụng để chuyển các chỉ thị

hoặc thông tin cho máy tính xử lý. Thông thường mỗi bàn phím có

104 phím, chia thành 4 khối: khối phím ký tự, khối phím số, khối

phím di chuyển và khối phím chức năng.

Con chuột (Mouse)

Là thiết bị vào có hình dáng con chuột. Di chuột trên mặt

phẳng di chuyển con trỏ (cursor) trên màn hình

Thân máy (Case)

Có hai bộ phận chính là CPU và bộ nhớ.

*Bộ xử lý trung tâm (CPU - Central Processing Unit).

Là một vi mạch, hầu hết mọi bit dữ liệu vào/ra máy tính đều

phải qua CPU để được xử lý hoặc định hướng lại.

CPU điều khiển các hoạt động cơ bản của máy bằng cách

gửi đi hoặc thu nhận: các tín hiệu điều khiển, các địa chỉ bộ nhớ và

các dữ liệu từ phần này sang phần khác của máy tính, thông qua các

đường liên lạc điện tử gọi là BUS.

Page 5: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

5

CPU có 3 bộ phận chính:

Khối tính toán số học và logic (ALU: Arithmetic

Logical Unit).

Khối điều khiển (CU: Control Unit).

Một số thanh ghi (Registers)

- Khối tính toán số học và logic (ALU: Arithmetic Logical

Unit) bthực hiện hầu hết các thao tác, các phép tính quan

trọng của hệ thống, đó là các phép tính số học (+, -, *, /), các

phép tính logic (not, and, or, xor), các phép tính quan hệ (3

phép so sánh >, <, =).

- Khối điều khiển (CU: Control Unit): quyết định dãy thao tác

cần phải làm với hệ thống bằng cách tạo ra các tín hiệu điều

khiển mọi công việc. Khối điều khiển không tự thực hiện các

lệnh mà hớng dẫn các bộ phận khác của hệ thống thực hiện

các lệnh của chương trình được lưu trữ

- Các thanh ghi (Registers): làm nhiệm vụ bộ nhớ trung gian

cho các lệnh và dữ liệu.

*Bộ nhớ (Memory).

Gồm các vi mạch có nhiệm vụ lưu giữ thông tin, bao gồm dữ

liệu và chương trình. Bộ nhớ được đặc trưng bởi hai tham số: dung

lượng và thời gian truy cập. Có hai loại bộ nhớ chính là bộ nhớ

trong và bộ nhớ ngoài.

Bộ nhớ trong hay còn gọi là bộ nhớ trung tâm (main

memory) là loại bộ nhớ nằm bên trong máy vi tính. Có hai loại bộ

nhớ trong:

Bộ nhớ chỉ đọc (ROM - Read Only Memory): thông

tin đã có sẵn từ khi sản xuất, đây là bộ nhớ chỉ đọc,

không ghi được. Khi mất điện thì thông tin vẫn còn.

Bộ nhớ ngẫu nhiên (RAM - Random Access

Memory): Lưu trữ dữ liệu và các kết quả trung gian

trong quá trình thực hiện việc tính toán xử lý dữ liệu.

Thông tin trong bộ nhớ RAM có thể đọc và thay đổi

bất kỳ ở thời điểm nào (lý do có tên là bộ nhớ truy

cạp ngẫu nhiên). Khi mất điện thì thông tin trong

RAM bị xoá mất.

Bộ nhớ ngoài (Auxiliary Storage): là loại bộ nhớ được thiết

kế rời bên ngoài máy tính. Đó là đĩa mềm, đĩa cứng, CD-ROM,

Page 6: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

6

USB,… có thể đọc/ghi dùng để lưu trữ dữ liệu. Thông tin trên đĩa

được bảo toàn khi máy không có điện nguồn.

Nhận xét: ROM/RAM được gọi là bộ nhớ trong, có tốc độ

trao đổi thông tin nhanh hơn nhưng với bộ nhớ ngoài thì rẻ hơn và

dung lượng nhớ cao hơn.

Phần mềm (Software) Phần mềm là những chương trình do con người xây dựng lên

bằng các ngôn ngữ lập trình. Có rất nhiều phần mềm và chúng được

phân làm các lớp cơ bản như sau:

- Chương trình cơ sở: là chương trình cứng hoá nằm trong

ROM.

- Hệ điều hành: là những chương trình điều khiển sự hoạt

động của máy tính. Tạo ra môi trường giao tiếp giữa người

sử dụng và máy tính: DOS, WINDOWS, LINUX…

- Ngôn ngữ lập trình (Programming Language): Dùng lập

chương trình cho máy tính hoạt động. Một số ngôn ngữ lập

trình : C, Pascal, C++, Visual Basic, Visual C++, Delphi,

Java…

- Chương trình tiện ích: là những chương trình giúp người sử

dụng khai thác có hiệu quả hệ điều hành: Chương trình tiện

ích NC, Windows Explorer.

- Chương trình ứng dụng: Là những chương trình phục vụ cho

một lớp công việc cụ thể của người sử dụng: Bộ chương

trình ứng dụng Office (Word, Excel, PowerPoint…)

- Virus tin học: là một chương trình có khả năng ký sinh vào

các chương trình khác, tự nhân bản để tồn tại và lây lan; tiến

hành các thao tác vô ích, vô nghĩa, đôi khi là thao tác phá

hoại.

Cơ chế hoạt động của virus: Nhiễm → Kích hoạt → Thường trú →

Tìm cơ hội lay lan → Nhiễm.

Hệ điều hành

Là chương trình điều khiển chủ đạo đối với một máy tính, dùng để

quản lý các chức năng nội trú của máy tính, và cung cấp những

phương tiện để kiểm soát các hoạt động của máy đó.

Cấu trúc của hệ điều hành DOS

DOS (Disk Operating System): hệ điều hành đĩa

DOS gồm nhiều thành phần, mỗi thành phần làm một nhiệm

vụ xác định trong hệ thống. Ba thành phần chính của DOS:

Page 7: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

7

- Hệ thống điều khiển vào/ra: được đặt trong tệp

IO.SYS. Nó gồm các chương trình điều khiển thiết bị:

bàn phím, màn hình, máy in, đĩa cứng, đĩa mềm,...

- Hạt nhân của DOS: được đặt trong tệp MSDOS.SYS.

Nó gồm các chương trình con để truy nhập tệp, sử

dụng RAM và vào/ra ký tự.

- Bộ xử lý lệnh: nằm trong tệp COMMAND.COM. Tệp

này làm hiện lên màn hình dấu nhắc C:\>, nó nhận

các lệnh của người sử dụng và thực hiện chúng.

Tệp và thư mục

Mọi thông tin được lưu trữ trên đĩa dưới dạng tệp (File).

Nội dung của tệp có thể là văn bản, chương trình, bảng tính,...

*Tên tệp: Gồm hai phần:

Phần chính gồm không quá 8 ký tự, ký tự đầu tiên là

chữ cái, không có khoảng trắng và ký tự đặc biệt.

Phần thứ hai là phần mở rộng (phần đuôi): gồm

không quá 3 ký tự, không có khoảng trắng và ký tự

đặc biệt. Phần chính và phần mở rộng nối với nhau

bởi dấu chấm (.). Phần chính bắt buộc phải có, phần

mở rộng có thể không có.

Sử dụng các ký hiệu *, ? trong tên tệp:

- Ký hiệu * thay cho một nhóm ký tự.

Ví dụ: *.doc: có nghĩa là tất cả các tệp có phần mở rộng

là .doc

- Ký hiệu ? thay cho một ký tự

Ví dụ: a? có nghĩa là các tệp có tên bắt đầu là a, sau a có

thể có một ký tự hoặc không có ký tự nào.

*Thư mục (Folder): Thư mục được coi như một cái cặp

đựng tài liệu và bạn có thể sắp xếp các tệp vào đó sao cho khi hiển

thị không bị lộn xộn chồng chéo giữa các tệp.

Tên của thư mục giống như tên tệp nhưng không có phần mở

rộng.

Cấu trúc của thư mục: Các thư mục được liên kết với nhau

trong một cấu trúc hình cây. Thư mục chính giống gốc cây và các

thư mục con như các cành cây. Cấu trúc các thư mục lồng vào nhau

như hình dáng của cây do đó bạn có thể gom các tệp và chương

trình lại thành từng nhóm và tổ chức sắp xếp dữ liệu cho phù hợp

với yêu cầu riêng.

Page 8: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

8

Thư mục gốc: là thư mục cấp cao nhất được tạo ra khi bạn

tạo khuôn dạng cho đĩa. Thư mục gốc có độ rộng cố định nó chỉ đủ

để chứa thông tin đối với 512 tệp.

Thư mục hiện hành: là thư mục mà hiện hệ điều hành đang

làm việc.

Thư mục con: được tạo trong thư mục khác. Thư mục con

dùng để bổ xung thêm các tệp tin vào đĩa cứng.

Ví dụ:

Truong_DHPD

Khoa_QTK

D Khoa_CNTT Khoa_KTCT

Tinhoc DTVT

Lop512100A Lop512100B

Bai1.doc

Bai2.txt

Lamquen.txt

Thư mục gốc

Page 9: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

9

Ổ đĩa và đƣờng dẫn.

Nếu có một ổ đĩa mềm, ổ đó được ký hiệu là A: (tên ổ có

dâu hai chấm đi liền sau). Nếu có hai ổ đĩa mềm, chúng được ký

hiệu là A: và B:.

Ổ đĩa cứng được gọi là C:, D:,..., có thể chúng thực sự là các

đĩa “vật lý” khác nhau, nhưng thường thì chỉ là một đĩa, được chia

“logic” khác nhau để tiện quản lý, sử dụng.

Một tệp hoặc một thư mục (gọi chung là đối tượng) phải

được quản lý trên một đĩa. Dãy tên ổ đĩa và các thư mục nối tiếp

dẫn đến đối tượng, cách nhau bởi dấ$u gạch chéo (\) được gọi

đường dẫn (path).

Đƣờng dẫn mặc định (default) và dấu nhắc (prompt):

- Tại một thời điểm, DOS mặc nhiên hiểu người sử

dụng muốn làm việc với ổ đĩa nào, thư mục nào mà

không cần chỉ rõ tên. Đó là ổ mặc định và thư mục

mặc định. Đường dẫn bắt đầu từ ổ mặc định, kết thúc

là thư mục mặc định được gọi là đường dẫn mặc định.

- Khi dùng tên tệp không có đường dẫn, DOS sẽ tự

động tìm tệp ở đường dẫn mặc định. Thông thường

khi mới bật máy, chúng ta sẽ nhìn thấy tên ổ khởi

động, sau đó là dấu \ và >.

Ví dụ: C:\>; C là ổ mặc định, thư mục gốc (\) là thư mục mặc định,

C:\ là đường dẫn mặc định.

Dãy ký tự “C:>” được gọi là dấu nhắc của DOS.

Cách khởi động hệ điều hành DOS.

Cách 1:

- Bật điện nguồn

- Nhấn phím F8

- Chọn Command Dos Only

Cách 2:

- Nếu đang trong môi trường Windows, muốn khởi

động DOS ta làm như sau:

Start -> Chọn Shutdown-> Chon Restart in MS-DOS mode.

1.2. Hệ đếm và cách chuyển đổi giữa các hệ đếm

*Các hệ đếm

Hệ đếm cơ số 10- Thập phân: 0 1 2 3 4 5 6 7 8 9

Hệ đếm cơ số 2 - Nhị phân: 0 1

Hệ đếm cơ số 8: 0 1 2 3 4 5 6 7

Page 10: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

10

Hệ đếm cơ số 16 - HEXA: 0 1 2 3 4 5 6 7 8 9 A B C

D E F

Mã hoá là quá trình đưa thông tin về dạng chuẩn. Quá trình

ngược lại gọi là giải mã.

* Cách chuyển một số nguyên thập phân sang các hệ đếm khác

Nguyên tắc:

- Lấy con số của hệ đếm 10 chia cho cơ số của hệ đếm cần

chuyển đổi cho tới khi thương số (kết quả) của phép chia bằng 0.

- Thứ tự viết ngược lại của dãy số dư là kết quả cần tìm

Ví dụ 1: Chuyển số 16 ở hệ cơ số 10 sang số ở hệ cơ số 2 (Nhị

phân): Chia liên tiếp số muốn chuyển từ hệ 10 cho 2.

1610 sang hệ đếm cơ số 2 được 100002

Ví dụ 2: Cách chuyển hệ thập phân sang hệ cơ số 16:

0

16 2

8 0 2

4 0 2

2 0 2

1 0 2

0 1

1610 = 100002

21 2

10 1 2

5 0 2

2 1

2

1 0 2

0 1

2110 = 101012

50 16

2 3 16

0 3

5010 = 3216

61 16

13 3 16

0 3

6110 = 3D16

Page 11: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

11

* Cách chuyển một số nguyên từ hệ khác về hệ thập phân:

Gọi n là số chữ số của số ban đầu. Lấy từng chữ số của số

ban đầu nhân với cơ số đó mũ giảm dần (số mũ bắt đầu từ n-1) rồi

cộng các kết quả lại với nhau ta được số hệ thập phân.

Ví dụ: 101012 = 1*24 + 0* 2

3 + 1*2

2 + 0*2

1 + 1*2

0 = 21.

Hệ đếm cơ số 2 có nhược điểm là số viết quá dài. Hệ đếm cơ

số 16 viết ngắn hơn và việc chuyển đổi giữa hai hệ đếm cơ số 2 và

cơ số 16 gần như “tự động”. Nên trong nhiều trường hợp, người ta

sử dụng hệ đếm cơ số 16. Hệ đếm cơ số 16 sử dụng 15 “chữ số” : 0,

1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Ví dụ:

Hệ 10 Hệ 16 Hệ 2

0 0 0000

1 1 0001

2 2 0010

3 3 0011

4 4 0100

5 5 0101

6 6 0110

7 7 0111

8 8 1000

9 9 1001

10 A 1010

11 B 1011

12 C 1100

13 D 1101

14 E 1110

15 F 1111

* Cách đổi từ hệ cơ số 2 sang cơ số 16:

Nhóm bốn chữ số từ trái sang thành một nhóm cho đến hết

rồi đổi tương ứng sang hệ 16.

Ví dụ:

Vậy: (101010110001)2=( AB1)16

* Để đổi ngƣợc từ hệ 16 sang hệ cơ số 2:

1010 1011 00012

1 B A

Page 12: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

12

Với mỗi số của hệ 16 ta đổi thành bốn số nhị phân

Ví dụ:

Vậy: (AB1)16 = (101010110001)2

AB11

6

1010 1011 0001

Page 13: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

13

CHƢƠNG 2:HỆ ĐIỀU HÀNH WINDOWS

2.1. Một số khái niệm

Các phiên bản của Windows

Hệ điều hành Windows được ra đời bởi hãng phần mềm

Microsoft. Windows có các phiên bản gần đây như: Windows 3.1,

Windows 95, Windows 98, Windows 98SE, Windows ME,

Windows 2000, Windows XP, Windows Vista

Cách khởi động Windows XP

Bật điện nguồn máy tính, Windows sẽ tự khởi động.

Tùy thuộc vào cách cài đặt, có thể bạn phải gõ mật khẩu

(Password) để vào màn hình làm việc, gọi là Desktop, của

Windows.

Trong môi trường DOS muốn khởi động Windows thì tại dấu

nhắc của DOS ta gõ lệnh Win (C:\> Win).

Thoát khỏi Windows

Trước khi thoát khỏi Windows, ta phải đóng hết các trình

ứng dụng đang mở. Sau đó chọn Start chọn mục Turn Off

Computer, xuất hiện cửa sổ:

Chọn Turn Off. Nếu bạn không muốn thoát khỏi Windows

thì chọn Cancel để huỷ bỏ.

Page 14: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

14

Trong môi trường làm việc của hệ điều hành WindowXP có

thể có nhiều người sử dụng, để thay đổi môi trường làm việc của

từng người ta làm như sau:

Start -> Log off, xuất hiện của sổ sau:

Chọn Log off nếu muốn thay đổi môi trường làm việc ngược

lại nhấn Cancel để huỷ bỏ.

Màn hình nền Desktop của Window

Desktop là toàn bộ màn hình nền bao gồm các cửa sổ, các

biểu tượng và các hộp hội thoại đang xuất hiện. Nó như là mặt bàn

để bạn đặt các tài liệu trên đó.

Màn hình Desktop:

Page 15: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

15

Biểu tƣợng chuẩn: là các biểu tượng sẽ xuất hiện khi cài đặt

Windows:

- My Doccuments: là một thư mục trên Desktop, là nơi

lưu trữ các tệp văn bản, đồ họa hoặc các tệp khác mà

ta có thể truy nhập một cách nhanh chóng.

- Recycle Bin: Trong Windows khi xoá tệp, thư

mục...về mặt hình thức chúng đã bị xoá nhưng dữ liệu

vẫn tồn tại kể cả khi thực hiện nhiều lệnh ghi đĩa.

Windows chuyển những thứ đã xoá trong môi trường

Windows vào Recycle bin. Từ đây, bạn cũng có thể

hồi phục lại được tệp, thư mục đã xoá bằng cách chọn

tệp cần hồi phục, sau đó nhấn phải chuột vào tệp đó,

xuất hiện một menu và bạn chọn Restore. Nếu bạn

muốn xoá hẳn các tệp, thư mục,... thì phải chuột vào

biểu tượng Recycle bin trên màn hình và chọn Empty.

- My Computer: chứa đựng tất cả tài nguyên trong máy

tính của bạn.

Biểu tƣợng không chuẩn: là các biểu tượng do người sử dụng tạo

ra, ví dụ như folder, shortcut,...

Thanh tác vụ (Taskbar) chứa:

Nút Start: dùng mở menu Start để khởi động các

chương trình.

Nút các chương trình đang chạy: dùng chuyển đổi

qua lại giữa các chương trình.

Khay hệ thống: chứa biểu tượng của các chương

trình đang chạy trong bộ nhớ và hiển thị giờ của hệ

thống.

Cách tổ chức quản lý thông tin trong máy của Windows

Trong máy tính các thông tin được lưu trữ trong các ổ đĩa từ.

Thông thường là ổ cứng.

Giống như DOS, các thông tin được cất giữ theo dạng tệp

(file) hay tập hợp file (thư mục). Tuy nhiên, trong Windows tên file

không bị hạn chế bởi 8 ký tự, mà nó có thể dài tối đa là 255 ký tự

và có thể sử dụng khoảng trắng.

Page 16: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

16

2.2. Một số lệnh hay dùng nhất của Start memu

Thực đơn Start

Lệnh Shutdown: dùng để kết thúc một phiên làm việc với

Windows hoặc chấm dứt làm việc và khởi động lại Windows hoặc

chuyển về chế độ DOS.

Lệnh Log Off: thay đổi người sử dụng.

Lệnh Run: dùng để khởi động một ứng dụng. Bạn có thể nhập

đường dẫn tệp cần thực hiện vào hộp Open hoặc nhấn nút Browse

để tìm tên tệp chương trình. Theo hình sau:

Control Panel: dùng để để thiết đặt các thông số cấu hình cho

Windows.

Lệnh Search: dùng để tìm kiếm thư mục hay tệp tin.

Page 17: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

17

- Để thực hiện việc tìm kiếm đầu tiên bấm chuột vào Start\

Search xuất hiện hộp thoại.

Có 4 lựa chọn được chỉ dẫn bằng các mũi tên: có thể chỉ tìm

kiếm các file tranh ảnh, nhạc; hoặc các file tài liệu (.doc); tìm tất cả

các file và thư mục; tìm kiếm trên mạng.

Ví dụ: Nếu bấm vào All files and folders xuất hiện hộp thoại

sau:

- Nếu biết đầy đủ thông tin về tên tệp thì bạn gõ đầy đủ

vào hộp thoại đầu tiên.

Page 18: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

18

- Tiếp theo trong ô Look in chọn giới hạn tìm kiếm.

- Bạn cũng có thể nhập một đoạn nội dung của tệp cần

tìm vào hộp thoại thứ 2.

- Bấm vào biểu tượng tại dòng chữ để xác định

ngày tháng của tệp cần tìm. Có các lựa chọn sau:

Không nhớ ngày tháng

Trong một tuần trước đó

Trong tháng trước

Trong một năm

Trong một khoảng thời gian nhất định

Sau đó nhấn Search để thực hiện tìm kiếm, ngược lại có thể

bấm vào nút Back để thực hiện lựa chọn khác. Trong trường hợp

thiếu thông tin bạn có thể dùng các ký tự đại diện như * hoặc ? để

thay thế cho chỗ thông tin thiếu.

2.3. Cách tổ chức và trao đổi thông tin trên DESKTOP

Tạo folder mới

Trên màn hình Desktop, bấm phải chuột vào chỗ trống của

màn hình, một menu xuất hiện. Chọn New\Folder. Một folder mới

sẽ xuất hiện trên màn hình với tên mặc định là New folder, bạn hãy

gõ tên thư mục của mình vào rồi nhấn Enter.

Tạo folder con

Muốn tạo folder con cho một Folder khác thì bạn bấm đúp

chuột vào Folder đó để mở nó ra. Trong cửa sổ của folder này, bấm

phải chuột vào chỗ trống để mở menu, chọn New \folder. Hoặc

chọn File\New\Folder, khi đó một folder mới sẽ xuất hiện trên màn

hình với tên mặc định là New folder, bạn hãy gõ tên thư mục của

mình vào rồi nhấn Enter.

Chuyển một hoặc nhiều Folder sang một Folder khác:

Trước tiên đánh dấu các Folder cần chuyển theo hai cách:

Cách 1: chọn các Folder rời rạc

Page 19: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

19

Bấm chuột vào Folder đầu tiên, sau đó nhấn phím

Ctrl và đồng thời bấm chuột vào các Folder còn lại. Sau khi

đánh dấu xong các Folder sẽ đổi mầu thành sẫm hơn.

Cách 2: chọn các Folder liên tiếp

Bấm chuột vào Folder đầu tiên, sau đó nhấn phím

Shift và đồng thời bấm chuột vào các Folder còn lại. Sau khi

đánh dấu xong các Folder sẽ đổi mầu thành sẫm hơn.

Sau khi đã đánh dấu xong, bấm chuột phải vào một trong các

Folder đã chọn. Xuất hiện một menu Shortcut. Chọn lệnh Cut. Mở

Folder cần chuyển dữ liệu sang (Folder đích), bấm chuột phải vào

vị trí còn trống trong Folder, xuất hiện menu Shortcut, chọn lệnh

Paste.

Sao chép một hoặc nhiều Folder sang một Folder khác:

Trước tiên đánh dấu các Folder cần sao chép.

Sau khi đã đánh dấu xong, bấm chuột phải vào một trong các

Folder đã chọn. Xuất hiện một menu Shortcut. Chọn lệnh Copy.

Mở Folder cần chuyển dữ liệu sang (Folder đích), bấm chuột phải

vào vị trí còn trống trong Folder, xuất hiện menu Shortcut, chọn

lệnh Paste.

Xoá các đối tƣợng trên Desktop (File, Folder, Shorcut):

- Xoá một đối tượng: Bấm phím phải chuột vào đối

tượng cần xoá, xuất hiện menu Shorcut chọn lệnh

Delete.

- Xoá nhiều đối tượng: Thực hiện đánh dấu các đối

tượng rồi thao tác như xoá một đối tượng.

Đổi tên đối tƣợng trên Desktop (File, Folder, Shortcut):

Bấm phải chuột vào đối tượng cần đổi tên, xuất hiện menu

Shortcut, chọn lệnh Rename, sau đó gõ tên mới rồi nhấn Enter để

chấp nhận tên mới.

2.4. Cách tạo Shortcut trên DESKTOP

Shorcut là gì?

Shortcut là một cách để thực hiện hay mở một tệp hoặc một

thư mục mà không phải tìm kiếm. Shortcut thật sự hiệu quả cho

những chương trình, tệp và thư mục mà bạn thường xuyên sử dụng.

Cách tạo Shortcut.

Trên màn hình Desktop, bấm chuột phải vào vị trí trống,

xuất hiện một menu Short cut, chọn lệnh New\ Shortcut. Xuất hiện

hộp thoại như sau:

Page 20: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

20

Tại hộp thoại bạn gõ đường dẫn đến tệp khả thi nếu biết

chính xác đường dẫn. Nếu không biết đường dẫn, bạn có thể dùng

lệnh Search hoặc bấm vào nút Browse để tìm kiếm. Sau đó chọn

Next, tại hộp thoại tiếp theo gõ tên đặt cho Shortcut và chọn Finish.

Hoặc, mở thư mục chứa tập tin chương trình cần tạo

Shortcut, Click phải chuột vào tập tin, chọn Create Shortcut : nếu

tạo Shortcut ngay trong thư mục đang mở, chọn Send

to\Desktop(create shortcut): nếu muốn tạo Shortcut trên nền

Desktop.

Chú ý:

- Các tệp chương trình (Application) thường có phần mở

rộng là .exe.

Những chương trình của Windows được lưu trữ trong thư

mục Windows, những chương trình khác thường được cài đặt tại

thư mục Program Files.

2.5. Trình ứng dụng Windows Explorer

Chức năng

Explorer là trình thám hiểm, một chương trình duyệt sự phân

bố tập tin hay thư mục của Windows.

Khởi động và thoát Windows Explorer

Bấm chuột phải vào nút Start, chọn Explore. Hoặc, bấm

chuột trái vào Start chọn All Programs\Windows Explorer.

Muốn thoát khỏi chương trình Windows Explorer, trên thanh

trình đơn chọn menu File \Close.

Page 21: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

21

Cấu trúc cửa sổ Windows Exploring

Muốn xem nội dung của một folder thì bấm trái chuột vào

Folder đó ở phần bên trái, nội dung của nó sẽ được hiển thị ở phần

bên phải.

Muốn xem trong các Folder con trong một Folder khác thì

bấm trái chuột vào dấu cộng (+) ở bên trái. Để thay đổi kích thước

của hai phần cửa sổ, di chuột đến thanh phân cách giữa hai bên, khi

trỏ chuột đổi thành mũi tên hai chiều thì nhấn giữ phím trái rồi kéo

về bên trái hoặc bên phải.

Để hiện/ẩn cây thư mục trên khung trái: Click chọn hay bỏ

chọn nút Folders trên thanh công cụ chuẩn

Các thanh trong cửa sổ:

- Thanh tiêu đề (title bar): Thông thường là tên hay

tiêu đề của cửa sổ đang mở.

- Thanh công cụ (tool bar): chứa các nút lệnh giúp cho

ta thao tác nhanh chóng hơn.

- Thanh trình đơn (menu bar): chứa danh sách các

menu lệnh.

- Thanh địa chỉ (address bar): chỉ ra đường dẫn đến

thư mục hiện hành.

- Các thanh cuộn dọc, cuộn ngang (scroll bar): Khi nội

dung trong một cửa sổ không thể hiện hết trên màn

hình thì ta có thể sử dụng thanh cuộn ngang hay thanh

Page 22: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

22

cuộn dọc để di chuyển tới vùng không được xuất hiện

trên màn hình.

Chức năng một số nút lệnh

- Cut: chuyển dữ liệu vào vùng đệm

- Copy: Sao chép dữ liệu vào vùng đệm

- Paste: Chuyển dữ liệu từ vùng đệm đến đích (Folder,

ổ đĩa)

- Delete: Xoá tệp hoặc thư mục

- Up: Chuyển lên thư mục mẹ của thư mục hiện hành.

Mở một File trong Windows Explorer

Duyệt cây thư mục để chuyển đến thư mục chứa tệp cần mở.

Tại phần cửa sở bên phải bấm đúp chuột vào tệp đó hoặc trên thanh

trình đơn chọn File\Open.

Tạo Folder trong cửa sổ:

- Tạo folder mới: Trên màn hình Desktop, bấm phải

chuột vào chỗ trống của màn hình, một menu xuất

hiện. Chọn New \ Folder hoặc chọn menu File \ New \

Folder hay chọn Make a new Folder bên khung trái.

Một thư mục mới hiển thị với tên mặc định là New

Folder, bạn hãy gõ tên thư mục của mình vào rồi nhấn

Enter.

- Tạo folder con: Muốn tạo folder con cho một Folder

khác thì bạn bấm đúp chuột vào Folder đó để mở nó

ra. Trong cửa sổ của folder này, thực hiện các thao tác

tạo Folder như trên.

Trao đổi thông tin trên một ổ đĩa và giữa các ổ đĩa với

nhau

- Sao chép trên một ổ đĩa: chọn đối tượng cần sao chép

(đối tượng nguồn). Bấm phải chuột vào đối tượng đã

lựa chọn, chọn lệnh Copy, hoặc Edit \ Copy hoặc

nhấn Ctrl+C. Mở Folder đích, bấm phải chuột vào vị

trí còn trống chọn lệnh Paste hoặc Edit \ Paste hoặc

Ctrl+V.

- Chuyển trên một ổ đĩa: chọn các đối tượng cần

chuyển (đối tượng nguồn). Bấm chuột phải vào một

trong các đối tượng đã chọn, chọn lệnh Cut hoặc Edit

\ Cut hoặc Ctrl+X. Mở folder đích, bấm chuột vào vị

trí còn trống, chọn lệnh Paste hoặc Edit \ Paste hoặc

Ctrl+V.

Page 23: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

23

Trao đổi thông tin giữa các ổ đĩa khác nhau

- Sao chép vào thư mục My documents ở ổ C: Mở ổ đĩa

chứa dữ liệu nguồn, chọn đối tượng cần sao chép.

Bấm chuột phải vào đối tượng đã chọn chọn lệnh

Send to\ My documents hoặc chọn File\ Send to \ My

documents.

- Sao chép ra ổ đĩa USB: Mở ổ đĩa chứa dữ liệu nguồn,

lựa chọn các đối tượng cấn sao chép. Bấm chuột phải

vào một trong các đối tượng chọn lệnh Send to \

Removeable Disk (F:) hoặc chọn File \ Send to \

Removeable Disk (F:). Đổi tên, xoá các đối tượng:

- Chọn đối tượng cần đổi tên. Sau đó trên thanh trình

đơn chọn menu File\Rename hoặc bấm chuột phải

vào đối tượng, xuất hiện menu Shortcut chọn

Rename. Gõ tên mới và nhấn Enter.

Muốn xoá các đối tượng, đấu tiên chọn các đối tượng cần xoá. Trên

thanh trình đơn chọn menu File \ Delete hoặc bấm chuột phải vào

đối tượng, xuất hiện menu Shortcut chọn lệnh Delete.

Hiển thị tệp và sắp xếp các biểu tƣợng Hiển thị tệp: Trong Windows Explorer các tệp có thể được

hiện thị theo kích thước khác nhau hoặc chi tiết khác nhau. Trên

thanh trình đơn chọn menu View, cho phép hiển thị theo các cách

sau:

- Thumbnails: thường dùng để xem trước các File hình.

- Tiles: Hiện các tập tin và các thư mục con ở dạng

biểu tượng lớn.

- Icons: Hiện các tập tin và các thư mục con ở dạng

biểu tượng nhỏ.

- List: Hiện các tập tin và các thư mục con ở dạng liệt

kê danh sách.

- Details: Liệt kê chi tiết các thông tin như tên (Name),

kiểu (Type), kích thước lưu trữ (Size), ngày giờ tạo

hay sửa (Modified).

Sắp xếp các biểu tượng: Khi số lượng tệp, thư mục lớn, việc

sắp xếp sẽ làm cho người sử dụng dễ dàng truy cập các tệp hay thư

mục nhanh chóng hơn. Trên thanh trình đơn chọn menu View, có

bốn cách sắp xếp:

- Name (theo tên): được sắp xếp theo tên chính

Page 24: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

24

- Type (theo kiểu): Sắp xếp theo phần mở rộng của tệp.

- Size (theo độ lớn): sắp xếp theo kích thước của tệp

hay thư mục. Sắp xếp theo độ lớn tăng dần.

Date (theo thời gian): Sắp xếp giảm dần theo thời gian tạo tệp.

Tìm kiếm

Bấm vào lệnh Search trên thanh công cụ và thực hiện tương tự như

ở Desktop.

Page 25: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

25

CHƢƠNG 3: HỆ SOẠN THẢO VĂN BẢN

MICROSOFT WORD 3.1. Khái niệm

Microsoff Word hay gọi tắt là Word là một phần mềm dùng để soạn

thảo văn bản. Cho đến nay đã có nhiều phiên bản như Microsoft

Word 97, 98, 2000, 2003, 2007…

3.2. Những yếu tố đầu tiên để soạn thảo văn bản trong WORD

Khởi động Word Chúng ta có thể khởi động Word theo các cách sau:

- Bấm chọn Start\ Programs\ Microsoft Word

- Bấm vào biểu tượng W để khởi động chương trình

soạn thảo.

Cấu trúc màn hình Word:

Thanh tiêu đề: ghi tiêu đề của cửa sổ cùng tên tệp văn bản hiện hành

Thanh trình đơn: chứa các menu lệnh

Thanh công cụ chuẩn và thanh công cụ định dạng: dùng để định

dạng, chỉnh sửa văn bản.

Thanh trạng thái: thể hiện số trang hiện tại, tổng số trang của văn

bản, địa chỉ dòng, cột, chế độ bàn phím,...

Thanh trình

đơn

Thanh tiêu đề

Thanh cuốn dọc

và ngang

Thanh trạng thái

Thanh định dạng

Page 26: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

26

Thanh cuốn màn hình(dọc, ngang): Khi văn bản bị che khuất có

thể dùng thanh cuốn dọc hoặc ngang để chuyển tới phần bị khuất.

Thanh Draw: dùng để vẽ các hình khối...Nếu không thấy thanh

Draw thì bấm vào View \Toolbars và bấm chuột vào Drawing

Thước kẻ: gồm 2 thước (ruler) bao viền trang văn bản. Sử dụng

thước này bạn có thể điều chỉnh được lề trang văn bản, cũng như

thiết lập các điểm dịch (tab) một cách đơn giản và trực quan

Cách thoát khỏi Microsoft Word

+ Trước khi thoát khỏi Word phải đóng tất cả các tài liệu đang

mở. Có thể dùng một trong những cách sau:

- File \ Exit

- Bấm vào nút có hình chữ X ở góc trên bên phải của

màn hình

- Nhấn tổ hợp phím Alt+X

Điều kiện để gõ tiếng Việt

Hiện nay trong các phần mềm gõ tiếng Việt thì

VietKey là phần mềm gõ tiếng Việt phổ biến nhất. Để gõ

được tiếng Việt, máy tính cần phải cài đặt phần mềm

VietKey hoặc Unikey.

- Có 2 kiểu gõ thông dụng:

+ Kiểu VNI:

- Nhập nguyên âm trước , gõ dấu sau.

- Các phím tương ứng với các dấu như sau :

1 :sắc; 2 huyền; 3 : hỏi; 4 : ngã 5 : nặng; 6 : mũ ; 7 : móc;

8 :trăng (ă) ; 9: ngang (đ); 0: xóa dấu

Ví dụ: Sở Giáo dục và Đào tạo Đồng Nai ( So73 Gia1o du5c va2

D9a2o ta5o D9o6ng Nai)

+ Kiểu TELEX :

s : sắc x : ngã aa: â oo : ô

z: xoá dấu

f : huyền j : nặng aw:ă ow : ơ

r : hỏi ee : ê dd :đ w : ư

Page 27: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

27

* Sử dụng phần mềm

Vietkey để gõ tiếng

Việt:

- Khởi động hiện cửa

sổ Vietkey:

+ Start/Viet

key 2000

+ Desktop,

click biểu tượng

Vietkey2000

+ Click phải

chuột vào biểu tượng

Vietkey trên thanh

Taskbar -> chọn Hiện

cửa số Vietkey…

- Giao diện Vietkey:

Page 28: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

28

Sử dụng gõ kiểu Telex chọn:

\Tab Kiểu gõ: Telex

\Tab Bảng mã: TCVN3- ABC (.VnTime,…)

- Rồi chọn nhấn nút Taskbar để Vietkey thường trú trên

thanh Taskbar, gần biểu tượng đồng hồ của máy tính.

Khi đó tất cả font chữ tiếng Việt Nam là các font bắt

đầu bởi .Vn…; font chữ in có tận cùng là chữ H in.

3.3. Mở, cất, đóng tài liệu

Mở một văn bản mới:

- Để mở một tài liệu mới để soạn thảo ta làm như sau:

Trên thanh menu chọn File \ New hoặc trên thanh

công cụ định dạng bấm vào biểu tượng New (hình tờ

giấy).

- Để mở một tài liệu đã có sẵn trên thanh menu chọn

File\Open hoặc trên thanh công cụ định dạng bấm vào

biểu tượng Open (hình quyển sách đang mở), một hộp

thoại sẽ xuất hiện:

- Trong ô Look in chọn thư mục chứa các tệp. Thư mục

mặc định là My Documents.

- Trong ô Files of Type chọn Word Document (để chỉ

mở các file có phần mở rộng là .doc).

- Trong ô File name gõ tên tệp cần mở. Hoặc có thể

bấm chuột vào tệp cần mở sau đó bấm nút Open.

Page 29: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

29

Cất tài liệu:

- Để lưu trữ tài liệu ta chọn File\Save hoặc bấm vào

biểu tượng cái đĩa trên thanh công cụ định dạng.

Word mở một cửa sổ như sau:

- Trong ô Save in chọn thư mục cần lưu tài liệu, thư

mục mặc định là My Documents.

- Trong ô File name gõ tên cho tài liệu. Sau đó nhấn

nút save.

- Ta cũng có thể lưu một tài liệu với một tên khác tên

cũ bằng cách chọn File \ Save as, sau đó thao tác

tương tự.

Đóng tài liệu:

Để đóng tài liệu đang mở trên thanh menu chọn File \ Close.

3.4. Các xử lý văn bản và khối văn bản; định dạng ký tự

Định dạng văn bản có nghĩa là thay đổi về mặt hình

thức trình bày văn bản nhằm mục đích làm cho văn bản rõ

ràng và đẹp hơn.

Trước khi muốn xử lý, định dạng văn bản thì nguyên

tắc số một là phải lựa chọn hay đánh dấu (bôi đen) khối văn

Có thể bấm vào đây

để tạo một thư mục

mới

Page 30: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

30

bản cần xử lý. Các xử lý, định dạng chỉ tác động lên khối

văn bản được đánh dấu.

Muốn đánh dấu toàn bộ văn băn thì nhấn Ctrl+A hoặc

chọn Edit\Select all. Còn muốn chọn một đoạn hay một khối

văn bản có thể dùng bàn phím hay chuột.

Định dạng văn bản:

Chọn Format \ Paragraph xuất hiện hộp thoại sau:

- Trong ô Alightment chọn căn giữa, trái, phải hoặc căn đều

văn bản.

- Left, right để đặt lề cho văn bản.

- Ô Special chọn First line để đặt dòng đầu tiên của mỗi

đoạn lùi vào một khoảng do ta đặt ở ô By.

- Line spacing đặt khoảng cách giữa các dòng

- Ô Before và After để đặt khoảng cách giữa các đoạn.

- Sau khi đã chọn xong thì nhấn OK để chấp nhận định

dạng.

Định dạng font chữ:

Format \ Font xuất hiện hộp thoại:

Page 31: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

31

- Trong ô Font ta chọn phông chữ cần để soạn thảo.

- Ô Font style để chọn kiểu chữ: Bình thường, nghiêng,

đậm, đậm nghiêng.

- Ô Font size để chọn cỡ chữ .

- Ô Font color để chọn màu cho ký tự.

- Sau khi đã chọn xong bấm OK để chấp nhận.

Đặt mầu nền cho văn bản:

Chọn Format\Background, sau đó chọn màu trong hộp thoại.

Đóng khung cho văn bản:

Chọn Format\Border. Xuất hiện hộp thoại nhấn vào

nút Box để đóng khung cho văn bản.

Tô bóng mờ cho văn bản:

Chọn Format \ Border and Shading chọn Tab

Shading. Sau đó chọn mầu muốn tô trong ô Fill hoặc chọn

Style và Color trong phần Paternt.

Sao chép, chuyển khối văn bản đến chỗ khác trên màn hình:

Trong khi soạn thảo có những đoạn văn bản có nội

dung giống nhau hoặc gần giống nhau để không phải nhập

lại đoạn văn bản đó ta có thể sao chép lại rồi đưa đến nơi cần

Page 32: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

32

nhập bằng cách: Đánh dấu đoạn văn bản cần sao chép. Bấm

chọn lệnh Edit\Copy, sau đó đưa con trỏ đến vị trí cần thiết

rồi thực hiện lệnh Edit \ Paste.

Muốn di chuyển một khối văn bản đến một chỗ khác

ta làm như sau: Đánh dấu đoạn văn bản cần di chuyển, bấm

chọn lệnh Edit \ Cut. Sau đó đưa con trỏ văn bản đến vị trí

cần thiết rồi thực hiện lệnh Edit \ Paste.

3.5. Một số kỹ thuật tăng tốc khi soạn thảo văn bản

AutoCorrect.

Đây là tính năng tự động sửa lỗi chính tả rất mạnh

trên Word. Nó giúp tốc độ soạn thảo văn bản của nhanh

hơn nhờ những từ viết tắt và tránh được các lỗi chính tả

không cần thiết bởi khả năng tự động sửa lỗi chính tả của nó.

a. Thêm một từ viết tắt Để thêm một từ viết tắt, thực hiện theo các bước sau:

Bƣớc 1: Khởi động tính năng AutoCorrect bằng cách mở

mục chọn lệnh: Tools \ AutoCorrect.., Hộp thoại

AutoCorrect xuất hiện:

Page 33: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

33

- Gõ cụm từ viết tắt vào mục Replace:

- Gõ cụm từ sẽ thay thế vào mục With:

Ví dụ: Muốn viết tắt từ văn bản bởi vb thì:

Replace gõ vb

With gõ văn bản

Bƣớc 2: Nhấn nút Add để ghi thêm từ này vào danh sách

viết tắt của Word.

b. Xoá đi một từ viết tắt

Để xoá đi một từ viết tắt, thực hiện theo các bước sau:

Bƣớc 1: Khởi động tính năng AutoCorrect;

Bƣớc 2: Tìm đến từ viết tắt cần xoá bằng cách gõ từ viết tắt

vào mục Replace. Ví dụ: Muốn xoá từ vb – văn bản vừa

thiết lập ở trên, hãy gõ vb vào mục Replace;

Bƣớc 3: Nhấn nút Delete để xoá cụm từ viết tắt này.

c. Các tuỳ chọn về sửa lỗi chính tả

AutoCorrect cho phép thiết lập một số tính chất tự

động sửa các lỗi chính tả trong quá trình soạn thảo. Để thiết

lập các tính chất tự động sửa lỗi chính tả, hãy làm như sau:

Bƣớc 1: Khởi động tính năng AutoCorrect;

Bƣớc 2: Thiết lập các thông số về tự động sửa lỗi chính tả

bằng cách chọn (checked) các mục sau:

- tự động sửa những từ nếu có 2 ký

tự hoa đầu dòng sẽ chỉ để lại ký tự hoa đầu tiên. Ví dụ, TWo sẽ

tự động sửa thành Two;

- tự động sửa ký tự đầu tiên của

một câu thành ký tự in hoa;

- viết in hoa cho ký tự đầu tiên của

ngày. Ví dụ, sẽ luôn sửa là Monday;

- tự động sửa lỗi kiểu

như cAPS LOCK khi bật nhầm phím Caps lock. Khi đó

máy sẽ sửa thành Caps lock.

Autotext.

Những đoạn văn lặp lại nhiều lần trong văn bản. Để

không phải gõ lại tạo bảng từ thường dùng AutoText.

a. Cách tạo

- Gõ văn bản thường dùng.

Page 34: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

34

- Bôi đen khối cần tạo.

- Chọn Insert \ AutoText \ New hoặc bấm Alt+F3.

- Trong ô Please name your Autotext entry, bạn gõ tên đại

diện cho đoạn văn bản (tên của mục từ).

- Nhấn OK

b. Sử dụng một mục của bảng từ thường dùng AutoText

- Đưa con trỏ bàn phím đến vị trí cần chèn nội dung mục của

bảng từ thường dùng.

- Chọn 1 trong 2 cách:

+ Cách 1: bấm phím F3

+ Cách 2: Insert \ AutoText \ Chọn tên của mục từ danh sách

rồi bấn nút Insert

Page 35: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

35

Tìm kiếm và thay thế:

Tính năng Find & Replace trong Word giúp tìm

kiếm văn bản, đồng thời giúp thay thế một cụm từ bởi một

cụm từ mới. Điều này giúp ích rất nhiều khi phải làm việc

trên một số lượng trang văn bản rất lớn (một giáo trình, một

báo cáo dài chẳng hạn).

a. Tìm kiếm văn bản Để tìm kiếm một cụm từ trong tài liệu của mình, làm như sau:

Bƣớc 1: Chọn vùng văn bản muốn tìm kiếm; Nếu không lựa

chọn một vùng văn bản, Word sẽ thực hiện tìm kiếm trên toàn

bộ tài liệu.

Bƣớc 2: Khởi động tính năng tìm kiếm văn bản bằng cách:

kích hoạt mục chọn Edit \ Find.. hoặc nhấn tổ hợp phím tắt

Ctrl + F, hộp thoại Find and Replace xuất hiện:

Bƣớc 3: Thiết lập các thông tin về tìm kiếm trên thẻ Find. ý

nghĩa các mục tin như sau:

- Gõ từ cần tìm kiếm vào mục Find what: Ví dụ: Viet Nam.

Page 36: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

36

- Thiết lập các tuỳ chọn tìm kiếm ở mục Search Options

như sau:

Match case- tìm kiếm mà không phân biệt chữ hoa,

chữ thường;

Find whole words only- chỉ tìm trên những từ độc

lập

Bƣớc 4: Nhấn nút Find Next, máy sẽ chỉ đến vị trí văn bản

chứa cụm từ cần tìm.

b. Tìm và thay thế văn bản

Tính năng này giúp tìm ra những cụm từ trên văn bản,

đồng thời có thể thay thế cụm từ tìm được bởi một cụm từ

mới. Để thực hiện tính năng này, làm như sau:

Bƣớc 1: Chọn vùng văn bản muốn tìm kiếm; khởi động tính

năng tìm kiếm văn bản;

Bƣớc 2: Thiết lập thông tin về cụm từ cần tìm và cụm từ sẽ

thay thế ở thẻ Replace của hộp thoại:

- Gõ cụm từ cần tìm kiếm vào mục Find what:

- Gõ cụm từ sẽ thay thế ở mục Replace with:

Hộp thoại trên thiết lập thông tin tìm kiếm cụm từ Viet

Nam, nếu tìm thấy có thể thay thế cụm từ đó bởi Việt Nam.

Bƣớc 3: Nhấn nút Find next để tìm đến vị trí văn bản chứa

cụm từ cần tìm. Khi tìm thấy, có thể bấm nút Replace để thay

thế cụm từ tìm được bởi cụm từ đã chỉ định ở mục Replace

with: hoặc nhấn nút Replace All, Word sẽ tự động thay thế

toàn bộ các cụm từ sẽ tìm được như chỉ định.

Page 37: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

37

3.6. Tạo bảng và các xử lý trong bảng

Bảng cho phép người sử dụng tổ chức lại thông tin thành các

hàng và cột. Giao giữa hàng và cột gọi là ô.

Cách tạo bảng:

Trên thanh menu chọn Table\Insert Table...xuất hiện

hộp thoại:

Tại ô Number of columns nhập vào số cột của bảng, ví

dụ là 5

Tại ô Number of rows nhập vào số hàng của bảng ví dụ

là 2.

Trong ô Column Width, chọn chiều rộng cột. Muốn để

Word tự động phân chia chiều rộng các cột bằng nhau thì

chọn Auto.

Bấm OK thì một bảng gồm 5 cột và 2 dòng sẽ xuất hiện

Đóng khung cho bảng:

Bôi đen phần cần đóng khung. Chọn lệnh Format \

Border and Shading...Chọn Tab Border.

Bấm chọn Box để kẻ khung cho bảng.

Page 38: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

38

Tại ô Style chọn kiểu đường cho bảng

Tại ô Color chọn mầu cho đường kẻ.

Tại ô Width chọn độ rông cho đường kẻ. Sau đó bấm

OK.

Cách chọn các ô, cột, dòng trong bảng:

- Chọn ô nào thì ta bấm chuột vào ô đó. Muốn chọn nhiều

ô thì bấm chuột vào ô đầu tiên và kéo chuột tới ô cuối

cùng.

- Chọn cột nào thì di chuột tại đỉnh cột, con trỏ chuột đổi

thành hình mũi tên trỏ xuống, nhấn chuột để chọn

nguyên một cột. Muốn chọn nhiều cột thì chọn một cột

rồi kéo chuột để chọn những ô bên cạnh.

- Chọn một dòng nào đó thì di chuyển tại biên trái của

dòng, con trỏ chuột có dạng mũi tên, nhấn chuột để chọn

nguyên một dòng. Để chọn nhiều dòng cùng một lúc thì

ta chọn một dòng đầu tiên rồi kéo chuột để chọn những

dòng còn lại.

Các phép tính toán trong bảng:

Trong bảng các cột được ký hiệu là chữ cái A, B,

C, D,... tính từ bên trái. Và các dòng được ký hiệu là 1, 2,

3,... tính từ trên xuống. Các ô được ký hiệu bởi địa chỉ

kết hợp của cột và hàng. Ví dụ: A1 có nghĩa là sự kết hợp

của cột 1 và dòng 1.

- Tính tổng (Sum); Tính giá trị trung bình (Avegare).

- Lấy phần dư, lấy phần nguyên của phép chia hai số.

- Làm tròn số

- Lấy giá trị nhỏ nhất, lớn nhất.

Cách viết công thức

- Khi viết công thức tính toán phải sử dụng các hàm và các

địa chỉ của các ô (là các thành phần tham gia vào công

thức).

- Đặt con trỏ văn bản vào ô chứa kết quả. Chọn Table \

Formula, xuất hiện hộp thoại:

Page 39: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

39

Trong ô Formula gõ vào địa chỉ cần tính sau dấu bằng.

Trong ô Paste function có thể chọn hàm để tính (sum,

max, min, ...).

Sau đó bấm OK để thực hiện phép toán.

Trộn và tách các ô:

Ta có thể trộn hai hoặc nhiều ô trên một dòng hoặc

một cột thành một ô bằng cách sau:

Bôi đen các ô cần trộn.

Vào Table \ Merge Cell.

Ta cũng có thể tách một ô thành nhiều ô khác nhau.

Chọn ô cần tách.

Vào Table \ Split Cells. Chọn số cột hoặc số dòng hoăc

cả hai mà ta định tách từ ô được chọn.

Bấm OK.

Sắp xếp dữ liệu trong bảng: Đôi khi bạn cần dữ liệu trong bảng được sắp xếp theo

một trật tự nào đó (tăng hoặc giảm). Word cho phép bạn

thực hiện điều đó một cách dễ dàng. Để sắp xếp được bạn

cần một cột làm khoá. Thực hiện sắp xếp như sau:

Lựa chọn cột làm khoá sắp xếp sau đó thực hiện lệnh

Table \ Sort … Trong hộp thoại có tiêu đề Sort xuất hiện : ở

phần Sort by sẽ hiện cột mà bạn đã chọn, trong ô Type là

kiểu dữ liệu sắp xếp (Number: số, Text : Ký tự, Date: Ngày),

cuối phần này sẽ có hai lựa chọn sắp xếp là tăng dần

(Ascending) hoặc giảm dần (Descending). Bạn hãy chọn

kiểu tăng dần hay giảm dần rồi bấm OK.

Bạn cũng có thể sắp xếp trên nhiều cột (hay nhiều

điều kiện sắp xếp). Để thực hiện bạn thao tác chọn như trên

một cột sau đó chọn Then by để sắp xếp theo cột tiếp theo.

Căn chỉnh dữ liệu trong bảng:

Lựa chọn ô, dòng, cột cần căn chỉnh sau đó bấm:

- Nút Align Left trên thanh công cụ hoặc tổ hợp phím Ctrl

+ L để dữ liệu được căn trái.

- Nút Align Right trên thanh công cụ hoặc tổ hợp phím

Ctrl + R để dữ liệu được căn phải.

Page 40: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

40

- Nút Center trên thanh công cụ hoặc tổ hợp phím Ctrl + E

để dữ liệu được căn trái.

- Nút Justify trên thanh công cụ hoặc tổ hợp phím Ctrl + J

để dữ liệu được căn đều hai bên trái và phải.

Chèn thêm cột, hàng vào bảng:

- Chọn cột cần chèn sau đó chọn Table \ Insert \ Columns

to the Left để chèn thêm vào bên trái hoặc Table \ Insert

\ Columns to the Right để chèn thêm vào bên phải cột lựa

chọn.

- Chọn dòng cần chèn sau đó chọn Table \ Insert \ Rows

above để chèn thêm vào một dòng bên trên hoặc Table \

Insert \ Rows Below để chèn thêm vào bên dưới dòng lựa

chọn.

- Muốn chèn thêm một dòng vào cuối bảng thì chuyển con

trỏ đến ô dưới cùng bên phải của bảng sau đó bấm phím

Tab một dong mới sẽ được chèn vào cuối bảng.

Xoá bớt cột, dòng:

- Chọn cột hoặc dòng cần xoá.

- Chọn lệnh Table \ Delete Rows để xoá dòng hoặc Table \

Delete Columns để xoá cột.

Thay đổi kích thƣớc của dòng, cột:

- Bôi đen cột hoặc dòng cần thay đổi kích thước.

- Trên thanh menu chọn Table\ Table Properties.

- Để thay đổi độ rộng của cột ta chọn Tab Column trong

hộp thoại Table Properties sau đó tại ô Column 1 (1 là số

của cột bạn chọn) bạn nhập vào độ rộng mà bạn muốn

thay đổi.

- Bạn cũng có thể dùng nút lệnh Previus Column hoặc

Next Column để chuyển đến cột đằng trước hay cột kế

tiếp bên cạnh cột bạn đang chọn để thay đổi độ rộng luôn

mà không cần phải ra bảng chọn.

- Muốn thay đổi kích thước của dòng thì trong hộp thoại

Table Properties ta chọn Tab Row. Trong ô Height of

Row chọn At Least hoặc Exactly rồi nhập chiều cao

muốn thay đổi vào ô At

- Bấm OK để chấp nhận thay đổi kích thước.

Page 41: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

41

3.7. Thiết lập trang và một số chức năng khác

Thiết lập trang

Sau khi đã soạn và chỉnh sửa văn bản thì việc cuối

cùng là in văn bản đó ra giấy.

Để in ra giấy bạn phải đặt lề, chọn cỡ giấy... Chúng ta

làm như sau:

Trên thanh menu chọn lệnh File\Page Setup, xuất

hiện hộp thoại

Chọn Tab Margins để dặt lề trên, dưới, trái, phải. Bạn

có thể gõ trực tiếp vào các ô tương ứng. Sau đó bấm OK để

chấp nhận.

Muốn chọn cỡ giấy (A1, A2,...) thông thường là A4, và

chọn kiểu in ngang, dọc thì ta bấm vào Tab Paper Size.

Để in văn bản ta thực hiện lệnh File \ Print.

Ta cũng có thể đánh số trang cho văn bản bằng cách

thực hiện lệnh Insert \ Page Number, sau đó ta chọn vị trí thích

hợp cho số trang: Đầu trang (Top of Page), cuối trang(Botttom

of Page). Trong ô Alightment, chọn cách đặt số trang ở giữa,

trái, phải. Sau đó bấm OK để in.

Đồ hoạ

Đồ hoạ trong Word dùng để vẽ được các hình khối,

sơ đồ…Nếu trên màn hình chưa có thanh công cụ đồ hoạ như

Page 42: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

42

dưới đây thì bạn vào menu View\Toolbars sau đó bấm chuột

vào Drawing.

Cách vẽ: Nhấn nút cần thiết trên thanh công cụ như

đường thẳng, hình vuông, mũi tên,… Sau đó nhấn và giữ trái

chuột để xác định điểm đầu và điểm cuối.

Có thể sửa đổi đối tượng đã vẽ bằng cách trỏ chuột

vào biên của đối tượng sẽ xuất hiện mũi tên 4 đầu nhấn trái

chuột xuất hiện các ô vuông nhỏ.

Chèn hình ảnh, WordArt vào tài liệu

a. Chèn hình ảnh

Vào Menu Insert \ Picture sẽ có hai lựa chọn là chèn từ

clipart hoặc From File.

Chọn một hình bằng cách nhấn chuột vào hình đó rồi nhấn

nút Insert.

Có thể thay đổi hình ảnh như phóng to, thu nhỏ,…nhấn phải

chuột vào hình ảnh sau đó chọn Format Object.

b. Chèn WordArt

Đưa con trỏ về vị trí cần chèn sau đó vào Insert \ Picture \

WordArt.

Page 43: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

43

Chọn một kiểu chữ nghệ thuật và nhấn OK.

Chọn font chữ, kiểu và cỡ chữ sau đó gõ văn bản vào vị trí

Your Text Here.

Đặt các dấu dẫn trƣớc (TAB STOP POSITION)

Các loại Tab:

Tab trái: văn bản gõ vào sẽ được khoá ở vị trí bên trái và

đổ dồn về phía bên phải.

Tab phải: văn bản gõ vào sẽ được khoá ở vị trí bên phải

và đổ dồn về phía bên trái.

Tab giữa: văn bản gõ vào sẽ được căn giữa tại điểm dừng

Tab và giàn đều ra hai bên.

Tab thập phân: Dấu chấm thập phân sẽ được căn giữa tại

điểm dừng Tab, phần nguyên đổ về bên trái và phần thập

phân đổ về bên phải (dùng để căn cột số).

Cách tạo: Chọn Format \ Tabs xuất hiện hộp thoại:

Page 44: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

44

- Trong ô Default Tab Stops, bấm giữ mũi tên lên hoặc

xuống để tăng hoặc giảm khoảng cách giứa các điểm

dừng Tab mặc nhiên.

- Muốn tạo một Tab mới tại ô Tab stop Position nhập vị trí

dừng của Tab.

- Trong phần Alightment chọn loại tab (trái, phải, giữa,

thập phân).

- Trong phần Leader chọn kiểu tab được chèn vào.

- Bấm nút Set để thiết lập Tab, rồi nhấn OK.

Muốn xoá Tab thì bạn chọn tab cần xoá trong ô Tab

stop Position rồi nhấn Clear, muốn xóa tất cả các Tab thì nhấn

Clear All.

Tạo tiêu đề đầu trang và cuối trang

Tiêu đề đầu và cuối trang là phần văn bản được in ở

đầu trang hoặc cuối trang cho mỗi trang tài liệu. Một tiêu đề

đầu trang hoặc cuối trang có thể đơn giản chỉ gồm số trang

hoặc nó có thể chứa nhan đề của chương, tên tác giả hoặc

bất kỳ thông tin nào cần thiết. Word cho phép đặt tiêu đề

đầu trang và cuối trang như sau: Trên thanh menu chọn

View\Header and Footer, Word sẽ hiện ra tiêu đề đầu trang

của trang hiện thời và bạn có thể soạn tiêu đề dầu và cuối

trang theo ý thích.

Page 45: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

45

PHẦN 2: NGÔN NGỮ LẬP TRÌNH PASCAL

CHƢƠNG 1: NHẬP MÔN 1.1. Những khái niệm mở đầu chung về lập trình

1.1.1. Ngôn ngữ lập trình là gì?

Ngôn ngữ lập trình (programming language) là một tập con

của ngôn ngữ máy tính. Đây là một dạng ngôn ngữđược chuẩn hóa

(đối lập với ngôn ngữ tự nhiên). Nó được dùng để miêu tả những

quá trình, những ngữ cảnh một cách rất chi tiết.

Định nghĩa:Ngôn ngữ lập trình là một hệ thống được ký

hiệu hóa để miêu tả những tính toán (qua máy tính) trong

một dạng mà cả con người và máy đều có thể đọc và hiểu được.

Theo định nghĩa ở trên thì một ngôn ngữ lập trình phải thỏa

mãn được hai điều kiện cơ bản là:

1. Nó phải dễ hiểu và dễ sử dụng đối với người lập trình,

để con người có thể dùng nó giải quyết các bài toán

khác.

2. Nó phải miêu tả một cách đầy đủ và rõ ràng các tiến

trình (process), để có thể chạy được trên các máy

tínhkhác.

1.1.2. Chƣơng trình là gì?

Một tập hợp các chỉ thị được biểu thị nhờ ngôn ngữ lập trình

để thực hiện các thao tác máy tính nào đó thông qua mộtchương

trình. Các tên khác của khái niệm này nếu không bị lầm lẫn

là chương trình máy tính hay chương trình điện toán.

Lưu ý: Khái niệm chương trình (program) viết cho máy vi

tính nhằm giải quyết một vấn đế nào đó thường được gọi là phần

mềm máy tính. (Ví dụ chương trình MS Word là một cách gọi

chung chung, chính xác hơn là phần mềm MS Word thì rõ hơn đó

là một chương trình ứng dụng).

Chữ lập trình dùng để chỉ thao tác của con người nhằm kiến

tạo nên các chương trình máy tính thông qua các ngôn ngữ lập

trình. Người ta còn gọi quá trình lập trình đó là quá trình mã

hoá thông tin tự nhiên thành ngôn ngữ máy. Trong các trường hợp

xác định thì chữ lập trình còn được viết là "viết mã" (cho chương

trình máy tính).

Page 46: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

46

Như vậy, theo định nghĩa, mỗi ngôn ngữ lập trình cũng

chính là một chương trình, nhưng có thể được dùng để tạo nên các

chương trình khác. Một chương trình máy tính được viết bằng một

ngôn ngữ lập trình thì những chỉ thị (của riêng ngôn ngữ ấy) góp

phần tạo nên chương trình được gọi là mã nguồn của chương trình

ấy.

Thao tác chuyển dạng từ mã nguồn sang thành chuỗi các chỉ

thị máy tính được thực hiện hoàn toàn tương tự như là việc chuyển

dịch giữa các ngôn ngữ tự nhiên của con người. Các thao tác này

gọi là biên dịch (hay ngắn gọn hơn là dịch). Người ta còn phân việc

biên dịch làm hai loại tùy theo quá trình dịch xảy ra trước quá trình

thực thi các tính toán hay nó xảy ra cùng lúc với quá trình tính toán:

1. Một phần mềm thông dịch là một phần mềm có khả năng

đọc, chuyển dịch mã nguồn của một ngôn ngữ và ra lệnh

cho máy tính tiến hành các tính toán dựa theo cú pháp của

ngôn ngữ.

2. Một phần mềm biên dịch hay ngắn gọn hơn trình dịch là

phần mềm có khả năng chuyển dịch mã nguồn của một ngôn

ngữ ban đầu sang dạng mã mới thuộc về ngôn ngữ cấp thấp

hơn.

Ngôn ngữ cấp thấp nhất là một chuỗi các chỉ thị máy tính mà

có thể được thực hiện trực tiếp bởi chính máy tính (thông qua các

theo tác trên vùng nhớ). Trước đây, hầu hết các trình dịch cũ

thường phải thông dịch từ mã nguồn sang bộ mã phụ (các tệp có

dang *.obj), rồi sau đó, mới biên dịch tiếp sang các tập tin thi hành.

Ngày nay, hầu hết các trình dịch đều có khả năng viên dịch mã

nguồn trực tiếp sang thành các tập tin thi hành hay biên dịch sang

các dạng mã khác thấp hơn tuỳ theo yêu cầu của người lập trình.

Điểm khác nhau giữa thông dịch và biên dịch là: Trình thông

dịch sẽ dịch từng câu lệnh một và chương trình đích sẽ không được

lưu lại. Còn trình biên dịch sẽ dịch toàn bộ chương trình, cho ra

chương trình đích được lưu lại trong máy tính rồi mới thực

hiện chương trình.

Một chương trình máy tính có thể được thực thi bằng cách tổ

hợp của việc biên dịch và thông dịch.

Page 47: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

47

1.2. Những khái niệm cơ bản về ngôn ngữ Pascal

Pascal là ngôn ngữ lập trình cấp cao do giáo sư Niklaus

Wirth (Trường ĐH Kỹ thuật Zurich, Thuỵ Sỹ) sáng tác và công bố

vào đầu những năm 70, với tên là PASCAL để kỷ niệm nhà toán

học Blaise Pascal (người Pháp). Pascal giúp cho sinh viên cũng như

những người mới học lập trình có được thói quen viết một chương

trình có cấu trúc sáng sủa, rõ ràng, dễ hiểu và dễ đọc cho cả những

người khác.

Pascal là một ngôn ngữ có sự định kiểu mạnh mẽ. Điều đó

có nghĩa là mọi biến và hằng của một kiểu dữ liệu không thể tự do

đem trộn lẫn với các biến và hằng của một kiểu dữ liệu khác.

Pascal là một ngôn ngữ có cấu trúc. Một ngôn ngữ có cấu

trúc khối là ngôn ngữ mà ta có thể tách các thông tin dữ liệu (biến,

hằng....) và các lệnh cần dùng cho một nhiệm vụ xác định thành

những khối riêng, tách ra khỏi phần còn lại của chương trình để

người lập trình có thể giải quyết dần từng phần một, từng khối một

và thậm chí có thể cho nhiều người tham gia lập trình, mỗi người

phụ trách một vài khối. Thông thường các khối ứng với các nhiệm

vụ cụ thể và xác định, được thực hiện bằng các chương trình con

với các biến địa phương và các biến tạm thời của chương trình đó.

Có thể nói tính cấu trúc của Pascal được thể hiện trên 3 mặt:

- Cấu trúc về mặt dữ liệu: từ các dữ liệu đã có ta có thể xây

dựng các cấu trúc dữ liệu phức tạp hơn.

- Cấu trúc về mặt lệnh: từ các lệnh đã có ta có thể nhóm

chúng lại với nhau và đặt giữa hai từ khoá BEGIN và END

thành câu lệnh phức tạp hơn, gọi là lệnh ghép.

- Cấu trúc về mặt chương trình: một chương trình có thể chia

thành các module chương trình độc lập (chương trình con).

Mặc dù Pascal lúc đầu chỉ là một ngôn ngữ để dạy học, song

trong quá trình phát triển, nó đã dần dần phát huy các ưu điểm và

đã trở thành một ngôn ngữ lập trình mạnh, được thương mại hoá rất

nhanh. Từ Pascal do giáo sư Wirth sáng tác ra, tổ chức tiêu chuẩn

hoá quốc tế và rất nhiều hãng đã phát triển thêm và tạo ra các

chương trình dịch ngôn ngữ Pascal với nhiều phần thêm bớt khác

nhau:

- ISO Pascal (được gọi là Pascal chuẩn: International

Standards Organization).

- ANSI Pascal (American National Standard Institut)

Page 48: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

48

- Turbo Pascal (TP) của hãng Borland.

- IBM Pascal của hãng MicroSoft

- UCSD Pascal (University of California at San Diego)

....

TP hay còn gọi là Borland pascal là sản phẩm nổi tiếng thế

giới của hãng Borland (Mỹ). Hiện nay nó được sử dụng phổ biến

nhất trên thế giới vì các ưu điểm: tốc độ dịch nhanh, chương trình

dịch pascal được viết rất gọn, các phần mở rộng của nó so với

pascal chuẩn được cải tiến và nâng cao hơn.

1.2.1. Bộ ký tự của Pascal

Một ngôn ngữ bất kỳ (từ ngôn ngữ giao tiếp của con người

tới ngôn ngữ máy tính) đều được xây dựng dựa trên một bộ các chữ

viết (ký tự) và sau đó là tập hợp các từ có nghĩa gọi là từ vựng..

Ngôn ngữ pascal được xây dựng với bộ ký tự sau:

- Bộ 26 chữ cái la ting: 26 chữ cái lớn A, B, C, ...

26 chữ cái nhỏ a, b, c, ...

- Ký tự gạch nối ( _ )

- Bộ số thập phân 0,1,2,3, ..,9

- Các ký hiệu toán học thông dụng +, -, *, /, =, <, >, ( ),....

- Các ký hiệu đặc biệt: ., ;, :, [], ?, %, @, \, !, #, $, '

- Dấu cách (space) được dùng để ngăn cách các từ.

1.2.2. Từ khoá

Từ vựng của Pascal gồm một số từ của riêng Pascal được gọi

là từ khoá (key word). Các từ này người sử dụng phải dùng đúng

với cú pháp. Đó là các từ:

Từ khoá chung: PROGRAM, BEGIN, END, PROCEDURE,

FUNCTION

Từ khoá để khai báo: CONST, VAR, LABEL, TYPE,

ARRAY, STRING, RECORD, ...

Từ khoá của lệnh thử và rẽ nhánh: IF...THEN...ELSE..;

CASE...OF...

Từ khoá của lệnh lặp:

FOR .. TO.. DO và FOR .. DOWNTO .. DO

WHILE .. DO

REPEAT .. UNTIL

Từ khoá điểu khiển: WITH, GOTO

Từ khoá toán tử: AND, OR, NOT, IN, DIV, MOD

Từ khoá NULL: NUL

Page 49: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

49

Các từ khoá này có thể viết bằng chữ hoa hoặc chữ thường,

giá trị và ý nghĩa của từ khoá không thay đổi.

1.2.3. Tên

Tên (định danh): là một dãy ký tự được dùng để chỉ tên hằng

số, tên hằng ký tự, tên biến, tên kiểu, tên chương trình con,... Tên

được tạo thành từ các chữ cái và các chữ số song bắt buộc chữ đầu

tiên của tên phải là chữ cái.

Những cách viết sau đây là sai: 1abc, #del, array, del ta;

Số ký tự của tên bị hạn chế: trong Pascal chuẩn là 8 ký tự,

trong TP là 127 ký tự.

Người ta cho phép sử dụng dấu gạch nối dưới trong tên ( _ ).

1.2.4. Tên chuẩn

Một số tên như tên của chương trình con (sin, cos,...) đã

được pascal định nghĩa sẵn được gọi là các tên chuẩn. Sự khác nhau

giữa tên chuẩn và từ khoá là người dùng có thể định nghĩa lại các

tên chuẩn, dùng tên chuẩn vào việc khác nếu muốn, còn từ khoá thì

bị nghiêm cấm dùng vào việc khác trái với quy định.

Một số tên chuẩn của Pascal:

Boolean, Char, Integer, Real, Byte, Text.

False, True, MaxInt.

Abs,Arctan, Chr, Cos, Sin, Eof, Eoln, Exp, Ln, Odd, Ord,

Round, Trunc, Sqr, Sqrt, Pred, Succ.

Read, Readln, Write, Writeln...

1.2.5. Cấu trúc của chƣơng trình viết trên PASCAL

Ta có thể định nghĩa một chương trình máy tính là một dãy

lệnh, một dãy chỉ thị hướng dẫn cho máy tính thực hiện một nhiệm

vụ, một xử lý nào đó trên một tập các dữ liệu, số liệu.

Cấu trúc tổng quát của một chương trình Pascal gồm 3 phần:

Phần tiêu đề của chương trình

Phần khai báo dữ liệu, mô tả kiểu dữ liệu, khai báo

chương trình con

Phần thân chương trình chứa các lệnh để máy tính

thực hiện

Cấu trúc một chương trình viết bằng TP nếu đầy đủ gồm các

phần chính như sau:

PROGRAM TEN_CHUONG_TRINH;

{Lời gọi sử dụng các đơn vị chương trình}

USES CRT, PRINTER;

Page 50: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

50

{Phần khai báo dữ liệu, và chương trình con}

LABEL...

CONST...

TYPE...

VAR....

PROCEDURE...

FUNCTION...

{Thân chương trình chính}

BEGIN

....

END.

a. Phần tên (hay tiêu đề) của chƣơng trình

Phần này bao giờ cũng bắt đầu bằng từ khoá

PROGRAM, tiếp theo là tên do ta đặt ra có một ý nghĩa nào

đó đặc trưng cho công việc của chương trình. Cuối cùng, phần

tiêu đề kết thúc bằng dấu chấm phẩy ';'

Phần tiêu đề chiếm một dòng và thậm chí có thể

không có cũng được.

b. Phần khai báo

Phần này có nhiệm vụ mô tả đối tượng bài toán, mô tả

dữ liệu... để chương trình xử lý. Nó có thể chia ra thành 7 kiểu

khai báo với các từ khoá sau:

USES CRT, PRINTER; {Khai báo sử dụng các UNIT}

LABEL ...{Khai báo nhãn}

CONST ... {Khai báo các hằng số, hằng ký tự}

TYPE .... {Mô tả các kiểu dữ liệu mới}

VAR ... {Khai báo các biến}

PROCEDURE....{Khai báo các chương trình con}

FUNCTION... [Khai báo hàm con]

Các khai báo có thể có hoặc không tuỳ theo nhu cầu.

c. Phần thân chƣơng trình Phần này bao giờ cũng nằm gọn giữa hai từ khoá

BEGIN ... END. Sau từ khoá END là dấu chấm để báo kết

thúc chương trình. Phần này bắt buộc phải có đối với mọi

chương trình, nó chứa các lệnh để xử lý các đối tượng, số liệu

đã được mô tả trong phần khai báo.

Page 51: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

51

1.2.6. Một vài vấn đề khác: Lời giải thích, dấu chấm phẩy

Lời giải thích (chú giải)

Các lời bình luận, lời giải thích có thể đưa vào bất kỳ

chỗ nào của chương trình để cho chương trình dễ hiểu, dễ đọc

hơn. Lời giải thích được đặt ở giữa hai dấu ngoặc móc { và }

hoặc giữa cụm dấu (* và *).

Dấu chấm phẩy

Sau mỗi câu lệnh đều phải đánh dấu chấm phẩy (;)

1.3. Các kiểu dữ liệu đơn giản chuẩn, các hàm chuẩn

Các kiểu dữ liệu

Một kiểu dữ liệu được định nghĩa là:

- Một tập hợp các giá trị mà một biến thuộc kiểu đó

có thể nhận được.

- Trên đó xác định một số phép toán

Cần nhớ rằng một biến phải gắn liền với một kiểu dữ liệu và

chỉ một mà thôi.

Kiểu logic (Boolean)

Một giá trị thuộc kiểu logic Boolean là một đại lượng

nhận một trong hai giá trị logic: TRUE (đúng) hoặc FALSE

(sai). TRUE và FALSE là tên các giá trị đã được định nghĩa

sẵn. Kiểu Boolean cũng đã định nghĩa sẵn quan hệ thứ tự

FALSE < TRUE.

Các phép toán sau có thể áp dụng cho các giá trị kiểu

Boolean và cho ta kết quả cũng là kiểu Boolean:

Phép AND : phép “và” logic

Phép OR : phép “hoặc” logic

Phép NOT : phép “phủ định” logic

Phép XOR : phép “hoặc loại trừ” logic

Chúng ta có thể tóm tắt quy tắc thực hiện phép AND và OR

như sau:

- Phép AND chỉ cho kết quả là TRUE khi và chỉ khi

hai toán hạng đều là TRUE

- Phép OR chỉ cho kết quả là FALSE khi và chỉ khi

hai toán hạng đều là FALSE

- Phép XOR luôn luôn cho kết quả là TRUE khi hai

toán hạng khác nhau

Page 52: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

52

Các phép toán quan hệ

Ký hiệu phép toán Ý nghĩa

<> so sánh khác nhau

= so sánh bằng nhau

>= so sánh lớn hơn hoặc bằng

<= so sánh nhỏ hơn hoặc bằng

> so sánh lớn hơn

< so sánh nhỏ hơn

Kiểu số nguyên

Kiểu số nguyên đã được máy định nghĩa sẵn với từ

khoá INTEGER.

Một giá trị kiểu số nguyên là một phần tử của tập các

số nguyên mà ta có thể biểu diễn được trên máy, nghĩa là nó là

một tập nhỏ của không gian các số nguyên chứ không phải tất

cả mọi số nguyên đều có thể xử lý trên máy tính được. Thông

thường, các số nguyên được biểu diễn bằng hai byte (16 bít).

Do đó phạm vi của nó là từ -32768 (= -215) đến +32767

(=215-1).

a. Các phép tính số học với số nguyên:

Phép cộng và trừ: +, -

Phép nhân: *

Phép chia: / (kết quả là số thực)

Phép chia lấy phần nguyên: từ khoá DIV

Phép chia lấy phần dư: từ khoá MOD

Hàm boolean ODD(n) cho giá trị TRUE nếu n là số

lẻ, FALSE nếu n là số chẵn

Chú ý: Khi thực hiện các phép tính số học đối với số nguyên,

cần hết sức thận trọng xem kết quả của các phép toán đó có

cho kết quả vượt ra khỏi phạm vi biểu diễn số nguyên của máy

không

Ví dụ: 32000 + 800 - 2000 = 29200 (song máy tính sẽ xử lý

sai vì lúc làm phép cộng đã cho kết quả 32800 vượt quá giới

hạn của số nguyên. Máy có thể phát hiện và báo lỗi trường

hợp này)

b. Các phép tính quan hệ đối với số nguyên

Page 53: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

53

Các số nguyên có thể so sánh với nhau và với số thực

qua các phép toán quan hệ. Kết quả của phép toán quan hệ là

kiểu boolean (tức là TRUE hoặc FALSE).

Kiểu số thực

Kiểu số thực là tập hợp các số thực có thể biểu diễn

được trong máy tính và được định nghĩa sẵn với từ khoá

REAL.

Các phép toán : +, -, *, /, các phép toán quan hệ.

Chú ý: không tồn tại các phép toán DIV, MOD cho kiểu số

thực

Trong máy tính các số thực được biểu diễn dưới hai dạng:

dạng bình thường và dạng có phần số mũ.

- Dạng thập phân bình thƣờng:

3.14 3.0 -24.123 -0.0005 (lưu ý: dùng dấu chấm ngăn

cách phần nguyên và thập phân)

- Dạng viết có phần mũ: gồm hai phần: phần định trị và phần

mũ viết sau chữ E biểu diễn số mũ cơ số 10.

Ví dụ: 623.12345 = 6.2312345 * 102.

trong máy tính: 6.2312345E+02.

-0.001234 = -1.234 * 10-3

sẽ được viết -1.234E-03.

(Phần định trị và phần mũ đều có thể có dấu đi kèm).

Phạm vi giới hạn của số thực: -1.7-38 đến +1.7E+38.

Chú ý: cách viết sau đây là sai: .5 hoặc 5. (phải viết là 0.5 ,

5.0)

Kiểu ký tự

Kiểu ký tự được định nghĩa trong Pascal với từ khoá

CHAR.

Một hằng ký tự được biểu diễn bằng chữ viết đó nằm

giữa hai dấu nháy đơn:

Ví dụ: 'a' 'A' 'z' '0' '9' '*' '!' .....

Một giá trị kiểu ký tự là một phần tử của một tập hữu

hạn các ký tự được sắp xếp có thứ tự, đó là bộ mã ký tự ASCII

(American Standard Code for Information Interchange).

Các ký tự mã hoá bằng một byte, vì vậy bảng mã ký

tự có thể mã hoá tới 256 ký tự.

Trong bảng mã ASCII, các ký tự từ 0 đến 31 là các ký

tự điều kiển (được dùng để điều khiển các thiết bị ngoại vi,

Page 54: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

54

điều khiển các thủ tục trao đổi thông tin....). Phần còn lại trong

bảng mã ASCII bố trí toàn bộ các chữ cái A, B,....các chữ số

0, 1, ... 9, các dấu chấm câu, các ký tự đặc biệt.....

Riêng ký tự 127 (DEL) lại được dùng làm ký tự điều

khiển xoá.

Có hai hàm chuẩn là ORD và CHR cho phép thiết lập

tương quan giữa bộ mã ký tự và một tập con các số tự nhiên.

ORD('c') : cho ta số thứ tự của ký tự 'c' trong bảng mã.

CHR(n) : cho ta ký tự có số thứ tự là n.

Ví dụ: ORD('A') = 65; CHR(65) = 'A'.

Mở rộng kiểu dữ liệu số

Các kiểu số nguyên:

Kiểu Phạm vi biểu diễn Kích thước BYTE

BYTE 0..255 1

SHORTINT 128..127 1

INTEGER 32768..32767 2

WORD 0 .. 65535 2

LONGINT 2147483648 .. 2147483647 4

Các kiểu số thực:

Kiểu Phạm vi biểu diễn Kích thước BYTE

REAL 2.9E-39 .. 1.7E+38 6

SINGLE 1.5E-45 .. 3.4E+38 4

DOUBLE 5.0E-324 .. 1.7E+3.8 8

EXTENDED 1.9E-4951 .. 1.1E+4932 10

1.4. Các hàm chuẩn của Pascal

Các hàm sau đây được định nghĩa sẵn và được sử dụng với

đối số là các số thực hoặc các số nguyên.

ABS(x): cho ta giá trị tuyệt đối của toán hạng x, kiểu kết quả

cùng kiểu với đối số

SRQ(x): cho ta giá trị x2 (kiểu kết quả cùng kiểu với đối số)

* Các hàm sau áp dụng cho đối số nguyên hoặc thực nhưng kết quả

thì luôn luôn là kiểu thực:

SIN(x), COS(x), ARCTAN(x): các hàm lượng giác

LN(x): hàm log2(x).

EXP(x): hàm ex.

SQRT(x): hàm tính căn bậc hai của x

Page 55: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

55

SUCC(n): cho số nguyên tiếp theo n: tức là n+1.

PRED(n): cho ta số nguyên trước n: tức n-1.

ODD(n): hàm kiểm tra số chẵn lẻ (True:lẻ ; FALSE: chẵn).

TRUNC(x): cho ta một số là phần nguyên của x, tức là cắt

bỏ đi phần lẻ thập phân của x.

ROUND(x): cho ta một số nguyên là phần nguyên của x

bằng cách quy tròn phần lẻ thập phân của x.

1.5. Khai báo hằng, biến, kiểu, biểu thức, câu lệnh

Tất cả các biến, hằng kiểu dữ liệu trong Pascal đều phải

được khai báo trước khi dùng trong chương trình.

Khai báo hằng

Định nghĩa: Hằng là các đại lượng không thay đổi giá trị.

Có các loại hằng số, hằng ký tự, hằng Boolean.

Khai báo hằng: Các hằng được khai báo sau từ khoá

CONST.

CONST Tên_hằng = giá_trị_của_hằng;

Ví dụ:

CONST

A = 5;

B = TRUE;

C = „z‟;

PI = 3,14;

Khai báo biến

Định nghĩa: Biến là đại lượng có thể thay đổi, dùng để

chứa giá trị của người sử dụng.

Khai báo biến: Các biến được khai báo sau từ khoá VAR

VAR Tên_biến : Kiểu_dữ_liệu_của_biến;

Ví dụ:

VAR

X : Integer;

A1, A2, A3 : Real;

Hoten : String[25];

Y : Boolean;

- Có 2 loại biến:

Biến toàn cục: Khai báo trên Begin, tồn tại trong suốt quá

trình chạy chương trình, và ở đâu cũng sử dụng được.

Biến cục bộ: Chỉ tồn tại trong phạm vi khai báo nó (trong

hàm, trong thủ tục)

Page 56: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

56

Kiểu

Ngoài những kiểu dữ liệu đã được Pascal định nghĩa sẵn

như: Integer, Real, Char,…). Pascal còn cho phép người dùng tạo ra

các kiểu dữ liệu mới.

Khai báo biến: Các biến được khai báo sau từ khoá TYPE

Ví dụ:

TYPE

Days = {Monday, …..};

Var

Ngay : Days;

Biểu thức

Biểu thức là một công thức tính toán để có một giá trị

theo một quy tắc toán học nào đó. Một biểu thức bao gồm toán

tử và toán hạng. Toán tử được viết ra bằng dấu phép toán.

Toán hạng có thể là hằng, là hàm, là biến.

Biểu thức số học là biểu thức có giá trị bằng số (thực,

nguyên).

Biểu thức logic (Boolean) là biểu thức có giá trị là

TRUE hoặc FALSE.

Biểu thức quan hệ (Biểu thức Boolean đơn giản) chứa

các toán tử quan hệ (<> , < , > , <= , >= , =).

Ví dụ:

5 + 4 * 5 – 3 * 7 = 4

(100 > 50) AND („A‟ > „B‟) = FALSE

Câu lệnh

Các câu lệnh của chương trình xác định các công việc

mà chương trình phải thực hiện để xử lý các dữ liệu đã được

mô tả và khai báo. Các câu lệnh cách nhau bằng dấu chấm

phẩy (;). Câu lệnh được chia ra làm hai loại: Câu lệnh đơn

giản và câu lệnh có cấu trúc.

Câu lệnh đơn giản: là những lệnh không chứa các lệnh khác

(đó là phép gán, lời gọi chương trình con Procedure (như:

Read, Write, Clrscr,…), lệnh nhảy không điều kiện Goto)

Câu lệnh có cấu trúc: là khối lệnh nằm giữa hai từ khoá

Begin và End; từ 2 lệnh có liên quan là phải để trong cặp

Begin ... End

Câu lệnh gán: Dùng để gán giá trị hay kết quả của một biểu thức

hay nội dung của một biến cho một biến.

<Biến>:=<Giá trị>

Page 57: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

57

<Biến>:=<Biến>

<Biến>:=<Biểu thức>

Ví dụ:

Program LenhGan;

Var x, y, z: Integer;

Begin

x := 1;

y := 2;

y:=y+x;

z := x + y;

End.

Page 58: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

58

CHƢƠNG 2: CÁC LỆNH CƠ BẢN CÓ CẤU TRÚC ĐỂ

LẬP TRÌNH TRÊN PASCAL

2.1 . Cấu trúc tuần tự

Lệnh gán (Assignment statement) Một trong các lệnh đơn giản và cơ bản nhất của Pascal là

lệnh gán. Mục đích của lệnh này là gán cho một biến đã khai báo

một giá trị nào đó cùng kiểu với biến.

Cách viết:

<Tên_biến> := <biểu thức> ;

Ví dụ: Khi đã khai báo

VAR

c : Char ;

i,j : Integer ;

x, y : Real ;

p, q : Boolean ;

thì ta có thể có các phép gán sau :

c := „A‟ ;

c := Chr(90) ;

i := (35+7)*2 mod 4 ;

i := i div 7 ;

x := 0.5 ;

x := i + 1 ;

q := i > 2*j +1 ;

q := not p ;

* Ý nghĩa: Biến và các phát biểu gán là các khái niệm quan trọng của

một họ các ngôn ngữ lập trình mà Pascal là một đại diện tiêu biểu.

Chúng phản ánh cách thức hoạt động của máy tính hiện nay, đó là:

- Lưu trữ các giá trị khác nhau vào một ô nhớ tại những

thời điểm khác nhau.

- Một quá trình tính toán có thể coi như là một quá

trình làm thay đổi giá trị của một (hay một số) ô nhớ

nào đó, cho đến khi đạt được giá trị cần tìm.

Lệnh ghép (Compound statement)

Một nhóm câu lệnh đơn được đặt giữa 2 chữ BEGIN và

END sẽ tạo thành một câu lệnh ghép.

Trong Pascal ta có thể đặt các lệnh ghép con trong các lệnh

ghép lớn hơn bao ngoài của nó và có thể hiểu tương tự như cấu trúc

ngoặc đơn ( ) trong các biểu thức toán học.

Page 59: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

59

* Sơ đồ:

Ở hình minh họa trên ta dễ thấy các nhóm lệnh thành từng

khối (block). Một khối lệnh bắt đầu bằng BEGIN và chấm dứt ở

END;. Trong một khối lệnh cũng có thể có các khối lệnh con nằm

trong nó. Một khối chương trình thường được dùng để nhóm từ 2

lệnh trở lên để tạo thành một <Công việc> của các lệnh có cấu trúc.

2.2. Các cấu trúc rẽ nhánh

2.2.1. Lệnh IF...THEN

IF <biểu thức Boolean> THEN <việc1>;

Nếu biểu thức Boolean có giá trị True thì máy sẽ thực hiện

<việc 1> nếu không thì chuyển sang lệnh tiếp theo.

BiÓu thøc Boolean

ViÖc 1

TRUE FALSE

Page 60: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

60

2.2.2. Lệnh IF...THEN...ELSE

IF <biểu thức Boolean> THEN <việc1> ELSE <việc2>;

Nếu biểu thức Boolean có giá trị TRUE thì máy sẽ thực hiện

<việc1> nếu không thực hiện <việc2> và sau đó chuyển sang lệnh

tiếp theo.

Lưu ý: Trước ELSE không bao giờ có dấu chấm phẩy ;

Ví dụ: Để thực hiện phép chia hai số a và b với điều kiện b<>0, ta

viết:

IF b<>0 THEN T:=a/b

ELSE writeln(„Mẫu số = 0 : không chia được!‟);

Ví dụ: Tìm giá trị Max và Min của hai số a, b:

Program tim_max_min;

Var a,b,max,min: integer;

Begin

IF a<b then Begin

Max := b;

Min :=a;

End

ELSE

BEGIN

Max := a;

Min := b;

END;

writeln(„so lon hon trong hai so ‟,max);

writeln(„so nho hon trong hai so ‟,min);

Readln;

End.

BiÓu thøc Boolean

ViÖc 1 ViÖc 2

TRUE FALSE

Page 61: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

61

2.2.3. Lệnh CASE...OF

Câu lệnh CASE được dùng trong trường hợp có nhiều sự lựa chọn

Mẫu 1 Mẫu 2

CASE <biến> OF

Hằng1: <việc1>;

Hằng2: <việc2>;

………

HằngN: <việcN>;

END;

CASE <biến> OF

Hằng1: <việc1>;

Hằng2: <việc2>;

………

HằngN: <việcN>;

ELSE <việc N+1>

END;

Trong đó: <biến> không được là biểu thức Boolean như

trong lệnh IF mà nó là biểu thức có các kiểu vô hướng đếm được

(Integer, Char), Không được (Real).

Chú ý rằng lệnh CASE bao giờ cũng kết thúc bằng từ khoá

END.

Ví dụ:

case Ch of

'A'..'Z', 'a'..'z': WriteLn('Letter');

'0'..'9': WriteLn('Digit');

'+', '-', '*', '/': WriteLn('Operator');

else

WriteLn('Special character');

end;

Ví dụ: Tính số ngày của một tháng

VAR songay, thang, nam: integer;

BEGIN

Write („Tháng: ‟); Readln (thang);

Write („Năm: ‟); Readln (nam);

CASE thang OF

4, 6, 9, 11: songay := 30;

2: CASE nam MOD 4 OF

0: songay := 29;

1, 2, 3: songay := 28;

END; {of CASE nam}

1, 3, 5, 7, 8, 10, 12: songay := 31;

END {of CASE thang}

Writeln („Số ngày của tháng ‟,thang,„ năm ‟,nam,„ là : ‟,songay);

Page 62: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

62

END.

2.3. Các cấu trúc lặp (các câu lệnh lặp)

2.3.1. Câu lệnh FOR (dạng tiến và dạng lùi)

Cấu trúc:

For <biến>:= <giá trị đầu> to <giá trị cuối> do lệnh;

For <biến>:= <giá trị đầu> downto <giá trị cuối> do lệnh;

Câu lệnh For chỉ thị máy tính thực hiện <lệnh> một số lần

nhất định từ giá trị đầu đến khi vượt qua giá trị cuối. Sau mỗi lần

thực hiện <lệnh> thì biến được tăng lên hoặc giảm đi một đơn vị.

Sơ đồ khối của vòng lặp For ... to ...

Ví dụ: Liệt kê các ký tự trong bảng mã ASCII

Var i:byte;

Begin

For i:=0 to 255 do write(i:6, chr(i):2);

Readln;

End.

Begin

G¸n gi¸ trÞ ban ®Çu cña biÕn ®iÒu khiÓn

i<=giíi h¹n cuèi

Thùc hiÖn khèi lÖnh

Thay ®æi gi¸ trÞ biÕn ®iÒu khiÓn

End

False

True

Page 63: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

63

2.3.2. Câu lệnh REPEAT...UNTIL

Câu lệnh lặp Repeat ... Until là lệnh yêu cầu chương trình

lặp lại nhiều lần một hành động cho đến khi thoả m•n một điều kiện

để thoát ra khỏi vòng lặp.

Cấu trúc:

Repeat

<Lệnh 1>;

<Lệnh 2>;

...

Until <biểu thức logic>;

Lệnh Repeat ... Until lặp lại câu lệnh cho tới khi <biểu thức

logic> đúng.

Sơ đồ khối:

Ví dụ: Lặp lại một bài toán:

Var r:Real;

traloi:char;

Begin

Repeat

write(„Cho bán kính: ‟) ; Readln(r);

writeln(„Dien tich hinh tron: ‟,Pi*r*r);

write(„Ban co tiep tuc khong (c/k), nhan k đe thoi‟);

Until Upcase(traloi)=‟K‟;

End.

2.3.3. Câu lệnh WHILE...DO

Cấu trúc:

While <biểu thức logic> do <lệnh>;

Câu lệnh While lặp lại <lệnh> cho tới khi <biểu thức logic>

nhận giá trị sai (false). Bản thân <biểu thức logic> là một bước

kiểm tra khi vào vòng lặp while. Nếu thoả mãn <biểu thức logic>

Begin

Thùc hiÖn khèi lÖnh

BTLG

End

False

True

Page 64: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

64

thì lệnh được thực hiện nếu không thoả mãn thì máy sẽ bỏ qua vòng

lặp này. Khác với vòng lặp Repeat ... Until thì các lệnh trong thân

vòng lặp được thực hiện ít nhất một lần.

Ví dụ: Với bài toán trung bình cộng một dãy số ở ví dụ trước có

thể viết theo cấu trúc REPEAT .. UNTIL như sau:

PROGRAM Trung_binh_Day_So ;

VAR n, count : Integer ;

x, sum : real ;

BEGIN

count := 1 ;

sum := 0 ;

Write := (' Nhập n = ') ; readln (n) ;

REPEAT

Write (' Nhập giá trị thứ' , count, 'của x = ') ;

readln(x) ;

sum := sum + x ;

count := count + 1 ;

UNTIL count > n ;

Writeln (' Trung bình là =' , sum/n : 8 :2 ) ;

Readln ;

END.

Begin

G¸n biÕn ®iÒu khiÓn

BTLG

Thùc hiÖn khèi lÖnh

Thay ®æi gi¸ trÞ biÕn ®iÒu khiÓn

End

False

True

Page 65: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

65

CHƢƠNG 3: LẬP TRÌNH CẤU TRÚC TRONG PASCAL

(HÀM VÀ THỦ TỤC) Trong Pascal có hai loại chương trình con: Thủ tục

(Procedure) và Hàm (Function)

Sự khác nhau cơ bản và duy nhất của hai loại này là

Function trả lại cho một giá trị kết quả vô hướng thông qua tên của

Function và do đó nó được sử dụng trong một biểu thức. Còn

Procedure không thể viết trong các biểu thức.

3.1. Thủ tục trong Pascal

Thủ tục là một đoạn cấu trúc chương trình được chứa bên

trong chương trình Pascal như là một chương trình con. Thủ tục

được đặt tên và có thể chứa danh sách tham số hình thức (formal

parameters). Các tham số này phải được đặt trong dấu ngoặc đơn ().

Ta có thể truy xuất thủ tục bằng cách gọi tên của thủ tục. Chương

trình sẽ tự động truy xuất thủ tục đúng tên đã gọi và thực hiện các

lệnh chứa trong thủ tục đó. Sau khi thực hiện thủ tục xong, chương

trình sẽ trở lại ngay lập tức sau vị trí câu lệnh gọi thủ tục đó.

Có 2 loại thủ tục:

+ thủ tục không tham số

+ và thủ tục có tham số

3.1.1. Thủ tục không có các tham số hình thức

PROCEDURE < Tên thủ tục > ;

{ Các khai báo hằng, biến, kiểu cục bộ... }

BEGIN

{ ... các lệnh trong nội bộ thủ tục ... }

END ;

Ví dụ: Tìm số lớn nhất trong 3 trị số nguyên

PROGRAM Largest ; (* Xác định số lớn nhất trong 3 trị số

nguyên được nhập vào *)

VAR a, b, c : integer ;

yn : char ;

PROCEDURE maximum ;

VAR max : integer ;

BEGIN

IF a > b THEN max := a

ELSE max := b ;

IF c > max THEN max := c ;

Writeln (' Số lớn nhất là' , max ) ;

END ;

Page 66: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

66

BEGIN (* Ðoạn chương trình chính *)

yn := „Y„ ;

WHILE ( upcase(yn) = „Y „) DO

BEGIN

Writeln (' Nhập 3 số nguyên : ') ;

Readln (a, b, c ) ;

maximum; (* Lời gọi thủ tục maximum *)

Write('Tiếp tục nhập 3số mới không(y/n)?');

Readln (yn) ;

END ;

END.

Chú ý:

Trong chương trình trên, thủ tục maximum được khai báo

trước khi nó được truy xuất, các biến a, b, c được gọi nhập vào ở

chương trình chính và biến max được định nghĩa bên trong thủ tục.

Ðiều này cho ta thấy, không phải lúc nào cũng cần thiết khai báo

biến ngay đầu chương trình chính.

3.1.2. Thủ tục có các tham biến hình thức

PROCEDURE < Tên thủ tục > (<danh sách tham số hình thức:

kiểu biến>);

{ Các khai báo hằng, biến, kiểu cục bộ ... }

BEGIN

{ Các lệnh trong nội bộ thủ tục ... }

END ;

Khi viết một thủ tục, nếu có các tham số cần thiết, ta phải

khai báo nó (kiểu, số lượng, tính chất, ...). Các tham số này gọi là

tham số hình thức (formal parameters).

Một thủ tục có thể có 1 hoặc nhiều tham số hình thức. Khi

các tham số hình thức có cùng một kiểu thì ta viết chúng cách nhau

bởi dấu phẩy (,). Trường hợp các kiểu của chúng khác nhau hoặc

giữa khai báo tham số truyền bằng tham biến và truyền bằng tham

trị (sẽ học ở phần sau ) thì ta phải viết cách nhau bằng dấu chấm

phẩy (;).

Ví dụ: Tính giai thừa của một số

PROGRAM Tinh_Giai_thua ;

VAR

n : integer ; gt : real ; {các biến chung}

PROCEDURE giaithua (m : integer );

VAR i : integer ; {i là biến riêng}

Page 67: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

67

BEGIN

gt := 1 ;

FOR i := 1 TO m DO gt := gt * i ;

END ;

BEGIN (* Thân chương trình chính *)

Write('Nhập số nguyên n (0 <= n < 33) = ') ;

Readln (n) ;

If n>=0 then

Begin

giaithua (n) ;

Writeln ('Giai thừa của , n, là :' , gt: 10 : 0) ;

End

Else Writeln(' Không tính giai thừa của một số âm!');

Readln;

END.

Trong chương trình trên m là các tham số hình thức của thủ

tục giaithua.

Khi gọi thủ tục giaithua (n) thì tham số thực n được truyền

tương ứng cho tham số hình thức m.

3.2. Các loại biến nhớ trong lập trình cấu trúc

3.2.1. Biến chung: Định nghĩa, tác dụng và phạm vi tác dụng

Biến toàn cục (global variable): Còn được gọi là biến chung,

là biến được khai báo ở đầu chương trình, nó được sử dụng bên

trong chương trình chính và cả bên trong chương trình con. Biến

toàn cục sẽ tồn tại trong suốt quá trình thực hiện chương trình.

3.2.2. Biến riêng: Định nghĩa, tác dụng và phạm vi tác dụng

Biến cục bộ (local variable): Còn được gọi là biến riêng, là

biến được khai báo ở đầu chương trình con, và nó chỉ được sử dụng

bên trong thân chương trình con hoặc bên trong thân chương trình

con khác nằm bên trong nó (các chương trình con lồng nhau). Biến

cục bộ chỉ tồn tại khi chương trình con đang hoạt động, nghĩa là

biến cục bộ sẽ được cấp phát bộ nhớ khi chương trình con được gọi

để thi hành, và nó sẽ được giải phóng ngay sau khi chương trình

con kết thúc.

3.3. Hàm trong Pascal

Hàm là một chương trình con cho ta 1 giá trị kiểu vô hướng.

Hàm tương tự như thủ tục nhưng trả về một giá trị thông qua tên

hàm và lời gọi hàm tham gia trong biểu thức.

Cấu trúc một hàm tự đặt gồm:

Page 68: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

68

FUNCTION <Tên hàm> (<Tham số hình thức: kiểu biến>):

<Kiểu kết quả> ;

{ Các khai báo hằng, biến, kiểu cục bộ... }

BEGIN

{ Các khai báo trong nội bộ hàm ... }

END ;

Trong đó:

- Tên hàm là tên tự đặt cần tuân thủ theo nguyên tắc đặt

tên trong Pascal.

- Kiểu kết quả là một kiểu vô hướng, biểu diễn kết quả

giá trị của hàm.

Một hàm có thể có 1 hay nhiều tham số hình thức, khi có

nhiều tham số hình thức cùng một kiểu giá trị thì ta có thể viết

chúng cách nhau bằng dấu phẩy (,). Trường hợp các tham số hình

thức khác kiểu thì ta viết chúng cách nhau bằng dấu chấm phẩy (;).

Trong hàm có thể sử dụng các hằng, kiểu, biến đã được khai

báo trong chương trình chính nhưng ta có thể khai báo thêm các

hằng, kiểu, biến dùng riêng trong nội bộ hàm. Chú ý là phải có một

biến trung gian có cùng kiểu kết quả của hàm để lưu kết quả của

hàm trong quá trình tính toán để cuối cùng ta có 1 lệnh gán giá trị

của biến trung gian cho tên hàm.

Ví dụ:

FUNCTION TINH (x, y : integer ; z : real ) : real ;

Ðây là một hàm số có tên là TINH với 3 tham số hình thức

x, y, z. Kiểu của x và y là kiểu số nguyên integer còn kiểu của z là

kiểu số thực real. Hàm TINH sẽ cho kết quả kiểu số thực real.

Ví dụ:

Bài toán tính giai thừa (factorials)

PROGRAM giaithua ;

VAR x : integer ;

FUNCTION factorial (n : integer) : integer ;

VAR heso, tichso : integer ;

BEGIN

tichso := 1 ;

IF n <= 1 THEN factorial := 1

ELSE BEGIN

FOR heso := 2 TO n DO

tichso := tichso * heso ;

factorial := tichso;

Page 69: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

69

END ;

END ;

BEGIN

Write (' Nhập vào một số nguyên dương x = '); Readln (x) ;

Writeln (' Với x = , x , thì giai thừa sẽ là : x ! = ' ,

factorial(x))

Readln;

END.

Ghi chú :

- Khi khai báo kiểu dữ kiệu cho các tham số hình thức

trong thủ tục và hàm, ta cần phải chú ý điểm sau:

- Nếu kiểu dữ liệu của các tham số hình thức là các kiểu

dữ liệu có cấu trúc (kiểu array, string, kiểu record,... ) thì

việc khai báo kiểu dữ liệu cho các tham số hình thức nên

được khai báo theo cách gián tiếp, tức là phải thông qua

từ khóa TYPE.

Ví dụ:

Procedure Xuat1(hoten : string[25]);

Procedure Xuat2(mang:array[1..10] of integer);

Hai chương trình con Xuat1 và Xuat2 đều bị lỗi ở

phần khai báo kiểu dữ liệu cho hai tham số hình thức là

hoten và mang.

Ðể khắc phục lỗi này, ta sẽ khai báo gián tiếp một

kiểu dữ liệu str25 và M10 thông qua từ khóa TYPE như sau:

TYPE

Str25=string[25]; {Str25 là một kiểu chuỗi có độ dài 25}

M10=Array[1..10] of integer;

{M10 là một kiểu dữ kiệu mảng có 10 phần tử nguyên}

Tiếp đến, dùng 2 kiểu dữ liệu mới định nghĩa Str25

và M10 để định kiểu cho các tham số hình thức hoten và

mang như sau:

Procedure Xuat1(hoten : Str25);

Procedure Xuat2(mang: M10);

3.4. Hàm đệ quy

Một chương trình con mà trong quá trình thiết lập, nó sẽ gọi

chính bản thân nó thì chương trình con có tính đệ qui (recursion).

Ví dụ:

Bài toán tính giai thừa (factorials) theo cách đệ qui. Bài toán

này có phần chương trình chính giống như đã có ở ví dụ trước:

Page 70: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

70

PROGRAM Giaithua ;

(*Tính giai thừa của số n theo phương pháp đệ qui *)

VAR x : integer ;

FUNCTION factorial (n : integer) : longint ;

BEGIN

IF n <= 1 THEN factorial := 1

ELSE factorial := n * factorial (n -1);

END ;

BEGIN

Write (' Nhập vào một số nguyên dương x = ');

Readln (x) ;

Writeln ;

Writeln (' Kết quả ',x,'! = , factorial(x));

Readln;

END.

Giả sử ta nhập x = 4, thì 4! = factorial(n), với n = 4, ta có

sơ đồ minh họa như sau:

Chú ý:

- Ưu điểm của thuật toán đệ qui là ngắn gọn. Nó có khả

năng định nghĩa một tập hợp rất lớn các đối tượng bằng

một số các câu lệnh hữu hạn. Thuật toán đệ qui có vẻ

thích hợp cho các bài toán mà tự thân cấu trúc dữ liệu

của nó đã được định nghĩa theo lối đệ qui.

- Có một số thuật toán đệ qui sử dụng cho các bài toán đơn

giản có thể được thay thế bằng một thuật toán khác

không tự gọi chúng, sự thay thế đó được gọi là khử đệ

qui.

Page 71: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

71

- Trong một số bài toán ta có thể giải theo 2 cách: thuật

toán lặp (xem chương trước) và thuật toán đệ qui. Thông

thường, cách giải theo thuật toán lặp (WHILE .. DO) thì

tốt hơn so với thuật toán đệ qui vì đệ qui đòi hỏi thêm bộ

nhớ và thời gian. Khi đó các thanh ghi được sử dụng cho

lưu trữ và khi quay trở về phải khôi phục lại trạng thái cũ

trong mỗi lần gọi đến chương trình con. Mức độ phức tạp

có thể gia tăng khi trong chương trình con theo thuật toán

đệ qui có chứa những chương trình con khác. Vì vậy, khi

dùng đệ qui ta cần thận trọng, nhất là thuật toán này

thường không cho ta thấy rõ trực tiếp toàn bộ quá trình

giải các bước. Nói chung, chỉ khi naò không thể dùng

thuật toán lặp ta mới nên sử dụng thuật toán đệ qui.

Page 72: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

72

CHƢƠNG 4: MẢNG VÀ TẬP HỢP

4.1. Mảng

Mảng là kiểu có cấu trúc dùng để chỉ định một nhóm đối

tượng có cùng một kiểu dữ liệu nào đó. Ta có thể truy nhập đến

từng phần tử của mảng thông qua chỉ số của chúng.

4.1.1. Khai báo mảng

TYPE

MảngT=ARRAY[chỉ_số_đầu..chỉ_số_cuối] OF Kiểu_dữ_liệu;

VAR

A : MảngT;

Hoặc ta có thể viết:

A:ARRAY[chỉ_số_đầu .. chỉ_số_cuối] OF Kiểu_dữ_liệu;

Ví dụ:

TYPE

so = array [1 .. 10] of integer;

chu = array [1 .. 100] of char;

Color = {Red, Blue, Green, White, Black};

VAR

A, B, C : so;

X, Y, Z : chu;

M, N: array[-5 .. 5] of real;

K : array [„A‟ .. „B‟] of integer;

L : array [Color] of boolean;

Chú ý: Khi khai báo mảng, kiểu chỉ dẫn có thể là các ký tự, số

nguyên, kiểu liệt kê do người sử dụng định nghĩa, kiểu boolean.

Kiểu chỉ dẫn không được là kiểu real.

Ví dụ:

Var a,b:Array[1..10] of Integer;

i:Byte;

Begin

For i:=1 to 10 do Readln(a[i]);

(* Nếu muốn trình bày cho dễ hiểu hơn ta viết

như sau:

For i:=1 to 10 do

Begin

writeln(„Vao phan tu thu a[„,i,‟]:‟);

Readln(a[i]);

end; *)

b:=a;

Page 73: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

73

For i:=1 to 10 do Writeln(b[i]);

Readln;

End.

4.1.2. Một số thuật toán cơ bản trên mảng

Đọc dữ liệu vào mảng B có n phần tử.

For i := 1 to n do

Begin

Write(„B[„, i,‟ i]= ‟); Readln(B[i]);

End;

Khởi tạo mảng B (integer, Real) có n phần tử .

For i := 1 to n do

Begin

(B[i]) := 0;

End;

Viết dữ liệu từ mảng B có n phần tử ra màn hình.

For i := 1 to n do

Begin

Write(„B[„, i,‟ ]= ‟, B[i]);

End;

Tính toán với dữ liệu kiểu mảng.

Ví dụ 1: Viết chương trình cộng hai mảng một chiều:

Thuật toán:

- Khai báo biến n, i, mảng A, mảng B, mảng kết quả C ;

- Đọc n;

- Đọc mảng A, B

- Tính các phần tử của mảng C theo công thức:

C(i) = A(i) + b(i) (i = 1n)

For i := 1 to n do C[i] := A[i] + b[i];

- Viết mảng kết quả C ra màn hình

Ví dụ 2: Đếm trong 100 lần gõ các ký tự vào bàn phím, số lần xuát

hiện của các ký tự từ „A‟ đến „Z‟ là bao nhiêu.

Var

i: Integer;

ch : Char;

MC: Array[„A‟ .. „Z‟] of Integer; (* mảng đếm*)

Begin

For ch := „A‟ to „Z‟ Do MC[ch] := 0; (* Khởi tạo

mảng đếm*)

Page 74: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

74

For i:= 1 to 100 Do (* Đọc 100 ký tự gõ liên tiếp từ

bàn phím*)

Begin

Read(ch);

ch := UpCase(ch);

MC[ch] = MC[ch] + 1;

End;

For ch := „A‟ to „Z‟ Do

if MC[ch] > 0 then

Writeln(„So chu „, ch , „ = „, Mc[ch]:4);

End.

Chú ý: Nếu hai mảng A và B cùng kích thước và

cùng kiểu phần tử thì có thể thực hiện phép so sánh bằng và

khác (A = B; A <> B) song không thể thực hiện phép so sánh

lớn hơn hoặc nhỏ hơn.

Sắp xếp mảng.

Tồn tại rất nhiều thuật toán sắp xếp mảng. Trong phạm vi

chương trình, chúng ta chỉ nghiên cứu hai thuật toán sắp xếp trong

là thuật toán chọn trực tiếp (Selection Sort) và thuật toán sủi bọt

(Buble Sort).

a. Thuật toán chọn trực tiếp:

Thuật toán:

- Coi phần tử đầu tiên là số nhỏ nhất.

- Đem phần tử đầu tiên đó so sánh lần lượt với các số còn

lại trong dãy số. Nếu có phần tử thứ i nào đó nhỏ hơn nó

thì đổi chỗ phần tử ấy cho nó. Như vậy sau khi duyệt

xong dẫy số, phần tử đầu tiên là phần tử nhỏ nhất.

- Lặp lại thuật toán lần lượt với các phần tử thứ hai, thứ 3

vv... Chương trình:

....................................................

For i := 1 to n - 1 do

For j := i +1 to n do

if A[i] >A[j] then

Begin

Tam := A[i];

A[i] := A[j];

A[j] := Tam;

End;

Page 75: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

75

end;

............................................

b. Thuật toán Buble Sort

Thuật toán:

- Lần lượt so sánh phần tử thứ i với phần tử thứ i-1 (i= n

1). Nếu phần tử thứ i < phần tử thứ i-1 thì tiến hành đổi

chỗ cho chúng. Sau khi duyệt xong dẫy số, phần tử thứ

nhất sẽ là phần tử nhỏ nhất.

- Lặp lại bước trên với i = n 2. Sau khi duyệt xong dãy

số, phần tử thứ hai sẽ là phần thử nhỏ thứ hai.

- Lặp lại n –1 bước, ta sẽ có được dãy số sắp xếp theo thứ

tự tăng dần

Nhận xét:

Với cách giải quyết vấn đề như vậy, phần tử nhẹ sẽ tử

tử được đổi chỗ lên phía trên tương tự như việc nổi bong

bóng nước do vậy có tên là thuật toán sủi bọt

Chương trình

.....................................

For i := 1 to n - 1 do

For j := n Downto i do

if A[j] < A[j – 1] then (* đổi chỗ A[i] vaf A[j - 1]*)

Begin

Tam := A[j]

A[j] := A[j-1];

A[-1j] := Tam;

End;

.....................................

4.2. Tập hợp

Định nghĩa và khai báo

Một tập hợp bao gồm một số phần tử có cùng kiểu gọi là

kiểu phần tử. Số các phần tử tối đa trong tập hợp là 256, kiểu phần

tử có thể là kiểu vô hướng liệt kê, kiểu miền con hoặc kiểu char.

Khái niệm tập hợp trong ngôn ngữ Pascal gắn liền với tập hợp

trong toán học.

Ta có hai cách khai báo kiểu tập hợp.

Khai báo gián tiếp

Type CHUCAI = SET OF CHAR; {Tập các chữ cái}

CHUSO = SET OF 0..9;

Page 76: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

76

NGAYTT = (CHUNHAT, HAI, BA, TU, NAM,

SAU, BAY);

NGAY = SET OF NGAYTT;

Var cc: CHUCAI;

cs: CHUSO;

ng: NGAY;

Khai báo trực tiếp

Var cc: SET OF CHAR;

cs: SET OF 0..9;

ng: SET OF (CHUNHAT, HAI, BA, TU, NAM,

SAU, BAY);

Mô tả tập hợp

Một tập hợp được mô tả bằng cách liệt kê các phần tử của

tập hợp, chúng cách nhau dấu , (phẩy) và được đặt trong cặp dấu []

(ngoặc vuông). Các phần tử có thể là hằng, biến, biểu thức. Cụ thể,

ta xét các tập hợp dưới đây.

[] {Tập hợp rỗng}

[3..8] {Tập hợp chữ số từ 3 đến 8}

[0..50, 60, 70, 80, 90]

[„A‟..‟G‟] {Tập hợp chữ cái từ A đến G}

[i, i+j*2, 10, 12] {i,j phải là biến số nguyên}

Các phép toán trên tập hợp

a. Phép gán

Ta có thể gán giá trị của tập hợp đã được mô tả vào các

biến tập hợp cùng kiểu. Tập rỗng có thể gán cho mọi biến kiểu

tập hợp.Với cách khai báo như trình bày ở trên, ta có thể thực

hiện phép gán như dưới đây.

cc := [„a‟ .. „n‟];

cs := [1..5, 7, 9];

ngay := [];

b. Phép hợp

Hợp của hai tập hợp A và B là một tập hợp ký hiệu A +

B có các phần tử bao gồm tất cả các phần tử của 2 tập hợp. Ta

hãy xem ví dụ dưới đây.

A := [2 .. 9];

B := [7 .. 15];

Khi đó A + B = [2 .. 15];

Lưu ý: A + B = B + A

Page 77: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

77

c. Phép giao

Giao của hai tập hợp A và B là một tập hợp ký hiệu A *

B có các phần tử vừa của tập hợp A vừa của tập hợp B. Ta hãy

xem ví dụ dưới đây.

A := [2 .. 9];

B := [7 .. 15];

Khi đó A * B = [7 .. 9];

Lưu ý: A * B = B * A

d. Phép trừ

Hiệu của hai tập hợp A và B là một tập hợp ký hiệu A -

B có các phần tử của tập hợp A mà không có trong tập hợp B.

Ta hãy xem ví dụ dưới đây.

A := [2 .. 9];

B := [7 .. 15];

Khi đó A - B = [2 .. 6];

e. Phép thử

Phép thử IN cho phép ta xem một giá trị nào đó có thuộc

tập hợp hay không. Nếu có cho kết quả là TRUE, ngược lại cho

kết quả là FALSE. Ta hãy xem ví dụ dưới đây.

A := [2 .. 9];

i := 3;

i IN A {cho kết quả là True}

f. Các phép toán so sánh =, <>, <=, >=

Hai tập hợp muốn so sánh với nhau thì chúng phải có

cùng kiểu phần tử. Kết quả của phép so sánh trả về kiểu

Boolean (đúng – sai).

- Phép so sánh = (bằng). Hai tập hợp A và B bằng nhau (A =

B cho kết quả True) khi chúng có các phần tử bằng nhau

từng đôi một (không kể thứ tự các phần tử trong tập hợp).

- Ngược lại với phép so sánh bằng là so sánh khác, tức là các

phần tử A và B không bằng nhau từng đôi một. Nếu A = B

cho kết quả TRUE thì A <> B cho kết quả FALSE và ngược

lại.

- Phép so sánh <= (nhỏ hơn hoặc bằng). A <= B cho kết quả là

True khi mọi phần tử của A đều có trong B.

- Phép so sánh >= (lớn hơn hoặc bằng). A >= B cho kết quả là

True khi mọi phần tử của B đều có trong A.

Page 78: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

78

Viết và đọc dữ liệu trên tập hợp

Đối với dữ liệu kiểu tập hợp ta không thể viết ra hoặc đọc

vào bằng các lệnh Read, Readln, Write, Writeln. Tuy nhiên ta có

thể lập trình thực hiện các thao tác này.

Ví dụ sau sẽ nhập vào một tập hợp kiểu Char và in lên mà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ó bao nhiêu phần tử? „); Readln(n);

cc := [];

For i := 1 to n do

Begin

Write(„ Phần tử thứ „ ,i, ‟ là: ‟);

Readln(ch);

cc:= cc + [ch];

End;

Writeln(„Các phần tử trong tập hợp bạn vừa nhập‟);

For ch := „A‟ to „z‟ do

If ch IN cc then

Write(ch: 5);

Readln;

End.

Page 79: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

79

CHƢƠNG 5: DỮ LIỆU KIỂU XÂU KÝ TỰ

5.1. Khai báo xâu và các phép toán trên xâu

Một xâu ký tự được định nghĩa bằng từ khoá STRING, theo

sau là số ký tự cực đại có thể có của xâu ký tự, và được đặt trong

ngoặc vuông:

STRING [độ_dài_cực_đại];

Ví dụ:

VAR

My_name: String [30];

Line: String [80];

Hàm chuẩn Length(st) cho ta độ dài của xân ký tự st.

Một xâu ký tự rỗng ký hiệu st = „‟. Khi đó length(st) = 0.

Truy nhập vào phần tử của xâu ký tự:

Ta có thể truy nhập vào từng ký tự một của xâu ký tự với tên

biến và chỉ số đặt trong ngoặc vuông như khi truy nhập vào phần tử

của mảng. Chỉ số này có thể chạy từ 1 tới độ dài cực đại của xâu ký

tự.

Ví dụ:

IF My_name[3] = „a‟ then

Writeln („Ký tự thứ 3 của xâu ký tự là : a‟);

Nếu vị trí ký tự đó nằm ngoài độ dài thực của xâu ký tự thì

phẩn tử đó của xâu không có giá trị xác định. Vì vậy khi truy nhập

vào từng phần tử của xâu chữ ta còn cần phải kiểm tra xem vị trí đó

có nằm trong khoảng độ dài thực của xâu hay không.

Ví dụ:

IF length(My_name) >3 then

Writeln(„Ký tự thứ 3 của My_name là: ‟,My_name[3]);

Các thao tác trên xâu ký tự:

Phép cộng xâu: Xâu ký tự có thể được sử dụng như là các

toán hạng trong các biểu thức để ghép xâu ký tự qua dấu

cộng (+).

Ví dụ:

My_name := „Nguyễn‟ + „ Thị‟ + „ Hoa‟;

Cho kết quả: My_name = „Nguyễn Thị Hoa‟

Lưu ý: không cho phép tính trừ, nhân, chia,.. cho xâu ký tự.

So sánh xâu ký tự:

Xâu ký tự có thể được dùng trong các biểu thức quan hệ để

so sánh.

Page 80: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

80

- Khi so sánh hai xâu ký tự, các ký tự của hai xâu được so

sánh từng cặp một từ trái qua phải theo giá trị của bảng

m• ASCII.

- Nếu hai xâu có độ dài khác nhau song số ký tự giống

nhau đến độ dài xâu ngắn nhất thì xâu có độ dài ngắn

hơn được coi là bé hơn. Hai xâu ký tự được coi là bằng

nhau nếu như cả về nội dung lẫn độ dài của chúng là

giống nhau.

Ví dụ:

„FILENAME‟ = „FILENAME‟ :cho giá trị TRUE

„FILENAME‟ < „FILENAME‟ :cho giá trị FALSE

„FILENAME‟ < „FILENAME A‟ :cho giá trị TRUE

Viết ra màn hình:

Có thể dùng write(st) và writeln(st) cho một xâu ký tự st

Đọc:

Readln(st) sẽ đọc các ký tự cho xâu st với độ dài thực là số

ký tự gõ vào từ bàn phím.

5.2. Các thủ tục và hàm xử lý xâu

* Hàm Length(st): cho ta độ dài của xâu ký tự st.

* Thủ tục Delete(st, Pos, Num): sẽ xoá bỏ trong xâu ký tự st

một số ký tự Num số, kể từ vị trí Pos.

* Thủ tục Insert(st1, st2, Pos): sẽ xen vào xâu st2 một xâu ký

tự st1 kể từ vị trí Pos

* Thủ tục Str(Value, st): sẽ biến đổi giá trị bằng số nguyên

hoặc thực Value thành một dãy ký tự biểu diễn số đó

* Thủ tục Val(st, Var1, Code): sẽ biến đổi một xâu ký tự st

(biểu diễn một số nguyên hoặc thực) thành một số nguyên hoặc

thực chứa trong Var1. Code là số nguyên để phát hiện lỗi. Nếu

phép biến đổi mà đúng thì Code có giá trị = 0, nếu sai do st không

biểu diễn đúng số nguyên hoặc số thực, Code sẽ nhận giá trị bằng

vị trí của ký tự sai trong xâu chữ st.

Ví dụ:

X là biến thực, st = „123.56‟, Result là biến nguyên

Val(st, X, Result) cho ta X = 123.56 và Result = 0.

Ví dụ:

I là biến nguyên, st = „456‟, Result là biến nguyên

Val(st, I, Result) cho ta I = 456 và Result = 0.

Ví dụ:

I là biến nguyên, st = „456A‟, Result là biến nguyên

Page 81: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

81

Val(st, I, Result) cho ta I không xác định và Result = 4.

*Hàm Copy(st, Pos, Size): copy Size ký tự trong st từ vị trí

Pos.

*Hàm ghép concat(st1, st2, …., stN): Sẽ ghép nối tất cả các

xâu ký tự theo thứ tự trên. Nếu tổng số chiều dài của các xâu ký tự

lớn hơn 255 thì máy sẽ báo lỗi. (Có thể thay thế bằng phép +).

*Hàm vị trí Pos(st1, st2): sẽ cho ta vị trí đầu tiên của xâu st1

gặp trong xâu st2. Nếu không tìm thấy Pos có giá trị = 0.

*Truy xuất từng ký tự trong chuỗi

Ta có thể truy xuất từng ký tự trong chuỗi thông qua tên

biến, nó tương tự như việc truy xuất một mảng, dĩ nhiên kiểu của

từng ký tự trong chuỗi là Char. Giã sử ta có biến St là biến kiểu

string thì St[i] (i là một số nguyên thoả 1 <= i <= length(St)) là ký

tự thứ i của chuỗi.

Dưới đây là chương trình cho nhập vào một số nhị phân, in

ra kết quả là số thập phân tương ứng, sử dụng việc truy xuất các ký

tự trong chuỗi nhị phân Bin. HamMu là hàm mũ an (xin xem cách

thiết kế ở chương unit).

Var Bin: String[20];

Dec, i: Integer;

Begin

Write(„ Nhập một số nhị phân: „); Readln(Bin);

Dec := 0;

For i := 1 to length(Bin) do

If Bin[i] = „1‟ Then

Dec := Dec + HamMu( 2, length(Bin)-i );

Write(„Số nhị phân vừa nhập có giá trị là: ‟ , Dec);

Readln;

End.

Page 82: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

82

CHƢƠNG 6: DŨ LIỆU KIỂU BẢN GHI VÀ TỆP 6.1. Bản ghi

Để tạo ra một kiểu cấu trúc dữ liệu mới với các phần tử dữ

liệu có kiểu khác nhau nhưng có liên kết với nhau, người ta định

nghĩa ra Bản ghi (Record).

Mô tả Record

TYPE

T = Record

s1: T1;

s2: T2;

......

sn: Tn;

END;

Ví dụ: Một địa chỉ bao gồm các dữ liệu như số nhà, tên phố, thành

phố:

TYPE

Dia_Chi = Record

So_Nha: integer;

Pho: String[20];

Thanh_Pho : String [15];

End;

Như vậy chúng ta có 3 trường là So_Nha, Pho, Thanh_Pho

với kiểu khác nhau và chúng được liên kết lại với nhau.

Ví dụ: Mô tả thời gian DATE ta có 3 trường: Ngày, Tháng và Năm.

TYPE

Date = Record

Ngay : 1..31;

Thang: 1..12;

Nam: integer;

End;

Hoặc

TYPE

Date = Record

Ngay : 1..31;

Thang: (Jan, Feb, Mar, Apr, May, Jun,

Jul, Aug, Sep, Oct, Nov, Dec);

Nam: integer;

End;

Page 83: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

83

Ví dụ: Mô tả nhân sự hay phiếu cán bộ của phòng tổ chức, ta phải

dùng các trường Họ Tên, Ngày sinh, Địa Chỉ, Lương.

TYPE

Nhan_Su = Record

Ho_Ten : String [30];

Ngay_Sinh : Record

Ngay: 1..31;

Thang: 1..12;

Nam : integer;

End;

Cho_O : Dia_Chi;

Luong : Real;

End;

Sử dụng Record:

Để thâm nhập vào một trường của Record, ta cần phải dùng

tên biến kiểu Record, sau đó dấu chấm (.) và tên trường của

Record.

Ví dụ:

VAR

Nguoi1, Nguoi2 : Nhan_Su;

Begin

Writeln ('Ho và tên người 1:');

Readln(Nguoi1.Ho_Ten);

Writeln ('Ngay sinh :');

Readln(Nguoi1.Ngay_Sinh.Ngay);

......

End;

Lưu ý là không thể dùng các thao tác sau:

- Viết ra màn hình hoặc đọc từ bàn phím cả một biến kiểu

Record như: Readln(Nguoi1) hoặc Writeln(Nguoi1);

- So sánh các Record bằng các phép toán quan hệ như sau: <,

>, <=, >=. Riêng các phép so sánh <> và = thì có thể dùng

với hai biến có cùng kiểu Record.

- Tất cả các phép toán số học và logic.

Câu lệnh WITH.

Qua ví dụ trên, ta thấy việc thâm nhập vào các trường của

một biến kiểu Record là tương đối phức tạp và có phần tẻ nhạt vì

phải dùng nhiều lần tên biến, cùng với các tên trường.

Để đơn giản cách viết Pascal đưa ra lệnh WITH .. DO ..

Page 84: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

84

Ví dụ:

With Nguoi1 Do

Begin

Writeln (' Ho va ten Nguoi 1: ');

Readln (Ho_Ten);

With Ngay_Sinh Do

Begin

Write('Ngay Sinh:');

readln(Ngay);

.....

End;

End;

Như vậy chúng ta còn có thể lồng các chỉ thị WITH .. DO ..

vào với nhau để thâm nhập vào các trường ở sâu trong Record phức

tạp:

Ví dụ:

With A Do

With B Do

Ở đây B là một trường của A.

Ta có thể viết: With A, B Do

6.2. Mảng các bản ghi

Trong thực tế, ta thường phải quản lý một danh sách sinh

viên của một lớp, một danh sách các quyển sách trong thư viện. Vì

thế mảng các bản ghi được dùng rất phổ biến.

Khi khai báo :

VAR

DS : Array[1..50] of KSVIEN;

hoặc :

TYPE

KMang = Array[1..50] of KSVIEN;

VAR

DS: KMang;

thì ta có một mảng DS gồm 50 phần tử DS[1],..., DS[50] cùng kiểu

bản ghi KSVIEN. Mỗi DS[i], i=1,..., 50 là một bản ghi có 5 trường

Hoten, Maso, Toan, Ly, DTB lưu trữ các thông tin về sinh viên thứ

i trong danh sách.

Ðể nhập dữ liệu ( Hoten, Maso, Toan, Ly ) rồi tính Ðiểm

trung bình cho 50 sinh viên này, ta dùng vòng lặp For phối hợp với

câu lệnh WITH :

Page 85: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

85

For i:=1 to 50 do

WITH DS[i] DO

Begin

Write(„Nhap ho ten sinh vien thu „,i,‟ : „);

Readln(Hoten);

Write(„Nhap ma so sinh vien thu „,i,‟ : „);

Readln(Maso);

Write(„Nhap điểm Toan, Ly sinh vien thu „,i,‟:„);

Readln(Toan, Ly);

DTB:=(Toan + Ly)/2;

End;

Ðể sắp xếp danh sách sinh viên theo trật tự giảm của DTB

sao cho người có DTB cao thì đứng trước, người có DTB thấp thì

đứng sau, ta có thể áp dụng phương pháp sắp xếp mảng, song chỉ

lấy trường DTB làm tiêu chuẩn so sánh:

For i:=1 to 49 do

For j:=i+1 to 50 do

If DS[i].DTB < DS[j].DTB then

Begin { Ðổi chỗ DS[i] và DS[j] }

Z:=DS[i];

DS[i]:=DS[j];

DS[j]:=Z;

End;

Ở đây Z là biến bản ghi cùng kiểu với các phần tử DS[i].

Khi sắp xếp theo DTB tăng hoặc giảm thì trường DTB được

gọi là "khóa" ( key) sắp xếp.

Một cách tương tự, có thể sắp xếp danh sách sinh viên theo

khóa là điểm Toan, hoặc điểm Ly, hoặc Maso, hoặc theo Hoten.

Ðể in danh sách đã sắp xếp lên màn hình, ta dùng lệnh:

For i:=1 to 50 do WITH DS[i] DO

Writeln( i:2,Hoten:25, Maso:9 , Toan:5:1, Ly:5:1, DTB:5:1);

6.3. Tệp

Khái niệm về tệp:

Tệp hay tệp dữ liệu là một tập hợp các dữ liệu có liên

quan với nhau và có cùng kiểu được nhóm lại với nhau tạo

thành một dãy. Chúng thường được chứa trong một thiết bị

nhớ ngoài của máy tính (đĩa mềm, đĩa cứng, băng từ...) với

một cái tên nào đó.

Page 86: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

86

Định nghĩa một kiểu tệp T với các phần tử có kiểu là

KPT (kiểu phần tử) được viết trong phần mô tả kiểu với từ

khoá FILE OF như sau:

TYPE

T = FILE OF KPT;

Tức là: Kiểu_Tệp = FILE OF Kiểu_Phần_Tử;

Sau đó là khai báo một biến tệp (FileVar) trong phần

khai báo biến:

VAR

Biến_tệp: Kiểu_Tệp;

Hoặc khai báo trực tiếp như sau:

VAR

Biến_tệp FILE OF Kiểu_Phần_Tử;

Ví dụ:

TYPE

FileInteger = FILE OF integer;

FileReal = FILE OF real;

FileBoolean = FILE OF boolean;

Nhan_Su = RECORD

Ten : String[30];

Tuoi : byte;

Luong : real;

End;

FNhanSu = FILE OF Nhan_Su;

VAR

F1, F2 : FileInteger;

F3 : FileReal;

FNS : FNhanSu;

F5 : FILE OF Char;

F6 : FILE OF array[1..5] of integer;

F6 là biến tệp được khai báo trực tiếp trong phần Var

với các phần tử là mảng một chiều độ dài mảng là 5.

Kiểu phần tử của tệp có thể là bất kỳ kiểu dữ liệu nào

(kiểu vô hướng, kiểu có cấu trúc như mảng, bản ghi,..) trừ

kiểu tệp (nghĩa là không có kiểu tệp của tệp)

Cấu trúc và phân loại tệp

Các phần tử của tệp không có tên và việc truy nhập

không thể tuỳ tiện được. Các phần tử của tệp được sắp xếp

thành một dãy và ở mỗi thời điểm chương trình chỉ có thể

Page 87: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

87

truy nhập vào một phần tử của tệp thông qua giá trị của một

biến đệm. Biến đệm được dùng để đánh dấu vị trí truy nhập

của tệp.

Mỗi tệp đều được kết thúc bằng một dấu hiệu đặc biệt

để báo hiệu hết tệp, hay gọi là EOF(F) (End of file F). Pascal

có một hàm chuẩn EOF, kiểu boolean, với tham số là một

biến tệp để thử xem vị trí truy nhập tệp có nằm ở cuối tệp

hay không, nếu đang ở vị trí cuối tệp thì hàm EOF(F) có giá

trị là TRUE, nếu không thì hàm nhận giá trị FALSE.

Mở tệp mới để lƣu trữ dữ liệu:

Chương trình chỉ có thể lưu trữ dữ liệu vào một tệp

sau khi tệp đã được mở.

* Mở tệp để ghi:

TP dùng 2 cặp thủ tục đi liền nhau theo thứ tự:

ASSIGN (Biến_tệp , Tên_tệp);

REWRITE (Biến_tệp);

Ví dụ:

ASSIGN (FNS , 'NhanSu.Dat');

REWRITE (FNS);

Tên tệp là tên của tệp đặt trong thiết bị nhớ ngoài được đưa

vào dưới dạng là một String.

* Ghi các giá trị vào tệp với thủ tục Write:

Cách viết:

WRITE (Biến_tệp, Các giá trị);

Trong đó, các giá trị có thể là các hằng, các biến, các biểu

thức có cùng kiểu.

Bước cuối cùng là đóng tệp lại bằng thủ tục:

CLOSE(Biến_tệp);

Chú ý: Một tệp có thể dùng làm tham số của chương trình

con (Procedure hoặc Function) với lời khai báo bắt buộc

phải sau chữ Var (tức là tệp được dùng làm tham biến).

Ví dụ:

TYPE

FI = File of Integer;

St = String [30];

Procedure Ghi_Tep(Var F: FI ; Ten : St );

Đọc dữ liệu từ một tệp đã có:

Muốn đọc dữ liệu của một tệp đã có đầu tiên ta phải mở tệp

đó ra:

Page 88: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

88

* Mở tệp để đọc:

TP dùng cặp thủ tục sau:

ASSIGN (Biến_Tệp, Tên_tệp);

RESET (Biến_Tệp);

* Đọc dữ liệu từ tệp:

Việc đọc các phần tử từ tệp ra sau khi mở tệp được

thực hiện bằng thủ tục READ:

Cách viết:

READ (Biến_Tệp , Các_biến);

Lưu ý: là trong thủ tục READ ta chỉ có thể đọc giá trị của tệp

để gán giá trị cho các biến và chỉ biến mà thôi (không được

là hằng, hay biểu thức,... như trong thủ tục ghi tệp).

Việc đọc một phần tử của tệp còn cần có một điều

kiện: phải thử xem tệp có còn phần tử không (tức là đã ở

cuối tệp chưa?). Hàm chuẩn EOF sẽ báo cho biết. Do vậy

trước khi đọc tệp cần kiểm tra xem tệp đó đã ở cuối tệp chưa

bằng câu lệnh:

IF not EOF(Biến_Tệp) then READ(Biến_Tệp, X);

Nếu muốn đọc tất cả các phần tử của tệp

WHILE NOT EOF(Biến_Tệp) DO

Begin

READ (Biến_Tệp, X);

....

End;

Việc cuối cùng là đóng tệp lại: CLOSE(Biến_Tệp);

* Tệp với các phần tử của tệp là dữ liệu có cấu trúc:

Vì phần tử của tệp là cả một bản ghi nên để ghi vào

tệp ta phải dùng:

Write (FNS, Nguoi);

chứ không thể ghi riêng rẽ từng thành phần, từng trường

như:

Write (FNS, Nguoi.Ten);

Tệp truy nhập trực tiếp:

Cách viết:

SEEK (Biến_Tệp, No)

trong đó No là số thứ tự của phần tử trong tệp

Cần chú ý là phần tử đầu tiên của tệp được đánh số là 0;

Theo thủ tục này, máy sẽ đặt vị trí con trỏ tệp đến phần tử

thứ No. Sau đó ta chỉ việc dùng thủ tục Read để đọc phần tử

Page 89: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

89

đó ra, hoặc Write để ghi giá trị mới vào. Như vậy ta có thể

cập nhật một tệp một cách dễ dàng.

Các thủ tục và hàm xử lý tệp của TP:

* FileSize(Biến_Tệp) : Hàm cho số phần tử của tệp. Hàm

nhận giá trị 0 khi tệp rỗng.

* FilePos(Biến_Tệp) : Hàm cho vị trí tức thời của con trỏ

tệp. Phần tử đầu tiên là số 0.

* Erase(Biến_Tệp) : Thủ tục xoá file trên đĩa.

* Rename(Biến_Tệp, Str) : Thủ tục thay đổi tên tệp với tên

có kiểu String chứa trong biến Str. Lưu ý là tên mới không

được trùng với một tên tệp nào có sẵn trong đĩa.

Tệp văn bản (TEXT File)

Trong Pascal có một kiểu tệp đ• được định nghĩa

trước, đó là tệp văn bản được định nghĩa với từ chuẩn TEXT

Ví dụ:

VAR

F1, F2 : TEXT;

Các phần tử của tệp kiểu TEXT là các ký tự, song

TEXT file khác với FILE OF Char ở chỗ tệp văn bản được

tổ chức thành từng dòng với độ dài mỗi dòng khác nhau nhờ

có thêm các dấu hết dòng (EndOfLine) hay dấu chấm xuống

dòng. Đó là cặp ký tự điều khiển: CR(Carriage Return: Nhảy

về đầu dòng, mã ASCII = 13) và LF (Line Feed : Nhảy

thẳng xuống dòng tiếp theo, mã ASCII = 10).

Ví dụ:

Đoạn văn bản sau:

Hom nay la Chu nhat

12345

Ket thuc

được hiểu là máy sẽ chứa trong tệp văn bản thành một dãy

như sau:

Hom nay la Chu nhat CR LF 12345 CR LF Ket thuc EOF

Việc đọc và ghi tệp văn bản cũng như các tệp tuần tự

ở trên chỉ khác ở chỗ. Tệp văn bản không chấp nhận nhận xử

lý trên các biến có cấu trúc (mảng, bản ghi, file).

Tệp không định kiểu (UnTyped File)

Tệp không định kiểu là một kiểu file đặc biệt, được

định nghĩa ra trong TP và nó là một công cụ mạnh để bạn có

thể khai thác. Đó là tệp khi định nghĩa hay khai báo ra, ta

Page 90: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

90

không nói rõ nó chứa gì, không nói rõ bản chất của các dữ

liệu được ghi trong đó.

Cách viết:

VAR

F1 , F2 : FILE;

F1 và F2 ở đây là hai tệp không định kiểu.

Không như các tệp văn bản hay tệp có định kiểu, thủ

tục Reset và Rewrite đối với tệp không định kiểu F1 và F2

còn có thêm một tham số nữa, đó là kích thước của Record.

Ví dụ:

RESET (F1, 1): có nghĩa là chuẩn bị FILE để đọc và

đọ dài của Record = 1byte.

Nếu chỉ ghi RESET(F1): thì máy sẽ coi độ dài Record

là 128 bytes.

Việc ghi và đọc đối với tệp không định kiểu còn dùng

đến hai thủ tục là:

BlockRead và BlockWrite.

Ví dụ:

BlockRead(F1 , Str, SizeOf(Str), RecordRead);

Hàm SizeOf(Str) để lấy kích thước của biến Str.

RecordRead để nhận biết có bao nhiêu Record đã

được đọc từ đĩa ra Str. Nếu tham số này có giá trị = 0 báo

rằng hết dữ liệu để đọc.

Thủ tục BlockWrite(F2, Str, RecordWrite);

RecordWrite là số Record thực sự cần ghi vào đĩa.

Page 91: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

91

CHƢƠNG 7: BIẾN CON TRỎ 7.1. Khai báo

Khi khai báo một biến, dù là biến đơn hay biến thuộc kiểu

dữ liệu có cấu trúc mặc nhiên chúng ta đã quy định độ lớn vùng

nhớ dành cho biến.

Ví dụ:

a: Real; biến a cần 6 byte

b: aray[1..100] of Integer; biến mảng b cần 200 byte.

Việc khai báo như trên thường là phỏng đoán dung lượng

cần thiết chứ không thật chính xác. Để tránh lỗi chúng ta thường

khai báo dôi ra gây nên lãng phí bộ nhớ. Việc xác định địa chỉ lưu

trữ biến và cấp phát bộ nhớ được thực hiện khi biên dịch, nghĩa là

các địa chỉ này cũng như dung lượng bộ nhớ cần cấp phát đã được

cố định trước khi thực hiện các thao tác khác. Các đại lượng này

không thay đổi trong suốt quá trình thực hiện chương trình, nói

cách khác đây là các đại lượng tĩnh. Để tiết kiệm bộ nhớ, ngay khi

chương trình đang làm việc người lập trình có thể yêu cầu cấp phát

bộ nhớ cho các biến, điều này được gọi là cấp phát bộ nhớ động.

Cấp phát bộnhớ động được thực hiện thông qua biến con trỏ.

Kiểu con trỏ là một kiểu dữ liệu đặc biệt dùng để biểu diễn

các địa chỉ. Kiểu con trỏ do người lập trình định nghĩa theo cú pháp

sau:

Type

Tên kiểu con trỏ = ^Kiểu dữ liệu;

Tên kiểu con trỏ tuân theo quy định đặt tên của Pascal, Kiểu

dữ liệu của kiểu con trỏ là các kiểu dữ liệu đã định nghĩa trước

trong pascal. ðể một kiểu con trỏ có thể đại diện cho một biến nào

đó thì kiểu dữ liệu viết sau ký tự ^ sẽ phải giống như kiểu dữ liệu

của biến đó, nói cách khác hai kiểu dữ liệu phải tương thích.

Ví dụ 7.1: Khai báo kiểu con trỏ:

Type

Chu = string[20];

CT1 = ^Byte;

CT2 = ^chu;

CT3 = ^Nguoi;

Nguoi = record

Hoten:string[20];

Namsinh: 1900..2100;

End;

Page 92: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

92

Ví dụ trên định nghĩa ba kiểu con trỏ, riêng kiểu CT3 cách

định nghĩa có vẻ hơi ngược là định nghĩa kiểu con trỏ trước, định

nghĩa kiểu dữ liệu sau. Thật ra chúng ta cứ nên theo thói quen là

định nghĩa kiểu dữ liệu trước rồi định nghĩa kiểu con trỏ sau, cách

định nghĩa CT3 chẳng qua là muốn giới thiệu để chúng ta biết rằng

Pascal cho phép làm ngược lại, tuy nhiên cần nhớ rằng nếu định

nghĩa kiểu con trỏ trước thì ngay trong phần Type phải định nghĩa

kiểu dữ liệu (không nhất thiết phải liền ngay sau định nghĩa kiểu

con trỏ).

Biến con trỏ

Biến con trỏ cũng như biến mảng, biến kiểu bản ghi hay kiểu

tập hợp có thể khai báo thông qua kiểu con trỏ hoặc khai báo trực

tiếp. Biến con trỏ có định kiểu sẽ trỏ đến một kiểu dữ liệu cụ thể.

Để thuận tiện từ nay chúng ta dùng thuật ngữ "Con trỏ" thay

cho thuật ngữ " Biến con trỏ"

Ví dụ 7.2:

Var

So: ^Integer;

Sinhvien: Ct3;

Hoten: Ct2;

Thutu, Mahoso: ^Word;

Trong ví dụ trên chúng ta đã khai báo ba con trỏ So, Thutu,

Mahoso theo kiểu trực tiếp, hai con trỏ Sinhvien và Hoten khai báo

thông qua kiểu đã định nghĩa trong ví dụ 7.1. Con trỏ So trỏ tới

kiểu dữ liệu số nguyên, con trỏ Sinhvien trỏ tới kiểu dữ liệu bản ghi

còn con trỏ Hoten trỏ tới kiểu dữ liệu chuỗi.

Địa chỉ của các biến động và biến tĩnh sẽ được Pascal lưu trữ

vào biến con trỏ điều này có nghĩa là biến con trỏ không dùng để

lưu trữ các giá trị của biến mà là địa chỉ của biến. Dù kích thước

vùng dữ liệu mà các biến con trỏ trỏ tới khác nhau thế nào thì kích

thước của biến con trỏ cũng vẫn là 4 byte.

Các hàm và thủ tục xử lý biến con trỏ được Pascal lưu trữ

trong Unit System.

Quy ước: Các biến con trỏ gọi là tương thích nếu chúng trỏ

tới cùng một kiểu dữ liệu

Page 93: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

93

7.2. Các phép toán

Gán giá trị ban đầu:

Giả sử ct là một biến con trỏ đã được định nghĩa, để đảm bảo

rằng ct chưa trỏ đến bất kỳ một đối tượng nào, nghĩa là ct là một

con trỏ rỗng chúng ta phải gán cho ct giá trị NIL

ct := Nil;

Gán địa chỉ của một đối tượng cho con trỏ:

Giả sử ct là một con trỏ và x là một đối tượng (biến, hàm,

thủ tục), có ba cách gán địa chỉ của đối tượng x cho con trỏ ct:

a. ct := @x;

Trong phép gán trên toán tử @ tác động trên đối tượng x sẽ

gán vào con trỏ ct địa chỉ kiểu Pointer của đối tượng đó.

b. ct := Addr(x);

Hàm Addr() cho địa chỉ của đối tượng x, địa chỉ này thuộc

kiểu Pointer

c. ct := Ptr(segment,offset) ;

Hàm Ptr trong phép gán trên đòi hỏi các tham số segment và

offset phải là giá trị kiểu Word viết trong hệ 16, ví dụ:

ct := Ptr($B800, $0000); đưa con trỏ trỏ tới ô nhớ của vùng

Video Ram

Nhận xét: Hai phép gán @ và Addr() cùng trả về địa chỉ kiểu

pointer nên chúng là tương đương.

Phép gán giữa hai con trỏ

Hai con trỏ tương thích (cùng kiểu) có thể gán giá trị cho

nhau, khi đó chúng cùng trỏ tới một địa chỉ.

Ví dụ 7.3:

Var

ct1: ^Float;

ct2: ^Byte;

ct3: Pointer;

x: string;

Ví dụ trên khai báo ba con trỏ thuộc ba kiểu khác nhau, ct1

là con trỏ thực, ct2 là con trỏ nguyên và ct3 là con trỏ không định

kiểu, x là biến chuỗi. Khi đó các phép gán:

ct3:=@x;

ct2 := ct3;

là hợp lệ vì ct2 và ct3 là tương thích, chúng cùng trỏ đến địa chỉ của

biến x.

Còn phép gán

Page 94: MỤC LỤC Phần 1: Tin học cơ sở3 3 13 25 45daihocphuongdong.edu.vn/cntt/Nhapmonlaptrinh.pdf · ảnh, màu sắc đẹp ... phải qua CPU để được xử lý hoặc

94

ct1 := ct2;

là không hợp lệ vì hai con trỏ không tương thích.

Phép so sánh hai con trỏ

Chỉ tồn tại phép so sánh = (bằng nhau) và <> (khác nhau)

giữa hai con trỏ nếu chúng tương thích. Kết quả so sánh là một giá

trị Boolean nghĩa là True hoặc False.

Hai con trỏ tương thích gọi là bằng nhau nếu chúng cùng trỏ

tới một đối tượng, ngược lại gọi là khác nhau.

Ví dụ 7.4:

Program contro;

Uses crt;

Var

x,y:real; z:string;

ct1: ^integer; ct2: ^byte; ct3:pointer; ct4,ct5: ^real;

Begin

clrscr;

z:='Ha noi'; x:=5; y:=-123.45;

ct1:=@x; ct2:=@z; ct3:=@z; ct4:=@z; ct5:=@y;

Writeln(ct1=ct2); { không tương thích, máy sẽ báo lỗi}

Writeln(ct1=ct3); {false}

Writeln(ct2=ct3); {true}

writeln(ct4=ct5); {false}

readln;

end.

Ví dụ 7.4 khai báo năm con trỏ, ct1 và ct2 trỏ tới các kiểu

nguyên khác nhau, ct3 là con trỏ không kiểu tức là tương thích với

mọi con trỏ khác, hai con trỏ ct4 và ct5 là cùng kiểu.

Các phép so sánh trong thân chương trình cho thấy một số

điều cần chú ý :

- Phép so sánh ct1=ct2 là không hợp lệ vì hai con trỏ

không tương thích

- Phép so sánh ct1 = ct3 cho kết quả False vì hai con trỏ

tương thích nhưng trỏ tới các địa chỉ khác nhau

- Phép so sánh ct2 = ct3 cho kết quả True vì hai con trỏ là

tương thích và cùng trỏ tới một địa chỉ.

- Phép so sánh ct4 = ct5 cho kết quả False vì hai con trỏ

cùng kiểu nhưng trỏ tới các địa chỉ khác nhau.