- •Теория Введение. Составные компоненты языка программирования
- •Типы данных. Описание переменных. Константы именованные и неименованные
- •Базовые типы
- •Int32 -2млрд..2млрд
- •Константы
- •Неименованные константы
- •Именованные константы
- •Переменные
- •Идентификаторы
- •Основная структура программы Для консольного приложения автоматически создается структура:
- •Оператор присваивания
- •Операторы ввода-вывода
- •Операторы ввода
- •Операторы вывода
- •X или X Шестнадцатеричный формат
- •Арифметические операторы
- •Бинарные
- •Унарные
- •Комбинированные операторы присваивания
- •Логические операторы
- •Операторы отношения
- •Уровни значимости операторов
- •Стандартные функции
- •Составной оператор
- •Раздел: Условные операторы Оператор условия (if)
- •If (выражение_лог_типа) оператор; //сокращенная форма
- •Оператор варианта (switch)
- •Решение
- •Int n, sum; string s; //описываем необх. Переменные
- •Раздел: Операторы цикла Оператор цикла с параметром (for)
- •Оператор цикла с постусловием (do - while)
- •Оператор цикла с предусловием (while)
- •Раздел: Массивы, строки Массивы одномерные
- •Оператор foreach
- •Строки. Средства работы со строками
- •Точные строки: символ @
- •Преобразование строк в другие типы
- •Раздел: Создание подпрограмм Методы
- •Передача типов значений с помощью значения
- •Int I;//независимая переменная
- •Передача типов значений с помощью ссылки
Передача типов значений с помощью ссылки
Ключевое слово out используется для передачи аргументов по ссылке. Оно похоже на ключевое слово ref, за исключением того, что ref требует инициализации переменной перед ее передачей. Для работы с параметром out определение метода и вызывающий метод должны явно использовать ключевое слово out. Таким образом, если значение параметра до вызова метода не определено, используют out, если определено используют ref.
Рассмотрим пример подпрограммы ввода, обработки и вывода массива. "Ввести массив, заменить его элементы факториалами, вывести массив".
static void enter(out int[] massiv1)
{
int i, N; string s;
//вводим число элементов
Console.Write("Введите число элементов массива N=");
s = Console.ReadLine();
N = Convert.ToInt32(s);
//создаём массив необходимой длины
massiv1 = new int[N];
//запускаем цикл по всем элементам массива
for (i = 0; i < N; i++)
{
//вводим i-ый элемент
Console.Write("Введите {0}-й элемент массива ", i);
s = Console.ReadLine();
massiv1[i] = Convert.ToInt32(s);
}
}
static void process(ref int[] massiv1)
{
for(int j=0;j< massiv1.Length;j++)
{
int f = 1;
for (int i=2;i<=massiv1[j];i++)
f=f*i;
massiv1[j] = f;
}
}
static void output(int[] mas)
{
Console.WriteLine("Список элементов массива");
foreach (int i in mas)
Console.Write("{0} ", i);
}
static void Main(string[] args)
{
int[] my_massiv;
enter(out my_massiv);
process(ref my_massiv);
output(my_massiv);
Console.ReadKey();
}
