Similar presentations:
Программирование на C#. Семинар 5
1.
Программирование на C#Семинар 5
Методы.
Передача Параметров по Ссылке
Использование модификаторов out и ref
1
2.
Методы[модификаторы] тип_возврата ИмяМетода([параметры])
{
// Тело метода
}
3.
Возврат из метода и возврат значения4.
Возврат из метода и возврат значения5.
Передача по значению6.
Передача по ссылке7.
example4Перестановка типов значений
8.
9.
Задача 1: Вывод таблицы целых чиселВывести на экран таблицу чисел от 0 до 15 в десятичной и шестнадцатеричной системах счисления
using System;
class Program {
static void Main() {
Console.WriteLine("Dec\tHex");
Console.WriteLine("=================");
for (int i = 0; i < 16; i++) {
Console.WriteLine("{0}\t{0:X4}", i);
}
}
}
Самостоятельно выделить статический метод, позволяющий для целого числа вывести в консольное окно его
битовое представление. Код в методе Main() заменить вызовом этого метода.
9
10.
Задача 2: Масштабирование прямоугольникаЧасто возникает необходимость работать с чужим кодом. В предложенной задаче реализован метод,
увеличивающий ширину и высоту прямоугольника на одну единицу.
// Метод увеличивает высоту и ширину прямоугольника на 1
// Прямоугольник задан координатами верхнего левого угла
// высотой и шириной
public static bool RectangleInflate(int x, int y, ref int height, ref int width) {
// проверяем корректность переданных значений
if (height <= 0 || width <= 0) return false;
height++;
width++;
return true;
}
10
11.
Задача 2: Масштабирование прямоугольникаpublic static void Main() {
// тест метода для корректных данных
int x = 0, y = 0;
int height = 5, width = 7;
Console.WriteLine("({0},{1}) h={2} w={3}", x, y, height, width);
if (!RectangleInflate(x, y, ref height, ref width)) {
Console.WriteLine("Неверные параметры прямоугольника!");
return;
}
Console.WriteLine("Преобразование успешно произведено:");
Console.WriteLine("({0},{1}) h={2} w={3}", x, y, height, width);
int xWrong = 1, yWrong = 1;
Console.WriteLine();
int heightWrong = -5, widthWrong = 7;
11
12.
Задача 2: Масштабирование прямоугольника// тест метода для неверных данных
Console.WriteLine("({0},{1}) h={2} w={3}", xWrong, yWrong, heightWrong, widthWrong);
if (!RectangleInflate(x, y, ref heightWrong, ref widthWrong)) {
Console.WriteLine("Неверные параметры прямоугольника!");
return;
}
Console.WriteLine("Преобразование успешно произведено:");
Console.WriteLine("({0},{1}) h={2} w={3}", xWrong, yWrong, heightWrong, widthWrong);
}
12
13.
Задания к задаче 21. Тесты, предложенные в методе Main() – пример дублирующего кода. Напишите метод, в который
можно выделить этот код и используйте его вызовы в Main().
2. Напишите метод RectangleDeflate(), имеющий те же параметры, что и метод
RectangleInflate(). Метод, возвращает true, если переданный в качестве параметра прямоугольник
может быть уменьшен по обоим измерениям на 1 и уменьшает измерения на 1 и false в противном
случае. Полагать, что длина стороны не может быть меньше 1.
3. Напишите метод RectangleNormalize(), имеющий те же параметры, что и метод
RectangleInflate(). Метод, возвращает true, если переданный в качестве параметров
прямоугольник может быть преобразован в квадрат путём уменьшения длины одной из сторон и
уменьшает одно из сторон и false в противном случае. Самостоятельно рассмотреть варианты
некорректных параметров.
13
14.
Задача 3: Переупорядочивание ЦифрНапишите метод, преобразующий значение целочисленного трёхзначного
параметра, чтобы его цифры стали упорядочены по убыванию. Метод должен
возвращать значение false, если параметр задан неверно или true при
удачном преобразовании.
В основной программе вводится трёхзначное натуральное число, которое затем
преобразуется с помощью описанного метода.
Заголовок метода:
public static bool ReverseDigits(ref uint number)
14
15.
Задача 4: Циклический Сдвиг СимволаНапишите метод, изменяющий значение символьного параметра русского или
английского алфавита путём его циклического сдвига на shiftCount позиций вперёд
или назад (если значение shiftCount отрицательное).
Метод должен возвращать значение false, если аргумент не является символом
русского или английского алфавита, и true в случае успеха.
В основной программе вводится символ и количество позиций, на которое
выполняется его циклический сдвиг с помощью описанного метода. Если метод
вернул false, символ должен остаться неизменным.
Заголовок метода:
public static bool Shift(int shiftCount, ref char ch)
Примеры сдвига: (b, 4) → f; (Г, 10) → М; (V, -3) → S; (d, 26) → d; (Z, 53) → A
15
16.
Задача 5: Площадь и Периметр ТреугольникаНапишите метод, вычисляющий площадь (a) и периметр (p) треугольника по
заданным длинам его сторон. Метод должен возвращать значение false, если
параметры заданы неверно и треугольник с такими длинами построить нельзя
или true в случае успеха.
В основной программе вводятся значения трёх вещественных чисел – сторон
треугольника.
Заголовок метода:
public static bool Triangle(double x, double y, double z,
out double p, out double s)
16
17.
Задача 6: Сумма по ФормулеНапишите метод для вычисления суммы по заданной формуле: