Giáo trình Nhập môn Tin học LỜi nóI ĐẦU



tải về 4.67 Mb.
trang42/63
Chuyển đổi dữ liệu20.05.2018
Kích4.67 Mb.
1   ...   38   39   40   41   42   43   44   45   ...   63

3.3.3. Mã giả

Tuy sơ đồ khối thể hiện rõ quá trình xử lý và sự phân cấp các trường hợp của thuật toán nhưng lại cồng kềnh. Để mô tả một thuật toán nhỏ ta phải dùng một không gian rất lớn.

Khi thể hiện thuật toán bằng mã giả, ta sẽ vay mượn các cú pháp của một ngôn ngữ lập trình nào đó để thể hiện thuật toán. Tất nhiên, mọi ngôn ngữ lập trình đều có những thao tác cơ bản là xử lý, rẽ nhánh và lặp. Dùng mã giả vừa tận dụng được các khái niệm trong ngôn ngữ lập trình, vừa giúp người cài đặt dễ dàng hiểu chính xác thuật toán. Tất nhiên là trong mã giả ta vẫn dùng một phần ngôn ngữ tự nhiên. Một khi đã vay mượn cú pháp và khái niệm của ngôn ngữ lập trình thì chắc chắn mã giả sẽ bị phụ thuộc vào ngôn ngữ lập trình đó. Chính vì lý do này, chúng ta chưa vội tìm hiểu về mã giả trong bài này (vì chúng ta chưa biết gì về ngôn ngữ lập trình!). Sau khi tìm hiểu xong bài về thủ tục - hàm bạn sẽ hiểu mã giả là gì !
Một đoạn mã giả của thuật toán giải phương trình bậc hai:
if Delta > 0 then

begin

x1=(-b+sqrt(delta))/(2*a)

x2=(-b-sqrt(delta))/(2*a)

xuất kết quả : phương trình có hai nghiệm là x1 và x2



end

else

if delta = 0 then

xuất kết quả : phương trình có nghiệm kép là -b/(2*a)



else {trường hợp delta < 0 }

xuất kết quả : phương trình vô nghiệm



BÀI TẬP CHƯƠNG 3



Bài 3.1. Cho tam giác ABC có góc vuông A và cho biết cạnh a và góc B. Hãy viết thuật toán để tính góc C, cạnh b và cạnh c.
Bài 3.2. Trình bày tính chất xác định của thuật toán và nêu rõ nghĩa của tính chất này.
Bài 3.3*.Hãy phát biểu thuật toán để giải bài toán sau: “Có một số quả táo. Dùng cân hai đĩa (không có quả cân) để xác định quả táo nặng nhất”.
Bài 3.4. Căn cứ vào các đặc trưng của thuật toán, hãy xem quy tắc sau đây có phải là một thuật toán hay không: “Giả sử cho trước một cuốn sách tiếng Việt.

a) Hãy mở một trang có chữ số tận cùng bằng 5;

b) Hãy lấy từ đầu tiên của trang đó;

c) Hãy xem chữ cái đầu tiên của từ đó nếu chữ cái đó là một chữ từ A đến H thì bạn đi dạo, nếu không thì ở nhà”.


Bài 3.5.Xác định input và output cho các thuật toán sau đây:

a) Rút gọn một phân số.

b) Kiểm tra xem ba số cho trước a, b c có thể là độ dài ba cạnh của một tam giác hay không?

c) Tính trung bình cộng của hai số.

d) Dùng một cốc phụ để tráo nước ở hai cốc cho trước.

e) Tìm chu vi và diện tích của hình tròn có bán kính cho trước.


Bài 3.6.Chỉ dùng phép cộng, viết thuật toán để từ số tự nhiên n, tính số n2.

Chương 4

CÁC YẾU TỐ CƠ SỞ CỦA NGÔN NGỮ PASCAL

4.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 giá cao, và trở thành một trong các ngôn ngữ lập trình 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 đầu.
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 lập trình 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 lập trình 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 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 giá 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ế, lập trình 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.

4.2. Các thành phần cơ bản của ngôn ngữ PASCAL

4.2.1 Bộ 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ữ lập trình , 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 lập trình 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.


4.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.

4.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 lập trình tự đặt và phải đảm bảo đúng quy tắc:

- Tên chỉ gồm chữ số, chữ cái và dấu gạch nối (gạch dưới ‘ _ ’)

- Không bắt đầu bởi một chữ số

- Không 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ớ.



Ví dụ về các tên được đặt đúng:

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



Các tên được đặt sai:

3ABC, In, Chu vi, Ma-so

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 lập trình 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.

4.2.4. Các dấu đặc biệt

- Dấu kép: cặp các dấu viết liền nhau

ví dụ: <=; >=; :=; …


  • Dấu “;” ngăn cách các câu lệnh.

  • Dấu chú thích sử dụng bao các câu là lời giải thích cho các đoạn của chương trình và các câu chú thích được chương trình dịch bỏ qua trong quá trình dịch. Có thể viết dòng chú thích tại bất cứ vị trí nào trong chương trình mà có thể để dấu cách và theo cú pháp:

(* lời chú thích *) hoặc { lời chú thích }

4.3. Các kiểu dữ liệu đơn giản

4.3.1 Khái niệm

Chức năng của máy điện toán là xử lý các thông tin. Các thông tin được nhập và lưu trữ trong bộ nhớ của máy dưới các dạng khác nhau: có thể là số, là chữ, có thể là hình ảnh, âm thanh,.v.v. mà thuật ngữ tin học gọi chung là dữ liệu. Tính đa dạng của dữ liệu đòi hỏi phải tổ chức và phân phối bộ nhớ thích hợp để lưu trữ và xử lý tốt các dữ liệu. Ngôn ngữ lập trình chia các dữ liệu thành từng nhóm riêng trên đó xây dựng một số phép toán tạo nên các kiểu dữ liệu khác nhau, mỗi kiểu dữ liệu là một tập hợp các giá 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 giá trị thuộc kiểu dữ liệu đó.


4.3.2. Phân loại các kiểu dữ liệu trong Turbo Pascal


Trong Pascal, ngôn ngữ lập trình cấu trúc nên có thể chia các kiểu dữ liệu thành hai loại là:
- Kiểu dữ liệu đơn giản là những kiểu dữ liệu cơ sở nhất, không thể phân chia nhỏ hơn nữa thành một số thành phần có nghĩa.

- Kiểu dữ liệu có cấu trúc là những kiểu dữ liệu được xây dựng bằng cách ghép một số dữ liệu đơn giản theo cấu trúc cú pháp xác định.
Với mỗi kiểu dữ liệu đơn giản hay cấu trúc lại có thể phân thành những kiểu khác nhau đó là
- Kiểu dữ liệu có sẵn: là những kiểu đã được xây dựng sẵn với các tính chất hoàn toàn xác định, ta có thể sử dụng ngay mà không cần phải bổ xung, sửa chữa gì. Ta có thể gọi các kiểu dữ liệu đó là các kiểu dữ liệu chuẩn.

Ví dụ như các kiểu nguyên, các kiểu thực, kiểu ký tự, kiểu logic,



  • Kiểu dữ liệu chưa có sẵn, những kiểu dữ liệu mà khi cần sử dụng tới là người lập trình phải tự xây dựng tùy theo mục đích của người sử dụng.




1   ...   38   39   40   41   42   43   44   45   ...   63


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2016
được sử dụng cho việc quản lý

    Quê hương