Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* тз :
- Написать программу для обработки числовых данных. Из
- файла или с консоли прочитать произвольное число чисел и найти их среднее
- геометрическое, среднее гармоническое. При вводе недопустимого символа
- вывести информацию об ошибке. Примечание. Допускается ввод целых и
- вещественных чисел. Разделителем целой и дробной части является символ
- точки или запятой */
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace lab04_b_
- {
- class Program
- {
- static void Main(string[] args)
- {
- var nums = new string[255];
- bool ent = true ; // false - ввод с консоли
- if (args.Length == 0) ent = false;
- else if (args[0] == "-c") ent = false;
- else if (args[0] == "-f") ent = true;
- if (ent)
- {
- try
- {
- var file = new System.IO.StreamReader(args[1]);
- string line;
- string buf = " ";
- while ((line = file.ReadLine()) != null) { buf += line; }
- nums = buf.Split(new Char[] { ' ' });
- Console.WriteLine("Произведена считка с файла <{0}>", args[1]);
- }
- catch(System.IO.FileNotFoundException ex)
- {
- Console.WriteLine(ex.Message);
- return;
- }
- }
- else
- {
- Console.WriteLine("Please enter numbers:");
- nums = Console.ReadLine().Split(new Char[] { ' ' });
- }
- int i = 0;
- double geom = 1;
- double garm = 0;
- foreach (var num in nums)
- {
- double temp = 0;
- var n = num;
- n = n.Replace(',','.');
- Console.WriteLine(n);
- if (!double.TryParse(n, out temp) && (!string.IsNullOrEmpty(n)))
- {
- Console.WriteLine("Error! Entered symbol must be a number!");
- return ;
- }
- if (!string.IsNullOrWhiteSpace(n))
- {
- i++;
- garm += 1 / temp;
- geom *= temp;
- }
- }
- if (i == 0 )
- {
- Console.WriteLine("Error! You havent entered numbers!");
- return;
- }
- garm = i / garm;
- geom = root(geom,i) ;
- Console.WriteLine( "среднее геометрическое равно :{0}",geom);
- Console.WriteLine("среднее гармоническое равно :{0}", garm);
- }
- static double root(double num , double degree)
- {
- return Math.Pow(num, (1/ degree));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment