Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Выполнил:
студент 2 курса
группы 20-КМ-ПР1
Овезов М.Н.
Краснодар
2022
1 Задания
Задание 1. Разработать собственные методы, аналогичные методам
класса Array:
Array.Reverse(m); // реверс элементов массива
Array.Resize(ref m, 4); // изменение размера до 4 элементов
Array.Copy(m, i, m1, 0, j); // копирование со i-го по j-й элемент в
позицию 0
Задание 2. Разработать собственные функции, аналогичные функциям
класса Array:
var a = m.First();
var a = m.Last();
var a = m.Max();
var a = m.Min();
var a = m.Sum();
var a = m.Average(); // среднее арифметическое
var f = m.Contains(2); // проверка наличия элемента
Задание 3. Разработать функции для удаления и вставки элементов в
одномерный динамический массив по заданному индексу.
Задание 6. Разработать функцию последовательно поиска заданного
элемента в одномерном массиве известной длины в направлении от конца
массива к началу. Функция должна возвращать индекс первого вхождения
элемента в массив. При отсутствии элемента в массиве функция должна
возвращать величину -1.
Задание 8. Разработать программу двоичного поиска заданного
элемента в одномерном упорядоченном массиве известной длины. Функция
должна возвращать индекс вхождения элемента в массив. При отсутствии
элемента в массиве функция должна возвращать величину -1.
Задание 11. Разработать программы выборки K наибольших
элементов из одномерного массива, согласно алгоритму, описанному в
варианте решения 3
2 Ход выполнения лабораторной работы
Для выполнения лабораторной работы был выбран язык C#, так как
данный язык прост в синтаксисе и прекрасно подходит для работы с
одномерными массивами.
В первом задании были разработаны собственные методы для работы
с массивом такие как: реверс, изменение размерности массива, копирование
элементов из одного массива в другой (см. рис. 1 и листинг 1)
Листинг 1
static void ReverseArray(int[] array)
{
int temp = 0;
for (int i = 0; i < array.Length / 2; i++)
{
temp = array[i];
array[i] = array[(array.Length - 1) - i];
array[(array.Length - 1) - i] = temp;
}
}
Листинг 2
static int FirstArray(int[] array)
{
return array[0];
}
Листинг 3
static void InsertArray(ref int[] array, int index, int element)
{
if (array.Length < index)
{
Array.Resize(ref array, index+1);
}
array[index] = element;
}
Листинг 4
static int FindElem(int[] array, int element)
{
int index = -1;
for (int i = array.Length - 1; i >= 0; i--)
{
if (element == array[i])
{
index = i;
}
}
return index;
}
Листинг 5
static int BinarySearch(int[] array, int searchedValue, int left, int
right)
{
while (left <= right)
{
var middle = (left + right) / 2;
if (searchedValue == array[middle])
{
return middle;
}
else if (searchedValue < array[middle])
{
right = middle - 1;
}
else
{
left = middle + 1;
}
}
//ничего не нашли
return -1;
}
Листинг 6
static void MaxElements(int[] array, int k)
{
Array.Sort(array);
Array.Reverse(array);
for (int i = 0; i < k; i++)
{
Console.WriteLine("{0}: {1}", i+1, array[i]);
}
}
3 Вывод
В результате выполнения лабораторной работы были получены и
укреплены знания по работе с одномерными массивами.