Вывод комплексного числа в форматном виде - C#

Узнай цену своей работы

Формулировка задачи:

Нужно вывести комплексные числа в форматированном виде,вот в таком например 1,0004+2,345i Вот метод,который считает\получает комплексные числа
 static Complex GetSpectralDensity(double amplitude, double frequency, double time)
        {
            NumericalIntegration integration = new NumericalIntegration();
            double real = amplitude * integration.Calculate(x => Math.Cos(-frequency * x), 0, time);
            double imaginary = amplitude * integration.Calculate(x => Math.Sin(-frequency * x), 0, time);           
            return new Complex(real,imaginary);
        }
А теперь главная проблема в main Учитывая, что метод выше возвращает new Complex,я решил присвоить его таким образом
 Complex [] values ={GetSpectralDensity(double amplitude, double frequency, double time)}
Но теперь нужно чтобы метод работал в цикле
for (int frequency = -30, counter = 0; frequency <= 30; frequency++, counter++)
и следовательно чтобы выдавало разные значения,от -30 до 30 и правильном формате. Увы не отображает,только одно число и 60 раз. Если занесу объявление Complex [] values = {} внутрь цикла for,то сразу выскочит ошибка внедрённый оператор не может быть объявлением.
static void Main(string[] args)
        {
            double amplitude = 25;
            double time = 50;
            int frequency=0;
            int counter;
            Complex [] values = { GetSpectralDensity(amplitude, frequency, time) };
            foreach (var value in values)                    
            for (int frequency = -30, counter = 0; frequency <= 30; frequency++, counter++)
            Console.WriteLine("{0}+ {1}i",value.Real,value.Imaginary );
           Console.ReadKey();
        }

Решение задачи: «Вывод комплексного числа в форматном виде»

textual
Листинг программы
using System;
using System.Numerics;
using System.Collections.Generic;
 
namespace ConsoleApplication28
{
    class Program
    {
        static void Main(string[] args)
        {
            double amplitude = 25;
            double time = 50;
 
            List<Complex> values = new List<Complex>();
 
            for (int frequency = -30, counter = 0; frequency <= 30; frequency++, counter++)
            {
                values.Add(GetSpectralDensityDummy(amplitude, frequency, time));
            }
 
            values.ForEach(x => Console.WriteLine("{0}+ {1}i", x.Real, x.Imaginary));
 
            Console.ReadKey();
        }
 
        private static Complex GetSpectralDensityDummy(double amplitude, int frequency, double time)
        {
            return new Complex(amplitude, frequency);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы