fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. typedef bool dot(int y,int x,int size);
  6.  
  7. void draw(int yl,int yh,int xl,int xh,int size,dot *check)
  8. {
  9. for(int y=yl;y<=yh;++y,cout<<endl) for(int x=xl;x<=xh;++x) cout<<check(y,x,size)[" *"];
  10. }
  11.  
  12. struct { const char *name; dot *check; } tb[]=
  13. {
  14. {"diamond",[](int y,int x,int size) { return abs(y)+abs(x)<=size; } },
  15. {"triangle A",[](int y,int x,int size) { return y+x<=0; } },
  16. {"triangle B",[](int y,int x,int size) { return y+x>=0; } },
  17. {"triangle C",[](int y,int x,int size) { return y-x<=0; } },
  18. {"triangle D",[](int y,int x,int size) { return y-x>=0; } },
  19. {"rectangle",[](int y,int x,int size) { return (abs(y)==size)||(abs(x)==size); } },
  20. {"cross A",[](int y,int x,int size) { return abs(y)==abs(x); } },
  21. {"cross B",[](int y,int x,int size) { return (!y)||(!x); } },
  22. {"hourglass A",[](int y,int x,int size) { return (y<=0)&&(x<=y)||(y>=0)&&(x>=y); } },
  23. {"hourglass B",[](int y,int x,int size) { return (x<=0)&&(x>=y)||(x>=0)&&(x<=y); } },
  24. {"ellipse A",[](int y,int x,int size) { return round(sqrt(x*x+y*y))==size; } },
  25. {"ellipse B",[](int y,int x,int size) { return round(sqrt(x*x+y*y))<=size; } },
  26. {"ellipse C",[](int y,int x,int size) { return round(sqrt(x*x+y*y))>size; } },
  27. };
  28.  
  29. int main()
  30. {
  31. for(int count;(cout<<"Podaj rozmiar: ")&&(cin>>count);)
  32. {
  33. for(auto shape:tb)
  34. {
  35. cout<<shape.name<<':'<<endl;
  36. draw(-count,count,-count,count,count,shape.check);
  37. cout<<endl<<endl;
  38. }
  39. }
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0.01s 5408KB
stdin
4
5
6
7
stdout
Podaj rozmiar: diamond:
    *    
   ***   
  *****  
 ******* 
*********
 ******* 
  *****  
   ***   
    *    


triangle A:
*********
******** 
*******  
******   
*****    
****     
***      
**       
*        


triangle B:
        *
       **
      ***
     ****
    *****
   ******
  *******
 ********
*********


triangle C:
*********
 ********
  *******
   ******
    *****
     ****
      ***
       **
        *


triangle D:
*        
**       
***      
****     
*****    
******   
*******  
******** 
*********


rectangle:
*********
*       *
*       *
*       *
*       *
*       *
*       *
*       *
*********


cross A:
*       *
 *     * 
  *   *  
   * *   
    *    
   * *   
  *   *  
 *     * 
*       *


cross B:
    *    
    *    
    *    
    *    
*********
    *    
    *    
    *    
    *    


hourglass A:
*        
**       
***      
****     
*********
     ****
      ***
       **
        *


hourglass B:
*****    
 ****    
  ***    
   **    
    *    
    **   
    ***  
    **** 
    *****


ellipse A:
  *****  
 **   ** 
**     **
*       *
*       *
*       *
**     **
 **   ** 
  *****  


ellipse B:
  *****  
 ******* 
*********
*********
*********
*********
*********
 ******* 
  *****  


ellipse C:
**     **
*       *
         
         
         
         
         
*       *
**     **


Podaj rozmiar: diamond:
     *     
    ***    
   *****   
  *******  
 ********* 
***********
 ********* 
  *******  
   *****   
    ***    
     *     


triangle A:
***********
********** 
*********  
********   
*******    
******     
*****      
****       
***        
**         
*          


triangle B:
          *
         **
        ***
       ****
      *****
     ******
    *******
   ********
  *********
 **********
***********


triangle C:
***********
 **********
  *********
   ********
    *******
     ******
      *****
       ****
        ***
         **
          *


triangle D:
*          
**         
***        
****       
*****      
******     
*******    
********   
*********  
********** 
***********


rectangle:
***********
*         *
*         *
*         *
*         *
*         *
*         *
*         *
*         *
*         *
***********


cross A:
*         *
 *       * 
  *     *  
   *   *   
    * *    
     *     
    * *    
   *   *   
  *     *  
 *       * 
*         *


cross B:
     *     
     *     
     *     
     *     
     *     
***********
     *     
     *     
     *     
     *     
     *     


hourglass A:
*          
**         
***        
****       
*****      
***********
      *****
       ****
        ***
         **
          *


hourglass B:
******     
 *****     
  ****     
   ***     
    **     
     *     
     **    
     ***   
     ****  
     ***** 
     ******


ellipse A:
   *****   
  *     *  
 *       * 
*         *
*         *
*         *
*         *
*         *
 *       * 
  *     *  
   *****   


ellipse B:
   *****   
  *******  
 ********* 
***********
***********
***********
***********
***********
 ********* 
  *******  
   *****   


ellipse C:
***     ***
**       **
*         *
           
           
           
           
           
*         *
**       **
***     ***


Podaj rozmiar: diamond:
      *      
     ***     
    *****    
   *******   
  *********  
 *********** 
*************
 *********** 
  *********  
   *******   
    *****    
     ***     
      *      


triangle A:
*************
************ 
***********  
**********   
*********    
********     
*******      
******       
*****        
****         
***          
**           
*            


triangle B:
            *
           **
          ***
         ****
        *****
       ******
      *******
     ********
    *********
   **********
  ***********
 ************
*************


triangle C:
*************
 ************
  ***********
   **********
    *********
     ********
      *******
       ******
        *****
         ****
          ***
           **
            *


triangle D:
*            
**           
***          
****         
*****        
******       
*******      
********     
*********    
**********   
***********  
************ 
*************


rectangle:
*************
*           *
*           *
*           *
*           *
*           *
*           *
*           *
*           *
*           *
*           *
*           *
*************


cross A:
*           *
 *         * 
  *       *  
   *     *   
    *   *    
     * *     
      *      
     * *     
    *   *    
   *     *   
  *       *  
 *         * 
*           *


cross B:
      *      
      *      
      *      
      *      
      *      
      *      
*************
      *      
      *      
      *      
      *      
      *      
      *      


hourglass A:
*            
**           
***          
****         
*****        
******       
*************
       ******
        *****
         ****
          ***
           **
            *


hourglass B:
*******      
 ******      
  *****      
   ****      
    ***      
     **      
      *      
      **     
      ***    
      ****   
      *****  
      ****** 
      *******


ellipse A:
    *****    
  **     **  
 **       ** 
 *         * 
*           *
*           *
*           *
*           *
*           *
 *         * 
 **       ** 
  **     **  
    *****    


ellipse B:
    *****    
  *********  
 *********** 
 *********** 
*************
*************
*************
*************
*************
 *********** 
 *********** 
  *********  
    *****    


ellipse C:
****     ****
**         **
*           *
*           *
             
             
             
             
             
*           *
*           *
**         **
****     ****


Podaj rozmiar: diamond:
       *       
      ***      
     *****     
    *******    
   *********   
  ***********  
 ************* 
***************
 ************* 
  ***********  
   *********   
    *******    
     *****     
      ***      
       *       


triangle A:
***************
************** 
*************  
************   
***********    
**********     
*********      
********       
*******        
******         
*****          
****           
***            
**             
*              


triangle B:
              *
             **
            ***
           ****
          *****
         ******
        *******
       ********
      *********
     **********
    ***********
   ************
  *************
 **************
***************


triangle C:
***************
 **************
  *************
   ************
    ***********
     **********
      *********
       ********
        *******
         ******
          *****
           ****
            ***
             **
              *


triangle D:
*              
**             
***            
****           
*****          
******         
*******        
********       
*********      
**********     
***********    
************   
*************  
************** 
***************


rectangle:
***************
*             *
*             *
*             *
*             *
*             *
*             *
*             *
*             *
*             *
*             *
*             *
*             *
*             *
***************


cross A:
*             *
 *           * 
  *         *  
   *       *   
    *     *    
     *   *     
      * *      
       *       
      * *      
     *   *     
    *     *    
   *       *   
  *         *  
 *           * 
*             *


cross B:
       *       
       *       
       *       
       *       
       *       
       *       
       *       
***************
       *       
       *       
       *       
       *       
       *       
       *       
       *       


hourglass A:
*              
**             
***            
****           
*****          
******         
*******        
***************
        *******
         ******
          *****
           ****
            ***
             **
              *


hourglass B:
********       
 *******       
  ******       
   *****       
    ****       
     ***       
      **       
       *       
       **      
       ***     
       ****    
       *****   
       ******  
       ******* 
       ********


ellipse A:
     *****     
   **     **   
  *         *  
 *           * 
 *           * 
*             *
*             *
*             *
*             *
*             *
 *           * 
 *           * 
  *         *  
   **     **   
     *****     


ellipse B:
     *****     
   *********   
  ***********  
 ************* 
 ************* 
***************
***************
***************
***************
***************
 ************* 
 ************* 
  ***********  
   *********   
     *****     


ellipse C:
*****     *****
***         ***
**           **
*             *
*             *
               
               
               
               
               
*             *
*             *
**           **
***         ***
*****     *****


Podaj rozmiar: