Advertisement
Guest User

Untitled

a guest
Oct 29th, 2011
772
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.05 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const int N = 8;
  6.  
  7. char Mrizka[N][N];
  8.  
  9. void SmazMrizku(void);
  10. void Hvezda(const int, const int);
  11. void VytiskniMrizku(void);
  12.  
  13. void SmazMrizku() {
  14.  
  15.     for(int i = 0; i < N; i++)
  16.         for(int j = 0; j < N; j++)
  17.             Mrizka[i][j] = ' ';
  18.  
  19. }
  20.  
  21. void Hvezda(const int Radek, const int Stloupec) {
  22.     if (0 <= Radek && Radek < N && 0 <= Stloupec && Stloupec < N)
  23.         Mrizka[Radek][Stloupec] = '*';
  24.     else
  25.         printf("Souradnice mimo meze!\n");
  26. }
  27.  
  28. void VytiskniMrizku() {
  29.     for(int i = 0; i < N; i++)
  30.     {
  31.         for(int j = 0; j < N; j++)
  32.             cout << Mrizka[i][j];
  33.         cout << endl;
  34.     }
  35.     cout << endl;
  36. }
  37.  
  38. int main() {
  39.     int median = N / 2;
  40.     bool strana = true, orientacia = true;
  41.  
  42.     /* Obrazec cislo 1 */
  43.     SmazMrizku();
  44.     for(int i = 0; i < N; i++) {
  45.         Hvezda(i,i); // diagonala
  46.         Hvezda(i,median); // zvisly riadok *
  47.         Hvezda(i,N-i-1); // opacna diagonala
  48.         Hvezda(median,i); // vodorovny riadok *
  49.     }
  50.     VytiskniMrizku();
  51.  
  52.     /* Obrazec cislo 2 */
  53.     SmazMrizku();
  54.     for(int i = 0; i < N; i++) {
  55.         Hvezda(0,i); // vodorovny riadok prvy
  56.         Hvezda(i,0); // horizontalny riadok
  57.         Hvezda(i,median);
  58.         Hvezda(median,i);
  59.         Hvezda(i,N-1);
  60.         Hvezda(N-1,i); // vodorovny riadok posledny
  61.     }
  62.     VytiskniMrizku();
  63.  
  64.     /* Obrazec cislo 3 */
  65.     SmazMrizku();
  66.     for(int i = 0; i < N; i++) {
  67.         Hvezda(0,i); // prvy vodorovny riadok
  68.         Hvezda(i,0); // prvy zvisly riadok
  69.         Hvezda(i,i); // diagonala
  70.         Hvezda(i,N-i-1); // opacna diagonala
  71.         Hvezda(i,N-1); // posledny zvisly riadok
  72.         Hvezda(N-1,i); // posledny vodorovny riadok
  73.     }
  74.     VytiskniMrizku();
  75.  
  76.     /* Obrazec cislo 4 */
  77.     SmazMrizku();
  78.     for(int i = 0; i < N; i++) {
  79.         Hvezda(0,i); // vo dorovná horní
  80.         Hvezda(i,N-1-i); // diagonála
  81.         Hvezda(N-1,i); // vodorovná spodní
  82.     }
  83.     VytiskniMrizku();
  84.  
  85.     /* Obrazec cislo 5 */
  86.     SmazMrizku();
  87.     for(int i = 0; i < N; i++) {
  88.         Hvezda(0,i);
  89.         Hvezda(i,i);
  90.         Hvezda(N-1,i);
  91.     }
  92.     VytiskniMrizku();
  93.  
  94.     /* Obrazec cislo 6 */
  95.     SmazMrizku();
  96.     for(int i = 0; i < N; i++) {
  97.         Hvezda(i,0);
  98.         Hvezda(i,i);
  99.         Hvezda(i,N-1);
  100.  
  101.     }
  102.     VytiskniMrizku();
  103.  
  104.  
  105.     /* Obrazec cislo 7 */
  106.     SmazMrizku();
  107.     for(int i = 0; i < N; i++) {
  108.         Hvezda(i,0);
  109.         Hvezda(i,N-i-1);
  110.         Hvezda(i,N-1);
  111.  
  112.     }
  113.     VytiskniMrizku();
  114.  
  115.  
  116.     /* Obrazec cislo 8 */
  117.     SmazMrizku();
  118.  
  119.     for(int i = 0; i < N; i++) {
  120.         Hvezda(0,i);
  121.         Hvezda(i,0);
  122.  
  123.         if (i % 2 == 0) {
  124.             for(int j = 0; j < N; j++) {
  125.                 Hvezda(i,j);
  126.                 Hvezda(j,i);
  127.             }
  128.         }
  129.     }
  130.  
  131.     VytiskniMrizku();
  132.  
  133.     /* Obrazec cislo 9 */
  134.     SmazMrizku();
  135.  
  136.     for(int i = 0; i < N; i++) {
  137.         Hvezda(N/3, i);
  138.         Hvezda(i, N/3);
  139.         Hvezda(i, (2*N)/3);
  140.         Hvezda((2*N)/3, i);
  141.     }
  142.  
  143.     VytiskniMrizku();
  144.  
  145.  
  146.     /* Obrazec cislo 10 */
  147.     SmazMrizku();
  148.     for(int i = 0; i < N; i++) {
  149.        
  150.         if (i % 2 == 0) {
  151.             for(int j = 0; j < N; j++)
  152.                 Hvezda(i,j);
  153.         }
  154.         else {
  155.             if (strana) {
  156.                 Hvezda(i,N-1);
  157.                 strana = false;
  158.             }
  159.             else {
  160.                 Hvezda(i,0);
  161.                 strana = true;
  162.             }
  163.         }
  164.     }
  165.     VytiskniMrizku();
  166.  
  167.     /* Obrazec cislo 11 */
  168.     SmazMrizku();
  169.     for(int i = 0; i < N; i++) {
  170.        
  171.         if (i % 2 == 0) {
  172.             for(int j = 0; j < N; j++)
  173.                 Hvezda(j,i);
  174.         }
  175.         else {
  176.             if (orientacia) {
  177.                 Hvezda(N-1,i);
  178.                 orientacia = false;
  179.             }
  180.             else {
  181.                 Hvezda(0,i);
  182.                 orientacia = true;
  183.             }
  184.         }
  185.     }
  186.     VytiskniMrizku();
  187.  
  188.  
  189.     /* Obrazec cislo 12 */
  190.     SmazMrizku();
  191.     for(int i = 0; i < N; i++) {
  192.        
  193.         if (i % 2 == 0) {
  194.             for(int j = 0; j < N; j++)
  195.                 if (j % 2 != 0)
  196.                     Hvezda(i,j);
  197.         }
  198.         else {
  199.             for(int k = 0; k < N; k++)
  200.                 if (k % 2 == 0)
  201.                     Hvezda(i,k);
  202.         }
  203.     }
  204.     VytiskniMrizku();
  205.  
  206.  
  207.     /* Obrazec cislo 13 */
  208.     SmazMrizku();
  209.     for(int i = 0; i < N; i++) {
  210.        
  211.         if (i < median) {
  212.             Hvezda(0,i);
  213.             Hvezda(i,0);
  214.             Hvezda(i,median-1);
  215.             Hvezda(median-1,i);
  216.         }
  217.         else {
  218.             Hvezda(i,N-1);
  219.             Hvezda(median,i);
  220.             Hvezda(i,median);
  221.             Hvezda(N-1,i);
  222.         }
  223.     }
  224.     VytiskniMrizku();
  225.  
  226.  
  227.     /* Obrazec cislo 14 */
  228.     SmazMrizku();
  229.     for(int i = 0; i < N; i++) {
  230.        
  231.         if (i < median)
  232.             for(int j = 0; j < median; j++)
  233.                 Hvezda(median+i,j);
  234.         else
  235.             for(int j = median; j < N; j++)
  236.                 Hvezda(i-median,j);
  237.        
  238.     }
  239.     VytiskniMrizku();
  240.  
  241.  
  242.     /* Obrazec cislo 15 */
  243.     SmazMrizku();
  244.     for(int i = 0; i < N; i++) {
  245.        
  246.         if (i < median) {
  247.             Hvezda(i, median-i-1);
  248.             Hvezda(i, median+i);
  249.         }
  250.         else if (i >= median) {
  251.              Hvezda(i, i-median);
  252.              Hvezda(i, (N+median-1)-i);
  253.              
  254.         }
  255.        
  256.     }
  257.     VytiskniMrizku();
  258.  
  259.  
  260.     /* Obrazec cislo 16 */
  261.     SmazMrizku();
  262.     for(int i = 0; i < N; i++) {
  263.  
  264.         if (i < median) {
  265.             for(int j = median-i-1; j <= median+i; j++)
  266.                 Hvezda(i,j);
  267.         }
  268.         else {
  269.             for(int j = i-median; j < N+median-i; j++)
  270.                 Hvezda(i,j);
  271.         }
  272.     }
  273.     VytiskniMrizku();
  274.  
  275.  
  276.     /* Obrazec cislo 17 */
  277.     SmazMrizku();
  278.     for(int i = 0; i < N; i++) {
  279.  
  280.         for(int j = 0; j < N; j++)
  281.             if ((i+j) % 3 == 0)
  282.                 Hvezda(i,j);
  283.        
  284.     }
  285.     VytiskniMrizku();
  286.  
  287.     /* Obrazec cislo 18 - by Pavel Puček */
  288.     SmazMrizku();
  289.  
  290.     int x = 1;
  291.  
  292.     for (int i = 0, j = 0; i < N; i++, j += x) {
  293.         for (int k = j; k < N; k += 3)
  294.             Hvezda(i, k);
  295.  
  296.         if (i % 3 == 0 && i > 0)
  297.             x *= -1;
  298.     }
  299.     VytiskniMrizku();
  300.  
  301.     /* Obrazec cislo 19 */
  302.     SmazMrizku();
  303.     for(int i = 0; i < N; i++) {
  304.  
  305.         if (i < median) {
  306.             for(int j = i; j < N-i; j++)
  307.                 Hvezda(i,j);
  308.         }
  309.         else {
  310.             for(int j = N-i-1; j <= i; j++)
  311.                 Hvezda(i,j);
  312.         }
  313.     }
  314.     VytiskniMrizku();
  315.  
  316.     /* Obrazec cislo 20 */
  317.     SmazMrizku();
  318.  
  319.     int pocCtvercov = N / 4, tmp = 0, poc = 0;
  320.     int plus = 0;
  321.     bool zaciatok = true;
  322.  
  323.     for(int i = 0; i < N; i++) {
  324.         tmp = 0;
  325.         poc = 0;
  326.        
  327.         if (plus == 0 || plus == 1) {
  328.  
  329.             while (poc != pocCtvercov) {
  330.  
  331.                 for(int j = tmp; j < tmp+2; j++)
  332.                     Hvezda(i, j);
  333.            
  334.             tmp += 4;
  335.             poc++;
  336.             }
  337.             plus++;
  338.         }
  339.         else if (plus == 2) {
  340.             tmp = 2;
  341.             while (poc != pocCtvercov) {
  342.  
  343.                 for(int j = tmp; j < tmp+2; j++)
  344.                     Hvezda(i, j);
  345.            
  346.             tmp += 4;
  347.             poc++;
  348.             }
  349.             plus++;
  350.         }
  351.         else if (plus == 3) {
  352.             tmp = 2;
  353.             while (poc != pocCtvercov) {
  354.  
  355.                 for(int j = tmp; j < tmp+2; j++)
  356.                     Hvezda(i, j);
  357.            
  358.             tmp += 4;
  359.             poc++;
  360.             }
  361.             plus = 0;
  362.         }
  363.     }
  364.     VytiskniMrizku();
  365.  
  366.     system("PAUSE");
  367.  
  368.     return 0;
  369. }
  370.  
  371.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement