1. Trang chủ
  2. » Công Nghệ Thông Tin

CƠ SỞ LẬP TRÌNH

243 579 1
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 đề Cơ Sở Lập Trình
Tác giả ThS. Dương Thị Thùy Vân
Trường học Đại học Tôn Đức Thắng
Chuyên ngành Khoa Công Nghệ Thông Tin
Thể loại Giáo trình
Định dạng
Số trang 243
Dung lượng 3,01 MB

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

Nội dung

Bộ xử lý số học ALU  Là bộ phận “sản xuất” của máy tính  Thực hiện các phép toán cộng, trừ, nhân, chia...  Chứa chương trình hoặc dữ liệu mà hiện thời không bị truy xuất bởi các bộ ph

Trang 1

CƠ SỞ LẬP TRÌNH

Đại học Tôn Đức Thắng

Khoa CNTT-TƯD ThS Dương Thị Thùy Vân

Trang 2

CHƯƠNG 0 GIỚI THIỆU MÔN HỌC

ThS Dương Thị Thùy Vân

Khoa CNTT-TƯD

Trang 3

Mục tiêu môn học

 Cung cấp những kiến thức nền tảng cho việc lập trình trên máy tính qua việc tìm hiểu ngôn ngữ C/C++ và viết chương trình với các giải thuật cơ bản.

Trang 4

Nội dung môn học

Trang 5

Tài liệu tham khảo

[1] Brian W.Kernigan & Dennis M.Ritchie (2000), The C

Programming Language, Prentice Hall, 1988

[2] Quách Tuấn Ngọc, Ngôn ngữ lập trình C, NXB Giáo Dục, 1998

[3] Phạm Văn Ất, Kỹ thuật lập trình C – Cơ sở và nâng

cao, NXB KHKT, 1995

[4] Bjarne Stroustrup, The C++ programming language,

3rd edition, AddisonWesley, 1997

[5] Teach Yourself C in 21 Days, Sams.Net

[6] Deitel, C – How to program, 4th edition, Deitel, 2004

Trang 6

Phương thức tiến hành

1 Lý thuyết: 45 tiết (15 tuần: 3tiết/tuần)

2 Thực hành: 30 tiết (10 tuần: 3 tiết/tuần)

3 Tự học: 120 tiết (15 tuần: 8 tiết/tuần)

Trang 8

CHƯƠNG 1 TỔNG QUAN VỀ LẬP TRÌNH

ThS Dương Thị Thùy Vân

Khoa CNTT-TƯD

Trang 11

1 Một số khái niệm (1)

Một máy tính được chia thành 6 bộ phận chính:

1. Bộ phận nhập (input)

 Nhận dữ liệu từ các thiết bị nhập (input devices)

 VD: keyboard, mouse, disk, hoặc scanner

 Để dữ liệu cho các bộ phận khác sử dụng

2. Bộ phận xuất (output)

 Xuất thông tin đã được xử lý ra các thiết bị xuất

(ouput devices)

 VD: màn hình, giấy in, loa

 Đặt thông tin bên ngoài máy tính

Trang 12

1 Một số khái niệm (2)

3. Bộ nhớ chính (memory)

 Truy cập nhanh, là “kho hàng” cỡ nhỏ

 Lưu trữ dữ liệu nhập thông qua bộ phận nhập

 Lưu trữ các thông tin đã được xử lý đang chờ gửi đến bộ

phận xuất

Thường được gọi là bộ nhớ, bộ nhớ chính, bộ nhớ truy

xuất ngẫu nhiên (Random Access Memory - RAM)

4. Bộ xử lý số học (ALU)

 Là bộ phận “sản xuất” của máy tính

 Thực hiện các phép toán (cộng, trừ, nhân, chia)

Trang 13

1 Một số khái niệm (3)

5. Bộ xử lý trung tâm (CPU)

 Là bộ phận “quản trị” của máy tính

 Phối hợp và quản lý các bộ phận khác

6. Bộ nhớ thứ cấp

 Là “kho hàng” cỡ lớn và dài hạn

 Chứa chương trình hoặc dữ liệu mà hiện thời

không bị truy xuất bởi các bộ phận khác

 Truy xuất chậm hơn bộ nhớ chính

Trang 14

có liên quan chặt chẽ với kiến trúc máy tính

mà nó chạy trên đó.

Trang 15

1 Một số khái niệm (5)

Các yêu cầu đối với một ngôn ngữ lập trình:

1. Tính dễ viết (writability)

 Ngôn ngữ phải có tính diễn đạt cao

 Ngôn ngữ phải đơn giản

 Ngôn ngữ phải linh hoạt

2. Tính dễ đọc (readability)

Người bình thường vẫn có thể đọc hiểu

3. Tính tin cậy (reliability)

Xác xuất chạy đúng ở mức cao

Trang 16

2 Sự tiến hóa của NNLT (1)

High Level Language

Trang 17

2 Sự tiến hóa của NNLT (2)

 Là ngôn ngữ “tự nhiên” của máy tính

 Là các chuỗi số biểu diễn các lệnh cụ thể của máy.

 Được định nghĩa dựa trên thiết kế phần cứng của máy

tính

 Phụ thuộc vào máy tính

 Buồn tẻ và không hấp dẫn đối với các lập trình viên

 VD: 1300042774

14005934191200274027

Trang 18

2 Sự tiến hóa của NNLT (3)

 Là các từ viết tắt tiếng Anh được tạo ra để thay thế cho

ngôn ngữ máy

 Thể hiện các thao tác cơ bản của máy tính

 Các chương trình dịch - gọi là các assembler - thực hiện

việc chuyển mã từ ngôn ngữ assembly sang mã máy

 VD: LOAD BASEPAY

ADD OVERPAYSTORE GROSSPAY

Trang 19

2 Sự tiến hóa của NNLT (4)

 Được sinh ra khi ngôn ngữ assembly trở nên quá tốn

thời gian và không tương xứng với nhu cầu tăng nhanh của việc sử dụng máy tính

 Các lệnh đơn có thể được cấu thành từ nhiều tác vụ

 Chương trình dịch được gọi là trình biên dịch – compiler: dịch mã lệnh sang mã máy

 Mã lệnh tương tự như các từ tiếng Anh thông dụng

 Có sử dụng các ký hiệu toán học

 VD: grossPay = basePay + overTimePay

 Trình thông dịch (interpreter): thực thi trực tiếp các

chương trình của ngôn ngữ cấp cao

Trang 21

 Được phát triển bởi Sun Microsystem từ 1991

 Được dùng để phát triển ứng dụng Web và các ứng dụng

Trang 22

5 Một số NNLT cấp cao (2)

cho các ứng dụng về khoa học kỹ thuật

 COmmon Business Oriented Language

 (1959) dùng cho xử lý các lượng dữ liệu lớn

chủ yếu dùng trong học thuật

6. Ada:

 do Bộ Quốc Phòng Mỹ phát triển (1970s-đầu 1980s)

 Hỗ trợ lập trình đa nhiệm (multitasking)

Trang 23

6 Quá trình phát triển 1 chương

trình

Các pha của một chương trình C, C++

Trang 24

7 Chương trình C đầu tiên

Trang 26

CHƯƠNG 2 CÁC THÀNH PHẦN CỦA MỘT

CHƯƠNG TRÌNH C/C++

ThS Dương Thị Thùy Vân

Khoa CNTT-TƯD

Trang 28

1 Giới thiệu BorlandC 3.1

1. Cài đặt BorlandC 3.1

2. Chạy BorlandC

3. Giới thiệu thanh menu

4. Tạo mới file

5. Lưu file

6. Mở file

7. Các thao tác trên cửa sổ soạn thảo

8. Tùy chọn option

Trang 29

2 Ví dụ minh họa

Trang 31

4.Lệnh printf và cout

1. printf

 Thư viện: stdio.h

 Ý nghĩa: đưa chuỗi có định dạng ra stdin

Trang 34

6.Hàm main

1. Hàm main

 Mỗi chương trình chỉ có duy nhất một hàm main

 Hàm main có thể gọi tất cả các hàm khác, nhưng ngược lại thì không

Trang 35

7 Giới thiệu Visual C++ 6.0

1. Chạy chương trình Visual C++ 6.0

2. Tạo mới dự án (project)

Trang 36

7.1 Chạy Visual C++ 6.0

Trang 37

7.2 Tạo mới dự án

1 Dạng project

2 Nơi lưu trữ

3 Tên project

Trang 38

7.2 Tạo mới dự án (tt)

1 2

Trang 39

7.2 Tạo mới dự án (tt)

Tạo file mới cho dự án:

1 Menu File\ New

2 Chọn tab Files

Chọn C++

Trang 40

7.3 Viết chương trình

Trang 41

7.4 Biên dịch và thi hành

Menu Build:

1 Build vidu01.exe (F7)

2 Kết quả Build ứng dụng

3 Exexcute vidu01.exe (Ctrl-F5)

1

Trang 42

7.5 Mở một dự án có sẵn

Cách 1: mở file dsw từ Windows Explorer

Trang 43

7.5 Mở một dự án có sẵn

Cách 2: mở dự án từ chương trình Visual C++

1 Menu File\ Open

2 Chọn dạng file là Workspaces

3 Chọn file dsw của dự án

4 Nhấn nút Open

Trang 44

7.6 Đƣa một file vào dự án

Cách đưa file có sẵn vào dự án đang mở:

- Tại tab FileView, click phải vào folder Source Files\ Add Files to Folder…

- Chọn file để đưa vào dự án

Trang 45

Tóm tắt

1. Cấu trúc cơ bản của một chương trình C?

2. #include dùng để làm gì?

3. Cách viết chú thích như thế nào?

4. Hàm main là gì? Trong một chương trình có

thể có bao nhiêu hàm main?

Trang 46

CHƯƠNG 3 CÁC KIỂU DỮ LIỆU CƠ BẢN

ThS Dương Thị Thùy Vân

Khoa CNTT-TƯD

Trang 47

Nội dung

1. Các định danh(indentifers) & từ khóa

(keywords)

2. Khái niệm về kiểu dữ liệu

3. Phân loại kiểu dữ liệu

4. Giới thiệu các kiểu dữ liệu cơ bản

5. Hằng & biến

Trang 48

1.Các định danh & từ khóa

Định danh:

1 Các tên biến, tên hàm và tên kiểu dữ liệu do người

dùng định nghĩa đều được gọi chung là các định

danh Trong ngôn ngữ C/C++, các định danh gồm

chuỗi các chữ cái, chữ số và dấu gạch dưới; tuy

nhiên định danh không được bắt đầu bằng chữ số.

2 Các định danh có thể có chiều dài bất kỳ Tuy nhiên

Trang 49

1.Các định danh & từ khóa

Trang 50

2.Khái niệm về kiểu dữ liệu

 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: số, chữ, 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

Trang 51

3.Phân loại kiểu dữ liệu

 Kiểu nguyên

 Kiểu thực

 Kiểu lôgic

 Kiểu ký tự

 Kiểu liệt kê

􀁺 Kiểu dữ liệu có cấu

Trang 52

4.Các kiểu dữ liệu cơ bản

Trang 54

Kiểu thực dấu chấm động

số có nghĩa

Số byte

long double 3.4E-4932 → 1.1E+4932 17-18 10

Trang 55

Kiểu thực dấu chấm động

Một số cách biểu diễn số thực:

Trang 56

Kiểu luận lý

 Đối tượng dữ liệu chỉ nhận 1 trong 2 giá trị True

hoặc False

Trong ngôn ngữ C không có kiểu boolean

 Có thể sử dụng kiểu số nguyên để biểu diễn

 0 đại diện cho False

 1 đại diện cho True

 Trong ngôn ngữ C, giá trị của biểu thức luận lý:

 Bằng 0 ⇔ False

 Khác 0 ⇔ True

Trang 57

Kiểu ký tự

Trang 59

Tóm tắt các kiểu dữ liệu cơ bản

Trang 60

5. Khởi tạo giá trị cho các biến

6. Truy xuất đến địa chỉ của biến

7. Nhập xuất giá trị cho biến

Trang 61

Khái niệm hằng & biến

 Quá trình xử lý trong máy tính đòi hỏi mỗi giá trị phải được lưu trữ ở một ô nhớ của máy,

và ô nhớ này được đặt một cái tên để gọi

Khi đó mọi việc tính toán hay xử lý liên quan đến mỗi giá trị được thực hiện gián tiếp thông qua tên của ô nhớ chứa giá trị đó.

Trang 62

Khái niệm hằng & biến

1. Biến (variable): là đối tượng dữ liệu được đặt tên

và giá trị dữ liệu của nó có thể thay đổi trong thời

gian sống

2. Hằng (constant): là đối tượng dữ liệu có tên nhưng

giá trị dữ liệu của nó không thay đổi trong suốt

thời gian sống

Hằng theo ký tự (literal): tên của nó cũng chính là dạng

biểu diễn giá trị dữ liệu của chính nó

Hằng được định nghĩa bởi người lập trình

(programmer-defined constant): hằng có tên do người lập trình đặt

Trang 63

 “Lap trinh C” là hằng chuỗi ký tự

 Hằng ký hiệu (do người dùng định nghĩa):

 #define PI 3.1416

 #define MAX 100

 Hằng liệt kê:

 enum months { JAN = 1, FEB, MAR, APR, MAY, JUN,

JUL, AUG, SEP, OCT, NOV, DEC };

/* FEB = 2, MAR = 3, …*/

Trang 64

Một số hằng theo từng kiểu dữ liệu

1. Kiểu ký tự:

Trang 65

Một số hằng theo từng kiểu dữ liệu

2. Kiểu nguyên:

Trang 66

Một số hằng theo từng kiểu dữ liệu

Trang 67

Cách khai báo biến

 Mỗi biến trong chương trình đều phải được khai báo trước khi sử dụng Cú pháp khai báo biến như sau:

<Kiểu dữ liệu> <danh_sách_tên_biến>;

Lưu ý: nếu có nhiều tên biến thì giữa các tên biến

phải có dấu phẩy: “,”

Ví dụ:

 int a, b; //a và b là 2 số nguyên

 float x, y;

 double diem, dtb

Trang 68

Khởi tạo giá trị cho các biến

1. Ngay trên dòng khai báo ta có thể gán cho

biến một giá trị Việc làm này gọi là khởi tạo

giá trị cho biến.

2. Ví dụ: int a, b=6, d=1;

3. Hằng biến:

 Cú pháp: const <kiểu DL> <tên hằng> = <giá trị>;

const float PI = 3.1416;

const float EPSILON = 0.0001;

Trang 69

Truy xuất đến địa chỉ của biến

Khái niệm bộ nhớ:

 Mọi biến đều tương ứng với một địa chỉ trong bộ nhớ Tất cả các biến đều có một tên, một kiểu dữ liệu, kích thước lưu trữ và một giá trị.

Trang 70

Truy xuất đến địa chỉ của biến(tt)

1. Một số hàm của C dùng đến địa chỉ của biến ví

dụ như hàm scanf Để nhận địa chỉ của biến,

Trang 71

Gán giá trị cho biến

 Giá trị được gán cho biến phải thuộc cùng

kiểu dữ liệu với biến đó

Trang 72

Nhập xuất giá trị cho biến

1. Nhập: nhập từ bàn phím

2. Xuất: xuất ra màn hình (console)

3. Hai nhóm hàm nhập xuất chuẩn:

 ANSI C: printf và scanf

 C++: cout và cin

Trang 73

Nhập xuất giá trị cho biến

d i int Xem như một số nguyên hệ 10 có dấu

ld li long Xem như một số nguyên hệ 10 có dấu

u lu int, long Xem như một số nguyên hệ 10 không dấu

Chuyển sang dạng thập phân.

Trang 74

Nhập xuất giá trị cho biến

Trang 75

Nhập xuất giá trị cho biến

Trang 76

Tóm tắt

1 Thế nào là định danh và từ khóa?

2 Dữ liệu là gì? Kiểu dữ liệu là gì?

3 Có mấy loại kiểu dữ liệu?

4 Kiểu số nguyên trong ngôn ngữ C có những kiểu nào?

5 Thế nào là hằng và biến?

6 Có mấy loại hằng? Hằng ký hiệu và hằng biến khác nhau như thế nào?

7 Cách khai báo biến? Biến được lưu trữ như thế nào?

8 Lấy địa chỉ của biến như thế nào?

9 Khởi tạo và gán giá trị cho biến như thế nào?

10 Cách nhập xuất giá trị cho biến?

Trang 78

CHƯƠNG 4 PHÉP TOÁN VÀ BIỂU THỨC

ThS Dương Thị Thùy Vân

Khoa CNTT-TƯD

Trang 79

Nội dung

1. Biểu thức

2. Các phép toán – Toán tử

Trang 80

Biểu thức

1. Biểu thức là sự kết hợp hợp lệ của những toán tử

thực hiện trên các biến, hằng hoặc các giá trị của hàm

2. Một biểu thức bao gồm các toán tử (toán tử) và

các toán hạng (biến, hằng ) và các dấu ngoặc.

3. Kiểu của biểu thức là kiểu của kết quả sau khi tính

biểu thức

4. Ví dụ :

int result, x = 2, y = 7;

result = (x+2*y);

Trang 81

Các phép toán - toán tử

1. Các toán tử số học

2. Các phép thao tác bit

3. Các toán tử quan hệ và logic

4. Chuyển đổi kiểu dữ liệu

5. Các toán tử tăng, giảm

6. Câu lệnh gán

7. Toán tử phẩy

8. Toán tử điều kiện – Biểu thức điều kiện

9. Thứ tự ưu tiên giữa các toán tử

10. Quy tắc tính thứ tự ưu tiên

Trang 82

1.Các toán tử số học

1. Phép Cộng (+), trừ (-), nhân (*), chia (/)

thực hiện trên các kiểu dữ liệu int, char,

float, double…

2. Phép modulo(%) để lấy phần dư của phép

chia hai số nguyên

float x = 5,y = 2, z;

z = x/y; //􀃆 2.5

z = x%y; //error: illegal use of floating

point

Trang 83

2.Các toán tử trên bit

 Các toán tử AND(&), OR(|), XOR(^):

Toán hạng 1 Toán hạng 2 Kết quả

• Các toán tử dịch trái(<<), dịch phải (>>):

- Biểu thức a<<n sẽ dịch chuyển các bit trong a sang trái n vị trí.

Trang 84

Ví dụ

Trang 85

3.Các toán tử quan hệ & logic

Trang 86

4.Chuyển đổi kiểu dữ liệu

1 Khi hai toán hạng trong một toán tử khác kiểu dữ liệu thì

kiểu dữ liệu thấp được nâng thành kiểu dữ liệu cao trước khi tính toán.

Ví dụ: float f; int i; f +i ,

Biến i sẽ tạm thời chuyển sang kiểu float để thực hiện phép cộng.

2. Trong trường hợp f có kiểu float, i1 và i2 có kiểu int Trong

biểu thức f=i1/i2, để thu được kết quả chính xác, cần sử

dụng phép ép kiểu: f=(float) i1/i2

Trang 87

5 Toán tử tăng, giảm

 Các toán tử ++ và dùng để tăng hoặc giảm 1

đơn vị đối với các biến nguyên hoặc thực

thức mẫu

Diễn giải

++ Tăng trước ++a Tăng a 1 đơn vị Sau đó sử dụng

giá trị mới của a vào biểu thức

++ Tăng sau a++ Sử dụng giá trị hiện tại của a vào

biểu thức Sau đó tăng a 1 đơn vị

Giảm trước a Giảm b 1 đơn vị Sau đó sử dụng

giá trị mới của b vào biểu thức.

Giảm sau a Sử dụng giá trị hiện tại của b vào

Trang 89

int so = 10; /* Gia tri ban dau */

so += 5; /* tương đương so=so+5 cho kết quả so=15 */

so -= 3; /* tương đương so=so-3 cho kết quả so=12 */

so *= 3; /* tương đương so=so*3 cho kết quả so=36 */

x+=(y=5); /* nghĩa là gán giá trị 5 vào biến y rồi cộng 5 vào x*/

Trang 90

7.Toán tử phẩy

1. Đây là một toán tử đặc biệt có ký hiệu là “,”

2. Một biểu thức phẩy bao gồm một cặp biểu thức

cách nhau bằng dấu phẩy và được tính toán từ

biểu thức bên trái rồi sau đó đến biểu thức bên

phải

3. Kết quả của toàn bộ biểu thức phẩy là kết quả của

biểu thức bên phải

4. Ví dụ:

int m,t,h;

Trang 91

8.Toán tử & biểu thức điều kiện

 Có ký hiệu là ?

<điều kiện> ? <biểu thức 1>:<biểu thức 2>

 Kết quả của biểu thức này bằng biểu thức 1 nếu

điều kiện có kết quả khác 0, ngược lại kết quả của biểu thức này bằng biểu thức 2

Trang 92

9.Thứ tự ƣu tiên của các toán tử

Trang 93

10.Quy tắc tính thứ tự ƣu tiên

 Có 3 nguyên tắc tính thứ tự ưu tiên trong

 Qui tắc 3: Phần trong ngoặc đơn từ trong ra ngoài

sẽ được tính toán để trở thành một giá trị đơn

Trang 94

4. Phép toán tăng giảm thực hiện ra sao?

5. Cách tính thứ tự ưu tiên của các phép toán

trong một biểu thức như thế nào?

Trang 95

Bài tập

1. Để in ra màn hình từng chữ số của một số

có 5 chữ số, các bước thực hiện ra sao?

 VD: 42399 -> 4 2 3 9 9

2. Hãy cho biết kết quả phép chia 7/2

3. Để có được kết quả phép chia ở trên là số

thực thì làm cách nào?

Trang 96

CHƯƠNG 5 CẤU TRÚC ĐIỀU KHIỂN

ThS Dương Thị Thùy Vân

Khoa CNTT-TƯD

Trang 98

1.Giới thiệu câu lệnh và khối lệnh

1 Câu lệnh - statement:

 Mỗi câu lệnh thực hiện một chức năng nào đó.

 Câu lệnh có thể được viết trên một hoặc nhiều dòng và được kết thúc bằng dấu chấm phẩy (;)

2 Khối lệnh – block of statements:

 Một dãy các câu lệnh được đặt trong cặp dấu { và } được gọi

một là một khối lệnh.

 Những câu lệnh của một hàm, những câu lệnh của một cấu trúc phải được đặt vào dấu {}

3 Các toán tử điều khiển trình tự:

 Cho phép thay đổi trật tự thực hiện các câu lệnh (khối lệnh)

 Do đó máy có thể đang từ một câu lệnh này nhảy tới thực hiện một câu lệnh ở trước, hoặc sau nó.

Trang 99

… Lệnh n

Trang 100

Câu lệnh goto và nhãn cần nằm trong một hàm.

Không cho phép dùng toán tử goto nhảy từ

ngoài vào trong một khối lệnh, tuy nhiên nhảy từ

Trang 101

int soHS, soHSDau, kqHS;

soHS++;

if(soHS<10) goto lap;

if(soHSDau >= 8) printf(“Day tot – Hoc tot”);

Trang 102

3 Các cấu trúc chọn

2. Phát biểu if…else : chọn đầy đủ

3. Phát biểu switch : chọn 1 trong nhiều

4. Biểu thức điều kiện

5. Ví dụ

Trang 103

3.1 Phát biểu if

Trang 104

3.2 Phát biểu if…else

Trang 105

Phát biểu if…else dạng phức

Ngày đăng: 10/12/2013, 16:51

HÌNH ẢNH LIÊN QUAN

Ví dụ 1- hình thức truyền bằng trị - CƠ SỞ LẬP TRÌNH
d ụ 1- hình thức truyền bằng trị (Trang 150)

TỪ KHÓA LIÊN QUAN

w