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

Bài giảng Tin học cơ bản (Trung cấp)

95 1,1K 1

Đ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 95
Dung lượng 740,5 KB

Nội dung

Trong cuộc sống, người ta có nhu cầu đọc báo, xem truyền hinh, giao tiếp với người khác để có thông tin. Thông tin là sự hiểu biết của con người về một sự kiện, một hiện tượng nào đó thu nhận quan nghiên cứu, trao đổi, nhận xét, học tập, truyền thụ, cảm nhận.Con người hiểu được thông tin qua lời nói, chữ viết, qua các dạng biểu diễn thông tin khác và diễn tả thông tin thành ngôn ngữ để truyền đạt cho nhau. Thông tin được chuyển tải qua các môi trường vật lý khác nhau như ánh sáng, sóng âm, sóng điện từ, … Thông tin được ghi trên các phương tiện hữu hình như các văn bản trên giấy, băng ghi âm hay phim ảnh,..

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG CAO ĐẲNG CÔNG NGHIỆP TUY HÒA

KHOA CÔNG NGHỆ THÔNG TIN

-BÀI GIẢNG HỌC PHẦN: TIN HỌC ĐẠI CƯƠNG

(Dành cho sinh viên bậc cao đẳng )

TUY HÒA, NĂM 2010

Trang 2

CHƯƠNG 1: TỔNG QUAN VỀ MÁY TÍNH

1.1 Thông tin (Information).

-o0o -1.1.1 Khái niệm.

Trong cuộc sống, người ta có nhu cầu đọc báo, xem truyền hinh, giao tiếp vớingười khác để có thông tin Thông tin là sự hiểu biết của con người về một sự kiện, mộthiện tượng nào đó thu nhận quan nghiên cứu, trao đổi, nhận xét, học tập, truyền thụ, cảmnhận

Con người hiểu được thông tin qua lời nói, chữ viết, qua các dạng biểu diễn thôngtin khác và diễn tả thông tin thành ngôn ngữ để truyền đạt cho nhau Thông tin đượcchuyển tải qua các môi trường vật lý khác nhau như ánh sáng, sóng âm, sóng điện từ, …Thông tin được ghi trên các phương tiện hữu hình như các văn bản trên giấy, băng ghi âmhay phim ảnh,

1.1.2 Đơn vị đo thông tin.

- Mỗi sự vật, hiện tượng đều hàm chứa một lượng thông tin Muốn biết một đốitượng nào đó ta phải biết đủ lượng thông tin về nó

- Đơn vị đo thông tin là bít Một bít tương ứng với một chỉ thị hoặc một thông báonào đó về sự kiện, có một trong hai trạng thái có số đo khả năng xuất hiện đồng thời làTắt (Off)/mở (On) hay đúng (True) / Sai (False)

Ví dụ: Một mạch đèn có 2 trạng thái là:

+ Tắt (Off) khi mạch điện qua công tắc là hở

+ Mở (On) khi mạch điện qua công tắc là đóng

- Số học nhị phân sử dụng hai ký số là 0 và 1 để biểu diễn các số Vì khả năng sửdụng hai số 0 và 1 là như nhau nên một chỉ thị chỉ gồm một chữ số nhị phân có thể xemnhư là đơn vị chứa thông tin nhỏ nhất

- Bit là chữ viết tắt của Binary digiT Trong tin học, người ta thường sử dụng cácđơn vị đo thông tin lớn hơn như sau:

1.1.3 Mã hóa và xử lý thông tin.

a Mã hóa thông tin

2

Trang 3

Mã hóa thông tin là quá trình biến đổi thông tin từ dạng biểu diễn thông tin thườngsang một dạng khác theo quy ước nhất định Quá trình biến đổi ngược lại của thông tinđược gọi là phép giải mã.

Ví dụ: Ta có một tập quản lý hồ sơ sinh viên Nếu ta quản lý bằng tên thì xảy ra rấtnhiều trường hợp tên bị trùng nhau Nếu ta thêm các yếu tố kèm theo như địa chỉ, ngàysinh, quê quán v.v thì việc quản lý trở nên rất rườm rà, phức tạp mà không loại trừ đượckhả năng trùng nhau Nếu ta gán cho mỗi sinh viên một mã số ID, ta có thể tìm ta số liệu

về sinh viên tương ứng Như vậy, quá trình gán mã số ID cho mỗi hồ sơ sinh viên gọi là

mã hóa, còn quá trình dựa trên mã số ID để xác định thông tin về sinh viên gọi là giải mã

Trong máy tính điện tử, người ta mã hóa thông tin dưới dạng nhị phân dựa vàobảng mã ASCII (American Standard Code for Information Interchange) mở rộng 8 bít.Trong đó mã hóa được 256 ký tự có mã từ 0 đến 255 và được chia thành 2 nhóm:

- Nhóm 1: Có mã từ 0 đến 127 dùng để mã hóa các ký tự, ký hiệu cơ sở: a z,AZ, 09, {, }, [, ], =, +, và các ký tự điều khiển

- Nhóm 2: Có mã từ 128 đến 255 dùng để mã hóa các ký tự đồ họa và các ký tựđặc biệt của mỗi nước

b Xử lý thông tin (Data Processing).

- Để đáp ứng cho các công việc hàng ngày bao gồm nhiều lĩnh vực như nghiên cứu,kinh doanh sản xuất, thương mại…Con người luôn phải thu nhập và xử lý hàng loạt cácthông tin từ nhiều nguồn, các hoạt động xử lý bao gồm các quá trình như sau:

+ Thu thập thông tin: Lấy thông tin từ sự vật, hiện tượng thông qua các giác quan

và các thiết bị có khả năng thu nhận tin

+ Mã tin: Biểu diễn thông tin bằng chữ viết, chữ số, ngôn ngữ, tiếng nói, âmthanh, hình vẽ, trạng thái điện

+ Truyền tin: Gởi tin từ máy này sang máy khác, từ điểm này sang điểm khác Môitrường truyền tin gọi là kênh liên lạc

+ Trữ tin: Ghi tên lên các vật ký tin

+ Xử lý tin: Tác động lên các tin đã có

+ Xuất tin: Đưa thông tin ra cho người dung dưới các dạng mà con người có thểnhận biết được

- Tin thường có độ nhiễu cao Vì vậy xử lý tin là làm giảm độ nhiễu của tin Chấtlượng tin được đánh giá căn cứ trên các phương diện sau: Sự cần thiết, sự chính xác, sựtin cậy và sự kịp thời

1.2 Tin học và công nghệ thông tin.

Các thuật ngữ:

Information Technology

Informatics

Informatquee

Trang 4

Cumputer Technology

Tin học là ngành khoa học nghiên cứu các phương pháp và quá trình xử lý thông tin một cách tự động dựa trên các phương tiện kỹ thuật mà hiện nay phương tiện đó là MTĐT

Các thành tựu mới trong viễn thông cho phép kết nối các máy tính thành mạng máytính Do vậy, việc phối hợp giữa công cụ xử lý thông tin tự động, kết cấu hạ tầng viễnthông, các chuẩn giao tiếp trong các môi trường của máy với máy và giữa người với máyngày một phát triển

Khái niệm Công nghệ Thông tin có một nội dung đầy đủ, bao hàm được những lĩnhvực, những nền tảng chủ yếu của khoa học và công nghệ xử lý thông tin dựa trên máytính Khi nói đến yếu tố công nghệ, người ta muốn nhấn mạnh đến tính quá trình, tính tổchức và phương pháp xử lý thông tin hướng tới sản phẩm Định nghĩa Công nghệ Thôngtin đã được các chuyên gia Việt Nam nghiên cứu, tham khảo từ các định nghĩa củachuyên gia trên thế giới và đã được đa vào Nghị quyết 49/CP của Chính phủ về phát triểnCông nghệ Thông tin của Việt nam từ 1996 như sau:

"Công nghệ Thông tin là tập hợp các phương pháp khoa học, các phương tiện và công cụ kỹ thuật hiện đại -chủ yếu là kỹ thuật máy tính và viễn thông -nhằm tổ chức và khai thác và sử dụng có hiệu quả nguồn tài nguyên thông tin rất phong phú và tiềm tàng trong mọi lĩnh vực hoạt động của con người và xã hội Công nghệ thông tin được phát triển trên nền tảng phát triển của các công nghệ Tin học -Điện tử -Viễn thông và Tự động hoá"

Công nghệ Thông tin mang một ý nghĩa rộng rãi hơn, nó vừa là khoa học, vừa làcông nghệ, vừa là kỹ thuật, bao trùm cả tin học, viễn thông và tự động hoá

1.3 Lịch sử ra đời và khuynh hướng phát triển kỹ thuật máy tính.

Thế hệ thứ nhất (1945 đến 1955) máy tính dùng đèn điện tử: Trong các năm 40

và đầu những năm 50 phần cứng máy tính được phát triển trong các dự án nghiên cứu,các dự án này đã xây dựng phần cứng mỗi cái một loại và nhấn mạnh vào sự nghiên cứu.Trong giai đoạn này các máy chủ yếu được xây dựng dựa trên đèn điện tử, chiếc máy tínhđiện tử đầu tiên là máy ENIAC (Electronic Numberical Intergrator And Calculator) doJohn Mauchley và J.Presper Eckert thiết kế Nó bao gồm 18.000 đèn điện tử, 1.500 rơ-le,nặng 30 tấn, tiêu thụ công suất là 140 KW, nó được lập trình bằng cách thiết đặt 6.000switch

Thế hệ thứ hai (1955 đến 1965) máy tính dùng Transitor: Transitor được sáng

chế ra tại phòng thí nghiệm Bell năm 1948 Các máy tính dùng đèn điện tử trong thời kỳnày đã trở nên lỗi thời, máy tính Transitor ra đời Máy tính xây dựng dựa trên Transitornên đã nhỏ gọn hơn Chiếc máy tính Transitor đầu tiên là máy TX- 0

Thế hệ thứ ba (1965 đến 1980) máy tính dùng Mạch tích hợp (IC): Công

nghệ vi điện tử phát triển đã tạo ra mạch tích hợp cho phép đặt hàng chục Transitor vàotrong mọt vỏ chung (chip) làm cho các nhà soản xuất có thể chế tạo ra các máy tính nhỏhơn, nhanh hơn và giá thành hạ hơn

Thế hệ thứ tư (từ 1980) máy tính dùng mạch tích hợp mức cao (VLSI):

Những năm 80, công nghệ vi điện tử đã chế tạo ra các vi mạch điện tử có mức tích hợp

4

Trang 5

rất cao (VLSI Very Large Scale Integrator), trong một chip có thể tích hợp hàng triệuTransitor, do đó các máy tính ngày càng nhỏ hơn, chạy nhanh hơn, khả năng tính toán lớnhơn, và giá thành rẻ hơn Năm 1980 máy tính cá nhân PC (Personal Computer) ra đời.

1.4 Tổng quan về máy tính và các thiết bị ngoại vi.

Bất kỳ một máy tính điện tử nào cũng gồm 3 thành phần chính sau:

 Đơn vị xử lý trung tâm

 Bộ nhớ

 Các thiết bị ngoại vi

Cấu trúc chung của một máy tính điện tử

1.4.1 Đơn vị xử lý trung tâm (Central Proccessing Unit-CPU)

CPU được coi là bộ não của máy tính, là thiết bị điều khiển mọi hoạt động của máytính, điểu khiển việc thực thi thiết bị, điều khiển việc tính toán lưu trữ theo yêu cầu củachương trình, được chia làm 3 loại chính sau:

+ Khối điều khiển (Control Unit-CU): chịu trách nhiệm điều khiển toàn bộ các hoạtđộng của hệ thống thông qua các chỉ thị trong chương trình

+ Khối tính toán số học và logic (Arithmetic Logic Unit-ALU): Chịu trách nhiệm thựchiện các phép tính số học (Cộng, trừ, nhân, chia, ), các phép toán Logic (AND, OR,XOR, NOT) và các phép tính quan hệ (so sánh hơn, nhỏ hơn, bằng nhau, )

+ Các thanh ghi (Registers): Thiết kế bằng các mạch điện tử làm nhiệm vụ bộ nhớtrung gian, bộ nhớ tạm lưu trữ mã lệnh, kết quả tính toán theo yêu cầu của khối điềukhiển Các thanh ghi mang chức năng chuyên dụng giúp tăng tốc độ trao đổi thông tintrong máy tính

Trang 6

Bộ nhớ là thiết bị làm nhiệm vụ lưu trữ tạm thời hoặc lâu dài thông tin, thông tin lưutrữ bao gồm: các dữ liệu từ ngoài đưa vào, các chỉ thị chương trình, các kết quả sau xử lý.

Bộ nhớ chia làm hai loại:

+ Bộ nhớ trong: Chia làm 2 loại

RAM (Random Access Memory): Là bộ nhớ truy cập ngẫu nhiên, bộ nhớ này chỉ

lưu trữ tạm thời thông tin trong quá trình xử lý Khi tắt máy, mất điện hoặc khởi động lạithì thông tin trên RAM sẽ mất đi Dung lượng của RAM càng lớn thì tốc độ truy xuấtmáy tính càng nhanh

ROM (Read Only Memory): Là bộ nhớ chỉ đọc, do đó nó chỉ đọc thông tin có sẵn

được ghi bởi nhà sản xuất, thông tin trên ROM sẽ không mất đi khi mất điện hoặc tắtmáy

+ Bộ nhớ ngoài: Là thiết bị lưu trữ thông tin với dung lượng lớn, thông tin không mất

đi khi không có điện Có thể di chuyển bộ nhớ ngoài độc lập với máy tính như đĩa cứng,đĩa mềm, đĩa quang, USB,

Phần cứng (hardware) là toàn bộ các thiết bị vật lý của MTĐT Nâng cao tốc độ

xử lý, tăng khả năng lưu trữ, tăng độ tin cậy, giảm năng lượng sử dụng, tăng khả năngghép nối, là những mục tiêu mà kỹ thuật phần cứng hướng tới

Phần mềm (software) nghiên cứu phương pháp sử dụng công cụ xử lý thông tin tự

động trong các tiến trình xử lý thông tin Phần mềm bao gồm các chương trình có chứcnăng điều khiển, khai thác phần cứng và để thực hiện các yêu cầu xử lý thông tin Phầnmềm cũng bao gồm các phương pháp tổ chức dữ liệu tương ứng với chương trình xử lýthông tin Tìm ra các phương pháp xử lý thông tin có hiệu quả, tổ chức dữ liệu tốt và lậptrình thể hiện các phương pháp xử lý đó là vấn đề của phần mềm

6

Trang 7

Chương 2: HỆ ĐẾM, BIỂU DIỄN THÔNG TIN

2.1 Hệ đếm, các phép tính cơ bản

o0o 2.1.1 Khái niệm hệ đếm

Hệ đếm là một tập hợp ký hiệu (bảng chữ số) để biễu diễn số và xác định giá trị củacác biểu diễn số

- Hệ thập phân là hệ cơ số 10 có các chữ số cơ bản là 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

- Hệ nhị phân là hệ cơ số 2 có các chữ số cơ bản là 0, 1 Mỗi chữ số nhị phân gọi làBIT (Binary digiT) Vì hệ nhị phân chỉ có hai số nên chỉ có hai giá trị là 0 và 1, nên khimuốn diễn tả một số lớn hơn hoặc các ký tự phức tạp thì cần kết hợp nhiều BIT với nhau

Ví dụ: 0101 biểu diễn số 5.

- Hệ bát phân là hệ cơ số 8: Nếu dùng 3 bít có thể biểu diễn 8 trị khác nhau: 000, 001,

010, 011, 100, 101, 110, 111 Các trị này tương ứng với 8 trị trong hệ thập phân là: 0, 1,

2, 3, 4, 5, 6, 7 Tập hợp các chữ số này gọi là hệ bát phân

- Hệ thập lục phân là hệ cơ số 16 có các chữ số cơ bản là 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,

B, C, D, E, F tương ứng với các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 trong

Trang 8

1 × 1 = 1

Ví dụ:

1101

× 111101 +1101

100111

Chia:Thực hiện phép chia giống như trong hệ thập phân.

Ví dụ: 1101 : 101 = 11

2.2 Chuyển đổi số giữa các hệ đếm.

- Nguyên tắc 1: Đổi một số thập phân sang hệ cơ số b

Đổi phần nguyên từ một số thập phân sang hệ cơ số b:

Để chuyển đổi phần nguyên của một số thập phân

sang hệ cơ số b (b≠10) ta làm như sau: Lấy phần nguyên số

thập phân chia cho cơ số b cho đến khi phần thương của

phép chia bằng không, số đổi được chính là phần dư của

phép chia viết theo thứ tự ngược lại:

Ví du: Cho X=610 nghĩa là X=6 trong hệ thập phân sẽ được

đổi thành 1102 trong hệ nhị phân

Đổi phần thập phân của một số thập phân sang hệ cơ

số b:

Để đổi phần thập phân của hệ thập phân sang hệ cơ số b ta làm như sau: Lấy phầnthập phân nhân với cơ số b cho đến khi phân thập phân của tích số bằng 0 Kết quảchuyển đổi được là các số phần nguyên trong phép nhân viết ra theo thứ tự tính toán

Ví dụ:

- Nguyên tắc 2: Đổi một số từ hệ cơ số b về hệ thập phân

Để chuyển đổi một số từ hệ cơ số b về hệ thập phân ta sử dụng công thức (*)

Với b là cơ số đếm, a0,a1,a2, ,an là các chữ số cơ bản

1 0 1 1

X b =a n a n-1 …a 1 a 0 = a n b n +a n-1 b n-1 +….+a 1 b 1 +a 0 b 0 (*)

Trang 9

X là số ở hệ đếm cơ số b.

Ví dụ: Với X = 1102 = 1*22 + 1*21 + 0 = 6

Bảng chuyển đổi giữa hệ nhị phân, thập lục phân và thập phân như sau:

Thập phân Nhị Phân Thập lục phân

- Nguyên tắc 3: Đổi một số từ hệ nhị phân sang hệ thập lục phân.

Để đổi một số từ hệ nhị phân sang hệ thập lục phân ta làm như sau: Nhóm lần lượt 4bit từ phải sang trái, sau đó thay thế các nhóm 4 bít này bằng giá trị tương ứng trong hệthập lục phân

Ví dụ:

X = 11’10112 = 3B16

- Nguyên tắc 4: Đổi một số từ hệ thập lục phân sang hệ nhị phân.

Để đổi một số từ hệ thập lục phân sang hệ nhị phân ta làm như sau: Mỗi chữ số trong

hệ thập lục phân sẽ được biểu diễn dưới dạng 4 bit

Trang 10

Bài 2: Hãy đổi các số sau từ hệ nhị phân sang hệ thập phân và bát phân

Trang 11

Chương 3: NGÔN NGỮ LẬP TRÌNH PASCAL

3.1 Giới thiệu về Pascal

o0o 3.1.1 Lịch sử ra đời.

Pascal là một ngôn ngữ lập trình bậc cao do Niklaus Wirth, giáo sư điện toán trườngĐại học kỹ thuật Zurich (Thụy Sĩ) đề xuất năm 1970 Ông lấy tên Pascal để kỷ niệm nhàtoán học và nhà triết học người Pháp nổi tiếng Blaise Pascal

3.1.2 Phần mềm soạn thảo và chạy chương trình.

a Các tập tin cần thiết khi lập trình với Turbo Pascal.

Để lập trình được với Turbo Pascal, tối thiểu cần 2 file sau:

TURBO.EXE: Dùng để soạn thảo và dịch chương trình.

TURBO.TPL: Thư viện chứa các đơn vị chuẩn để chạy với TURBO.EXE.

Ngoài ra, muốn lập trình đồ hoạ thì phải cần thêm các tập tin:

GRAPH.TPU: Thư viện đồ hoạ.

*.BGI: Các file điều khiển các loại màn hình tương ứng khi dùng đồ hoạ.

*.CHR: Các file chứa các font chữ đồ họa.

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

Bước 1: Soạn thảo chương trình.

Bước 2: Dịch chương trình (nhấn phím F9), nếu có lỗi thì phải sửa lỗi.

Bước 3: Chạy chương trình (nhấn phím Ctrl-F9).

3.1.3 Một số phím chức năng thường dùng

F2: Lưu chương trình đang soạn thảo vào đĩa

F3: Mở file mới hoặc file đã tồn tại trên đĩa để soạn thảo

Alt-F3: Đóng file đang soạn thảo

Alt-F5: Xem kết quả chạy chương trình

F8: Chạy từng câu lệnh một trong chương trình

Alt-X: Thoát khỏi Turbo Pascal

Alt-<Số thứ tự của file đang mở>: Dịch chuyển qua lại giữa các file đang mở.

F10: Vào hệ thống Menu của Pascal.

3.2 Thuật toán

3.2.1 Khái niệm

Thuật toán hay giải thuật là một hệ thống chặc chẽ và rõ rang các quy tắc nhằm xácđịnh một dãy các thao tác trên những đối tượng, sao cho sau một số hữu hạn bước thựchiện các thao tác thì cho kết quả

Trang 12

Từ thuật toán (Algorithm) xuất phát từ tên một nhà toán học người Trung Á là Abu Abd - Allah ibn Musa al’Khwarizmi, thường gọi là al’Khwarizmi Ông là tác giả một

cuốn sách về số học, trong đó ông đã dùng phương pháp mô tả rất rõ ràng, mạch lạc cáchgiải những bài toán Sau này, phương pháp mô tả cách giải toán của ông đã được xem làmột chuẩn mực và được nhiều nhà toán học khác tuân theo Từ algorithm ra đời dựa theocách phiên âm tên của ông

3.2.2 Các đặc trưng của giải thuật.

Sau khi thực hiện các bước của giải thuật phải cho được kết quả mong muốn, kết quả

đó được xác định theo định nghĩa có trước

* Tính tổng quát (generalliness) : thuật toán có tính tổng quát là thuật toán phải áp dụng

được cho mọi trường hợp của bài toán chứ không phải chỉ áp dụng được cho một sốtrường hợp riêng lẻ nào đó Chẳng hạn giải phương trình bậc hai sau đây bằng Delta đảmbảo được tính chất này vì nó luôn giải được với mọi giá trị số thực a,b,c bất kỳ Tuynhiên, không phải thuật toán nào cũng đảm bảo được tính tổng quát Trong thực tế, có lúcngười ta chỉ xây dựng thuật toán cho một dạng đặc trưng của bài toán mà thôi

* Tính có đại lượng vào và ra

Bắt đầu một giải thuật là việc nhận dữ liệu vào (Input) – kết thúc giải thuật là một sốkết quả (dữ liệu ra Output)

* Tính hiệu quả

Tính hiệu quả của một giải thuật được đánh giá dựa trên các tiêu chuẩn sau:

- Dung lượng bộ cần thiết

- Số lượng phép tính cần thực hiện

- Thời gian cần thiết để chạy

- Dễ hiểu và dễ cài đặt

Ví dụ: Thuật toán giải phương trình bậc hai ax 2 +bx+c=0 (a?0)

1 Yêu cầu cho biết giá trị của 3 hệ số a, b, c

3.2.1 Phương trình có hai nghiệm phân biệt x1 và x2

3.2.2 Giá trị của hai nghiệm được tính theo công thức sau:

12

Trang 13

2 2

 3.2.3 Kết thúc thuật toán

3.2.3 Biểu diễn thuật toán.

Sử dụng các kư hiệu h́nh khối cơ bản để tạo thành một mô tả mang tính h́nh thức(cách này rơ ràng hơn so với việc mô tả các bước thực hiện thuật toán)

Khối 1: Khối bắt đầu thuật toán, chỉ có duy nhất một đường ra.

Khối 2: Khối kết thúc thuật toán, có thể có nhiều đường vào.

Khối 3: Thực hiện câu lệnh (có thể là một hoặc nhiều câu lệnh); gồm một đường vào và

một đường ra

Khối 4: Rẽ nhánh, kiểm tra biểu thức điều kiện (biểu thức Boolean), nếu biểu thức đúng

thuật toán sẽ đi theo nhánh Đúng (True), nếu biểu thức sai thuật toán sẽ đi theo nhánh Sai(False)

Khối 5: Các câu lệnh nhập và xuất dữ liệu.

Nhập, XuấtBắt đầu

Trang 14

3.3.1 Tên (định danh)

Định danh là một dãy ký tự dùng để đặt tên cho các hằng, biến, kiểu, tên chươngtrình con Khi đặt tên, ta phải chú ý một số điểm sau:

 Không được đặt trùng tên với từ khoá

 Ký tự đầu tiên của tên không được bắt đầu bởi các ký tự đặc biệt hoặc chữ số

 Không được đặt tên với ký tự space,các phép toán

Ví dụ: Các tên viết như sau là sai

1XYZ Sai vì bắt đầu bằng chữ số

#LONG Sai vì bắt đầu bằng ký tự đặc biệt

KY TU Sai vì có khoảng trắng (space)

LAP-TRINH Sai vì dấu trừ (-) là phép toán

3.3.2 Từ khóa

Từ khoá là các từ mà Pascal dành riêng để phục vụ cho mục đích của nó (Chẳng

hạn như: BEGIN, END, IF, WHILE, )

Chú ý: Với Turbo Pascal 7.0 trở lên, các từ khoá trong chương trình sẽ được hiển thị khác màu với các từ khác.

Logic = ODD(5); {Logic =TRUE}

Chú ý: Chỉ các hàm chuẩn dưới đây mới được cho phép sử dụng trong một biểu thức

hằng:

3.3.4 Biến

14

Trang 15

- Biến là một đại lượng mà giá trị của nó có thể thay đổi trong quá trình thực hiện chươngtrình

- Khai báo biến:

VAR <Tên biến>[,<Tên biến 2>, ] : <Kiểu dữ liệu>;

Ví dụ:

VAR x, y: Real; {Khai báo hai biến x, y có kiểu là Real}

a, b: Integer; {Khai báo hai biến a, b có kiểu integer}

Chú ý: Ta có thể vừa khai báo biến, vừa gán giá trị khởi đầu cho biến bằng cách sử dụng

FOR i:=1 TO 10 DO Write(i);

Trong câu lệnh trên, lệnh Write(i) được thực hiện 10 lần Nếu hiểu dấu chấm phẩy

là kết thúc câu lệnh thì lệnh Write(i) chỉ thực hiện 1 lần

3.3.6 Lời giải thích

Các lời bàn luận, lời chú thích có thể đưa vào bất kỳ chỗ nào trong chương trình

để cho người đọc dể hiểu mà không làm ảnh hưởng đến các phần khác trong chươngtrình Lời giải thích được đặt giữa hai dấu ngoạc { và } hoặc giữa cụm dấu (* và *)

Ví dụ:

Var a,b,c:Real; {Khai báo biến}

Delta := b*b – 4*a*c; (* Tính delta để giải phương trình bậc 2 *)

3.3.7 Kiểu

- Ngoài các kiểu dữ liệu do Turbo Pascal cung cấp, ta có thể định nghĩa các kiểu dữ liệumới dựa trên các kiểu dữ liệu đã có

- Cú pháp:

TYPE<Tên kiểu> = <Mô tả kiểu>;

VAR <Tên biến>:<Tên kiểu>;

Ví dụ:

TYPE Sothuc = Real;

VAR x :Sothuc;

Trang 16

Biểu thức (expression) là công thức tính toán mà trong đó bao gồm các phép toán, cáchằng, các biến, các hàm và các dấu ngoặc đơn.

 Phép toán một ngôi (NOT, -)

 Phép toán *, /, DIV, MOD, AND

 Phép toán +, -, OR, XOR

- Câu lệnh ghép: BEGIN END;

- Các cấu trúc điều khiển: IF , CASE , FOR , REPEAT , WHILE

- Viết không qui cách: dữ liệu xuất ra sẽ được canh lề ở phía bên trái Nếu dữ liệu là số

thực thì sẽ được in ra dưới dạng biểu diễn khoa học

Ví dụ:

WRITELN(x); WRITE(sin(3*x));

- Viết có qui cách: dữ liệu xuất ra sẽ được canh lề ở phía bên phải.

16

Trang 17

Ví dụ:

WRITELN(x:5); WRITE(sin(13*x):5:2);

Câu lệnh Kết quả trên màn hình

Writeln('Hello');

Writeln('Hello':10);

Writeln(500);

Writeln(500:5);

Writeln(123.457)

Writeln(123.45:8:2)

Hello Hello 500 500 1.2345700000E+02 123.46

Lệnh nhập dữ liệu

Để nhập dữ liệu từ bàn phím vào các biến có kiểu dữ liệu chuẩn (trừ các biến kiểu BOOLEAN), ta sử dụng cú pháp sau đây:

READLN(<biến 1> [,<biến 2>, ,<biến n>]);

Chú ý: Khi gặp câu lệnh READLN; (không có tham số), chương trình sẽ dừng lại chờ

người sử dụng nhấn phím ENTER mới chạy tiếp.

d Các hàm và thủ tục thường dùng trong nhập xuất dữ liệu

Hàm KEYPRESSED: Hàm trả về giá trị TRUE nếu như có một phím bất kỳ được

nhấn, nếu không hàm cho giá trị là FALSE

Hàm READKEY: Hàm có chức năng đọc một ký tự từ bộ đệm bàn phím.

Thủ tục GOTOXY(X,Y:Integer): Di chuyển con trỏ đến cột X dòng Y.

Thủ tục CLRSCR: Xoá màn hình và đưa con trỏ về góc trên bên trái màn hình.

Thủ tục CLREOL: Xóa các ký tự từ vị trí con trỏ đến hết dòng.

Thủ tục DELLINE: Xoá dòng tại vị trí con trỏ và dồn các dòng ở phía dưới lên.

Thủ tục TEXTCOLOR(color:Byte): Thiết lập màu cho các ký tự Trong đó color

 [0,15]

Thủ tục TEXTBACKGROUND(color:Byte): Thiết lập màu nền cho màn hình.

3.4 Cấu trúc tổng quát một chương trình.

{ Phần tiêu đề }

PROGRAM Tên_chương_trình;

{ Phần khai báo }

USES ;

CONST .;

TYPE ;

VAR .;

PROCEDURE .;

FUNCTION ;

Trang 18

- Miền giá trị: (TRUE, FALSE)

- Các phép toán: phép so sánh (=, <, >) và các phép toán logic: AND, OR, XOR,NOT

Trong Pascal, khi so sánh các giá trị boolean ta tuân theo qui tắc: FALSE < TRUE.Giả sử A và B là hai giá trị kiểu Boolean Kết quả của các phép toán được thể hiệnqua bảng dưới đây:

3.5.2 Kiểu số nguyên.

1 Các kiểu số nguyên

18

Trang 19

Tên kiểu Phạm vi Dung lượng

+, -, *, / (phép chia cho ra kết quả là số thực).

Phép chia lấy phần nguyên: DIV (Ví dụ : 34 DIV 5 = 6).

Phép chia lấy số dư: MOD (Ví dụ: 34 MOD 5 = 4).

b Các phép toán xử lý bit:

Trên các kiểu ShortInt, Integer, Byte, Word có các phép toán:

- NOT, AND, OR, XOR

Chú ý: Các kiểu số thực Single, Double và Extended yêu cầu phải sử dụng chung với bộ

đồng xử lý số hoặc phải biên dich chương trình với chỉ thị {$N+} để liên kết bộ giả lập

số

2 Các phép toán trên kiểu số thực: +, -, *, /

Trang 20

3 Các hàm số học sử dụng cho kiểu số nguyên và số thực:

SQRT(x): Trả về căn bậc hai của x (x0)

SIN(x): Trả về sin(x) theo radian

COS(x): Trả về cos(x) theo radian

ARCTAN(x): Trả về arctang(x) theo radian

TRUNC(x): Trả về số nguyên gần với x nhất nhưng bé hơn x

INT(x): Trả về phần nguyên của x

FRAC(x): Trả về phần thập phân của x

ROUND(x): Làm tròn số nguyên x

PRED(n): Trả về giá trị đứng trước n

SUCC(n): Trả về giá trị đứng sau n

ODD(n): Cho giá trị TRUE nếu n là số lẻ

INC(n): Tăng n thêm 1 đơn vị (n:=n+1)

DEC(n): Giảm n đi 1 đơn vị (n:=n-1)

3.5.4 Kiểu ký tự

- Từ khoá: CHAR

- Kích thước: 1 byte

- Để biểu diễn một ký tự, ta có thể sử dụng một trong số các cách sau đây:

 Đặt ký tự trong cặp dấu nháy đơn Ví dụ 'A', '0'

 Dùng hàm CHR(n) (trong đó n là mã ASCII của ký tự cần biểu diễn) Ví dụCHR(65) biễu diễn ký tự 'A'

 Dùng ký hiệu #n (trong đó n là mã ASCII của ký tự cần biểu diễn) Ví dụ #65

- Các phép toán: =, >, >=, <, <=,<>

* Các hàm trên kiểu ký tự:

- UPCASE(ch): Trả về ký tự in hoa tương ứng với ký tự ch Ví dụ: UPCASE('a') = 'A'.

- ORD(ch): Trả về số thứ tự trong bảng mã ASCII của ký tự ch Ví dụ ORD('A')=65.

- CHR(n): Trả về ký tự tương ứng trong bảng mã ASCII có số thứ tự là n Ví dụ:

CHR(65)='A'

- PRED(ch): cho ký tự đứng trước ký tự ch Ví dụ: PRED('B')='A'.

- SUCC(ch): cho ký tự đứng sau ký tự ch Ví dụ: SUCC('A')='B'.

BÀI TẬP MẪU

Bài tập 1: Viết chương trình nhập vào độ dài hai cạnh của tam giác và góc giữa hai cạnh

đó, sau đó tính và in ra màn hình diện tích của tam giác

20

Trang 21

Ý tưởng: Công thức tính diện tích tam giác: S = sin( )

Write('Nhap vao do dai canh thu nhat: '); Readln(a);

Write('Nhap vao do dai canh thu hai: '); Readln(b);

Write('Nhap vao goc giua hai canh: '); Readln(goc);

Write('Nhap vao n= '); Readln(n);

Write('Nhap vao x= '); Readln(x);

S:=EXP(1/n*LN(x));

Writeln('S = ',S:0:2);

Readln;

End

Bài tập 3: Viết chương trình nhập vào 2 số a, b Sau đó hoán đổi giá trị của 2 số đó:

a/ Cho phép dùng biến trung gian.

Program Swap;

Var a,b,tam: Integer;

Begin

Write('Nhap vao a= '); Readln(a);

Write('Nhap vao b= '); Readln(b);

tam:=a; {tam lấy giá trị của a}

b:=tam;{b lấy lại giá trị của tam}

Trang 22

Var a,b: Integer;

Begin

Write('Nhap vao a= '); Readln(a);

Write('Nhap vao b= '); Readln(b);

a:=a+b;{a lấy tổng giá trị của a+b}

b:=a-b; {b lấy giá trị của a}

a:=a-b;{a lấy lại giá trị của b}

Với: bt là biến, biểu thức có giá trị logic

CV1, CV2 là câu lệnh hay nhóm câu lệnh

- Ý nghĩa của câu lệnh: Nếu bt (biểu thức) có giá trị đúng thì thực hiện CV1 tới CV2,

ngược lại bt có giá trị sai thì bỏ qua CV1 thực hiện CV2

- Lưu đồ thuật toán:

Trang 23

Write(‘Max la ’,Max);

Readln ;End

(2) IF…THEN…ELSE

- Cú pháp:

IF bt THEN

CV1 ELSE

CV2;

- Ý nghĩa câu lệnh: Nếu bt có giá trị đúng thì thực hiện CV1 bỏ qua CV2, ngược lại thì

bỏ qua CV1 và thực hiện CV2

- Lưu đồ thuật toán:

Chú ý : Khi sử dụng câu lệnh IF thì đứng trước từ khoá ELSE không được có dấu chấm phẩy (;).

Trang 24

 Giá trị của biểu thức và giá trị của tập hằng i (i=1¸n) phải có cùng kiểu.

- Ý nghĩa câu lệnh: Khi gặp lệnh CASE, chương trình sẽ kiểm tra:

+ Nếu giá trị của biểu thức bt nằm trong tập hằng gti thì máy sẽ thực hiện lệnh CVitương ứng

+ Ngược lại:

Đối với dạng 1: Không làm gì cả

Đối với dạng 2: thực hiện lệnh Sn+1

- Ví dụ: Xét tính chẵn lẻ của một số nguyên dương nhập từ bàn phím

Trang 25

FOR <biến đếm>:=<giá trị Max> DOWNTO <giá trị Min> DO CV;

Sơ đồ thực hiện vòng lặp FOR:

- Ý nghĩa câu lệnh:

+ Đối với dạng tiến: Biến đếm nhận giá trị là giá trị Min <= giá trị Max thì thực hiện CV,sau đó biến đếm tự động tăng lên một đơn vị và nếu còn <= giá trị Max thì thực hiện CV,

cứ tiếp tục như thế cho đến khi biến đếm > giá trị Max thì thoát khỏi vòng lặp

+ Đối với dạng lùi: Biến đếm nhận giá trị là giá trị Max >= giá trị Min thì thực hiện CV,sau đó biến đếm tự động giảm một đơn vị và nếu còn >= giá trị Min thì thực hiện CV, cứtiếp tục như thế cho đến khi biến đếm < giá trị Max thì thoát khỏi vòng lặp

- Sơ đồ khối:

Chú ý: Khi sử dụng câu lệnh lặp FOR cần chú ý các điểm sau:

Không nên tuỳ tiện thay đổi giá trị của biến đếm bên trong vòng lặp FOR vì làm như vậy có thể sẽ không kiểm soát được biến đếm.

Giá trị Max và Min trong câu lệnh FOR sẽ được xác định ngay khi vào đầu vòng lặp.

Do đó cho dù trong vòng lặp ta có thay đổi giá trị của nó thì số lần lặp cũng không thay đổi.

Trang 26

S

B

+ -

Thoát

Trang 28

Bài tập 3: Viết chương trình nhập vào tuổi của một người và cho biết người đó là thiếu

niên, thanh niên, trung niên hay lão niên Biết rằng: nếu tuổi nhỏ hơn 18 là thiếu niên, từ

18 đến 39 là thanh niên, từ 40 đến 60 là trung niên và lớn hơn 60 là lão niên

1 17: Writeln(Nguoi nay la thieu nien');

18 39: Writeln(Nguoi nay la thanh nien');

40 60: Writeln(Nguoi nay la trung nien');

Else Writeln(Nguoi nay la lao nien');

Trang 29

Bài tập 5: Viết chương trình nhập vào N số nguyên từ bàn phím Hãy tính và in ra màn

hình tổng của các số vừa được nhập vào

Trang 30

Bài tập 6: Viết chương trình nhập vào các số nguyên cho đến khi nào gặp số 0 thì kết

thúc Hãy đếm xem có bao nhiêu số chẵn vừa được nhập vào

Ý tưởng:

Bài toán này không biết chính xác số lần lặp nên ta không thể dùng vòng lặp FOR

Vì phải nhập vào số nguyên N trước, sau đó mới kiểm tra xem N=0? Do đó ta nên dùngvòng lặp REPEAT

Write('Nhap vao mot so nguyen N= '); Readln(N);

If N MOD 2 = 0 Then dem:=dem+1;

Vì tính số Pi với độ chính xác Epsilon nên không biết trước được cụ thể số lần

lặp, do đó ta phải dùng vòng lặp WHILE hoặc REPEAT Có nghĩa là phải lặp cho tới khit=4/(2*i+1)  Epsilon thì dừng

Trang 31

- Tìm USCLN: Lấy số lớn trừ số nhỏ cho đến khi a=b thì dừng Lúc đó: USCLN=a.

- BSCNN(a,b) = a*b DIV USCLN(a,b)

Trang 32

Ý tưởng:

Dùng phương pháp vét cạn Ta biết rằng: a có thể có giá trị từ 19 (vì a là số hàngtrăm), b,c có thể có giá trị từ 09 Ta sẽ dùng 3 vòng lặp FOR lồng nhau để duyệt qua tất

cả các trường hợp của a,b,c

Ứng với mỗi bộ abc, ta sẽ kiểm tra: Nếu 100.a + 10.b + c = a3 + b3 + c3 thì in ra bộabc đó

Bài tập 11: Viết chương trình nhập vào số tự nhiên N rồi thông báo lên màn hình số đó

có phải là số nguyên tố hay không

Ý tưởng:

N là số nguyên tố nếu N không có ước số nào từ 2  N div 2 Từ định nghĩa này

ta đưa ra giải thuật:

- Đếm số ước số của N từ 2  N div 2 lưu vào biến d

For i:=2 To N div 2 Do

If N MOD i=0 Then d:=d+1;

Trang 33

Mảng là một bảng chứa dữ liệu có cùng kiểu, trên các hàng cột, giá trị của dữ liệuđược xác định theo chỉ số hàng, cột Có hai loại mảng: Một chiều, hai chiều.

Ví dụ: Mảng một chiều a(n) với n là số nguyên nào đó, cho xác định số phần tử của

mảng, phần tử của mảng được xác định theo chỉ số, chẳng hạn phần tử thứ 3 của mảng a

ta ghi a[3] (dấu ngoặc vuông)

Mảng hai chiều a(n,m) thường có nxm phần tử, gồm có n hàng, m cột, một phần tửthứ i,j nào đó có nghĩa là phần tử ở hàng thứ i, cột thứ j

3.8.1 Khai báo.

a Mảng một chiều

- Cú pháp:

+ Khai báo gián tiếp:

TYPE <Kiểu mảng> = Array[ Chỉ số] OF <Kiểu dữ liệu>;

VAR <Biến mảng>:<Kiểu mảng>;

+ Khai báo trực tiếp:

VAR <Biến mảng> : ARRAY [chỉ số] OF <Kiểu dữ liệu>;

Chú ý: Chỉ số trong khai báo đối với Pascal phải được xác định trước ở khai báo hằnghoặc ghi cụ thể

b Mảng hai chiều.

- Cú pháp:

+ Khai báo gián tiếp:

TYPE <Kiểu mảng> = ARRAY [chỉ số1, chỉ số 2] OF <Kiểu dữ liệu>;

VAR <Biến mảng>:<Kiểu mảng>;

+ Khai báo trực tiếp:

VAR <Biến mảng> : ARRAY [chỉ số1, chỉ số 2] OF <Kiểu dữ liệu>;

- Ví dụ:

TYPE Mangnguyen = Array[1 100] of Integer;

Matrix = Array[1 10,1 10] of Integer;

MangKytu = Array[Byte] of Char;

Trang 34

- Để truy cập đến phần tử thứ k trong mảng một chiều A, ta sử dụng cú pháp: A[k].

- Để truy cập đến phần tử (i,j) trong mảng hai chiều M, ta sử dụng cú pháp: M[i,j]

- Có thể sử dụng các thủ tục READ(LN)/WRITE(LN) đối với các phần tử của biến kiểumảng

Write(‘a[‘,i,’,’,j,’]=’);Readln(a[i,j]);

End;

3.8.3 Truy xuất các phần tử cho mảng.

- Để truy cập đến phần tử thứ k trong mảng một chiều A, ta sử dụng cú pháp: A[k]

- Để truy cập đến phần tử (i,j) trong mảng hai chiều M, ta sử dụng cú pháp: M[i,j]

- Có thể sử dụng các thủ tục READ(LN)/WRITE(LN) đối với các phần tử của biến kiểumảng

For j:=1 to m doWrite(a[i,j]:m);

34

Trang 35

For i:=1 to n-1 do

For j:=I to n do

If a[j] <a[i] then

BeginX:=a[i]; a[i]:=a[j]; a[j]:=x;

End;

3.8.5 Tìm kiếm phần tử trong mảng.

Để tìm xem một phần tử x nào đó có trong mảng hay không Có nhiều phương pháptìm kiếm, nhưng đơn giản nhất là phương phàp tìm kiếm tuần tự

Ý tưởng: Duyệt từ đầu đến cuối mảng, tại mỗi phần tử của mảng, ta kiểm tra xem

phần tử đó có phải phần tử cần tìm không, nếu phải thì dừng lại xử lý và kết thúc tìmkiếm

BÀI TẬP MẪU

Bài tập 1: Viết chương trình tìm giá trị lớn nhất của một mảng chứa các số nguyêngồm N phần tử

Ý tưởng:

- Cho số lớn nhất là số đầu tiên: Max:=a[1]

- Duyệt qua các phần tử a[i], với i chạy từ 2 tới N: Nếu a[i]>Max thì thayMax:=a[i];

Trang 36

Bài tập 3: Viết chương trình nhập vào một mảng gồm N số nguyên Sắp xếp lại mảng

theo thứ tự tăng dần và in kết quả ra màn hình

Trang 37

Writeln(‘Ket qua sau khi sap xep:’);

For i:=1 To N Do Write(A[i]:5);

Readln;

End

Bài tập 4: Viết chương trình nhập vào một mảng A gồm N số nguyên và nhập thêm vào

một số nguyên X Hãy kiểm tra xem phần tử X có trong mảng A hay không?

Trang 38

If I <= N Then Timkiem:=I Else Timkiem:=0;

Bài tập 5: Giả sử mảng A đã được sắp xếp theo thứ tự tăng dần Viết hàm để kiểm tra

xem phần tử X có trong mảng A hay không?

Ý tưởng:

So sánh x với phần tử ở giữa mảng A[giua] Nếu x=A[giua] thì dừng (vị trí cầntìm là chỉ số của phần tử giữa của mảng) Ngược lại, nếu x>A[giua] thì tìm ở đoạn saucủa mảng [giua+1,cuoi], ngược lại thì tìm ở đoạn đầu của mảng [dau,giua-1]

Sau đây là hàm cài đặt cho thuật toán này:

Bài tập 6: Cho một mảng 2 chiều A cấp mxn gồm các số nguyên và một số nguyên x.

Viết chương trình thực hiện các công việc sau:

a/ Đếm số lần xuất hiện của x trong A và vị trí của chúng

Trang 39

For j:=2 To n Do {duyệt từng phần tử của dòng thứ i}

If max<A[i,j] Then max:=A[i,j];

{Cộng max vào biến S}

Bài tập 7: Viết chương trình nhập vào 2 mảng số nguyên A, B đại diện cho 2 tập hợp

(không thể có 2 phần tử trùng nhau trong một tập hợp) Trong quá trình nhập, phải kiểmtra: nếu phần tử vừa nhập vào đã có trong mảng thì không bổ sung vào mảng In ra mànhình các phần tử là giao của 2 tập hợp A, B

Trang 40

Var A,B:Mang;

n,m:Byte;

Function KiemTra(x:Integer; n:Byte; A:Mang):Boolean;

Var i:Byte; Found:Boolean;

Begin

Found:=False;

i:=1;

While (i<=n) AND (not Found) Do

If x=A[i] Then Found:=True Else i:=i+1;

Ngày đăng: 30/03/2015, 03:06

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w