1 семестр / Лб5
.docxМИНОБРНАУКИ РОССИИ
Федеральное государственное образовательное учреждение высшего
образования
«Юго-Западный государственный университет»
Кафедра программной инженерии
Лабораторная работа №5
По дисциплине «Языки программирования»
Выполнил: студент группы ИБ-01б
Бунина А.В.
Проверила: доцент
Белова Т.М.
Курск, 2020
Задание 1. Дан целочисленный массив а[15]. Найдите наибольшее из нечетных чисел и количество четных чисел в массиве а[15]. Предусмотрите ситуацию, когда нечетных чисел в последовательности нет.
1.2 Текст программы
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
long c = 0;
int[] array = new int[15];
Random rnd = new Random();
for (int i = 0; i < array.Length; i++)
{
array[i] = rnd.Next(10, 99);
textBox3.Text += Convert.ToString(array[i] + " ");
}
int max = int.MinValue;
for (int i = 0; i < array.Length; i++)
{
if (array[i] % 2 != 0 && array[i] > max)
{
max = array[i];
}
else
{
textBox2.Text = Convert.ToString("В массиве нет нечетных чисел");
}
textBox2.Text = Convert.ToString("Наибольшее из нечетных чисел: " + max);
if (array[i] % 2 == 0)
{
c++;
textBox1.Text = Convert.ToString("Количество четных чисел в массиве: " + c);
}
}
}
}
1.3 Результат работы программы
Задание 2. Даны натуральное число n и символьный массив а[n],
в котором хранятся латинские буквы и арабские цифры. Создайте целочисленный массив b, поместив в него только цифры из массива а.
2.2 Текст программы
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int n = Convert.ToInt32(textBox1.Text);
int[] a = new int[n];
char[] b = new char[n];
int[] c = new int[n];
Random rnd = new Random();
for (int i = 0; i < a.Length; i++)
{
b[i] = Convert.ToChar(rnd.Next('a', 'z' + 1));
c[i] = rnd.Next(0, 9);
textBox2.Text += Convert.ToString(c[i] + " " + b[i] + " ");
}
string d = Convert.ToString(textBox2.Text);
string f = new String(d.Where(Char.IsDigit).ToArray());
textBox3.Text += Convert.ToString(f);
}
}
2.3 Результат работы программы
Ответы на контрольные вопросы.
Может ли массив содержать один элемент?
Ответ: да.
Можно ли во время выполнения программы изменить размер массива?
Ответ: для динамических - да, для статических - нет.
Могут ли элементами некоторого массива быть числа 1, 1.41, 4.98, 30?
Ответ: да.
Верно ли, что тип элементов массива может быть любым?
Ответ: да, но все элементы массива должны быть одного типа.
Может ли типом индекса массива быть тип int или float?
Ответ: да.
Где размещается (в программном стеке или в куче) массив?
Ответ: куча.
Какова структура инициализатора массива?
Ответ: спецификатор типа имя_массива [размерN] ... [размер1] = {список значений};
Пример: int i [10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Объясните назначение всех элементов цикла foreach. Каково назначение и возможности переменной цикла foreach.
Ответ: цикл foreach предназначен для перебора элементов в контейнерах, в том числе в массивах. Формальное объявление цикла foreach:
foreach (тип_данных название_переменной in контейнер)
{
// действия
}
В чём различия методов Copy() и Clone()?
Ответ: отличие методов Clone() и Copy() заключается в том, что метод Clone() самостоятельно выделяет память под вновь создаваемый массив и заполняет ее копиями элементов, а метод Copy() копирует часть одного массива в другой.
Назовите свойства массивов, унаследованные ими от класса Array.
Ответ: Одномерные массивы наследуют из класса Array несколько свойств, упрощающих работу с массивами.
int Length – целочисленное (32 бита) значение, определяющее общее количество элементов экземпляра массива (изменять его нельзя).
int Rank – размерность (число измерений) массива.
Чему равно свойство Length для многомерного массива?
Ответ: если массив многомерный, то array.length выведет количество блоков в массиве.