Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

static double HowMuchDoesItWeighOn(string PlanetName, double EarthWeight) { doub

ID: 3567621 • Letter: S

Question

static double HowMuchDoesItWeighOn(string PlanetName, double EarthWeight) { double adjustmentFactor = -1; // establish an initial value (and an error condition) // C# has a switch statement which might be better here but this works if (PlanetName.ToLower().Equals("venus")) { adjustmentFactor = .9; } if (PlanetName.ToLower().Equals("mars")) { adjustmentFactor = .38; } if (PlanetName.ToLower().Equals("mercury")) { adjustmentFactor = .38; } if (PlanetName.ToLower().Equals("jupiter")) { adjustmentFactor = 2.36; } if (PlanetName.ToLower().Equals("saturn")) { adjustmentFactor = .92; } if (PlanetName.ToLower().Equals("uranus")) { adjustmentFactor = .92; } if (PlanetName.ToLower().Equals("neptune")) { adjustmentFactor = 1.13; } if (PlanetName.ToLower().Equals("pluto")) { adjustmentFactor = .07; } // if the factor is -1 that means we didnt fill in a value if (adjustmentFactor == -1) { Console.WriteLine("I didn't recognize the planet name "); return -1; } else { return EarthWeight * adjustmentFactor; } } Can you write code to call this method? Which approach does it use to give back values: return, by ref, or out? Could you change this method to work use the other approaches? Could you write code to call those methods?

Explanation / Answer

namespace MyConsoleApplication
{
   static class Program
   {
       static double HowMuchDoesItWeighOn(string PlanetName, double EarthWeight)
       {
           double adjustmentFactor = -1; /
           / establish an initial value (and an error condition) // C# has a switch statement which might be better here but this works
           if (PlanetName.ToLower().Equals("venus")) { adjustmentFactor = .9; }
           if (PlanetName.ToLower().Equals("mars")) { adjustmentFactor = .38; }
           if (PlanetName.ToLower().Equals("mercury")) { adjustmentFactor = .38; }
           if (PlanetName.ToLower().Equals("jupiter")) { adjustmentFactor = 2.36; }
           if (PlanetName.ToLower().Equals("saturn")) { adjustmentFactor = .92; }   
           if (PlanetName.ToLower().Equals("uranus")) { adjustmentFactor = .92; }
           if (PlanetName.ToLower().Equals("neptune")) { adjustmentFactor = 1.13; }
           if (PlanetName.ToLower().Equals("pluto")) { adjustmentFactor = .07; }
           // if the factor is -1 that means we didnt fill in a value
           if (adjustmentFactor == -1)
           {
               Console.WriteLine("I didn't recognize the planet name ");
               return -1; }
           else
           {
               return EarthWeight * adjustmentFactor;
           }
       }
       static int Main(string[] args)
       {
           double EarthWeight;
           Console.WriteLine("Enter earths weight? ");
           if (double.TryParse(Console.ReadLine(), out EarthWeight))
           {
           Console.WriteLine("Enter planet name? ");
           string planetName = Console.ReadLine();
           double planetWeight = HowMuchDoesItWeighOn(planetName ,EarthWeight);
           Console.WriteLine("Weight on this planet is {0}", planetWeight);
           }
       }
   }

}


2.


It uses return apporoach to give back values.


3.

static double HowMuchDoesItWeighOn(string PlanetName, double EarthWeight,out planetWeight)
       {
           double adjustmentFactor = -1; /
           / establish an initial value (and an error condition) // C# has a switch statement which might be better here but this works
           if (PlanetName.ToLower().Equals("venus")) { adjustmentFactor = .9; }
           if (PlanetName.ToLower().Equals("mars")) { adjustmentFactor = .38; }
           if (PlanetName.ToLower().Equals("mercury")) { adjustmentFactor = .38; }
           if (PlanetName.ToLower().Equals("jupiter")) { adjustmentFactor = 2.36; }
           if (PlanetName.ToLower().Equals("saturn")) { adjustmentFactor = .92; }   
           if (PlanetName.ToLower().Equals("uranus")) { adjustmentFactor = .92; }
           if (PlanetName.ToLower().Equals("neptune")) { adjustmentFactor = 1.13; }
           if (PlanetName.ToLower().Equals("pluto")) { adjustmentFactor = .07; }
           // if the factor is -1 that means we didnt fill in a value
           if (adjustmentFactor == -1)
           {
               Console.WriteLine("I didn't recognize the planet name ");
               planetWeight = -1; }
           else
           {
               planetWeight = EarthWeight * adjustmentFactor;
           }
       }
INVOKE IN MAIN:
HowMuchDoesItWeighOn( PlanetName, EarthWeight, planetWeight)


static double HowMuchDoesItWeighOn(string PlanetName, double EarthWeight,ref planetWeight)
       {
           double adjustmentFactor = -1; /
           / establish an initial value (and an error condition) // C# has a switch statement which might be better here but this works
           if (PlanetName.ToLower().Equals("venus")) { adjustmentFactor = .9; }
           if (PlanetName.ToLower().Equals("mars")) { adjustmentFactor = .38; }
           if (PlanetName.ToLower().Equals("mercury")) { adjustmentFactor = .38; }
           if (PlanetName.ToLower().Equals("jupiter")) { adjustmentFactor = 2.36; }
           if (PlanetName.ToLower().Equals("saturn")) { adjustmentFactor = .92; }   
           if (PlanetName.ToLower().Equals("uranus")) { adjustmentFactor = .92; }
           if (PlanetName.ToLower().Equals("neptune")) { adjustmentFactor = 1.13; }
           if (PlanetName.ToLower().Equals("pluto")) { adjustmentFactor = .07; }
           // if the factor is -1 that means we didnt fill in a value
           if (adjustmentFactor == -1)
           {
               Console.WriteLine("I didn't recognize the planet name ");
               planetWeight = -1;; }
           else
           {
               planetWeight = EarthWeight * adjustmentFactor;
           }
       }


INVOKE IN MAIN:
HowMuchDoesItWeighOnPlanetName, EarthWeight, planetWeight)