GIAO TRINH HOC LAP TRINH WHILE DO C++, VI DU NOI DUNG VAN HOA VIET NAM. TRUONG QUOC TE BLOG

GIAO TRINH HOC LAP TRINH WHILE DO C++, VI DU NOI DUNG VAN HOA VIET NAM. TRUONG QUOC TE BLOG

Size
Price:

Read more »

 Giáo trình học lập trình C++: Vòng lặp while và do-while với ví dụ về Văn hóa Việt Nam

Chào bạn,
Vòng lặp là một trong những khái niệm cơ bản và quan trọng nhất trong lập trình, giúp chúng ta thực hiện một khối lệnh lặp đi lặp lại nhiều lần. Trong C++, hai loại vòng lặp phổ biến là while và do-while. Dưới đây là giáo trình chi tiết cùng với các ví dụ ứng dụng vào văn hóa Việt Nam để bạn dễ hình dung và nắm bắt.
1. Vòng lặp while
Vòng lặp while sẽ kiểm tra điều kiện trước khi thực hiện khối lệnh. Nếu điều kiện đúng, khối lệnh sẽ được thực hiện; sau đó, điều kiện lại được kiểm tra. Quá trình này lặp lại cho đến khi điều kiện sai.
Cú pháp:
while (dieu_kien) {
    // Khối lệnh sẽ được thực hiện nếu dieu_kien là true
}

Giải thích:
 * dieu_kien: Đây là một biểu thức logic (kiểu boolean) có thể là true hoặc false.
 * Nếu dieu_kien là true, các lệnh bên trong dấu ngoặc nhọn {} sẽ được thực thi.
 * Sau khi thực thi xong khối lệnh, chương trình sẽ quay lại kiểm tra dieu_kien một lần nữa.
 * Quá trình lặp lại cho đến khi dieu_kien trở thành false. Nếu điều kiện ban đầu đã sai, khối lệnh sẽ không bao giờ được thực thi.
Ví dụ 1: Đếm số lượng hoa mai nở trong dịp Tết
Giả sử bạn muốn đếm số lượng hoa mai nở cho đến khi đạt được một số lượng mong muốn.
#include <iostream>

int main() {
    int soLuongHoaMaiHienTai = 0;
    int soLuongHoaMaiCanCo = 5; // Mục tiêu có 5 bông hoa mai nở

    std::cout << "Chuan bi don Tet, chung ta cung ngam hoa mai!" << std::endl;

    while (soLuongHoaMaiHienTai < soLuongHoaMaiCanCo) {
        soLuongHoaMaiHienTai++;
        std::cout << "Da no duoc " << soLuongHoaMaiHienTai << " bong hoa mai." << std::endl;
    }

    std::cout << "Chuc mung nam moi! Chung ta da co " << soLuongHoaMaiHienTai << " bong hoa mai de trung Tet." << std::endl;

    return 0;
}

Giải thích ví dụ:
 * Vòng lặp while (soLuongHoaMaiHienTai < soLuongHoaMaiCanCo) sẽ tiếp tục chạy miễn là số lượng hoa mai hiện tại chưa đạt đến 5.
 * Mỗi lần lặp, soLuongHoaMaiHienTai tăng lên 1, tượng trưng cho một bông hoa mai nở.
 * Khi soLuongHoaMaiHienTai đạt 5, điều kiện soLuongHoaMaiHienTai < soLuongHoaMaiCanCo trở thành false, và vòng lặp kết thúc.
Ví dụ 2: Học thuộc các câu ca dao tục ngữ
Bạn muốn học thuộc lòng một số câu ca dao tục ngữ và sẽ tiếp tục đọc cho đến khi bạn thấy mình đã nhớ đủ.
#include <iostream>
#include <string>

int main() {
    std::string cacCauCaDao[] = {
        "Cong cha nhu nui Thai Son",
        "Nghia me nhu nuoc trong nguon chay ra",
        "Dao lam con phai chu hieu",
        "Moi long tho thao ghi long bien bien."
    };
    int soLuongCaDao = sizeof(cacCauCaDao) / sizeof(cacCauCaDao[0]);
    int cauHienTai = 0;
    char daThuocChua;

    std::cout << "Cung hoc thuoc cac cau ca dao tuc ngu Viet Nam:" << std::endl;

    while (cauHienTai < soLuongCaDao) {
        std::cout << "Cau ca dao so " << (cauHienTai + 1) << ": \"" << cacCauCaDao[cauHienTai] << "\"" << std::endl;
        std::cout << "Ban da thuoc cau nay chua? (y/n): ";
        std::cin >> daThuocChua;

        if (daThuocChua == 'y' || daThuocChua == 'Y') {
            cauHienTai++; // Chuyển sang câu tiếp theo
        } else {
            std::cout << "Hay doc lai lan nua!" << std::endl;
        }
    }

    std::cout << "Chuc mung! Ban da hoc thuoc cac cau ca dao quan trong!" << std::endl;

    return 0;
}

Giải thích ví dụ:
 * Vòng lặp while (cauHienTai < soLuongCaDao) sẽ tiếp tục hiển thị các câu ca dao cho đến khi bạn đã học thuộc tất cả các câu (tức là cauHienTai bằng soLuongCaDao).
 * Nếu người dùng nhập 'y' hoặc 'Y', cauHienTai sẽ tăng lên để chuyển sang câu tiếp theo. Ngược lại, câu hiện tại sẽ được đọc lại.
2. Vòng lặp do-while
Vòng lặp do-while khác với while ở chỗ nó thực hiện khối lệnh ít nhất một lần trước khi kiểm tra điều kiện. Sau đó, nếu điều kiện đúng, khối lệnh sẽ tiếp tục được thực hiện.
Cú pháp:
do {
    // Khối lệnh sẽ được thực hiện ít nhất một lần
} while (dieu_kien);

Giải thích:
 * Khối lệnh bên trong do { ... } sẽ luôn được thực thi ít nhất một lần, bất kể điều kiện ban đầu có đúng hay sai.
 * Sau khi khối lệnh được thực thi, dieu_kien sẽ được kiểm tra.
 * Nếu dieu_kien là true, quá trình lặp lại (thực thi khối lệnh, sau đó kiểm tra điều kiện).
 * Nếu dieu_kien là false, vòng lặp kết thúc.
Ví dụ 1: Chọn món ăn truyền thống trong thực đơn
Bạn đang ở một nhà hàng Việt Nam và muốn chọn một món ăn truyền thống. Bạn sẽ tiếp tục chọn cho đến khi chọn được một món hợp lệ.
#include <iostream>
#include <string>

int main() {
    int luaChonMonAn;

    std::cout << "Chao mung quy khach den voi nha hang Mon An Viet!" << std::endl;
    std::cout << "Xin moi chon mon an truoc khi goi mon:" << std::endl;

    do {
        std::cout << "---------------------------------" << std::endl;
        std::cout << "1. Pho Bo" << std::endl;
        std::cout << "2. Bun Cha" << std::endl;
        std::cout << "3. Banh Xeo" << std::endl;
        std::cout << "---------------------------------" << std::endl;
        std::cout << "Nhap lua chon cua ban (1-3): ";
        std::cin >> luaChonMonAn;

        if (luaChonMonAn < 1 || luaChonMonAn > 3) {
            std::cout << "Lua chon khong hop le. Vui long nhap lai!" << std::endl;
        }

    } while (luaChonMonAn < 1 || luaChonMonAn > 3);

    std::cout << "Quy khach da chon mon: ";
    switch (luaChonMonAn) {
        case 1:
            std::cout << "Pho Bo";
            break;
        case 2:
            std::cout << "Bun Cha";
            break;
        case 3:
            std::cout << "Banh Xeo";
            break;
    }
    std::cout << ". Chuc quy khach ngon mieng!" << std::endl;

    return 0;
}

Giải thích ví dụ:
 * Vòng lặp do-while đảm bảo rằng thực đơn sẽ được hiển thị và người dùng sẽ được yêu cầu nhập lựa chọn ít nhất một lần.
 * Điều kiện luaChonMonAn < 1 || luaChonMonAn > 3 kiểm tra xem lựa chọn của người dùng có nằm ngoài phạm vi từ 1 đến 3 hay không.
 * Nếu lựa chọn không hợp lệ, thông báo lỗi sẽ hiển thị và vòng lặp tiếp tục, yêu cầu người dùng nhập lại.
Ví dụ 2: Luyện tập viết chữ Hán Nôm
Bạn muốn luyện viết chữ Hán Nôm cho đến khi bạn cảm thấy đã đạt được độ chính xác nhất định.
#include <iostream>
#include <string>

int main() {
    char tiepTucLuyenTap;

    std::cout << "Chao mung ban den voi buoi luyen viet chu Han Nom!" << std::endl;

    do {
        std::cout << "---------------------------------" << std::endl;
        std::cout << "Bay gio la luc luyen tap viet chu Han Nom." << std::endl;
        std::cout << "Hay co gang viet that dep va dung nét nhe!" << std::endl;
        // Giả lập quá trình luyện tập viết chữ
        std::cout << "(Gia su ban da viet xong mot luot)" << std::endl;
        std::cout << "Ban co muon tiep tuc luyen tap nua khong? (y/n): ";
        std::cin >> tiepTucLuyenTap;
    } while (tiepTucLuyenTap == 'y' || tiepTucLuyenTap == 'Y');

    std::cout << "Chuc mung! Ban da co gang rat nhieu trong buoi luyen tap nay." << std::endl;

    return 0;
}

Giải thích ví dụ:
 * Vòng lặp do-while đảm bảo rằng ít nhất một lần "luyện tập viết chữ Hán Nôm" sẽ diễn ra.
 * Sau mỗi lần luyện tập, chương trình hỏi người dùng có muốn tiếp tục hay không.
 * Nếu người dùng nhập 'y' hoặc 'Y', vòng lặp sẽ tiếp tục. Ngược lại, vòng lặp kết thúc.
3. Khi nào nên dùng while và do-while?
 * Sử dụng while khi bạn không chắc chắn liệu khối lệnh có cần được thực thi hay không. Điều kiện sẽ được kiểm tra trước, và nếu sai, khối lệnh sẽ không bao giờ chạy.
   * Ví dụ: Đọc dữ liệu từ một tệp tin (bạn không biết tệp có rỗng hay không), tìm kiếm một phần tử trong danh sách (phần tử có thể không tồn tại).
 * Sử dụng do-while khi bạn muốn đảm bảo rằng khối lệnh sẽ được thực thi ít nhất một lần, sau đó mới kiểm tra điều kiện để quyết định có lặp lại hay không.
   * Ví dụ: Menu lựa chọn (luôn hiển thị menu ít nhất một lần), nhập mật khẩu (luôn yêu cầu nhập mật khẩu ít nhất một lần), trò chơi đoán số (luôn cho người chơi đoán ít nhất một lần).
Hy vọng giáo trình này giúp bạn hiểu rõ hơn về vòng lặp while và do-while trong C++ qua những ví dụ gần gũi với văn hóa Việt Nam. Hãy thực hành thật nhiều để nắm vững kiến thức này nhé!

0 Reviews

Biểu mẫu liên hệ

Tên

Email *

Thông báo *