Bài giảng Kỹ thuật lập trình: Chương 3 - Lê Thành Sách

60 81 0
Bài giảng Kỹ thuật lập trình: Chương 3 - Lê Thành Sách

Đ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

Bài giảng Kỹ thuật lập trình - Chương 3: Tổ chức dữ liệu trong chương trinh cung cấp cho người học các kiến thức: Dữ liệu và kiểu dữ liệu, từ khoá, biến và khai báo biến, tầm vực biến, phép toán và biểu thức, kiểu enum, hằng số, chuyển đổi kiểu dữ liệu. Mời các bạn cùng tham khảo.

Chương 03 TỔ CHỨC DỮ LIỆU TRONG CHƯƠNG TRÌNH Lê Thành Sách Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Nội dung n n n n n n n n n Dữ liệu Kiểu liệu Từ khoá Biến Khai báo biến Tầm vực biến Phép toán biểu thức Kiểu enum Hằng số Chuyển đổi kiểu liệu Bài tập Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Tại phải cần đến kiểu liệu? n n Mọi chương trình cần đến liệu Ví dụ: n Một chương trình in tên đơn giản int main(){ printf(“LAP TRINH C/C++”); return 0; } n => Cần lưu trữ liệu “LAP TRINH C/C++” để xuất hình Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Tại phải cần đến kiểu liệu? n n Mọi chương trình cần đến liệu Ví dụ: n Một chương trình giải Phương trình bậc n Dữ liệu: n Các hệ số A,B,C Phương trình bậc n Delta n Các nghiệm phương trình n Một chương trình Quản lý nhân n Dữ liệu: n Mã số nhân sự, họ tên, hệ số lương, v.v Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Tại phải cần đến kiểu liệu? n n Mọi chương trình cần đến liệu Người lập trình cần vùng nhớ (thuộc RAM máy tính) để lưu trữ liệu trình chương trình thực thi n Khi người dùng nhập liệu (thơng qua bàn phím, chọn hình, đọc từ sensor, v.v): liệu lưu vào vùng nhớ RAM n Ví dụ: Đọc hệ số A,B,và C cho Phương trình bậc từ bàn phím n Trong q trình chương trình thực thi: vùng nhớ đọc xử lý n Ví dụ: tính DELTA giải Phương trình bậc 2, hệ số đọc giá trị dùng biểu thức để tính DELTA (DELTA = B*B – 4*A*C;) Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Các kiểu liệu n Dữ liệu mà chương trình lưu trữ thuộc nhiều dạng (gọi kiểu hay kiểu liệu, data type) khác n n n n n n n n Ký tự (character) Một hai trạng thái: có hay không, hay sai Các số n Số nguyên n Số thực Một chuỗi: “LAP TRINH C/C++” Một dãy giá trị Một tổ hợp giá trị (struct, class) Một số giá trị cho trước (enum) … Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Các kiểu liệu n Ngồi tính chất lưu trữ khác nhau, chương trình cần thiết phân biệt kiểu liệu nói trên, kiểu quy định thơng tin kèm khác n n Cách tổ chức bit (lưu trữ) n Ví dụ: n Với số nguyên: Ý nghĩa bit có trọng số lớn (MSB) phụ thuộc vào có kiểu số có dấu hay khơng dấu n Số không dấu: bit tham gia vào tính độ lớn giá trị n Số có dấu: bit số dương hay âm Các phép tốn n Ví dụ: n Với hai số: thực phép tốn: nhân hay chia n Khơng thực nhân hay chia với hai chuỗi ký tự Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Ngơn ngữ lập trình phân biệt kiểu liệu nào? n n n Ngôn ngữ C/C++ (các ngôn ngữ khác vậy) gắn ngữ nghĩa (quy ước ngữ nghĩa) với loạt tên kiểu mà cung cấp sẵn Các kiểu gọi kiểu (fundamental data types) Tên kiểu có sẵn gắn sẵn ngữ nghĩa nên từ khố Người lập trình không dùng tên để đặt tên cho kiểu (hàm, biến, v.v) mà họ tạo Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Các loại kiểu n n Kiểu liệu (fundamental data type) n Tên kiểu từ khoá n Ngữa nghĩa tên quy định ngơn ngữ lập trình Kiểu liệu người lập trình định nghĩa (user-defined data type) n Tên kiểu người lập trình đặt n Ngữ nghĩa người lập trình quy định thơng qua n Kiểu người lập trình tạo trước n Và/hoặc, kiểu liệu n Các kiểu tiếng C/C++ n C: struct, enum n C++: class Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Các loại kiểu n n n Kiểu liệu (fundamental data type) Kiểu liệu người lập trình định nghĩa (user-defined data type) Kiểu liệu dẫn xuất (derived data type) n C/C++ cung cấp ký hiệu để tạo kiểu từ kiểu khác (cơ hay người lập trình định nghĩa) n Ví dụ: n Mảng (array) n Mảng ký tự, số nguyên, số thực, v.v n Con trỏ (pointer) n Con trỏ đến ký tự, đến số, v.v Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ 10 https://fb.com/tailieudientucntt Các giá trị bất biến n Giá trị bất biến gì? n n n Là giá trị không thay đổi trình chương trình thực thi Do đó, n giá trị bất biến phải xác định thời điểm biên dịch (lập chương trình) Ví dụ n n n (1) Sử dụng từ khoá const const int MAX = 50; (2) Sử dụng macro #define MAX 50 (3) Sử dụng enum enum {MAX}; enum {MAX = 50}; Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 46 https://fb.com/tailieudientucntt Các giá trị bất biến n Giá trị bất biến cách thể mã chương trình n n n Kiểu ký tự const char c = ‘a’; const char c = ‘A’; Kiểu chuỗi const char c[] = “LAP TRINH C/C++”; const char c[] = “SAI GON”; Kiểu số const int a = 100; const float f = 10.5f; const double d = 10.5; Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 47 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Chuyển đổi kiểu gì? n Khi ta gán giá trị vào biến kiểu liệu, hay thực phép toán nhị phân hai giá trị kiểu liệu khơng cần chuyển đổi kiểu xảy n Ví dụ int a = 100; int b; b = a; float f = 10.5f; float fa; fa = f; Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 48 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Chuyển đổi kiểu gì? n n Khi người lập trình thực phép gán mà kiểu bên phải phép gán (kiểu nguồn) kiểu bên trái phép gán (kiểu đích) nhau, chuyển đổi giá trị từ kiểu nguồn sang kiểu đích cần thiết Khi hai tốn hạng phép toán nhị phân khác kiểu với cần chuyển đổi liệu n Ví dụ short a = 100; Int b; b = a; double d = 10.5; float fa; fa = d; Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán CuuDuongThanCong.com © 2016 Lập trình C/C++ 49 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Các dạng chuyển đổi n n Chuyển đổi ngầm (mặc nhiên) n Có thể nguyên giá trị nguồn n Có thể biến đổi giá trị nguồn Ép kiểu n Người lập trình can thiệp tốn tử đặc biệt: cặp dấu ”(” “)” Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 50 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Chuyển đổi ngầm (mặc nhiên) n n Áp dụng giá trị kiểu nguồn cópy vào kiểu đích tương thích với kiểu nguồn Ví dụ: short s = 100; int a = s; // có chuyển đổi giá trị n n n Biến a có kiểu “int” kiểu đích phép chuyển đổi Biến s có kiểu “short” kiểu nguồn “short” tương thích với “int” nên trình biên dịch khơng báo lỗi chương trình chuyển tự động mà khơng cần người lập trình đặt tả thêm Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 51 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Chuyển đổi ngầm n Trường hợp giữ nguyên giá trị nguồn n Khi kiểu nguồn có số bit thấp kiểu đích n Ví dụ n char vào short n short vào int n Int vào long long n Int vào double Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 52 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Chuyển đổi ngầm n n Trường hợp giữ nguyên giá trị nguồn Trường hợp cần thay đổi n unsigned vào signed ngược lại n Áp dụng nguyên tắc “bù 2” (two’s complement) n Bù = Bù + n Bù = Bù bit (0 1, 0) n Luận lý vào số: n true n false n số vào Luận lý n Khác true n Bằng false Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 53 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Chuyển đổi ngầm n n Trường hợp giữ nguyên giá trị nguồn Trường hợp cần thay đổi n unsigned vào signed ngược lại n Luận lý vào số: n số vào Luận lý n float hay double vào số nguyên (char, short, int, v.v) n Phần thập phân bị cắt bỏ (2.456 2) n Nếu sau cắt mà phần nguyên nằm ngồi phạm vi kiểu đích … tuỳ vào thực (không xác định) Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 54 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Ép kiểu (type casting) n n n Là chuyển đổi kiểu tường minh, người lập trình đặt tả kiểu đích Cú pháp n Dạng hàm double x = 10.5; int a = int(x); n Dạng c double x = 10.5; int a = (int) x; Ví dụ n Xác định giá trị x y ví dụ cho sau Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 55 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Ép kiểu (type casting) #include #include int main(){ double x = 3/2; double y = (double)3/2; printf("x = %4.2g\n", x); printf("y = %4.2g\n", y); system("pause"); return 0; } Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 56 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Ép kiểu (type casting) n Ví dụ n Xác định giá trị a b kết xuất hình ví dụ cho sau Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 57 https://fb.com/tailieudientucntt Chuyển đổi kiểu n Ép kiểu (type casting) #include #include int main(){ unsigned char a; signed char b; a = -1; b = 255; printf("a= %3d\n", a); printf("b= %3d\n", b); printf("a < is %s\n", a < ? "true": "false"); printf("b > is %s\n", b > ? "true": "false"); system("pause"); return 0; } Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 58 https://fb.com/tailieudientucntt Bài tập Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 59 https://fb.com/tailieudientucntt Tổng kết Chủ đề Yêu cầu (Kiến thức & Kỹ năng) Dữ liệu Kiểu liệu - Biết danh mục kiểu liệu - Biết kích thước, phép tốn áp dụng với kiểu - Quy tắc tên danh hiệu - Khai báo biến & khở động chúng Từ khoá Biến Khai báo biến Tầm vực biến Các loại tầm vực ý nghĩa Phép toán biểu thức Sử dụng phép toán biểu thức Kiểu enum Định nghĩa sử dụng enum Kiểu cấu trúc Hằng số Sử dụng nhiều cách Chuyển đổi kiểu liệu Hiểu quy tắc chuyển đổi sử dụng ép kiểu Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 60 https://fb.com/tailieudientucntt ... định ngơn ngữ lập trình Kiểu liệu người lập trình định nghĩa (user-defined data type) n Tên kiểu người lập trình đặt n Ngữ nghĩa người lập trình quy định thơng qua n Kiểu người lập trình tạo... Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Tại phải cần đến kiểu liệu? n n Mọi chương trình cần đến liệu Ví dụ: n Một chương. .. long) Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Tốn CuuDuongThanCong.com © 2016 Lập trình C/C++ 13 https://fb.com/tailieudientucntt Dữ liệu Kiểu liệu n Chương trình in kích thước kiểu (số bytes)

Ngày đăng: 11/01/2020, 19:44

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan