Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2016, 18:45   #1
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию Вычислить значения функции на определенном интервале

Составить программу для вычисления и печати значений функции y=2.71^-x*Sin(3.14*x/2) . Вычислить 8 значений функции на интервале от 0 до 2,5. Исходные данные задать в файле LAB2.TXT. Результат поместить в файл вывода с именем LAB2.RES. x=-1 y=-2,7.
Господа, нужна помощь.
Попытался сделать сам.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace Kotogonana
{
    class Program
    {
        static void Main(string[] args)
        {
            double a=0, b=2.5, h, x=-1,y=-2.7;
            double pi = 3.14;
            double e = 2.71;
            h = b / 8;
 
            StreamWriter sr = new StreamWriter(@"C:\Users\Пользхователь\Desktop\Новая папка (10)\ConsoleApplication1\output.txt");
            for (double i = a; i < b; i+=h)
            { 
                y = Math.Pow(e, -x) * Math.Sin(pi * x / 2);
                sr.WriteLine(y.ToString());
                x += h;
            }
            sr.Close();
        }
    }
}
Но здесь исходные данные заданы в программе, а нужно чтобы были заданы в текстовом файле. Что добавить?

Последний раз редактировалось Kef1r; 05.12.2016 в 21:28.
Kef1r вне форума Ответить с цитированием
Старый 06.12.2016, 15:20   #2
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.IO;

namespace FunctionValue
{
    static class Program
    {
        static List<double> resultValues = new List<double>();
        const string InputFileName = "lab2.txt", OutputtFileName = "lab2res.txt";
        static int total = 8;
        static double[] bounds = { 0, 2.5 };
        static double step = 0;
        static readonly string pathToInputFile = Path.Combine(Environment.CurrentDirectory, "..", ".." , InputFileName),
                               pathToOutputFile = Path.Combine(Environment.CurrentDirectory, "..", "..", OutputtFileName)
            ;

        private static void CalculateFunctionValues(double lowBound, double highBound , double step)
        {
            double currValue = lowBound;
            while (currValue < highBound)
            {
                resultValues.Add(Math.Pow(Math.E, currValue) * Math.Sin(Math.PI*currValue/2) );
                currValue += step;
            }
        }

        private static bool WriteOutput()
        {
            if (File.Exists(pathToOutputFile))
            {
                using (StreamWriter sr = new StreamWriter(pathToOutputFile))
                {
                    foreach (var value in resultValues)
                    {
                        sr.Write("{0:F2}\t", value);
                    }    
                }
                return true;
            }
            else
            {
                Console.WriteLine("Output file {0} not found", pathToInputFile);
                return false;
            }
        }

        private static bool ReadInput()
        {
            if (File.Exists(pathToInputFile))
            {
                using (StreamReader sr = new StreamReader(pathToInputFile))
                {
                    if (!Int32.TryParse(sr.ReadLine(), out total))
                        Console.WriteLine("Number of value has not been found. Set default value {0}", total);

                    bounds = Array.ConvertAll(sr.ReadLine().Split(' '), double.Parse);
                }
                return true;
            }
            else
            {
                Console.WriteLine("Input file {0} not found", pathToInputFile);
                return false;
            }
        }

        static void Main(string[] args)
        {

            if (!ReadInput())
                return;

            step = (bounds[1] - bounds[0]) / total;
            CalculateFunctionValues(bounds[0], bounds[1], step);

            WriteOutput();
        }
    }
}

Последний раз редактировалось tools; 06.12.2016 в 16:45.
tools вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX. antoshka17 Помощь студентам 8 14.02.2016 12:37
Вычислить значения функции y=tg(nx)+2n/x при n=5 и изменении x в интервале [1;3] andrmerk Паскаль, Turbo Pascal, PascalABC.NET 7 13.12.2015 15:46
Вычислить значения функции на заданном интервале+ использовать 3 разных цикла while- do while- for tereb Помощь студентам 1 12.11.2014 22:05
Вычислить и вывести на экран в виде таблицы значения функции F на интервале Ashley12 Помощь студентам 2 04.11.2013 22:42
Вычислить и вывести на экран в виде таблицы значения функции F на интервале, C zenya21 Помощь студентам 6 31.10.2012 01:25