chương 1 Nội dung: + Về kiến thức: Trình bày được nguồn gốc của ngôn ngữ C++ + Về kỹ năng: sử dụng phần mềm Dev C++ + Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc. Phương pháp: + Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp + Về kỹ năng: Viết một chương trình cơ bản sử dụng phần mềm Dev C++ + Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc. 11 CHƯƠNG 2: CÁC THÀNH PHẦN CƠ BẢN Mã chương: MĐ08-02 Mục tiêu: Sau khi học xong chương này sinh viên có khả năng: - Hiểu và sử dụng được hệ thống kí hiệu và từ khóa. - Hiểu được các kiểu dữ liệu.
- Hiểu được và vận dụng được các loại biến, hằng biểu thức cho từng chương trình cụ thể. - Biết, hiểu và so sánh được các lệnh, khối lệnh. - Thực hiện được việc chạy chương trình. Hệ thống từ khóa và kí hiệu được dùng trong C++.
Bộ chữ viết trong C++: Bao gồm những ký tự, những ký hiệu sau (phân biệt chữ hoa và chữ thường): 26 chữ cái la tinh lớn A,B,C.Z 26 chữ cái la tinh nhỏ a,b,c. 10 chữ số thập phân 0,1,2.(chữ số Ả Rập) 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. Các từ khóa trong C++: Từ khóa là các từ dành riêng (reserved words) của C++ mà người lập trình có thể sử dụng nó trong chương trình tùy theo ý nghĩa của từng từ.
Dùng để khai báo dữ liệu, viết câu lệnh. Ta không được dùng từ khóa để đặt cho các tên riêng của mình. Danh sách 32 từ khóa trong ngôn ngữ C++ cũng như trong ngôn ngữ C: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while Danh sách 30 từ khóa chỉ có trong C++ mà không có trong C: asm dynamic_cast namespace reinterpret_cast bool explicit new static_cast false catch operator template friend private class this inline public throw const_cast delete mutable protected true try typeid typename using virtual wchar_t Khác với ngôn ngữ khác, các từ khóa của C++ đều viết bằng chữ thường. Ví dụ: phải viết là if, không được viết là If hoặc IF như Pascal hoặc Foxpro.
Tên: Khái niệm tên rất quan trọng trong quá trình lập trình, nó không những thể hiện rõ ý nghĩa trong chương trình mà còn dùng để xác định các đại lượng khác nhau khi 12 thực hiện chương trình. Tên thường đặt cho hằng, biến, mảng, con trỏ, nhãn,… Chiều dài tối đa của biến là 32 ký tự. Tên biến hợp lệ là một chuỗi ký tự liên tục gồm: ký tự chữ, số và dấu gạch dưới. Ký tự đầu tiên phải là chữ hoặc dấu gạch dưới.
Khi đặt tên không được trùng từ khóa. Ví dụ 1: Các tên đúng: delta, a_1, Num_ODD, Case Các tên sai: 3a_1 (ký tự đầu là số) num-odd (sử dụng dấu gạch ngang) int (đặt tên trùng với từ khóa) del ta (có khoảng trắng) f(x) (có dấu ngoặc tròn) Lưu ý: trong C++ phân biệt chữ hoa chữ thường. Ví dụ 2: number khác Number case khác Case (case là từ khóa, do đó bạn đặt tên là Case vẫn đúng) 1. Cặp dấu ghi chú thích: Khi viết chương trình có một vài trường hợp ta phải có một vài lời ghi chú về một đoạn chương trình nào đó để ghi nhớ, dễ hiểu, dễ hiệu chỉnh sau này.
Ghi chú thì không thuộc về nội dung của chương trình, khi biên dịch sẽ bị bỏ qua, nội dung sẽ ghi trong cặp dấu chú thích /* và */. #include <iostream> using namespace std; int main() { /*Bắt đầu khối lệnh*/ …. } /*Kết thúc khối lệnh*/ Nếu bạn không viết đúng quy định trên, khi chạy chương trình sẽ bị lỗi. Ví dụ: #include <iostream> using namespace std; int main() { int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10 float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 char c; // khai báo biến c có kiểu dữ liệu là ký tự char c = 'a'; // gán giá trị cho biến c là ký tự 'a' string d; // khai báo biến d có kiểu dữ liệu là xâu string d = "ok" // gán giá trị cho biến d là xâu "ok" 13 return 0; } Khi biên dịch chương trình, C++ gặp cặp dấu ghi chú sẽ không dịch ra ngôn ngữ máy.
Tóm lại, đối với ghi chú dạng // dùng ghi chú một hàng và dạng /* …. */ có thể ghi chú một hàng hoặc nhiều hàng. Các ký tự điều khiển: C++ có nhiều ký tự điều khiển việc xuất dữ liệu ra màn hình hoặc máy in hơn hẵn các ngôn ngữ lập trình khác. Bộ ký tự điều khiển của C++ bao gồm: \n : Nhảy xuống dòng kế tiếp canh về cột đầu tiên \t : Canh cột tab ngang.
\r : Nhảy về đầu hàng, không xuống hàng. \a : Tiếng kêu bip. \\ : In ra dấu \ \" : In ra dấu " \' : In ra dấu ' %%: In ra dấu % \b ~ backspace (xóa 1 ký tự ngay trước) Ví dụ: #include<iostream> main() { cout<<“\nDay la chuong trinh \’ C++\’”; … … … } Kết quả sẽ in ra: Day là chuong trinh ‘ C++’ 2. Các kiểu dữ liệu: kiểu số, chuỗi, ký tự.
Kiểu số nguyên: Kiểu số nguyên là kiểu dữ liệu dùng lưu các giá trị nguyên hay còn gọi là kiểu đếm được. Kiểu số nguyên trong C++ được chia thành các kiểu dữ liệu con, mõi kiểu có một miền giá trị khác nhau. Kiểu Kích thước Vùng giá trị char 1 byte -128 tới 127 hoặc 0 tới 255 unsigned char 1 byte 0 tới 255 signed char 1 byte -128 tới 127 -32,768 tới 32,767 hoặc - int 2 hoặc 4 bytes 2,147,483,648 tới 2,147,483,647 unsigned int 2 hoặc 4 bytes 0 tới 65,535 hoặc 0 tới 14 4,294,967,295 short 2 bytes -32,768 tới 32,767 unsigned short 2 bytes 0 tới 65,535 -2,147,483,648 tới long 4 bytes 2,147,483,647 unsigned long 4 bytes 0 tới 4,294,967,295 Bảng 1: Kiểu dữ liệu số nguyên 2. Kiểu số thực: Kiểu số thực dùng lưu các số thực hay các sô có dấu chấm thập phân gồm có 3 kiểu sau: STT Kiểu dữ liệu Kích thước Miền giá trị (domain) (Size) 1 float 4 bytes 1.7E+308 3 long double 10 bytes 3.1E+4932 Bảng 2: Kiểu dữ liệu số thực Mỗi kiểu số thực trên đều có miền giá trị và độ chính xác (số số lẻ) khác nhau.
Tùy vào nhu cầu sử dụng mà ta có thể khai báo biến thuộc 1 trong 3 kiểu trên. Ngoài ra ta còn có kiểu dữ liệu void, kiểu này mang ý nghĩa là kiểu rỗng không chứa giá trị nào cả. Các loại biến, cách khai báo, sử dụng. Biến: Biến là một đại lượng được người lập trình định nghĩa và được đặt tên thông qua việc khai báo biến.
Biến dùng chứa dữ liệu trong quá trình thực hiện chương trình và giá trị của biến có thể bị thay đổi trong quá trình này. Cách đặt tên biến giống như cách đặt tên đã nói trong phần trên. Mỗi biến thuộc về một kiểu dữ liệu xác định và có giá trị thuộc kiểu đó. Tên biến: Muốn biến sử dụng trong chương trình đều phải đặt tên theo các quy định như sa: Tên biến hợp lệ là một chuỗi ký tự liên tục gồm: Ký tự, chữ, số, dấu gạch dưới.
Ký tự đầu tiên ,phải là chữ. Khi đăt tên biến không đặt trùng với các từ khóa của C++. Ví dụ: bien_1, bien_2, temp22 hợp lê. bi&, 2ten, A b, float không hợp lệ.
C++ phân biệt rất rõ rang giữa chữ in thường và in hoa. Ví dụ: BIEN, Bien, bieN: Là những tên biến khác nhau. If, Goto : Tuy trùng với từ khóa nhưng vẫn hợp lệ. 15 - C++ chỉ phân biệt hai tên hợp lệ với nhau với n ký tự đầu tiên của chúng, ( n=8 đến 32 ký tự).
Nhu vậy bạn có thể đặt tên biến hợp lệ một cách thoải mái, tuy nhiên tên biến càng dài thì càng khó nhớ. Ví dụ: Hai tên biến sau đây được coi là hợp lệ và cùng tên nhau: - Ten_bien_dai_toi_32_ky_tu_dau_tien_1 - Ten_bien_dai_toi_32_ky_tu_dau_tien_2 3. Cú pháp khai báo biến: <Kiểu dữ liệu> Danh sách các tên biến; Kiểu dữ liệu: một trong các kiểu ở mục Danh sách các tên biến: gồm các tên biến có cùng kiểu dữ liệu, mỗi tên biến cách nhau dấu phẩy (,), cuối cùng là dấu chấm phẩy (;). Ví dụ 1: int a, b, c; /*Ba biến a, b,c có kiểu int*/ long int chu_vi; /*Biến chu_vi có kiểu long*/ float nua_chu_vi; /*Biến nua_chu_vi có kiểu float*/ double dien_tich; /*Biến dien_tich có kiểu double*/ Khi khai báo biến nên đặt theo quy tắc Hungarian Notation Ví dụ 2: int ituoi; //khai báo biến ituoi có kiểu int float fTrongluong; //khai báo biến fTrongluong có kiểu long char ckitu1, ckitu2; //khai báo biến ckitu1, ckitu2 có kiểu char Các biến khai báo trên theo quy tắc Hungarian Notation.
Nghĩa là biến ituoi là kiểu int, bạn thêm chữ i (kí tự đầu của kiểu) vào đầu tiên biến tuoi trong quá trình lập trình hoặc sau này xem lại, sửa chữa,. bạn dễ dàng nhận ra biến ituoi có kiểu int mà không cần di chuyển đến phần khai báo mới biết kiểu của biến này. Tương tự cho biến fTrongluong, bạn nhìn vào và biết ngay biến này có kiểu float. Chú ý: Việc khai báo biến giữa C++ và Pascal có sự khác nhau.
Vì vậy đối với những bạn đã học lập trình Pascal khi học C++ thường hay bị nhầm, do đó chúng tôi xin lưu ý để tránh nhầm lẫn. Đối với C++ Đối với Pascal Kiểu DS biến; DS biến: Kiểu; Ví dụ: Ví dụ: #include<iostream.h> var main() a,b,c :integer; { int a,b,c; begin …. Bảng 3: Việc khai báo biến giữa C++ và Pascal có sự khác nhau Trong ngôn ngữ lập trình C++, ta phải khai báo biến đúng vị trí. Chúng ta có một vài kiểu biến trong C++ như sau: 16 Biến local (địa phương).
Một biến được khai báo bên trong hàm hoặc khối lệnh được gọi là biến địa phương. Nó phải được khai báo khi bắt đầu khối. Một biến được khai báo bên ngoài hàm hoặc khối lệnh được gọi là biến toàn cầu. Bất kỳ hàm nào cũng có thể thay đổi giá trị của biến toàn cầu.
Nó có sẵn cho tất cả các chức năng. Trong ví dụ dưới đây, biến a là biến global. int a = 20; // bien global void function1() { int x = 10; // bien local } Biến static (tĩnh). Một biến được khai báo với từ khóa static được gọi là biến tĩnh.
Nó giữ lại giá trị của nó sau nhiều lần gọi hàm.