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

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

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

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

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

textual
Листинг программы
  1. using System;
  2. using System.Numerics;
  3. using System.Collections.Generic;
  4.  
  5. namespace ConsoleApplication28
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             double amplitude = 25;
  12.             double time = 50;
  13.  
  14.             List<Complex> values = new List<Complex>();
  15.  
  16.             for (int frequency = -30, counter = 0; frequency <= 30; frequency++, counter++)
  17.             {
  18.                 values.Add(GetSpectralDensityDummy(amplitude, frequency, time));
  19.             }
  20.  
  21.             values.ForEach(x => Console.WriteLine("{0}+ {1}i", x.Real, x.Imaginary));
  22.  
  23.             Console.ReadKey();
  24.         }
  25.  
  26.         private static Complex GetSpectralDensityDummy(double amplitude, int frequency, double time)
  27.         {
  28.             return new Complex(amplitude, frequency);
  29.         }
  30.     }
  31. }

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


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

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

7   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы