МИФИ: Профильные вопросы
Профильные вопросы по программированию, алгоритмам и структурам данных с опорой на рекомендованную литературу.
Материалы раздела
- Какие этапы включает процесс разработки программного обеспечения? — Разработка программного обеспечения — это управляемый процесс создания, проверки, внедрения и сопровождения программы.
- Какие существуют типы вещественных данных и в чем их особенности? — Вещественные данные нужны для величин, которые могут иметь дробную часть: координат, времени, температуры, вероятности, результатов измерений и научных расчетов.
- Какие основные типы целых данных используются в программировании? — Целые данные предназначены для хранения чисел без дробной части: количества элементов, индексов, счетчиков, кодов, размеров, идентификаторов и результатов целочисленных операций.
- Какие операции можно выполнять над целыми числами? — Над целыми числами можно выполнять арифметические, сравнительные, логические и битовые операции. Эти операции лежат в основе большинства алгоритмов: счетчиков, циклов, индексации…
- Какие операции можно выполнять над вещественными числами? — Вещественные числа используются там, где нужны дробные значения: измерения, координаты, проценты, вероятности, физические расчеты, графика и статистика.
- Как представляется алгоритм в виде блок-схемы? — Блок-схема — это графическое представление алгоритма. Она показывает последовательность действий, условия, ввод, вывод и направление переходов между шагами.
- Как работают условные операторы? В чем разница между различными их видами? — Условный оператор позволяет программе выбирать разные действия в зависимости от истинности условия. Условие обычно является логическим выражением.
- Как объявляются массивы в разных языках программирования? — Массив — это структура данных, которая хранит несколько элементов одного логического набора под одним именем. Обычно элементы доступны по индексу.
- Как организовано физическое представление массивов в памяти? — Физически массив обычно хранится как непрерывный участок памяти, разделенный на ячейки одинакового размера. Каждая ячейка содержит один элемент массива.
- Операции с массивами: доступ, поиск, вставка, удаление и сортировка — Массив хранит упорядоченную последовательность элементов и позволяет обращаться к ним по индексу. С массивами выполняют создание, чтение, изменение, обход, поиск, вставку,…
- Чем отличаются динамические и статические массивы? В каких случаях предпочтительнее использовать каждый из них? — Статический массив имеет фиксированный размер, который задается заранее. Динамический массив может изменять размер во время выполнения программы.
- В чем суть сортировки пузырьком? Какова ее сложность? — Сортировка пузырьком — это простой алгоритм сортировки, который многократно проходит по массиву и меняет местами соседние элементы, если они стоят в неправильном порядке.
- Как работает сортировка выбором? В чем ее особенности? — Сортировка выбором — это алгоритм, который на каждом шаге выбирает минимальный элемент из неотсортированной части массива и ставит его на правильное место.
- Как устроена сортировка вставками? Когда она эффективна? — Сортировка вставками строит отсортированную часть массива постепенно. Каждый новый элемент берется из неотсортированной части и вставляется на подходящее место среди уже…
- Что такое минимизация булевых функций в булевой алгебре? Объясните на примере — Минимизация булевых функций — это преобразование логического выражения к более простому виду, который вычисляет ту же функцию, но содержит меньше операций, переменных или…
- Что такое неравномерный код? Сформулируйте условие Фано. — Неравномерный код — это код, в котором разные символы могут кодироваться словами разной длины. Например, часто встречающиеся символы можно кодировать короткими кодами, а редкие —…
- Что такое алгоритм? Назовите основные способы описания алгоритмов. — Алгоритм — это точное конечное описание действий, выполнение которых приводит к решению задачи для допустимых входных данных.
- Что такое подпрограммы? В чем их преимущества? — Подпрограмма — это именованный фрагмент программы, который выполняет отдельную задачу и может вызываться из разных мест программы.
- Чем процедуры отличаются от функций в программировании? — Процедуры и функции — это виды подпрограмм. Они позволяют выделять отдельные действия в именованные блоки.
- Как объявляются и используются функции в различных языках программирования? — Функция — это подпрограмма, которая может принимать параметры, выполнять действия и возвращать результат. В разных языках синтаксис отличается, но общая структура похожа.
- Чем отличаются глобальные и локальные параметры в процедурах и функциях? — В программировании чаще говорят о глобальных и локальных переменных, а параметры функции обычно являются локальными именами внутри этой функции.
- Напишите код на любом языке программирования находящий сумму цифр числа. — Задача нахождения суммы цифр числа — классический пример работы с целочисленным делением и остатком от деления.
- Что такое структурированные данные? Какие структуры данных к ним относятся? — Структурированные данные — это данные, организованные по определенным правилам. Такая организация позволяет удобно хранить, искать, изменять и обрабатывать информацию.
- Что представляют собой типизированные файлы? Как они используются? — Типизированный файл — это файл, элементы которого имеют заранее определенный тип и одинаковую структуру. Такой файл можно рассматривать как последовательность записей одного типа.
- Что такое таблицы в программировании? Как они реализуются? — Таблица в программировании — это структура для хранения данных в виде строк и столбцов или в виде пар ключ — значение.