Saturday, 16 June 2012

Sand Watch

Кода представен по долу, служи за нарисуването на пясъчен часовник на конзолата, като празното пространство се запълва с ".", а самият часовник с"*". При зададен размер (например 10) тя автоматично го нарисува на екрана.
Задачата е разделена на две части. Часовника се представя като два триъгълника, които се нарисуват чрез вложени цикли. За първият триъгълник се използва цикъл, който увеличава точките на ред, а вложеният в него втори цикъл намалява звездичките. За другият триъгълник се използва пак цикъл, но той намалява точките на ред,а вложеният в него втори цикъл увеличава звездичките. Така двата триъгълника стават огледални и изглеждат като пясъчен часовник. Големината на нарисуваният часовник зависи от въведеното от потребителя число на конзолата (броя редове).


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string Line = Console.ReadLine();
int n = int.Parse(Line);
for (int i = 1; i <= n; i++)
{
if (i % 2 != 0)
{
for (int j = 1; 2*j < i; j++)
{
Console.Write(".");
}
Console.Write("*");
for (int j = i; j < n; j++)
{
Console.Write("*");
}
for (int j = 1; 2 * j < i; j++)
{
Console.Write(".");
}
Console.WriteLine();
}
}
for (int i = n - 1; i > 0; i--)
{
if (i % 2 != 0)
{
for (int j = 1; 2*j < i; j++)
{
Console.Write(".");
}
Console.Write("*");
for (int j = i; j < n; j++)
{
Console.Write("*");
}
for (int j = 1; 2 * j < i; j++)
{
Console.Write(".");
}
Console.WriteLine();
}
}
}
}
}
view raw gistfile1.cs hosted with ❤ by GitHub

No comments:

Post a Comment