Файл: Ответ Динамические массивы в C позволяют создавать массивы переменной длины во время выполнения программы. Это очень удобно, когда нужно хранить данные неизвестного количества элементов.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 11

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Задание 1-го типа

8) Динамические массивы в С++

Ответ:

Динамические массивы в C++ позволяют создавать массивы переменной длины во время выполнения программы. Это очень удобно, когда нужно хранить данные неизвестного количества элементов.

Для создания динамического массива использую оператор new. Например, чтобы создать массив из 10 целых чисел, можно написать такой код:

int size = 10;

int *arr = new int[size];

Создал указатель на массив целых чисел и выделил для него память размером 10 элементов. Можно обращаться к элементам массива так же, как и к элементам обычного массива:

arr[0] = 1;

arr[1] = 2;

// ...

После использования массив нужно освободить память с помощью оператора delete:

delete[] arr;

Перед словом delete стоит знак [], который говорит C++, что это динамический массив, а не одиночный объект. Если забыть этот знак, программа может работать неправильно или даже сломаться.

Задание 2-го типа

8) Наследуется ли определение чистой виртуальной функции?

Ответ:

Определение чистой виртуальной функции не наследуется в C++.

Чистая виртуальная функция - это функция, объявленная в базовом классе с использованием virtual и присвоением ей нулевого тела, например:

class Base {

public:

virtual void foo() = 0;

};

Класс Base содержит только объявление функции foo, а определение этой функции должно быть реализовано в производном классе. Классы, содержащие хотя бы одну чистую виртуальную функцию, называются абстрактными классами.

Если производный класс не переопределяет чистую виртуальную функцию, то он также становится абстрактным классом, и попытка создания объекта этого класса приводит к ошибке кокомпиляции

Определение чистой виртуальной функции должно быть реализовано в каждом производном классе отдельно. Если определение функции не предоставлено в производном классе, то это приведет к ошибке компиляции.

Задание 3-го типа

8) Напишите функцию bool f(int N), которая определяет, является ли пятизначное целое число N палиндромом.

Ответ:

Функция bool f(int N) проверяет, является ли пятизначное целое число N палиндромом. Палиндром - это число
, которое читается одинаково слева направо и справа налево.

Пример кода:

bool f(int N) {

int n = N; // сохраняем значение N в переменной n

int digits[5]; // создаем массив для хранения каждой цифры числа N

// разбиваем число N на отдельные цифры и сохраняем их в массиве digits

for (int i = 0; i < 5; i++) {

digits[i] = n % 10; // вычисляем последнюю цифру числа N

n /= 10; // удаляем последнюю цифру из числа N

}

// сравниваем первую и последнюю цифры, а также вторую и предпоследнюю цифры

return (digits[0] == digits[4]) && (digits[1] == digits[3]);

}

Сохраняем значение числа N в переменной n. Затем создаем массив digits, который будет хранить каждую цифру числа N. Потом разбиваем число N на отдельные цифры с помощью операции деления и взятия остатка от деления на 10. Сохраняем каждую цифру в массиве digits. Проверяем, соответствуют ли первая и пятая цифры, а также вторая и четвертая. Если это так, то функция возвращает true, что означает, что число является палиндромом. Если не так, то функция возвращает false.

Эта функция работает только для пятизначных чисел. Если хотите использовать ее для чисел других размеров, то необходимо изменить количество итераций цикла for и размер массива digits.