Học lập trình C++ và kiến thức cơ bản cần nắm rõ theo Mình

Discussion in 'C & C++' started by Mickey, Dec 6, 2017.

  1. Mickey

    Mickey Hacking For Hacker Staff Member

    Học C++ Căn Bản


    Chào các bạn. Tôi nhận thấy nhiều bạn thắc mắc về học C/C++ như thế nào. Thực sự thì các bạn nhận thấy khó học với nó,

    cũng như trên các diễn đàn lớn về lập trình game hiện nay đã có rất nhiều game đc build từ source ra , nhưng game đc ưa

    chuộn và hót nhất hiện nay và cũng đã có share rộng rãi trên các diễn đàn việt nam đó là Game JX 1 [ Võ Lâm 1 ]

    vậy làm thế nào để am hiểu hết đc và code nó 1 cách lưu loát


    1\Điều đầu tiên muốn nói với các bạn là học lập trình nói riêng và IT nói chung đều cần sự TỰ NỖ LỰC của bản thân mình là chính.

    Điều thứ 2 là trong học lập trình, bạn phải CODING thật nhiều. Nghĩa là bạn phải ngồi máy tính, gõ từng dòng code -> compile ->
    báo lỗi (nếu có) -> tìm hiểu lỗi (lỗi cú pháp hay lỗi giải thuật ...) -> sửa -> code típ -> debug -> code ...


    Vì tài liệu tổng hợp rất nhiều bài viết về nhiều ngôn ngữ như java, C#, PHP, autoX, SQL ... nhưng vì chỉ cần tập trung vào C++ thôi nên tôi sẽ trích xuất ra đây để các bạn tham khảo.

    mình cũng chi biết qua nó 1 chút nên ko rành cho lắm nên đã tổng hợp kiến thức của mình và các nguồn tư liệu khác để tổng hợp lại và nói từng chi tiết cho các bạn hiểu như sau


    bây giờ chúng ta bắt đầu nhé . !!! :38[1]:

    Bài 1 : Cấu Trúc Của Một Chương Trình C++


    Có lẽ một trong những cách tốt nhất để bắt đầu học một ngôn ngữ lập trình là bằng một chương trình. Vậy đây là chương trình đầu tiên của chúng ta :

    PHP:
    // my first program in C++
     
    #include <iostream.h>
     
    int main ()
    {
      
    cout << "Hello World!";
      return 
    0;
    }


    Kết quả xuất ra màn hình: Hello World!
    Chương trình trên đây là chương trình đầu tiên mà hầu hết những người học nghề lập trình viết đầu tiên và kết quả của nó là viết câu "Hello, World" lên màn hình. Đây là một trong những chương trình đơn giản nhất có thể viết bằng C++ nhưng nó đã bao gồm những phần cơ bản mà mọi chương trình C++ có. Hãy cùng xem xét từng dòng một :
    // my first program in C++
    Đây là dòng chú thích. Tất cả các dòng bắt đầu bằng hai dấu sổ (//) được coi là chút thích mà chúng không có bất kì một ảnh hưởng nào đến hoạt động của chương trình. Chúng có thể được các lập trình viên dùng để giải thích hay bình phẩm bên trong mã nguồn của chương trình. Trong trường hợp này, dòng chú thích là một giải thích ngắn gọn những gì mà chương trình chúng ta làm.

    PHP:
    #include <iostream.h>
    Các câu bắt đầu bằng dấu (#) được dùng cho preprocessor (ai dịch hộ tôi từ này với). Chúng không phải là những dòng mã thực hiện nhưng được dùng để báo hiệu cho trình dịch. Ở đây câu lệnh #include <iostream.h> báo cho trình dịch biết cần phải "include" thư viện iostream. Đây là một thư viện vào ra cơ bản trong C++ và nó phải được "include" vì nó sẽ được dùng trong chương trình. Đây là cách cổ điển để sử dụng thư viện iostream
    int main ()
    Dòng này tương ứng với phần bắt đầu khai báo hàm main. Hàm main là điểm mà tất cả các chương trình C++ bắt đầu thực hiện. Nó không phụ thuộc vào vị trí của hàm này (ở đầu, cuối hay ở giữa của mã nguồn) mà nội dung của nó luôn được thực hiện đầu tiên khi chương trình bắt đầu. Thêm vào đó, do nguyên nhân nói trên, mọi chương trình C++ đều phải tồn tại một hàm main.
    Theo sau main là một cặp ngoặc đơn bởi vì nó là một hàm. Trong C++, tất cả các hàm mà sau đó là một cặp ngoặc đơn () thì có nghĩa là nó có thể có hoặc không có tham số (không bắt buộc). Nội dung của hàm main tiếp ngay sau phần khai báo chính thức được bao trong các ngoặc nhọn ( { } ) như trong ví dụ của chúng ta
    cout << "Hello World";
    Dòng lệnh này làm việc quan trọng nhất của chương trình. cout là một dòng (stream) output chuẩn trong C++ được định nghĩa trong thư viện iostream và những gì mà dòng lệnh này làm là gửi chuỗi kí tự "Hello World" ra màn hình.
    Chú ý rằng dòng này kết thúc bằng dấu chấm phẩy ( ; ). Kí tự này được dùng để kết thúc một lệnh và bắt buộc phải có sau mỗi lệnh trong chương trình C++ của bạn (một trong những lỗi phổ biến nhất của những lập trình viên C++ là quên mất dấu chấm phẩy).
    return 0;
    Lệnh return kết thúc hàm main và trả về mã đi sau nó, trong trường hợp này là 0. Đây là một kết thúc bình thường của một chương trình không có một lỗi nào trong quá trình thực hiện. Như bạn sẽ thấy trong các ví dụ tiếp theo, đây là một cách phổ biến nhất để kết thúc một chương trình C++.
    Chương trình được cấu trúc thành những dòng khác nhau để nó trở nên dễ đọc hơn nhưng hoàn toàn không phải bắt buộc phải làm vậy. Ví dụ, thay vì viết

    PHP:
    int main ()
    {
    cout << " Hello World ";
    return 0;
    }
    ta có thể viết

    PHP:
    int main () { cout << " Hello World "; return 0; }

    cũng cho một kết quả chính xác như nhau.
    Trong C++, các dòng lệnh được phân cách bằng dấu chấm phẩy ( . Việc chia chương trình thành các dòng chỉ nhằm để cho nó dễ đọc hơn mà thôi.
    Các chú thích.
    Các chú thích được các lập trình viên sử dụng để ghi chú hay mô tả trong các phần của chương trình. Trong C++ có hai cách để chú thích
    // Chú thích theo dòng
    /* Chú thích theo khối */
    Chú thích theo dòng bắt đầu từ cặp dấu xổ (//) cho đến cuối dòng. Chú thích theo khối bắt đầu bằng /* và kết thúc bằng */ và có thể bao gồm nhiều dòng. Chúng ta sẽ thêm các chú thích cho chương trình :

    PHP:
    /* my second program in C++
    with more comments */

    #include <iostream.h>

    int main ()
    {
    cout << "Hello World! "; // says Hello World!
    cout << "I'm a C++ program"; // says I'm a C++ program
    return 0;
    }
    Xuất kết quả ra màn hình như sau:

    PHP:
    Hello World! I'm a C++ program
    Nếu bạn viết các chú thích trong chương trình mà không sử dụng các dấu //, /* hay */, trình dịch sẽ coi chúng như là các lệnh C++ và sẽ hiển thị các lỗi.

    Để bài viết hữu ích hơn thì cần phải có bài tập. Bài tập phần 1 như sau:
    1. Viết chương trình xuất ra màn hình câu: "Toi muon hoc lap trinh C++"
    Và 1 câu khác trên 1 dòng khác "bai tap dau tien"
    Trong đó phải có các chú thích cụ thể đoạn nào làm cái gì.

    như vậy các bạn đọc và hiểu nó đc 1 chút thì coi như bạn đã sắp nắm đc cơ bản rồi đấy , chịu khó đọc nhé

    xong kết thúc bài 1


    Bài 2: BIẾN VÀ HẰNG

    Biến :
    Dùng để chứa dữ liệu tạm thời cho tính toán, so sánh và các hoạt động khác.
    Để khai báo biến, ta dùng lệnh khai báo như sau
    <phạm vi của biến> kiểu biến <tên biến>; // dấu ";" là điều kiện bắt buộc.

    Quy ước với tên biến: Một tên biến (indentifiers) hợp lệ là một chuỗi gồm các chữ cái, chữ số hoặc ký tự gạch dưới. Chiều dài của một tên là không giới hạn. Ký tự trống, các ký tự đánh dấu đều không thể có mặt trong một tên. Chỉ có chữ cái, chữ số và ký tự gạch dưới là được cho phép.

    Thêm vào đó, một tên biến luôn phải bắt đầu bằng một chữ cái. Chúng cũng có thể bắt đầu bằng ký tự gạch dưới ( _ ) nhưng ký tự này thường được dành cho các liên kết bên ngoài (external link). Không bao giờ chúng bắt đầu bằng một chữ số.

    Một luật nữa mà bạn phải quan tâm khi tạo ra các tên của riêng mình là chúng không được trùng với bất kỳ từ khoá nào của ngôn ngữ hay của trình dịch. Ví dụ các tên sau đây luôn luôn được coi là từ khoá theo chuẩn ANSI-C++ và do vậy chúng không thể được dùng để đặt tên:
    PHP:
    asm, car, bool, break, marry, catch, to char, class, const, const_cast,
    continue, default, delete, do, double, dynamic_cast, else, enum, explicit,
    extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace,
    new, operator, private, protected, public, to register, reinterpret_cast, return,
    short, signed, sizeof, static, static_cast, struct, switch, template, this, throw,
    true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t.
    Thêm vào đó, một số biểu diễn khác của các toán tử (operator) cũng không được dùng làm tên vì chúng là những từ được dành riêng trong một số trường hợp:

    PHP:
    and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq.
    Trình dịch của bạn có thể thêm một từ dành riêng đặc trưng khác. Ví dụ, rất nhiều trình dịch 16 bit (như các trình dịch cho DOS) còn có thể các từ khoá

    PHP:
    far, huge và near.
    Chú ý: Ngôn ngữ C++ là "case sensitive" có nghĩa là phân biệt chữ hoa chữ thường. Do vậy biến RESULT khác với result cũng như Result.

    Các kiểu dữ liệu

    Khi lập trình, chúng ta lưu trữ các biến trong bộ nhớ của máy tính, nhưng máy tính phải biết chúng ta muốn lưu trữ gì trong chúng vì các kiểu dữ liệu khác nhau sẽ cần lượng bộ nhớ khác nhau.

    Bộ nhớ của máy tính chúng ta được tổ chức thành các byte. Một byte là lượng bộ nhớ nhỏ nhất mà chúng ta có thể quản lý. Một byte có thể dùng để lưu trữ một loại dữ liệu nhỏ như là kiểu số nguyên từ 0 đến 255 hay một ký tự. Nhưng máy tính có thể xử lý các kiểu dữ liệu phức tạp hơn bằng cách gộp nhiều byte lại với nhau, như số nguyên dài hay số thập phân. Tiếp theo bạn sẽ có một danh sách các kiểu dữ liệu cơ bản trong C++ cũng như miền giá trị mà chúng có thể biểu diễn:
    Miền giá trị Code:

    PHP:
    Tên Số byte Mô tả Miền giá trị
    char 1 ký tự hay kiểu số nguyên 8-bit có dấu -128 to 127 không dấu: 0 to 255
    short 2 kiểu số nguyên 16-bit có dấu:-32763 to 32762 không dấu: 0 to 65535
    long 4 kiểu số nguyên 32-bit có dấu:-2147483648 to 2147483647 không dấu: 0 to 4294967295
    int * Số nguyên. Độ dài của nó phụ thuộc vào hệ thống, như trong MS-DOS nó là 16-bit, trên Windows 9x/2000/NT là 32 bit... Xem short, long
    float 4 Dạng dấu phẩy động 3.4e + / - 38 (7 digits)
    double 8 Dạng dấu phẩy động với độ chính xác gấp đôi 1.7e + / - 308 (15 digits)
    long double 10 Dạng dấu phẩy động với độ chính xác hơn nữa 1.2e + / - 4932 (19 digits)
    bool 1 Giá trị logic. Nó mới được thêm vào chuẩn ANSI-C++. Bởi vậy không phải tất cả các trình dịch đều hỗ trợ nó true hoặc false

    Ngoài các kiểu dữ liệu cơ bản nói trên còn tồn tại các con trỏ và các tham số không kiểu (void) mà chúng ta sẽ xem xét như sau

    Kiểu và khai báo biến trong C

    Ngôn ngữ lập trình C có một hệ thống mở rộng cho việc khai báo các biến của các kiểu khác nhau. Những qui tắc dành cho các kiểu phức tạp có thể gây nhầm lẫn tùy theo các kiểu thiết kế của chúng. Bài này nói về các khai báo biến, bắt đầu từ các kiểu đơn giản, và dẫn tới các kiểu phức tạp hơn.

    Có 4 kiểu cơ bản của các biến trong C; đó là: char, int, double và float.

    char : Đơn vị cơ bản nhất có thể địa chỉ hóa được; nó là một byte. Đây là một kiểu nguyên.

    int : Loại số nguyên theo kích cỡ tự nhiên nhất của các máy tính. Thông thường nó có thể lấy trọn một khoảng có thể địa chỉ hoá được của một word với độ lớn biến thiên từ 16, 32, hay 64 bit tùy theo kiến trúc của CPU và hệ điều hành.

    float : Một giá trị dấu chấm động có độ chính xác đơn.

    double Một giá trị dấu chấm động có độ chính xác kép.

    Dể khai báo một biến có kiểu cơ bản, tên của kiểu được ghi ra trước sau đó đến tên của biến mới (hay của nhiều biến mới cách phân cách nhau bởi dấu phẩy) -- (Xem thêm định nghĩa dãy điểm)

    PHP:
    char red;
    int blue, yellow;
    Các định tính khác nhau có thể đặt vào trong các kiểu cơ bản này để điều chỉnh kích cỡ và sẽ được miêu tả trong phần sau.

    Lưu ý: Ở đây chỉ nêu ra trường hợp khai báo đơn giản không đi kèm với việc gán giá trị khởi động cho biến

    ---------- Post added at 02:58 AM ---------- Previous post was at 02:57 AM ----------

    [h=2]Tặng AE VHB địa chỉ học c++ có video[/h]Bài 1: Hướng dẫn cài đặt C ++
    http://videobook.vn/vi/cus/file=hoc!id=551/
    Bài 2: Các yếu tố trong C++
    http://videobook.vn/vi/cus/file=hoc!id=552/
    Bài 3: Khái niệm cơ bản của một chương trình
    http://videobook.vn/vi/cus/file=hoc!id=553/
    Bài 4: Khái niệm vào ra trong C++
    http://videobook.vn/vi/cus/file=hoc!id=554/
    Bài 5: Các bước tạo một chương trình C++
    http://videobook.vn/vi/cus/file=hoc!id=555/
    Bài 6: Kiểu dữ liệu và hằng
    http://videobook.vn/vi/cus/file=hoc!id=556/
    Bài 7: Phép toán, biểu thức và câu lệnh
    http://videobook.vn/vi/cus/file=hoc!id=557/
    Bài 8: Cấu trúc điều khiển trong C++
    http://videobook.vn/vi/cus/file=hoc!id=558/
    Bài 9: Câu lệnh Switch
    http://videobook.vn/vi/cus/file=hoc!id=559/
    Bài 10: Câu lệnh Do...While...
    http://videobook.vn/vi/cus/file=hoc!id=560/
    Bài 11: Câu lệnh While
    http://videobook.vn/vi/cus/file=hoc!id=561/
    Bài 12: Lệch lặp for
    http://videobook.vn/vi/cus/file=hoc!id=562/
    Bài 13: Mảng dữ liệu
    http://videobook.vn/vi/cus/file=hoc!id=563/
    Bài 14: Mảng hai chiều
    http://videobook.vn/vi/cus/file=hoc!id=564/
    Bài 15: Con trỏ và số học địa chỉ
    http://videobook.vn/vi/cus/file=hoc!id=565/
    Bài 16: Khai báo và định nghĩa hàm
    http://videobook.vn/vi/cus/file=hoc!id=566/
    Bài 17: Kiểu cấu trúc
    http://videobook.vn/vi/cus/file=hoc!id=567/
    Bài 18: Lập trình hướng đối tượng
    http://videobook.vn/vi/cus/file=hoc!id=568/
    Bài 19: Lớp
    http://videobook.vn/vi/cus/file=hoc!id=569/
    Bài 20: Làm việc với file
    http://videobook.vn/vi/cus/file=hoc!id=570/
    Chúc AE thành công ^^!
     

Share This Page