Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace NajteziZadatak
- {
- class Program
- {
- static int k=1;
- static int red1 = 0;
- static int red2 = 0;
- static int red3 = 0;
- static int cenaKarata=40;
- static int ukupnoProdatih = 0;
- static int ukupnaZarada=0;
- static int ukupanbrojkupaca = 0;
- static readonly object locker = new object();
- static readonly object locker2 = new object();
- static readonly object locker3 = new object();
- static void kasa1()
- {
- lock(locker)
- {
- red1++;
- ukupanbrojkupaca++;
- red1--;
- }
- }
- static void kasa2()
- {
- lock(locker2)
- {
- red2++;
- ukupanbrojkupaca++;
- red2--;
- }
- }
- static void kasa3()
- {
- lock(locker3)
- {
- red3++;
- ukupanbrojkupaca++;
- red3--;
- }
- }
- static int minimal()
- {
- Random r = new Random();
- if (red1 < red2 && red1 < red3)
- return 1;
- else if (red2 < red1 && red2 < red3)
- return 2;
- else if (red3 < red1 && red3 < red2)
- return 3;
- else if (red3 == red2 && red2 == red1 && red3 == red1)
- return r.Next(1, 3);
- else
- return 100;
- }
- static int Popust(int cena,int brojtrenutnihkarata)
- {
- if (brojtrenutnihkarata > 2)
- {
- cena = Convert.ToInt32(cena * 0.90);
- return cena;
- }
- else if (brojtrenutnihkarata > 3)
- {
- cena = Convert.ToInt32(cena * 0.85);
- return cena;
- }
- else return cena;
- }
- static void Kupac()
- {
- Random r = new Random();
- int brojKupljenih = (r.Next(1, 6));
- string ime = Thread.CurrentThread.Name;
- Console.WriteLine(ime + " je kupio " + brojKupljenih);
- int cena = cenaKarata;
- int najmanjired = minimal();
- ukupnaZarada += cena*brojKupljenih;
- ukupnoProdatih += brojKupljenih;
- {
- kasa1();
- }
- if(najmanjired==2)
- {
- kasa2();
- }
- if(najmanjired==3)
- {
- kasa3();
- }
- }
- static void vremeradaPozorista()
- {
- Thread.Sleep(1000);
- cenaKarata = Convert.ToInt32(cenaKarata * 0.95);
- Thread.Sleep(1000);
- cenaKarata = Convert.ToInt32(cenaKarata * 0.95);
- Thread.Sleep(1000);
- cenaKarata = Convert.ToInt32(cenaKarata * 0.95);
- Thread.Sleep(1000);
- cenaKarata = Convert.ToInt32(cenaKarata * 0.95);
- Thread.Sleep(1000);
- cenaKarata = Convert.ToInt32(cenaKarata * 0.95);
- Thread.Sleep(1000);
- cenaKarata = Convert.ToInt32(cenaKarata * 0.95);
- Thread.Sleep(1000);
- k++;
- }
- static void Main(string[] args)
- {
- Thread radKase = new Thread(() => vremeradaPozorista());radKase.Start();
- int i = 1;
- while(k==1)
- {
- Thread nit = new Thread(() => Kupac());nit.Name = "Kupac_" + i; ;nit.Start();
- i++;
- Thread.Sleep(140);
- }
- Console.ReadLine();
- Console.WriteLine("Pozoriste zatvoreno");
- Console.WriteLine("Karta prodatih:"+ ukupnoProdatih);
- Console.WriteLine("Para zaradjeno:" + ukupnaZarada);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement