SlideShare a Scribd company logo
www.hutech.edu.vn
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC CÔNG NGHỆ TP.HCM
KỸ THUẬT LẬP TRÌNH
Biên Soạn:
ThS. Nguyễn Thúy Loan
KỸ THUẬT LẬP TRÌNH
Ấn bản 2013
MỤC LỤC I
MỤC LỤC
MỤC LỤC .................................................................................................................. I
HƯỚNG DẪN ........................................................................................................... IV
BÀI 1: MẢNG MỘT CHIỀU ............................................................................................ 1
1.1 KHÁI NIỆM ..........................................................................................................1
1.1.1 Mảng một chiều .............................................................................................1
1.1.2 Cách khai báo mảng một chiều.........................................................................2
1.1.3 Truy cập vào các phần tử của mảng..................................................................3
1.1.4 Nhập dữ liệu cho mảng một chiều.....................................................................4
1.1.5 Xuất dữ liệu cho mảng một chiều......................................................................6
1.1.6 Một vài thuật toán trên mảng một chiều ............................................................7
1.2 CHUỖI KÝ TỰ (MẢNG MỘT CHIỀU CÁC KÝ TỰ)............................................................9
1.2.1 Ký tự (character) ...........................................................................................9
1.2.2 Chuỗi ......................................................................................................... 11
1.2.3 Các thao tác trên chuỗi ký tự ......................................................................... 13
1.2.4 Một số hàm xử lý chuỗi (trong < string.h>)...................................................... 13
TÓM TẮT ................................................................................................................ 21
CÂU HỎI ÔN TẬP...................................................................................................... 21
BÀI 2: MẢNG HAI CHIỀU ........................................................................................... 23
2.1 KHÁI NIỆM ........................................................................................................ 23
2.2 CÁCH KHAI BÁO MẢNG HAI CHIỀU......................................................................... 23
2.2.1 Cú pháp...................................................................................................... 23
2.2.2 Ví dụ .......................................................................................................... 24
2.2.3 Truy cập vào các phần tử của mảng................................................................ 24
2.3 NHẬP DỮ LIỆU CHO MẢNG HAI CHIỀU .................................................................... 25
2.3.1 Nhập dữ liệu cho mảng hai chiều các số nguyên ............................................... 25
2.3.2 Nhập dữ liệu cho mảng hai chiều các số thực.................................................... 27
2.4 XUẤT DỮ LIỆU CHO MẢNG HAI CHIỀU .................................................................... 28
2.4.1 Xuất dữ liệu cho mảng hai chiều các số nguyên ................................................ 28
2.4.2 Xuất dữ liệu cho mảng hai chiều các số thực .................................................... 30
2.5 MỘT VÀI THUẬT TOÁN TRÊN MẢNG HAI CHIỀU ........................................................ 32
2.5.1 Bài toán 1 ................................................................................................... 32
2.5.2 Bài toán 2 ................................................................................................... 33
TÓM TẮT ................................................................................................................ 34
CÂU HỎI ÔN TẬP...................................................................................................... 35
BÀI 3: KIỂU DỮ LIỆU CÓ CẤU TRÚC........................................................................... 36
3.1 KHÁI NIỆM ........................................................................................................ 36
3.2 CÁCH KHAI BÁO KIỂU CẤU TRÚC........................................................................... 37
3.2.1 Cú pháp...................................................................................................... 37
3.2.2 Ví dụ 1 ....................................................................................................... 37
3.2.3 Ví dụ 2 ....................................................................................................... 38
3.2.4 Ví dụ 3 ....................................................................................................... 38
3.3 TRUY CẬP VÀO TỪNG PHẦN TỬ CỦA CẤU TRÚC ........................................................ 39
3.3.1 Cú pháp...................................................................................................... 39
3.3.2 Ví dụ 1 ....................................................................................................... 39
II MỤC LỤC
3.3.3 Ví dụ 2 ....................................................................................................... 39
3.4 NHẬP DỮ LIỆU CHO KIỂU DỮ LIỆU CÓ CẤU TRÚC ..................................................... 40
3.4.1 Nhập dữ liệu cho một phân số........................................................................ 40
3.4.2 Nhập vào điểm của một sinh viên ................................................................... 41
3.5 XUẤT DỮ LIỆU.................................................................................................... 42
3.5.1 Xuất dữ liệu cho một phân số......................................................................... 42
3.5.2 Xuất dữ liệu điểm......................................................................................... 42
3.6 MẢNG CẤU TRÚC................................................................................................ 42
3.6.1 Bài toán 1 ................................................................................................... 42
3.6.2 Bài toán 2 ................................................................................................... 44
3.7 MỘT VÀI GIẢI THUẬT TRÊN MẢNG CẤU TRÚC .......................................................... 44
3.7.1 Bài toán 1 ................................................................................................... 44
3.7.2 Bài toán 2 ................................................................................................... 44
TÓM TẮT ................................................................................................................ 45
CÂU HỎI ÔN TẬP ..................................................................................................... 45
BÀI 4: KIỂU CON TRỎ................................................................................................ 47
4.1 KHÁI NIỆM VỀ ĐỊA CHỈ Ô NHỚ VÀ CON TRỎ ............................................................ 47
4.2 KHAI BÁO VÀ SỬ DỤNG BIẾN CON TRỎ .................................................................. 48
4.2.1 Khai báo biến con trỏ.................................................................................... 48
4.2.2 Các thao tác trên con trỏ............................................................................... 48
4.3 CÁC PHÉP TOÁN TRÊN CON TRỎ............................................................................ 51
4.3.1 Phép gán .................................................................................................... 51
4.3.2 Phép tăng giảm địa chỉ.................................................................................. 52
4.3.3 Phép truy nhập bộ nhớ.................................................................................. 52
4.3.4 Phép so sánh............................................................................................... 53
4.4 SỬ DỤNG CON TRỎ ĐỂ CẤP PHÁT VÀ THU HỒI BỘ NHỚ ĐỘNG.................................... 53
4.4.1 Các hàm cấp phát vùng nhớ .......................................................................... 54
4.4.2 Toán tử thu hồi bộ nhớ động.......................................................................... 56
4.4.3 Toán tử sizeof: ............................................................................................ 56
4.5 CON TRỎ VÀ MẢNG MỘT CHIỀU ............................................................................ 57
4.5.1 Truy cập các phần tử mảng theo dạng con trỏ .................................................. 57
4.5.2 Truy cập từng phần tử đang được quản lý bởi con trỏ theo dạng mảng................. 58
4.6 CON TRỎ VÀ MẢNG HAI CHIỀU ............................................................................. 62
4.6.1 Bài toán 2 ................................................................................................... 62
4.6.2 Cách 1........................................................................................................ 63
4.6.3 Cách 2........................................................................................................ 66
4.7 CON TRỎ VỚI KIỂU DỮ LIỆU CÓ CẤU TRÚC (STRUCT ) .............................................. 69
4.7.1 Ví dụ 1 ....................................................................................................... 69
4.7.2 Ví dụ 2 ....................................................................................................... 70
4.7.3 Truyền structure sang hàm............................................................................ 71
TÓM TẮT ................................................................................................................ 73
CÂU HỎI ÔN TẬP ..................................................................................................... 73
BÀI 5: ĐỆ QUY........................................................................................................... 77
5.1 KHÁI NIỆM ........................................................................................................ 77
5.2 PHÂN LOẠI HÀM ĐỆ QUY...................................................................................... 79
5.2.1 Đệ qui tuyến tính ......................................................................................... 79
5.2.2 Đệ qui nhị phân ........................................................................................... 81
5.2.3 Đệ qui phi tuyến .......................................................................................... 82
5.2.4 Đệ qui Hỗ Tương .......................................................................................... 83
5.3 KỸ THUẬT GIẢI BÀI TOÁN BẰNG ĐỆ QUY ................................................................ 84
5.3.1 Một số bài toán kinh điển dùng phương pháp đệ quy ......................................... 85
MỤC LỤC III
5.4 NHẬN XÉT ......................................................................................................... 87
5.5 CẤU TRÚC LẶP VÀ ĐỆ QUY.................................................................................... 88
TÓM TẮT ................................................................................................................ 88
CÂU HỎI ÔN TẬP...................................................................................................... 89
BÀI 6: TẬP TIN (FILE)............................................................................................... 90
6.1 KHÁI NIỆM ........................................................................................................ 90
6.2 CÁC THAO TÁC TRÊN TẬP TIN ............................................................................... 91
6.2.1 Khai báo biến tập tin..................................................................................... 91
6.2.2 Mở tập tin ................................................................................................... 92
6.2.3 Đóng tập tin ................................................................................................ 93
6.2.4 Kiểm tra đến cuối tập tin hay chưa? ................................................................ 93
6.2.5 Di chuyển con trỏ tập tin về đầu tập tin - Hàm rewind() ..................................... 93
6.3 TRUY CẬP TẬP TIN VĂN BẢN ................................................................................. 94
6.3.1 Ghi dữ liệu lên tập tin văn bản ....................................................................... 94
6.3.2 Đọc dữ liệu từ tập tin văn bản ........................................................................ 95
6.4 TRUY CẬP TẬP TIN NHỊ PHÂN................................................................................ 98
6.4.1 Ghi dữ liệu lên tập tin nhị phân - Hàm fwrite() .................................................. 98
6.4.2 Đọc dữ liệu từ tập tin nhị phân - Hàm fread() ................................................... 98
6.4.3 Di chuyển con trỏ tập tin - Hàm fseek() ........................................................... 98
TÓM TẮT .............................................................................................................. 105
CÂU HỎI ÔN TẬP.................................................................................................... 105
TÀI LIỆU THAM KHẢO ............................................................................................. 108
IV HƯỚNG DẪN
HƯỚNG DẪN
MÔ TẢ MÔN HỌC
Môn Kỹ Thuật Lập Trình cung cấp cho sinh viên những kiến thức cơ bản và
nâng cao về lập trình thông qua ngôn ngữ lập trình C. Môn học này là nền tảng
để tiếp thu hầu hết các môn học khác trong chương trình đào tạo. Mặt khác, nắm
vững môn này là cơ sở để phát triển tư duy và kỹ năng lập trình để giải các bài
toán và các ứng dụng trong thưc tế.
Học xong môn này, sinh viên phải nắm được các vấn đề sau:
- Khái niệm về ngôn ngữ lập trình
- Khái niệm về kiểu dữ liệu
- Tổng quan về Ngôn ngữ lập trình C
- Các kiểu dữ liệu trong C
- Các lệnh có cấu trúc
- Cách thiết kế và sử dụng các hàm trong C
- Một số cấu trúc dữ liệu trong C
- Xử lý các bài toán trên mảng một chiều
- Xử lý các bài toán trên mảng hai chiều
- Kỹ thuật dùng con trỏ
- Biết kỹ thuật viết đệ quy và khử đệ qui
- Biết xây dựng và xử lý các bài toán trên dữ liệu có cấu trúc do người dùng
định nghĩa
- Cách lưu trữ và xử lý các file trong C
- Tìm hiểu và cài đặt một số bài toán kinh điển như “Tháp Hà Nội“ ,“Bài toán
mã đi tuần”, “bài toán tám hậu” bằng phương pháp đệ quy hay đệ quy quay
lui, Phương pháp sinh dữ liệu
HƯỚNG DẪN V
NỘI DUNG MÔN HỌC
 Bài 1. Mảng một chiều: Bài này cung cấp cho học viên khái niệm về mảng một
chiều, cách nhập, xuất, lưu trữ trên mảng một chiều với các dữ liệu kiểu số và kiểu
chuỗi, xử lý các bài toán như tính tổng các giá trị trên mảng một chiều các số
nguyên, số thực, tìm phần tử nhỏ nhất, lớn nhất, thêm, xóa, sắp xếp các phần tử
trên mảng dữ liệu kiểu số, xử lý các bài toán trên dữ liệu kiểu chuỗi.
 Bài 2. Mảng hai chiều: Bài này cung cấp cho học viên khái niệm về mảng hai
chiều, cách nhập, xuất, lưu trữ trên mảng hai chiều, xử lý các bài toán như tính
tổng các giá trị trên mảng số nguyên, số thực, tìm phần tử nhỏ nhất, lớn nhất, sắp
xếp các phần tử trên mảng dữ liệu kiểu số, kiểu chuỗi.
 Bài 3. Kiểu dữ liệu có cấu trúc: Bài này cung cấp cho học viên khái niệm cơ bản
về kiểu dữ liệu có cấu trúc do người dùng định nghĩa. Biết Nhập Xuất dữ liệu có cấu
trúc cho một phần tử. Biết Nhập, Xuất dữ liệu có cấu trúc và lưu trên mảng một
chiều. Cách tìm kiếm và sắp xếp dữ liệu trên mảng một chiều với từng thành phần
của dữ liệu. Đi sâu vào các giải thuật trên mảng một chiều như tìm kiếm, sắp xếp,
thêm phần tử, xóa phần tử...
 Bài 4. Kiểu con trỏ: Bài này cung cấp cho học viên khái niệm cơ bản về kiểu dữ
liệu con trỏ, cách khai báo và sử dụng biến kiểu con trỏ. Mảng và các phép toán
trên mảng một chiều theo kiểu con trỏ. Mảng và các phép toán trên mảng hai
chiều theo kiểu con trỏ. Đi sâu vào các giải thuật trên mảng 1 chiều, 2 chiều như
tìm kiếm, sắp xếp, thêm phần tử, xóa phần tử... theo kiểu con trỏ. Con trỏ với kiểu
dữ liệu có cấu trúc
 Bài 5. Đệ quy: Bài này cung cấp cho học viên khái niệm cơ bản về kiểu lập trình
bằng phương pháp đệ quy, các kiểu đệ quy. Ưu điểm và nhược điểm khi cài đặt
hàm bằng phương pháp đệ quy. Giải quyết một số bài toán kinh điển bằng phương
pháp đệ quy. Xử lý các giải thuật trên mảng 1 chiều bằng phương pháp đệ quy
 Bài 6. Tập tin: Bài này cung cấp cho học viên một số khái niệm về tập tin. Các
bước thao tác với tập tin. Thao tác trên tập tin văn bản. Thao tác trên tập tin nhị
phân.
VI HƯỚNG DẪN
KIẾN THỨC TIỀN ĐỀ
Môn học Kỹ Thuật Lập Trình yêu cầu sinh viên phải có nền tảng của môn lập trình
cơ bản, có tư duy toán học tốt.
YÊU CẦU MÔN HỌC
Người học phải dự học đầy đủ các buổi lên lớp và làm bài tập đầy đủ ở nhà.
CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC
Để học tốt môn này, người học cần ôn tập các bài đã học, trả lời các câu hỏi và làm
đầy đủ bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bài học.
Đối với mỗi bài học, người học đọc trước mục tiêu và tóm tắt bài học, sau đó đọc
nội dung bài học. Kết thúc mỗi ý của bài học, người đọc trả lời câu hỏi ôn tập và kết
thúc toàn bộ bài học, người đọc làm các bài tập.
PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC
Môn học được đánh giá gồm:
 Điểm quá trình: 30%. Thi thực hành trên máy. Hình thức và nội dung do GV quyết
định, phù hợp với quy chế đào tạo và tình hình thực tế tại nơi tổ chức học tập.
 Điểm thi: 70%. Hình thức bài thi tự luận trong 90 phút. Nội dung gồm các bài tập
thuộc bài thứ 1 đến bài thứ 6.
BÀI 1: MẢNG MỘT CHIỀU 1
BÀI 1: MẢNG MỘT CHIỀU
Sau khi học xong bài này, học viên có thể:
 Khái niệm về kiểu dữ liệu mảng cũng như ứng dụng của nó;
 Cách khai báo biến kiểu mảng và các phép toán trên các phần tử của mảng;
 Đi sâu vào các giải thuật trên mảng 1 chiều như tìm kiếm, sắp xếp, thêm phần
tử, xóa phần tử...
1.1 KHÁI NIỆM
1.1.1 Mảng một chiều
Mảng là một tập hợp các phần tử cố định có cùng một kiểu, gọi là kiểu phần
tử. Kiểu phần tử có thể là có các kiểu bất kỳ: ký tự, số, chuỗi ký tự…; cũng có khi
ta sử dụng kiểu mảng để làm kiểu phần tử cho một mảng (trong trường hợp này
ta gọi là mảng của mảng hay mảng nhiều chiều).
Ta có thể chia mảng làm 2 loại: mảng 1 chiều và mảng nhiều chiều.
Mảng là kiểu dữ liệu được sử dụng rất thường xuyên. Chẳng hạn, người ta
cần quản lý một danh sách họ và tên của khoảng 100 sinh viên trong một lớp.
Nhận thấy rằng mỗi họ và tên để lưu trữ ta cần 1 biến kiểu chuỗi, như vậy 100 họ
và tên thì cần khai báo 100 biến kiểu chuỗi. Nếu khai báo như thế này thì đoạn
khai báo cũng như các thao tác trên các họ tên sẽ rất dài dòng và rắc rối. Vì thế,
kiểu dữ liệu mảng giúp ích ta trong trường hợp này; chỉ cần khai báo 1 biến, biến
này có thể coi như là tương đương với 100 biến chuỗi ký tự; đó là 1 mảng mà các
phần tử của nó là chuỗi ký tự. Hay như để lưu trữ các từ khóa của ngôn ngữ lập
trình C, ta cũng dùng đến một mảng để lưu trữ chúng.
Kích thước của mảng là số phần tử của mảng. Kích thước này phải được biết
ngay khi khai báo mảng.
Nếu xét dưới góc độ toán học, mảng 1 chiều giống như một vector. Mỗi phần tử
của mảng một chiều có giá trị không phải là một mảng khác.
2 BÀI 1: MẢNG MỘT CHIỀU
1.1.2 Cách khai báo mảng một chiều
1.1.2.1 Khai báo tường minh (số phần tử xác định)
Cú pháp
<kiểu cơ sở> <tên mảng> [<số phần tử >]
Ý nghĩa:
- Tên mảng: đây là một cái tên đặt đúng theo quy tắc đặt tên của danh biểu. Tên
này cũng mang ý nghĩa là tên biến mảng.
- Số phần tử: là một hằng số nguyên, cho biết số lượng phần tử tối đa trong
mảng là bao nhiêu (hay nói khác đi nó là kích thước của mảng).
- Kiểu cơ sở : là kiểu dữ liệu của mỗi phần tử của mảng.
Ví dụ
Khai báo mảng một chiều có tên là songuyen gồm10 phần tử và kiểu cơ sở là int
int songuyen [10] ;
Khai báo mảng một chiều có tên là sothuc gồm15 phần tử và kiểu cơ sở là float
float sothuc [15] ;
Khai báo mảng một chiều có tên là daykytu gồm30 phần tử và kiểu cơ sở là char
char daykytu [30] ;
1.1.2.2 Khai báo không tường minh(số phần tử không xác định)
Cú pháp
<kiểu cơ sở> <tên mảng> [ ]
Khi khai báo, không cho biết rõ số phần tử của mảng, kiểu khai báo này
thường được áp dụng trong các trường hợp: vừa khai báo vừa gán giá trị, khai báo
mảng là tham số hình thức của hàm.
BÀI 1: MẢNG MỘT CHIỀU 3
Cách 1. Vừa khai báo vừa gán giá trị
Cú pháp:
<Kiểu> <Tên mảng> []= {Các giá trị cách nhau bởi dấu phẩy}
Nếu vừa khai báo vừa gán giá trị thì mặc nhiên C sẽ hiểu số phần tử của
mảng là số giá trị mà chúng ta gán cho mảng trong cặp dấu {}.
Ví dụ : float x[6] = {12.1 , 7.23 , 5.0 , 27.6 , 87.9 , 9.31};
Chúng ta có thể sử dụng hàm sizeof() để lấy số phần tử của mảng như sau:
Số phần tử=sizeof(tên mảng)/ sizeof(kiểu)
Cách 2. Khai báo mảng là tham số hình thức của hàm, trong trường hợp
này ta không cần chỉ định số phần tử của mảng là bao nhiêu.
Ví dụ : void nhapmang ( int a[ ], int n )
1.1.3 Truy cập vào các phần tử của mảng
Mỗi phần tử của mảng được truy xuất thông qua Tên biến mảng theo sau
là chỉ số nằm trong cặp dấu ngoặc vuông [ ].
Chẳng hạn a[0] là phần tử đầu tiên của mảng a được khai báo ở trên.
Chỉ số của phần tử mảng là một biểu thức mà giá trị là kiểu số nguyên.
Với cách truy xuất theo kiểu này, Tên biến mảng[Chỉ số] có thể coi như là
một biến có kiểu dữ liệu là kiểu được chỉ ra trong khai báo biến mảng.
Chỉ số của mảng có thể là một hằng, một biến hay một biểu thức đại số.
Một phần tử của mảng là một biến có kiểu dữ liệu là kiểu cơ sở nên các thao tác
trên các biến cũng được áp dụng trên các phần tử của mảng.
Ví dụ Khai báo mảng số thực có 5 phần tử float a [5] ;
Khi đó Mảng số thực trên có các phần tử là:
a [0], a [1], a [2], a [3], a [4] và là những biến kiểu float
Và ta có thể thực hiện các phép toán :
float t=10.0;
4 BÀI 1: MẢNG MỘT CHIỀU
int i=1;
a [0]=4.2;
a [2]=t;
a [i ]=(a [0] +a [2])/2;
printf("nGia tri : %f ", a[1]);
scanf( "%f ",&a [4] );
t= a [4];
a [2*i+1]= a [2*i]+ a [2*i+2];
Ta có thể khởi gán giá trị cho mảng:
float x[6] = {12.1 , 7.23 , 5.0 , 27.6 , 87.9 , 9.31};
khi đó : x[0]=12.1 , x[1]=7.23 , x[2]=5.0 , x[3]=27.6 , x[4]=87.9 , x[5]=9.31
1.1.4 Nhập dữ liệu cho mảng một chiều
Khai báo mảng a để lưu trữ 100 phần tử là các số nguyên: int a [ 100 ] khi đó
máy sẽ cấp phát 200 byte để lưu trữ mảng a
Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ
Vị trí 0 1 2 3 4 .... n-3 n-2 n-1
Giá trị
a[ ]
7 3 9 4 5 .... 8 12 2
Tên phần
tử
a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1]
Nhập dữ liệu cho các phần tử
a [ 0 ] = 7 scanf ( ” %d” , & a[0 ] );
a [ 1 ] = 3 scanf ( ” %d” , & a[1 ] );
a [ 2 ] = 9 scanf ( ” %d” , & a[2 ] );
...................................................
a [ n-1 ] = 2 scanf ( ” %d” , & a[n-1 ] );
BÀI 1: MẢNG MỘT CHIỀU 5
// Nhập từng phần tử của mảng
for ( int i =0 ; i<n ; i++)
{
printf ( “ nhap a[%d] : “ , i ) ;
scanf ( “ %d ”, & a[ i ] );
}
2. Khai báo mảng a để lưu trữ 100 phần tử là các số thực a: float a [ 100 ]. Khi đó
máy sẽ cấp phát 400 byte để lưu trữ mảng a.
Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ
Vị trí 0 1 2 3 4 .... n-3 n-2 n-1
Giá trị
a[ ]
7.1 3.2 9.0 4.3 5.4 .... 8.0 12.0 2.1
Tên phần
tử
a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1]
Nhập dữ liệu cho các phần tử
a [ 0 ] = 7.1 scanf ( ” %f ” , & a[0 ] );
a [ 1 ] = 3.2 scanf ( ” %f ” , & a[1 ] );
a [ 2 ] = 9.0 scanf ( ” %f ” , & a[2 ] );
...................................................
a [ n-1 ] = 2.1 scanf ( ” %f ” , & a[n-1 ] );
// Nhập từng phần tử của mảng
for ( int i =0 ; i<n ; i++)
{
printf ( “ nhap a[%d] : “ , i ) ;
scanf ( “ %f ”, & a[ i ] );
}
6 BÀI 1: MẢNG MỘT CHIỀU
1.1.5 Xuất dữ liệu cho mảng một chiều
Khai báo mảng a để lưu trữ 100 phần tử là các số nguyên: int a [ 100 ], khi đó
máy sẽ cấp phát 200 byte để lưu trữ mảng a.
Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ
Vị trí 0 1 2 3 4 .... n-3 n-2 n-1
Giá trị
a[ ]
7 3 9 4 5 .... 8 12 2
Tên phần
tử
a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1]
Xuất dữ liệu cho từng phần tử
a [ 0 ] = 7 printf ( ” % 4d” , a[0 ] );
a [ 1 ] = 3 printf ( ” % 4d” , a[1 ] );
a [ 2 ] = 9 printf ( ” % 4d” , a[2 ] );
a [ 3 ] = 4 printf ( ” % 4d” , a[3 ] );
...................................................
a [ n-1 ] = 2 printf ( ” % 4d” , a[n-1 ] );
// Xuất từng phần tử của mảng
for ( int i =0 ; i<n ; i++)
{
printf ( “ % 4d ”, a[ i ] ) ;
}
Khai báo mảng a để lưu trữ 100 phần tử là các số thực a: float a [ 100 ]. Khi đó
máy sẽ cấp phát 400 byte để lưu trữ mảng a
BÀI 1: MẢNG MỘT CHIỀU 7
Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ
Vị trí 0 1 2 3 4 .... n-3 n-2 n-1
Giá trị
a[ ]
7.1 3.2 9.0 4.3 5.4 .... 8.0 12.0 2.1
Tên phần
tử
a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1]
Xuất dữ liệu cho các phần tử
a [ 0 ] = 7.1 printf ( ” % .1 f ” , a[0 ] );
a [ 1 ] = 3.2 printf ( ” % .1 f ” , a[1 ] );
a [ 2 ] = 9.0 printf ( ” % .1 f ” , a[2 ] );
...................................................
a [ n-1 ] = 2.1 printf ( ” %.1 f ” , a[n-1 ] );
// Xuất từng phần tử của mảng
for ( int i =0 ; i<n ; i++)
{
printf ( “ % .1 f ”, a[ i ] );
}
1.1.6 Một vài thuật toán trên mảng một chiều
Bài toán 1 : Tính tổng các phần tử trong mảng một chiều các số nguyên.
Khai báo mảng a để lưu trữ 100 phần tử là các số nguyên: int a [ 100 ]
Khi đó máy sẽ cấp phát 200 byte để lưu trữ mảng a
8 BÀI 1: MẢNG MỘT CHIỀU
Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ
Vị trí 0 1 2 3 4 .... n-3 n-2 n-1
Giá trị
a[ ]
7 3 9 4 5 .... 8 12 2
Tên phần
tử
a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1]
Tính tổng : khai báo một biến s để lưu trữ tổng
S = a[0] + a[1] + a[2] + …. + a[n - 1]
Giải thuật :
Đi từ đầu mảng đến cuối mảng
for ( int i= 0 ; i<n ; i++ )
Cộng dồn các phần tử a[i] vào biến s
S= S + a[i] ;
Hàm cài đặt
long tinhtong ( int a[ ] , int n )
{
long s =0 ;
for ( int i = 0 ; i<n ; i++ )
s=s+ a[i] ;
return s;
}
Bài toán 2 : Tìm phần tử âm đầu tiên có trong mảng một chiều các số nguyên.
Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ
Vị trí 0 1 2 3 4 .... n-3 n-2 n-1
A[ ] 7 3 -9 4 5 .... 8 12 2
BÀI 1: MẢNG MỘT CHIỀU 9
Giải thuật :
Đi từ đầu mảng đến cuối mảng
for ( int i= 0 ; i<n ; i++ )
Kiểm tra phần tử a[i] < 0 đầu tiên
if ( a[i] < 0 )
Nếu gặp thì xuất giá trị a[i] và dừng .
return a[i] ;
Hàm cài đặt
int amdau ( int a[ ] , int n )
{
for ( int i = 0 ; i<n ; i++ )
if ( a[i] < 0 )
return a[i] ;
return 1;
}
1.2 CHUỖI KÝ TỰ (MẢNG MỘT CHIỀU CÁC KÝ TỰ)
1.2.1 Ký tự (character)
1.2.1.1 Khái niệm
1. Ký tự “ in được ” gồm :
- 26 chữ thường (’a’, ’b’, ’c’, ...’z’),
- 26 chữ hoa (’A’, ’B’,’C’....’Z’),
- 10 chữ số (’0’, ’1’, ’2’, ’3’,....’9’),
- Khoảng trắng, các ký tự:! “ # $ % & ‘ ( ) * + , - . / : ; < = > ? @ [  ] ^ _
{ | } ~
10 BÀI 1: MẢNG MỘT CHIỀU
2. Các ký tự “ không in được ”:
- tab, lert (bell), newline, formfeed,...
3. Các ký tự “ in được ” đặc biệt:
- ‘’, ‘’’, ‘”’
4. Các ký tự “không in được” đặc biệt:
- n new line
- a bell
- 0 null character
- b backspace
- thorizontal tab
1.2.1.2 Nhập ký tự
1. Hàm scanf : sử dụng thư viện <stdio.h>
Ví dụ : char ch; scanf(“%c”, &ch);
2. Hàm getch : nhận một ký tự từ bộ đệm bàn phím và không cho hiện ký tự
này lên màn hình. Cú pháp : int getch (void)
Hàm trả về ký tự nhận được. ch = getch ();
Nếu ký tự có sẵn trong bộ đệm bàn phím thì hàm nhận một ký tự trong đó.
Nếu bộ đệm rỗng thì máy tạm dừng cho đến khi ta gõ vào một ký tự. Ký tự gõ vào
sẽ nhận được ngay, không cần phải gõ phím enter và ký tự không được hiển thị lên
màn hình.
3. Hàm getche : nhận một ký tự từ bộ đệm bàn phím và cho hiển thị ký tự này
lên màn hình. Cú pháp : int getche(void)
Hàm này có công dụng giống như hàm getch, nhưng cho hiển thị ký tự nhập vào
lên màn hình.
ch = getchar();
BÀI 1: MẢNG MỘT CHIỀU 11
1.2.1.3 Xuất ký tự:
1. Hàm putch : xuất một ký tự ra cửa sổ văn bản màn hình.
Cú pháp : int putch (int ch)
khai báo thư viện < string.h >
Đối số ch chứa ký tự cần hiển thị.
Hàm có công dụng xuất ký tự ch lên cửa sổ văn bản màn hình.
Ký tự sẽ được hiển thị theo màu xác định trong hàm textcolor.
Hàm trả về ký tự đã hiển thị.
2. printf ( “ %c”, ch )
Hàm có công dụng xuất ký tự ch lên cửa sổ văn bản màn hình.
khai báo thư viện < stdio.h >
3. putc (ch)
Hàm có công dụng xuất ký tự ch lên cửa sổ văn bản màn hình.
khai báo thư viện < string.h >
1.2.2 Chuỗi
1.2.2.1 Khái niệm
Chuỗi là một dãy ký tự dùng để lưu trữ và xử lý văn bản như từ, tên, câu. Trong
ngôn ngữ C không có kiểu chuỗi và chuỗi được thể hiện bằng mảng các ký tự (có kiểu
cơ sở char), được kết thúc bằng ký tự ‘0’ (còn được gọi là ký tự NULL trong bảng mã
Ascii ).
Các hằng chuỗi ký tự được đặt trong cặp dấu nháy kép “ ”.
Chú ý: Chuỗi được khai báo là một mảng các ký tự nên các thao tác trên
mảng có thể áp dụng đối với chuỗi ký tự.
1.2.2.2 Cách khai báo chuỗi
1. Khai báo chuỗi :
Cú pháp : char < tên biến > [ chiều dài tối đa chuỗi ]
12 BÀI 1: MẢNG MỘT CHIỀU
Ví dụ : char Hoten [20];
Khai báo như trên là khai báo 1 chuỗi chứa tối đa 19 ký tự (còn 1 ký tự cuối
của chuỗi chứa NULL)
2. Vừa khai báo vừa gán giá trị :
Cú pháp: char <Biến> []=<”Hằng chuỗi”>
Ví dụ : char chuỗi [ ] = “ Kỹ thuật lập trình “ .
char chuoi [50]= ”CONG HOA XA HOI CHU NGHIA VIET NAM”;
char name []= {‘K’,’C’,’N’,’T’,’T’,’0’};
char ten[10]={‘h’,’o’,’a’,’h’,’o’,’n’,’g’,’0’};
khi đó :
ten[0]= ‘h’; ten[1]= ‘o’; ten[2]= ‘a’; ten[3]= ‘h’; ten[4]= ‘o’;
ten[5]= ‘n’; ten[6]= ‘g’; ten[7]= 0’;
1.2.2.3 Lỗi khi tạo một chuỗi
1. Chú ý: Không :sử dụng toán tử gán = để chép nội dung của một chuỗi sang
chuỗi khác.
Char a[4]=“hi”;
char b[4];
b = a; //???
2. Không:dùng toán tử == để so sánh nội dung hai chuỗi
char a[]=“hi”;
char b[] = “there”;
if(a==b) //???
{ }
3. Phép gán trong kiểu dữ liệu chuỗi như thế này là sai
Char ten[10];
ten = “hoahong”

More Related Content

Similar to Kỹ thuật lập trình, Nguyễn Thúy Loan.pdf

hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Tranghoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
Học Cơ Khí
 
Nhập môn công nghệ thông tin
Nhập môn công nghệ thông tinNhập môn công nghệ thông tin
Nhập môn công nghệ thông tin
Thanh Lee
 
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
Nguyen Thanh Tu Collection
 
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdfNghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Man_Ebook
 
bài giảng lập trình hướng đối tượng
bài giảng lập trình hướng đối tượngbài giảng lập trình hướng đối tượng
bài giảng lập trình hướng đối tượng
Mountain Nguyen
 
Luận án tiến sĩ phân tích thủy động lực học và thiết kế hệ thống điều khiển t...
Luận án tiến sĩ phân tích thủy động lực học và thiết kế hệ thống điều khiển t...Luận án tiến sĩ phân tích thủy động lực học và thiết kế hệ thống điều khiển t...
Luận án tiến sĩ phân tích thủy động lực học và thiết kế hệ thống điều khiển t...
https://www.facebook.com/garmentspace
 
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]bookbooming1
 
THIẾT KẾ KỸ THUẬT CÔNG TRÌNH ĐÊ CHẮN SÓNG CẢNG NEO ĐẬU VÀ CỬA BIỂN MỸ Á – GIA...
THIẾT KẾ KỸ THUẬT CÔNG TRÌNH ĐÊ CHẮN SÓNG CẢNG NEO ĐẬU VÀ CỬA BIỂN MỸ Á – GIA...THIẾT KẾ KỸ THUẬT CÔNG TRÌNH ĐÊ CHẮN SÓNG CẢNG NEO ĐẬU VÀ CỬA BIỂN MỸ Á – GIA...
THIẾT KẾ KỸ THUẬT CÔNG TRÌNH ĐÊ CHẮN SÓNG CẢNG NEO ĐẬU VÀ CỬA BIỂN MỸ Á – GIA...luuguxd
 
Baigiang access ttth
Baigiang access ttthBaigiang access ttth
Baigiang access ttth
lam04dt
 
Thực trạng công tác văn thư, lưu trữ tại trường THPT, CĐ, Đại học!
Thực trạng công tác văn thư, lưu trữ tại trường THPT, CĐ, Đại học!Thực trạng công tác văn thư, lưu trữ tại trường THPT, CĐ, Đại học!
Thực trạng công tác văn thư, lưu trữ tại trường THPT, CĐ, Đại học!
Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Luận Văn Các Nhân Tố Ảnh Hưởng Tới Sự Hài Lòng Của Công Chức Tại Ngân Hàng
Luận Văn Các Nhân Tố Ảnh Hưởng Tới Sự Hài Lòng Của Công Chức Tại Ngân HàngLuận Văn Các Nhân Tố Ảnh Hưởng Tới Sự Hài Lòng Của Công Chức Tại Ngân Hàng
Luận Văn Các Nhân Tố Ảnh Hưởng Tới Sự Hài Lòng Của Công Chức Tại Ngân Hàng
Dịch Vụ Viết Thuê Luận Văn Zalo : 0932.091.562
 
Đề tài: Đánh giá chất lượng cán bộ quản lý công ty bao bì, HAY
Đề tài: Đánh giá chất lượng cán bộ quản lý công ty bao bì, HAYĐề tài: Đánh giá chất lượng cán bộ quản lý công ty bao bì, HAY
Đề tài: Đánh giá chất lượng cán bộ quản lý công ty bao bì, HAY
Viết thuê trọn gói ZALO 0934573149
 
Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...
Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...
Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...
DV Viết Luận văn luanvanmaster.com ZALO 0973287149
 
Tailieu.vncty.com cong nghe-che_bien_phan_compost_5949
Tailieu.vncty.com   cong nghe-che_bien_phan_compost_5949Tailieu.vncty.com   cong nghe-che_bien_phan_compost_5949
Tailieu.vncty.com cong nghe-che_bien_phan_compost_5949
Trần Đức Anh
 
Nghiên cứu ứng dụng khuếch đại quang sợi trong truyền dẫn quang WDM.pdf
Nghiên cứu ứng dụng khuếch đại quang sợi trong truyền dẫn quang WDM.pdfNghiên cứu ứng dụng khuếch đại quang sợi trong truyền dẫn quang WDM.pdf
Nghiên cứu ứng dụng khuếch đại quang sợi trong truyền dẫn quang WDM.pdf
Man_Ebook
 
Luận Văn Các Yếu Tố Ảnh Hưởng Đến Ý Định Mua Thiết Bị Gia Dụng Tiết Kiệm Năng...
Luận Văn Các Yếu Tố Ảnh Hưởng Đến Ý Định Mua Thiết Bị Gia Dụng Tiết Kiệm Năng...Luận Văn Các Yếu Tố Ảnh Hưởng Đến Ý Định Mua Thiết Bị Gia Dụng Tiết Kiệm Năng...
Luận Văn Các Yếu Tố Ảnh Hưởng Đến Ý Định Mua Thiết Bị Gia Dụng Tiết Kiệm Năng...
Viết Thuê Luận Văn Luanvanpanda.com
 
Luận văn: Tìm hiểu công nghệ thực tế ảo và ứng dụng, HAY
Luận văn: Tìm hiểu công nghệ thực tế ảo và ứng dụng, HAYLuận văn: Tìm hiểu công nghệ thực tế ảo và ứng dụng, HAY
Luận văn: Tìm hiểu công nghệ thực tế ảo và ứng dụng, HAY
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Đồ án môn học thiết kế trạm xử lý nước thải KCN Hiệp Phước
Đồ án môn học thiết kế trạm xử lý nước thải KCN Hiệp PhướcĐồ án môn học thiết kế trạm xử lý nước thải KCN Hiệp Phước
Đồ án môn học thiết kế trạm xử lý nước thải KCN Hiệp Phước
Nhận Viết Đề Tài Điểm Cao ZALO 0917193864 - LUANVANTRUST.COM
 

Similar to Kỹ thuật lập trình, Nguyễn Thúy Loan.pdf (20)

hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Tranghoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
 
Nhập môn công nghệ thông tin
Nhập môn công nghệ thông tinNhập môn công nghệ thông tin
Nhập môn công nghệ thông tin
 
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
Đề tài: Kế toán chi phí sản xuất tại Công ty May II Hải Dương, HAY - Gửi miễn...
 
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
SÁNG KIẾN TỔ CHỨC CÁC TRÒ CHƠI TRONG DẠY HỌC CHƯƠNG IV – VECTƠ (TOÁN 10 – KẾT...
 
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdfNghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
 
bài giảng lập trình hướng đối tượng
bài giảng lập trình hướng đối tượngbài giảng lập trình hướng đối tượng
bài giảng lập trình hướng đối tượng
 
Luận án tiến sĩ phân tích thủy động lực học và thiết kế hệ thống điều khiển t...
Luận án tiến sĩ phân tích thủy động lực học và thiết kế hệ thống điều khiển t...Luận án tiến sĩ phân tích thủy động lực học và thiết kế hệ thống điều khiển t...
Luận án tiến sĩ phân tích thủy động lực học và thiết kế hệ thống điều khiển t...
 
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]
 
THIẾT KẾ KỸ THUẬT CÔNG TRÌNH ĐÊ CHẮN SÓNG CẢNG NEO ĐẬU VÀ CỬA BIỂN MỸ Á – GIA...
THIẾT KẾ KỸ THUẬT CÔNG TRÌNH ĐÊ CHẮN SÓNG CẢNG NEO ĐẬU VÀ CỬA BIỂN MỸ Á – GIA...THIẾT KẾ KỸ THUẬT CÔNG TRÌNH ĐÊ CHẮN SÓNG CẢNG NEO ĐẬU VÀ CỬA BIỂN MỸ Á – GIA...
THIẾT KẾ KỸ THUẬT CÔNG TRÌNH ĐÊ CHẮN SÓNG CẢNG NEO ĐẬU VÀ CỬA BIỂN MỸ Á – GIA...
 
Baigiang access ttth
Baigiang access ttthBaigiang access ttth
Baigiang access ttth
 
Thực trạng công tác văn thư, lưu trữ tại trường THPT, CĐ, Đại học!
Thực trạng công tác văn thư, lưu trữ tại trường THPT, CĐ, Đại học!Thực trạng công tác văn thư, lưu trữ tại trường THPT, CĐ, Đại học!
Thực trạng công tác văn thư, lưu trữ tại trường THPT, CĐ, Đại học!
 
Luận Văn Các Nhân Tố Ảnh Hưởng Tới Sự Hài Lòng Của Công Chức Tại Ngân Hàng
Luận Văn Các Nhân Tố Ảnh Hưởng Tới Sự Hài Lòng Của Công Chức Tại Ngân HàngLuận Văn Các Nhân Tố Ảnh Hưởng Tới Sự Hài Lòng Của Công Chức Tại Ngân Hàng
Luận Văn Các Nhân Tố Ảnh Hưởng Tới Sự Hài Lòng Của Công Chức Tại Ngân Hàng
 
Đề tài: Đánh giá chất lượng cán bộ quản lý công ty bao bì, HAY
Đề tài: Đánh giá chất lượng cán bộ quản lý công ty bao bì, HAYĐề tài: Đánh giá chất lượng cán bộ quản lý công ty bao bì, HAY
Đề tài: Đánh giá chất lượng cán bộ quản lý công ty bao bì, HAY
 
Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...
Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...
Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...
 
Tailieu.vncty.com cong nghe-che_bien_phan_compost_5949
Tailieu.vncty.com   cong nghe-che_bien_phan_compost_5949Tailieu.vncty.com   cong nghe-che_bien_phan_compost_5949
Tailieu.vncty.com cong nghe-che_bien_phan_compost_5949
 
Nghiên cứu ứng dụng khuếch đại quang sợi trong truyền dẫn quang WDM.pdf
Nghiên cứu ứng dụng khuếch đại quang sợi trong truyền dẫn quang WDM.pdfNghiên cứu ứng dụng khuếch đại quang sợi trong truyền dẫn quang WDM.pdf
Nghiên cứu ứng dụng khuếch đại quang sợi trong truyền dẫn quang WDM.pdf
 
Luận Văn Các Yếu Tố Ảnh Hưởng Đến Ý Định Mua Thiết Bị Gia Dụng Tiết Kiệm Năng...
Luận Văn Các Yếu Tố Ảnh Hưởng Đến Ý Định Mua Thiết Bị Gia Dụng Tiết Kiệm Năng...Luận Văn Các Yếu Tố Ảnh Hưởng Đến Ý Định Mua Thiết Bị Gia Dụng Tiết Kiệm Năng...
Luận Văn Các Yếu Tố Ảnh Hưởng Đến Ý Định Mua Thiết Bị Gia Dụng Tiết Kiệm Năng...
 
Luận văn: Tìm hiểu công nghệ thực tế ảo và ứng dụng, HAY
Luận văn: Tìm hiểu công nghệ thực tế ảo và ứng dụng, HAYLuận văn: Tìm hiểu công nghệ thực tế ảo và ứng dụng, HAY
Luận văn: Tìm hiểu công nghệ thực tế ảo và ứng dụng, HAY
 
56251639 bao-dam-chat-luong-pm
56251639 bao-dam-chat-luong-pm56251639 bao-dam-chat-luong-pm
56251639 bao-dam-chat-luong-pm
 
Đồ án môn học thiết kế trạm xử lý nước thải KCN Hiệp Phước
Đồ án môn học thiết kế trạm xử lý nước thải KCN Hiệp PhướcĐồ án môn học thiết kế trạm xử lý nước thải KCN Hiệp Phước
Đồ án môn học thiết kế trạm xử lý nước thải KCN Hiệp Phước
 

More from Man_Ebook

Xây dựng và thiết kế Web bán đặc sản Tây Bắc.pdf
Xây dựng và thiết kế Web bán đặc sản Tây Bắc.pdfXây dựng và thiết kế Web bán đặc sản Tây Bắc.pdf
Xây dựng và thiết kế Web bán đặc sản Tây Bắc.pdf
Man_Ebook
 
Xây dựng mô hình học sâu để phát hiện biển số xe tại Trường Đại học Phenikaa.pdf
Xây dựng mô hình học sâu để phát hiện biển số xe tại Trường Đại học Phenikaa.pdfXây dựng mô hình học sâu để phát hiện biển số xe tại Trường Đại học Phenikaa.pdf
Xây dựng mô hình học sâu để phát hiện biển số xe tại Trường Đại học Phenikaa.pdf
Man_Ebook
 
Xây dựng phần mềm quản lý sinh viên cho mạng nội bộ.pdf
Xây dựng phần mềm quản lý sinh viên cho mạng nội bộ.pdfXây dựng phần mềm quản lý sinh viên cho mạng nội bộ.pdf
Xây dựng phần mềm quản lý sinh viên cho mạng nội bộ.pdf
Man_Ebook
 
Triển khai ứng dụng Open Educat cho hệ thống quản lý thư viện.pdf
Triển khai ứng dụng Open Educat cho hệ thống quản lý thư viện.pdfTriển khai ứng dụng Open Educat cho hệ thống quản lý thư viện.pdf
Triển khai ứng dụng Open Educat cho hệ thống quản lý thư viện.pdf
Man_Ebook
 
Triển khai dịch vụ Firewall-as-a-service (FWAAS) trên nền tảng openstack.pdf
Triển khai dịch vụ Firewall-as-a-service (FWAAS) trên nền tảng openstack.pdfTriển khai dịch vụ Firewall-as-a-service (FWAAS) trên nền tảng openstack.pdf
Triển khai dịch vụ Firewall-as-a-service (FWAAS) trên nền tảng openstack.pdf
Man_Ebook
 
Thiết kế, xây dựng và quản lý website bán hàng.pdf
Thiết kế, xây dựng và quản lý website bán hàng.pdfThiết kế, xây dựng và quản lý website bán hàng.pdf
Thiết kế, xây dựng và quản lý website bán hàng.pdf
Man_Ebook
 
Thiết kế website bán máy tính cho công ty laptop Bách Phương.pdf
Thiết kế website bán máy tính cho công ty laptop Bách Phương.pdfThiết kế website bán máy tính cho công ty laptop Bách Phương.pdf
Thiết kế website bán máy tính cho công ty laptop Bách Phương.pdf
Man_Ebook
 
Thiết kế và xây dựng website bán đồ chơi.pdf
Thiết kế và xây dựng website bán đồ chơi.pdfThiết kế và xây dựng website bán đồ chơi.pdf
Thiết kế và xây dựng website bán đồ chơi.pdf
Man_Ebook
 
Thiết kế và xây dựng website bán điện thoại.pdf
Thiết kế và xây dựng website bán điện thoại.pdfThiết kế và xây dựng website bán điện thoại.pdf
Thiết kế và xây dựng website bán điện thoại.pdf
Man_Ebook
 
BÁO CÁO MARKETING CUỐI KÌ CÔNG TY ORIJEN DOG AND CAT FOOD
BÁO CÁO MARKETING CUỐI KÌ CÔNG TY ORIJEN DOG AND CAT FOODBÁO CÁO MARKETING CUỐI KÌ CÔNG TY ORIJEN DOG AND CAT FOOD
BÁO CÁO MARKETING CUỐI KÌ CÔNG TY ORIJEN DOG AND CAT FOOD
Man_Ebook
 
Hành vi tình dục không an toàn và các yếu tố liên quan trong nhóm nam quan hệ...
Hành vi tình dục không an toàn và các yếu tố liên quan trong nhóm nam quan hệ...Hành vi tình dục không an toàn và các yếu tố liên quan trong nhóm nam quan hệ...
Hành vi tình dục không an toàn và các yếu tố liên quan trong nhóm nam quan hệ...
Man_Ebook
 
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTETL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
Man_Ebook
 
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdfTừ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Man_Ebook
 
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdfTRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
Man_Ebook
 
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Man_Ebook
 
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
Man_Ebook
 
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
Man_Ebook
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
Man_Ebook
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Man_Ebook
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Man_Ebook
 

More from Man_Ebook (20)

Xây dựng và thiết kế Web bán đặc sản Tây Bắc.pdf
Xây dựng và thiết kế Web bán đặc sản Tây Bắc.pdfXây dựng và thiết kế Web bán đặc sản Tây Bắc.pdf
Xây dựng và thiết kế Web bán đặc sản Tây Bắc.pdf
 
Xây dựng mô hình học sâu để phát hiện biển số xe tại Trường Đại học Phenikaa.pdf
Xây dựng mô hình học sâu để phát hiện biển số xe tại Trường Đại học Phenikaa.pdfXây dựng mô hình học sâu để phát hiện biển số xe tại Trường Đại học Phenikaa.pdf
Xây dựng mô hình học sâu để phát hiện biển số xe tại Trường Đại học Phenikaa.pdf
 
Xây dựng phần mềm quản lý sinh viên cho mạng nội bộ.pdf
Xây dựng phần mềm quản lý sinh viên cho mạng nội bộ.pdfXây dựng phần mềm quản lý sinh viên cho mạng nội bộ.pdf
Xây dựng phần mềm quản lý sinh viên cho mạng nội bộ.pdf
 
Triển khai ứng dụng Open Educat cho hệ thống quản lý thư viện.pdf
Triển khai ứng dụng Open Educat cho hệ thống quản lý thư viện.pdfTriển khai ứng dụng Open Educat cho hệ thống quản lý thư viện.pdf
Triển khai ứng dụng Open Educat cho hệ thống quản lý thư viện.pdf
 
Triển khai dịch vụ Firewall-as-a-service (FWAAS) trên nền tảng openstack.pdf
Triển khai dịch vụ Firewall-as-a-service (FWAAS) trên nền tảng openstack.pdfTriển khai dịch vụ Firewall-as-a-service (FWAAS) trên nền tảng openstack.pdf
Triển khai dịch vụ Firewall-as-a-service (FWAAS) trên nền tảng openstack.pdf
 
Thiết kế, xây dựng và quản lý website bán hàng.pdf
Thiết kế, xây dựng và quản lý website bán hàng.pdfThiết kế, xây dựng và quản lý website bán hàng.pdf
Thiết kế, xây dựng và quản lý website bán hàng.pdf
 
Thiết kế website bán máy tính cho công ty laptop Bách Phương.pdf
Thiết kế website bán máy tính cho công ty laptop Bách Phương.pdfThiết kế website bán máy tính cho công ty laptop Bách Phương.pdf
Thiết kế website bán máy tính cho công ty laptop Bách Phương.pdf
 
Thiết kế và xây dựng website bán đồ chơi.pdf
Thiết kế và xây dựng website bán đồ chơi.pdfThiết kế và xây dựng website bán đồ chơi.pdf
Thiết kế và xây dựng website bán đồ chơi.pdf
 
Thiết kế và xây dựng website bán điện thoại.pdf
Thiết kế và xây dựng website bán điện thoại.pdfThiết kế và xây dựng website bán điện thoại.pdf
Thiết kế và xây dựng website bán điện thoại.pdf
 
BÁO CÁO MARKETING CUỐI KÌ CÔNG TY ORIJEN DOG AND CAT FOOD
BÁO CÁO MARKETING CUỐI KÌ CÔNG TY ORIJEN DOG AND CAT FOODBÁO CÁO MARKETING CUỐI KÌ CÔNG TY ORIJEN DOG AND CAT FOOD
BÁO CÁO MARKETING CUỐI KÌ CÔNG TY ORIJEN DOG AND CAT FOOD
 
Hành vi tình dục không an toàn và các yếu tố liên quan trong nhóm nam quan hệ...
Hành vi tình dục không an toàn và các yếu tố liên quan trong nhóm nam quan hệ...Hành vi tình dục không an toàn và các yếu tố liên quan trong nhóm nam quan hệ...
Hành vi tình dục không an toàn và các yếu tố liên quan trong nhóm nam quan hệ...
 
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTETL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
 
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdfTừ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
 
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdfTRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
 
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
 
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
 
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
 

Recently uploaded

Từ khoá Địa Lí giup ban dat 9 diem .docx
Từ khoá Địa Lí giup ban dat 9 diem .docxTừ khoá Địa Lí giup ban dat 9 diem .docx
Từ khoá Địa Lí giup ban dat 9 diem .docx
Nguyntrnhnganh
 
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Bồi Dưỡng HSG Toán Lớp 3
 
thuvienhoclieu.com-De-thi-thu-TN-THPT-2024-Tieng-Anh-phat-trien-tu-de-minh-ho...
thuvienhoclieu.com-De-thi-thu-TN-THPT-2024-Tieng-Anh-phat-trien-tu-de-minh-ho...thuvienhoclieu.com-De-thi-thu-TN-THPT-2024-Tieng-Anh-phat-trien-tu-de-minh-ho...
thuvienhoclieu.com-De-thi-thu-TN-THPT-2024-Tieng-Anh-phat-trien-tu-de-minh-ho...
HngNguyn2390
 
GƯƠNG ĐIỂN HÌNH NGƯỜI TỐT - VIỆC TỐT DƯƠNG THU NGA - NỮ KỸ THUẬT VIÊN PHỤC HỒ...
GƯƠNG ĐIỂN HÌNH NGƯỜI TỐT - VIỆC TỐT DƯƠNG THU NGA - NỮ KỸ THUẬT VIÊN PHỤC HỒ...GƯƠNG ĐIỂN HÌNH NGƯỜI TỐT - VIỆC TỐT DƯƠNG THU NGA - NỮ KỸ THUẬT VIÊN PHỤC HỒ...
GƯƠNG ĐIỂN HÌNH NGƯỜI TỐT - VIỆC TỐT DƯƠNG THU NGA - NỮ KỸ THUẬT VIÊN PHỤC HỒ...
lamluanvan.net Viết thuê luận văn
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
Nguyen Thanh Tu Collection
 
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptxvật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
LinhTrn115148
 
Atomic Habits - Thay Đổi Tí Hon, Hiệu Quả Bất Ngờ - James Clear & L...
Atomic Habits - Thay Đổi Tí Hon, Hiệu Quả Bất Ngờ - James Clear & L...Atomic Habits - Thay Đổi Tí Hon, Hiệu Quả Bất Ngờ - James Clear & L...
Atomic Habits - Thay Đổi Tí Hon, Hiệu Quả Bất Ngờ - James Clear & L...
williamminerva131
 
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptxNgon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
linhlevietdav
 
Tóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
Tóm tắt Tư tưởng Hồ Chí MinhhhhhhhhhhhhhTóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
Tóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
nnguyenthao204
 
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdfDANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
thanhluan21
 
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCMGiải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
LinhChu679649
 
Diễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Diễn giải Tâm lý - Chiêm tinh Thầy Minh TuệDiễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Diễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Little Daisy
 
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦNNHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
lamluanvan.net Viết thuê luận văn
 
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
lamluanvan.net Viết thuê luận văn
 
Bài tập chương 5. Năng lượng phản ứng.docx
Bài tập chương 5. Năng lượng phản ứng.docxBài tập chương 5. Năng lượng phản ứng.docx
Bài tập chương 5. Năng lượng phản ứng.docx
gorse871
 
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
Nguyen Thanh Tu Collection
 
CD6_DAI_CUONG_KIMLOAI_12CB218LTTTHU5.pdf
CD6_DAI_CUONG_KIMLOAI_12CB218LTTTHU5.pdfCD6_DAI_CUONG_KIMLOAI_12CB218LTTTHU5.pdf
CD6_DAI_CUONG_KIMLOAI_12CB218LTTTHU5.pdf
Nguyntrnhnganh
 
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
Nguyen Thanh Tu Collection
 
CHUYÊN ĐỀ DẠY THÊM TOÁN LỚP 12 THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI SÁNG TẠ...
CHUYÊN ĐỀ DẠY THÊM TOÁN LỚP 12 THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI SÁNG TẠ...CHUYÊN ĐỀ DẠY THÊM TOÁN LỚP 12 THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI SÁNG TẠ...
CHUYÊN ĐỀ DẠY THÊM TOÁN LỚP 12 THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI SÁNG TẠ...
Nguyen Thanh Tu Collection
 
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
lamluanvan.net Viết thuê luận văn
 

Recently uploaded (20)

Từ khoá Địa Lí giup ban dat 9 diem .docx
Từ khoá Địa Lí giup ban dat 9 diem .docxTừ khoá Địa Lí giup ban dat 9 diem .docx
Từ khoá Địa Lí giup ban dat 9 diem .docx
 
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
 
thuvienhoclieu.com-De-thi-thu-TN-THPT-2024-Tieng-Anh-phat-trien-tu-de-minh-ho...
thuvienhoclieu.com-De-thi-thu-TN-THPT-2024-Tieng-Anh-phat-trien-tu-de-minh-ho...thuvienhoclieu.com-De-thi-thu-TN-THPT-2024-Tieng-Anh-phat-trien-tu-de-minh-ho...
thuvienhoclieu.com-De-thi-thu-TN-THPT-2024-Tieng-Anh-phat-trien-tu-de-minh-ho...
 
GƯƠNG ĐIỂN HÌNH NGƯỜI TỐT - VIỆC TỐT DƯƠNG THU NGA - NỮ KỸ THUẬT VIÊN PHỤC HỒ...
GƯƠNG ĐIỂN HÌNH NGƯỜI TỐT - VIỆC TỐT DƯƠNG THU NGA - NỮ KỸ THUẬT VIÊN PHỤC HỒ...GƯƠNG ĐIỂN HÌNH NGƯỜI TỐT - VIỆC TỐT DƯƠNG THU NGA - NỮ KỸ THUẬT VIÊN PHỤC HỒ...
GƯƠNG ĐIỂN HÌNH NGƯỜI TỐT - VIỆC TỐT DƯƠNG THU NGA - NỮ KỸ THUẬT VIÊN PHỤC HỒ...
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
 
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptxvật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
 
Atomic Habits - Thay Đổi Tí Hon, Hiệu Quả Bất Ngờ - James Clear & L...
Atomic Habits - Thay Đổi Tí Hon, Hiệu Quả Bất Ngờ - James Clear & L...Atomic Habits - Thay Đổi Tí Hon, Hiệu Quả Bất Ngờ - James Clear & L...
Atomic Habits - Thay Đổi Tí Hon, Hiệu Quả Bất Ngờ - James Clear & L...
 
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptxNgon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
 
Tóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
Tóm tắt Tư tưởng Hồ Chí MinhhhhhhhhhhhhhTóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
Tóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
 
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdfDANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
 
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCMGiải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
 
Diễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Diễn giải Tâm lý - Chiêm tinh Thầy Minh TuệDiễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Diễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
 
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦNNHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
 
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
 
Bài tập chương 5. Năng lượng phản ứng.docx
Bài tập chương 5. Năng lượng phản ứng.docxBài tập chương 5. Năng lượng phản ứng.docx
Bài tập chương 5. Năng lượng phản ứng.docx
 
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
 
CD6_DAI_CUONG_KIMLOAI_12CB218LTTTHU5.pdf
CD6_DAI_CUONG_KIMLOAI_12CB218LTTTHU5.pdfCD6_DAI_CUONG_KIMLOAI_12CB218LTTTHU5.pdf
CD6_DAI_CUONG_KIMLOAI_12CB218LTTTHU5.pdf
 
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
 
CHUYÊN ĐỀ DẠY THÊM TOÁN LỚP 12 THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI SÁNG TẠ...
CHUYÊN ĐỀ DẠY THÊM TOÁN LỚP 12 THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI SÁNG TẠ...CHUYÊN ĐỀ DẠY THÊM TOÁN LỚP 12 THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI SÁNG TẠ...
CHUYÊN ĐỀ DẠY THÊM TOÁN LỚP 12 THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI SÁNG TẠ...
 
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
 

Kỹ thuật lập trình, Nguyễn Thúy Loan.pdf

  • 1. www.hutech.edu.vn BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC CÔNG NGHỆ TP.HCM KỸ THUẬT LẬP TRÌNH Biên Soạn: ThS. Nguyễn Thúy Loan
  • 2. KỸ THUẬT LẬP TRÌNH Ấn bản 2013
  • 3. MỤC LỤC I MỤC LỤC MỤC LỤC .................................................................................................................. I HƯỚNG DẪN ........................................................................................................... IV BÀI 1: MẢNG MỘT CHIỀU ............................................................................................ 1 1.1 KHÁI NIỆM ..........................................................................................................1 1.1.1 Mảng một chiều .............................................................................................1 1.1.2 Cách khai báo mảng một chiều.........................................................................2 1.1.3 Truy cập vào các phần tử của mảng..................................................................3 1.1.4 Nhập dữ liệu cho mảng một chiều.....................................................................4 1.1.5 Xuất dữ liệu cho mảng một chiều......................................................................6 1.1.6 Một vài thuật toán trên mảng một chiều ............................................................7 1.2 CHUỖI KÝ TỰ (MẢNG MỘT CHIỀU CÁC KÝ TỰ)............................................................9 1.2.1 Ký tự (character) ...........................................................................................9 1.2.2 Chuỗi ......................................................................................................... 11 1.2.3 Các thao tác trên chuỗi ký tự ......................................................................... 13 1.2.4 Một số hàm xử lý chuỗi (trong < string.h>)...................................................... 13 TÓM TẮT ................................................................................................................ 21 CÂU HỎI ÔN TẬP...................................................................................................... 21 BÀI 2: MẢNG HAI CHIỀU ........................................................................................... 23 2.1 KHÁI NIỆM ........................................................................................................ 23 2.2 CÁCH KHAI BÁO MẢNG HAI CHIỀU......................................................................... 23 2.2.1 Cú pháp...................................................................................................... 23 2.2.2 Ví dụ .......................................................................................................... 24 2.2.3 Truy cập vào các phần tử của mảng................................................................ 24 2.3 NHẬP DỮ LIỆU CHO MẢNG HAI CHIỀU .................................................................... 25 2.3.1 Nhập dữ liệu cho mảng hai chiều các số nguyên ............................................... 25 2.3.2 Nhập dữ liệu cho mảng hai chiều các số thực.................................................... 27 2.4 XUẤT DỮ LIỆU CHO MẢNG HAI CHIỀU .................................................................... 28 2.4.1 Xuất dữ liệu cho mảng hai chiều các số nguyên ................................................ 28 2.4.2 Xuất dữ liệu cho mảng hai chiều các số thực .................................................... 30 2.5 MỘT VÀI THUẬT TOÁN TRÊN MẢNG HAI CHIỀU ........................................................ 32 2.5.1 Bài toán 1 ................................................................................................... 32 2.5.2 Bài toán 2 ................................................................................................... 33 TÓM TẮT ................................................................................................................ 34 CÂU HỎI ÔN TẬP...................................................................................................... 35 BÀI 3: KIỂU DỮ LIỆU CÓ CẤU TRÚC........................................................................... 36 3.1 KHÁI NIỆM ........................................................................................................ 36 3.2 CÁCH KHAI BÁO KIỂU CẤU TRÚC........................................................................... 37 3.2.1 Cú pháp...................................................................................................... 37 3.2.2 Ví dụ 1 ....................................................................................................... 37 3.2.3 Ví dụ 2 ....................................................................................................... 38 3.2.4 Ví dụ 3 ....................................................................................................... 38 3.3 TRUY CẬP VÀO TỪNG PHẦN TỬ CỦA CẤU TRÚC ........................................................ 39 3.3.1 Cú pháp...................................................................................................... 39 3.3.2 Ví dụ 1 ....................................................................................................... 39
  • 4. II MỤC LỤC 3.3.3 Ví dụ 2 ....................................................................................................... 39 3.4 NHẬP DỮ LIỆU CHO KIỂU DỮ LIỆU CÓ CẤU TRÚC ..................................................... 40 3.4.1 Nhập dữ liệu cho một phân số........................................................................ 40 3.4.2 Nhập vào điểm của một sinh viên ................................................................... 41 3.5 XUẤT DỮ LIỆU.................................................................................................... 42 3.5.1 Xuất dữ liệu cho một phân số......................................................................... 42 3.5.2 Xuất dữ liệu điểm......................................................................................... 42 3.6 MẢNG CẤU TRÚC................................................................................................ 42 3.6.1 Bài toán 1 ................................................................................................... 42 3.6.2 Bài toán 2 ................................................................................................... 44 3.7 MỘT VÀI GIẢI THUẬT TRÊN MẢNG CẤU TRÚC .......................................................... 44 3.7.1 Bài toán 1 ................................................................................................... 44 3.7.2 Bài toán 2 ................................................................................................... 44 TÓM TẮT ................................................................................................................ 45 CÂU HỎI ÔN TẬP ..................................................................................................... 45 BÀI 4: KIỂU CON TRỎ................................................................................................ 47 4.1 KHÁI NIỆM VỀ ĐỊA CHỈ Ô NHỚ VÀ CON TRỎ ............................................................ 47 4.2 KHAI BÁO VÀ SỬ DỤNG BIẾN CON TRỎ .................................................................. 48 4.2.1 Khai báo biến con trỏ.................................................................................... 48 4.2.2 Các thao tác trên con trỏ............................................................................... 48 4.3 CÁC PHÉP TOÁN TRÊN CON TRỎ............................................................................ 51 4.3.1 Phép gán .................................................................................................... 51 4.3.2 Phép tăng giảm địa chỉ.................................................................................. 52 4.3.3 Phép truy nhập bộ nhớ.................................................................................. 52 4.3.4 Phép so sánh............................................................................................... 53 4.4 SỬ DỤNG CON TRỎ ĐỂ CẤP PHÁT VÀ THU HỒI BỘ NHỚ ĐỘNG.................................... 53 4.4.1 Các hàm cấp phát vùng nhớ .......................................................................... 54 4.4.2 Toán tử thu hồi bộ nhớ động.......................................................................... 56 4.4.3 Toán tử sizeof: ............................................................................................ 56 4.5 CON TRỎ VÀ MẢNG MỘT CHIỀU ............................................................................ 57 4.5.1 Truy cập các phần tử mảng theo dạng con trỏ .................................................. 57 4.5.2 Truy cập từng phần tử đang được quản lý bởi con trỏ theo dạng mảng................. 58 4.6 CON TRỎ VÀ MẢNG HAI CHIỀU ............................................................................. 62 4.6.1 Bài toán 2 ................................................................................................... 62 4.6.2 Cách 1........................................................................................................ 63 4.6.3 Cách 2........................................................................................................ 66 4.7 CON TRỎ VỚI KIỂU DỮ LIỆU CÓ CẤU TRÚC (STRUCT ) .............................................. 69 4.7.1 Ví dụ 1 ....................................................................................................... 69 4.7.2 Ví dụ 2 ....................................................................................................... 70 4.7.3 Truyền structure sang hàm............................................................................ 71 TÓM TẮT ................................................................................................................ 73 CÂU HỎI ÔN TẬP ..................................................................................................... 73 BÀI 5: ĐỆ QUY........................................................................................................... 77 5.1 KHÁI NIỆM ........................................................................................................ 77 5.2 PHÂN LOẠI HÀM ĐỆ QUY...................................................................................... 79 5.2.1 Đệ qui tuyến tính ......................................................................................... 79 5.2.2 Đệ qui nhị phân ........................................................................................... 81 5.2.3 Đệ qui phi tuyến .......................................................................................... 82 5.2.4 Đệ qui Hỗ Tương .......................................................................................... 83 5.3 KỸ THUẬT GIẢI BÀI TOÁN BẰNG ĐỆ QUY ................................................................ 84 5.3.1 Một số bài toán kinh điển dùng phương pháp đệ quy ......................................... 85
  • 5. MỤC LỤC III 5.4 NHẬN XÉT ......................................................................................................... 87 5.5 CẤU TRÚC LẶP VÀ ĐỆ QUY.................................................................................... 88 TÓM TẮT ................................................................................................................ 88 CÂU HỎI ÔN TẬP...................................................................................................... 89 BÀI 6: TẬP TIN (FILE)............................................................................................... 90 6.1 KHÁI NIỆM ........................................................................................................ 90 6.2 CÁC THAO TÁC TRÊN TẬP TIN ............................................................................... 91 6.2.1 Khai báo biến tập tin..................................................................................... 91 6.2.2 Mở tập tin ................................................................................................... 92 6.2.3 Đóng tập tin ................................................................................................ 93 6.2.4 Kiểm tra đến cuối tập tin hay chưa? ................................................................ 93 6.2.5 Di chuyển con trỏ tập tin về đầu tập tin - Hàm rewind() ..................................... 93 6.3 TRUY CẬP TẬP TIN VĂN BẢN ................................................................................. 94 6.3.1 Ghi dữ liệu lên tập tin văn bản ....................................................................... 94 6.3.2 Đọc dữ liệu từ tập tin văn bản ........................................................................ 95 6.4 TRUY CẬP TẬP TIN NHỊ PHÂN................................................................................ 98 6.4.1 Ghi dữ liệu lên tập tin nhị phân - Hàm fwrite() .................................................. 98 6.4.2 Đọc dữ liệu từ tập tin nhị phân - Hàm fread() ................................................... 98 6.4.3 Di chuyển con trỏ tập tin - Hàm fseek() ........................................................... 98 TÓM TẮT .............................................................................................................. 105 CÂU HỎI ÔN TẬP.................................................................................................... 105 TÀI LIỆU THAM KHẢO ............................................................................................. 108
  • 6. IV HƯỚNG DẪN HƯỚNG DẪN MÔ TẢ MÔN HỌC Môn Kỹ Thuật Lập Trình cung cấp cho sinh viên những kiến thức cơ bản và nâng cao về lập trình thông qua ngôn ngữ lập trình C. Môn học này là nền tảng để tiếp thu hầu hết các môn học khác trong chương trình đào tạo. Mặt khác, nắm vững môn này là cơ sở để phát triển tư duy và kỹ năng lập trình để giải các bài toán và các ứng dụng trong thưc tế. Học xong môn này, sinh viên phải nắm được các vấn đề sau: - Khái niệm về ngôn ngữ lập trình - Khái niệm về kiểu dữ liệu - Tổng quan về Ngôn ngữ lập trình C - Các kiểu dữ liệu trong C - Các lệnh có cấu trúc - Cách thiết kế và sử dụng các hàm trong C - Một số cấu trúc dữ liệu trong C - Xử lý các bài toán trên mảng một chiều - Xử lý các bài toán trên mảng hai chiều - Kỹ thuật dùng con trỏ - Biết kỹ thuật viết đệ quy và khử đệ qui - Biết xây dựng và xử lý các bài toán trên dữ liệu có cấu trúc do người dùng định nghĩa - Cách lưu trữ và xử lý các file trong C - Tìm hiểu và cài đặt một số bài toán kinh điển như “Tháp Hà Nội“ ,“Bài toán mã đi tuần”, “bài toán tám hậu” bằng phương pháp đệ quy hay đệ quy quay lui, Phương pháp sinh dữ liệu
  • 7. HƯỚNG DẪN V NỘI DUNG MÔN HỌC  Bài 1. Mảng một chiều: Bài này cung cấp cho học viên khái niệm về mảng một chiều, cách nhập, xuất, lưu trữ trên mảng một chiều với các dữ liệu kiểu số và kiểu chuỗi, xử lý các bài toán như tính tổng các giá trị trên mảng một chiều các số nguyên, số thực, tìm phần tử nhỏ nhất, lớn nhất, thêm, xóa, sắp xếp các phần tử trên mảng dữ liệu kiểu số, xử lý các bài toán trên dữ liệu kiểu chuỗi.  Bài 2. Mảng hai chiều: Bài này cung cấp cho học viên khái niệm về mảng hai chiều, cách nhập, xuất, lưu trữ trên mảng hai chiều, xử lý các bài toán như tính tổng các giá trị trên mảng số nguyên, số thực, tìm phần tử nhỏ nhất, lớn nhất, sắp xếp các phần tử trên mảng dữ liệu kiểu số, kiểu chuỗi.  Bài 3. Kiểu dữ liệu có cấu trúc: Bài này cung cấp cho học viên khái niệm cơ bản về kiểu dữ liệu có cấu trúc do người dùng định nghĩa. Biết Nhập Xuất dữ liệu có cấu trúc cho một phần tử. Biết Nhập, Xuất dữ liệu có cấu trúc và lưu trên mảng một chiều. Cách tìm kiếm và sắp xếp dữ liệu trên mảng một chiều với từng thành phần của dữ liệu. Đi sâu vào các giải thuật trên mảng một chiều như tìm kiếm, sắp xếp, thêm phần tử, xóa phần tử...  Bài 4. Kiểu con trỏ: Bài này cung cấp cho học viên khái niệm cơ bản về kiểu dữ liệu con trỏ, cách khai báo và sử dụng biến kiểu con trỏ. Mảng và các phép toán trên mảng một chiều theo kiểu con trỏ. Mảng và các phép toán trên mảng hai chiều theo kiểu con trỏ. Đi sâu vào các giải thuật trên mảng 1 chiều, 2 chiều như tìm kiếm, sắp xếp, thêm phần tử, xóa phần tử... theo kiểu con trỏ. Con trỏ với kiểu dữ liệu có cấu trúc  Bài 5. Đệ quy: Bài này cung cấp cho học viên khái niệm cơ bản về kiểu lập trình bằng phương pháp đệ quy, các kiểu đệ quy. Ưu điểm và nhược điểm khi cài đặt hàm bằng phương pháp đệ quy. Giải quyết một số bài toán kinh điển bằng phương pháp đệ quy. Xử lý các giải thuật trên mảng 1 chiều bằng phương pháp đệ quy  Bài 6. Tập tin: Bài này cung cấp cho học viên một số khái niệm về tập tin. Các bước thao tác với tập tin. Thao tác trên tập tin văn bản. Thao tác trên tập tin nhị phân.
  • 8. VI HƯỚNG DẪN KIẾN THỨC TIỀN ĐỀ Môn học Kỹ Thuật Lập Trình yêu cầu sinh viên phải có nền tảng của môn lập trình cơ bản, có tư duy toán học tốt. YÊU CẦU MÔN HỌC Người học phải dự học đầy đủ các buổi lên lớp và làm bài tập đầy đủ ở nhà. CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC Để học tốt môn này, người học cần ôn tập các bài đã học, trả lời các câu hỏi và làm đầy đủ bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bài học. Đối với mỗi bài học, người học đọc trước mục tiêu và tóm tắt bài học, sau đó đọc nội dung bài học. Kết thúc mỗi ý của bài học, người đọc trả lời câu hỏi ôn tập và kết thúc toàn bộ bài học, người đọc làm các bài tập. PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC Môn học được đánh giá gồm:  Điểm quá trình: 30%. Thi thực hành trên máy. Hình thức và nội dung do GV quyết định, phù hợp với quy chế đào tạo và tình hình thực tế tại nơi tổ chức học tập.  Điểm thi: 70%. Hình thức bài thi tự luận trong 90 phút. Nội dung gồm các bài tập thuộc bài thứ 1 đến bài thứ 6.
  • 9. BÀI 1: MẢNG MỘT CHIỀU 1 BÀI 1: MẢNG MỘT CHIỀU Sau khi học xong bài này, học viên có thể:  Khái niệm về kiểu dữ liệu mảng cũng như ứng dụng của nó;  Cách khai báo biến kiểu mảng và các phép toán trên các phần tử của mảng;  Đi sâu vào các giải thuật trên mảng 1 chiều như tìm kiếm, sắp xếp, thêm phần tử, xóa phần tử... 1.1 KHÁI NIỆM 1.1.1 Mảng một chiều Mảng là một tập hợp các phần tử cố định có cùng một kiểu, gọi là kiểu phần tử. Kiểu phần tử có thể là có các kiểu bất kỳ: ký tự, số, chuỗi ký tự…; cũng có khi ta sử dụng kiểu mảng để làm kiểu phần tử cho một mảng (trong trường hợp này ta gọi là mảng của mảng hay mảng nhiều chiều). Ta có thể chia mảng làm 2 loại: mảng 1 chiều và mảng nhiều chiều. Mảng là kiểu dữ liệu được sử dụng rất thường xuyên. Chẳng hạn, người ta cần quản lý một danh sách họ và tên của khoảng 100 sinh viên trong một lớp. Nhận thấy rằng mỗi họ và tên để lưu trữ ta cần 1 biến kiểu chuỗi, như vậy 100 họ và tên thì cần khai báo 100 biến kiểu chuỗi. Nếu khai báo như thế này thì đoạn khai báo cũng như các thao tác trên các họ tên sẽ rất dài dòng và rắc rối. Vì thế, kiểu dữ liệu mảng giúp ích ta trong trường hợp này; chỉ cần khai báo 1 biến, biến này có thể coi như là tương đương với 100 biến chuỗi ký tự; đó là 1 mảng mà các phần tử của nó là chuỗi ký tự. Hay như để lưu trữ các từ khóa của ngôn ngữ lập trình C, ta cũng dùng đến một mảng để lưu trữ chúng. Kích thước của mảng là số phần tử của mảng. Kích thước này phải được biết ngay khi khai báo mảng. Nếu xét dưới góc độ toán học, mảng 1 chiều giống như một vector. Mỗi phần tử của mảng một chiều có giá trị không phải là một mảng khác.
  • 10. 2 BÀI 1: MẢNG MỘT CHIỀU 1.1.2 Cách khai báo mảng một chiều 1.1.2.1 Khai báo tường minh (số phần tử xác định) Cú pháp <kiểu cơ sở> <tên mảng> [<số phần tử >] Ý nghĩa: - Tên mảng: đây là một cái tên đặt đúng theo quy tắc đặt tên của danh biểu. Tên này cũng mang ý nghĩa là tên biến mảng. - Số phần tử: là một hằng số nguyên, cho biết số lượng phần tử tối đa trong mảng là bao nhiêu (hay nói khác đi nó là kích thước của mảng). - Kiểu cơ sở : là kiểu dữ liệu của mỗi phần tử của mảng. Ví dụ Khai báo mảng một chiều có tên là songuyen gồm10 phần tử và kiểu cơ sở là int int songuyen [10] ; Khai báo mảng một chiều có tên là sothuc gồm15 phần tử và kiểu cơ sở là float float sothuc [15] ; Khai báo mảng một chiều có tên là daykytu gồm30 phần tử và kiểu cơ sở là char char daykytu [30] ; 1.1.2.2 Khai báo không tường minh(số phần tử không xác định) Cú pháp <kiểu cơ sở> <tên mảng> [ ] Khi khai báo, không cho biết rõ số phần tử của mảng, kiểu khai báo này thường được áp dụng trong các trường hợp: vừa khai báo vừa gán giá trị, khai báo mảng là tham số hình thức của hàm.
  • 11. BÀI 1: MẢNG MỘT CHIỀU 3 Cách 1. Vừa khai báo vừa gán giá trị Cú pháp: <Kiểu> <Tên mảng> []= {Các giá trị cách nhau bởi dấu phẩy} Nếu vừa khai báo vừa gán giá trị thì mặc nhiên C sẽ hiểu số phần tử của mảng là số giá trị mà chúng ta gán cho mảng trong cặp dấu {}. Ví dụ : float x[6] = {12.1 , 7.23 , 5.0 , 27.6 , 87.9 , 9.31}; Chúng ta có thể sử dụng hàm sizeof() để lấy số phần tử của mảng như sau: Số phần tử=sizeof(tên mảng)/ sizeof(kiểu) Cách 2. Khai báo mảng là tham số hình thức của hàm, trong trường hợp này ta không cần chỉ định số phần tử của mảng là bao nhiêu. Ví dụ : void nhapmang ( int a[ ], int n ) 1.1.3 Truy cập vào các phần tử của mảng Mỗi phần tử của mảng được truy xuất thông qua Tên biến mảng theo sau là chỉ số nằm trong cặp dấu ngoặc vuông [ ]. Chẳng hạn a[0] là phần tử đầu tiên của mảng a được khai báo ở trên. Chỉ số của phần tử mảng là một biểu thức mà giá trị là kiểu số nguyên. Với cách truy xuất theo kiểu này, Tên biến mảng[Chỉ số] có thể coi như là một biến có kiểu dữ liệu là kiểu được chỉ ra trong khai báo biến mảng. Chỉ số của mảng có thể là một hằng, một biến hay một biểu thức đại số. Một phần tử của mảng là một biến có kiểu dữ liệu là kiểu cơ sở nên các thao tác trên các biến cũng được áp dụng trên các phần tử của mảng. Ví dụ Khai báo mảng số thực có 5 phần tử float a [5] ; Khi đó Mảng số thực trên có các phần tử là: a [0], a [1], a [2], a [3], a [4] và là những biến kiểu float Và ta có thể thực hiện các phép toán : float t=10.0;
  • 12. 4 BÀI 1: MẢNG MỘT CHIỀU int i=1; a [0]=4.2; a [2]=t; a [i ]=(a [0] +a [2])/2; printf("nGia tri : %f ", a[1]); scanf( "%f ",&a [4] ); t= a [4]; a [2*i+1]= a [2*i]+ a [2*i+2]; Ta có thể khởi gán giá trị cho mảng: float x[6] = {12.1 , 7.23 , 5.0 , 27.6 , 87.9 , 9.31}; khi đó : x[0]=12.1 , x[1]=7.23 , x[2]=5.0 , x[3]=27.6 , x[4]=87.9 , x[5]=9.31 1.1.4 Nhập dữ liệu cho mảng một chiều Khai báo mảng a để lưu trữ 100 phần tử là các số nguyên: int a [ 100 ] khi đó máy sẽ cấp phát 200 byte để lưu trữ mảng a Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ Vị trí 0 1 2 3 4 .... n-3 n-2 n-1 Giá trị a[ ] 7 3 9 4 5 .... 8 12 2 Tên phần tử a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1] Nhập dữ liệu cho các phần tử a [ 0 ] = 7 scanf ( ” %d” , & a[0 ] ); a [ 1 ] = 3 scanf ( ” %d” , & a[1 ] ); a [ 2 ] = 9 scanf ( ” %d” , & a[2 ] ); ................................................... a [ n-1 ] = 2 scanf ( ” %d” , & a[n-1 ] );
  • 13. BÀI 1: MẢNG MỘT CHIỀU 5 // Nhập từng phần tử của mảng for ( int i =0 ; i<n ; i++) { printf ( “ nhap a[%d] : “ , i ) ; scanf ( “ %d ”, & a[ i ] ); } 2. Khai báo mảng a để lưu trữ 100 phần tử là các số thực a: float a [ 100 ]. Khi đó máy sẽ cấp phát 400 byte để lưu trữ mảng a. Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ Vị trí 0 1 2 3 4 .... n-3 n-2 n-1 Giá trị a[ ] 7.1 3.2 9.0 4.3 5.4 .... 8.0 12.0 2.1 Tên phần tử a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1] Nhập dữ liệu cho các phần tử a [ 0 ] = 7.1 scanf ( ” %f ” , & a[0 ] ); a [ 1 ] = 3.2 scanf ( ” %f ” , & a[1 ] ); a [ 2 ] = 9.0 scanf ( ” %f ” , & a[2 ] ); ................................................... a [ n-1 ] = 2.1 scanf ( ” %f ” , & a[n-1 ] ); // Nhập từng phần tử của mảng for ( int i =0 ; i<n ; i++) { printf ( “ nhap a[%d] : “ , i ) ; scanf ( “ %f ”, & a[ i ] ); }
  • 14. 6 BÀI 1: MẢNG MỘT CHIỀU 1.1.5 Xuất dữ liệu cho mảng một chiều Khai báo mảng a để lưu trữ 100 phần tử là các số nguyên: int a [ 100 ], khi đó máy sẽ cấp phát 200 byte để lưu trữ mảng a. Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ Vị trí 0 1 2 3 4 .... n-3 n-2 n-1 Giá trị a[ ] 7 3 9 4 5 .... 8 12 2 Tên phần tử a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1] Xuất dữ liệu cho từng phần tử a [ 0 ] = 7 printf ( ” % 4d” , a[0 ] ); a [ 1 ] = 3 printf ( ” % 4d” , a[1 ] ); a [ 2 ] = 9 printf ( ” % 4d” , a[2 ] ); a [ 3 ] = 4 printf ( ” % 4d” , a[3 ] ); ................................................... a [ n-1 ] = 2 printf ( ” % 4d” , a[n-1 ] ); // Xuất từng phần tử của mảng for ( int i =0 ; i<n ; i++) { printf ( “ % 4d ”, a[ i ] ) ; } Khai báo mảng a để lưu trữ 100 phần tử là các số thực a: float a [ 100 ]. Khi đó máy sẽ cấp phát 400 byte để lưu trữ mảng a
  • 15. BÀI 1: MẢNG MỘT CHIỀU 7 Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ Vị trí 0 1 2 3 4 .... n-3 n-2 n-1 Giá trị a[ ] 7.1 3.2 9.0 4.3 5.4 .... 8.0 12.0 2.1 Tên phần tử a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1] Xuất dữ liệu cho các phần tử a [ 0 ] = 7.1 printf ( ” % .1 f ” , a[0 ] ); a [ 1 ] = 3.2 printf ( ” % .1 f ” , a[1 ] ); a [ 2 ] = 9.0 printf ( ” % .1 f ” , a[2 ] ); ................................................... a [ n-1 ] = 2.1 printf ( ” %.1 f ” , a[n-1 ] ); // Xuất từng phần tử của mảng for ( int i =0 ; i<n ; i++) { printf ( “ % .1 f ”, a[ i ] ); } 1.1.6 Một vài thuật toán trên mảng một chiều Bài toán 1 : Tính tổng các phần tử trong mảng một chiều các số nguyên. Khai báo mảng a để lưu trữ 100 phần tử là các số nguyên: int a [ 100 ] Khi đó máy sẽ cấp phát 200 byte để lưu trữ mảng a
  • 16. 8 BÀI 1: MẢNG MỘT CHIỀU Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ Vị trí 0 1 2 3 4 .... n-3 n-2 n-1 Giá trị a[ ] 7 3 9 4 5 .... 8 12 2 Tên phần tử a[0] a[1] a[2] a[3] a[4] .... a[n-3] a[n-2] a[n-1] Tính tổng : khai báo một biến s để lưu trữ tổng S = a[0] + a[1] + a[2] + …. + a[n - 1] Giải thuật : Đi từ đầu mảng đến cuối mảng for ( int i= 0 ; i<n ; i++ ) Cộng dồn các phần tử a[i] vào biến s S= S + a[i] ; Hàm cài đặt long tinhtong ( int a[ ] , int n ) { long s =0 ; for ( int i = 0 ; i<n ; i++ ) s=s+ a[i] ; return s; } Bài toán 2 : Tìm phần tử âm đầu tiên có trong mảng một chiều các số nguyên. Hình ảnh mảng a gồm n phần tử được lưu trong bộ nhớ Vị trí 0 1 2 3 4 .... n-3 n-2 n-1 A[ ] 7 3 -9 4 5 .... 8 12 2
  • 17. BÀI 1: MẢNG MỘT CHIỀU 9 Giải thuật : Đi từ đầu mảng đến cuối mảng for ( int i= 0 ; i<n ; i++ ) Kiểm tra phần tử a[i] < 0 đầu tiên if ( a[i] < 0 ) Nếu gặp thì xuất giá trị a[i] và dừng . return a[i] ; Hàm cài đặt int amdau ( int a[ ] , int n ) { for ( int i = 0 ; i<n ; i++ ) if ( a[i] < 0 ) return a[i] ; return 1; } 1.2 CHUỖI KÝ TỰ (MẢNG MỘT CHIỀU CÁC KÝ TỰ) 1.2.1 Ký tự (character) 1.2.1.1 Khái niệm 1. Ký tự “ in được ” gồm : - 26 chữ thường (’a’, ’b’, ’c’, ...’z’), - 26 chữ hoa (’A’, ’B’,’C’....’Z’), - 10 chữ số (’0’, ’1’, ’2’, ’3’,....’9’), - Khoảng trắng, các ký tự:! “ # $ % & ‘ ( ) * + , - . / : ; < = > ? @ [ ] ^ _ { | } ~
  • 18. 10 BÀI 1: MẢNG MỘT CHIỀU 2. Các ký tự “ không in được ”: - tab, lert (bell), newline, formfeed,... 3. Các ký tự “ in được ” đặc biệt: - ‘’, ‘’’, ‘”’ 4. Các ký tự “không in được” đặc biệt: - n new line - a bell - 0 null character - b backspace - thorizontal tab 1.2.1.2 Nhập ký tự 1. Hàm scanf : sử dụng thư viện <stdio.h> Ví dụ : char ch; scanf(“%c”, &ch); 2. Hàm getch : nhận một ký tự từ bộ đệm bàn phím và không cho hiện ký tự này lên màn hình. Cú pháp : int getch (void) Hàm trả về ký tự nhận được. ch = getch (); Nếu ký tự có sẵn trong bộ đệm bàn phím thì hàm nhận một ký tự trong đó. Nếu bộ đệm rỗng thì máy tạm dừng cho đến khi ta gõ vào một ký tự. Ký tự gõ vào sẽ nhận được ngay, không cần phải gõ phím enter và ký tự không được hiển thị lên màn hình. 3. Hàm getche : nhận một ký tự từ bộ đệm bàn phím và cho hiển thị ký tự này lên màn hình. Cú pháp : int getche(void) Hàm này có công dụng giống như hàm getch, nhưng cho hiển thị ký tự nhập vào lên màn hình. ch = getchar();
  • 19. BÀI 1: MẢNG MỘT CHIỀU 11 1.2.1.3 Xuất ký tự: 1. Hàm putch : xuất một ký tự ra cửa sổ văn bản màn hình. Cú pháp : int putch (int ch) khai báo thư viện < string.h > Đối số ch chứa ký tự cần hiển thị. Hàm có công dụng xuất ký tự ch lên cửa sổ văn bản màn hình. Ký tự sẽ được hiển thị theo màu xác định trong hàm textcolor. Hàm trả về ký tự đã hiển thị. 2. printf ( “ %c”, ch ) Hàm có công dụng xuất ký tự ch lên cửa sổ văn bản màn hình. khai báo thư viện < stdio.h > 3. putc (ch) Hàm có công dụng xuất ký tự ch lên cửa sổ văn bản màn hình. khai báo thư viện < string.h > 1.2.2 Chuỗi 1.2.2.1 Khái niệm Chuỗi là một dãy ký tự dùng để lưu trữ và xử lý văn bản như từ, tên, câu. Trong ngôn ngữ C không có kiểu chuỗi và chuỗi được thể hiện bằng mảng các ký tự (có kiểu cơ sở char), được kết thúc bằng ký tự ‘0’ (còn được gọi là ký tự NULL trong bảng mã Ascii ). Các hằng chuỗi ký tự được đặt trong cặp dấu nháy kép “ ”. Chú ý: Chuỗi được khai báo là một mảng các ký tự nên các thao tác trên mảng có thể áp dụng đối với chuỗi ký tự. 1.2.2.2 Cách khai báo chuỗi 1. Khai báo chuỗi : Cú pháp : char < tên biến > [ chiều dài tối đa chuỗi ]
  • 20. 12 BÀI 1: MẢNG MỘT CHIỀU Ví dụ : char Hoten [20]; Khai báo như trên là khai báo 1 chuỗi chứa tối đa 19 ký tự (còn 1 ký tự cuối của chuỗi chứa NULL) 2. Vừa khai báo vừa gán giá trị : Cú pháp: char <Biến> []=<”Hằng chuỗi”> Ví dụ : char chuỗi [ ] = “ Kỹ thuật lập trình “ . char chuoi [50]= ”CONG HOA XA HOI CHU NGHIA VIET NAM”; char name []= {‘K’,’C’,’N’,’T’,’T’,’0’}; char ten[10]={‘h’,’o’,’a’,’h’,’o’,’n’,’g’,’0’}; khi đó : ten[0]= ‘h’; ten[1]= ‘o’; ten[2]= ‘a’; ten[3]= ‘h’; ten[4]= ‘o’; ten[5]= ‘n’; ten[6]= ‘g’; ten[7]= 0’; 1.2.2.3 Lỗi khi tạo một chuỗi 1. Chú ý: Không :sử dụng toán tử gán = để chép nội dung của một chuỗi sang chuỗi khác. Char a[4]=“hi”; char b[4]; b = a; //??? 2. Không:dùng toán tử == để so sánh nội dung hai chuỗi char a[]=“hi”; char b[] = “there”; if(a==b) //??? { } 3. Phép gán trong kiểu dữ liệu chuỗi như thế này là sai Char ten[10]; ten = “hoahong”