Записать в текстовый файл результат расчёта функции f(y) - C# (185975)
Формулировка задачи:
Задание 1). Записать в текстовый файл результат расчёта функции f(y).Результат должен быть записан в виде двух столбцов - аргумента и значения функции от данного аргумента. Начало и конец диапазона, имя файла, а также шаг вводить с клавиатуры. Задание: f(y)=cos(y)*y
Задание 2). Считать файл, вывести на экран среднее арифметическое
Решение задачи: «Записать в текстовый файл результат расчёта функции f(y)»
textual
Листинг программы
class Program
{
public static void Main()
{
double min, max, step;
string fileName;
Console.WriteLine("Введите минимум");
while (!double.TryParse(Console.ReadLine(), out min))
Console.WriteLine("Неправильное число");
Console.WriteLine("Введите максимум");
while (!double.TryParse(Console.ReadLine(), out max))
Console.WriteLine("неправильное число");
Console.WriteLine("Введите шаг");
while (!double.TryParse(Console.ReadLine(), out step))
Console.WriteLine("неправильное число");
Console.WriteLine("Введите Имя Файла Результатов");
while ((fileName = Console.ReadLine()).Length <= 0)
Console.WriteLine("неправильное название файла");
if (fileName.Length > 3)
{
if (fileName.IndexOf(".txt", fileName.Length - 5) < 0)
fileName = fileName + ".txt";
}
else
fileName = fileName + ".txt";
FileStream fs = new FileStream(fileName, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("аргумент\tзначение функции");
for (double y = min; y <= max; y += step)
sw.WriteLine(y.ToString() + "\t" + (Math.Cos(y) * y).ToString());
sw.Close();
Console.WriteLine("Нажмите любую клавишу чтобы узнать среднее арифметическое");
Console.ReadKey();
string[] sResult;
string s;
double summ = 0;
int count = 0;
fs = new FileStream(fileName, FileMode.Open);
StreamReader sr = new StreamReader(fs);
sr.ReadLine(); // пропустить первую строку
while ((s = sr.ReadLine()) != null)
{
sResult = s.Split('\t');
summ += double.Parse(sResult[1]);
count++;
}
fs.Close();
sr.Close();
double average = summ / count;
Console.WriteLine("Среднее арифметическое = {0}", average);
Console.ReadKey();
}