Điện thoại

02933878955

Email

[email protected]

Giờ mở cửa

Thứ Hai - Chủ Nhật: 8 AM - 9 PM

Bài tập vẽ hình chữ nhật rỗng là một trong những bài tập cơ bản giúp bạn làm quen với ngôn ngữ lập trình C, đặc biệt là với các khái niệm về vòng lặp và điều kiện. Bài viết này sẽ hướng dẫn bạn cách giải quyết bài toán này một cách chi tiết và dễ hiểu nhất.

Minh họa hình chữ nhật rỗng trong CMinh họa hình chữ nhật rỗng trong C

Hiểu Bài Toán

Trước khi bắt tay vào viết code, hãy cùng xác định rõ yêu cầu của bài toán. Chúng ta cần viết một chương trình C cho phép người dùng nhập vào chiều dài và chiều rộng của hình chữ nhật. Sau đó, chương trình sẽ in ra màn hình hình chữ nhật rỗng tương ứng, được tạo bởi các dấu sao (*) và khoảng trắng.

Giải Thuật

Có nhiều cách để vẽ hình chữ nhật rỗng trong C, nhưng chúng ta sẽ tập trung vào phương pháp sử dụng hai vòng lặp lồng nhau:

  1. Vòng lặp bên ngoài: Điều khiển việc in từng dòng của hình chữ nhật.
  2. Vòng lặp bên trong: Điều khiển việc in các ký tự trên mỗi dòng.

Cụ thể:

  • Dòng đầu tiên và dòng cuối cùng: In toàn bộ là dấu sao (*).
  • Các dòng ở giữa: In dấu sao (*) ở đầu và cuối dòng, còn lại là khoảng trắng.

Code Mẫu

Dưới đây là đoạn code C minh họa cho giải thuật trên:

#include <stdio.h>

int main() {
  int chieuDai, chieuRong, i, j;

  printf("Nhap chieu dai: ");
  scanf("%d", &chieuDai);
  printf("Nhap chieu rong: ");
  scanf("%d", &chieuRong);

  for (i = 1; i <= chieuDai; i++) {
    for (j = 1; j <= chieuRong; j++) {
      if (i == 1 || i == chieuDai || j == 1 || j == chieuRong) {
        printf("*");
      } else {
        printf(" ");
      }
    }
    printf("n");
  }

  return 0;
}

Giải Thích Code

  • #include <stdio.h>: Khai báo thư viện stdio.h để sử dụng các hàm nhập xuất như printfscanf.
  • int main() { ... }: Hàm main là nơi chương trình bắt đầu thực thi.
  • int chieuDai, chieuRong, i, j;: Khai báo các biến nguyên chieuDai, chieuRong để lưu chiều dài, chiều rộng hình chữ nhật, và i, j để làm biến đếm cho vòng lặp.
  • printf("Nhap chieu dai: "); scanf("%d", &chieuDai);: Hiển thị thông báo yêu cầu người dùng nhập chiều dài và lưu giá trị nhập vào biến chieuDai.
  • printf("Nhap chieu rong: "); scanf("%d", &chieuRong);: Tương tự như trên, yêu cầu nhập chiều rộng và lưu vào biến chieuRong.
  • for (i = 1; i <= chieuDai; i++) { ... }: Vòng lặp bên ngoài duyệt qua từng dòng của hình chữ nhật.
  • for (j = 1; j <= chieuRong; j++) { ... }: Vòng lặp bên trong duyệt qua từng vị trí trên mỗi dòng.
  • if (i == 1 || i == chieuDai || j == 1 || j == chieuRong) { ... }: Kiểm tra xem vị trí hiện tại có nằm trên cạnh của hình chữ nhật hay không. Nếu có, in dấu sao (*), ngược lại in khoảng trắng.
  • printf("n");: Xuống dòng sau khi in xong mỗi dòng của hình chữ nhật.

Phân tích code vẽ hình chữ nhậtPhân tích code vẽ hình chữ nhật

Bài Tập Mở Rộng

Để nâng cao kỹ năng lập trình C, bạn có thể thử thách bản thân với một số biến thể của bài toán như:

  • Vẽ hình chữ nhật đặc.
  • Vẽ hình tam giác vuông, tam giác cân.
  • Vẽ hình thoi.
  • Vẽ hình chữ nhật có đường chéo.

Bạn có thể tham khảo thêm các bài viết khác trên website của Lớp Học Vẽ như:

Kết Luận

Bài viết đã hướng dẫn bạn cách vẽ hình chữ nhật rỗng trong C một cách chi tiết. Hi vọng bài viết này sẽ giúp bạn nắm vững kiến thức về vòng lặp và điều kiện trong C, từ đó có thể tự tin giải quyết các bài toán lập trình cơ bản khác.

FAQ

1. Tại sao cần sử dụng hai vòng lặp lồng nhau?

Vì hình chữ nhật được tạo thành từ nhiều dòng và mỗi dòng lại bao gồm nhiều ký tự. Vòng lặp bên ngoài giúp duyệt qua từng dòng, vòng lặp bên trong giúp duyệt qua từng ký tự trên mỗi dòng.

*2. Có thể thay thế dấu sao () bằng ký tự khác được không?**

Hoàn toàn được. Bạn có thể thay thế dấu sao bằng bất kỳ ký tự nào bạn muốn.

3. Làm cách nào để vẽ hình chữ nhật đặc?

Bạn chỉ cần thay đoạn code kiểm tra điều kiện in dấu sao hay khoảng trắng thành printf("*"); là được.

4. Tôi muốn tìm hiểu thêm về các bài tập vẽ hình khác trong C. Tôi có thể tìm thấy chúng ở đâu?

Bạn có thể tìm thấy nhiều bài tập vẽ hình khác trong C trên các trang web như Tutorialspoint, Programiz, GeeksforGeeks,…

Bạn cần hỗ trợ?

Nếu bạn cần hỗ trợ, hãy liên hệ:

  • Số Điện Thoại: 02933878955
  • Email: [email protected]
  • Địa chỉ: QCRW+366, Vị Tân, Vị Thanh, Hậu Giang, Việt Nam.

Chúng tôi có đội ngũ chăm sóc khách hàng 24/7.

Bài viết được đề xuất