Передача в метод массива и возврат его в виде результата
В C# массивы могут быть переданы в метод в виде параметра и возвращены в качестве результата. При передаче массива в метод достаточно передать только сам объект, указав его имя. Все его характеристики (размерность, граница) можно определить, используя свойства или методы этого объекта. В метод подается только ссылка на массив.
class Program
{
static void PrintAr(string[] Fath, string[][] Child)
{
for(int i = 0; i < Fath.Length; i++)
{
Console.WriteLine("Отец : {0}; Его дети:", Fath[i]);
for(int j = 0; j < Child[i].Length; j++)
Console.Write( Child[i][j] + " ");
Console.WriteLine();
}
}
static void Main(string[] args)
{
//массив массивов -"Отцы и дети"
int Fcount = 3;
string[] Fathers = new string[Fcount];
Fathers[0] = "Николай"; Fathers[1] = "Сергей"; Fathers[2] = "Петр";
string[][] Children = new string[Fcount][];
Children[0] = new string[] {"Ольга", "Федор”};
Children[1] = new string[] {"Сергей", "Валентина", "Дарья", "Дмитрий”};
Children[2] = new string[] {"Мария", "Екатерина", "Надежда”};
PrintAr(Fathers, Children);
Console.ReadKey();
}
}
Функции с побочным эффектом
Функция называется функцией с побочным эффектом, если помимо результата вычисляемого функцией и возвращаемого ей в операторе return, она имеет выходные аргументы с ключевыми словами ref или out. Выражения, использующие функции с побочным эффектом, могут потерять свойства, присущие им в математике.
class Program
{
static int f(ref int a)
{
return (a++);
}
static void Main(string[] args)
{
int a = 0, b=0, c=0;
a =1;
b = a + f(ref a);
a =1;
c = f(ref a)+ a;
Console.WriteLine("a={0}, b={1}, c={2}",a,b,c);
Console.ReadKey();
}
}
Рекурсия
Метод называется рекурсивным, если при выполнении тела метода он вызывает сам себя. Рекурсивные методы наиболее удобны при работе со списками или деревьями. Рекурсия может быть прямой или косвенной (если в теле метода 1 вызывается метод 2, в теле которого вызывается метод 1). Если в теле рекурсивного метода рекурсивный вызов встречается только один раз и рекурсия является прямой, то рекурсию можно заменить циклом, что ускорит работу программы.
static long fact(int n)
{
if (n <= 1) return (1);
else return (n * fact(n - 1));
}
static void Main(string[] args)
{
Console.WriteLine("factorial(7)="+fact(7));
Console.ReadKey();
}
Отладка программы
Отладка программы – это исправление ошибок в программе. Команды, связанные с отладкой расположены в меню отладка:
1) Начать отладку(F5) компиляция и запуск программы на выполнение. Если текст программы был изменен, то при нажатии на этот пункт меню, будет выполнена повторная компиляция программы. На этом этапе выявляются синтаксические ошибки.
2) Запуск без отладки (ctrl + F5) запуск и компиляция программы без использования отладки.
3) Шаг с обходом (F10) выполнение очередного оператора программы, после которого программы приостанавливается. Следующая готовая к выполнению строка подсвечивается.
4) Шаг с заходом (F11) команда аналогична предыдущей. Но если очередным оператором является обращение к подпрограмме, управление передается внутрь подпрограммы.
5) Шаг с выходом (shift + F11) позволяет выполнить остаток кода подпрограммы до конца и выйти из неё.
6) Точка останова (F9) определение новой точки останова в месте расположения текстового курсора. Точка останова выделяется красным цветом. Повторный выбор данной команды для строки, в которой имеется точка останова, приводит к её удалению. Если программа запущена на выполнение (F5) и при и её выполнение следующим должен быть оператор, который находится в строке с точкой останова, то выполнение программы будет приостановлено, строка с точкой останова выделится подсветкой, а далее можно использовать все средства отладчика.
7) Продолжить (F5) запуск программы на выполнение с текущего места отладки.
8) Перезапустить (ctrl + shift + F5) остановка программы, её повторная компиляция в случаи необходимости и её запуск.
9) Остановить отладку(shift + F5) прекращение текущего сеанса отладки.
Меню окна позволяет отобразить диалоги в которых содержится информация об выполняемой программе. Так окно локальные отображает переменные и их значения, которые доступны в текущий момент выполнения программы. В этом окне можно так же можно изменять значения переменных. Просмотреть значение переменных можно так же, подведя курсор мыши к этим переменным. При запуске программы в среде программирования возможно задание наборов входных параметров, аналогично параметрам задаваемым с помощью командной строки. Для этого используется меню-проект-свойства-отладка-раздел аргументы командной строки.