Ngôn ngữ lập trình hệ thống

Một chương trình viết trong ngôn ngữ C là một dãy các hàm, trong đó có một hàm chính ( hàm main() ). Hàm chia các bài toán lớn thành các công việc nhỏ hơn, giúp thực hiện những công việc lặp lại nào đó một cách nhanh chóng mà không phải viết lại đoạn chương trình. Thứ tự các hàm trong chương trình là bất kỳ, song chương trình bao giờ cũng đi thực hiện từ hàm main().

6.1. Cơ sở :

 Hàm có thể xem là một đơn vị độc lập của chương trình. Các hàm có vai trò ngang nhau, vì vậy không có phép xây dựng một hàm bên trong các hàm khác.

 Xây dựng một hàm bao gồm: khai báo kiểu hàm, đặt tên hàm, khai báo các đối và đưa ra câu lệnh cần thiết để thực hiện yêu cầu đề ra cho hàm. Một hàm được viết theo mẫu sau :

 type tên hàm ( khai báo các đối )

 {

 Khai báo các biến cục bộ

 Các câu lệnh

 [return[biểu thức];]

 }

Dòng tiêu đề :

 Trong dòng đầu tiên của hàm chứa các thông tin về : kiểu hàm, tên hàm, kiểu và tên mỗi đối.

Ví dụ :

 float max3s(float a, float b, float c)

khai báo các đối có dạng :

Kiểu đối 1 tên đối 1, kiểu đối 2 tên đối 2,., kiểu đối n tên đối n

Thân hàm :

 Sau dòng tiêu đề là thân hàm. Thân hàm là nội dung chính của hàm bắt đầu và kết thúc bằng các dấu { }.

 Trong thân hàm chứa các câu lệnh cần thiết để thực hiện một yêu cầu nào đó đã đề ra cho hàm.

 Thân hàm có thể sử dụng một câu lệnh return, có thể dùng nhiều câu lệnh return ở các chỗ khác nhau, và cũng có thể không sử dụng câu lệnh này.

 Dạng tổng quát của nó là :

 return [biểu thức];

 Giá trị của biểu thức trong câu lệnh return sẽ được gán cho hàm.

Ví dụ :

 Xét bài toán : Tìm giá trị lớn nhất của ba số mà giá trị mà giá trị của chúng được đưa vào bàn phím.

 Xây dựng chương trình và tổ chức thành hai hàm : Hàm main() và hàm max3s. Nhiệm vụ của hàm max3s là tính giá trị lớn nhất của ba số đọc vào, giả sử là a,b,c. Nhiệm vụ của hàm main() là đọc ba giá trị vào từ bàn phím, rồi dùng hàm max3s để tính như trên, rồi đưa kết quả ra màn hình.

Chương trình được viết như sau :

#include "stdio.h"

float max3s(float a,float b,float c ); /* Nguyên mẫu hàm*/

main()

 {

 float x,y,z;

 printf("\n Vao ba so x,y,z:");

 scanf("%f%f%f",&x&y&z);

 printf("\n Max cua ba so x=%8.2f y=%8.2f z=%8.2f la : %8.2f",

 x,y,z,max3s(x,y,z));

 } /* Kết thúc hàm main*/

 

doc142 trang | Chuyên mục: Lập Trình | Chia sẻ: tuando | Lượt xem: 533 | Lượt tải: 1download
Tóm tắt nội dung Ngôn ngữ lập trình hệ thống, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
etmaxx()/2,getmaxy()/2,getmaxx(),getmaxy(),0);	
	setbkcolor(BLUE);
	setcolor(YELLOW);
	line(-getmaxx()/2,0,getmaxx()/2,0);
	line(0,-getmaxy()/2,0,getmaxy()/2,0);
	settextjustify(1,1);
	setcolor(WHITE);
	outtextxy(0,0,"(0,0)");
	for (i=-400;i<=400;++i)
	{
	x=floor(2*M_PI*i*TYLEX/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ạ :
	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.
	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 :
	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. 
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() 
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 
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
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 
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 :
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 :
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 .
Tính số gà, số chó .
Bài tập 9 :

File đính kèm:

  • docngon_ngu_lap_trinh_he_thong.doc
Tài liệu liên quan