/*
Veidoja: Edgars Katajevs
Grupa: 110
Praktiskais darbs: 7
Izmantotais compiler: www.onlinegdb.com
*/

using System;
using System.Collections.Generic;
using System.Linq;

class HelloWorld
{
static void Main()
{
List<double> izdevumi = new List<double>();
string [,] noliktava =
{
{"A101", "A102", "", "A104", null},
{"B201", "", "B203", "B204", "B205"},
{"", "", "", "C204", "C205"},
{"D301", "D302", "D303", "", ""}
};
bool sakums = true;
do{
Console.Clear();
Console.WriteLine("1 - Budzeta analize");
Console.WriteLine("2 - Precu meklesana");
Console.WriteLine("3 - Attaluma kalkulators");
Console.WriteLine("4 - Iziet");
Console.WriteLine("Ludzu ievadiet uzdevumu: ");
int x = Convert.ToInt32(Console.ReadLine());
switch(x)
{
case 1:
IevadietIzdevumus (izdevumi);
break;
case 2:
galvena(noliktava);
break;
case 3:
AprekinatPlaknesAttalumu ();
break;
case 4: break;
default:
Console.WriteLine("Nederīga ievade!!!");
break;
}

}while (sakums == true);
}
// otrais uzdevums uz leju
static void galvena (string[,] noliktava)
{
Console.WriteLine("Ievadiet preces koardinates:");
string kods = Console.ReadLine();
bool atrast = false;
int eja = 0, plaukts = 0;
for (int l = 0; l< noliktava.GetLength(0); l++)
{
for (int i = 0; i<noliktava.GetLength(1); i++)
{
if (noliktava[l, i] == kods)
{
eja = l; plaukts = i;
atrast = true;
break;
}
}
if (atrast) break;
}
if (atrast)
{
Console.WriteLine($"Prece atrodas {eja +1}. ejas {plaukts +1}. plauktaa");
}
else
{
Console.WriteLine("Prece nav atrasta");
}
Console.WriteLine("Nospiediet ENTER!");
while (Console.ReadKey().Key !=ConsoleKey.Enter){};
AprekinatNeaizpilditas (noliktava);
}
static void AprekinatNeaizpilditas (string[,] noliktava)
{
int nulles = 0;
foreach(var n in noliktava)
if (string.IsNullOrEmpty(n)) nulles++;
Console.Clear();
Console.WriteLine($"Noliktava ir {nulles} tuksas vietas");
Console.WriteLine("Nospiediet taustinu lai nonaktu sakumaa!");
while (Console.ReadKey().Key !=ConsoleKey.Enter){};
Main();
}
// tresais uzdevums uz leju
static void AprekinatPlaknesAttalumu ()
{
Console.WriteLine("Ievadiet punkta vertibas (atdaliet ar atstarpi)");
string[] num = Console.ReadLine().Split(' ');
double x1 = Convert.ToDouble(num[0]);
double y1 = Convert.ToDouble(num[1]);
Console.WriteLine("Ievadiet otra punkta vertibas (atdaliet ar atstarpi):");
string[] num2 = Console.ReadLine().Split(' ');
double x2 = Convert.ToDouble(num2[0]);
double y2 = Convert.ToDouble(num2[1]);

double deltaX = Math.Pow(x2 - x1, 2);
double deltaY = Math.Pow(y2 - y1, 2);

double distance = Math.Round(Math.Sqrt(deltaY + deltaX), 2);
Console.Clear();
Console.WriteLine($"Attalums ir {distance}");
Console.WriteLine("Nospiediet ENTER lai turpinatu!!!");
while (Console.ReadKey().Key !=ConsoleKey.Enter){};
KonvertetRadianos();
}
static void KonvertetRadianos ()
{
Console.Clear();
Console.Write("Ievadiet leņķi: ");
double graadi = Convert.ToDouble(Console.ReadLine());
double radiani = Math.Round(graadi * (Math.PI/180), 2);
Console.WriteLine($"{graadi} grādus liels leņķis ir {radiani} radiāni!");
Console.WriteLine("Nospiediet taustiņu Enter lai atgrieztos uzdevumu izvēlnē!");
while (Console.ReadKey().Key != ConsoleKey.Enter) {}
Main();
}
//pirmais uzdevums uz leju
static void IevadietIzdevumus(List<double> izdevumi)
{
bool turpinat = true;

do
{
Console.Clear();
Console.WriteLine("Ievadiet izdevumu!");
Console.WriteLine("Ievadiet BEIGT lai turpinātu!");
string m = Console.ReadLine();
double izdevums;
if (Double.TryParse(m, out izdevums))
{
izdevumi.Add(izdevums);
}
else
{
string beigas = m;
if (beigas == "")
{
turpinat = false;
}
else if (beigas == "BEIGT")
{
turpinat = false;
}
}
} while (turpinat == true);

Console.Clear();
foreach (double i in izdevumi)
{
Console.WriteLine(i);
}

Console.WriteLine("Nospiediet taustiņu ENTER lai filtrētu izmaksas!");
while (Console.ReadKey().Key != ConsoleKey.Enter) {}
FiltretIzdevumus(izdevumi);
}
static void FiltretIzdevumus(List<double> izdevumi)
{
List<double> FiltretiIzdevumi = izdevumi.Where(x => x > 35.00).ToList();
Console.Clear();
foreach (double j in FiltretiIzdevumi)
{
Console.WriteLine(j);
}

Console.WriteLine("Nospiediet taustiņu Enter lai izrēķinātu mainību!");
while (Console.ReadKey().Key != ConsoleKey.Enter) {}
AprekinatMainibu(FiltretiIzdevumi);
}
static void AprekinatMainibu(List<double> FiltretiIzdevumi)
{
double min = FiltretiIzdevumi.Min();
double max = FiltretiIzdevumi.Max();
double mainiba = max - min;
Console.Clear();
Console.WriteLine($"Izdevumu mainība ir {mainiba}");

Console.WriteLine("Nospiediet taustiņu Enter lai atgrieztos uzdevumu izvēlnē!");
while (Console.ReadKey().Key != ConsoleKey.Enter) {}
Main();
}
}