Ngôn ngữ lập trình C - Chương 4: Cấu trúc cơ bản của chương trình

Các lời bình luận, các lời giải thích có thể đưa vào ở bất kỳ chỗ nào của

chương trình để cho chương trình dễ hiểu, dễ đọc hơn mà không làm ảnh hưởng đến

các phần khác. Lời giải thích được đặt giữa hai dấu /* và */.

Trong một chương trình cần ( và luôn luôn cần ) viết thêm những lời giải thích

để chương trình thêm rõ ràng, thêm dễ hiểu.

Ví dụ :

#include "stdio.h"

#include "string.h"

#include "alloc.h"

#include "process.h"

int main()

{

char *str;

/* Cấp phát bộ nhớ cho xâu ký tự */

if ((str = malloc(10)) == NULL)

{

printf("Not enough memory to allocate buffer\n");

exit(1); /* Kết thúc chương trình nếu thiếu bộ nhớ */

}

/* copy "Hello" vào xâu */

strcpy(str, "Hello");

/* Hiển thị xâu */

printf("String is %s\n", str);

pdf6 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 4044 | Lượt tải: 2download
Tóm tắt nội dung Ngôn ngữ lập trình C - Chương 4: Cấu trúc cơ bản của chương trình, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Chương 4: Cấu trúc cơ bản của chương trình 
36 
Chƣơng 4 
CẤU TRÚC CƠ BẢN CỦA CHƢƠNG TRÌNH 
4.1. Lời chú thích : 
 Các lời bình luận, các lời giải thích có thể đưa vào ở bất kỳ chỗ nào của 
chương trình để cho chương trình dễ hiểu, dễ đọc hơn mà không làm ảnh hưởng đến 
các phần khác. Lời giải thích được đặt giữa hai dấu /* và */. 
 Trong một chương trình cần ( và luôn luôn cần ) viết thêm những lời giải thích 
để chương trình thêm rõ ràng, thêm dễ hiểu. 
Ví dụ : 
#include "stdio.h" 
 #include "string.h" 
 #include "alloc.h" 
 #include "process.h" 
 int main() 
 { 
 char *str; 
 /* Cấp phát bộ nhớ cho xâu ký tự */ 
 if ((str = malloc(10)) == NULL) 
 { 
 printf("Not enough memory to allocate buffer\n"); 
 exit(1); /* Kết thúc chương trình nếu thiếu bộ nhớ */ 
 } 
 /* copy "Hello" vào xâu */ 
 strcpy(str, "Hello"); 
 /* Hiển thị xâu */ 
 printf("String is %s\n", str); 
Chương 4: Cấu trúc cơ bản của chương trình 
37 
 /* Giải phóng bộ nhớ */ 
 free(str); 
 return 0; 
 } 
4.2. Lệnh và khối lệnh : 
4.2.1. Lệnh : 
 Một biểu thức kiểu như x=0 hoặc ++i hoặc scanf(...) trở thành câu lệnh khi có 
đi kèm theo dấu ; 
Ví dụ : 
 x=0; 
 ++i; 
 scanf(...); 
 Trong chương trình C, dấu ; là dấu hiệu kết thúc câu lệnh. 
4.2.2. Khối lệnh : 
 Một dãy các câu lệnh được bao bởi các dấu { } gọi là một khối lệnh. Ví dụ : 
 { 
 a=2; 
 b=3; 
 printf("\n%6d%6d",a,b); 
 } 
 TURBO C xem khối lệnh cũng như một câu lệnh riêng lẻ. Nói cách khác, chỗ 
nào viết được một câu lệnh thì ở đó cũng có quyền đặt một khối lệnh. 
Khai báo ở đầu khối lệnh : 
 Các khai báo biến và mảng chẳng những có thể đặt ở đầu của một hàm mà còn 
có thể viết ở đầu khối lệnh : 
 { 
 int a,b,c[50]; 
Chương 4: Cấu trúc cơ bản của chương trình 
38 
 float x,y,z,t[20][30]; 
 a==b==3; 
 x=5.5; y=a*x; 
 z=b*x; 
 printf("\n y= %8.2f\n z=%8.2f",y,z); 
 } 
Sự lồng nhau của các khối lệnh và phạm vi hoạt động của các biến và mảng : 
 Bên trong một khối lệnh lại có thể viết lồng khối lệnh khác. Sự lồng nhau theo 
cách như vậy là không hạn chế. 
 Khi máy bắt đầu làm việc với một khối lệnh thì các biến và mảng khai báo bên 
trong nó mới được hình thành và được hình thành và được cấp phát bộ nhớ. Các biến 
này chỉ tồn tại trong thời gian máy làm việc bên trong khối lệnh và chúng lập tức biến 
mất ngay sau khi máy ra khỏi khối lệnh. Vậy : 
 Giá trị của một biến hay một mảng khai báo bên trong một khối lệnh không 
thể đưa ra sử dụng ở bất kỳ chỗ nào bên ngoài khối lệnh đó. 
 ở bất kỳ chỗ nào bên ngoài một khối lệnh ta không thể can thiệp đến các biến 
và các mảng được khai báo bên trong khối lệnh 
 Nếu bên trong một khối ta dùng một biến hay một mảng có tên là a thì điều 
này không làm thay đổi giá trị của một biến khác cũng có tên là a ( nếu có ) được 
dùng ở đâu đó bên ngoài khối lệnh này. 
 Nếu có một biến đã được khai báo ở ngoài một khối lệnh và không trùng tên 
với các biến khai báo bên trong khối lệnh này thì biến đó cũng có thể sử dụng cả bên 
trong cũng như bên ngoài khối lệnh. 
Ví dụ : 
 Xét đoạn chương trình sau : 
 { 
 int a=5,b=2; 
 { 
 int a=4; 
Chương 4: Cấu trúc cơ bản của chương trình 
39 
 b=a+b; 
 printf("\n a trong =%3d b=%3d",a,b); 
 } 
 printf("\n a ngoai =%3d b=%3d",a,b); 
 } 
 Khi đó đoạn chương trình sẽ in kết quả như sau : 
 a trong =4 b=6 
 a ngoài =5 b=6 
 Do tính chất biến a trong và ngoài khối lệnh. 
4.3. Cấu trúc cơ bản của chƣơng trình : 
 Cấu trúc chương trình và hàm là một trong các vấn đề quan trọng của C. Về 
hàm ta sẽ có một chương nói tỉ mỷ về nó. ở đây ta chỉ đưa ra một số qui tắc chung : 
 Hàm là một đơn vị độc lập của chương trình. Tính độc lập của hàm thể hiện ở 
hai điểm : 
 Không cho phép xây dựng một hàm bên trong các hàm khác. 
 Mỗi hàm có các biến, mảng .. riêng của nó và chúng chỉ được sử dụng nội bộ 
bên trong hàm. Nói cách khác hàm là đơn vị có tính chất khép kín. 
 Một chương trình bao gồm một hoặc nhiều hàm. Hàm main() là thành phần bắt 
buộc của chương trình. Chương trình bắt đầu thực hiện các câu lệnh đầu tiên của hàm 
main() và kết thúc khi gặp dấu } cuối cùng của hàm này. Khi chương trình làm việc, 
máy có thể chạy từ hàm này sang hàm khác. 
 Các chương trình C được tổ chức theo mẫu : 
 ..... 
 hàm 1 
 ..... 
 hàm 2 
 ..... 
 ..... 
 hàm n 
Chương 4: Cấu trúc cơ bản của chương trình 
40 
 Bên ngoài các hàm ở các vị trí (..... ) là chỗ đặt : các toán tử #include ... ( dùng 
để khai báo sử dụng các hàm chuẩn ), toán tử #define ... ( dùng để định nghĩa các 
hằng ), định nghĩa kiểu dữ liệu bằng typedef, khai báo các biến ngoài, mảng ngoài.... 
 Việc truyền dữ liệu và kết quả từ hàm này sang hàm khác được thực hiện theo 
một trong hai cách : 
 Sử dụng đối của hàm. 
 Sử dụng biến ngoài, mảng ngoài ... 
Vậy nói tóm lại cấu truc cơ bản của chương trình như sau : 
 Các #include 
 Các #define 
 Khai báo các đối tượng dữ liệu ngoài ( biến, mảng, cấu trúc vv..). 
 Khai báo nguyên mẫu các hàm. 
 Hàm main(). 
 Định nghĩa các hàm ( hàm main có thể đặt sau hoặc xen vào giữa các hàm 
khác ). 
Ví dụ : 
 Chương trình tính x lũy thừa y rỗi in ra máy in kết quả : 
#include "stdio.h" 
#include "math.h" 
main() 
 { 
 double x,y,z; 
 printf("\n Nhap x va y"); 
 scanf("%lf%lf",&x,&y); 
 z=pow(x,y); /* hàm lấy luỹ thừa y luỹ thừa x */ 
 fprintf(stdprn,"\n x= %8.2lf \n y=%8.2lf \n z=%8.2lf",x,y,z); 
 } 
4.4. Một số qui tắc cần nhớ khi viết chƣơng trình : 
Chương 4: Cấu trúc cơ bản của chương trình 
41 
Qui tắc đầu tiên cần nhớ là : 
 Mỗi câu lệnh có thể viết trên một hay nhiều dòng nhưng phải kết thúc 
 bằng dấu ; 
Qui tắc thứ hai là : 
 Các lời giải thích cần được đặt giữa các dấu /* và */ và có thể được 
viết 
 Trên một dòng 
 Trên nhiều dòng 
 Trên phần còn lại của dòng 
Qui tắc thứ ba là : 
 Trong chương trình, khi ta sử dụng các hàm chuẩn, ví dụ như printf(), 
getch() , ... mà các hàm này lại chứa trong file stdio.h trong thư mục của C, vì vậy ở 
đầu chương trình ta phải khai báo sử dụng ; 
 #include "stdio.h " 
Qui tắc thứ tƣ là : 
 Một chương trình có thể chỉ có một hàm chính ( hàm main() ) hoặc có 
thể có thêm vài hàm khác. 

File đính kèm:

  • pdfCHUONG_4.pdf