}

Console.WriteLine() ; return 0;

}

}

Для того чтобы воспользоваться этой программой, укажите в командной строке имя программы, затем командное слово 'зашифровать' или 'расшифровать' и далее сообщение, которое требуется зашифровать или расшифровать. Ниже приведены два примера выполнения данной программы, при условии, что она называется Cipher.

C:Cipher зашифровать один два

пейо егб

C:Cipher расшифровать пейо егб

один два

Данная программа отличается двумя интересными свойствами. Во-первых, обратите внимание на то, как в ней проверяется наличие аргументов командной строки перед тем, как продолжить выполнение. Это очень важное свойство, которое можно

обобщить. Если в программе принимается во внимание наличие одного или более аргументов командной строки, то в ней должна быть непременно организована проверка факта передачи ей предполагаемых аргументов, иначе программа будет работать неправильно. Кроме того, в программе должна быть организована проверка самих аргументов перед тем, как продолжить выполнение. Так, в рассматриваемой здесь программе проверяется наличие командного слова 'зашифровать' или 'расшифровать' в качестве первого аргумента командной строки.

И во-вторых, обратите внимание на то, как программа возвращает код своего завершения. Если предполагаемые аргументы командной строки отсутствуют или указаны неправильно, программа возвращает код 1, указывающий на ее аварийное завершение. В противном случае возвращается код 0, когда программа завершается нормально.

Рекурсия

В C# допускается, чтобы метод вызывал самого себя. Этот процесс называется рекурсией, а метод, вызывающий самого себя, — рекурсивным. Вообще, рекурсия представляет собой процесс, в ходе которого нечто определяет самое себя. В этом отношении она чем-то напоминает циклическое определение. Рекурсивный метод отличается главным образом тем, что он содержит оператор, в котором этот метод вызывает самого себя. Рекурсия является эффективным механизмом управления программой.

Классическим примером рекурсии служит вычисление факториала числа. Факториал числа N представляет собой произведение всех целых чисел от 1 до N. Например, факториал числа 3 равен 1х2><3, или 6. В приведенном ниже примере программы демонстрируется рекурсивный способ вычисления факториала числа. Для сравнения в эту программу включен также нерекурсивный вариант вычисления факториала числа.

// Простой пример рекурсии.

using System;

class Factorial {

// Это рекурсивный метод, public int FactR(int n) { int result;

if(n==l) return 1; result = FactR(n-l) * n; return result;

}

// Это итерационный метод, public int FactI(int n) { int t, result;

result = 1;

for(t=l; t <= n; t++) result *= t; return result;

class Recursion {

static void Main() { Factorial f = new

Factorial ();

Console.WriteLine('Факториалы, рассчитанные рекурсивным методом. Console.WriteLine ('Факториал числа    3    равен    '    +    f.FactR(3));

Факториал числа    4    равен    '    +    f.FactR(4));

Console.WriteLine( Console.WriteLine(

Факториал числа    5    равен    '    +    f.FactR(5));

Console.WriteLine() ;

Console.WriteLine('Факториалы, рассчитанные итерационным методом Console.WriteLine ('Факториал    числа    3    равен    '    +    f.FactR(3));

• Console.WriteLine('Факториал    числа    4    равен    '    +    f.FactR(4));

Console.WriteLine('Факториал    числа    5    равен    '    +    f.FactR(5));

При выполнении этой программы получается следующий результат.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату