Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h> // potrebne najma kvoli funkcii abs()
- int main(void)
- {
- int sirka, vyska, velk, opak, i, py, y, px, x;
- scanf("%d", &opak); // nacitanie prveho vstupu - poctu obrazcov
- for (i=0; i<opak; i++) // cyklus pre realizovanie jednotlivych obrazcov
- {
- scanf("%d %d %d", &vyska, &sirka, &velk); // nacitanie vstupov o obrazci
- if (velk%2 == 0) // osetrenie vstupov; mozeme sem pridat aj dalsie podmienky, napr. na premenne vyska, sirka, ...
- return 1;
- int stred = velk/2; // stred vyjadruje suradnicu osi symetrie zakladneho vzoru
- // netreba +1 pretoze indexujem od nuly
- for (py = 0; py < vyska; py++) // cyklus realizujuci opakovanie obrazcov pod seba
- {
- for (y = 0; y < velk; y++) // cyklus realizujuci vypis jednotlivych riadkov zakladneho vzoru
- {
- for (px = 0; px < sirka; px++) // cyklus realizujuci opakovanie obrazcov vedla seba
- {
- for (x = 0; x < velk; x++) // cyklus na prechod jedneho riadku, v ramci zakladneho vzoru
- {
- // podmienka vyjadrujuca zakladny vzor
- // V tomto vzore demonstrujem viacere zakladne vzory,
- // k pouzitiu je nutne aktualnu podmienku zakomentovat, a odkomentovat prislusnu
- // VZDY TEDA MUSI BYT AKTIVNA - ODKOMENTOVANA LEN JEDINA PODMIENKA
- // Vsimnite si, ze pre vyraz == sa definuje iba urcita 'ciara',
- // zatial co pri nerovnoasti >, >=, <, <= predstavuje plochu
- // vzory ktore su vyrazne symetricke, sa daju velmi elegantne realizovat
- // aj pouzitim absolutnej hodnoty, hoci je to casto narocne na predstavu
- if (abs(x-stred)+abs(y-stred)==stred) // uloha pica ('kosostvorec') z posledneho testu
- // if (((px + py)%2) == 0) // SACHOVNICA
- // if (abs(x-stred)+abs(y-stred)<=stred)
- // if (abs(x-stred)+abs(y-stred)>stred)
- // if (abs(x-stred)+abs(y-stred)>stred-2)
- // if (abs(x-stred)<=abs(y-stred)) // 'presypacie hodiny'
- // rozne ciarky a plochy
- // if (x==y) // usecka - spatne lomitko '\'
- // if (x<=y)
- // if (x+y < velk) // trojuholnikova plocha
- // if (x+y == velk-1) // usecka - bezne lomitko /
- // Spajanie podmienok pomocou jednoduchych logickych operatorov && a ||
- // if ((x+y == velk-1) || (x==y)) // 'X'
- // if ((x<=y) && (x+y < velk)) // lava trojuholnikova plocha
- // Modulo (zvysok po deleni) je vhodne vyuzit, ak chcem 'rovnomerne' bodkami vyplnit nejaku oblast
- // if ((x+y)%2)
- // if (((x+y)%3) == 1)
- // KRUZNICA A KRUH
- // if ((1.0*((x-stred)*(x-stred)+(y-stred)*(y-stred)) > 0.95*stred*stred)
- // && (1.0*((x-stred)*(x-stred)+(y-stred)*(y-stred)) < 1.05*stred*stred)) // kruznica
- // if (1.0*((x-stred)*(x-stred)+(y-stred)*(y-stred)) < 1.1*stred*stred) // kruh;
- // vyrazi x-stred a y-stred reprezentuju vlastne posun pociatku suradnicovej sustavy do stredu obrazku
- printf("*");
- else
- printf(".");
- }
- }
- printf("\n");
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement