Effective modern C++ - C ++ hiện đại hiệu quả, Học C++ - Tài liệu học C++ bằng Tiếng Việt

Thảo luận trong 'Khác' bắt đầu bởi Đồi Thổi Gió, 11 Tháng mười 2021.

  1. Đồi Thổi Gió

    Bài viết:
    9
    Hiểu rõ hơn về C ++ 11 và C ++ 14 không chỉ là vấn đề làm quen với các tính năng mà chúng tôi giới thiệu (ví dụ: khai báo kiểu tự động, chuyển ngữ nghĩa, biểu thức lambda và hỗ trợ đồng thời). Thách thức là học cách sử dụng các tính năng đó một cách hiệu quả - để phần mềm của bạn chính xác, hiệu quả, có thể bảo trì và di động. Đó là nơi xuất hiện cuốn sách thực tế này. Nó mô tả cách viết phần mềm thực sự tuyệt vời bằng C ++ 11 và C ++ 14 - tức là sử dụng C ++ hiện đại.

    Vì vậy, vẫn quan tâm đến C ++? Bạn nên! C ++ hiện đại (tức là C ++ 11 / C ++ 14) không chỉ là một bản nâng cấp. Xem xét các tính năng mới, có vẻ như nhiều hơn một sự phát minh lại. Tìm kiếm hướng dẫn và hỗ trợ? Sau đó, cuốn sách này chắc chắn là những gì bạn đang tìm kiếm. Liên quan đến C ++, Scott Meyers đã và vẫn là một từ đồng nghĩa với độ chính xác, chất lượng và niềm vui. -Gerhard Kreuzer. Kỹ sư Nghiên cứu và Phát triển, Siemens AG. Tìm kiếm chuyên môn cao nhất là đủ khó.

    Tìm cách dạy theo chủ nghĩa hoàn hảo-nỗi ám ảnh của tác giả về việc lập chiến lược và sắp xếp hợp lý các giải thích - cũng khó. Bạn biết rằng bạn đang được thưởng thức khi bạn có thể tìm thấy cả hai thể hiện trong cùng một người. C ++ hiện đại hiệu quả là một thành tựu cao ngất ngưởng từ một nhà viết kỹ thuật giỏi. Nó xếp lớp những lời giải thích rõ ràng, có ý nghĩa và có trình tự tốt lên trên những phần phức tạp và các chủ đề liên kết với nhau, tất cả đều theo phong cách văn học sắc nét.

    Bạn cũng không có khả năng tìm thấy một lỗi kỹ thuật, một khoảnh khắc buồn tẻ hoặc một câu lười biếng trong C ++ Hiện đại Hiệu quả.

    -Andrei Alexandrescu Tiến sĩ, Nhà khoa học nghiên cứu, Facebook, và tác giả của Thiết kế C ++ Hiện đại Là người có hơn hai thập kỷ kinh nghiệm C ++, để tận dụng tối đa C ++ hiện đại (cả phương pháp hay nhất và những cạm bẫy cần tránh), tôi thực sự khuyên bạn nên nhận được cuốn sách này, đọc kỹ và tham khảo nó thường xuyên!

    Hãy theo dõi bài viết này để có thể nhận được những bài học mới nhất về C++ của tôi. Để có thể dịch quyển này ra thì add tốn nhiều công sức lắm *qobe 15*vậy nên mọi người nếu mà thích thì donate cho add chút nhá*qobe 18*.
    P/s: Ai donate và thích bài viết thì mình sẽ đặc biệt tạo ra cho bạn đó một file pdf hoặc word v.v..(file nào cũng được) mà mình đã dịch hết ra nhé.Có thể sẽ hơi lâu vì mình sẽ phải dịch nó ra nữa (dài lắm luôn). Cảm ơn!!!
     
    thienkim0308Hạ Vũ Chi Dạ thích bài này.
    Chỉnh sửa cuối: 12 Tháng mười 2021
  2. Đồi Thổi Gió

    Bài viết:
    9
    Bài 1:

    NGÔN NGỮ LẬP TRÌNH & PHƯƠNG PHÁP LẬP TRÌNH​

    Bấm để xem
    Đóng lại
    1.11.2Mục tiêu

    Sau khi hoàn tất bài này học viên sẽ hiểu và vận dụng các kiến thức kĩ năng cơ bản sau:

    - Ý nghĩa, các bước lập trình.

    - Xác định dữ liệu vào, ra.

    - Phân tích các bài toán đơn giản.

    - Khái niệm so sánh, lặp.

    - Thể hiện bài toán bằng lưu đồ.

    Lý thuyết

    1.2. 1 Ngôn ngữ lập trình (Programming Language)


    Phần này chúng ta sẽ tìm hiểu một số khái niệm căn bản về thuật toán, chương trình, ngôn ngữ lập trình. Thuật ngữ "thuật giải" và "thuật toán" dĩ nhiên có sự khác nhau song trong nhiều trường hợp chúng có cùng nghĩa.

    1.2. 1.1 Thuật giải (Algorithm)

    Là một dãy các thao tác xác định trên một đối tượng, sao cho sau khi thực hiện một số hữu hạn các bước thì đạt được mục tiêu. Theo R. A. Kowalski thì bản chất của thuật giải:

    Thuật giải = Logic + Điều khiển​

    * Logic: Đây là phần khá quan trọng, nó trả lời câu hỏi "Thuật giải làm gì, giải quyết vấn đề gì?", những yếu tố trong bài toán có quan hệ với nhau như thế nào v. V.. Ở đây bao gồm những kiến thức chuyên môn mà bạn phải biết để có thể tiến hành giải bài toán.

    Ví dụ 1: Để giải một bài toán tính diện tích hình cầu, mà bạn không còn nhớ công thức tính hình cầu thì bạn không thể viết chương trình cho máy để giải bài toán này được.

    * Điều khiển: Thành phần này trả lời câu hỏi: Giải thuật phải làm như thế nào? Chính là cách thức tiến hành áp dụng thành phần logic để giải quyết vấn đề.

    1.2. 1.2 Chương trình (Program)

    Là một tập hợp các mô tả, các phát biểu, nằm trong một hệ thống qui ước về ý nghĩa và thứ tự thực hiện, nhằm điều khiển máy tính làm việc. Theo Niklaus Wirth thì:

    Chương trình = Thuật toán + Cấu trúc dữ liệu​

    Các thuật toán và chương trình đều có cấu trúc dựa trên 3 cấu trúc điều khiển cơ bản:

    * Tuần tự (Sequential) : Các bước thực hiện tuần tự một cách chính xác từ trên xuống, mỗi bước chỉ thực hiện đúng một lần.

    * Chọn lọc (Selection) : Chọn 1 trong 2 hay nhiều thao tác để thực hiện.

    * Lặp lại (Repetition) : Một hay nhiều bước được thực hiện lặp lại một số lần.

    Muốn trở thành lập trình viên chuyên nghiệp bạn hãy làm đúng trình tự để có thói quen tốt và thuận lợi sau này trên nhiều mặt của một người làm máy tính. Bạn hãy làm theo các bước sau:

    Tìm, xây dựng thuật giải (trên giấy) → viết chương trình trên máy

    → dịch chương trình → chạy và thử chương trình​

    1.2. 1.3 Ngôn ngữ lập trình (Programming language)

    Ngôn ngữ lập trình là hệ thống các ký hiệu tuân theo các qui ước về ngữ pháp và ngữ nghĩa, dùng để xây dựng thành các chương trình cho máy tính. Một chương trình được viết bằng một ngôn ngữ lập trình cụ thể (ví dụ Pascal, C) gọi là chương trình nguồn, chương trình dịch làm nhiệm vụ dịch chương trình nguồn thành chương trình thực thi được trên máy tính.

    1.2. 2 Các bước lập trình

    Bước 1: Phân tích vấn đề và xác định các đặc điểm. (xác định I-P-O)

    Bước 2: Lập ra giải pháp. (đưa ra thuật giải)

    Bước 3: Cài đặt. (viết chương trình)

    Bước 4: Chạy thử chương trình. (dịch chương trình)

    Bước 5: Kiểm chứng và hoàn thiện chương trình. (thử nghiệm bằng nhiều số liệu và đánh giá)

    1.2. 3 Kỹ thuật lập trình

    1.2. 3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nhập-xử lý-xuất)


    Quy trình xử lý cơ bản của máy tính gồm I-P-O.

    Input ---> Output ---> Process​

    Ví dụ 2: Xác định Input, Process, Output của việc làm 1 ly nước chanh nóng

    Input: Ly, đường, chanh, nước nóng, muỗng.

    Process: - cho hỗn hợp đường, chanh, nước nóng vào ly.

    - dùng muỗng khuấy đều.​

    Output: Ly chanh nóng đã sẵn sàng để dùng.

    Ví dụ 3: Xác định Input, Process, Output của chương trình tính tiền lương công nhân tháng 10/2002 biết rằng lương = lương căn bản * ngày công

    Input: Lương căn bản, ngày công

    Process: Nhân lương căn bản với ngày công

    Output: Lương

    Ví dụ 4: Xác định Input, Process, Output của chương trình giải phương trình bậc nhất ax + b = 0

    Input: Hệ số a, b

    Process: Chia – b cho a

    Output: Nghiệm x

    Ví dụ 5: Xác định Input, Process, Output của chương trình tìm số lớn nhất của 2 số a và b.

    Input: A, b

    Process: Nếu a > b thì Output = a lớn nhất

    Ngược lại Output = b lớn nhất​

    1.2. 3.2. Sử dụng lưu đồ (Flowchart)

    Để dễ hơn về quy trình xử lý, các nhà lập trình đưa ra dạng lưu đồ để minh họa từng bước quá trình xử lý một vấn đề (bài toán).

    [​IMG]

    Ví dụ:

    [​IMG]
     
    thienkim0308 thích bài này.
    Last edited by a moderator: 13 Tháng mười 2021
  3. Đồi Thổi Gió

    Bài viết:
    9
    Bài 2:

    LÀM QUEN LẬP TRÌNH C++ QUA CÁC VÍ DỤ ĐƠN GIẢN​

    Bấm để xem
    Đóng lại
    2.12.2Mục tiêu

    Sau khi hoàn tất bài này học viên sẽ hiểu và vận dụng các kiến thức kĩ năng cơ bản sau:

    - Ngôn ngữ C.

    - Một số thao tác cơ bản của trình soạn thảo C.

    - Cách lập trình trên C.

    - Tiếp cận một số lệnh đơn giản thông qua các ví dụ.

    - Nắm bắt được một số kỹ năng đơn giản.

    Nội dung

    2.2. 1 Khởi động và thoát BorlandC

    2.2. 1.1. Khởi động

    Nhập lệnh tại dấu nhắc DOS: Gõ BC ↵ (Enter) (nếu đường dẫn đã được cài đặt bằng lệnh path trong đó có chứa đường dẫn đến thư mục chứa tập tin BC. EXE). Nếu đường dẫn chưa được cài đặt ta tìm xem thư mục BORLANDC nằm ở ổ đĩa nào. Sau đó ta gõ lệnh sau:

    <ổ đĩa>: \BORLANDC\BIN\BC ↵ (Enter)​

    Nếu bạn muốn vừa khởi động BC vừa soạn thảo chương trình với một tập tin có tên do chúng ta đặt, thì gõ lệnh: BC [đường dẫn] <tên file cần soạn thảo>, nếu tên file cần soạn thảo đã có thì được nạp lên, nếu chưa có sẽ được tạo mới. Khởi động tại Windows: Bạn vào menu Start, chọn Run, bạn gõ vào hộp Open 1 trong các dòng lệnh như nhập tại DOS. Hoặc bạn vào Window Explorer, chọn ổ đĩa chứa thư mục BORLANDC, vào thư mục BORLANDC, vào thư mục BIN, khởi động tập tin BC. EXE.

    Ví dụ: Bạn gõ D: \BORLANDC\BIN\BC E: \BAITAP_BC\VIDU1. CPP

    Câu lệnh trên có nghĩa khởi động BC và nạp tập tin VIDU1. CPP chứa trong thư mục BAITAP_BC trong ổ đĩa E. Nếu tập tin này không có sẽ được tạo mới.

    2.2. 1.2. Thoát

    Ấn phím F10 (kích hoạt Menu), chọn menu File, chọn Quit; Hoặc ấn tổ hợp phím Alt – X.

    2.2. 2 Các ví dụ đơn giản

    2.2. 2.1. Ví dụ 1

    /* Chuong trinh in ra cau bai hoc C dau tien */

    #include <stdio. H>

    Void main (void)

    {

    Printf ( "Bai hoc C dau tien.") ;

    }

    Kết quả in ra màn hình: Bai hoc C dau tien. _

    Dòng thứ 1: Bắt đầu bằng /* và kết thúc bằng */ cho biết hàng này là hàng diễn giải (chú thích). Khi dịch và chạy chương trình, dòng này không được dịch và cũng không thi hành lệnh gì cả. Mục đích của việc ghi chú này giúp chương trình rõ ràng hơn. Sau này bạn đọc lại chương trình biết chương trình làm gì.

    Dòng thứ 2: Chứa phát biểu tiền xử lý #include <stdio. H>. Vì trong chương trình này ta sử dụng hàm thư viện của C là printf, do đó bạn cần phải có khai báo của hàm thư viện này để báo cho trình biên dịch C biết. Nếu không khai báo chương trình sẽ báo lỗi.

    Dòng thứ 3: Hàng trắng viết ra với ý đồ làm cho bảng chương trình thoáng, dễ đọc.

    Dòng thứ 4: Void main (void) là thành phần chính của mọi chương trình C (bạn có thể viết main () hoặc void main () hoặc main (void)) . Tuy nhiên, bạn nên viết theo dạng void main (void) để chương trình rõ ràng hơn. Mọi chương trình C đều bắt đầu thi hành từ hàm main. Cặp dấu ngoặc () cho biết đây là khối hàm (function). Hàm void main (void) có từ khóa void đầu tiên cho biết hàm này không trả về giá trị, từ khóa void trong ngoặc đơn cho biết hàm này không nhận vào đối số.

    Dòng thứ 5 và 7: Cặp dấu ngoặc móc {} giới hạn thân của hàm. Thân hàm bắt đầu bằng dấu { và kết thúc bằng dấu }. Dòng thứ 6: Printf ( "Bai hoc C dau tien.") ;, chỉ thị cho máy in ra chuỗi ký tự nằm trong nháy kép (" "). Hàng này được gọi là một câu lệnh, kết thúc một câu lệnh trong C phải là dấu chấm phẩy (;).

    / Chú ý:

    *Các từ include, stdio. H, void, main, printf phải viết bằng chữ thường.

    *Chuỗi trong nháy kép cần in ra" Bạn có thể viết chữ HOA, thường tùy, ý ".

    *Kết thúc câu lệnh phải có dấu chấm phẩy.

    *Kết thúc tên hàm không có dấu chấm phẩy hoặc bất cứ dấu gì.

    *Ghi chú phải đặt trong cặp /*.. */.

    *Thân hàm phải được bao bởi cặp { }.

    *Các câu lệnh trong thân hàm phải viết thụt vào.

    Ở dòng bạn vừa sửa có thêm \n, \n là ký hiệu xuống dòng sử dụng trong lệnh printf. Sau đây là một số ký hiệu khác.

    + Các kí tự điều khiển:

    \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.

    + Các kí tự đặc biệt:

    \\: In ra dấu \

    \" : In ra dấu"

    \': In ra dấu '
     
    thienkim0308 thích bài này.
    Last edited by a moderator: 13 Tháng mười 2021
  4. Đồi Thổi Gió

    Bài viết:
    9
    Bài 3:

    CÁC THÀNH PHẦN TRONG NGÔN NGỮ C++​

    Bấm để xem
    Đóng lại
    3.13.2Mục tiêu

    Sau khi hoàn tất bài này học viên sẽ hiểu và vận dụng các kiến thức kĩ năng cơ bản sau:

    - Khái niệm từ khóa

    - Các kiểu dữ liệu

    - Cách ghi chú

    - Đặt tên biến

    - Khai báo biến.

    - Phạm vi sử dụng biến.

    Nội dung

    3.2. 1 Từ khóa

    Từ khóa là từ có ý nghĩa xác định dùng để khai báo dữ liệu, viết câu lệnh.. Trong C có các từ khóa sau:

    [​IMG]

    Các từ khóa phải viết bằng chữ thường

    3.2. 2 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 thực hiện chương trình. Tên thường được đặt cho hằng, biến, mảng, con trỏ, nhãn.. Chiều dài tối đa của tê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 của tên phải là chữ hoặc dấu gạch dưới. Khi đặt tên không được đặt trùng với các 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, tên 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)

    3.2. 3 Kiểu dữ liệu

    Có 4 kiểu dữ liệu cơ bản trong C là: Char, int, float, double.

    [​IMG]

    3.2. 4 Ghi chú

    Trong khi lập trình cần phải ghi chú để giải thích các biến, hằng, thao tác xử lý giúp cho chương trình rõ ràng dễ hiểu, dễ nhớ, dễ sửa chữa và để người khác đọc vào dễ hiểu. Trong C có các ghi chú sau: // hoặc /* nội dung ghi chú */

    Ví dụ 3:

    Void main ()

    {

    Int a, b;

    //khai bao bien t kieu int

    A = 1;

    //gan 1 cho a

    B =3;

    //gan 3 cho b

    /* thuat toan tim so lon nhat la

    Neu a lon hon b thi a lon nhat

    Nguoc lai b lon nhat */

    If (a > b) printf ( "max: %d", a) ;

    Else printf ( "max: %d", b) ;

    }

    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.

    3.2. 5 Khai báo biến

    3.2. 5.1 Tên biến


    Cách đặt tên biến như mục 2.

    3.2. 5.2. Khai báo biến

    Cú pháp

    Kiểu dữ liệu Danh sách tên biến;

    Kiểu dữ liệu: 1 trong các kiểu ở mục 3

    Danh sách 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 (;).

    Khi khai báo biến nên đặt tên biến theo quy tắc Hungarian Notation

    Ví dụ 4:

    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 tê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 phải 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 là biết ngay biến này có kiểu float.

    3.2. 5.3. Vừa khai báo vừa khởi gán

    Có thể kết hợp việc khai báo với toán tử gán để biến nhận ngay giá trị cùng lúc với khai báo.

    Ví dụ 5:

    Khai báo trước, gán giá trị sau:

    Void main ()

    {

    Int a, b, c;

    A = 1;

    B = 2;

    C = 5;

    * * *

    }

    Vừa khai báo vừa gán giá trị:

    Void main ()

    {

    Int a = 1, b = 2, c = 5;

    * * *

    }

    3.2. 5.4. Phạm vi của biến

    Khi lập trình, bạn phải nắm rõ phạm vi của biến. Nếu khai báo và sử dụng không đúng, không rõ ràng sẽ dẫn đến sai sót khó kiểm soát được, vì vậy bạn cần phải xác định đúng vị trí, phạm vi sử dụng biến trước khi sử dụng biến. Khai báo biến ngoài (biến toàn cục) : Vị trí biến đặt bên ngoài tất cả các hàm, cấu trúc.. Các biến này có ảnh hưởng đến toàn bộ chương trình. Chu trình sống của nó là bắt đầu chạy chương trình đến lúc kết thúc chương trình. Khai báo biến trong (biến cục bộ) : Vị trí biến đặt bên trong hàm, cấu trúc.. Chỉ ảnh hưởng nội bộ bên trong hàm, cấu trúc đó.. Chu trình sống của nó bắt đầu từ lúc hàm, cấu trúc được gọi thực hiện đến lúc thực hiện xong
     
    thienkim0308 thích bài này.
    Last edited by a moderator: 13 Tháng mười 2021
Trả lời qua Facebook
Đang tải...