1. Trang chủ
  2. » Luận Văn - Báo Cáo

02. C - Types and Variables

21 7 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 0,99 MB

Nội dung

Bài 2: Lập trình cấu trúc với C EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Chương trình C đơn giản /* hello.c */ #include int main() { printf("Xin chao!\n"); return 0; } Chương trình in hình:  Xin chao! EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Phân tích chương trình ví dụ Chương trình có:       Định nghĩa hàm main() Một dịng thích Một dẫn hướng biên dịch (dùng thư viện) Một câu lệnh xuất hình (đầu chuẩn) Một câu lệnh trả kết Chương trình thực hiện:    u cầu máy tính in dịng chữ hình Trả kết cho chương trình gọi EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Hàm main() Là hàm dùng để bắt đầu chạy chương trình C, bắt buộc phải có Khai báo hai cú pháp:      int main() { … } int main(int argc, char* argv[]) { … } Trong C++ khai báo hàm main() với kiểu trả void Khi bắt đầu chạy, số tham số truyền cho chương trình; kết thúc, chương trình trả giá trị VD:   C:\>copy /B a.dat b.dat EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Ví dụ 2: Tính diện tích hình trịn #include int main() { float R; printf("Ban kinh = "); scanf("%f", &R); printf("Dien tich hinh tron: %.3f\n", 3.14 * R*R); return 0; } Kết chạy:  Ban kinh = Dien tich hinh tron: 3.140 EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Hiển thị hình Cú pháp:   printf("Chuỗi định dạng", ); Các ký hiệu định dạng thường dùng:  Ký hiệu Kiểu Ký hiệu Kiểu %f, %e, %g, %lf double, float %x int (hex) %d int %o int (oct) %c char %u unsigned int %s chuỗi ký tự %p trỏ Định dạng:    %[flags][width][.precision]type Ví dụ: %+15.5f EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Nhập liệu từ bàn phím Cú pháp:   scanf("Chuỗi định dạng", ); Ví dụ:   int tuoi; scanf("%d", &tuoi);  float can_nang; scanf("%f", &can_nang);  char ten[20]; scanf("%s", ten); EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Biến, kiểu giá trị (variables, types, values) EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Biến (variable) kiểu (type) Biến chứa giá trị, thay đổi chạy Biến cần khai báo trước dùng có kiểu Phạm vi tồn cục nội hàm Trong C chuẩn, biến nội cần khai báo đầu hàm, trước câu lệnh Khai báo biến: ;        int a, b, c; unsigned char u; Các kiểu bản:    char, int, short, long, long long float, double, long double EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Câu lệnh gán (assignment)   Thay đổi giá trị biến giá trị Cú pháp:   Ví dụ:     = count = 100; value = cos(x); i = i + 2; Biến khởi tạo giá trị khai báo (nếu khơng có giá trị không xác định):   10 int count = 100; char key = 'K'; EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Hằng (constant)     Tương tự biến giá trị khơng thể bị thay đổi trình chạy Khai báo cách thêm từ khoá const trước Hằng C có chiếm nhớ giống biến Ví dụ:     const double PI = 3.14159; const char* name = "Nguyen Viet Tung"; PI = 3.14; /* báo lỗi */ Cách khác để khai báo hằng: tạo macro  khơng chiếm nhớ (nhưng khơng có kiểu)  11 #define PI 3.14159 EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Các kiểu liệu (primitive types) Kiểu   Độ dài (Kích thước) Loại char Số nguyên, ký tự int (tuỳ thuộc: 2, 4, 8) Số nguyên short Số nguyên long Số nguyên long long Số nguyên float Số thực (dấu chấm động) double Số thực (dấu chấm động) void Khơng có ý nghĩa xác định Ký tự C hiểu số nguyên bit Tốn tử sizeof() tính độ dài biến kiểu liệu theo số byte:   12 sizeof(x) sizeof(int) EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Ép kiểu (type casting)   Là việc chuyển từ biểu thức có kiểu sang kiểu khác Chuyển kiểu ngầm định:    Chuyển kiểu tường minh:    float a = 30; int b = 'a'; int a = (int)5.6; /* lấy phần nguyên */ float f = (float)1/3; Không phải kiểu chuyển cho   13 char* s = 2.3; /* không dịch */ int x = "7"; /* dịch sai */ EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Kích thước biến, giới hạn giá trị  Số có dấu khơng dấu: signed char (8 bits) –128 ~ +127 signed short (16 bits) –32768 ~ +32767 signed int (32 bits) –2147483648 ~ +2147483648 signed long (32 bits) –2147483648 ~ +2147483648 unsigned char (8 bits) ~ +255 unsigned short (16 bits) ~ +65535 unsigned int (32 bits) ~ +4294967295 unsigned long (32 bits) ~ +4294967295  Chú ý:   14 Ngầm định có dấu Kiểu int có kích thước tuỳ thuộc vào cấu hình EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Kiểu liệt kê (enum)    Dùng để liệt kê giá trị có kiểu Cú pháp: enum { }; Ví dụ:    enum DongVat { Meo, Cho, Ho, Bao }; enum Ngay { Thu2 = 2, Thu3, Thu4, Thu5, Thu6, Thu7, CN = }; Sử dụng:    15 enum DongVat dv = Meo; dv = Bao; enum Ngay n = Thu5; EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Kiểu cấu trúc (struct)    Khai báo kiểu phức tạp, chứa biến Cú pháp: struct { }; Ví dụ:   struct SinhVien { char ten[20]; int nam_sinh; int khoa; }; Sử dụng:    16 struct SinhVien sv = {"Le Duc Tho", 1984, 56}; sv.nam_sinh = 1985; sv.khoa = 54; EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Định nghĩa tên cho kiểu (typedef)    Để dùng với tên ngắn gọn hơn, mang ý nghĩa khác Cú pháp: typedef ; Ví dụ:      typedef typedef typedef typedef double ChieuCao; unsigned char byte; enum DongVat DV; struct { … } SinhVien; Khai báo biến    17 ChieuCao d = 165.5; byte b = 30; DV dv = Cho; EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Kiểu mảng (array)    Chứa phần tử kiểu vùng nhớ liên tục Bản chất mảng trỏ tĩnh Cú pháp: [ ]; Ví dụ:   23 50 18 40 25 33 Truy xuất phần tử: số thự tự tính từ   int tuoi[6] = { 23, 50, 18, 40, 25, 33 }; tuoi[3] = 20; Mảng hai chiều (và nhiều chiều):  18 float ma_tran[10][20]; ma_tran[5][15] = 1.23; EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Một số kiểu khác  Kiểu boolean:    Khơng có C Dùng int/char enum để thay thế:  typedef int bool; const int false = 0, true = 1;  typedef enum {false, true} bool; Kiểu chuỗi ký tự:    char* ho_ten = "Nguyen Viet Tung"; char dia_chi[50] = "So 1, Dai Co Viet, Ha Noi"; Kiểu union: chứa biến thành phần địa nhớ  19 union color { struct {unsigned char R,G,B,A;} s_color; unsigned int i_color; }; EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Kiểu kết hợp  Có thể định nghĩa kết hợp kiểu loại khác loại  20 typedef struct { char ho_ten[20]; unsigned int tuoi; enum {Nam, Nu} gioi_tinh; struct { char thanh_pho[20]; char duong[20]; int so_nha; } dia_chi; } SinhVien; EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Bài tập 21 Dùng toán tử sizeof() in hình độ dài kiểu liệu phức hợp Nhập góc α tính giá trị hàm lượng giác Nhập liệu cho cấu trúc SinhVien (tên, năm sinh, khoá) in lại giá trị hình Viết chương trình, khai báo hai biến x (char) y (unsigned char) Gán -1 vào x, sau thực chuyển kiểu gán giá trị x vào y In kết y hình Giải thích kết Khai báo kiểu liệu miêu tả thông tin ơtơ có thuộc tính: model, khối lượng, màu sơn, bánh bánh có thuộc tính: chủng loại, bán kính, khối lượng Vẫn trên, thêm việc nhập in liệu hình EE3490: Kỹ thuật lập trình – HK1 2018/2019 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội ... Trung Kiên – ĐH Bách khoa Hà Nội Kiểu c? ??u tr? ?c (struct)    Khai báo kiểu ph? ?c tạp, chứa biến C? ? pháp: struct { }; Ví dụ:   struct SinhVien { char ten[20]; int... Khai báo c? ?ch thêm từ khoá const trư? ?c Hằng C có chiếm nhớ giống biến Ví dụ:     const double PI = 3.14159; const char* name = "Nguyen Viet Tung"; PI = 3.14; /* báo lỗi */ C? ?ch kh? ?c để khai... giá trị, thay đổi chạy Biến c? ??n khai báo trư? ?c dùng c? ? kiểu Phạm vi toàn c? ? ?c nội hàm Trong C chuẩn, biến nội c? ??n khai báo đầu hàm, trư? ?c câu lệnh Khai báo biến: ;    

Ngày đăng: 30/06/2020, 10:57

HÌNH ẢNH LIÊN QUAN

Ví dụ 2: Tính diện tích hình tròn - 02. C - Types and Variables
d ụ 2: Tính diện tích hình tròn (Trang 5)
Hiển thị ra màn hình - 02. C - Types and Variables
i ển thị ra màn hình (Trang 6)
w