Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
263 changes: 19 additions & 244 deletions Lesson03/Lesson03/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,264 +18,39 @@
// yig'ib umumiy o'rta qiymatini (sum / n) qaytaradi.
internal class Program
{
public delegate void PrintMessage();
public delegate int Transform(int x);
public delegate void DisplayNumber(int x);

public delegate bool ValidateNumber(int number);
public delegate void Greet(bool isSignedIn);

public delegate bool ValidateAll(int number);
public delegate bool ValidateAny(int number);
public delegate int ValidateSum(int number);
public delegate int ValidateAverage(int number);
static void Main(string[] args)
{
#region Sample 1

// PrintMessage printMessage = new PrintMessage(Hello);
// PrintMessage printMessage = Hello;

// printMessage.Invoke();
//printMessage();
//Console.WriteLine();

//printMessage += World;
//printMessage += Hello;

//printMessage();

//Console.WriteLine();

//printMessage -= Hello;
//printMessage -= Hello;
//printMessage -= Hello;
//printMessage -= World;

//printMessage?.Invoke();
//Console.WriteLine();

//PrintMessage message1 = printMessage;
//message1();
//PrintMessage printMessage2 = message1 + printMessage;

//printMessage2();

#endregion

int[] numbers =
{ -5, -7, -10, -50, -4, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

//Transform transformer = Square;
//transformer += Cube;

//int num = transformer(3);

//TransformNumbers(numbers, Square, DisplayNumberWithColor);
//TransformNumbers(numbers, Cube, WriteNumberToFile);

//DisplayNumbers(numbers, IsEven);
//DisplayNumbers(numbers, IsPositive);

string language = Console.ReadLine();

if (language == "uz")
{
StartApplication(WelcomeUserUzb);
}
else
{
StartApplication(WelcomeUserEn);
}
}

static void DisplayHello(string name, int age)
{
if (age > 17)
{
Console.WriteLine($"Hello: {name}. You can take driver license");
}
else
{
Console.WriteLine($"Hello: {name}. You cannot take driver license");
}
}

static void StartApplication(Greet greet)
{
bool isSignedIn = true;

greet(isSignedIn);
}

static void WelcomeUserUzb(bool isSignedIn)
{
if (isSignedIn)
{
Console.WriteLine("Qayta ko'rishdan xursandmiz!");
}
else
{
Console.WriteLine("Xush kelibsiz!");
}
}

static void WelcomeUserEn(bool isSignedIn)
{
if (isSignedIn)
{
Console.WriteLine("Welcome back!");
}
else
{
Console.WriteLine("Welcome!");
}
}

static void DisplayNumbers(int[] numbers, Validator validator)
{
foreach (var number in numbers)
{
DisplayNumberWithColor(number, validator);
}

Console.WriteLine();
}

static void DisplayNumbers(int[] numbers, ValidateNumber validator)
{
foreach (var number in numbers)
{
DisplayNumberWithColor(number, validator);
}

Console.WriteLine();
}

static void TransformNumbers(int[] numbers, Transform transfomer, DisplayNumber displayer)
{
foreach (var number in numbers)
{
displayer(transfomer(number));
}

Console.WriteLine();
}

static bool IsEven(int x)
{
return x % 2 == 0;

}

static bool IsPositive(int x)
static bool All(List<int> numbers, ValidateAll validator)
{
return x >= 0;
}

static void DisplayNumberWithColor(int x, ValidateNumber validator)
{
if (validator(x))
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(x + " ");
Console.ResetColor();
return;
}

Console.ForegroundColor = ConsoleColor.Red;
Console.Write(x + " ");
Console.ResetColor();
}

static void DisplayNumberWithColor(int x, Validator validator)
{
if (validator.IsEven(x))
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(x + " ");
Console.ResetColor();
return;
}

Console.ForegroundColor = ConsoleColor.Red;
Console.Write(x + " ");
Console.ResetColor();
}

static void DisplayNumberWithPositive(int x)
{
if (x < 0)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write(x + " ");
Console.ResetColor();
return;
}

Console.ForegroundColor = ConsoleColor.Green;
Console.Write(x + " ");
Console.ResetColor();
return numbers.All(x => validator(x));
}

static void WriteNumberToFile(int x)
static bool Any(List<int> numbers , ValidateAny validator)
{
// Write to file
Console.WriteLine($"Writing to file number: {x}");
return numbers.Any(x => validator(x));
}

static void TransformNumbersToSquare(int[] numbers)
static int Summ(List<int> numbers ,ValidateSum validator)
{
foreach (var number in numbers)
int sum = 0;
foreach(int i in numbers)
{
Console.Write(Square(number) + " ");
sum += validator(i);
}

Console.WriteLine();
return sum;
}

static void TransformNumbersToCube(int[] numbers)
static double Average(List<int> numbers, ValidateAverage validator)
{
foreach (var number in numbers)
double sum = 0;
foreach (int i in numbers)
{
Console.Write(Cube(number) + " ");
sum += validator(i);
}

Console.WriteLine();
return sum/numbers.Count;
}

static int Square(int x)
{
return x * x;
}

static int Cube(int x)
{
return x * x * x;
}

static void Hello()
{
Console.WriteLine("Hello");
}

static void World()
{
Console.WriteLine("World");
}
}

class Validator
{
public bool IsEven(int x)
{
return x % 2 == 0;
}

public bool IsPositive(int x)
{
return x >= 0;
}
}

class Person
{
public string Name { get; set; }
public int age { get; set; }
}
}