SHARE
TWEET

Untitled

a guest Dec 3rd, 2019 97 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. /// <summary>
  6. /// Ohjelma lukee listaan sarjan liukulukutyyppisiä mittaustietoja.
  7. /// </summary>
  8. class Program
  9. {
  10.     static void Main(string[] args)
  11.     {
  12.         List<Double> arvot;
  13.         string arvotTekstina;
  14.  
  15.         arvot = LueArvot();
  16.         Console.WriteLine(arvot.Count);
  17.         arvotTekstina = MuunnaListaTekstiksi(arvot);
  18.         Console.WriteLine(arvotTekstina);
  19.         Console.WriteLine(arvot[arvot.Count - 1]);
  20.         double keskiarvo = LaskeKeskiarvo(arvot);
  21.         Console.WriteLine("Keskiarvo: " + keskiarvo);
  22.         Console.WriteLine("Suurin on paikassa " + HaeSuurimmanSijainti(arvot));
  23.         Console.WriteLine("Haettu löytyy kohdasta " + HaeValilta(arvot, 5, 1));
  24.  
  25.  
  26.         Console.ReadKey();
  27.     }
  28.  
  29.     /// <summary>
  30.     /// Luo syötteen luvuista listan.
  31.     /// </summary>
  32.     /// <returns>Mittaustiedot liukulukulistana syöttöjärjestyksessä.</returns>
  33.     static List<double> LueArvot()
  34.     {
  35.         // Syöterivin jakamisen määräävät välimerkit, tässä välilyönti.
  36.         char[] erottimet = new char[] { ' ' };
  37.         // Koko syöterivi.
  38.         string luettu;
  39.         // Syöterivi pätkittynä välilyöntien kohdalta.
  40.         string[] arvotTekstina;
  41.         // Palautettava liukulukulista
  42.         List<double> mittausarvot = new List<double>();
  43.  
  44.         Console.WriteLine("Anna arvot välilyönnillä erotettuina");
  45.         luettu = Console.ReadLine();
  46.         arvotTekstina = luettu.Split(erottimet);
  47.  
  48.         // Käy läpi mittaustiedot sisältävän tekstitaulukon ja muuttaa
  49.         // jokaisen arvon tekstistä liukuluvuksi ja lisää mittausarvojen listaan.
  50.         foreach(string arvoTekstina in arvotTekstina)
  51.         {
  52.             // TODO: muunna tekstimuotoinen arvo liukuluvuksi ja lisää listaan.
  53.            
  54.         }
  55.  
  56.         return mittausarvot;
  57.     }
  58.  
  59.     /// <summary>
  60.     /// Palauttaa mittausarvojen keskiarvon.
  61.     /// </summary>
  62.     /// <param name="arvot">Lista, jossa mitteustiedot sijaitsevat.</param>
  63.     /// <returns>Arvojen keskiarvon liukulukuna.</returns>
  64.     static double LaskeKeskiarvo(List<double> arvot)
  65.     {
  66.         double summa = 0, keskiarvo;
  67.        
  68.         foreach(double arvo in arvot)
  69.         {
  70.             summa = summa + arvo;
  71.         }
  72.         keskiarvo = summa / arvot.Count;
  73.  
  74.         return keskiarvo;
  75.     }
  76.  
  77.     /// <summary>
  78.     /// Muuttaa mittaustiedot sisältävän liukulukulistan tekstiksi,
  79.     /// jonka voi tulostaa.
  80.     /// </summary>
  81.     /// <param name="arvot">Mittaustiedot sisältävä liukulukulista.</param>
  82.     /// <returns>Mittaustiedot tekstinä.</returns>
  83.     static string MuunnaListaTekstiksi(List<double> arvot)
  84.     {
  85.         string listaTekstina;
  86.  
  87.         listaTekstina = arvot.Count.ToString() + " arvoa: ";
  88.  
  89.         foreach(double arvo in arvot)
  90.         {
  91.             listaTekstina = listaTekstina + " " + arvo.ToString();
  92.         }
  93.  
  94.         return listaTekstina;
  95.     }
  96.  
  97.     /// <summary>
  98.     /// Palauttaa listan suurimman arvon sijainnin kokonaislukuna.
  99.     /// Jos samaa arvoa on enemmän kuin 1, palauttaa ensimmäisen
  100.     /// sijainnin.
  101.     /// </summary>
  102.     /// <param name="arvot">Mittaustiedot sisältävä liukulukulista</param>
  103.     /// <returns>Suurimman arvon indeksi kokonaislukuna.</returns>
  104.     static int HaeSuurimmanSijainti(List<double> arvot)
  105.     {
  106.  
  107.         var maxIndex = arvot.IndexOf(arvot.Max());
  108.         return maxIndex;
  109.  
  110.  
  111.     }
  112.  
  113.     /// <summary>
  114.     /// Palauttaa ensimmäisen arvon sijainnin, joka osuu annetulle välille.
  115.     /// Jos haettava arvo on 3,0 ja väli on 1, niin kelpaavat arvot ovat
  116.     /// välillä 2,1 - 3,9. Välin loppu ei siis kuulu alueeseen.
  117.     /// </summary>
  118.     /// <param name="arvot">Mittaustiedot sisältävä liukulukulista.</param>
  119.     /// <param name="haettava">Haettava mittaustieto.</param>
  120.     /// <param name="vali">Kuinka paljon isommat ja pienemmät arvot kelpaavat.</param>
  121.     /// <returns>Haetun arvon sijainti tai -1, jos sopivaa srvoa ei löydy.</returns>
  122.     static int HaeValilta(List<double> arvot, double haettava, int vali)
  123.     {
  124.         // TODO: Etsi ensimmäinen arvo, joka osuu halutulle alueelle ja
  125.         // palauta sen sijainti.
  126.  
  127.  
  128.     }
  129. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top