Экзамен Языки программирования ФИИТ июнь 2020 г.

Выкладываю программу курса.

Program2Sem2019-20.pdf (213,9 КБ)

Здесь - пишите вопросы по теме экзамена.

1 лайк

Добрый вечер! У меня вопрос по поводу программы экзамена по Языкам программирования. В пункте 80 указана тема “Совместимость по присваиванию и операции is as для интерфейсов”, но в презентации я ее, к сожалению, не нашёл. Подскажите, пожалуйста, что отвечать по этому пункту программы.

Интерфейс надо рассматривать здесь как базовый класс. Все правила, которые выполняются для базового класса и производного, выполняются и здесь.

На лекции об этом говорилось.

Понимаю, что быстро. Видимо поэтому не отложилось.

2 лайка

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

Отрицательный просмотр вперед (условие с подвыражением всегда стоит после):

string pattern = @"\b(?!un)\w+\b";

Отрицательный просмотр назад (условие с подвыражением всегда стоит перед)::

string pattern = @"(?<!(Saturday|Sunday) )\b\w+ \d{1,2}, \d{4}\b";

Отличие: при отрицательном просмотре вперед мы стоим на начале слова \b и ищем вперёд не “un”, а потом ищем до конца слова. Важно, что конструкция (?!un) стоит после начала распознаваемого паттерна, и мы ищем вперёд.

При отрицательном просмотре назад мы вначале находим паттерн \b\w+ \d{1,2}, \d{4}\b и лишь после этого ищем назад, проверяя, что перед ним не стоит суббота или воскресенье.

1 лайк

вопрос по поводу структур данных. В презентации было сказано, что любые динамические структуры данных хранятся в динамической памяти. Но для статических структур данных аналогичное неверно? Там в пример был приведён массив, который как раз хранится в динамической памяти в C#, если я ничего не путаю

Цитирую сам себя:

Определение. Динамические данные – те данные, память под которые выделяется в процессе работы программы в динамической памяти (в противовес статической, память под которую выделяется при запуске программы). Некоторые динамические данные могут менять свой размер в процессе выполнения программы.

Примеры: динамические массивы, строки, объекты классов.

Данные могут объединяться в структуры. Например, к структурам данных относятся массивы и структуры struct: они состоят из данных. Однако это статические структуры данных – их структура (связи между элементами) не меняется по ходу выполнения программы.

Судя по этим цитатам, динамические данные и динамические структуры данных - это разные вещи.

Динамический массив - это пример динамических данных (хранятся в динамической памяти), но - массив - статическая СТРУКТУРА данных, поскольку связи между элементами после создания статичны.

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

1 лайк

Здравствуйте, вопрос по поводу 43 пункта программы. (сравнение пузырьковой и быстрой сортировок) Имеется в виду сравнение ассимптотической сложности? Если да, то в каком случае проводить сравнение (в лучшем, среднем или плохом случаях)?

В среднем.