1. Trang chủ
  2. » Giáo án - Bài giảng

Tài liệu Passcal

290 1,2K 6
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 290
Dung lượng 2,93 MB

Nội dung

Ðó là một tập các chỉ thị instruction được sắp xếp theo một trật tự định trước nhằm hướng dẫn máy tính thực hiện các thao tác, hành động cần thiết để đáp ứng một mục tiêu đã định trước c

Trang 1

I NGÔN NGỮ LẬP TRÌNH1.1 Khái niệm về ngôn ngữ lập trình & chương trình máy tính

Con người liên lạc với nhau thông qua ngôn ngữ, tạo ra các mẫu từ ngữ và âm thanh Ngôn ngữ lập trình cũng tương tự như vậy, đó là một tập từ ngữ và ký hiệu cho phép lập trình viên hoặc người dùng

có thể nói chuyện với máy tính Cũng giống như tiếng Anh, tiếng Tây Ban Nha hoặc tiếng Trung Quốc và những ngôn ngữ tiếng nói khác, ngôn ngữ lập trình cũng có các luật được gọi là cú pháp (syntax) để đảm bảo ngôn ngữ đó được vận dụng một cách chính xác

Ðó là một tập các chỉ thị (instruction) được sắp xếp theo một trật tự định trước nhằm hướng dẫn máy tính thực hiện các thao tác, hành động cần thiết để đáp ứng một mục tiêu đã định trước của con người như truy xuất dữ liệu, tìm kiếm, giải bài toán, Các chỉ thị này có thể được viết bằng nhiều ngôn ngữ lập trình khác nhau

1.2 Các loại ngôn ngữ lập trình thông dụng

Có hàng trăm loại ngôn ngữ lập trình khác nhau, mỗi loại ngôn ngữ đều có cú pháp riêng của nó Một số ngôn ngữ thì được phát triển để dùng trên các loại máy tính chuyên biệt, một số ngôn ngữ khác thì - do sự thành công của nó - đã trở thành chuẩn và được áp dụng trên đa số các máy tính Ngôn ngữ lập trình có thể được phân chia thành 3 loại chính : ngôn ngữ máy, hợp ngữ và ngôn ngữ cấp cao

Ngôn ngữ máy

Ngôn ngữ máy (mã máy) là ngôn ngữ nền tảng của bộ vi xử lý Các chương trình được

viết trong tất cả các loại ngôn ngữ khác cuối cùng đều được chuyển thành ngôn ngữ

máy trước khi chương trình đó được thi hành Vì tập lệnh của ngôn ngữ máy phụ

thuộc vào loại vi xử lý nên ngôn ngữ máy sẽ khác nhau trên những máy tính có sử

dụng bộ vi xử lý khác nhau Lợi điểm của viết chương trình bằng ngôn ngữ máy là lập

trình viên có thể điều khiển máy tính trực tiếp và đạt được chính xác điều mình muốn

làm Do đó, các chương trình ngôn ngữ máy được viết tốt là những chương trình rất

hiệu quả (tốc độ thi hành nhanh, kích thước nhỏ) Bất lợi của chương trình ngôn ngữ

máy là thông thường sẽ mất rất nhiều thời gian để viết, rất khó đọc, theo dõi để tìm

lỗi Thêm vào đó, bởi vì chương trình được viết bằng tập lệnh phụ thuộc vào bộ vi xử

lý nên chương trình chỉ chạy được trên những máy tính có cùng bộ vi xử lý mà thôi

Ngôn ngữ máy cũng được gọi là ngôn ngữ cấp thấp (low-level language)

Hợp ngữ

Hợp ngữ được phát triển nhằm giúp các lập trình viên dễ nhớ các chỉ thị của chương

trình hơn Hợp ngữ tương tự như ngôn ngữ máy nhưng lại sử dụng các ký hiệu gợi

nhớ (mnemonics hay mã lệnh hình thức - symbolic operation code) để biểu diễn cho

các mã lệnh của máy Một đặc điểm khác nữa là hợp ngữ thông thường cho phép định

địa chỉ hình thức (symbolic addressing), nghĩa là một vị trí bộ nhớ trong máy tính có

thể được tham chiếu tới thông qua một cái tên hoặc ký hiệu, chẳng hạn như TOTAL

thay vì phải sử dụng địa chỉ thực sự của nó (bằng con số nhị phân) trong ngôn ngữ

máy Các chương trình hợp ngữ còn bao gồm các chỉ thị vĩ mô (macro instruction) có

thể tạo ra nhiều lệnh mã máy Các chương trình hợp ngữ được chuyển sang mã máy

thông qua một chương trình đặc biệt gọi là trình hợp dịch (assembler) Mặc dù hợp

ngữ tương đối dễ dùng hơn mã máy nhưng hợp ngữ vẫn được xem là ngôn ngữ cấp

thấp bởi vì nó vẫn còn rất gần với từng thiết kế của máy tính

Trang 2

Ngôn ngữ cấp cao

Cuộc cách mạng của ngôn ngữ máy tính bắt đầu với sự phát triển của ngôn ngữ cấp

cao vào cuối thập kỷ 1950 và 1960 Ngôn ngữ cấp cao gần gũi hơn với ý niệm ngôn

ngữ mà hầu hết mọi người đều biết, nó bao gồm các danh từ, động từ, ký hiệu toán

học, liên hệ và các thao tác luận lý Các yếu tố này có thể được phối hợp, liên kết với

nhau tạo thành một hình thức của câu Các "câu" này được gọi là các mệnh đề của

chương trình (program statement) Chính vì những đặc điểm này, các lập trình viên dễ dàng đọc và dễ học ngôn ngữ cấp cao hơn so với ngôn ngữ máy hoặc hợp ngữ Một

lợi điểm quan trọng là ngôn ngữ cấp cao thông thường không phụ thuộc vào máy tính, nghĩa là các chương trình viết bằng ngôn ngữ cấp cao có thể chạy trên các loại máy

tính khác nhau (sử dụng các bộ vi xử lý khác nhau)

Các ngôn ngữ lập trình thông dụng

Mặc dù đã có hàng trăm ngôn ngữ lập trình được sinh ra, chỉ có một số ít là được sử

dụng rộng rãi và được xem là một chuẩn công nghiệp Các ngôn ngữ này đều có thể

được sử dụng trên nhiều loại máy tính khác nhau

BASIC, viết tắt của cụm từ Beginner's All-Purpose Symbolic Instruction Code,

được phát triển bởi John Kermeny và Thomas Kurtz vào năm 1964 tại trường đại học

Dartmouth Ban đầu, họ thiết kế BASIC là một ngôn ngữ lập trình đơn giản, có tính

tương tác để các sinh viên học tập và sử dụng BASIC đã trở thành một trong những

ngôn ngữ lập trình thông dụng nhất được sử dụng trên các máy vi tính và máy tính

mini ngày nay

COBOL, viết tắt của COmmon Business Oriented Language, được giới thiệu vào

năm 1960 Ðược hỗ trợ bởi bộ quốc phòng Hoa Kỳ, COBOL được phát triển bởi một

hội đồng bao gồm các đại diện từ phía chính phủ và công nghiệp Grace M.Hopper là

người chính yếu trong hội đồng và được xem là nhà phát triển chính của ngôn ngữ

COBOL COBOL đã từng là một trong những ngôn ngữ được dùng rộng rãi nhất cho

các ứng dụng thương mại Bằng cách dùng một hình thức tựa tiếng Anh, các câu lệnh

của COBOL được sắp xếp vào trong các câu và nhóm lại thành từng đoạn (paragraph) Hình thức tiếng Anh giúp COBOL dễ viết và đọc nhưng cũng làm cho chương trình

nguồn dài hơn COBOL rất tốt trong việc xử lý các tập tin lớn và thực hiện nhưng

phép tính thương mại tương đối đơn giản

C, được phát triển bởi tác giả Dennis Ritchie tại phòng thí nghiệm Bell vào năm

1972 Ban đầu, C được thiết kế như là một ngôn ngữ để viết các phần mềm hệ thống,

nhưng ngày nay, nó được xem là một ngôn ngữ công dụng chung C là một ngôn ngữ

lập trình mạnh mẽ đòi hỏi kỹ năng lập trình chuyên nghiệp mới có thể sử dụng hiệu

quả được Nhu cầu dùng C để phát triển nhiều loại phần mềm kể cả các ứng thương

mại đang gia tăng Các chương trình C thường được dùng với hệ điều hành Unix

(phần lớn hệ điều hành Unix được viết bằng C)

FORTRAN, viết tắt của FORmula TRANslator được phát triển bởi một nhóm lập

trình viên của công ty IBM dưới sự lãnh đạo của John Backus Công bố vào năm

1957, FORTRAN được thiết kế như là một ngôn ngữ lập trình dành cho các nhà khoa

học, kỹ sư và toán học FORTRAN được xem như là ngôn ngữ lập trình cấp cao đầu

tiên và được chú ý bởi khả năng của nó cho phép dễ dàng diễn đạt và tính toán các

phương trình toán học

Trang 3

PASCAL, ngôn ngữ sẽ được sử dụng để giảng dạy trong giáo trình này, được phát

triển vào năm 1968 bởi Niklaus Wirth, một nhà khoa học máy tính tại Zurich, Thụy Sĩ Pascal được phát triển để giảng dạy lập trình Tên Pascal không phải là từ viết tắt, đó

là tên của một nhà toán học, Blaise Pascal (1623 - 1662) người đầu tiên tạo ra máy

tính Pascal, dùng trong cả máy tính cá nhân và máy tính lớn là một trong những ngôn ngữ lập trình đầu tiên được phát triển trong đó khuyến khích phương pháp lập trình

cấu trúc

Các loại ngôn ngữ lập trình khác

ALGOL (ALGOrithmetic Language) Ngôn ngữ lập trình cấu trúc dùng cho các

ứng dụng khoa học và toán học

APL(A Programming Language) Một ngôn ngữ mạnh mẽ, dễ dùng, rất tốt trong

việc xử lý dữ liệu được lưu dưới dạng bảng (ma trận)

FORTH, tương tự như C, tạo ra các mã chương trình nhanh và hiệu quả Ban đầu

được phát triển để điều khiển kính viễn vọng không gian

LISP, LISt Processing, ngôn ngữ trí tuệ nhân tạo thông dụng

LOGO, chủ yếu được biết đến như là một công cụ để dạy khả năng giải quyết vấn

đề

MODULA-3, tương tự như PASCAL Dùng chủ yếu để phát triển các phần mềm hệ

thống

PILOT, Programmed Inquiry Learning Or Teaching, dùng bởi các nhà giáo dục để

viết các chương trình hướng dẫn CAD

PL/I, Programming Language/ One Ngôn ngữ thương mại và khoa học phối hợp

nhiều chức năng của FORTRAN và COBOL

PROLOG, PROgramming LOgic Dùng trong trí tuệ nhân tạo

RPG, Report Program Generator Dùng các mẫu đặc biệt để giúp người dùng xác

định dữ liệu vào, dữ liệu ra và các yêu cầu tính toán của một chương trình

ADA, lấy tên của Augusta Ada Bryon, người được xem là đã viết chương trình đầu

tiên, được thiết kế để phục vụ cho việc viết, bảo trì các chương trình lớn trong một

khoảng thời gian dài

1.3 Trình thông dịch và biên dịch

Mọi chương trình được viết bằng các ngôn ngữ không phải là ngôn ngữ máy cuối cùng đều phải được chuyển đổi sang ngôn ngữ máy trước khi được thi hành Chương trình ngôn ngữ cấp cao được dịch sang ngôn ngữ máy bằng một trong hai cách : bằng trình biên dịch (compiler) hoặc trình thông dịch (interpreter)

Trình biên dịch :

Trang 4

Sẽ chuyển đổi toàn bộ chương trình sang mã máy, rồi chứa kết quả vào dĩa để có thể

thi hành về sau Chương trình ngôn ngữ cấp cao được chuyển đổi được gọi là chương

trình nguồn (source program) và chương trình ngôn ngữ máy được tạo ra được gọi là

chương trình đối tượng (object program) hoặc mã đối tượng (object code) Khi người

dùng muốn chạy chương trình, chương trình đối tượng sẽ được nạp lên bộ nhớ chính

của CPU và các chỉ thị của chương trình sẽ được thi hành Khi được hướng dẫn bởi

các chỉ thị của chương trình, CPU sẽ truy xuất dữ liệu và tạo ra các kết quả Trình biên

dịch sẽ kiểm tra cú pháp chương trình, thực hiện các phép kiểm tra logic và đảm bảo

các dữ liệu sắp được sử dụng trong các phép so sánh, tính toán đã được định nghĩa

một cách hợp lý ở một nơi nào đó trong chương trình Một chức năng quan trọng của

trình biên dịch là nó sẽ tạo ra một danh sách lỗi của tất cả mệnh đề trong chương trình

vi phạm cú pháp của ngôn ngữ Danh sách này giúp lập trình viên dễ dàng sửa đổi

chương trình

Do ngôn ngữ máy phụ thuộc vào bộ vi xử lý nên các máy tính khác nhau sẽ cần có các

trình biên dịch khác nhau đối với cùng một ngôn ngữ cấp cao Ví dụ, một máy

mainframe, máy mini và máy tính cá nhân cần có các trình biên dịch khác nhau để

biên dịch cùng một chương trình nguồn sang mã máy của từng loại máy này

Trình thông dịch :

Thay vì chuyển đổi toàn bộ chương trình nguồn như trình biên dịch, trình thông dịch

chỉ chuyển đổi một mệnh đề của chương trình và thực hiện đoạn mã kết quả ngay, sau

đó nó tiếp tục chuyển đổi mệnh đề thứ 2 rồi thi hành đoạn mã kết quả thứ 2 và cứ thế

Khi sử dụng trình thông dịch, mỗi lần chạy chương trình là mỗi lần chương trình

nguồn được thông dịch sang ngôn ngữ máy Không có chương trình đối tượng nào

được tạo ra

Các trình thông dịch thường được dùng trên các máy tính cá nhân không có đủ bộ nhớ

hoặc sức mạnh tính toán cần thiết để dùng trình biên dịch Lợi điểm của trình thông

dịch là lập trình viên vẫn có thể chạy một chương trình vẫn còn lỗi cú pháp Chỉ đến

lúc thông dịch đến câu lệnh có lỗi cú pháp, quá trình thi hành chương trình mới bị

ngừng lại và trình thông dịch sẽ thông báo lỗi Ðiểm bất lợi là các chương trình thông

dịch chạy không nhanh bằng các chương trình được biên dịch vì quá trình chuyển đổi

sang ngôn ngữ máy được thực hiện cùng với quá trình thi hành chương trình Vì lý do

này, ngày nay, đa số các ngôn ngữ cấp cao đều dùng trình biên dịch

Với lập trình cấu trúc, các vấn đề trong lập trình được phân rã (chia nhỏ) thành những

phần nhỏ hơn gọi là các đơn thể Mỗi đơn thể, được gọi là một chương trình con trong

các ngôn ngữ lập trình, sẽ thực hiện một nhiệm vụ định trước trong chương trình

Ðiểm lợi chính của kỹ thuật này là nó đơn giản hóa việc phát triển chương trình vì

mỗi đơn thể chương trình có thể được phát triển một cách độc lập Khi các đơn thể

được lắp ghép lại, chúng tạo thành một chương trình hoàn chỉnh tạo ra được kết quả

mong muốn

Trang 5

Sơ đồ cấu trúc (structure chart) hay còn gọi là sơ đồ phân cấp (hierarchy chart) thường

được dùng để phân rã và biểu diễn cho các đơn thể trong chương trình Khi một quá

trình phân rã chương trình hoàn tất, toàn bộ cấu trúc của chương trình sẽ được biểu

diễn bằng một sơ đồ phân cấp Sau đây là một ví dụ :

Cấu trúc điều khiển (control structure) :

Trong lập trình cấu trúc, người ta sử dụng 3 cấu trúc điều khiển để tạo nên logic của

chương trình Mọi vấn đề logic đều có thể giải quyết được bằng cách phối hợp 3 cấu

trúc này 3 cấu trúc này là : cấu trúc tuần tự (sequence), cấu trúc chọn (selection) và

cấu trúc lặp (iteration)

Cấu trúc tuần tự : trong cấu trúc này, việc các quá trình được thực hiện tuần tự, từ

quá trình này đến quá trình theo sau nó

Cấu trúc chọn : hay còn gọi là cấu trúc nếu … thì …ngược lại (if….then…else) cho

phép các lập trình viên diễn đạt được các logic điều kiện trong chương trình Ý nghĩa

của cấu trúc này là nếu điều kiện là đúng thì thực hiện quá trình ứng với điều kiện

đúng, ngược lại, thực hiện quá trình ứng với điều kiện sai

Một dạng khác của cấu trúc chọn là cấu trúc case Cấu trúc case được dùng khi một

điều kiện được kiểm tra có thể dẫn đến 2 hay nhiều quá trình xử lý khác nhau Trong

một chương trình, menu là một ví dụ về cấu trúc case vì nó cung cấp nhiều chọn lựa

xử lý khác nhau

Cấu trúc lặp : (iteration structure hoặc looping structure) : cho phép thực hiện nhiều

lần một quá trình dựa trên một điều kiện cho trước Có 2 dạng cơ bản của cấu trúc lặp

là cấu trúc lặp for và while Cấu trúc lặp for cho phép lặp lại một quá trình xử lý một

số lần xác định trước Còn cấu trúc lặp while thì lặp lại quá trình xử lý cho đến lúc

điều kiện kiểm tra không còn đúng nữa

Chi tiết của các cấu trúc này sẽ được giới thiệu chi tiết trong các bài học liên quan đến

ngôn ngữ PASCAL

Vào/ra đơn( single entry/exit) :

Đây là một khái niệm quan trọng trong lập trình cấu trúc Vào/ ra đơn nghĩa là chỉ có

một điểm vào và một điểm ra đối với mỗi cấu trúc trong 3 cấu trúc ở trên Ðiểm vào là điểm bắt đầu cấu trúc điều khiển và điểm ra là điểm kết thúc cấu trúc điều khiển

Tính chất này cải thiện đáng kể logic của một chương trình, bởi vì, khi đọc một

chương trình, lập trình viên có thể đảm bảo rằng cho dù có chuyện gì xảy ra trong cấu

trúc đi nữa thì cấu trúc điều khiển chỉ đi ra ở một điểm duy nhất Trước khi có lập

trình cấu trúc, nhiều lập trình viên hay có thói quen chuyển điều khiển đến những

phần khác trong chương trình màkhông tuân theo luật vào/ra đơn Ðiều này sẽ dẫn đến một thiết kế chương trình tồi, cực kỳ khó khăn để đọc và kiểm tra lỗi cũng như hiệu

chỉnh Chương trình viết theo lối này sẽ giống như một mớ dây rối !!

1.5 Lập trình hướng đối tượng

Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một tiếp cận mới cho việc

phát triển phần mềm cho phép lập trình viên tạo ra các đối tượng (object), một phương pháp kết hợp

Trang 6

cả dữ liệu và các câu lệnh của chương trình Theo kiểu lập trình truyền thống, người ta thường lưu trữ

dữ liệu - chẳng hạn như các tập tin - độc lập với chương trình thao tác trên dữ liệu đó Do đó, mỗi chương trình phải tự định nghĩa cách thức sử dụng dữ liệu cho chính nó Ðiều này thường dẫn đến sự trùng lắp mã lệnh, hơn nữa, mỗi lần dữ liệu thay đổi thì mã chương trình phải thay đổi theo Với lập trình hướng đối tượng, các câu lệnh của chương trình cũng như dữ liệu được kết hợp trong các đối tượng mà sau đó có thể được dùng đi dùng lại nhiều lần bất cứ khi nào ta cần Các lệnh đặc biệt gọi là

phương thức (method) sẽ định nghĩa cách thức phản ứng của đối tượng khi đối tượng đó được dùng

trong chương trình

Khi dùng lập trình hướng đối tượng, các lập trình viên sẽ định nghĩa ra các lớp đối tượng (class) Mỗi lớp sẽ có những phương thức đặc trưng cho lớp đó Ngoài ra, các lớp đối tượng còn có khả năng truyền những phương thức của nó cho những lớp thấp hơn gọi là thừa kế (inheritance) Một dẫn xuất (instance) của đối tượng sẽ chứa tất cả phương thức từ các lớp cao hơn cộng với các phương thức đặc trưng của nó Khi một đối tượng nhận được một chỉ thị để thực hiện điều gì, người ta chỉ thị đó là một thông điệp (message) Không giống như lập trình truyền thống, thông điệp không cần phải chỉ rõ cho đối tượng biết phải thực hiện như thế nào mà chỉ cần bảo đối tượng phải cung cấp kết quả gì Còn thực hiện như thế nào sẽ được định nghĩa trong các phương thức của đối tượng đó hoặc thừa kế

từ các cấp cao hơn

Liên quan đến lập trình hướng đối tượng là các phần mềm hướng đối tượng (object-oriented

software) và hệ điều hành hướng đối tượng (object-oriented operating system) Phần mềm hướng đối tượng là phần mềm sử dụng phương pháp lập trình hướng đối tượng Còn hệ điều hành hướng đối tượng là hệ điều hành được thiết kế đặc biệt để chạy các ứng dụng hướng đối tượng

II CÁC BƯỚC XÂY DỰNG CHƯƠNG TRÌNH

Việc sử dụng máy tính điện tử (MTÐT) để giải quyết một vấn đề nào đó thường được quan niệm một cách không chuẩn xác, đơn giản đó chỉ là việc lập trình thuần túy Thực ra, đó là cả một quá trình phức tạp bao gồm nhiều giai đoạn phát triển mà lập trình chỉ là một trong các giai đoạn đó (thậm chí chưa chắc đã là phần việc quan trọng nhất) Các bước quan trọng của toàn bộ quá trình được liệt kê dưới đây:

Bước 1 Xác định vấn đề - bài toán.

Bước đầu tiên của bước phân tích hệ thống là nhằm phát biểu chính xác vấn đề - bài

toán, làm rõ những yêu cầu mà người sử dụng đòi hỏi Sau khi nghiên cứu vấn đề

được đặt ra, người phân tích viên thiết lập mối phụ thuộc giữa các dữ kiện và kết quả

phải tìm Trên cơ sở có được mô hình vấn đề - bài toán, người phân tích viên sẽ đánh

giá, nhận định tính khả thi của vấn đề - bài toán được đặt ra có đáng phải giải quyết

không?

Bước 2 Lựa chọn phương pháp giải.

Trang 7

Có thể có nhiều cách khác nhau để giải quyết vấn đề - bài toán đã thiết lập ở bước 1

Các phương pháp có thể khác nhau về thời gian thực hiện chi phí lưu trữ dữ liệu, độ

chính xác Nói chung không có phương pháp tối ưu về mọi phương diện Tùy theo

nhu cầu cụ thể mà lựa chọn phương pháp thích hợp Việc lựa chọn trên cũng cần căn

cứ vào khả năng xử lý tự động mà ta sẽ sử dụng

Bước 3 Xây dựng thuật toán hoặc thuật giải.

Xây dựng mô hình chặt chẽ, chính xác hơn và chi tiết hóa hơn phương pháp đã lựa

chọn Xác định rõ ràng dữ liệu vào, ra cho các bước thực hiện cơ bản và trật tự thực

hiện các bước cơ bản đó Nên áp dụng phương pháp thiết kế có cấu trúc, từ thiết kế

tổng thể tiến hành làm mịn dần từng bước

Bước 4 Cài đặt chương trình.

Mô tả thuật giải bằng chương trình Dựa vào thuật giải đã được xây dựng, căn cứ quy

tắc của một ngôn ngữ lập trình để soạn thảo ra chương trình thể hiện giải thuật thiết

lập ở bước 3

Bước 5 Hiệu chỉnh chương trình.

Ở bước 4, nói chung chúng ta không tránh khỏi sai sót Ở bước 5 này chúng ta cho

chương trình chạy thử để phát hiện và điều chỉnh các sai sót nếu tìm thấy

Có hai loại lỗi:

Lỗi cú pháp là lỗi do không tuân thủ đúng các quy tắc viết chương trình trên một

ngôn ngữ lập trình cụ thể

Lỗi ngữ nghĩa là lỗi làm sai lạc ý nghĩa hoặc dẫn đến bế tắc của chương trình Lỗi

cú pháp thường dễ phát hiện và hiệu chỉnh hơn lỗi ngữ nghĩa Cần phải nói rằng việc

hiệu chỉnh chương trình khá phức tạp, mất nhiều thời gian và công sức Việc xây dựng tốt, phù hợp, đầy đủ các bộ dữ liệu để kiểm chứng chương trình là hết sức quan trọng, giúp phát hiện ra các lỗi ngữ nghĩa của chương trình cũng như có thể có vấn đề gì đó

bị bỏ sót

Bước 6 Thực hiện chương trình.

Cho MTÐT thực hiện chương trình Tiến hành phân tích kết quả thu được Việc phân

tích kết quả nhằm khẳng định kết quả đó có phù hợp hay không Nếu không, cần kiểm tra lại toàn bộ các bước một lần nữa Nói chung, dù thận trọng đến mức nào đi nữa thì sau mỗi bước thực hiện nêu trên cũng không khẳng định được kết quả thực hiện từng

bước là đúng đắn tuyệt đối Hơn nữa, như ở bước 5, ta chỉ hiệu chỉnh tất cả các lỗi đã

được phát hiện Còn có thể có sai sót khác của chương trình với một bộ dữ liệu nào

khác phức tạp hơn mà ta chưa có cơ hội để phát hiện trước đó Do đó, ta không thể

khẳng định được rằng, chương trình đúng tuyệt đối, không còn sai sót nữa Như vậy,

việc giải quyết một vấn đề cụ thể thực hiện qua hai giai đoạn Giai đoạn đầu là giai

đoạn quan niệm, gồm các bước phân tích, lựa chọn mô hình, xây dựng thuật giải, cài

đặt chương trình Giai đoạn sau là khai thác và bảo trì chương trình Trong quá trình

sử dụng, nói chung thường có nhu cầu về cải tiến, mở rộng chương trình do các yếu tố của bài toán ban đầu có thể thay đổi

Trang 8

III CÂU HỎI ÔN TẬP

1 Chương trình máy tính là gì? Thế nào là ngôn ngữ lập trình? Theo anh chị, ngôn ngữ lập trình giống và khác như thế nào so với ngôn ngữ tự nhiên như tiếng Việt ?

2 Ngôn ngữ lập trình có thể phân chia ra làm mấy loại? Ưu điểm của chương trình mã máy là gì? Liệu có nên viết toàn bộ phần mềm bằng mã máy không?

3 So sánh trình thông dịch và trình biên dịch? Ưu điểm và khuyết điểm của trình thông dịch và biên dịch?

4 Lập trình cấu trúc là gì? Tại sao phải lập trình cấu trúc? 3 cấu trúc điều khiển căn bản là gì? Cho

Các khái niệm từ khóa, tên , tên chuẩn và cách đặt tên của ngôn ngữ Pascal

Cấu trúc một chương trình Pascal

Cách sử dụng phần mềm Turbo Pascal để soạn thảo và thực hiện một chương trình

Pascal

5.1 GIỚI THIỆU NGÔN NGỮ PASCAL

PASCAL là ngôn ngữ lập trình cấp cao được giáo sư Niklaus Wirth ở trường đại học Kỹ thuật Zurich (Thụy sĩ) thiết kế và công bố vào năm 1971 Ông đặt tên cho ngôn ngữ của mình là Pascal để tưởng nhớ nhà toán học nổi tiếng người Pháp ở thế kỷ 17: Blaise Pascal, người đã sáng chế ra chiếc máy tính cơ khí đầu tiên của nhân loại Qua thời gian sử dụng, Pascal ngày càng được đông đảo người dùng đánh gía cao, và trở thành một trong các ngôn ngữ thảo chương phổ biến nhất hiện nay

Thành công của ngôn ngữ Pascal là ở chỗ: nó là ngôn ngữ đầu tiên đưa ra và thể hiện được

khái niệm lập trình có cấu trúc Ý tưởng về một chương trình có cấu trúc xuất phát từ suy nghĩ cho

rằng có thể chia một bài toán lớn, phức tạp thành nhiều bài toán nhỏ, đơn giản hơn Nếu mỗi bài toán nhỏ được giải quyết bằng một chương trình con, thì khi liên kết các chương trình con này lại sẽ tạo nên một chương trình lớn giải quyết được bài toán ban đầ?

Bằng cách chia một chương trình thành các chương trình con như vậy, người thảo chương có thể lập trình để giải quyết riêng lẻ từng phần một, từng khối một, hoặc có thể tổ chức để nhiều người cùng tham gia, mỗi người phụ trách một vài khối Ðặc biệt khi phải thay đổi hay sửa chữa trong một khối thì điều đó sẽ ít ảnh hưởng đến các khối khác

Tính cấu trúc của ngôn ngữ Pascal còn thể hiện trong việc tổ chức các câu lệnh và tổ chức dữ liệu Từ các lệnh đã có, người thảo chương có thể nhóm chúng lại với nhau và đặt giữa hai từ khóa Begin và End tạo thành một câu lệnh mới phức tạp hơn gọi là câu lệnh ghép Ðến lượt mình, hai hay

Trang 9

nhiều lệnh ghép lại có thể được nhóm lại để tạo thành một câu lệnh ghép phức tạp hơn nữa,.v.v Tương tự như thế, ngôn ngữ Pascal cũng cho phép xây dựng các kiểu dữ liệu phức tạp hơn từ các kiểu dữ liệu đã có.

Pascal là một ngôn ngữ không chỉ chặt chẽ về mặt cú pháp mà còn chặt chẽ về mặt dữ liệu Mỗi biến, mỗi hằng tham gia trong chương trình luôn có một kiểu dữ liệu xác định và chỉ nhận những gía trị có cùng kiểu dữ liệu với nó Ðiều này buộc người lập trình phải nắm chắc cú pháp và luôn chú

ý đến tính tương thích của các biểu thức về mặt kiểu dữ liệu Chính vì thế, thảo chương bằng ngôn ngữ Pascal là một cơ hội tốt không chỉ rèn luyện tư duy mà còn rèn luyện tính cẩn thận và chính xác Ngày nay, Ngôn ngữ Pascal được dùng để viết các chương trình ứng dụng trong nhiều lĩnh vực Với văn phạm sáng sủa, dễ hiểu, với khả năng đủ mạnh, Pascal được xem là ngôn ngữ thích hợp nhất để giảng dạy ở các trường phổ thông và đại học

5.2 CÁC PHẦN TỬ CƠ BẢN CỦA NGÔN NGỮ PASCAL 5.2.1.Tập ký tự cơ bản

Mỗi ngôn ngữ đều được xây dựng từ một tập ký tự nào đó Nhiều ký tự nhóm lại với nhau tạo nên các từ Nhiều từ liên kết với nhau theo một qui tắc ngữ pháp nhất định (gọi là văn phạm) thì tạo nên các mệnh đề Trong các ngôn ngữ thảo chương, mệnh đề?còn được gọi là câu lệnh Một tập hợp các câu lệnh được sắp xếp theo một trật tự nhất định nhằm chỉ thị cho máy các thao tác phải thực hiện tạo thành một chương trình Các chương trình được soạn thảo bởi người thảo chương và được lưu trữ trên đĩa dưới dạng các tập tin

Ngôn ngữ Pascal được xây dựng trên bộ ký tự cơ bản, gồm:

các chữ cái la tinh: A, B, C, ,Z, a, b, c, , z

các chữ số :0, 1, 2, 3, 4, 5, 6, 7, 8, 9

các ký hiệu đặc biệt: +, -, *, /, =, <, {, }, [, ], %, $, &, #,

ký tự gạch nối ‘_’ và ký tự trắng ‘ ‘ ( space)

Các chữ Ả rập: α , β , γ , không thuộc bộ ký tự của Pascal.

5.2.2 Từ khóa ( key word ):

Có một số từ được Pascal dành riêng cho việc xây dựng các câu lệnh, các khai báo, các phép tính, gọi là từ khóa Việc sử dụng các từ khóa đòi hỏi phải tuân thủ đúng quy tắc đề ra, và đặc biệt

là người lập trình không được đặt một tên mới (tên biến, tên hằng, tên hàm, tên thủ tục, ) trùng với một trong các từ khóa Dưới đây là danh sách các từ khóa của Pascal :

absolute, and, array, begin, case, const, div, do, downto, else, end, file, for,

forward, function, goto, if, implementation, in, inline, interface, interrupt, label,

mod, nil, not, of, or, packed, procedure, program, record, repeat, set, shl, shr,

string, then, to, type, unit, until, uses, var, while, with, xor

Các từ khóa có thể viết dưới dạng chữ hoa hay chữ thường hay xen kẽ chữ hoa với chữ thường

đều được Ví dụ viết begin hay Begin hay BEGIN là như nhau.

Trang 10

5.2.3 Tên (identifier):

Các biến, các hằng, các hàm, các thủ tục, được sử dụng trong chương trình đều cần phải đặt

tên, còn gọi là định danh hay danh hiệu Các tên này do người thảo chương tự đặt và phải đảm bảo

đúng quy tắc: tên phải bắt đầu bằng chữ cái, kế đó có thể là chữ cái, chữ số, hay dấu gạch nối ‘_’ Tên không được đặt trùng với từ khóa Chiều dài của tên tối đa là 127 ký tự Thông thường tên nên đặt ngắn gọn và có tính gợi nhớ

Dưới đây là ví dụ về các tên được đặt đúng:

Delta, X1, X2, i, j , Chuc_vu, Luong, So_luong, Don_gia

Còn các tên: 3ABC, In, Chu vi, Ma-so là sai vì :

3ABC: bắt đầu bằng số

Chu vi: có chứa ký tự trắng

Ma-so : ký tự ‘-’ là dấu trừ chứ không phải gạch nối

In : trùng với từ khóa In

Cũng giống như từ khóa, Tên không phân biệt viết hoa hay viết thường Ví dụ viết X1 hay x1

cũng chỉ là một tên thôi

Trong Pascal có một số tên đã được đặt sẵn rồi, gọi là tên chuẩn, chẳng hạn :

Abs, Arctan, Boolean, Byte, Char, Cos, Copy, Delete, Eof, False, Longint, Ord,

Integer, Real, Readln, Writeln, True, Text,

Mặc dù người thảo chương có thể đặt một tên mới trùng với một trong các tên chuẩn, song,

để đỡ nhầm lẫn, chúng ta nên tránh điều này.

5.3 CẤU TRÚC CHUNG CỦA CHƯƠNG TRÌNH PASCAL

5.3.1 Ví dụ mở đầu :

Để có một cái nhìn tổng quan trước khi đi vào các vấn đề chi tiết của ngôn ngữ Pascal, xin hãy cùng xem chương trình sau:

5.3.1.1 Bài toán và chương trình :

Viết chương trình để nhập vào độ dài hai cạnh của một hình chữ nhật, tính và in lên

màn hình diện tích và chu vi của hình chữ nhật đó

Nếu gọi hai cạnh của hình chữ nhật là a và b, gọi diện tích và chu vi lần lượt là S và P

thì công thức tính S và P là:

S = a.b

P = 2(a+b)

Trang 11

Chương trình cụ thể như sau :

Chép chương trình nguồn VD52.PAS

5.3.1.2 Giải thích các dòng trong chương trình :

{ Tinh dien tich va chu vi hinh chu nhat }

Đây là lời chú giải, nêu lên mục đích của chương trình

Uses CRT ;

Khai báo sử dụng thư viện CRT của Turbo Pascal

Trang 12

Write( ‘Nhap chieu dai: ‘);

Lệnh in lên màn hình câu ‘ Nhap chieu dai: ‘ nhằm nhắc người dùng

nhập vào số đo chiều dài

Readln(a) ;

Lệnh nhập dữ liệu cho biến a

Write( ‘Nhap chieu rong : ‘);

Lệnh in lên màn hình câu ‘Nhap chieu rong :’ nhằm nhắc người dùng

nhập vào số đo chiều rộng

Lệnh này in lên màn hình câu ‘ Dien tich= ‘ , kế đó in gía trị của biến

S Chỉ thị S:8:2 ấn định dành 8 cột trên màn hình để in gía trị của S,

Trang 13

Lệnh dừng màn hình để xem kết qủa chạy chương trình.

End.

Dấu hiệu kết thúc chương trình

5.3.1.3 Chạy minh họa chương trình :

Để chạy chương trình mẫu nói trên, hãy nhắp vào mục Chay<VD51.EXE> ở cuối

chương trình đó Nhưng trước hết xin xem phần hướng dẫn sau đây:

Khi chương trình bắt đầu chạy, trên màn hình hiện lên lời nhắc :

Nhap chieu dai :Bạn cần nhập số đo chiều dài từ bàn phím, chẳng hạn gõ số 8 và Enter :

Nhap chieu dai : 8 ↵ Màn hình hiện tiếp lời nhắc :

Nhap chieu rong :Bạn nhập số đo chiều rộng, chẳng hạn gõ số 6 và Enter :

Nhap chieu rong : 6 ↵ Chương trình sẽ tính toán và in kết qủa lên màn hình như sau :

Dien tich = 48.00 Chu vi = 28.00

Để kết thúc, hãy gõ phím Enter

5.3.2 Cấu trúc chung của chương trình Pascal :

Chương trình là một dãy các câu lệnh chỉ thị cho máy các công việc phải thực hiện Một chương trình Pasccal đầy đủ gồm ba phần chính :

Trang 14

{ Phần khai báo ↓ }

Uses {khai báo sử dụng thư viện chuẩn}

Label {khai báo nhãn}

Const {khai báo hằng}

Type {khai báo kiểu dữ liệu}

Var { khai báo biến}

Function { khai báo các chương trình con}

Phần này bắt đầu bằng từ khóa Program, sau đó ít nhất là một khoảng trắng và một tên

do người dùng tự đặt, cuối cùng kết thúc bằng dấu chấm phẩy ‘;’.

Ví dụ : Program Btap1;

hoặc : Program Giai_pt_bac2;

Phần tiêu đề chiếm một dòng, còn gọi là phần đầu của chương trình, nó có thể không

có cũng được.

5.3.2.2 Phần khai báo :

Phần khai báo có nhiệm vụ giới thiệu và mô tả các đối tượng, các đại lượng sẽ tham

gia trong chương trình, giống như ta giới thiệu các thành viên trong một cuộc họp Nó gồm khai báo sử dụng thư viện chuẩn, khai báo nhãn, khai báo hằng, khai báo kiểu dữ liệu mới, khai báo biến, và khai báo các chương trình con Tùy theo yêu cầu cụ thể mà

mỗi khai báo này có thể có hoặc không.

Khai báo nhãn (Label) chỉ dùng khi trong chương trình có sử dụng lệnh nhảy vô điều

kiện GOTO Nhược điểm của lệnh GOTO là làm mất tính cấu trúc của chương trình,

Trang 15

trong khi có thể thay thế nó bằng các câu lệnh có cấu trúc của Pascal Vì thế, để rèn

luyện kỹ năng lập trình có cấu trúc, chúng ta sẽ không dùng lệnh GOTO trong giáo

trình này

Các thủ tục và hàm được dùng khi có nhu cầu thiết kế các chương trình lớn, phức tạp Đối với các bài toán nhỏ, đơn giản, việc sử dụng chương trình con là chưa cần thiết

Chi tiết về phần này sẽ được trình bày kỹ trong bài 12

Sau đây ta điểm qua vài nét về các khai báo thông dụng nhất

a) Khai báo hằng và khai báo biến :

Biến là đại lượng có gía trị thay đổi được, còn Hằng là đại lượng có

gía trị không đổi, chúng được dùng trong chương trình để lưu trữ các

dữ liệu, tham gia vào các biểu thức tính toán và các quá trình xử lý

trong máy Việc khai báo có tác dụng xác định tên và kiểu dữ liệu của

biến hay hằng Biến và Hằng là những thành phần khó có thể thiếu

được trong một chương trình Để khai báo biến ta dùng từ khóa Var, để

khai báo hằng ta dùng từ khóa Const, ví dụ:

Const

N=10 ;Var

x, y : Real ;

i, k : Integer ;

b) Khai báo (định nghĩa) một kiểu dữ liệu mới:

Ngoài các kiểu dữ liệu mà bản thân ngôn ngữ đã có sẵn như kiểu thực,

kiểu nguyên, kiểu ký tự, kiểu lôgic,.v.v người dùng có thể tự xây dựng

các kiểu dữ liệu mới phục vụ cho chương trình của mình, nhưng phải

mô tả sau từ khóa TYPE Khi đã định nghĩa một kiểu dữ liệu mới, ta có

thể khai báo các biến thuộc kiểu dữ liệu này Ví dụ, ta định nghĩa một

kiểu dữ liệu mới có tên là Mang :

Type

Mang = Array[1 10] of Real;

Bây giờ có thể khai báo hai biến A và B có kiểu dữ liệu là kiểu Mang :

Var

A, B : Mang ;

c) Khai báo sử dụng thư viện chuẩn:

Trang 16

Turbo Pascal có sẵn một số hàm và thủ tục chuẩn, chúng được phân thành từng nhóm theo chức năng mang các tên đặc trưng, gọi là các thư viện hay đơn vị chương trình ( Unit ), như : Crt, Graph, Dos, Printer, v.v Muốn sử dụng các hàm hay thủ tục của thư viện nào, ta phải khai báo có sử dụng thư viện đó, lời khai báo phải để ở ngay sau phần tiêu

đề của chương trình theo cú pháp :

Uses danhsáchthư viện ;

Ví dụ: do thủ tục Clrscr nằm trong thư viện CRT, nên nếu trong chương trình mà có dùng lệnh Clrscr, thì phải khai báo :

Uses CRT ;Muốn sử dụng cả hai thư viện CRT và GRAPH, ta khai báo :

Uses CRT, GRAPH ;

5.3.2.3 Phần thân chương trình :

Đây là phần chủ yếu nhất của một chương trình, bắt buộc phải có.

Thân chương trình bắt đầu bằng từ khóa BEGIN và kết thúc bằng END (có dấu chấm

ở cuối) Giữa khối BEGIN và END là các lệnh Mỗi lệnh phải kết thúc bằng dấu chấm phẩy ‘;’ Một lệnh, nếu dài, thì có thể viết trên hai hay nhiều dòng, ví dụ :

Writeln(‘ Phuong trinh co hai nghiem la X1= ‘, X1:8:2,‘ va X2= ‘, X2:8:2) ;

Ngược lại, một dòng có thể viết nhiều lệnh miễn là có dấu ‘;’ để phân cách các lệnh

đó, chẳng hạn :

Write(‘ Nhap A, B, C: ‘ ) ; Readln(A,B,C) ;

Thông thường mỗi dòng chỉ nên viết một lệnh để dễ đọc, dễ kiểm tra lỗi.

5.3.3 Ví dụ 2 :

Để kết thúc phần này, xin giới thiệu chương trình cho phép nhập vào họ tên, mã số,

các điểm Toán, Lý của một sinh viên, tính điểm trung bình theo công thức :

rồi in Họ tên, mã số, các điểm Toán, Lý và điểm trung bình của sinh viên đó lên màn

hình

PROGRAM VIDU52;

Trang 17

Uses CRT;

Var

Ho_ten, Maso : String[20];

Toan, Ly, Dtb : Real;

Begin

Write(‘ Nhap Ho va ten : ‘); Readln(Ho_ten);

Write(‘ Nhap ma so : ‘); Readln(Maso);

Write(‘ Nhap diem Toan : ‘); Readln(Toan);

Write(‘ Nhap diem Ly : ‘); Readln(Ly);

Dtb:= (Toan+Ly) / 2;

{ In lên màn hình các dữ liệu về sinh viên }

TextMode(C40); { đặt mode C40 cho màn hình }

TextBackGround(Green); { đặt màu nền là Green }

TextColor(Red); { đặt màu chữ là Red}

Clrscr ;

Writeln(‘ KET QUA THI CUA SINH VIEN:’);

Writeln(‘Ho va ten : ‘, Ho_ten);

Trang 18

Chạy<VD52.EXE>

Chép chương trình nguồn VD52.PAS

Trong chương trình này có sử dụng bốn thủ tục đều thuộc thư viện CRT, đó là :

Clrscr : xóa màn hình

TextMode(C40) và TextMode(C80) : chuyển màn hình sang chế độ

bề ngang 40 cột (chữ to) hoặc 80 cột (chữ bình thường)

TextBackGround(tênmàu) : đặt lại màu nền của màn hình.

TextColor(tênmàu) : đặt lại màu chữ trên màn hình.

Tên màu có thể là một số từ 0 đến 15 hoặc có thể viết trực tiếp bằng tiếng Anh như :

White, Black, Green, Red, Blue,

Bạn có thể chạy minh họa chương trình này bằng cách nhắp chọn vào mục

Chay<VD52.EXE> ở cuối chương trình

Cách nhập dữ liệu tương tự như ví dụ trước Chẳng hạn ta nhập họ tên là Nguyen Van

An, mã số là 1990064, điểm toán là 6, điểm lý là 7 như dưới đây :

Nhap Ho va ten : Nguyen Van An ↵

Nhap ma so : 1990064 ↵

Nhap diem Toan : 6 ↵

Nhap diem Ly : 7 ↵

Chương trình sẽ tính điểm trung bình và in kết qủa như sau:

KET QUA THI CUA SINH VIEN:

Ho va ten : Nguyen Van An

Ma so : 1990064

Diem Toan : 6.0

Diem Ly : 7.0

Diem Tbinh : 6.5

Hãy Enter để kết thúc và trở lại màn hình ban đầu.

Để soạn và chạy được một chương trình như trên cần phải biết sử dụng phần mềm

Turbo Pascal ( viết tắt là TP )

Trang 19

5.4 SỬ DỤNG PHẦN MỀM TURBO PASCAL 5.4.1 Giới thiệu Turbo Pascal:

Turbo Pascal là một phần mềm có nhiệm vụ giúp người thảo chương soạn thảo và thực hiện các chương trình viết bằng ngôn ngữ Pascal Các chức năng chính của Turbo Pascal là :

Cung cấp một hệ soạn thảo văn bản cho phép người thảo chương soạn và sửa

chương trình dễ dàng, tiện lợi

Giúp người thảo chương tìm các lỗi về văn phạm trong chương trình

Dịch (compiler) chương trình viết bằøng ngôn ngữ Pascal thành một chương trình

viết dưới dạng mã máy

Thực hiện hay chạy ( Run ) chương trình viết bằng ngôn ngữ Pascal

Cung cấp các thư viện có sẵn nhiều hàm (function) và thủ tục (procedure) chuẩn

mang lại cho người thảo chương nhiều công cụ hữu ích, làm giảm bớt khối lượng phải lập trình

Là sản phẩm của hãng Borland nổi tiếng, Turbo Pascal (viết tắt là TP) không ngừng được cải tiến, đến nay đã ra đời version 7.0 Tuy nhiên, ở mức độ thảo chương căn bản, người ta vẫn thích dùng phiên bản 5.5 hoặc 6.0 vì nó đơn giản mà đủ dùng, tốc độ nhanh hơn, thích hợp với các máy có cấu hình chưa mạnh

5.4.2 Khởi động Turbo Pascal:

Trong phần này sẽ trình bày cách sử dụng Turbo Pascal 6.0 Người đọc có thể tự mình suy ra cách

sử dụng Turbo Pascal 5.5 hay 7.0, vì vềø cơ bản chúng giống với phiên bản 6.0

5.4.2.1 Các tập tin chính của Turbo Pascal:

Để chạy được Turbo Pascal 6.0, chỉ cần hai tập tin sau là đủ :

TURBO.EXE : tập tin chính của TPTURBO.TPL : tập tin chứa các thư viện của TPNếu muốn vẽ đồ họa thì phải có thêm các tập tin:

GRAPH.TPU, tập tin chứa thư viện đồ họa

*.BGI : các tập tin màn hình đồ họa

*.CHR : các tập tin tạo kiểu chữ

Trong các tập tin màn hình đồ họa thì thông thường chỉ cần tập tin EGAVGA.BGI là

đủ, vì ngày nay phần lớn màn hình đều có kiểu EGA hay VGA

Nếu muốn xem hướng dẫn sử dụng Turbo Pascal thì cần có thêm tập tin TURBO.HLP

Trang 20

Thông thường các tập tin này được để trong một thư mục riêng có tên là TP, hay TP6 Dưới đây ta giả thiết thư mục chứa Turbo Pascal là TP nằm ngay tại gốc của đĩa cứng

C hay đĩa mềm A

5.4.2.2 Khởi động Turbo Pascal:

a) Nếu bạn làm việc trên máy cá nhân hoặc trong một mạng có hệ điều hành là

MSDOS thì sau khi khởi động máy xong:

Trường hợp dễ nhất là máy của bạn đã thiết lập sẵn đường dẫn đến thư mục TP chứa Turbo Pascal thì bạn chỉ cần gõ một lệnh :

TURBO ↵ Trên màn hình sẽ hiện ra cửa sổ soạn thảo như hình 5.2

Nếu gõ lệnh trên mà cửa sổ Turbo Pascal không hiện ra, do máy của bạn chưa thiết

lập đường dẫn đến thư mục TP, trường hợp này bạn phải di chuyển vào thư mục TP

bằng lệnh :

CD \TP↵

rồi sau đó gõ tiếp :

TURBO ↵

b) Nếu bạn làm việc trên máy cá nhân hoặc trong một mạng có hệ điều hành là

WINDOWS 95 hoặc mới hơn, thì sau khi khởi động WINDOWS 95 :

Trường hợp có sẵn một Shortcut chứa Turbo Pascal ở trên Desktop : hãy nhắp left

mouse hai lần liên tiếp vào biểu tượng Shortcut của Turbo Pascal.

Trang 21

Trường hợp không có sẵn một Shortcut chứa Turbo Pascal: hãy chọn lệnh Start,

chọn tiếp lệnh Run, rồi gõ vào đường dẫn đầy đủ của tập tin TURBO.EXE, chẳng

hạn:

C:\TP\TURBO.EXE ↵ , nếu khởi động TP từ đĩa C

A:\TP\TURBO.EXE ↵ , nếu khởi động TP từ đĩa A

5.4.2.3 Cửa sổ Turbo Pascal và cách chọn lệnh :

Trong cửa sổ này, dòng trên cùng là một thực đơn ngang, liệt kê chín nhóm lệnh chính của TP Muốn chọn một lệnh trong thực đơn này, có thể tiến hành theo một trong hai

Để chọn một lệnh trong thực đơn dọc, hãy gõ các phím mũi tên , ↓ dời khung sáng đến lệnh đó rồi Enter Khi không muốn chọn lệnh nào thì

gõ phím ESC để trở về vùng soạn thảo.

Ngoài cách dùng phím F10 nói trên, cũng có thể chọn một lệnh trong

thực đơn ngang bằng cách gõ đồng thời phím Alt với phím chữ cái đầu tiên của tên lệnh muốn chọn Ví dụ, muốn chọn lệnh File thì gõ đồng thời hai phím Alt và F (viết tắt là Alt-F), tương tự, muốn chọn lệnh Compile thì gõ Alt-C.

Cách hai: dùng phím "nóng":

Trang 22

Có một số lệnh được gán cho những phím đặc biệt gọi là phím "nóng",

ví dụ lệnh Open: F3, lệnh Save : F2, lệnh Exit : Alt-X Để thực hiện những lệnh này, thay vì phải chọn nó từ trong thực đơn, ta chỉ cần gõ

phím nóng tương ứng với nó Ví dụ, thay vì chọn lệnh Open thì gõ phím F3, thay vì chọn lệnh Save thì gõ phím F2,

Dưới thực đơn ngang là vùng soạn thảo dùng để gõ chương trình vào

Đầøu của vùng này hiện tên của tập tin đang soạn, và nếu người thảo chương chưa đặt tên thì TP sẽ đặt giùm một tên mặc nhiên là

NONAME00.PAS

Dòng cuối cùng tóm tắt một số phím " nóng" hay dùng, như phím F1

để xem hướng dẫn, phím F2 để lưu tập tin lên đĩa, phím F3 dùng để

mở xem một tập tin, phím F10 để khởi động thực đơn,.v.v

5.4.2.4 Thoát khỏi Turbo Pascal:

Chọn lệnh File trong thực đơn ngang, chọn tiếp lệnh Exit trong thực đơn dọc (viết gọn

là chọn lệnh File/ Exit) Nếu làm việc trong TP 5.5 thì chọn lệnh File/ Quit

Hoặc gõ cặp phím nóng Alt-X

5.4.3 Các bước thực hiện một chương trình Pascal:

Để soạn và chạy một chương trình Pascal trong Turbo Pascal, nên tiến hành các bước như sau:

Bước 1: Khởi động Turbo Pascal

Bước 2: Đặt tên cho tập tin sẽ soạn :

Chọn lệnh File/ Open (nếu làm việc trong TP 5.5 thì chọn lệnh File/

Load) hoặc gõ phím F3, sau đó gõ tên tập tin (không cầøn gõ phần đuôi) vào trong khung vừa hiện ra, ví dụ :

Khi đó tên BTAP1.PAS sẽ hiện ra ở đầu vùng soạn thảo Đuôi PAS được TP tự động gắn thêm vào

Trang 23

Tập tin BTAP1.PAS sẽ được lưu trong thư mục hiện thời Nếu muốn

tập tin BTAP1.PAS được lưu lên đĩa A thì khi nhập tên tập tin ta nên

gõ thêm tên ổ đĩa ở đằng trước, ví dụ :

Bước 3: Soạn thảo ( gõ ) chương trình

Bạn hãy gõ chương trình mẫu sau vào vùng soạn thảo của Turbo Pascal

:

Bước 4: Dịch và sửa lỗi:

Chọn lệnh Compile/ Compile (hoặc gõ cặp phím Alt-F9, hay đơn giản

chỉ gõ phím F9 cũng được) Máy sẽ dịch chương trình sang mã máy,

nếu gặp lỗi thì dừng và hiện thông báo lỗi màu đỏ ở đầu màn hình,

đồøng thời con trỏ đặt ở vị trí có lỗi Người thảo chương phải tự mình

sửa lỗi, rồi gõ Alt-F9 để dịch và sửa lỗi tiếp cho đến khi hết lỗi Dấu

hiệu cho biết việc dịch đã xong là màn hình xuất hiện cửa sổ thông báo

có dòng chữ đặc trưng là:

Trang 24

Bước 5: Lưu trữ chương trình lên đĩa: chọn lệnh File/ Save hoặc gõ phím F2.

Bước 6: Chạy thử chương trình:

Chọn lệnh Run/ Run hoặc gõ phím nóng Ctrl-F9 (viết tắt là ^F9) Mỗi

lần chạy thử, ta cần nhập một bộ dữ liệu cụ thể và kiểm tra xem kết

qủa in lên màn hình có đúng không Cần phải chạy thử một số lần ứng

với các bộ dữ liệu khác nhau Nếu kết qủa các lần chạy thử đều đúng

thì chương trình đã hoàn thành Ngược lại, nếu có một lần chạy thử

cho kết qủa sai thì chương trình chưa ổn, cần phải sửa lại thuật toán

của chương trình

Ví dụ : Để chạy thử chương trình mẫu trên, hãy gõ ^F9 và nhập vào

chiều dài 10, chiều rộng 7, như sau :

Nhap chieu dai : 10 ↵ Nhap chieu rong : 7 ↵ Chương trình sẽ in kết qủa lên màn hình :

Dien tich = 70.00 Chu vi = 34.00

Hãy Enter để trở lại màn hình soạn thảo.

Việc chạy thử với bộ dữ liệu khác, xin dành cho độc giả

Bước 7:

Nếu chương trình chạy đúng thì gõ phím F2 để lưu nó lên đĩa lần cuối

Bây giờ có thể lặp lại từ bước 2 để soạn một chương trình mới

5.4.4 Mở xem một chương trình cũ :

Muốn xem lại một chương trình đã có trên đĩa, hãy chọn lệnh File/ Open hoặc gõ

phím F3, trong khung có tiêu đều là Name, gõ vào *.PAS ↵ (hoặc A:*.PAS ↵ nếu tập

tin nằm trên đĩa A), một danh sách các tập tin có đuôi PAS sẽ hiện ra trong khung phía dưới cho ta chọn ( hình 5.4) :

Trang 25

Dùng các phím mũi tên ← , ,↓ ,→ để di chuyển và đặt thanh sáng vào tên muốn chọn

rồi Enter Nội dung tập tin này sẽ được đưa lên màn hình cho chúng ta xem, sửa, chạy thử, v.v

Chú ý rằng trong TP từ 6.0 trở lên, để đưa con trỏ từ hộp Name ở trên xuống hộp

Files ở dưới, dùng phím Tab, từ hộp File về lại hộp Name : gõ Shift_Tab

5.4.5 Lưu tập tin sang đĩa khác :

Khi cần ghi tập tin đang soạn từ đĩa cứng sang đĩa A, có thể làm như sau:

Chọn lệnh File/ Save as (nếu làm việc trong TP 5.5 thì chọn lệnh File/ Write to )

Trong khung hiện ra , hãy gõ tên tập tin vào, nhớ gõ thêm tên đĩa A: ở đằng trước:

Name:

A:\BTAP.PAS

Từ nay, mỗi khi gõ phím F2 hoặc chọn lệnh File/ Save, tập tin BTAP1.PAS sẽ được

ghi lên đĩa A

5.4.6 Một vài kỹ thuật trong soạn thảo :

5.4.6.1 Thao tác trên khối:

Ta gọi khối là một đoạn văn bản gồm một hay nhiềøu dòng liên tiếp Ký tự đầu tiên

của khối gọi là đầu khối, ký tự cuối cùng của khối gọi là cuối khối Dưới đây là một

khối gồm hai dòng lệnh:

Write(‘ Nhap chieu dai va chieu rong hinh chu nhat: ‘);

Readln(a,b);

a) Đánh dấu khối:

Trang 26

Đưa con trỏ về đầu khối

Một tay đè phím Shift, trong khi tay kia gõ các phím mũi tên ← ,−

,↓ ,→ kéo vùng sáng phủ đến cuối khối

Nếu làm việc trong TP 5.5 thì đánh dấu khối bằng cách: đưa con trỏ vềø đầu khối, gõ ^K_B, sau đó đưa con trỏ về cuối khối, gõ ^K_K

(Cách gõ ^K_B: một tay đè phím Ctrl trong khi tay kia gõ liên tiếp hai phím K và B)

e) Che hoặc hiện lại khối đã đánh dấu : lệnh ^K_H

5.4.6.2 Các phím lệnh soạn thảo thông dụng:

Phím Home : đưa con trỏ về đầu dòng hiện thời

Phím End : đưa con trỏ về cuối dòng hiện thời

Phím Delete : xóa ký tự ngay tại vị trí con trỏ Nếu con trỏ đang đứng ở cuối của

dòng trên mà gõ phím Delete thì sẽ nối dòng dưới vào cuối dòng trên.

Phím Back Space ( là phím mũi tên ← nằm ngay phía trên phím Enter) : xóa ký tự

bên trái con trỏ

Nếu con trỏ đang đứng ở đầu của dòng dưới mà gõ phím Back Space thì sẽ nối dòng

dưới vào cuối dòng trên

Cặp phím Ctrl_Y : xóa toàn bộ dòng hiện thời và đôn các dòng ở dưới lên.

Nhóm phím Ctrl_Q_Y : xóa từ vị trí con trỏ đến cuối dòng.

Trang 27

Các phím ← , ,↓ ,→ : dời con trỏ theo hướng mũi tên.

Phím Insert : mở hoặc tắt chế độ viết chèn Ở chế độ viết chèn, con trỏ màn hình có

dạng bình thường, tắt chế độ viết chèn, con trỏ có kích thước lớn gấp 4 lần bình

thường (Trong TP 5.5, chế độ viết chèn hay tắt viết chèn được nhận biết bằng việc

chữ Insert có hiện ra hay không hiện ra ở đầu của cửa sổ soạn thảo).

Phím Enter :

Trong chế độ viết chèn: gõ Enter có tác dụng đưa con trỏ xuống đầu dòng dưới, do đó toàn bộ các chữ đứng sau con trỏ (nếu có) sẽ bị cắt xuống dòng dưới Khi con trỏ đang đứng ở đầøu một dòng mà Enter thì sẽ tạo ra một dòng trống ngay tại vị trí đó

Nếu chế độ viết chèn là tắt thì mỗi khi gõ phím Enter, con trỏ sẽ về đầu của dòng hiện thời (dòng đang chứa con trỏ), chứ không xuống dòng dưới nữa

Chú ý: Trong Turbo Pascal không dùng chữ có dấu tiếng Việt Tuy nhiên trong các chương trình

mẫu ở giáo trình này thỉnh thoảng vẫn viết những chữ có dấu là để dễ đọc, dễ hiểu Khi soạn trong Turbo Pascal xin hãy bỏ dấu đi.

Trang 28

5.5 CÂU HỎI TRẮC NGHIỆM

Trong các câu hỏi dưới đây, hãy chọn một câu trả lời thích hợp nhất:

Câu 1: Tính cấu trúc của ngôn ngữ Pascal được thể hiện :

a) trong việc tổ chức các dữ dtệu;

b) trong việc tổ chức các câu lệnh;

c) trong việc tổ chức chương trình;

d)ở cả ba mục a), b), c) ;

Câu 2: Ðiều gì làm cho Pacal được đánh gía cao và trở thành một trong những ngôn ngữ thảo

chương phổ biến nhất hiện nay ?

a) Nó là ngôn ngữ đầu tiên đưa ra và thể hiện được khái niệm lập trình có cấu trúc.;

b) Nó là một ngôn ngữ chặt chẽ cả về mặt cú pháp và về mặt dữ dtệu;

c) Nó là ngôn ngữ có văn phạm sáng sủa, dễ hiểu, có khả năng đủ mạnh;

d)Cả ba điều nêu trong các mục a), b), c) ;

Câu 3: Khẳng định nào đúng:

a) VAR , BEGIN, end là các từ khóa của Pascal được khái niệm lập trình có cấu trúc.;

b) Các ký hiệu a , b , g , d đều thuộc bộ ký tự cơ bản của Pascal;

c) Var, begin, Integer, Real là các từ khóa của Pascal;

d)VAR, Var, vaR, var là các từ khóa khác nhau của Pascal ;

Câu 4: Tên nào đặt Sai quy định của Pascal:

Trang 29

d) không khai báo gì cả ;

Câu 10: Khẳng định nào Sai: trong Turbo Pascal,

a) để lưu chương trình lên đĩa, gõ phím F2 hoặc chọn lệnh File / Save ;

b) để mở một tập tin cũ, gõ phím F1;

c) để tìm lỗi cú pháp của chương trình, gõ phím Alt_F9, hay F9 ;

d) để chạy chương trình, gõ phím ^F9 hoặc chọn lệnh Run / Run ;

5.6 BÀI TẬP Câu 1 Soạn và chạy thử chương trình trong ví dụ mở đầu ở mục 5.3.1

Câu 2 Soạn và chạy thử chương trình trong ví dụ 2 ở mục 5.3.3

Câu 3 Viết chương trình nhập vào số đo một cạnh và diện tích của hình chữ nhật, tính cạnh kia và

chu vi của hình chữ nhật

Câu 4 Viết chương trình in lên màn hình hai câu sau :

" Chao cac ban ! "

" Rat vui đuoc lam quen voi cac ban ! "

Câu 5 Viết chương trình nhập hai số bất kỳ x và y, tính và in lên màn hình tổng x+y, hiệu x-y và

tích x*y của hai số đó

Trang 30

Bài 6 Các kiểu dữ liệu đơn giản YÊU CẦU CỦA BÀI GIẢNGNắm được :

Khái niệm về kiểu dữ liệu, kiểu dữ liệu đơn giản, kiểu dữ liệu có cấu trúc và kiểu dữ

liệu đếm được của Pascal

Phạm vi gía trị và các phép toán của từng kiểu nguyên, thực, ký tự và lô gic, ý nghĩa

là một tập hợp các gía trị mà một biến thuộc kiểu đó có thể nhận Khi một biến được khai báo thuộc kiểu dữ liệu nào thì máy sẽ dành cho biến đó một dung lượng thích hợp trong bộ nhớ để có thể lưu trữ các gía trị thuộc kiểu dữ liệu đó

6.1.2 Phân loại kiểu dữ liệu :

Các kiểu dữ liệu trong ngôn ngữ Pascal được chia ra thành hai loại chính: loại đơn giản và loại

có cấu trúc

Mỗi kiểu dữ liệu đơn giản là một tập các giá trị cơ sở có thứ tự Ví dụ kiểu Integer gồm các số nguyên nằm trong phạm vi từ -32768 đến 32767 và có thứ tự tự nhiên : -32768< < -1 < 0 < 1 < <

32767 , kiểu lô gic chỉ có hai gía trị False, True với quy ước False < True

Các kiểu dữ liệu có cấu trúc được xây dựng từ các kiểu dữ liệu đơn giản Mỗi kiểu dữ liệu có cấu trúc là một tập các phần tử thuộc kiểu dữ liệu đơn giản được tổ chức lại theo một quy tắc nhất định

Các kiểu dữ liệu đơn giản gồm có: kiểu nguyên, kiểu thực, kiểu lô gic, kiểu ký tự, kiểu liệt

kê và kiểu đoạn con

Các kiểu dữ liệu có cấu trúc gồm có :kiểu mảng, kiểu bản ghi, kiểu tập hợp và kiểu tập tin

Riêng chuỗi ký tự (STRING) là một kiểu dữ liệu đặc biệt, vừa có tính đơn giản lại vừa có tính cấu trúc Mỗi chuỗi có thể xem là một gía trị, nhưng cũng có thể xem là một mảng các gía trị kiểu ký

tự Vì vậy, việc sử dụng chuỗi cũng có hai mức khác nhau: mức đơn giản và mức có cấu trúc

Trang 31

Các kiểu dữ liệu đơn giản còn được phân thành hai loại: đếm được (Ordinal type) và không đếm được Kiểu thực thuộc loại không đếm được, các gía trị của nó dày đặc Tất cả các kiểu dữ liệu

đơn giản còn lại : nguyên, ký tự, lô gic, liệt kê và đoạn con đều thuộc loại đếm được (còn gọi là rời rạc)

Dưới đây sẽ lần lượt trình bày kỹ về 4 kiểu dữ liệu đơn giản chuẩn và thông dụng: kiểu nguyên, kiểu thực, kiểu logic, kiểu ký tự Kiểu chuỗi được giới thiệu để có thể sử dụng ngay ở mức đơn giản

6.2 KIỂU SỐ NGUYÊN

6.2.1 Các kiểu số nguyên :

Tên kiểu Phạm vi gía trị

Số byteShortInt -128 127

1

1Integer -32768 32767

2Word 0 65535

2LongInt -2147483648 2147483647

4

Bảng 6.1

Ngoài kiểu Integer là thông dụng nhất, các số nguyên còn được chia ra thành 4 kiểu nữa đó là: Byte, Word, ShortInt và LongInt Bảng 6.1 liệt kê chi tiết về tên gọi, phạm vi gía trị và độ dài tính theo đơn vị byte của từng kiểu nguyên

Các biến nguyên chỉ có thể nhận các gía trị là các số nguyên nằm trong phạm vi gía trị của biến

đó Khi gán cho một biến một số nguyên nằm ngoài phạm vi của biến thì máy sẽ báo lỗi: "Const out

of range" Ví dụ, cho khai báo :

Trang 32

còn các lệnh dưới đây là bị lỗi :

Các số nguyên hệ thập lục phân (hệ 16) được biểu diễn bằng cách viết thêm dấu $ ở

trước số, ví dụ ba số dưới đây :

$A , $FF và $10

là các số nguyên viết trong hệ 16 Chúng có gía trị tương ứng trong hệ 10 là:

10 , 255 và 16

6.2.2 Các phép toán số học trên số nguyên:

Phép cộng và trừ : ký hiệu + và - như thường lệ

Phép nhân : ký hiệu bằng dấu *, ví dụ 4*2 cho kết qủa là 8

Phép chia : ký hiệu bằng dấu / , ví dụ 6/4 cho kết qủa là 1.5

Phép chia lấy phần nguyên : ký hiệu bằng từ khóa DIV

Phép lấy phần dư nguyên của phép chia: ký hiệu bằng từ khóa MOD

Ví dụ: 15 DIV 6 cho kết qủa là 2.

15 MOD 6 cho kết qủa là 3

Các phép toán trên đều cho kết qủa là các số nguyên, trừ ra phép chia ( / ) luôn cho kết qủa là một

số thực Vì thế nếu N là một biến nguyên, mà gán :

N:= 20/5;

thì máy sẽ báo lỗi, bởi vế phải có gía trị kiểu thực (=4.0) mặc dù phần lẻ bằng không

Nhận xét : số nguyên N là chẵn nếu N mod 2 = 0 (tức N chia hết cho 2),

ngược lại, là lẻ nếu N mod 2 <> 0 (dấu <> trong Pascal có nghĩa là khác nhau )

Trang 33

Thứ tự thực hiện các phép toán cũng giống như thường lệ:

Các biểu thức trong ( ) được tính trước tiên

15 mod (2 +4) * 20 div (10 div 4) + 40 mod ( 5* 3)

=15 mod 6 * 20 div 2 + 40 mod 15

= 3 * 20 div 2 + 10

= 60 div 2 + 10

= 30 + 10

= 40

Ví dụ sau đây là một ứng dụng của các phép toán div, mod :

Ví dụ 6.1: Nhập một số tiền N đồng, đổi ra xem được bao nhiêu tờ 5 đồng, bao nhiêu tờ 2

đồng, bao nhiêu tờ 1 đồng sao cho tổng số tờ là ít nhất Ví dụ N=43 đ = 8 tờ 5 đ + 1 tờ 2 đ + 1 tờ 1 đ Cách tính như sau :

Số tờ 5 đ = 43 div 5 = 8

Số tiền dư = 43 mod 5 = 3

Số tờ 2 đ = Số tiền dư div 2 = 3 div 2 =1

Số tờ 1 đ = Số tiền dư mod 2 = 3 mod 2 = 1

Dưới đây là chương trình cụ thể :

PROGRAM VIDU61;

{ Ðổi tiền } Var

N, st5, st2, st1, sodu : LongInt;

Begin Write(‘ Nhap so tien : ’); Readln(N);

Trang 35

Kết qủa của các biểu thức so sánh là một gía trị lôgic Ðúng (TRUE) hoặc Sai

(FALSE) Ví dụ:

Biểu thức 5*2=10 cho kết qủa là TRUE

Biểu thức 5+2 <> 7 cho kết qủa là FALSE

Biểu thức 6 div 2 > 10 div 3 cho kết qủa là FALSE

6.2.4 Các phép toán lôgic trên số nguyên :

Các phép tính NOT, AND, OR, XOR xử lý các bít nhị phân được xác định như sau ( bảng 6.3 ):

NOT 1 = 0 1 AND 1=1 1 OR 1=1 1 XOR 1=0

Trang 36

N SHL k : dịch các bít của số nguyên N sang trái đi k bít.

Lệnh k:=k+1; tương đương với lệnh k:=Succ(k);

Lệnh k:=k-1; tương đương với lệnh k:=Pred(k);

Hàm ODD(k) : đối số k nguyên, trả về gía trị logic là TRUE nếu k lẻ, là FALSE nếu

k chẵn

Ví dụ:

Odd(15) = True

Odd(4) = False

Ví dụ 6.2 : Nhập số nguyên N, nếu N chẵn thì in ra chữ chẵn, nếu N lẻ thì in ra chữ

le? Chương trình như sau :

PROGRAM VIDU62;

Trang 37

N : Integer;

Begin Write(‘Nhap so N :’); Readln(N);

If Odd(N) = TRUE then write(N, ‘ La so le’) else

thì gía trị sau cùng của k là 6

Vậy, lệnh Inc(k); tương đương với lệnh k:=k+1; hay k:=Succ(k);

Thủ tục DEC(k) : giảm k đi một đơn vị Ví dụ, sau khi thực hiện các lệnh :

Trang 38

Kiểu Real là kiểu số thực thông dụng nhất dùng để biểu diễn các số thực x có trị tuyệt đối ? x? nằm trong khoảng từ 2.9*10-39 đến 1.7*10+38 Nếu ? x? > 1.7*10+38 thì không biểu diễn x trong máy được, còn nếu ? x? < 2.9*10-39 thì x được coi là bằng 0

Có hai cách biểu diễn các số thực:

Cách 1: Viết bình thường, trong đó dấu phẩy thập phân được thay bằng dấu chấm thập phân.

Ví dụ: 45.0 -256.45 +122.08

Cách 2: Viết số dưới dạng khoa học :

1.257E+01 (có gía trị = 1.257*101 = 12.57 )

1257.0E-02 (có gía trị = 1257*10-2 = 12.57 )

Trong dạng này số gồm có hai phần, phần đứng trước E gọi là phần định trị, được viết theo cách

1, phần đứng sau E gọi là phần bậc, gồm dấu cộng hoặc trừ, tiếp đến là một số nguyên

Số viết theo cách 1 còn gọi là số có dấu chấm thập phân cố định, số viết theo cách 2 còn gọi là

số có dấu chấm thập phân di động hay số dạng khoa học (Scientific)

Ví dụ: Muốn khai báo hai biến x, y kiểu real, ta viết:

4Double 5.0*10-324 1.7*10308

8Extended 3.4*10-4932 1.1*104932

10Comp -9.2*1018 9.2*1018

8

Bảng 6.4

Trang 39

Chú y? : Turbo Pascal thường chỉ làm việc với một kiểu Real Muốn dùng 4 kiểu thực còn lại,

phải chuyển sang mode 8087 bằ?g cách viết chỉ thị {$N+} ở ngay đầu chương trình

6.3.2 Các phép toán trên số thực :

Có 4 phép toán số học là nhân (*), chia (/), cộng (+) và trừ (-) Khi một trong các số hạng tham gia tính toán là kiểu thực thì kết qủa của phép toán cũng là một số thực

Phép toán DIV, MOD không dùng cho các số thực

Ví dụ: với hai biến x, y kiểu thực thì lệnh sau là bị lỗi vì biểu thức vế phải không hợp lệ:

y:= x mod 10 ;

Các phép toán so sánh (= , <> , < , <= , > , >= ) cũng dùng được cho các số hạng là thực hay

nguyên

6.3.3 Các hàm có đối số nguyên hoặc thực :

Hàm ABS(x): tính trị tuyệt đối của x :? x? Kiểu dữ liệu của kết qủa cùng kiểu với đối số Nếu

x nguyên thì ABS(x) cũng nguyên, nếu x là số thực thì ABS(x) cũng là số thực

Các hàm SIN(x), COS(x), và ARCTAN(x): tính sinx, cosx và arctgx.

Hàm INT(x) : cho số thực bằng phần nguyên của x Ví dụ :

Int(12.55) = 12.0

Int(1+10/3)=4.0

Hàm FRAC(x) : cho số thực bằng phần lẻ của x Ví dụ :

Trang 40

Frac(12.55) = 0.55

Hai hàm đặc biệt dưới đây cho kết qủa là số nguyên:

Hàm TRUNC(x): cho số nguyên là phần nguyên của x Ví dụ :

Ví dụ 6.3: Viết chương trình nhập số thực x bất kỳ, tính và in các gía trị y và z lên màn hình

y:= ( sqrt (x*x+1) + sin(x)*sin(x) ) / ( 3*exp(2*x) + 1 );

z:= exp( x*Ln(2) ) + Ln(abs(x)+1) / Ln(4);

Ngày đăng: 15/06/2013, 01:25

HÌNH ẢNH LIÊN QUAN

Hình 5.1: Cấu trúc của chương trình Pascal       5.3.2.1. Phần tiêu đề chương trình : - Tài liệu Passcal
Hình 5.1 Cấu trúc của chương trình Pascal 5.3.2.1. Phần tiêu đề chương trình : (Trang 14)
Hình 8.3 : Cú pháp của lệnh Case - Tài liệu Passcal
Hình 8.3 Cú pháp của lệnh Case (Trang 81)

TỪ KHÓA LIÊN QUAN

w