Giáo trình Ngôn ngữ lập trình C - Nguyễn Hữu Tuấn

Mục lục

Giới thiệu

Ch-ơng 1

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

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

1.2. Từ khoá

1.3. Tên

1.4. Kiểu dữ liệu

1.4.1. Kiểu ký tự (char)

1.4.2. Kiểu nguyên

1.4.3. Kiểu dấu phảy động

1.5. Định nghĩa kiểu bằng TYPEDEF

1.5.1. Công dụng

1.5.2. Cách viết

1.6. Hằng

1.6.1. Tên hằng

1.6.2. Các loại hằng

1.6.2.1. Hằng int

1.6.2.2. Hằng long

1.6.2.3. Hằng int hệ 8

1.6.2.4. Hằng int hệ 16

1.6.2.5. Hằng ký tự

1.6.2.5. Hằng xâu ký tự

1.7. Biến

1.8. Mảng

Ch-ơng 2

Các lệnh vào ra

2.1. Thâm nhập vào th-viện chuẩn

2.2. Các hàm vào ra chuẩn - getchar() vàputchar()

2.2.1. Hàm getchar()

2.2.2. Hàm putchar()

2.2.3. Hàm getch()

136

2.2.4. Hàm putch()

2.3. Đ-a kết quả lên màn hình - hàm printf

2.4. Vào số liệu từ bàn phím - hàm scanf

2.5. Đ-a kết quả ra máy in

Ch-ơng 3

Biểu thức

3.1. Biểu thức

3.2. Lệnh gán vàbiểu thức

3.3. Các phép toán số học

3.4. Các phép toán quan hệ vàlogic

3.5. Phép toán tăng giảm

3.6. Thứ tự -u tiên các phép toán

3.7. Chuyển đổi kiểu giá trị

Ch-ơng 4

Cấu trúc cơ bản của ch-ơng trình

4.1. Lời chú thích

4.2. Lệnh vàkhối lệnh

4.2.1. Lệnh

4.2.2. Khối lệnh

4.3. Cấu trúc cơ bản của ch-ơng trình

4.4. Một số qui tắc cần nhớ khi viết ch-ơng trình

Ch-ơng 5

Cấu trúc điều khiển

5.1. Cấu trúc có điều kiện

5.1.1. Lệnh if-else

5.1.2. Lệnh else-if

5.2. Lệnh nhảy không điều kiện - toán tử goto

5.3. Cấu trúc rẽ nhánh - toán tử switch

5.4. Cấu trúc lặp

5.4.1. Cấu trúc lặp với toán tử while vàfor

5.4.1.1. Cấu trúc lặp với toán tử while

137

5.4.1.2. Cấu trúc lặp với toán tử for :

5.4.2. Chu trình do-while

5.5. Câu lệnh break

5.6. Câu lệnh continue

Ch-ơng 6

Hàm

6.1. Cơ sở

6.2. Hàm không cho các giá trị

6.3. Hàm đệ qui

6.3.3. Mở đầu

6.3.2. Các bài toán có thể dùng đệ qui

6.3.3. Cách xây dựng hàm đệ qui

6.3.4. Các ví dụ về dùng hàm đệ qui

6.4. Bộ tiền sử lý C

Ch-ơng 7

Con trỏ

7.1. Con trỏ vàđịa chỉ

7.2. Con trỏ vàmảng một chiều

7.2.1.Phép toán lấy địa chỉ

7.2.2. Tên mảng làmột hằng địa chỉ

7.2.3. Con trỏ trỏ tới các phần tử của mảng một chiều

7.2.4. Mảng, con trỏ vàxâu ký tự

7.3. Con trỏ vàmảng nhiều chiều

7.3.1.Phép lấy địa chỉ

7.3.2. Phép cộng địa chỉ trong mảng hai chiều

7.3.3. Con trỏ vàmảng hai chiều

7.4. Kiểu con trỏ kiểu địa chỉ, các phép toán trên con trỏ

7.4.1. Kiểu con trỏ vàkiểu địa chỉ

7.4.2. Các phép toán trên con trỏ

7.4.3. Con trỏ kiểu void

7.5. Mảng con trỏ

7.6. Con trỏ tới hàm

138

7.6.1. Cách khai báo con trỏ hàm vàmảng con trỏ hàm

7.6.2. Tác dụng của con trỏ hàm

7.6.3. Đối của con trỏ hàm

Ch-ơng 8

Cấu trúc

8.1. Kiểu cấu trúc

8.2. Khai báo theo một kiểu cấu trúc đã định nghĩa

8.3. Truy nhập đến các thành phần cấu trúc

8.4. Mảng cấu trúc

8.5. Khởi đầu một cấu trúc

8.6. Phép gán cấu trúc

8.7. Con trỏ cấu trúc vàđịa chỉ cấu trúc

8.7.1. Con trỏ vàđịa chỉ

8.7.2. Truy nhập qua con trỏ

8.7.3. Phép gán qua con trỏ

8.7.4. Phép cộng địa chỉ

8.7.5. Con trỏ vàmảng

8.8. Cấu trúc tự trỏ vàdanh sách liên kết

Ch-ơng 9

Tập tin - file

9.1. Khái niệm về tệp tin

9.2. Khai báo sử dụng tệp - một số hàm th-ờng dùng khi thao tác trên tệp

9.2.1. Khai báo sử dụng tệp

9.2.2. Mở tệp - hàm fopen

9.2.3. Đóng tệp - hàm fclose

9.2.4. Đóng tất cả các tệp đang mở- hàm fcloseall

9.2.5. Làm sạch vùng đệm - hàm fflush

9.2.6. Làm sạch vùng đệm của các tệp đang mở - hàm fflushall

9.2.7. Kiểm tra lỗi file - hàm ferror

9.2.8. Kiểmtra cuối tệp - hàm feof

9.2.9. Truy nhập ngẫu nhiên - các hàm di chuyên con trỏ chỉ vị

9.2.9.1. Chuyển con trỏ chỉ vị về đầu tệp - Hàm rewind

139

9.2.9.2. Chuyển con trỏ chỉ vị trí cần thiết - Hàm fseek

9.2.9.3. Vị trí hiện tại cuẩ con trỏ chỉ vị - Hàm ftell

9.2.10. Ghi các mẫu tin lên tệp - hàm fwrite

9.2.11. Đọc các mẫu tin từ tệp - hàm fread

9.2.12. Nhập xuất ký tự

9.2.12.1. Các hàm putc vàfputc

9.2.12.2. Các hàm getc vàfgettc

9.2.13. Xoá tệp - hàm unlink

Ch-ơng 10

Đồ hoạ

10.1. Khởi động đồ hoạ

10.2. Các hàm đồ hoạ

10.2.1. Mẫu vàmàu

10.2.2. Vẽ vàtô màu

10.2.3. Vẽ đ-ờng gấp khúc vàđa giác

10.2.4. Vẽ điểm, miền

10.2.5. Hình chữ nhật

10.2.6. Cửa sổ (Viewport)

10.3. Sử lý văn bản trên màn hình đồ hoạ

pdf142 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 1713 | Lượt tải: 2download
Tóm tắt nội dung Giáo trình Ngôn ngữ lập trình C - Nguyễn Hữu Tuấn, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
YLEX/200); 
 y=floor(sin(2*M_PI*i/200)*TYLEY); 
 putpixel(x,y,WHITE); 
 } 
 getch(); 
 closegraph(); 
 } 
10.3. Xử lý văn bản trên mμn hình đồ hoạ : 
• Hiển thị văn bản trên mμn hình đồ hoạ : 
132
 Hμm : 
 void outtext(char *s); 
cho hiện chuỗi ký tự ( do con trỏ s trỏ tới ) tại vị trí con trỏ đồ hoạ hiện thời. 
 Hμm : 
 void outtextxy(int x, int y,char *s); 
cho hiện chuỗi ký tự ( do con trỏ s trỏ tới ) tại vị trí (x,y). 
Ví dụ : 
 Hai cách viết d−ới đây : 
 outtextxy(50,50," Say HELLO"); 
vμ 
 moveto(50,50); 
 outtext(" Say HELLO"); 
cho cùng kết quả. 
• Sử dụng các Fonts chữ : 
 Các Fonts chữ nằm trong các tập tin *.CHR trên đĩa. Các Fonts nμy cho các kích th−ớc vμ 
kiểu chữ khác nhau, chúng sẽ đ−ợc hiển thị lên mμn hình bằng các hμm outtext vμ outtextxy. Để 
chọn vμ nạp Fonts ta dùng hμm : 
 void settextstyle(int font, int direction, int charsize); 
Tham số font để chọn kiểu chữ vμ nhận một trong các hằng sau : 
 DEFAULT_FONT=0 
 TRIPLEX_FONT=1 
 SMALL_FONT=2 
 SANS_SERIF_FONT=3 
 GOTHIC_FONT=4 
Tham số derection để chọn h−ớng chữ vμ nhận một trong các hằng sau : 
 HORIZ_DIR=0 văn bản hiển thị theo h−ớng nằm ngang từ trái qua phải. 
 VERT_DIR=1 văn bản hiển thị theo h−ớng thẳng đứng từ d−ới lên trên. 
Tham số charsize lμ hệ số phóng to của ký tự vμ có giá trị trong khoảng từ 1 đến 10. 
133
 Khi charsize=1, font hiển thị trong hình chữ nhật 8*8 pixel. 
 Khi charsize=2 font hiển thị trong hình chữ nhật 16*16 pixel. 
 ............ 
 Khi charsize=10, font hiển thị trong hình chữ nhật 80*80 pixel. 
Các giá trị do settextstyle lập ra sẽ giữ nguyên tới khi gọi một settextstyle mới. 
Ví dụ : 
 Các dòng lệnh : 
 settextstyle(3,VERT_DIR,2); 
 outtextxy(30,30,"GODS TRUST YOU"); 
sẽ hiển thị tại vị trí (30,30) dòng chữ GODS TRUST YOU theo chiều từ d−ới lên trên, font chữ 
chọn lμ SANS_SERIF_FONT vμ cỡ chữ lμ 2. 
• Đạt vị trí hiển thị của các xâu ký tự cho bởi outtext vμ outtextxy : 
 Hμm settextjustify cho phép chỉ định ra nơi hiển thị văn bản của outtext theo quan hệ với 
vị trí hiện tại của con chạy vμ của outtextxy theo quan hệ với toạ độ (x,y); 
 Hμm nμy có dạng sau : 
 void settextjustify(int horiz, int vert); 
Tham số horiz có thể lμ một trong các hằng số sau : 
 LEFT_TEXT=0 ( Văn bản xuất hiện bên phải con chạy). 
 CENTER_TEXT ( Chỉnh tâm văn bản theo vị trí con chạy). 
 RIGHT_TEXT (Văn bản xuất hiện bên trái con chạy). 
Tham số vert có thể lμ một trong các hằng số sau : 
 BOTTOM_TEXT=0 ( Văn bản xuất hiện phía trên con chạy). 
 CENTER_TEXT=1 ( Chỉnh tâm văn bản theo vị trí con chạy). 
 TOP_TEXT=2 ( Văn bản xuất hiện phía d−ới con chạy). 
Ví dụ : 
 settextjustify(1,1); 
 outtextxy(100,100,"ABC"); 
sẽ cho dòng chữ ABC trong đó điểm (100,100) sẽ nằm d−ới chữ B. 
• Bề rộng vμ chiều cao văn bản : 
Chiều cao : 
134
 Hμm : 
 textheight(char *s); 
cho chiều cao ( tính bằng pixel ) của chuỗi do con trỏ s trỏ tới. 
Ví dụ 1 : 
Với font bit map vμ hệ số phóng đại lμ 1 thì textheight("A") ch giá trị lμ 8. 
Ví dụ 2 : 
#include "stdio.h" 
#include "graphics.h" 
main() 
 { 
 int mh=mode=DETECT, y,size; 
 initgraph(mh,mode,"C:\\TC\\BGI"); 
 y=10; 
 settextjustify(0,0); 
 for (size=1;size<5;++size) 
 { 
 settextstyle(0,0,size); 
 outtextxy(0,y,"SACRIFICE"); 
 y+=textheight("SACRIFICE")+10; 
 } 
 getch(); 
 closegraph(); 
 } 
Bề rộng : 
 Hμm : 
 textwidth(char *s); 
cho bề rộng chuỗi ( tính theo pixel ) mμ con trỏ s trỏ tới dựa trên chiều dμi chuỗi, kích th−ớc font 
chữ, hệ số phóng đại. 
135
Mục lục 
Giới thiệu 
Ch−ơng 1 
Các khái niệm cơ bản 
1.1. Tập ký tự dùng trong ngôn ngữ C 
1.2. Từ khoá 
1.3. Tên 
1.4. Kiểu dữ liệu 
1.4.1. Kiểu ký tự (char) 
1.4.2. Kiểu nguyên 
1.4.3. Kiểu dấu phảy động 
1.5. Định nghĩa kiểu bằng TYPEDEF 
1.5.1. Công dụng 
1.5.2. Cách viết 
1.6. Hằng 
1.6.1. Tên hằng 
1.6.2. Các loại hằng 
1.6.2.1. Hằng int 
1.6.2.2. Hằng long 
1.6.2.3. Hằng int hệ 8 
1.6.2.4. Hằng int hệ 16 
1.6.2.5. Hằng ký tự 
1.6.2.5. Hằng xâu ký tự 
1.7. Biến 
1.8. Mảng 
Ch−ơng 2 
Các lệnh vμo ra 
2.1. Thâm nhập vμo th− viện chuẩn 
2.2. Các hμm vμo ra chuẩn - getchar() vμ putchar() 
2.2.1. Hμm getchar() 
2.2.2. Hμm putchar() 
2.2.3. Hμm getch() 
136
2.2.4. Hμm putch() 
2.3. Đ−a kết quả lên mμn hình - hμm printf 
2.4. Vμo số liệu từ bμn phím - hμm scanf 
2.5. Đ−a kết quả ra máy in 
Ch−ơng 3 
Biểu thức 
3.1. Biểu thức 
3.2. Lệnh gán vμ biểu thức 
3.3. Các phép toán số học 
3.4. Các phép toán quan hệ vμ logic 
3.5. Phép toán tăng giảm 
3.6. Thứ tự −u tiên các phép toán 
3.7. Chuyển đổi kiểu giá trị 
Ch−ơng 4 
Cấu trúc cơ bản của ch−ơng trình 
4.1. Lời chú thích 
4.2. Lệnh vμ khối lệnh 
4.2.1. Lệnh 
4.2.2. Khối lệnh 
4.3. Cấu trúc cơ bản của ch−ơng trình 
4.4. Một số qui tắc cần nhớ khi viết ch−ơng trình 
Ch−ơng 5 
Cấu trúc điều khiển 
5.1. Cấu trúc có điều kiện 
5.1.1. Lệnh if-else 
5.1.2. Lệnh else-if 
5.2. Lệnh nhảy không điều kiện - toán tử goto 
5.3. Cấu trúc rẽ nhánh - toán tử switch 
5.4. Cấu trúc lặp 
5.4.1. Cấu trúc lặp với toán tử while vμ for 
5.4.1.1. Cấu trúc lặp với toán tử while 
137
5.4.1.2. Cấu trúc lặp với toán tử for : 
5.4.2. Chu trình do-while 
5.5. Câu lệnh break 
5.6. Câu lệnh continue 
Ch−ơng 6 
Hμm 
6.1. Cơ sở 
6.2. Hμm không cho các giá trị 
6.3. Hμm đệ qui 
6.3.3. Mở đầu 
6.3.2. Các bμi toán có thể dùng đệ qui 
6.3.3. Cách xây dựng hμm đệ qui 
6.3.4. Các ví dụ về dùng hμm đệ qui 
6.4. Bộ tiền sử lý C 
Ch−ơng 7 
Con trỏ 
7.1. Con trỏ vμ địa chỉ 
7.2. Con trỏ vμ mảng một chiều 
7.2.1.Phép toán lấy địa chỉ 
7.2.2. Tên mảng lμ một hằng địa chỉ 
7.2.3. Con trỏ trỏ tới các phần tử của mảng một chiều 
7.2.4. Mảng, con trỏ vμ xâu ký tự 
7.3. Con trỏ vμ mảng nhiều chiều 
7.3.1.Phép lấy địa chỉ 
7.3.2. Phép cộng địa chỉ trong mảng hai chiều 
7.3.3. Con trỏ vμ mảng hai chiều 
7.4. Kiểu con trỏ kiểu địa chỉ, các phép toán trên con trỏ 
7.4.1. Kiểu con trỏ vμ kiểu địa chỉ 
7.4.2. Các phép toán trên con trỏ 
7.4.3. Con trỏ kiểu void 
7.5. Mảng con trỏ 
7.6. Con trỏ tới hμm 
138
7.6.1. Cách khai báo con trỏ hμm vμ mảng con trỏ hμm 
7.6.2. Tác dụng của con trỏ hμm 
7.6.3. Đối của con trỏ hμm 
Ch−ơng 8 
Cấu trúc 
8.1. Kiểu cấu trúc 
8.2. Khai báo theo một kiểu cấu trúc đã định nghĩa 
8.3. Truy nhập đến các thμnh phần cấu trúc 
8.4. Mảng cấu trúc 
8.5. Khởi đầu một cấu trúc 
8.6. Phép gán cấu trúc 
8.7. Con trỏ cấu trúc vμ địa chỉ cấu trúc 
8.7.1. Con trỏ vμ địa chỉ 
8.7.2. Truy nhập qua con trỏ 
8.7.3. Phép gán qua con trỏ 
8.7.4. Phép cộng địa chỉ 
8.7.5. Con trỏ vμ mảng 
8.8. Cấu trúc tự trỏ vμ danh sách liên kết 
Ch−ơng 9 
Tập tin - file 
9.1. Khái niệm về tệp tin 
9.2. Khai báo sử dụng tệp - một số hμm th−ờng dùng khi thao tác trên tệp 
9.2.1. Khai báo sử dụng tệp 
9.2.2. Mở tệp - hμm fopen 
9.2.3. Đóng tệp - hμm fclose 
9.2.4. Đóng tất cả các tệp đang mở- hμm fcloseall 
9.2.5. Lμm sạch vùng đệm - hμm fflush 
9.2.6. Lμm sạch vùng đệm của các tệp đang mở - hμm fflushall 
9.2.7. Kiểm tra lỗi file - hμm ferror 
9.2.8. Kiểmtra cuối tệp - hμm feof 
9.2.9. Truy nhập ngẫu nhiên - các hμm di chuyên con trỏ chỉ vị 
9.2.9.1. Chuyển con trỏ chỉ vị về đầu tệp - Hμm rewind 
139
9.2.9.2. Chuyển con trỏ chỉ vị trí cần thiết - Hμm fseek 
9.2.9.3. Vị trí hiện tại cuẩ con trỏ chỉ vị - Hμm ftell 
9.2.10. Ghi các mẫu tin lên tệp - hμm fwrite 
9.2.11. Đọc các mẫu tin từ tệp - hμm fread 
9.2.12. Nhập xuất ký tự 
9.2.12.1. Các hμm putc vμ fputc 
9.2.12.2. Các hμm getc vμ fgettc 
9.2.13. Xoá tệp - hμm unlink 
Ch−ơng 10 
Đồ hoạ 
10.1. Khởi động đồ hoạ 
10.2. Các hμm đồ hoạ 
10.2.1. Mẫu vμ mμu 
10.2.2. Vẽ vμ tô mμu 
10.2.3. Vẽ đ−ờng gấp khúc vμ đa giác 
10.2.4. Vẽ điểm, miền 
10.2.5. Hình chữ nhật 
10.2.6. Cửa sổ (Viewport) 
10.3. Sử lý văn bản trên mμn hình đồ hoạ 
 Bμi tập. 
Phần thứ nhất : Nhóm các bμi tập về tính toán,hμm vμ chu trình . 
Bμi tập 1 : 
Viết ch−ơng trình hiển thị tháp Pascal : 
140
tμi liệu tham khảo 
1. Các tμi liệu tiếng Việt : 
1.1. Ngô Trung Việt - Ngôn ngữ lập trình C vμ C++ - Bμi giảng- Bμi tập - Lời giải mẫu 
NXB giao thông vận tải 1995 
1.2. Viện tin học - Ngôn ngữ lập trình C 
 Hμ nội 1990 
1.3. Lê Văn Doanh - 101 thuật toán vμ ch−ơng trình bằng ngôn ngữ C 
2. Các tμi liệu tiếng Anh : 
2.1. B. Kernighan and D. Ritchie - The C programming language 
 Prentice Hall 1989 
2.2. Programmer's guide Borland C++ Version 4.0 
 Borland International, Inc 1993 
2.3. Bile - Nabaiyoti - TURBO C++ 
 The Waite Group's UNIX 1991 
 BμI tập 
 Ngôn ngữ lập trình C 
 Phần 1 : Nhóm các bμI tập về tính toán, hμm vμ chu trình . 
BμI tập 1 : 
Viết ch−ơng trình hiển thị tháp PASCAL : 
 1 
 121 
 12321 
 1234321 
 123454321 
 12345654321 
 1234567654321 
 123456787654321 
 12345678987654321 
Viết ch−ơng trình hiển thị tháp đảo ng−ợc. 
BμI tập 2 : 
141
Viết ch−ơng trình nhập ba số thực. Kiểm tra xem ba số đó có thể lμ chiều dμi của ba cạnh 
của một tam giác đ−ợc không? Nếu đ−ợc thì tính chu vi vμ diện tích tam giác đó. 
BμI tập 3 : 
Viết ch−ơng trình tính hμm số : 
 f(x) = K0 
 x 
 K1+ ----------------------------------------- 
 x 
K2 + ------------------------ 
 x 
 K3 + ---------------------- 
 x 
 K4 + --------------------- 
  
 x 
 Kn-1 + ------------- 
 Kn 
Bμi tập 4 : 
Viết ch−ơng trình tính tích hai ma trận C mxn = A mxn * B nxk . 
Bμi tập 5 : 
Viết ch−ơng trình nhập vμo một dãy số sau đó tách dãy nμy thμnh hai dãy chỉ chứa các 
số d−ơng vμ chỉ chứa các số âm. Tính tổng số phần tử của mỗi dãy sau đó sắp xếp để hai 
dãy có giá trị giảm dần. 
Bμi tập 6 : 
Viết ch−ơng trình nhập vμo một ma trận A nxm. Tìm giá trị cực đại vμ cực tiểu của các 
phần tử của mảng . 
Bμi tập 7 : 
 Trăm trâu,trăm cỏ 
 Trâu đứng ăn năm 
 Trâu nằm ăn ba 
 Lụ khụ trâu giμ 
 Ba con một bó. 
Tính số trâu mỗi loại . 
Bμi tập 8 : 
 Vừa gμ vừa chó 
 Bó lại cho tròn 
 Đúng ba sáu con 
 Một trăm chân chẵn . 
142
Tính số gμ, số chó . 
Bμi tập 9 : 

File đính kèm:

  • pdfGiáo trình Ngôn ngữ lập trình C - Nguyễn Hữu Tuấn.pdf
Tài liệu liên quan