3.4. Multiple Function Parameters¶

A function can have more than one parameter in a parameter list. The list entries are separated by commas. Each formal parameter name is preceded by its type. The example program addition1/addition1.cs uses a function, SumProblem, with two parameters to make it easy to display many sum problems. Read and follow the code, and then run:

using System;

{
static string SumProblemString(int x, int y)
{
int sum = x + y;
string sentence = "The sum of " + x + " and " + y + " is " + sum + ".";
return sentence;
}

static void Main()
{
Console.WriteLine(SumProblemString(2, 3));
Console.WriteLine(SumProblemString(12345, 53579));
Console.Write("Enter an integer: ");
int a = int.Parse(Console.ReadLine());
Console.Write("Enter another integer: ");
int b = int.Parse(Console.ReadLine());
Console.WriteLine(SumProblemString(a, b));
}
}

The actual parameters in the function call are evaluated left to right, and then these values are associated with the formal parameter names in the function definition, also left to right. For example a function call with actual parameters, F(actual1, actual2, actual3), calling a function F with definition heading:

static void F(int formal1, int formal2, int formal3)

acts approximately as if the first lines executed inside the called function F were

formal1 = actual1;
formal2 = actual2;
formal3 = actual3;

Functions provide extremely important functionality to programs, allowing tasks to be defined once and performed repeatedly with different data. It is essential to see the difference between the formal parameters used to describe what is done inside the function definition (like x and y in the definition of SumProblem) and the actual parameters (like 2 and 3 or 12345 and 53579) which substitute for the formal parameters when the function is actually executed. Main uses three different sets of actual parameters in the three calls to SumProblem.

Warning

It is easy to confuse the heading in a function definition and a call to actually execute that function. Be careful. In particular, do not list the types of parameters in a call’s actual parameter list. The actual parameters are expressions involving terms that are already defined, not just being declared.

3.4.1. Quotient Function Exercise¶

Modify quotient_format.cs from Exercise for Format and save it as quotient_prob.cs. You should create a function QuotientProblem with int parameters. Like in the earlier versions, it should print a full sentence with inputs, integer quotient, and remainder. Main should test the QuotientProblem function on several sets of literal values, and also test the function with input from the user.