Nội dung
Tổng quan
Bộ chữ viết
Từ khóa
Định danh
Thư viện chuẩn C
Các hàm toán học cơ bản trong C
Cấu trúc một chương trình C
30 trang |
Chia sẻ: phuongt97 | Lượt xem: 431 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lý thuyết ngôn ngữ lập trình - Chương 4: Các thành phần cơ bản của ngôn ngữ lập trình C, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 4 CÁC THÀNH PHẦN CƠ BẢNCỦA NGÔN NGỮ LẬP TRÌNH C Lý thuyết ngôn ngữ lập trình Nội dung Tổng quan Bộ chữ viết Từ khóa Định danh Thư viện chuẩn C Các hàm toán học cơ bản trong CCấu trúc một chương trình C Tổng quan C là ngôn ngữ lập trình cấp cao, được sử dụng phổ biến để lập trình hệ thống và phát triển các ứng dụng Vào những năm cuối thập kỷ 60 đầu thập kỷ 70 của thế kỷ 20, Dennish Ritchie phát triển ngôn ngữ lập trình C dựa trên ngôn ngữ BCPL và ngôn ngữ BBan đầu, C được thiết kế nhằm lập trình trong môi trường của hệ điều hành Unix nhằm hỗ trợ cho các công việc lập trình phức tạp. Nhưng về sau, với những nhu cầu phát triển ngày một tăng của công việc lập trình, C đã vượt qua khuôn khổ của phòng thí nghiệm Bell và nhanh chóng hội nhập vào thế giới lập trìnhTổng quan C là ngôn ngữ lập trình hệ thống rất mạnh và “mềm dẻo”C có một thư viện gồm rất nhiều các hàm đã được tạo sẵn, người lập trình có thể tận dụng các hàm này để giải quyết các bài toán mà không cần phải tạo mới. C hỗ trợ rất nhiều phép toán nên phù hợp cho việc giải quyết các bài toán kỹ thuật có nhiều công thức phức tạp. C cũng cho phép người lập trình tự định nghĩa thêm các kiểu dữ liệu trừu tượng khác. C được phổ biến khá rộng rãi và đã trở thành một công cụ lập trình khá mạnh, được trong việc xây dựng những phần mềm hiện nay. Tổng quan Ngôn ngữ C có những đặc điểm cơ bản sau: Tính cô đọng (compact): C chỉ có 32 từ khóa chuẩn và 40 toán tử chuẩn, nhưng hầu hết đều được biểu diễn bằng những chuỗi ký tự ngắn gọn Tính cấu trúc (structured): C có một tập hợp những chỉ thị của lập trình như cấu trúc lựa chọn, lặp Tính tương thích (compatible): dễ dàng chuyển từ máy tính này sang máy tính khác Tính linh động (flexible): C là một ngôn ngữ rất uyển chuyển về cú pháp, chấp nhận nhiều cách thể hiện, có thể thu gọn kích thước của các mã lệnh làm chương trình chạy nhanh hơn. Biên dịch (compile): C cho phép biên dịch nhiều tập tin chương trình riêng rẽ thành các tập tin đối tượng (object) và liên kết (link) các đối tượng đó lại với nhau thành một chương trình có thể thực thi được (executable) thống nhất Bộ chữ viết Bộ chữ viết trong ngôn ngữ C bao gồm những ký tự, ký hiệu sau (phân biệt chữ hoa và chữ thường): 26 chữ cái in hoa A,B,C...Z 26 chữ cái in thường a,b,c ...z. 10 chữ số thập phân 0,1,2...9. Các ký hiệu toán học: +, -, *, /, =, , (, ) Các ký hiệu đặc biệt: :. , ; " ' _ @ # $ ! ^ [ ] { } ... Dấu cách hay khoảng trống Từ khóa Từ khóa là từ dành riêng cho ngôn ngữC cung cấp một thư viện các từ khóa để hỗ trợ cho công việc lập trìnhVí dụ: break, char, continue, case, do, double, default, else, float, for, goto, int,if, long, return, struct, switch, unsigned, while, typedef, union voi, volatile,...Lưu ý: Không được dùng từ khóa đặt tên cho các định danh do người lập trình khai báo (biến, hằng, mảng, ). Từ khóa phải được viết bằng chữ thườngTừ khóa Ví dụ: #include #include int main () { char ten[50]; printf(“Xin cho biet ten cua ban !”); scanf(“%s”,ten); printf(“Xin chao ban %s\n ”,ten); printf(“Chao mung ban den voi Ngon ngu lap trinh C”); getch(); return 0; }Định danh Định danh (tên) được dùng để đặt cho chương trình, hằng, kiểu, biến, chương trình con... Tên có hai loại là tên chuẩn và tên do người lập trình đặt. Tên chuẩn là tên do C đặt sẵn như:tên kiểu: int, char, float,tên hàm: sin, cos... Định danh Tên do người lập trình tự đặt sử dụng bộ chữ cái, chữ số và dấu gạch dưới (_) để đặt tênQuy tắc đặt tên: Bắt đầu bằng một chữ cái hoặc dấu gạch dưới. Không có khoảng trống ở giữa tên. Không được trùng với từ khóa. Độ dài tối đa của tên là không giới hạn, tuy nhiên chỉ có 31 ký tự đầu tiên là có ý nghĩa. Ví dụ: Tên hợp lệ: a, i, ho_ten, do_daiTên không hợp lệ: do dai, 01A Thư viện chuẩn C Thư viện chuẩn C là một tập hợp các tập tin tiêu đề và thư viện các thủ tục được tiêu chuẩn hóaThư viện chuẩn cung cấp tập hợp cơ bản các hàm toán, điều chỉnh dãy kí tự, chuyển đổi kiểu, và các vào/ra cơ sởMọi chương trình C khi hoạt động gần như phải phụ thuộc vào thư viện chuẩnLưu ý: Không được viết hoa tên thư viện chuẩn khi lập trình Thư viện chuẩn C Thư viện chuẩn C bao gồm:: hỗ trợ phát hiện các lỗi lô-gíc và các kiểu lỗi khác trong các phiên bản dùng để tìm lỗi của một chương trình. : tập hợp các hàm dùng để điều chỉnh các số phức. : phân lớp các kí tự bởi các kiểu hay dùng để chuyển đổi giữa chữ viết hoa và viết thường. : thử (hay hiển thị) các lỗi được báo cáo từ các hàm thư viện. Thư viện chuẩn C : kiểm soát môi trường chấm động. : gồm định nghĩa các hằng nêu ra các đặc tính xây dựng của thư viện chấm động. : dùng cho việc chuỷen đổi kiểu chính xác giữa các kiểu nguyên. : để lập trình trong ISO 646 cho cho các bộ kí tự khác nhau. : chứa định nghĩa các hằng có đặc tính đặc biệt của các kiểu nguyên : dùng cho setlocale() và các hằng có liên quan Thư viện chuẩn C : tính các hàm số thông dụng. : dùng trong việc thoát ra nơi không có tính địa phương. : kiểm soát các điều kiện ngoại lệ. : truy cập số lượng khác nhau của các đối số được chuyển vào hàm. : dùng cho kiểu dữ liệu Bool. : dùng trong việc định nghĩa các kiểu nguyên khác nhau. : cung cấp nhiều kiểu và macro hữu dụng. Thư viện chuẩn C : cung cấp khả năng nhập trong C. : dùng để xúc tiến nhiều phép toán, bao gồm sự chuyển đổi, các số giả ngẫu nhiên, cấp phát vùng nhớ, kiểm soát quá trình, môi trường, tín hiệu, tìm kiếm, và xếp thứ tự. : Để điều chỉnh nhiều loại dãy kí tự. : Dùng cho các hàm toán kiểu thông dụng. : Để chuyển đổi giữa các định dạng khác nhau về thì giờ và ngày tháng. : Để điều chỉnh độ rộng của các dòng và nhiều loại dãy kí tự sử dụng nhiều kí tự có độ lớn: Để phân lớp các kí tự có độ lớn. Thư viện chuẩn C Các tập tin thư viện thông dụng: stdio.h: Tập tin định nghĩa các hàm vào/ra chuẩn: printf(), scanf(), gets(), conio.h: Tập tin định nghĩa các hàm vào ra trong chế độ DOS (DOS console): clrscr(), getch() math.h: Tập tin định nghĩa các hàm tính toán: sqrt(), log(), sin(), cos(), tan() alloc.h: tin định nghĩa các hàm liên quan đến việc quản lý bộ nhớ io.h: Tập tin định nghĩa các hàm vào ra cấp thấp: open(), read(), close(), creat(), eof(), filelength() graphics.h: Tập tin định nghĩa các hàm liên quan đến đồ họa: initgraph(), line(), circle(), getpixel(), setcolor() Các hàm toán học cơ bản trong Cabs(int x): tính trị tuyệt đối của số nguyên xfabs(double x): tính trị tuyệt đối của số thực xrandom(int n): lấy số ngẫu nhiên từ 0 đến n-1randomize(): khởi đầu bộ tạo số ngẫu nhiên, nên chạy hàm này trước khi dùng hàm randomcos(double x), sin(double x), tan(double x): tính cos, sin và tang của x (đơn vị của x là radian chứ không phải là độ, 1 radian bằng khoảng 57 độ, cụ thể là bằng 180/3.14 )exp(double x): tính e mũ xCác hàm toán học cơ bản trong Clog(double x): tính logarit tự nhiên của x (ln(x))pow(double y,double x): tính y mũ x Chú ý: y mũ x có thể tính theo công thức: y mũ x = exp(y*log(x))sqrt(double x): tính căn bậc 2 của x Chú ý: căn bậc n của x có thể tính theo công thức: pow(x, 1/n)floor(double x): cho số nguyên lớn nhất dưới x Ví dụ: floor(8.6) là 8ceil(double x): cho số nguyên bé nhất trên x Ví dụ: ceil(8.6) là 9Cấu trúc một chương trình C Một chương trình C có thể bao gồm các phần: Các chỉ thị tiền xử lý Khai báo biến ngoài Các hàm tự tạo Chương trình chính (hàm main)Các chỉ thị tiền xử lý Sử dụng chỉ thị #include để khai báo tập tin thư viện sẽ dùng: Cú pháp: #include Hoặc #include “Tên đường dẫn” Ví dụ: #include Hoặc #include”C:\\TC\\math.h” Sử dụng chỉ thị #define để định nghĩa hằng số:Cú pháp: #define Ví dụ: #define MAXINT 32767 Định nghĩa kiểu dữ liệu Là phần không bắt buộcDùng để đặt tên lại cho một kiểu dữ liệu nào đó hay đặt 1 kiểu dữ liệu riêng dựa trên các kiểu dữ liệu đã cóCú pháp: typedef Ví dụ: typedef int SoNguyen; // Kiểu SoNguyen là kiểu int Khai báo các prototypeKhai báo tên hàm, các tham số, kiểu kết quả trả về, của các hàm sẽ cài đặt trong phần sau Là phần không bắt buộcChỉ là các khai báo đầu hàm, không phải là phần định nghĩa hàm Cú pháp: Tên hàm (danh sách đối số) Ví dụ: long giaithua (int n); // tính giai thừa của số nguyên n double x_mu_y(float x, float y); /*Hàm tính x mũ y*/ Khai báo các biến ngoàiKhai báo các biến toàn cục được sử dụng trong cả chương trìnhLà phần không bắt buộcVí dụ: int i; char ten[50]; Chương trình chínhLà phần bắt buộc phải cóCú pháp: main() { Các khai báo cục bộ trong hàm main: Các khai báo này chỉ tồn tại trong hàm mà thôi, có thể là khai báo biến hay khai báo kiểu. Các câu lệnh dùng để định nghĩa hàm main return ; // Hàm phải trả về kết quả }Cài đặt các hàm tự tạoCú pháp: function1( các tham số) { Các khai báo cục bộ trong hàm. Các câu lệnh dùng để định nghĩa hàm return ; } Ví dụ #include#include#includevoid main(){ clrscr(); float a,b,c,delta; printf("Cho biet he so a = "); scanf("%f", &a); printf("Cho biet he so b = "); scanf("%f", &b); printf("Cho biet he so c = "); scanf("%f", &c); delta = b*b - 4*a*c;Ví dụ (tt) if (delta < 0) printf("Phuong trinh vo nghiem"); else if (delta == 0) printf("Phuong trinh co nghiem kep x1 = x2 = %0.2f", -b/(2*a)); else { printf ("Phuong trinh co 2 nghiem phan biet:\n x1 = %0.2f", (-b + sqrt(delta))/(2*a)); printf ("\nx1 = %0.2f", (-b - sqrt(delta))/(2*a)); } getch(); }Cấu trúc một chương trình C Ngoài ra, khi viết chương trình đôi lúc cần phải có vài lời ghi chú về 1 đoạn chương trình nào đó để dễ nhớ và dễ điều chỉnh sau nàyPhần nội dung ghi chú không thuộc về chương trình (khi biên dịch phần này bị bỏ qua). Trong C, nội dung chú thích được viết trong cặp dấu /* và */ nếu nội dung ghi chú gồm nhiều hàng; hoặc dấu // nếu nội dung ghi chú chỉ có một hàng Bài tậpViết chương trình nhập vào 3 số bất kỳ và in ra tích của các số đóViết chương trình nhập vào hai số a,b và in ra nghiệm của phương trình ax+b=0, giả sử a,b luôn khác 0 Viết chương trình nhập vào bán kính r và in ra chu vi, diện tích của 1 đường trònViết chương trình nhập vào chiều dài và chiều rộng của hình chữ nhật và in ra chu vi, diện tích của hình chữ nhậtCÂU HỎI ÔN TẬP CHƯƠNG 41. Tìm hiểu và liệt kê (mô tả và cho ví dụ) các hàm thường sử dụng trong ngôn ngữ C.2. Hãy viết một chương trình C cơ bản để hiển thị ra màn hình câu thông báo: Đây là môn học về lập trình C cơ bản.3. Hãy viết một chương trình C cơ bản để nhập và xuất ra màn hình họ và tên, ngày tháng năm sinh của một sinh viên bất kỳ.4. Tìm hiểu các hàm (lệnh) nhập/xuất cơ bản trong C. Liệt kê và cho ví dụ
Các file đính kèm theo tài liệu này:
- bai_giang_ly_thuyet_ngon_ngu_lap_trinh_chuong_4_cac_thanh_ph.ppt