.NET 4.x Определить четность - C#
Формулировка задачи:
Всем доброго времени суток
есть 2 потока
но что то тут не так
задание такое "первый поток вычисляет сумму нечетных n второй - четных";
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace lol { class Sum2 { private Thread Thrd; private double summ1; private double tmp1,e; private double x = 0; private int n = 0; public Sum2(string name, double x, byte n,double e) { this.x = x; this.n = n; this.e = e; summ1 = 0; summ2 = 0; tmp1 = 0; tmp2 = 0; Thrd = new Thread(this.Run); Thrd.Name = name; Thrd.Start(); } void Run() { do { if (n % 2 == 0) { summ1 = summ1 + n; n++; tmp1 = summ1 + n; n++; } while (Math.Abs(summ1 - tmp1) > e); } } public double Sum { get { return tmp1; } } public void Join() { Thrd.Join(); } class Program { static void Main(string[] args) { Sum2 mt1 = new Sum2("1 ", 1, 15,1); Sum2 mt2 = new Sum2("2 ", 1, 12,1); mt1.Join(); mt2.Join(); System.Console.WriteLine(" 1 поток: " + mt1.Sum + "\n 2 поток" + mt2.Sum); Console.ReadKey(); } } } }
Решение задачи: «.NET 4.x Определить четность»
textual
Листинг программы
using System; using System.Threading; namespace ConsoleApplication7 { class Program { static void Main() { int n = 39; var t1 = new Thread(Even); var t2 = new Thread(Odd); t1.Start(n); t2.Start(n); t1.Join(); t2.Join(); Console.ReadKey(); } private static void Even(object data) { Console.WriteLine("Even = {0}", EvenOrOdd(0, (int) data)); } private static void Odd(object data) { Console.WriteLine("Odd = {0}", EvenOrOdd(1, (int)data)); } private static int EvenOrOdd(int from, int n) { int sum = 0; for (int i = from; i < n; i += 2) sum += i; return sum; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д