public static void Main()
Console.WriteLine("Myjnia Samochodowa");
double p, a, t0, m, p0, pnm, w1, w1temp, P;
Console.WriteLine("Podaj liczbę stanowisk n:");
n = int.Parse(Console.ReadLine());
Console.WriteLine("Podaj średni czas obsługi samochodu t0:");
t0 = double.Parse(Console.ReadLine());
Console.WriteLine("Podaj ile średnio przybywa samochodów w jednostce czasu a:");
a = double.Parse(Console.ReadLine());
Console.WriteLine("Podaj prawodpodobieństwo znalezienia wolnego miejsca P:");
P = double.Parse(Console.ReadLine());
Console.WriteLine("P: " + P);
if(e is FormatException || e is ArgumentException)
Console.WriteLine(e.Message);
Console.WriteLine("Podane wartości nie są liczbami.");
Console.WriteLine("Przerywam działanie programu.");
for(int k = 0; k <= n; k++)
p0 += Math.Pow((n*p), k) / Factorial(k) + (Math.Pow(n, n) * Math.Pow(p, n + 1) * (1 - Math.Pow(p, m))) / (Factorial(n) * (1 - p));
pnm = Math.Pow(n, n) * Math.Pow(p, n + m) * p0 / Factorial(n);
Console.WriteLine("p0: " + p0);
Console.WriteLine("p: " + p);
Console.WriteLine("pnm: " + pnm);
for(int k = n; k <= n + m + 1; k++)
w1temp += (Math.Pow(n, n) * Math.Pow(p, k) * p0 / Factorial(n)) * k * t0 / n;
Console.WriteLine("Minimalna liczba miejsc na parkingu wynosi m: " + m);
Console.WriteLine("A średni czas oczekiwania wynosi w1: " + w1);
private static int Factorial(int k)