Файл: Лабораторная работа 6 Методы ( функции) Требования.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.03.2024
Просмотров: 7
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторная работа №6
«Методы (функции)»
Требования:
-
Выполнять задания строго в соответствии со своим вариантом в списке журнала. -
Выполнять все поставленные задачи в задании. -
В случае, если данные обозначены буквами или не даны в явном виде, то они вводятся с клавиатуры. -
Обязательно выводить в консоли начальные значения задачи, если они заданы. -
Обязательно выводить в консоли результат работы программы с соответствующим обозначением того, что этот результат означает. -
Если пользователь должен что-то ввести с консоли, обязательно вывести на консоль сообщение, что это конкретно должно быть. -
Каждая задача должна содержать не менее трех методов. -
Метод инициализации и вывода данных должны быть обязательно. -
Избегать повторяющегося кода. -
Не передавать без необходимости в метод более четырех переменных. -
Разбивать задание на максимальное количество методов (логически).
Вариант 25
-
Выполнить задачу №5 согласно вашему варианту из ЛР4 с использованием функций, разбивая задачу на максимальное число подфункций. -
Дано целое число Nи набор из Nпрямоугольников, заданных своими сторонами — парами чисел (a, b). Найти минимальную площадь прямоугольника из данного набора. -
Описать функцию Quarter(x, y) целого типа, определяющую номер координатной четверти, в которой находится точка с ненулевыми вещественными координатами (x, y). С помощью этой функции найти номера координатных четвертей для трех точек с данными ненулевыми координатами. -
Описать функцию Norm1(A,M,N) вещественного типа, вычисляющую норму матрицы A размера M x N с вещественными элементами: [Norm1(A,M,N) = max {|A[1,j]| + |A[2,j]| + ... + |A[M,j]|}], где максимум берется по всем [j от 1 до N]. Для данной матрицы A размера M x N найти Norm1(A,k,N), k = 1,...,M. -
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Определите, какое количество элементов этой последовательности, равны ее наибольшему элементу. В этой задаче не использовать глобальные переменные. Функция получает данные, считывая их с клавиатуры, а не получая их в виде параметра. Результат записывается в переменные, которые передаются в функцию по ссылке. Других параметров, кроме как используемых для возврата значения, функция не получает.
Гарантируется, что последовательность содержит хотя бы одно число (кроме нуля).
-
Выполнить задачу №5 согласно вашему варианту из ЛР4 с использованием функций, разбивая задачу на максимальное число подфункций.
static void SubFunction(int[] NewArr, ref int[] Array, int index) {
for (int i = 0; i < index; i++)
{
NewArr[i] = Array[i];
}
}
static void SubFunction1(int[] NewArr, ref int[] Array, int index)
{
for (int i = index + 1; i < Array.Length; i++)
{
NewArr[i - 1] = Array[i];
}
Array = NewArr;
}
static void FuncDelete(int[] NewArr, ref int[] array, int index)
{
SubFunction(NewArr, ref array, index);
SubFunction1(NewArr, ref array, index);
}
static void EvenNumbers(int[] Arr)
{
int[] NewArr = new int[Arr.Length - 1];
for (int i = 0; i <= Arr.Length - 1; i++) {
if (Arr[i] % 2 == 0)
{
FuncDelete(NewArr, ref Arr, i);
}
}
Console.WriteLine(Output(Arr));
}
case 1: {
int[] Array = Input();
Console.Write(Output(Array));
EvenNumbers(Array);
break;
}
Рисунок 1
-
Дано целое число Nи набор из Nпрямоугольников, заданных своими сторонами — парами чисел (a, b). Найти минимальную площадь прямоугольника из данного набора.
static (int,int) Squares(int n) {
int min = 0, max = 0;
for (int i = 0; i <= n; i++)
{
Console.WriteLine("A: ");
int A = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("B: ");
int B = Convert.ToInt32(Console.ReadLine());
int s = A * B;
if (i == 1)
{
min = s;
max = s;
}
if (s < min)
{
min = s;
}
if (s > max)
{
max = s;
}
}
return (min,max);
//Console.WriteLine("Минимальная площадь треугольника из набора=" + min);
//Console.WriteLine("Максимальная площадь треугольника из набора=" + max);
}
Рисунок 2
-
Описать функцию Quarter(x, y) целого типа, определяющую номер координатной четверти, в которой находится точка с ненулевыми вещественными координатами (x, y). С помощью этой функции найти номера координатных четвертей для трех точек с данными ненулевыми координатами.
static int Quarter(int x, int y)
{
if (x > 0 && y > 0) {
return 1;
}
else if (x < 0 && y > 0) {
return 2;
}
else if (x < 0 && y < 0) {
return 3;
}
else if (x > 0 && y < 0) {
return 4;
}
return 0;
}
Рисунок 3
-
Описать функцию Norm1(A,M,N) вещественного типа, вычисляющую норму матрицы A размера M x N с вещественными элементами: [Norm1(A,M,N) = max {|A[1,j]| + |A[2,j]| + ... + |A[M,j]|}], где максимум берется по всем [j от 1 до N]. Для данной матрицы A размера M x N найти Norm1(A,k,N), k = 1,...,M.
static int Max(int a, int[]b ) {
int max = b[0];
for (int i = 0; i < a; i++)
{
if (b[i] > max)
{
max = b[i];
}
}
return max;
}
static (int, int[]) Norm1(int[,]Arr) {
int pos = 0;
int[] vektor = new int[Arr.GetLength(1)];
for (int i = 0; i < Arr.GetLength(1); i++)
{
for (int j = 0; j < Arr.GetLength(0); j++)
{
vektor[pos] += Math.Abs(Arr[j,i]);
}
pos++;
}
return (pos, vektor);
}
Рисунок 4
-
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Определите, какое количество элементов этой последовательности, равны ее наибольшему элементу. В этой задаче не использовать глобальные переменные. Функция получает данные, считывая их с клавиатуры, а не получая их в виде параметра. Результат записывается в переменные, которые передаются в функцию по ссылке. Других параметров, кроме как используемых для возврата значения, функция не получает.
Гарантируется, что последовательность содержит хотя бы одно число (кроме нуля).
static void GetCount(int max, int count)
{
int n = int.Parse(Console.ReadLine());
if (n == 0)
{
Console.WriteLine($"{max}, {count}");
}
if (n > max)
{
GetCount(n, 1);
}
else if (n == max)
{
GetCount(max, count++);
}
else
{
GetCount(max, count);
}
}
Рисунок 5