Главная страница
Навигация по странице:

  • не менее трех

  • максимальное

  • Функции. Лр6. Лабораторная работа 6 Методы ( функции) Требования


    Скачать 88.6 Kb.
    НазваниеЛабораторная работа 6 Методы ( функции) Требования
    АнкорФункции
    Дата16.02.2023
    Размер88.6 Kb.
    Формат файлаdocx
    Имя файлаЛр6.docx
    ТипЛабораторная работа
    #940986

    Лабораторная работа №6

    «Методы (функции)»
    Требования:

    1. Выполнять задания строго в соответствии со своим вариантом в списке журнала.

    2. Выполнять все поставленные задачи в задании.

    3. В случае, если данные обозначены буквами или не даны в явном виде, то они вводятся с клавиатуры.

    4. Обязательно выводить в консоли начальные значения задачи, если они заданы.

    5. Обязательно выводить в консоли результат работы программы с соответствующим обозначением того, что этот результат означает.

    6. Если пользователь должен что-то ввести с консоли, обязательно вывести на консоль сообщение, что это конкретно должно быть.

    7. Каждая задача должна содержать не менее трех методов. 

    8. Метод инициализации и вывода данных должны быть обязательно.

    9. Избегать повторяющегося кода.

    10. Не передавать без необходимости в метод более четырех переменных.

    11. Разбивать задание на максимальное количество методов (логически).

    Вариант 25



    1. Выполнить задачу №5 согласно вашему варианту из ЛР4 с использованием функций, разбивая задачу на максимальное число подфункций.

    2. Дано целое число Nи набор из Nпрямоугольников, заданных своими сторонами — парами чисел (a, b). Найти минимальную площадь прямоугольника из данного набора.

    3. Описать функцию Quarter(x, y) целого типа, определяющую номер координатной четверти, в которой находится точка с ненулевыми вещественными координатами (x, y). С помощью этой функции найти номера координатных четвертей для трех точек с данными ненулевыми координатами.

    4. Описать функцию 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.

    5. Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Определите, какое количество элементов этой последовательности, равны ее наибольшему элементу. В этой задаче не использовать глобальные переменные. Функция получает данные, считывая их с клавиатуры, а не получая их в виде параметра. Результат записывается в переменные, которые передаются в функцию по ссылке. Других параметров, кроме как используемых для возврата значения, функция не получает.
      Гарантируется, что последовательность содержит хотя бы одно число (кроме нуля).

    1. Выполнить задачу №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

    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


    1. Описать функцию 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

    1. Описать функцию 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

    1. Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 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


    написать администратору сайта