dpokatski 80dcdc3d8c lab5 11 months ago
..
readme.md 80dcdc3d8c lab5 11 months ago
task1.cs 80dcdc3d8c lab5 11 months ago
task2.cs 80dcdc3d8c lab5 11 months ago
task3.cs 80dcdc3d8c lab5 11 months ago
task4.cs 80dcdc3d8c lab5 11 months ago
task5.cs 80dcdc3d8c lab5 11 months ago

readme.md

Lab 5

Задача 691. Номера автобусов

Решение:

string[] valid = { "A", "B", "C", "E", "H", "K", "M", "O", "P", "T", "X", "Y" };
Console.WriteLine("Введите номер автобуса:");
while (true)
{
string input = Console.ReadLine();

if (string.IsNullOrEmpty(input))
{
break;
}

if (input.Length != 6)
{
Console.WriteLine("Неверный формат номера.");
continue;
}

string a = input.Substring(0, 1);
string b = input.Substring(4, 2);
string c = input.Substring(1, 3);

if (!valid.Contains(a) || !valid.Contains(b.Substring(0, 1)) || !valid.Contains(b.Substring(1, 1)))
{
Console.WriteLine("Неверный формат номера.");
continue;
}

if (!int.TryParse(c, out int parsedDigits))
{
Console.WriteLine("Неверный формат номера.");
continue;
}

Console.WriteLine("Номер автобуса соответствует стандарту.");
}

Вывод:

Введите номер автобуса:
A658OP
Номер автобуса соответствует стандарту.
G8HHoP
Неверный формат номера.

Задача 950. Сжатие бинарных последовательностей

Решение:

Console.WriteLine("Введите бинарную последовательность:");
string a = Console.ReadLine();
StringBuilder b = new StringBuilder();

for (int i = 0; i < a.Length; i++)
{
int count = 1;

while (i + 1 < a.Length && a[i] == a[i + 1])
{
count++;
i++;
}

if (a[i] == '0')
{
b.Append('a', count);
}
else
{
char compressedChar = (char)('a' + count - 1);
b.Append(compressedChar);
}
}
Console.WriteLine($"Сжатая последовательность: {b}");

Вывод:

Введите бинарную последовательность:
000000111001101100
Сжатая последовательность: aaaaaacaababaa

Задача 44. Стрелки

Решение:

Console.WriteLine("Введите последовательность символов:");
string a = Console.ReadLine();
int b = 0;

for (int i = 0; i < a.Length - 4; i++)
{
if (a.Substring(i, 5) == ">>-->")
{
b++;
}
else if (a.Substring(i, 5) == "<--<<")
{
b++;
}
}
Console.WriteLine($"Количество стрел: {b}");

Вывод:

Введите последовательность символов:
>>-->>--><--<<<
Количество стрел: 3

Задача 95. Нумеролог

Решение:

static void Main()
{
Console.WriteLine("Введите время жизни человека в секундах:");

long a = long.Parse(Console.ReadLine());
int b = GetDigitSum(a);
int c = 1;

while (b >= 10)
{
b = GetDigitSum(b);
c++;
}
Console.WriteLine($"Полученная цифра: {b}");
Console.WriteLine($"Количество операций: {c}");
}

static int GetDigitSum(long number)
{
int b = 0;

while (number > 0)
{
b += (int)(number % 10);
number /= 10;
}
return b;
}

Вывод:

Введите время жизни человека в секундах:
36000
Полученная цифра: 9
Количество операций: 1

Задача 693. Перестановка

Решение:

Console.WriteLine("Введите первое слово:");
string x = Console.ReadLine().ToLower();

Console.WriteLine("Введите второе слово:");
string y = Console.ReadLine().ToLower();

bool isEqual = Enumerable.SequenceEqual(x.OrderBy(e => e), y.OrderBy(e => e));
if (isEqual)
{
    Console.WriteLine("Yes");
}
else
{
    Console.WriteLine("No");
}

Вывод:

Введите первое слово:
TomMarvoloRiddle
Введите второе слово:
IamLordVoldemort
Yes