C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で2D形状を印刷するプログラム


このチュートリアルでは、2D形状を印刷するプログラムについて説明します。

このために、半径、側面の長さ、側面の幅など、形状を作成するために必要なさまざまなパラメータが提供されます。それに応じて、厚みのない形状を印刷することがタスクです。

#include <bits/stdc++.h>
using namespace std;
void print_circle(int radius){
   for (int i = 0; i <= 2 * radius; i++){
      for (int j = 0; j <= 2 * radius; j++){
         double distance = sqrt((double)(i - radius) * (i -
         radius) + (j - radius) * (j - radius));
         if (distance > radius - 0.5 &&
            distance < radius + 0.5)
            printf("*");
         else
         printf(" ");
      }
      printf("\n");
   }
}
void print_rectangle(int l, int b){
   int i, j;
   for (i = 1; i <= l; i++){
      for (j = 1; j <= b; j++)
         if (i == 1 || i == l || j == 1 || j == b)
            printf("*");
         else
            printf(" ");
         printf("\n");
   }
}
void print_triangle(int side){
   int i, j;
   for (i = 1; i <= side; i++){
      for (j = i; j < side; j++)
         printf(" ");
      for (j = 1; j <= (2 * i - 1); j++){
         if (i == side || j == 1 || j == (2 * i - 1))
            printf("*");
         else
            printf(" ");
      }
      printf("\n");
   }
}
void print_hexagon(int length){
   int l, j, i, k;
   for (i = 1, k = length, l = 2 * length - 1; i < length;
   i++, k--, l++){
      for (j = 0; j < 3 * length; j++)
         if (j >= k && j <= l)
            printf("*");
         else
            printf(" ");
            printf("\n");
      }
      for (i = 0, k = 1, l = 3 * length - 2; i < length; i++,
      k++, l--){
         for (j = 0; j < 3 * length; j++)
         if (j >= k && j <= l)
            printf("*");
         else
         printf(" ");
         printf("\n");
      }
   }
   void calc_pattern(int choice){
      int radius, length, breadth, side;
      switch (choice){
         case 1:
            radius = 4;
            print_circle(radius);
            break;
         case 2:
            length = 3, breadth = 8;
            print_rectangle(length, breadth);
            break;
         case 3:
            side = 6;
            print_triangle(side);
            break;
         case 4:
            side = 4;
            print_hexagon(side);
            break;
         default:
            printf("Invalid choice\n");
   }
}
int main(){
   int choice = 1;
   calc_pattern(choice);
   return 0;
}

出力

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

  1. C++でパリティを見つけるプログラム

    このチュートリアルでは、パリティを見つけるためのプログラムについて説明します。 このために、番号が提供されます。私たちの仕事は、そのパリティ、つまり、1の数が奇数か偶数かを数えることです。 例 # include<bits/stdc++.h> # define bool int using namespace std; //finding the parity of given number bool getParity(unsigned int n) {    bool parity = 0;    while (n){   &

  2. C++でバイナリツリーを印刷する

    これらのルールに基づいて、m *n2D文字列配列に二分木を表示する必要があるとします- 行番号mは、指定された二分木の高さと同じである必要があります。 列番号nは常に奇数である必要があります。 ルートノードの値は、配置できる最初の行の真ん中に配置する必要があります。ルートノードが存在する列と行は、残りのスペースを2つの部分に分割します。これらは左下部分と右下部分です。左下の部分に左のサブツリーを印刷し、右下の部分に右のサブツリーを印刷する必要があります。ここで、左下部分と右下部分は同じサイズである必要があります。一方のサブツリーがnoneで、もう一方がnoneでない場合でも、noneサブツリ