Reputation: 23
I'm starting out in C# and coding in general.
I've made an attempt in coding a console based trinomial calculator, however I'm having trouble with the parameters of last two methods in the main method (Calculate
and DisplayResult
).
Visual studio keeps saying:
there is no argument given that corresponds to the required formal parameter.
Can anyone help me?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TrinomialCalculator
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Trinomial Calculator");
Console.WriteLine("====================");
Console.ReadLine();
Console.Clear();
GetValues();
Calculate();
DisplayResult();
}
static int[] GetValues()
{
int[] values = new int[3];
string numInput;
Console.WriteLine("ax^2+bx+c");
Console.WriteLine("=========");
Console.ReadLine();
while (true)
{
Console.WriteLine("Enter an integer for 'a': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[0]);
Console.WriteLine("Enter an integer for 'b': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[1]);
Console.WriteLine("Enter an integer for 'c': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[2]);
if (values[0] == 0 || values[1] == 0 || values[2] == 0)
{
Console.WriteLine("One or more inputs are invalid. Try again.");
Console.ReadLine();
Console.Clear();
continue;
}
else
{
break;
}
}
Console.WriteLine("{0}x^2+{1}x+{2}", values[0], values[1], values[2]);
Console.ReadLine();
Calculate(values);
return values;
}
public static double[] Calculate(int[] values)
{
double[] result = new double[2];
result[0] = -values[1] + Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
result[1] = -values[1] - Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
DisplayResult(result);
return result;
}
static void DisplayResult(double[] result)
{
Console.WriteLine("X(1)={0}\n X(2)={1}", result[0], result[1]);
Console.ReadKey();
}
}
}
Upvotes: 1
Views: 373
Reputation: 39956
The method Calculate
and DisplayResult
have 1 parameters but they invoked with 0 arguments.
Change your code like this:
static void Main(string[] args)
{
Console.WriteLine("Trinomial Calculator");
Console.WriteLine("====================");
Console.ReadLine();
Console.Clear();
double[] x = Calculate(GetValues());
DisplayResult(x);
}
Upvotes: 1
Reputation: 678
You are not passing the parameters to the methods. There are also things in the code that aren't needed, like the while(true) loop and else clauses that don't do anything.
I rewrote this a little. Compare to yours and see what you think.
Good luck learning programming. It is a great profession.
using System;
namespace TrinomialCalculator
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Trinomial Calculator");
Console.WriteLine("====================");
GetValues();
Console.ReadLine();
}
static void GetValues()
{
Console.WriteLine("ax^2+bx+c");
Console.WriteLine("=========");
string numInput;
int[] values = new int[3];
Console.WriteLine("Enter an integer for 'a': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[0]);
Console.WriteLine("Enter an integer for 'b': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[1]);
Console.WriteLine("Enter an integer for 'c': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[2]);
if (values[0] == 0 || values[1] == 0 || values[2] == 0)
{
Console.WriteLine("One or more inputs are invalid. Try again.");
return;
}
Console.WriteLine("{0}x^2+{1}x+{2}", values[0], values[1], values[2]);
DisplayResult(values);
}
static double[] DisplayResult(int[] values)
{
double[] result = new double[2];
result[0] = -values[1] + Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
result[1] = -values[1] - Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
Console.WriteLine("X(1)={0}\n X(2)={1}", result[0], result[1]);
return result;
}
}
}
Upvotes: 1