Exercise 3-8 (ImaginaryNumber struct)

Chapter_3     Exercise_3-7     Flavor Exercise_3-9







Exercise 3-8     TCS, p. 85


Exercise 3-8. Write a program that performs multiplication using the ImaginaryNumber struct defined in the text.




Imaginary.cs     TCS, p. 65


public class ImaginaryTest
{
public struct ImaginaryNumber
{
double real;

public double Real
{
get { return real; }
set { real = value; }
}

double i;

public double I
{
get { return i; }
set { i = value; }
}
}

public static ImaginaryNumber
multiplication (double d, ImaginaryNumber z)
{
ImaginaryNumber prod = new ImaginaryNumber();
prod.Real = d * z.Real;
prod.I = d * z.I;

return prod;
}

public static ImaginaryNumber
multiplication (ImaginaryNumber z1, ImaginaryNumber z2)
{
ImaginaryNumber prod = new ImaginaryNumber();
prod.Real = z1.Real * z2.Real - z1.I * z2.I;
prod.I = z1.Real * z2.I + z1.I * z2.Real;

return prod;
}

public static void Main()
{
ImaginaryNumber z = new ImaginaryNumber();
System.Console.WriteLine("z.Real: " + z.Real + ", z.I: " + z.I); // call get()
z.Real = 2.3; z.I = 3.2; // call set()
System.Console.WriteLine("z.Real: " + z.Real + ", z.I: " + z.I); // call get()

z= multiplication(2, z); // call static function from a static context, Main()
System.Console.WriteLine("z.Real: " + z.Real + ", z.I: " + z.I); // call get()

z.Real = 2; z.I = 3; // call set()
System.Console.WriteLine("z.Real: " + z.Real + ", z.I: " + z.I); // call get()
z = multiplication(z, z); // call static function from a static context, Main()
System.Console.WriteLine("z.Real: " + z.Real + ", z.I: " + z.I); // call get()
}
}
/*
mcs Imaginary.cs
mono Imaginary.exe
z.Real: 0, z.I: 0
z.Real: 2.3, z.I: 3.2
z.Real: 4.6, z.I: 6.4
z.Real: 2, z.I: 3
z.Real: -5, z.I: 12
*/









Chapter_3     Exercise_3-7     Flavor BACK_TO_TOP Exercise_3-9



Comments

Popular posts from this blog

Contents