Задача 0042

42. Дано дійсні числа х, у (х ≠ у). Менше із цих двох чисел замінити їх пів сумою, а більше – їх подвоєним добутком. На перший погляд видається, що можна просто порівняти два числа і виконати відповідні арифметичні дії:

private static void Task42()
        {
            double x = Rand.Next(-200, 100);
            double y = Rand.Next(-200, 100);
            Console.WriteLine("x={0} y={1}", x, y);
            if (x < y)
            {
                x = (x + y)/2.0;
                y = 2*x*y;
            }
            else
            {
                y = (x + y) / 2.0;
                x = 2 * x * y;
            }
            Console.WriteLine("x={0} y={1}",x,y);
        } 

Однак, при x=56 та y=24, ми отримаємо x=4480 y=40, а правильні значення x=2688 y=40. Це пов’язано з тим, що Y  уже змінився і не містить початкове значення. Для розв’язання цієї ситуації обчислимо ці вирази і присвоїмо результати в окремі змінні.

using System;
namespace Courses
{
   public class Program 
    { 
        private static readonly Random Rand = new Random(); 
        static void Main(string[] args) 
        {            
            Task42(); 
        }

        /// <summary> 
        /// 42. Дано дійсні числа х, у (х ≠ у). Менше із цих двох чисел замінити їх пів сумою, а більше – їх подвоєним добутком. 
        /// </summary> 
        private static void Task42()
        {
            double x = Rand.Next(-200, 100);
            double y = Rand.Next(-200, 100);
            Console.WriteLine("x={0} y={1}", x, y);
            double v1 = (x + y) / 2.0;
            double v2 = 2 * x * y;
            if (x < y)
            {
                x = v1;
                y = v2;
            }
            else
            {
                y = v1;
                x = v2;
            }
            Console.WriteLine("x={0} y={1}",x,y);
        } 
   } 
}

					
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s