Сформировать как минимум три потока, которые будут вычислять значение бесконечной суммы с заданной точностью - C#
Формулировка задачи:
Немного изменить программу под пой вариант.
Разработайте многопоточное приложение, которое будет формировать как минимум три потока, которые будут вычислять значение бесконечной суммы с точностью Эпсилон=10-6
При этом потоки должны работать последовательно друг за другом. И включаться пользователем
Выражение: 1+(1/1!)+(1/2!)+(1/3!)+...+(1/n!)+...
Такая же программа для другого выражения:
Выражение: 1+(1/2^4)+(1/3^4)+...+(1/n^4)+...
using System; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading; namespace ConsoleApplication1 { class Program { static double n = 1; static object locker = new object(); static double eps = 0.000001, sum = 0, prev=0; static void Function_of_thread() { lock (locker) { prev = sum; sum+=1/(Math.Pow(n,4)); ++n; Console.WriteLine("Япоток №" + n + " SUM=" + sum); } } static void Main(string[] args) { for (int i = 0; i < 10; i++) { Thread thr = new Thread(Function_of_thread); thr.Start(); } Console.Read(); } } }
Решение задачи: «Сформировать как минимум три потока, которые будут вычислять значение бесконечной суммы с заданной точностью»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Threading; namespace ConsoleApplication1 { class Program { static int n = 1; static double sum = 1, prev = 0; static void Function_of_thread() { do { prev = sum; var x = fact(n); if (x == 0) return; sum += 1.0 / x; ++n; Console.WriteLine("Я поток № " + Thread.CurrentThread.ManagedThreadId + " SUM=" + sum); } while (true); } static long fact(int n) { if (n < 0) return 0; int res = 1; for (int i = 1; i < n; i++) res *= i; return res; } static void Main(string[] args) { Thread[] thr = new Thread[3]; for (int i = 0; i < 3; i++) { thr[i] = new Thread(Function_of_thread); thr[i].Start(); } Console.Read(); for (int i = 0; i < 3; i++) thr[i].Abort(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д