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