Esempio n. 1
0
        /// <summary>
        /// Efface la carte et la liste de bateaux
        /// </summary>
        public void Reset()
        {
            bateaux.Clear();
            int taille = Matrice.GetLength(0);

            for (int i = 0; i < taille; i++)
            {
                for (int j = 0; j < taille; j++)
                {
                    Matrice[i, j] = '-';
                }
            }
        }
Esempio n. 2
0
        public void multiply(Pereche linii, Matrice m1, Matrice m2, Matrice rezultat)
        {
            Console.WriteLine("Linii=" + linii.ToString());
            Console.WriteLine("Nr coloane=" + m2.getNrColoane());
            Console.WriteLine("Nr coloane=" + m1.getNrColoane());

            int val = 0;

            for (int i = linii.I; i < linii.j; i++)
            {
                for (int j = 0; j < m2.getNrColoane(); j++)
                {
                    for (int l = 0; l < m1.getNrColoane(); l++)
                    {
                        int aux = rezultat.get(i, j);
                        val += m1.get(i, l) * m2.get(l, j);
                        rezultat.set(i, j, aux + val);
                    }
                }
            }
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            n         = N;
            w         = 8;
            intervale = new List <Pereche>();

            rest = n % w;
            cat  = n / w;
            int stanga  = 0;
            int dreapta = stanga + cat - 1;

            rest = rest - 1;
            for (int i = 0; i < w; i++)
            {
                if (rest > 0)
                {
                    intervale.Add(new Pereche(stanga, dreapta));
                    stanga  = dreapta + 1;
                    dreapta = stanga + cat;
                    rest    = rest - 1;
                }
                else
                {
                    intervale.Add(new Pereche(stanga, dreapta));
                    stanga  = dreapta + 1;
                    dreapta = stanga + cat - 1;
                }
            }
            matrice1 = new Matrice(M, K);
            matrice1.populateRandom();
            matrice2 = new Matrice(K, N);
            matrice2.populateRandom();


            rezultat = new Matrice(M, N);

            foreach (var interval in intervale)
            {
                WriteLine(interval.ToString());
            }
            List <Thread>            threads = new List <Thread>();
            ParameterizedThreadStart start   = new ParameterizedThreadStart(Calcul);
            List <Task> tasks = new List <Task>();
            Stopwatch   sw    = new Stopwatch();

            sw.Start();

            for (int i = 0; i < w; i++)
            {
                /* Thread thread = new Thread(start);
                 * threads.Add(thread);
                 * thread.Start((object) i);*/
                tasks.Add(Task.Factory.StartNew(Calcul, i));
            }
            Task.WaitAll(tasks.ToArray());
            sw.Stop();
            long microseconds1 = sw.ElapsedMilliseconds;

            WriteLine(microseconds1);


            /* foreach (var t in threads)
             * {
             *   //t.Join();
             * }*/
            /*
             *          for (int i = 0; i < w; i++)
             *          {
             *              rezultat.multiply(intervale[i], matrice1, matrice2, rezultat);
             *          }
             *
             *          WriteLine(rezultat.toString());*/
            ReadKey();
        }