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)
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.