Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Передача параметров по значению и по ссылке



Когда параметры передаются в метод обычным образом (без дополнительных ключевых слов ref и out), любые изменения параметров внутри метода не влияют на его значение в основной программе. Предположим, у нас есть следующий метод:

 

private void Calc(int Number)

{

Number = 10;

}

 

Видно, что внутри метода происходит изменение переменной Number, которая была передана как параметр. Попробуем вызвать метод:

 

int n = 1;

Calc(n);

Console.WriteLine(n);

 

На экране появится число 1, то есть, не смотря на изменение переменной в методе Calc, значение переменной в главной программе не изменилось. Это связано с тем, что при вызове метода создаётся копия переданной переменной, именно её изменяет метод. При завершении метода значение копий теряется. Такой способ передачи параметра называется передачей по значению.

Чтобы метод мог изменять переданную ему переменную, её следует передавать с ключевым словом ref – оно должно быть как в сигнатуре метода, так и при вызове:

 

private void Calc(ref int Number)

{

Number = 10;

}

int n = 1;

Calc(ref n);

Console.WriteLine(n);

 

В этом случае на экране появится число 10: изменение значения в методе сказалось и на главной программе. Такая передача метода называется передачей по ссылке, т.е. передаётся уже не копия, а ссылка на реальную переменную в памяти.

Если метод использует переменные по ссылке только для возврата значений и ему не важно что в них было изначально, то можно не инициализировать такие переменные, а передавать их с ключевым словом out. Компилятор понимает, что начальное значение переменной не важно и не ругается на отсутствие инициализации:

 

private void Calc(out int Number)

{

Number = 10;

}

int n; // Ничего не присваиваем!

Calc(out n);

 

12.5. Выполнение индивидуального задания

1) Написать метод min(x, y), находящий минимальное значение из двух чисел. С его помощью найти минимальное значение из четырёх чисел a, b, c, d.

2) Написать метод max(x, y), находящий максимальное значение из двух чисел. С его помощью найти максимальное значение из четырёх чисел a, b, c, d.

3) Написать метод, вычисляющий значение n/xn. С его помощью вычислить выражение:

4) Написать метод, вычисляющий значение n/xn. С его помощью вычислить выражение:

5) Написать метод, вычисляющий значение xn/(n+x). С его помощью вычислить выражение:

6) Написать метод, вычисляющий значение sin(x) + cos(2 * x). С его помощью определить в какой из точек a, b или с значение будет минимальным.

7) Написать метод, вычисляющий значение x2 + y2. С его помощью определить с какой парой чисел (a, b) или (с, d) значение будет максимальным.

8) Написать метод, вычисляющий значение x2 * y3 * . С его помощью определить с какой тройкой чисел (a, b, c) или (d, e, f) значение будет максимальным.

9) Написать метод, который у чётных чисел меняет знак, а нечётные числа оставляет без изменения. С его помощью обработать ряд чисел от 1 до 10.

10) Написать метод, который положительные числа возводит в квадрат, а отрицательные – в куб. С его помощью обработать ряд чисел от -10 до 10.

11) Написать метод, который вычисляет значения x=sin2(a) и y=cos2(a). Напечатать таблицу значений от –π до π с шагом π /4.

12) Написать метод, который вычисляет значения x=a2 и y= . Напечатать таблицу значений от –10 до 10 с шагом 1.

13) Написать метод, который в переданной строке заменяет все точки на многоточие. С его помощью обработать пять разных строк и отобразить их на экране.

14) Написать метод, который в переданной строке заменяет все строчные буквы на заглавные и наоборот. С его помощью обработать пять разных строк и отобразить их на экране.

15) Написать метод, который разделяет переданную строку на две отдельных строки: первая содержит исходную строку до первой точки, а вторая – исходную строку после первой точки. С его помощью обработать пять разных строк и отобразить результаты на экране.

 


ЛАБОРАТОРНАЯ РАБОТА 13. СОРТИРОВКА

Цель лабораторной работы: освоить основные алгоритмы сортировки, написать программу с использованием этих алгоритмов.

Общие понятия

Сортировка – это процесс упорядочения элементов массива или списка по возрастанию или убыванию.

Существует много алгоритмов сортировки, отличающихся по ряду характеристик:

· Время работы, или вычислительная сложность – количество операций, затрачиваемых алгоритмом. Обычно оценивается худший сценарий, когда исходный массив оказывается максимально неупорядочен с точки зрения алгоритма.

· Затрачиваемая память (помимо исходного массива) – некоторые алгоритмы требуют выделения дополнительной памяти для временного хранения данных или формирования нового выходного массива.

Кроме того, алгоритмы можно разделить по типу доступа к данным:

· Алгоритмы внутренней сортировки применяются для сортировки данных, целиком находящихся в оперативной памяти.

· Алгоритмы внешней сортировки оперируют данными, не помещающимися в оперативную память. Такие алгоритмы используют внешнюю память, доступ к которой требует существенно большего времени, поэтому требуются специальные алгоритмические решения, чтобы каждый элемент использовался алгоритмом минимальное количество раз.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-04-09; Просмотров: 1213; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.)
Главная | Случайная страница | Обратная связь