#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;
}
Comments
0 B
|👍
/👎
0 B
|0 👍
/0 👎
0 B
|👍
/👎