Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created October 2, 2025 10:47
Show Gist options
  • Save sunmeat/4cf2da65718d7a234dd26cc5c1dbc601 to your computer and use it in GitHub Desktop.
Save sunmeat/4cf2da65718d7a234dd26cc5c1dbc601 to your computer and use it in GitHub Desktop.
цикли в сішарп
using System.Reflection;
using System.Text;
namespace Cycles
{
static class Input
{
static int number;
public static int Number()
{
while (true) // !!!!!!!!!!!!!!!!!!!!!!!!!!!
{
try
{
number = Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("потрібно було ввести число, а не рядок!");
continue;
}
catch (OverflowException)
{
Console.WriteLine("занадто велике число!");
continue;
}
break;
}
return number;
}
}
class Tree
{
int row;
int height;
public Tree(int r, int h) { row = r; height = h; }
public void Print(char symbol)
{
Console.Clear();
int middle = (height * 2 - 1) / 2 + row;
int startX;
int startY = Console.CursorTop;
int length;
Console.ForegroundColor = ConsoleColor.Green;
for (int i = 0; i < row; i++) // !!!!!!!!!!!!!!!!!!!!!!!!!!!
{
length = i * 2 + 1;
startX = middle - i;
for (int j = 0; j < height; j++)
{
Console.SetCursorPosition(startX, startY);
for (int z = 0; z < length; z++)
{
Console.Write(symbol);
}
length += 2;
startX--;
startY++;
}
}
if (middle < 6)
{
startX = middle;
length = 1;
}
else
{
startX = middle - 1;
length = 3;
}
Console.ForegroundColor = ConsoleColor.DarkRed;
for (int i = 0; i < 3; i++)
{
Console.SetCursorPosition(startX, startY);
for (int z = 0; z < length; z++)
{
Console.Write('#');
}
startY++;
}
Console.WriteLine("");
int semaphore = 0;
Console.CursorVisible = false;
while (true)
{
switch (semaphore)
{
case 0:
Console.ForegroundColor = ConsoleColor.Blue;
semaphore = 1;
break;
case 1:
Console.ForegroundColor = ConsoleColor.Yellow;
semaphore = 2;
break;
case 2:
Console.ForegroundColor = ConsoleColor.Red;
semaphore = 0;
break;
}
Console.SetCursorPosition(middle, 0);
Console.Write("@");
Thread.Sleep(150);
}
}
}
class Program
{
static void Main()
{
Console.InputEncoding = Encoding.UTF8;
Console.OutputEncoding = Encoding.UTF8;
// перевірка на паліндром за допомогою циклу for
int counter = 0;
string str = "racecar";
// порівняння першої букви з останньою, другої з передостанньою тощо
for (int i = 0, j = str.Length - 1; i < j; i++, j--) // !!!!!!!!!!!!!!!!!!!!!!!!!!!
{
if (str[i] == str[j])
{
// якщо букви рівні, прирощується лічильник
counter++;
}
}
// якщо лічильник дорівнює половині довжини рядка, то рядок є паліндромом
if (counter == str.Length / 2)
{
Console.WriteLine("рядок \"{0}\" є паліндромом", str);
}
else
{
Console.WriteLine("рядок \"{0}\" не є паліндромом", str);
}
// додавання чисел згенерованих комп'ютером у діапазоні від 0 до 20 поки сума не буде дорівнювати 100, вивід кількості чисел
var rand = new Random();
// лічильник для чисел
int count = 0;
// змінна для зберігання числа
int number = 0;
// змінна для зберігання суми
int sum = 0;
Console.WriteLine("числа:");
// поки сума менше або дорівнює 100
while (sum <= 100) // !!!!!!!!!!!!!!!!!!!!!!!!!!!
{
// генерація числа
number = rand.Next(0, 20);
Console.WriteLine(number);
// додавання числа до суми
sum += number;
// прирощення лічильника
count++;
}
Console.WriteLine("\nзгенеровано {0} чисел від 0 до 20", count);
// підрахунок суми всіх цифр будь-якого числа
// змінна для суми всіх цифр
int totalSum = 0;
// ціле число, з якого витягуватимуться цифри
int inputNumber = 0;
Console.WriteLine("введіть будь-яке ціле число:");
inputNumber = Convert.ToInt32(Console.ReadLine());
// запам'ятовування числа
int copy = inputNumber;
do // !!!!!!!!!!!!!!!!!!!!!!!!!!!
{
// знаходження останньої цифри та сумування її з поточним значенням суми
totalSum = totalSum + inputNumber % 10;
// відсікання останньої цифри від числа
inputNumber = (inputNumber - inputNumber % 10) / 10;
}
// якщо n більше нуля, повернутися і повторити оператори тіла циклу
while (inputNumber > 0);
Console.WriteLine("сума всіх цифр {0} є {1}", copy, totalSum);
// демонстрація циклу foreach, обчислення суми, максимального та мінімального елементів масиву, заповненого випадковими числами
int size = 10;
int[] numbers = new int[size];
for (int i = 0; i < size; i++)
{
numbers[i] = rand.Next(100);
}
long arraySum = 0;
int maximum = numbers[0];
int minimum = numbers[0];
Console.WriteLine("елементи:");
foreach (int num in numbers) // !!!!!!!!!!!!!!!!!!!!!!!!!!!
{
Console.WriteLine(num);
arraySum += num;
if (num > maximum)
{
maximum = num;
}
else if (num < minimum)
{
minimum = num;
}
}
Console.WriteLine("\nсума: {0}\nмінімум: {1}\nмаксимум: {2}", arraySum, minimum, maximum);
// рефлексія для виведення властивостей класу console
// !!!!!!!!!!!!!!!!!!!!!!!!!!!
foreach (MemberInfo mi in typeof(Console).GetMembers().Where(m => m.MemberType == MemberTypes.Property))
{
Console.WriteLine(mi);
Thread.Sleep(200);
}
// малювання ялинки з валідацією вводу
Console.Title = "щасливого нового року 2025!!!";
int row, height;
do
{
Console.Write("щоб намалювати ялинку, вкажіть:\nкількість ярусів: ");
row = Input.Number();
Console.Write("висоту ярусу: ");
height = Input.Number();
if (row <= 0)
{
Console.WriteLine("кількість рядів не може бути меншою за одиницю");
}
if (height <= 0)
{
Console.WriteLine("висота не може бути меншою за одиницю");
}
Thread.Sleep(1000);
Console.Clear();
} while (row < 1 || height < 1);
Console.BufferHeight = Console.LargestWindowHeight;
Console.BufferWidth = Console.BufferWidth;
bool flagRow = false, flagHeight = false;
// !!!!!!!!!!!!!!!!!!!!!!!!!!!
while (row * height + 5 > Console.LargestWindowHeight || (height * 2 - 1) + row * 2 + 1 > Console.LargestWindowWidth)
{
if (row * height + 5 > Console.LargestWindowHeight)
{
if (row > 1)
row--;
flagRow = true;
}
if ((height * 2 - 1) + row * 2 + 1 > Console.LargestWindowWidth)
{
if (height > 1)
height--;
flagHeight = true;
}
}
if (flagRow)
{
Console.WriteLine("висота ялинки перевищуватиме розмір екрана,\nтому зменшуємо кількість ярусів до {0}", row);
Thread.Sleep(2000);
}
if (flagHeight)
{
Console.WriteLine("заданий розмір ялинки перевищуватиме розмір екрана,\nтому зменшуємо висоту ярусу до {0}", height);
Thread.Sleep(2000);
}
Console.WindowHeight = row * height + 5;
Console.WindowWidth = (height * 2 - 1) + row * 2 + 1;
Tree xmas = new Tree(row, height);
xmas.Print('»');
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment