Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
[email protected] webmail now available. Want one? Go here.
Cannot use outlook/hotmail/live here to register as they blocking our mail servers. #microsoftdeez
Obey the Epel!

Paste

Pasted as C# by Edelner ( 3 years ago )
using System;
using System.Diagnostics;
using System.IO;

namespace AlgorytmyIStrukturyDanych.Lab1
{
    class MierzenieCzasu
    {
        static long wynikPomiaruCzasu = 0;

        static long[] tablicaWynikówPomiaruCzasu;

        static double średniCzas = 0;

        static double odchylenieStandardowe = 0;

        static double błądWzględny = 0;

        public int PobierzLiczbęPrób()
        {
            Console.Write("\nPodaj liczbę prób: ");

            int liczbaPrób = int.Parse(Console.ReadLine());

            return liczbaPrób;
        }

        public void ZmierzCzasz(int liczbaElementówTablicy, int liczbaPrób)
        {
            LosowaTablica losowaTablica = new LosowaTablica();

            tablicaWynikówPomiaruCzasu = new long[liczbaPrób];

            Stopwatch stopwatch = new Stopwatch();

            for (int i = 0; i < liczbaPrób; i++)
            {
                stopwatch.Start();

                losowaTablica.GenerujLosowąTabliceTypuDouble(liczbaElementówTablicy);

                stopwatch.Stop();

                wynikPomiaruCzasu = stopwatch.ElapsedMilliseconds;

                Console.WriteLine($"\nPomiar {i + 1}.Czas w milisekundach: {wynikPomiaruCzasu}");

                tablicaWynikówPomiaruCzasu[i] = wynikPomiaruCzasu;
            }
        }

        public double PoliczSredniCzas()
        {
            for (int i = 0; i < tablicaWynikówPomiaruCzasu.Length; i++)
            {
                średniCzas += Convert.ToDouble(tablicaWynikówPomiaruCzasu[i]) / tablicaWynikówPomiaruCzasu.Length;
            }

            Console.WriteLine("\nCzas średni: " + średniCzas);

            return średniCzas;
        }

        public double PoliczOdchylenieStandardowe(double średniCzas)
        {
            double sigma = 0;

            for (int i = 0; i < tablicaWynikówPomiaruCzasu.Length; i++)
            {
                sigma += Math.Pow((tablicaWynikówPomiaruCzasu[i] - średniCzas), 2) / tablicaWynikówPomiaruCzasu.Length;
            }

            odchylenieStandardowe = Math.Sqrt(sigma);

            Console.WriteLine("\nOdchylenie standardowe: " + odchylenieStandardowe);

            return odchylenieStandardowe;
        }

        public void PoliczBłądWzględny(double odchylenieStandardowe, double średniCzas)
        {
            błądWzględny = (odchylenieStandardowe / średniCzas) * 100;

            Console.WriteLine($"\nBłąd względny: {błądWzględny} % ");
        }

        public void ZapiszWynikiDoPliku()
        {
            string[] tablicaPomocnicza = new string[tablicaWynikówPomiaruCzasu.Length];

            for (int i = 0; i < tablicaWynikówPomiaruCzasu.Length; i++)
            {
                tablicaPomocnicza[i] = $"Próba {i + 1} (ms): " + tablicaWynikówPomiaruCzasu[i].ToString() + "\t";
            }

            File.WriteAllLines(@"test.txt", tablicaPomocnicza);

            using StreamWriter file = new StreamWriter(@"test.txt", true);

            file.WriteLine($"\nŚredni czas (ms): {średniCzas}\t");

            file.WriteLine($"Odchylenie standardowe (ms): {odchylenieStandardowe}\t");

            file.WriteLine($"Błąd względny (%): {błądWzględny}\t");
        }
    }
}

 

Revise this Paste

Your Name: Code Language: