Сформировать массив по правилу - C# (196533)
Формулировка задачи:
Помогите с этим ужасом.. Буду благодарна.
Сформировать динамический массив А состоящий из N элементов (количество элементов
вводится с клавиатуры). Элементы массива А с четными индексами определяются по зависимости:
Ai=f(xi)
где xi – случайное число из диапазона i … N .
Элементы массива А с нечетными индексами – по зависимости:
где xi
– случайное число из диапазона i … 2N .
Значение функции f(xi):
f(xi)=|sinx/3,12+cosx2|–8,3sin3x
Записать массив в файл (имя файла вводится с клавиатуры) в папку Mas в папке проекта.
Решение задачи: «Сформировать массив по правилу»
textual
Листинг программы
using System;
using System.IO;
using System.Linq;
namespace test
{
internal class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Введите N:");
int n = Convert.ToInt32(Console.ReadLine());
double[] generateArray = GenerateArray(10);
Console.WriteLine("Введите имя файлы:");
string name = Console.ReadLine();
SaveToFile(name, generateArray);
}
private static double[] GenerateArray(int n)
{
double[] a = new double[n];
Random rnd = new Random();
for (int i = 0; i < n; i++)
{
a[i] = i % 2 == 0 ?
(n - i) * rnd.NextDouble() + i : // Четный индекс
Math.Sqrt((n * 2 - i) * rnd.NextDouble() + i); // Нечетный индекс
}
return a;
}
private static double F(double x)
{
return Math.Abs(Math.Sin(x) / 3.12 + Math.Cos(x * x)) - 8.3 * Math.Sin(3 * x);
}
private static void SaveToFile(string fileName, double[] arr)
{
const string dirName = @"Mass";
// Проверка существует ли директория
if (!Directory.Exists(dirName)) Directory.CreateDirectory(dirName);
// Добавляем txt расширение
fileName = Path.ChangeExtension(fileName, "txt");
// Добавляем путь папки
fileName = Path.Combine(dirName, fileName);
// Если файл существует удаляем
File.WriteAllLines(fileName, arr.Select(Convert.ToString));
}
}
}