C++ – In ra hình tam giác với các ký tự *

C++ – In ra hình tam giác với các ký tự *

Viết một chương trình in ra hình tam giác như sau :

ex for 1 JPG

Với số dòng được nhập từ bàn phím.

test php

Bài giải
——————– # # # # # # # # ——————–
Cách giải bài toán trên như sau :banquyen png

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

  • Nhập số dòng từ bàn phím, ta gọi biến đó là soDong
  • Sử dụng vòng lặp for để lặp qua các dòng từ 1 đến soDong, cú pháp của vòng lặp là for(int i = 1; i <= soDong; i++) 
  • Sử dụng vòng lặp for để lặp từ 1 đến i để in các ngôi sao cho từng dòng, cú pháp của vòng lặp là for(int j = 1; j <= i; j++)
  • Sau khi in tất cả ngôi sao cho 1 dòng sẽ xuống dòng, ví dụ cout << endl

Chúng ta sẽ giải bài toán trên bằng cách sử dụng vòng lặp for trong C++ như sau:

#include 
using namespace std;

int main()
{
    int soDong;
    cout << "Nhap so dong: ";
    cin >> soDong;
    for(int i = 1; i <= soDong; i++) {
        //in so ky tu sao
        for(int j = 1; j <= i; j++) {
            cout << "*";
        }

        //xuong dong ke tiep
        cout << endl;
    }
    return 0;
}

Và hiệu quả khi thực thi chương trình trên như sau :

Khi nhập số dòng là 8:

ex for 2 JPG

Khi nhập số dòng là 3:

ex for 3 JPG

Tương tự tất cả chúng ta sẽ viết chương trình để in những hình tam giác sau :

Tam giác hình kim tự tháp:

ex for 4 JPG

Chương trình sử dụng vòng lặp for để in hình trên như sau:

#include 
using namespace std;

int main()
{
    int soDong;
    cout << "Nhap so dong: ";
    cin >> soDong;
    for(int i = 1; i <= soDong; i++) { 
        // in ky tu khoang trang
        for(int j = i; j < soDong; j++) {
            cout << " ";
        }

        // in ky tu ngoi sao
        for(int j = 1; j <= (2*i-1); j++) {
            cout << "*";
        }

        // xuong dong ke tiep
        cout << endl;
    }
    return 0;
}

Tam giác hình kim tự tháp ngược:

ex for 5 JPG

Chương trình sử dụng vòng lặp for để in hình trên như sau:

#include 
using namespace std;

int main()
{
    int soDong;
    cout << "Nhap so dong: ";
    cin >> soDong;
    for(int i = 1; i <= soDong; i++)
    {
        // in ky tu khoang trang
        for(int j = 1; j < i; j++)
        {
            cout << " ";
        }

        // in ky tu ngoi sao
        for(int j = 1; j <= (soDong*2 -(2*i-1)); j++)
        {
            cout << "*";
        }

        // xuong dong ke tiep
        cout << endl;
    }
    return 0;
}

Như vậy bài toán in hình không khó, tất cả chúng ta chỉ cần nhìn hình và tìm ra quy luật của nó là gì là hoàn toàn có thể xử lý được bài toán .

7. Bài tập vòng lặp for trong C++

Cùng chuyên mục: