Загрузка данных
using System;
namespace AllTasks
{
// ============================================
// TASK 1: Number generators (even, odd, prime, Fibonacci)
// ============================================
namespace NumberGenerators
{
public class EvenNumbers
{
public int[] Generate(int count)
{
int[] result = new int[count];
for (int i = 0; i < count; i++)
{
result[i] = i * 2;
}
return result;
}
}
public class OddNumbers
{
public int[] Generate(int count)
{
int[] result = new int[count];
for (int i = 0; i < count; i++)
{
result[i] = i * 2 + 1;
}
return result;
}
}
public class PrimeNumbers
{
public int[] Generate(int count)
{
int[] result = new int[count];
int found = 0;
int number = 2;
while (found < count)
{
if (IsPrime(number))
{
result[found] = number;
found++;
}
number++;
}
return result;
}
private bool IsPrime(int n)
{
if (n < 2) return false;
for (int i = 2; i * i <= n; i++)
{
if (n % i == 0) return false;
}
return true;
}
}
public class FibonacciNumbers
{
public int[] Generate(int count)
{
int[] result = new int[count];
if (count >= 1) result[0] = 0;
if (count >= 2) result[1] = 1;
for (int i = 2; i < count; i++)
{
result[i] = result[i - 1] + result[i - 2];
}
return result;
}
}
}
// ============================================
// TASK 2: Geometric shapes
// ============================================
namespace Shapes
{
public class Rectangle
{
public void Draw(int height)
{
int width = height * 2;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
Console.Write("* ");
}
Console.WriteLine();
}
}
}
public class Square
{
public void Draw(int side)
{
for (int i = 0; i < side; i++)
{
for (int j = 0; j < side; j++)
{
Console.Write("* ");
}
Console.WriteLine();
}
}
}
public class Triangle
{
public void Draw(int height)
{
for (int i = 1; i <= height; i++)
{
// spaces
for (int j = 0; j < height - i; j++)
{
Console.Write(" ");
}
// stars
for (int k = 0; k < 2 * i - 1; k++)
{
Console.Write("* ");
}
Console.WriteLine();
}
}
}
}
// ============================================
// TASK 3: Game "Guess the number" (computer guesses)
// ============================================
namespace GuessGame
{
public class ComputerGuesser
{
public void Play()
{
Console.WriteLine("\n=== GAME: Computer guesses your number ===");
Console.Write("Enter minimum number: ");
int min = int.Parse(Console.ReadLine());
Console.Write("Enter maximum number: ");
int max = int.Parse(Console.ReadLine());
int attempts = 0;
int currentMin = min;
int currentMax = max;
Console.WriteLine($"\nThink of a number between {min} and {max}. I will try to guess!");
Console.WriteLine("Answer: > (greater), < (less), = (got it)");
while (currentMin <= currentMax)
{
int guess = (currentMin + currentMax) / 2;
attempts++;
Console.Write($"\nAttempt {attempts}: Is your number {guess}? (>, <, =): ");
string answer = Console.ReadLine();
if (answer == "=")
{
Console.WriteLine($"\nYes! I guessed {guess} in {attempts} attempts!");
return;
}
else if (answer == ">")
{
currentMin = guess + 1;
}
else if (answer == "<")
{
currentMax = guess - 1;
}
else
{
Console.WriteLine("Please enter >, < or =");
attempts--;
}
}
Console.WriteLine("\nSomething went wrong. Let's play again!");
}
}
}
// ============================================
// TASK 4: Pseudo text generator
// ============================================
namespace PseudoText
{
public class TextGenerator
{
private Random random = new Random();
private string consonants = "bcdfghjklmnpqrstvwxyz";
private string vowels = "aeiou";
public string GenerateWord(int maxLength, int consonantCount, int vowelCount)
{
int totalLetters = consonantCount + vowelCount;
if (totalLetters > maxLength) totalLetters = maxLength;
if (totalLetters <= 0) return "";
char[] letters = new char[totalLetters];
int index = 0;
// Add consonants
for (int i = 0; i < consonantCount && index < totalLetters; i++)
{
letters[index] = consonants[random.Next(consonants.Length)];
index++;
}
// Add vowels
for (int i = 0; i < vowelCount && index < totalLetters; i++)
{
letters[index] = vowels[random.Next(vowels.Length)];
index++;
}
// Shuffle letters
for (int i = 0; i < letters.Length; i++)
{
int j = random.Next(letters.Length);
char temp = letters[i];
letters[i] = letters[j];
letters[j] = temp;
}
return new string(letters);
}
public string GenerateText(int wordCount, int maxWordLength, int consonantCount, int vowelCount)
{
string[] words = new string[wordCount];
for (int i = 0; i < wordCount; i++)
{
words[i] = GenerateWord(maxWordLength, consonantCount, vowelCount);
}
return string.Join(" ", words);
}
public void Run()
{
Console.WriteLine("\n=== PSEUDO TEXT GENERATOR ===");
Console.Write("Number of words: ");
int wordCount = int.Parse(Console.ReadLine());
Console.Write("Max word length: ");
int maxLength = int.Parse(Console.ReadLine());
Console.Write("Number of consonants per word: ");
int consonantCount = int.Parse(Console.ReadLine());
Console.Write("Number of vowels per word: ");
int vowelCount = int.Parse(Console.ReadLine());
string text = GenerateText(wordCount, maxLength, consonantCount, vowelCount);
Console.WriteLine($"\nGenerated text:\n{text}");
}
}
}
// ============================================
// MAIN PROGRAM (Menu)
// ============================================
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Clear();
Console.WriteLine("========== MAIN MENU ==========");
Console.WriteLine("1. Task 1 - Number generators");
Console.WriteLine("2. Task 2 - Draw shapes");
Console.WriteLine("3. Task 3 - Guess number game");
Console.WriteLine("4. Task 4 - Pseudo text generator");
Console.WriteLine("0. Exit");
Console.Write("Choose task: ");
string choice = Console.ReadLine();
if (choice == "0") break;
switch (choice)
{
case "1":
Task1Menu();
break;
case "2":
Task2Menu();
break;
case "3":
GuessGame.ComputerGuesser game = new GuessGame.ComputerGuesser();
game.Play();
Console.WriteLine("\nPress any key to continue...");
Console.ReadKey();
break;
case "4":
PseudoText.TextGenerator textGen = new PseudoText.TextGenerator();
textGen.Run();
Console.WriteLine("\nPress any key to continue...");
Console.ReadKey();
break;
default:
Console.WriteLine("Wrong choice!");
Console.ReadKey();
break;
}
}
}
static void Task1Menu()
{
Console.Clear();
Console.WriteLine("=== NUMBER GENERATORS ===");
Console.Write("How many numbers to generate: ");
int count = int.Parse(Console.ReadLine());
NumberGenerators.EvenNumbers evenGen = new NumberGenerators.EvenNumbers();
NumberGenerators.OddNumbers oddGen = new NumberGenerators.OddNumbers();
NumberGenerators.PrimeNumbers primeGen = new NumberGenerators.PrimeNumbers();
NumberGenerators.FibonacciNumbers fibGen = new NumberGenerators.FibonacciNumbers();
int[] even = evenGen.Generate(count);
int[] odd = oddGen.Generate(count);
int[] prime = primeGen.Generate(count);
int[] fib = fibGen.Generate(count);
Console.WriteLine("\nEven numbers: " + string.Join(", ", even));
Console.WriteLine("Odd numbers: " + string.Join(", ", odd));
Console.WriteLine("Prime numbers: " + string.Join(", ", prime));
Console.WriteLine("Fibonacci numbers: " + string.Join(", ", fib));
Console.WriteLine("\nPress any key to continue...");
Console.ReadKey();
}
static void Task2Menu()
{
Console.Clear();
Console.WriteLine("=== DRAW SHAPES ===");
Console.Write("Enter size (height/side): ");
int size = int.Parse(Console.ReadLine());
Shapes.Rectangle rect = new Shapes.Rectangle();
Shapes.Square square = new Shapes.Square();
Shapes.Triangle triangle = new Shapes.Triangle();
Console.WriteLine("\nRectangle:");
rect.Draw(size);
Console.WriteLine("\nSquare:");
square.Draw(size);
Console.WriteLine("\nTriangle:");
triangle.Draw(size);
Console.WriteLine("\nPress any key to continue...");
Console.ReadKey();
}
}
}