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

Lập trình Pascal - P1

95 598 4
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

Tiêu đề Lập trình Pascal - P1
Tác giả Lê Minh Hoàng
Trường học Unknown
Chuyên ngành Computer Science
Thể loại Bài học
Năm xuất bản Unknown
Thành phố Unknown
Định dạng
Số trang 95
Dung lượng 3,59 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung bài họcCách giao tiếp với máy tính bằng “ngôn ngữ” Quá trình phát triển của ngôn ngữ lập trình Ngôn ngữ bậc cao Trình dịch Một chương trình viết bằng ngôn ngữ bậc cao được xử l

Trang 1

Lê Minh Hoàng

Trang 2

Nội dung bài học

Cách giao tiếp với máy tính bằng “ngôn ngữ”

Quá trình phát triển của ngôn ngữ lập trình

Ngôn ngữ bậc cao

Trình dịch

Một chương trình viết bằng ngôn ngữ bậc cao

được xử lý như thế nào?

Thuật toán là gì?, Kỹ thuật giải quyết các bài toán tin học như thế nào?

Trang 3

Kiến trúc máy tính

Bộ xử lý trung tâm

(CPU: Central Processing Unit)

Bộ tính toán số học và logic ALU: Arithmetic-Logic Unit

Bộ điều khiển CU: Control Unit

Những t/p khác: Bộ đồng xử lý toán

học, bộ tăng tốc đồ họa và video…

Bộ nhớ trong (Main Memory)

Secondary Storage

Thiết bị vào (Input Device)

Thiết bị ra (Output Device)

Trang 4

Mô hình xử lý thông tin

Storage

Input: Bàn phím (Keyboard), Con chuột (Mouse), Máy quét (Scanner), …

Processing: Máy tính thực hiện chương trình

Output: Màn hình (Monitor), Máy in (Printer), Máy Fax …

Storage: Đĩa cứng (Hard Disks), Đĩa mềm (Floppy Disks), Băng từ (Magnetic

Trang 5

Minh họa một hệ thống máy tính

CPU MemoryI/O Interface

Trang 6

Phần cứng và Phần mềm

Phần cứng (Hardware)

Xử lý dữ liệu bằng cách tiến hành các lệnh theo chỉ thị

Cung cấp đầu vào (Input) và đầu ra (Output) qua các cổng giao tiếp thiết bị ngoại vi

Phần mềm

Chứa các chỉ thị lệnh giao cho phần cứng thực hiện

Là chương trình được viết để thực hiện một nhiệm vụ cụ thể nào đó

Phần mềm hệ thống (System Programs): Là chương trình viết ra để điều khiển máy tính, các thiết bị nối với máy tính, các chương trình khác chạy trên máy tính Ví dụ: Hệ điều hành Windows, Linux, Mac OS

Phần mềm ứng dụng (Application Programs): Là chương trình viết ra để thực hiện một tác vụ chuyên biệt nào đó Ví dụ: Phần mềm soạn thảo văn

Trang 7

Ngôn ngữ của máy tính

Nhắc lại:

Phần cứng tiến hành các lệnh theo chỉ thị Phần mềm cung cấp các chỉ thị cho phần cứng thực hiện Vậy chỉ thị là?

Ngôn ngữ của máy tính

Chỉ thị được biểu diễn bằng một dãy các số 0 và 1 VD 100010011101.

Cách mã hóa chỉ thị dưới dạng số nhị phân gọi là ngôn ngữ máy

Số 0 và 1 được gọi là chữ số nhị phân (Binary Digit hoặc bit)

Một dãy số nhị phân được gọi là mã nhị phân (Binary Code)

Trang 8

Giả sử

1001 chỉ thị máy tính đọc giá trị ở 4 bit tiếp theo.

1011 chỉ thị máy tính nhân giá trị đang có với giá trị ở 4 bit tiếp theo

và nhớ lại giá trị kết quả

1000 chỉ thị máy tính cho biết kết quả đang nhớ

Lệnh

1001 1111

1011 0110

Trang 9

Cho phép dùng biến số, chấp nhận biểu diễn thập phân

và thập lục phân của số nguyên.

Trang 10

Ngôn ngữ bậc cao (High level languages)

Ngôn ngữ bậc cao: Basic, FORTRAN,

COBOL, Pascal, C, Object Pascal, C++…

Để tính quãng đường (L) cho biết vận tốc (V) và thời gian (T), có thể viết lệnh trong ngôn ngữ

Pascal: L := V * T

Trình dịch: Là chương trình dịch các lệnh

viết trong ngôn ngữ bậc cao thành những

chỉ thị tương đương trong ngôn ngữ máy.

Trang 11

Dùng một trình dịch ( Compiler ) để kiểm tra lỗi cú pháp và dịch các lệnh viết trong mã nguồn ra ngôn ngữ máy Chương trình dịch ra từ

mã nguồn gọi là mã đối tượng ( Object code ) Trình dịch thường đi kèm với một hoặc nhiều thư viện ( Library ) chứa các đoạn mã hữu dụng đã được dịch sẵn dùng để phát triển phần mềm Nếu mã nguồn sử dụng chúng, trình liên kết ( Linker ) sẽ tích hợp những mã viết sẵn trong thư viện vào mã đối tượng tạo thành mã khả thi ( Executable Code )

Mã khả thi có thể được nạp trực tiếp vào bộ nhớ và chạy độc lập, không phụ thuộc vào Editor, Compiler hay Linker nữa.

Trang 12

Quy trình xử lý chương trình (tiếp) Editor

Compiler Source Code

Object Code Libraries

Linker

Trang 13

Quy trình phát triển phần mềm

Bài toán (Problem)

Phân tích (Analysis)

Thiết kế thuật toán (Algorithm Design)

Soạn chương trình (Coding)

Dịch (Compilation)

Liên kết (Linking)

Thực hiện (Execution)

Lỗi Không lỗi

Lỗi Không lỗi

Thiết kế từ trên

xuống(Top-down design)

Tinh chỉnh từng bước (Step-wise refinement) Tách biệt từng phần

(Modular programming)

Trang 14

Lê Minh Hoàng

Trang 15

Nội dung bài học

Những khái niệm cơ bản về lập trình

Lịch sử ngôn ngữ lập trình Pascal

Xuất phát từ ALGOL Trở thành chuẩn mực lập trình

Trang 16

có kế hoạch để tạo ra chương trình

Công thức nấu ăn:

Nấu ăn theo công thức thì dễ hơn tạo ra một công thức nấu ăn mới

Có những công thức tốt và có những công thức tồi

Có những công thức dễ dàng làm theo và có những công thức không dễ.

Có những công thức tạo ra món ăn ngon và có những công thức tạo ra những thứ không ăn được

Người đầu bếp phải có kiến thức về sử dụng dụng cụ nấu ăn để làm theo công thức

Trang 17

Lập trình (tiếp)

Để viết một chương trình, chúng ta phải học các ký hiệu,

các từ, và các luật cú pháp của ngôn ngữ lập trình.

Luật cú pháp cho biết cách viết dòng lệnh nào là hợp lệ

(được chấp nhận bởi ngôn ngữ lập trình), cách viết nào là sai.

Ngôn ngữ lập trình: Là một tập các luật cú pháp, ký hiệu, và

từ khoá.

Luật ngữ nghĩa: Các luật cú pháp, từ khoá trong ngôn ngữ lập trình bậc cao thường gợi nhớ nghĩa của dòng lệnh bằng tiếng Anh.

and: và or: hoặc

If x > 0 then <S>: Nếu x là số dương thì làm <S>

while a > b do <S>: Thực hiện <S> chừng nào vẫn thấy a > b

Trang 18

Pascal Programming Language

Ngôn ngữ lập trình Pascal được đặt tên theo tên

nhà toán học Pháp Blaise Pascal

Đặc điểm

Dễ học Thích hợp để mô phỏng thuật toán Viết chương trình dễ

Chương trình chạy nhanh Định kiểu mạnh mẽ và luật cú pháp chặt chẽ Hạn chế lập trình viên viết những đoạn mã tồi

Blaise Pascal1623-1662

Trang 19

Lịch sử: Nguồn gốc

ALGOL

Ngôn ngữ được phát kiến dành cho tính toán khoa học

Kỳ vọng: Ngôn ngữ độc lập với phần cứng và hệ điều hành

Thất vọng: Quá khó để viết ra một trình dịch ALGOL với điều kiện lúc đó.

Hạn chế: Thiếu trình dịch + Thiếu rất nhiều kiểu dữ liệu

cơ bản (như kiểu ký tự) và con trỏ Giới khoa học và lập trình viên chuyển sang sử dụng FORTRAN…

ALGOL không và không bao giờ được chấp nhận rộng rãi và chỉ còn là ngôn ngữ để…mô tả thuật toán.

Trang 20

Lịch sử: Pascal ra đời

Wirth phát minh PASCAL

Vào những năm 1960s, một vài nhà khoa học máy tính vẫn cố gắng mở rộng ALGOL Trong số đó có Wirth (Swiss Federal Institute of Technology)1971: Wirth đưa ra đặc tả về một ngôn ngữ có cấu trúc chặt chẽ và đặt tên

là PASCAL (Tên nhà toán học thế kỷ 17, người phát minh ra máy tính đầu tiên…

Quan trọng hơn cả: Wirth viết luôn trình dịch PASCAL Một trình dịch độc lập phần cứng và hệ điều hành để dịch chương trình PASCAL ra mã đối tượng Khi chạy trên các máy tính và hệ điều hành khác nhau, chỉ cần một chương trình nhỏ chuyển mã đối tượng thành mã khả thi (Xem lại các khái niệm mã đối tượng và mã khả thi ở đây)

Đặc tính của PASCAL

Hướng tới dữ liệu, định kiểu mạnh mẽ

Cho phép người dùng tự định nghĩa những kiểu dữ liệu mới

Đọc chương trình rất giống với ngôn ngữ tự nhiên (Tiếng Anh)

Trang 21

Lịch sử: Pascal trở thành chuẩn

Đầu những năm 1980s, Pascal được sử dụng rộng rãi Có 2 lý do:

Cơ quan kiểm tra giáo dục Mỹ quyết định đưa Khoa học máy tính (Computer Science) vào nội dung thi, và ngôn ngữ lập trình được sử dụng

là Pascal (Pascal trở thành ngôn ngữ chính thức tới năm 1999, sau đó chuyển sang C++ 2 năm, và hiện tại là Java)

Một công ty là Borland International đưa ra thị trường Turbo Pascal (TP) - một phần mềm dịch tích hợp Pascal TP là một cuộc cách mạng:

TP có thay đổi một số thành phần trong Pascal chuẩn, làm cho ngôn ngữ tiện dụng hơn.

Tốc độ tuyệt vời: Trên những máy tính chậm hơn khoảng 1000 lần máy tính hiện nay, TP có thể dịch vài ngàn dòng lệnh trong 1 phút.

Trang 22

Lịch sử: Thế giới thay đổi

Để hiểu kiến trúc UNIX, phải học C để đọc mã nguồn UNIX C tiến những bước chậm và chắc vào thế giới lập trình Nhưng so với C, Pascal vẫn là #1…

Pascal chính thức bị thay thế bởi C++

Tư duy lập trình thay đổi: Từ lập trình hướng cấu trúc (Structure-Oriented Programming) sang hướng đối tượng (Object-Oriented Programming) Vào đầu những năm 1980s, Bjarne Stroustrop tại phòng thí nghiệm Bell tích hợp những đặc tả cho lập trình hướng đối tượng vào ngôn ngữ C, tạo ra ngôn ngữ C++ Tất cả lập trình viên đều nhận ra nhiều ưu điểm của lập trình OOP so với lập trình cấu trúc, trong khi đó Pascal ra đời khi OOP chưa phổ biến…

TP chấm dứt phát triển: Borland tuyên bố “Sẽ không có Borland (Turbo) Pascal 8 mà thay vào đó sẽ là Delphi”.

Trang 23

Lịch sử: Object Pascal vs C#

Nhược điểm của ngôn ngữ C++

Quá nhiều ký hiệu, chương trình C++ khác biệt rất nhiều ngôn ngữ tự nhiên nên khó đọc

Quá dễ dãi, C++ định kiểu yếu, chú trọng việc đưa ra những cú pháp tắt Điều này làm chương trình C++ ngắn bằng khoảng 60% so với Pascal, nhưng lại không hạn chế được lập trình viên viết những mã nguy hiểm hoặc dễ gây nhầm lẫn.

Cơ quan kiểm tra giáo dục Mỹ khi đưa C++ vào các trường học đã phải bỏ bớt hoặc sửa đổi một số đặc điểm của C++ được coi là “nguy hiểm” đối với sinh viên - những người mới học lập trình.

Đối lập với nhược điểm này của C++ lại là đặc tính dễ hiểu, chặt chẽ, định kiểu mạnh của Pascal…

Thế hệ ngôn ngữ mới

Những người phát triển Pascal: Pascal chỉ kém C++ ở phần lập trình hướng đối tượng → Mượn tất cả đặc tả hướng đối tượng trong C++ đưa vào Pascal tạo ra ngôn ngữ mới Object Pascal.

Những người phát triển C++: C++ kém Pascal chủ yếu do tính dễ dãi và khó hiểu → Hạn chế bớt một số tính năng nguy hiểm của C++, tăng cường hệ thống báo lỗi, C#

ra đời.

Trang 25

So, Why learn Pascal?

C and C++ are very symbolic languages…

{…} vs begin…endand very dangerous for students…

Type-casting and pointer arithmetic is common, making it easy to crash programs and write in buffer overruns

Another reason: Speed

Instead of several hours design graphic user interface in C++

We can do 10 minutes in DelphiThe last reason:

Pascal was well-suited for teaching programmingLess overhead and fewer ways for students to get program into trouble.Pascal is an official language of IOI

Answer in one sentence

Because it’s not scary like C, not dangerous like C++, and not abstract like Java

Trang 26

Lack of many Delphi powerful tools, but enough for learning Object Pascal.

Some issues of instability.

Trang 27

Giao diện của FPC

Trang 28

Hệ thống Menu: File

F ile: Các chức năng thao tác tệp và đĩa

N ew: Mở một cửa sổ soạn thảo chương trình New from t emplate: Tạo ra một cửa sổ soạn thảo chương trình mới với một số đoạn mã đã được viết sẵn theo khuôn mẫu.

O pen ( F3 ): Mở chương trình nguồn đã soạn trên đĩa

S ave ( F2 ): Ghi mã nguồn đang soạn trong cửa sổ hiện hành vào một tệp trên đĩa

S ave as: Ghi mã nguồn đang soạn trong cửa sổ hiện hành vào một tệp trên đĩa với một tên khác hoặc vào thư mục khác

C hange Dir: Thay đổi thư mục hoạt động Comman d Shell: Thoát khỏi FP tạm thời, mở cửa sổ Command- Line Khi cần quay về FP, gõ vào exit ↵

E x it ( Alt+X ): Thoát khỏi FP.

Trang 29

Hệ thống Menu: Edit

Edit: Các chức năng soạn thảo

U ndo ( Alt+Backspace ): Phục hồi lại văn bản từ trạng thái trước thao tác soạn thảo gần nhất (VD: dùng để phục hồi lại dòng lệnh vừa bị xoá)

R edo: Ngược lại với Undo, phục hồi lại văn bản trước thao tác Undo gần nhất

Cu t ( Shift+Delete ): Cắt phần văn bản đã đánh dấu vào một vùng đệm gọi là clipboard, phần văn bản sau khi cắt sẽ mất Cách đánh dấu đoạn văn bản: Giữ Shift

và dùng các phím di chuyển con trỏ để đánh dấu.

C opy ( Ctrl+Insert ): Chép phần văn bản đã đánh dấu vào clipboard, phần văn bản sau khi chép vẫn giữ nguyên.

P aste ( Shift+Insert ): Dán phần văn bản đang có trong clipboard ra vị trí hiện thời của con trỏ.

C l ear ( Ctrl+Delete ): Xoá bỏ phần văn bản đã đánh dấu Select A ll: Đánh dấu toàn bộ văn bản

U n select: Bỏ đánh dấu phần văn bản đang bị đánh dấu

S how clipboard: Hiện nội dung của clipboard Clipboard chỉ lưu trữ nội dung của thao tác Cut hay Copy gần nhất.

Cop y to Windows và Paste from W indows: Tương tự như Copy/Paste, nhưng dùng clipboard của Windows Dùng để chép/dán đoạn văn bản đã đánh dấu ra/từ phần

Trang 30

G oto Cursor ( F4 ): Chạy ở chế độ gỡ rối, chạy tới dòng chứa con trỏ thì dừng lại.

U ntil return ( Alt+F4 ): Khi đang gỡ rối một chương trình con, chức năng này cho chạy tiếp tới khi chương trình con thoát ra thì dừng lại để tiếp tục gỡ rối

Run D irectory…: Chọn thư mục hoạt động

P a rameters…: Giả lập các tham số dòng lệnh cho chương trình, để chương trình hoạt động như chạy trực tiếp file EXE với tham số dòng lệnh

P rogram reset ( Ctrl+F2 ): Ngưng thao tác gỡ rối, dừng chương trình.

Ngoài ra nếu chương trình đang chạy bị treo, có thể bấm Ctrl+Break+Break (2 lần Break) để ngưng, quay về màn hình soạn thảo để kiểm tra lại mã lệnh.

Trang 31

Hệ thống Menu: Compile

C ompile: Các chức năng dịch

Compile (Alt+F9): Dịch mã nguồn trong cửa sổ hiện hành

Make (F9): Dịch mã nguồn trong cửa sổ hiện hành, dịch luôn cả các thư viện được sử dụng nếu thư viện đó bị thay đổi

Build: Tất cả các dẫn hướng biên dịch hiện hành được sử dụng để dịch lại toàn bộ mã nguồn, thư viện bất kể có hay không có sự thay đổi

Target: Cho biết chương trình dịch ra sẽ chạy trên hệ điều hành nào, phần cứng máy tính nào

Primary file: Nếu cửa sổ hiện hành là mã nguồn một thư viện chứ không phải chương trình, chức năng này cho biết chương trình nào sử dụng thư viện hiện tại Khi chạy chương trình, Primary file sẽ được chạy chứ không phải thư viện trong cửa sổ hiện hành

Clear primary file: Bỏ không sử dụng Primary file nữa

Compiler messages (F12): Hiện các thông báo của trình dịch: Báo lỗi cũ pháp, cảnh bảo nguy hiểm…

Trang 32

Hệ thống Menu: Debug

D ebug: Các chức năng gỡ rối

Output: Hiện những gì trên màn hình người dùng trên một cửa sổ mới của IDE

User screen (Alt+F5): Chuyển sang màn hình người dùng, bấm một phím bất kỳ để quay lại

Add Watch (Ctrl+F7): Thêm một mục cần theo dõi giá trị vào cửa sổ Watchs

Watches: Hiện cửa sổ Watchs

Breakpoint (Ctrl+F8): Tạo điểm ngắt tại một dòng mã nguồn Chương trình chạy tới điểm ngắt sẽ dừng lại

Breakpoint List: Hiện danh sách các điểm ngắt, có thể đặt điều kiện ngắt

Evaluate (Ctrl + F4): Xem nhanh giá trị biến hoặc biểu thức Có thể thay đổi giá trị biến lúc đang chạy gỡ rối

Call stack (Ctrl + F3): Xem danh sách lời gọi chương trình con tại thời điểm hiện tại

Disassembler: Xem mã hợp ngữ của chương trình lúc đang chạy gỡ rối

Registers: Xem giá trị các thanh ghi của bộ vi xử lý

Floating Point Unit: Xem giá trị các thanh ghi của bộ đồng xử lý toán học

Vector Unit: Xem giá trị các thanh ghi của bộ xử lý vector (MMX)

Trang 33

Calculator: Công cụ máy tính bỏ túi Ascii table: Hiện bảng mã ASCII

Trang 34

Hệ thống Menu: Options

O ptions: Các thiết lập cho IDE

Mode…: Đặt kiểu dịch (Normal - Bình thường, Debug - Gỡ rối, Release - Dịch ra phiên bản cuối cùng cho người sử dụng)

C ompiler…: Đặt các thiết lập cho trình dịch

M emory sizes…: Đặt các ràng buộc về bộ nhớ

L inker…: Đặt các thiết lập cho trình liên kết

De b ugger…: Đặt các thiết lập cho trình gỡ rối

D irectories…: Đặt các đường dẫn và thư mục Bro w ser…: Đặt chế độ theo dõi phục vụ cho mục đích tìm kiếm

T ools…: Thêm/bớt công cụ vào menu Tools.

E nvironments: Các thiết lập chung cho IDE Open: Nạp các thiết lập đã đặt sẵn từ file INI Save/Save as: Ghi các thiết lập hiện thời vào file INI

Trang 35

Hệ thống Menu: Window

W indow: Các thao tác xử lý cửa sổ

Title: Hiện toàn bộ các cửa sổ đang mở lên màn hình làm việc, các cửa sổ

sẽ bị thu nhỏ lại sao cho không chồng lên nhau

Cascade: Hiện toàn bộ các cửa sổ xếp theo lớp, chồng lên nhau

Close all: Đóng toàn bộ cửa sổ đang mở:

Size/Move (Ctrl+F5): Thay đổi kích thước/di chuyển cửa sổ hiện hành Chọn chức năng này rồi bấm ←↑→↓ để di chuyển, giữ Shift và bấm

←↑→↓ để thay đổi kích thước Khi xong bấm ↵

Zoom (F5): Phóng to cửa sổ hiện hành lên cực đại

Next (F6): Chuyển sang cửa sổ kế tiếp

Previous (Shift+F6): Chuyển sang cửa sổ liền trước

Hide (Ctrl+F6): Ẩn cửa sổ hiện hành

Close (Alt + F3): Đóng cửa sổ hiện hành

List (Alt + 0): Hiện dang sách các cửa sổ đang mở

Refresh display: Vẽ lại màn hình IDE (trong trường hợp có lỗi hiển thị)

Trang 36

Hệ thống Menu: Help

H elp: Hệ thống trợ giúp

C ontents: Hiện các nội dung trợ giúp và tài liệu hướng dẫn sử dụng (dưới dạng sách)

I ndex ( Shift+F1 ): Hiện các đề mục trợ giúp

T opic search ( Ctrl+F1 ): Đánh dấu một từ hay một cụm từ rồi dùng chức năng này để tìm tài liệu liên quan tới từ đó

P revious topic ( Alt+F1 ): Nhảy tới mục trợ giúp mở ra trước đây.

U sing help: Hướng dẫn sử dụng hệ thống trợ giúp

F iles…: Quản lý các tệp trợ giúp

A bout: Hiện thông tin về FP, số hiệu phiên bản…

Trang 37

Lê Minh Hoàng

Trang 38

Nội dung bài học

Cấu trúc chung của chương trình Pascal Các khái niệm cơ bản

Chú thích Tên/định danh Khai báo hằng và khai báo biến Một số kiểu dữ liệu chuẩn

Phần thân chương trình Biểu thức

Lệnh gán Các lệnh nhập xuất chuẩn Một số thủ tục và hàm chuẩn

Trang 39

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

program Title; //program: Từ khoá; Title: Tên //Phần khai báo

//Khai báo thư viện, nhãn, hằng, kiểu, biến

//Khai báo chương trình con

begin //Thân chương trình

Trang 40

Ví dụ một chương trình Pascal

Soạn chương trình xong ghi vào đĩa với một file có phần mở rộng là PAS

Bấm CTRL+F9 để chạy chương trình

Ngày đăng: 06/07/2013, 01:27

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối - Lập trình Pascal - P1
Sơ đồ kh ối (Trang 81)

TỪ KHÓA LIÊN QUAN

w