Tải bản đầy đủ (.pdf) (148 trang)

Hướng dẫn tự học môn cơ sở lập trình đại học kinh tế quốc dân

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.28 MB, 148 trang )

30.11.2016

TRƢỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN
VIỆN CÔNG NGHỆ THÔNG TIN KINH TẾ

BÀI GIẢNG

CƠ SỞ LẬP TRÌNH

THÔNG TIN GIẢNG VIÊN
2

 Nhóm GV: ThS. Nguyễn Quỳnh Mai

ThS. Cao Thị Thu Hương
ThS. Trần Thị Mỹ Diệp

TS. Phạm Minh Hoàn
 Địa chỉ:

BM Công nghệ thông tin - C100, ĐH Kinh tế Quốc dân,
207 Đường Giải Phóng, Hai Bà Trưng, Hà Nội.

 Website:



 Số điện thoại: (84-4) 36 280280 / 6689
 Email:

;



1


30.11.2016

KẾ HOẠCH GIẢNG DẠY
3

Phân bố thời gian giảng dạy
STT

Nội dung

Trong đó

Tổng số
tiết

Lý thuyết

Bài tập, thực
hành, kiểm tra

1
2
3
4
5
6


Chƣơng 1
Chƣơng 2
Chƣơng 3
Chƣơng 4
Chƣơng 5
Chƣơng 6

3
3
4
3
8
8

3
2
3
2
5
4

0
1
1
1
3
4

7


Chƣơng 7

6

4

2

8
9

Chƣơng 8
Chƣơng 9

6
4

4
3

2
1

45

30

15


Cộng

Ghi chú

Học trên
phòng
máy tính

KẾ HOẠCH GIẢNG DẠY
4

 Thời điểm kiểm tra giữa kỳ:

Sau tuần học thứ 10
 Thời gian làm bài kiểm tra:

60 phút, lập trình trên máy tính
 Phạm vi, nội dung kiểm tra:

Các kiến thức đã học

2


30.11.2016

PHƢƠNG PHÁP ĐÁNH GIÁ HỌC PHẦN
5

 Đánh giá của giảng viên: 10% số điểm


Hình thức: tham dự học, làm bài tập về nhà hàng tuần và
tham gia thảo luận trên lớp
 Kiểm tra giữa kỳ: 20% số điểm

Hình thức: kiểm tra, lập trình trên máy tính
 Thi kết thúc học phần: 70% số điểm

Hình thức: lập trình trên máy tính
 Điều kiện dự thi:

Sinh viên phải có mặt trên lớp tối thiểu 80% số tiết học

CHƢƠNG 1
6

NHỮNG KHÁI NIỆM CƠ BẢN CỦA LẬP TRÌNH

3


30.11.2016

MỤC TIÊU
7

 Mô tả đƣợc quy trình xây dựng bài toán trên MTĐT;
 So sánh đƣợc sự khác nhau giữa câu lệnh, chƣơng trình và

phần mềm;

 Biết đƣợc lịch sử ra đời, quá trình hình thành và phát triển

của ngôn ngữ C, C++;
 Liệt kê đƣợc các kỹ thuật lập trình cơ bản;
 Giải thích đƣợc khái niệm, tính chất và các cách biểu diễn

thuật toán;
 Phân biệt đƣợc các khái niệm: dữ liệu, cấu trúc dữ liệu,

chƣơng trình;

NỘI DUNG
8

1.1. Quy trình giải bài toán trên MTĐT
1.2. Chƣơng trình và lập chƣơng trình

1.3. Lịch sử ra đời và phát triển của C và C++
1.4. Các kỹ thuật lập trình
1.5. Thuật toán
1.6. Cấu trúc dữ liệu

4


30.11.2016

1.1. Quy trình giải bài toán trên MTĐT
9


1.

Xác định bài toán

2.

Mô hình hoá bài toán

3.

Tìm phƣơng pháp giải

4.

Chuẩn hoá dữ liệu

5.

Viết thuật giải cho bài toán

6.

Viết chƣơng trình cho bài toán

7.

Thử nghiệm chƣơng trình

8.


Chạy với dữ liệu thật

9.

Phân tích, đánh giá, sử dụng kết quả và viết hƣớng dẫn sử dụng

1.2. Chƣơng trình và lập chƣơng trình
10

Chương trình: là một dãy các lệnh mà MTĐT hiểu đƣợc và cần
thực hiện theo một thứ tự xác định để giải một bài toán nào đó.
Lập chương trình: (gọi tắt là lập trình) là quá trình viết chƣơng
trình bằng một công cụ lập trình (ngôn ngữ lập trình) nào đó. Ngƣời
viết chƣơng trình đƣợc gọi là lập trình viên (programmer).

5


30.11.2016

1.2. Chƣơng trình và lập chƣơng trình
11

Phần mềm

Chƣơng
trình 1

Câu lệnh


Chƣơng
trình 2

Câu lệnh

Câu lệnh

1.2. Chƣơng trình và lập chƣơng trình
12

Sự phát triển của các công cụ lập trình
 Lập trình bằng ngôn ngữ máy


Lập trình bằng hợp ngữ (Assembler)



Lập trình bằng ngôn ngữ lập trình

6


30.11.2016

1.3. Lịch sử ra đời và phát triển của C và C++
13

 Ngôn ngữ C đƣợc thiết kế bởi Dennis Ritchie tại phòng thí nghiệm


Bell vào đầu những năm 1970.
 Sự phát triển của C dựa trên các ngôn ngữ đã có: ALGOL; CPL;

BCPL, B (Ken Thompson, 1970)
 C là ngôn ngữ lập trình đƣợc sử dụng rất phổ biến để lập trình hệ

thống cùng với Assembler và phát triển các ứng dụng
 Những năm 1980, ngôn ngữ C có một phiên bản mới là C++. Nó

thực hiện tất cả các chức năng của C, và đƣợc bổ sung nhiều khái
niệm và khả năng mới.

1.3. Lịch sử ra đời và phát triển của C và C++
14

Lý do sử dụng ngôn ngữ C:


C là một ngôn ngữ mạnh và mềm dẻo



C là một ngôn ngữ có ít từ khóa.



C là một ngôn ngữ có cấu trúc Module.




C là ngôn ngữ đƣợc các nhà tin học chuyên nghiệp dùng phổ
biến, nhất là trong việc viết các phần mềm hệ thống (hệ điều
hành, chƣơng trình dịch, cơ sở dữ liệu, bảng tính,…).

7


30.11.2016

1.4. Các kỹ thuật lập trình
15

Lập trình có cấu trúc
 Chƣơng trình giải bài toán đƣợc chia thành các phần nhỏ hơn, độc

lập với nhau, gọi là các khối chƣơng trình. Mỗi khối chƣơng trình
có chức năng riêng.
 Mỗi khối có một lối vào duy nhất ở đầu khối và một lối ra duy

nhất ở cuối khối.
 Khi máy tính thực hiện xong một khối nó sẽ chuyển đến một khối

khác hoặc kết thúc chƣơng trình.
 Lập trình cấu trúc còn đƣợc gọi là lập trình thủ tục, lập trình

truyền thống.

1.4. Các kỹ thuật lập trình
16


Lập trình hướng đối tượng
 Lập trình hƣớng đối tƣợng (Object Oriented Programming): là phƣơng
pháp lập trình cho phép xây dựng các chƣơng trình từ các đối tƣợng.




Ƣu thế của lập trình hƣớng đối tƣợng là:
 Tính

đóng gói (Encapsulation)

 Tính

kế thừa (Inheritance)

 Tính

đa hình (Polymorphism)

 Tính

trừu tƣợng (Abstraction)

Khái niệm trọng tâm của lập trình hƣớng đối tƣợng là lớp (Class) và đối
tượng (Object).

8



30.11.2016

1.5. Thuật toán
17

1.5.1. Khái niệm thuật toán
1.5.2. Các tính chất của thuật toán
1.5.3. Các cách biểu diễn thuật toán

1.5.1. Khái niệm thuật toán
18

Thuật toán (giải thuật): là một quá trình gồm một dãy hữu hạn
các thao tác có thể thực hiện đƣợc sắp xếp theo một trình tự nhất
định dùng để giải một bài toán.

9


30.11.2016

1.5.2. Các tính chất của thuật toán
19

 Tính kết thúc (tính dừng)
 Tính đúng đắn
 Tính phổ dụng
 Tính xác định đầu vào – đầu ra.
 Tính hiệu quả


1.5.3. Các cách biểu diễn thuật toán
20

 Sử dụng ngôn ngữ tự nhiên
 Mã giả
 Lƣu đồ

10


30.11.2016

1.5.3. Các cách biểu diễn thuật toán – Mã giả
21

 Không là mã thật. Một phƣơng pháp viết giải thuật sử dụng

một tập hợp các từ tƣơng tự mã thật
 Ví dụ:

BEGIN

DISPLAY ‘Hello World !’
END
 Mỗi đoạn mã giả phải bắt đầu với một từ BEGIN. Ðể hiển

thị giá trị nào đó, từ DISPLAY đƣợc dùng. Mã giả kết thúc
với từ END

1.5.3. Các cách biểu diễn thuật toán – Lƣu đồ

22

Lƣu đồ: là một hình ảnh minh hoạ cho giải thuật
BEGIN/START

DISPLAY ‘Hello World !’

END/STOP

11


30.11.2016

1.5.3. Các cách biểu diễn thuật toán – Lƣu đồ
Các biểu tƣợng trong lƣu đồ

1.5.2. Các cách biểu diễn thuật toán - Lƣu đồ

12


30.11.2016

1.6. Cấu trúc dữ liệu
25

Dữ liệu (Data):
 Là những mẩu tin đƣợc máy tính lƣu trữ và xử lý hoặc truy suất theo


yêu cầu của ngƣời dùng hoặc theo tiến trình hoạt động của máy.
 Dữ liệu đƣợc chứa trong bộ nhớ của máy tính với một số lƣợng ô

nhớ nhất định, tính theo đơn vị Byte.
Kiểu dữ liệu (Data type): đƣợc định nghĩa với hai điểm chính:
 Một tập hợp các giá trị (miền giá trị) mà một biểu thức thuộc kiểu

đó có thể nhận đƣợc
 Trên đó xác định một số phép toán

1.6. Cấu trúc dữ liệu
26

Cấu trúc dữ liệu: là một cách tổ chức các dữ liệu thành một đơn
vị hoàn chỉnh bao gồm các thành phần (phần tử) là các dữ liệu cơ
bản, các mối liên kết giữa các phần tử ấy và các thao tác cơ bản trên
chúng. Các thao tác này thƣờng đƣợc gọi là các phép toán trên cấu
trúc dữ liệu xác định.
Mối quan hệ giữa cấu trúc dữ liệu và giải thuật

Chƣơng trình = Cấu trúc dữ liệu + Giải thuật

13


30.11.2016

TÓM TẮT CHƢƠNG 1
27


 Một số thuật ngữ cơ bản: câu lệnh, chƣơng trình, lập trình,

lập trình cấu trúc, lập trình hƣớng đối tƣợng, dữ liệu, cấu
trúc dữ liệu
 Các bƣớc trong quy trình giải toán trên máy tính
 Lịch sử hình thành và phát triển của ngôn ngữ C, C++. Ƣu

điểm của ngôn ngữ lập trình C.
 Khái niệm thuật toán và các cách biểu diễn thuật toán

CHƢƠNG 2
28

CÁC KHÁI NIỆM CƠ BẢN CỦA
NGÔN NGỮ LẬP TRÌNH C

14


30.11.2016

MỤC TIÊU
29

 Giải thích đƣợc khái niệm cơ bản về ngôn ngữ lập trình C
 Mô tả một số quy tắc khi viết chƣơng trình
 Trình bày cấu trúc một chƣơng trình C
 Làm quen với môi trƣờng lập trình C

NỘI DUNG

30

2.1. Các khái niệm cơ bản
2.2. Một số quy tắc khi viết chƣơng trình
2.3. Cấu trúc một chƣơng trình
2.4. Giới thiệu môi trƣờng lập trình C

15


30.11.2016

2.1. Các khái niệm cơ bản
31

2.1.1. Tập ký tự dùng trong ngôn ngữ C
2.1.2. Từ khoá
2.1.3. Cách đặt tên trong C

2.1.1. Tập ký tự dùng trong ngôn ngữ C
32

 Tập ký tự là tập các phần tử cơ bản tạo nên chƣơng trình
 Tổ

hợp các ký tự → từ

 Liên
 Tổ


kết các từ theo cú pháp → câu lệnh

chức các câu lệnh → chƣơng trình

 Ví dụ:


include, void, main…



printf(“…”), getch();

16


30.11.2016

2.1.1. Tập ký tự dùng trong ngôn ngữ C
33

Tập ký tự trong C


26 chữ cái hoa: A B C ... X Y Z



26 chữ cái thƣờng: a b c … x y z.




10 chữ số: 0 1 2 3 4 5 6 7 8 9.



Các kí hiệu toán học:+ - * / = < >



Các dấu ngăn cách: . ; , : space tab



Các dấu ngoặc:( ) [ ] { }



Các kí hiệu đặc biệt:_ ? $ & # ^ \ ! „ “ ~

2.1.2. Từ khoá
34

 Từ khóa (keyword)


Có sẵn trong mỗi ngôn ngữ lập trình




Dành riêng cho các mục đích xác định
 Đặt

tên cho kiểu dữ liệu: int, float, double…

 Mô

tả các lệnh, các cấu trúc lập trình: if, while, case…

 Chú ý:


Tất cả từ khóa trong C đều viết bằng chữ cái thƣờng

17


30.11.2016

2.1.2. Từ khoá
35

Từ khóa hay dùng trong C
break

case

char

const


continue

default
do

goto

double

if

else

enum

int

float

interrupt

for

long

return
short

signed


sizeof

static

struct

switch
typedef union

unsigned void

while

2.1.3. Cách đặt tên trong C
36

 Định danh (Identifier – hoặc còn gọi là Tên) là một dãy các

kí tự dùng để gọi tên các đối tƣợng trong chƣơng trình.
 Các đối tƣợng trong chƣơng trình:
• Biến
• Hằng số
• Hàm
• Kiểu dữ liệu
 Định danh có thể đƣợc đặt bởi
• Ngôn ngữ lập trình → các từ khóa
• Ngƣời lập trình

18



30.11.2016

2.1.3. Cách đặt tên trong C
37

 Quy tắc đặt tên (định danh) trong C


Các kí tự đƣợc sử dụng: chữ cái, chữ số và dấu gạch dƣới “_”



Bắt đầu của định danh phải là chữ cái hoặc dấu gạch dƣới

“_”, không đƣợc bắt đầu định danh bằng chữ số.


Định danh do ngƣời lập trình đặt không đƣợc trùng với các
từ khóa của C

 Chú ý: C là ngôn ngữ có phân biệt chữ hoa và chữ thường

2.1.3. Cách đặt tên trong C
38

 Ví dụ



Định danh hợp lệ:
x, y, a, b,

_function, PI, gia_tri_1



Định danh không hợp lệ:



1_a, 3d, 55x (bắt đầu bằng chữ số)



so luong, ti le (có dấu cách - kí tự không hợp lệ)



int, char (trùng với từ khóa của ngôn ngữ C)

19


30.11.2016

2.1.3. Cách đặt tên trong C
39

 Một số quy ƣớc





Nên sử dụng dấu gạch dƣới để phân tách các định danh gồm
nhiều từ
Định danh nên có tính gợi nhớ
Quy ƣớc thƣờng đƣợc sử dụng
 Hằng
 Các

số dùng chữ cái hoa
biến, hàm, cấu trúc dùng chữ cái thƣờng

 Ví dụ

Định danh

Loại đối tƣợng

HANG_SO_1, _CONSTANT_2

Hằng số

a, b, i, j, count

Biến

nhap_du_lieu, tim_kiem, xu_li


Hàm

sinh_vien, mat_hang

Cấu trúc

2.2. Một số quy tắc khi viết chƣơng trình
40

Quy tắc 1
 Mỗi câu lệnh có thể viết trên một hoặc nhiều dòng, nhƣng phải

đƣợc kết thúc bởi dấu chấm phảy (;).
 Xâu ký tự phải đƣợc viết trong một cặp dấu nháy kép. Mỗi xâu

ký tự chỉ đƣợc viết trên một dòng.
 Dấu ; đƣợc dùng để ngăn cách các câu lệnh và bắt buộc phải viết

vào. Tuy nhiên trong chƣơng trình C có một số chỗ không dùng
đến dấu ;. Đó là vì câu văn này không phải là lệnh của C.

20


30.11.2016

2.2. Một số quy tắc khi viết chƣơng trình
41

Quy tắc 2

 Khi viết chƣơng trình, nên viết thêm lời giải thích để cho dễ hiểu

và làm sáng sủa.
 Lời giải thích đƣợc đặt giữa cặp dấu /*….*/ và có thể đƣợc viết :

- Trên một dòng
- Trên nhiều dòng
- Trên phần còn lại của dòng

2.2. Một số quy tắc khi viết chƣơng trình
42

Quy tắc 3
 Trong chƣơng trình có sử dụng hàm chuẩn thì đầu chƣơng trình

cần khai báo thƣ viện chứa hàm đó nhƣ sau:
#include <ten_ham.h>;
Ví dụ:
#include <stdio.h>;
#include <conio.h>;
#include <string.h>;
#include <math.h>;

21


30.11.2016

2.2. Một số quy tắc khi viết chƣơng trình
43


Quy tắc 4: Cấu trúc chương trình C
 Một chƣơng trình C có một hàm main() bắt buộc và có thể

có thêm nhiều hàm khác.
 Hàm của C là đoạn chƣơng trình đƣợc viết ra một lần song

có thể sử dụng nhiều lần.
 Về nguyên tắc hàm phải trả lại một giá trị nào đó cho tên

hàm. Riêng đối với hàm main( ), chúng ta không trả lại kết
quả cho main nên ngƣời ta cũng thƣờng viết void main( )

2.3. Cấu trúc một chương trình
44

2.3.1. Cấu trúc tổng quát
2.3.2. Câu lệnh
2.3.2. Khối lệnh
2.3.3. Hàm
2.3.4. Ví dụ

22


30.11.2016

2.3.1. Cấu trúc tổng quát
45


1.

#include <…>

2.

main( )

3.

{
Các câu lệnh

4.

}

5.
6.

/* Khai báo các hàm */

7.

Kiểu dữ liệu

8.

{


tên hàm (các tham số)

/* Các lệnh của hàm */

9.
10.

……

11.

return( );

12.

}

2.3.1. Cấu trúc tổng quát
46

Gồm 6 phần có thứ tự nhƣ sau:
Phần 1: Khai báo tệp tiêu đề: #include < >
Phần 2: Định nghĩa kiểu dữ liệu mới: typedef ...
Phần 3: Khai báo các nguyên mẫu hàm
Phần 4: Khai báo các biến toàn cục
Phần 5: Hàm main()
Phần 6: Nội dung các hàm đã khai báo

23



30.11.2016

2.3.1. Cấu trúc tổng quát
47

 Phần 1: Khai báo tệp tiêu đề:


Thông báo cho chƣơng trình dịch biết là chƣơng trình có sử
dụng những thƣ viện nào.



VD: #include <stdio.h> // chứa các hàm vào ra dữ liệu
#include <math.h> // chứa các hàm toán học

 Phần 2: Định nghĩa các kiểu dữ liệu mới


Định nghĩa các kiểu dữ liệu mới (nếu cần) dùng cho cả chƣơng
trình.

2.3.1. Cấu trúc tổng quát
48

 Phần 3: Khai báo các nguyên mẫu hàm:

Giúp cho chƣơng trình dịch biết đƣợc những thông tin cơ bản của
các hàm sử dụng trong chƣơng trình.

 Phần 4: Khai báo các biến toàn cục

Ví dụ:


int a, b;



int tong, hieu, tich;

24


30.11.2016

2.3.1. Cấu trúc tổng quát
49

 Phần 5: Hàm main( )


Khi thực hiện, chƣơng trình sẽ bắt đầu bằng việc thực hiện các
lệnh trong hàm main( ).



Trong hàm main( ) có thể có lệnh gọi tới các hàm khác.

 Phần 6: Nội dung của các hàm đã khai báo



Cài đặt (viết mã) cho các hàm đã khai báo nguyên mẫu ở phần 3.

2.3.2. Câu lệnh
50

 Câu lệnh


Bắt đầu bằng một từ khóa, có thể viết trên một hoặc nhiều dòng



Kết thúc câu lệnh bằng một dấu chấm phảy (;)

25


×