Написать программу которая решает уравнение - C#

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

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

Нужно написать программу, которая решает уравнение задано два массива нужно найти
Помогите пожалста??? здесь самое трудно ето организовать цикл

Решение задачи: «Написать программу которая решает уравнение»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace Convolution
{
    class Convolution
    {
        private int[] x;
        private int[] y;
        public void Initialization()
        {
            x = new[] { 1, 5 };
            y = new[] { 5, 4, 3 };
            Console.WriteLine("Были введены следующие векторы:\n");
 
            Console.Write("Вектор х:");
            foreach (int i in x)
                Console.Write(i+" ");
            Console.Write("\nВектор у:");
            foreach (int i in y)
                Console.Write(i+" ");
        }
 
        private int[] DefineConvolution()
        {
            bool full=false;
            int difference = x.Length - y.Length;
            
            if (difference < 0)
            {
                int[] temp;
                temp = x;
                x = y;
                y = temp;
 
                difference = Math.Abs(x.Length - y.Length);
            }
 
            y = y.Reverse().ToArray();//поменять х на у для линейной свёртки
            List<int> yList = y.ToList();
 
            for (int i = 0; i < difference; i++)
                yList.Insert(0, 0);
            y = yList.ToArray();
            
            int[] result=new int[x.Length+y.Length-1];
            
            for (int r = 0; r <result.Length ; r++)
            {
                if (r > x.Length - 1) full = true;
 
                if (!full)
                    for (int j = 0; j < r + 1; j++)
                        result[r] += x[j] * y[y.Length - 1 - r + j];
                else
                {
                    yList.Insert(0,0);
                    yList.RemoveAt(yList.Count-1);
                    y = yList.ToArray();
                    result[r] = ArrayMultiplacation(x, y);
                }
                
            }
 
            List<int> resultList = new List<int>();
            resultList = result.ToList();
            resultList.RemoveRange(result.Length - difference, difference);
            result = resultList.ToArray();
            return result;
        }
 
        private int ArrayMultiplacation(int[] a, int[] b)
        {
            int sum = 0;
            for (int i = 0; i < a.Length; i++)
            {
                sum+=a[i]*b[i];
            }
            return sum;
        }
 
        public void ShowResult()
        {
            Console.WriteLine("\nИх свёртка равна вектору:");
            foreach (int i in DefineConvolution())
                Console.Write(i+" ");
            Console.Read();
        }
    }
}

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


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

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

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