Xin thuật toán vẽ hình thang cân

Đề: Vẽ hình thang cân bằng dấu * với chiều cao và cạnh đáy cho trước

Em nghĩ mãi mà không ra ạ. Nếu cho 1 đơn vị bằng 3 dấu * thì cùng lắm chỉ vẽ được khi chiều cao <= đáy + 1 thôi ạ

Bài này phức tạp quá, kích thước Hình thang có thể rất to phụ thuộc vào tỉ lệ 3 dữ liệu vào

1 Like

Không có ví dụ mẫu à?
Cao = 6, Đáy nhỏ = 6, Đáy lớn = 8:

 ****** 
 *    * 
 *    * 
*      *
*      *
********

Nhìn như cái chai. :sweat_smile:

Tính toán tọa độ số nguyên mà dấu * rơi vào.
Để đỡ đau đầu thì tạo mảng 2 chiều (“bảng vẽ 2d”) có kích thước w x h (đáy lớn x cao)
Có 4 cạnh để “vẽ” dấu * vào. 2 cạnh đáy thì dễ vẽ rồi. Còn đường chéo đối xứng thì +-*/ để tính ra vị trí dấu hoa thị xuất hiện.

Sau đó in cả mảng 2d ra.

3 Likes

Nhưng không phải luôn luôn hình thang đó có kích thước wxh được vì còn tùy vào tỉ lệ các kích thước của nó, đôi khi tỉ lệ w x h ko đáp ứng được để in ra hình dạng

2 Likes

Nhưng mà k phải lúc nào nó cũng ra hình thang được đâu ạ. Ví dụ như cho đáy lớn là 4 còn cao là 6 thì nếu vẽ hình thang cân không thể nào vẽ được hình đáp ứng yêu cầu ạ. Chưa kể khi cho cả đáy lớn và đáy bé thì càng khó hơn ạ
VD: cạnh đáy lớn 4 ,chiều cao yêu cầu là 6 nhưng không vẽ được

    **
   ****
1 Like

nếu chiều cao < cạnh đáy - 1 thì em vẽ 1 đơn vị đáy = "* ". Em vẽ tam giác đều rồi cắt ra thành hình thang:

ví dụ cạnh đáy 6, chiều cao từ 1-4

Tam giác đều
     *
    * *
   *   *
  *     * 
 *       * 
* * * * * * 

Hình thang cân chiều cao = 4
    * *
   *   *
  *     * 
 *       * 
* * * * * * 

Hình thang cân chiều cao = 3
   * * *
  *     * 
 *       * 
* * * * * * 

Hình thang cân chiều cao = 2
  * * * * 
 *       * 
* * * * * * 

Hình thang cân chiều cao = 1
 * * * * * 
* * * * * * 

với chiều cao lớn hơn thì em “zoom” chiều cao lên, ví dụ chiều cao từ 5-10:

Tam giác cân
     *
     *
    * *
    * *
   *   *
   *   *
  *     * 
  *     * 
 *       * 
 *       * 
*         * 
* * * * * * 

Hình thang cân chiều cao = 10
     *
    * *
    * *
   *   *
   *   *
  *     * 
  *     * 
 *       * 
 *       * 
*         * 
* * * * * * 

Hình thang cân chiều cao = 9
    * *
    * *
   *   *
   *   *
  *     * 
  *     * 
 *       * 
 *       * 
*         * 
* * * * * * 

Hình thang cân chiều cao = 8
    * *
   *   *
   *   *
  *     * 
  *     * 
 *       * 
 *       * 
*         * 
* * * * * * 

Hình thang cân chiều cao = 7
   * * *
   *   *
  *     * 
  *     * 
 *       * 
 *       * 
*         * 
* * * * * * 

Hình thang cân chiều cao = 6
   * * *
  *     * 
  *     * 
 *       * 
 *       * 
*         * 
* * * * * * 

Hình thang cân chiều cao = 5
  * * * * 
  *     * 
 *       * 
 *       * 
*         * 
* * * * * * 

hơi xấu :V :V

4 Likes

Cái quan trọng là hơi xấu đó đấy ạ. Tại vì em muốn vẽ theo kiểu ngay ngắn nhìn vào là ra luôn hình thang :smile:

Tăng “độ phân giải” cho hình bạn vẽ đi, thay vì sử dụng 1 dấu cách thì tăng lên 3 dấu.

4 Likes

có tăng cũng khó vẽ đoạn thẳng tỷ lệ 1:2 hay 1:3 :V :V

5 Likes

Cài đồ họa vào… à mà thôi :smiley:

2 Likes

Tăng thì cũng thế thôi ạ. Nó chỉ có thể tăng độ chênh lệch của chiều cao với đáy một chút thôi. Nếu như chọn chênh lệch quá cao thì cũng vậy thôi :)))

Dấu * console mà bác :)))

4, 6 như vầy có tính k nhỉ. :thinking:


      * *
     *   *
    *     *
   *       *
  *         *
 *   *   *   *

Nếu có cho dãn thì nhiêu chẳng được. Cứ dãn cho đủ thì th. :kissing:

3 Likes

Nếu cho dãn đáy thì bao nhiêu cũng dc ạ, nhưng so về đơn vị thì không đồng đều ạ. Ví dụ như qui định 1 đơn vị đấy là bằng 4-5 kí tự thì sao ra độ dài 2 cạnh bên k tương đương :))

Cho đáy lớn với chiều cao, vậy đáy bé ở đâu vậy bạn :thinking:

2 Likes

Cho đáy lớn với chiều cao là còn dễ hơn cho đáy lớn và đáy bé luôn đấy ạ. Ví dụ cho đáy lớn là 4 còn đáy bé là 3 , chiều cao là 4 thì nếu vẽ ngay ngắn thì không chuẩn yêu cầu ạ.

    ***
   *****
  *******

Như thế này thì nếu đáy bé là 3 thì đáy lớn đã là 7 rồi ạ

1 Like

Nếu cho zoom lên thì cũng được mấy cái hình thang khá cân, mà zoom lên cũng chỉ có chừng mực thôi, đáy lớn với chiều cao hơi to (vd h = 10, b = 9) thì chịu :joy:

Đề ra chuối quá, vote dẹp :v

2 Likes

Em cũng nghĩ dẹp rồi đó ạ. tại vì nếu zoom lên thì củng được 1 số hình nhất định thôi. Nếu mà cho đáy với chiều cao chênh lệch nhiều quá thì cũng thua :smile:

Màn hình mấy triệu điểm ảnh còn không hoàn hảo. Nên đâu cần nó hoàn hảo? Cứ đúng định nghĩa là được.
Screenshot%20from%202020-03-17%2010-06-55

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?