mrAnderson33

среднее геометрическое + среднее гармоническое

Apr 4th, 2017
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.27 KB | None | 0 0
  1. /* тз :
  2. Написать программу для обработки числовых данных. Из
  3. файла или с консоли прочитать произвольное число чисел и найти их среднее
  4. геометрическое, среднее гармоническое. При вводе недопустимого символа
  5. вывести информацию об ошибке. Примечание. Допускается ввод целых и
  6. вещественных чисел. Разделителем целой и дробной части является символ
  7. точки или запятой */
  8.  
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13.  
  14. namespace lab04_b_
  15. {
  16.     class Program
  17.     {
  18.         static void Main(string[] args)
  19.         {
  20.             var nums = new string[255];
  21.  
  22.             bool ent = true ; // false - ввод с консоли
  23.  
  24.             if (args.Length == 0) ent = false;
  25.             else if (args[0] == "-c") ent = false;
  26.             else if (args[0] == "-f") ent = true;
  27.             if (ent)
  28.             {
  29.                
  30.                 try
  31.                 {
  32.                     var  file = new System.IO.StreamReader(args[1]);
  33.                     string line;
  34.                     string buf = " ";
  35.                     while ((line = file.ReadLine()) != null) { buf += line; }
  36.                     nums = buf.Split(new Char[] { ' ' });
  37.                     Console.WriteLine("Произведена считка с файла <{0}>", args[1]);
  38.  
  39.                 }
  40.                 catch(System.IO.FileNotFoundException ex)
  41.                 {
  42.                     Console.WriteLine(ex.Message);
  43.                     return;
  44.                 }
  45.                                 }
  46.             else
  47.             {
  48.                 Console.WriteLine("Please enter numbers:");
  49.                 nums = Console.ReadLine().Split(new Char[] { ' ' });
  50.             }
  51.  
  52.             int i = 0;
  53.             double geom = 1;
  54.             double garm = 0;
  55.             foreach (var num in nums)
  56.             {
  57.                 double temp = 0;
  58.                 var n = num;
  59.                 n = n.Replace(',','.');
  60.                 Console.WriteLine(n);
  61.                 if (!double.TryParse(n, out temp) && (!string.IsNullOrEmpty(n)))
  62.                 {
  63.                     Console.WriteLine("Error! Entered symbol must be a number!");
  64.                     return ;
  65.                 }
  66.  
  67.                 if (!string.IsNullOrWhiteSpace(n))
  68.                 {
  69.                     i++;
  70.                     garm += 1 / temp;
  71.                     geom *= temp;
  72.  
  73.                 }
  74.              
  75.             }
  76.             if (i == 0 )
  77.             {
  78.                 Console.WriteLine("Error! You havent entered numbers!");
  79.                 return;
  80.             }
  81.             garm = i / garm;
  82.             geom = root(geom,i) ;
  83.             Console.WriteLine( "среднее геометрическое равно :{0}",geom);
  84.             Console.WriteLine("среднее гармоническое равно :{0}", garm);
  85.         }
  86.         static double root(double num , double degree)
  87.         {
  88.             return Math.Pow(num, (1/ degree));
  89.         }
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment