Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Answers_proga_1sem.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
237.57 Кб
Скачать
  1. Определите понятие «модульное программирование».

Модульное программирование - это организация программы как совокупности небольших независимых блоков (модулей), структура и поведение которых подчиняется определенным заранее правилам.

Модулем (в модульном программировании) называется множество взаимосвязанных подпрограмм (процедур) вместе с данными, которые эти подпрограммы обрабатывают.

Модульное программирование предназначено для разработки больших программ.

Разработкой больших программ занимается коллектив программистов. Каждому программисту поручается разработка некоторой самостоятельной части программы. И он в таком случае отвечает за конструирование всех необходимых процедур и данных для этих процедур. Сокрытие данных (запрет доступа к данным из-за пределов модуля) предотвращает их случайное изменение и соответственно нарушение работы программы. Для взаимодействия отдельных частей (модулей) программы коллективу программистов необходимо продумать только интерфейс (взаимодействие) сконструированных модулей в основной программе.

  1. Метаязыки описания языков программирования.

Для строгого и точного описания синтаксиса языка программирования, как правило, используют специальные метаязыки (языки для описания других языков). Наиболее распространенными метаязыками являются металингвистические формулы Бэкуса-Наура (язык БНФ) и синтаксические диаграммы Вирта .

Язык БНФ (называемый также языком нормальных форм) представляет компактную форму в виде некоторых формул, похожих на математические. Для каждого понятия языка существует единственная метаформула (нормальная формула). Она состоит из левой и правой частей. В левой части указывается определяемое понятие, а в правой - задается множество допустимых конструкций языка, которые объединяются в это понятие. В формуле используют специальные метасимволы в виде угловых скобок, в которых заключено определяемое понятие (в левой части формулы) или ранее определенное понятие (в ее правой части), а разделение левой и правой частей указывается метасимволом "::=", смысл которого эквивалентен словам "по определению есть".

Например, метаформулы

<переменная>::=A|B

<выражение>::=<переменная>+<переменная>|<переменная>-<переменная>

Означают, что в том (сугубо модельном) языке, на который эта метаформула распространяется, под термином <переменная> понимается любая из букв А или В, а под термином <выражение> - любая из следующих 10 записей: A; B; A+A; A+B; B+A; B+B; A-A; A-B; B-A; B-B; знак | следует читать "или".

  1. Как сравнить между собой алгоритмы сортировки, поиска?

В сети этого не лежит, так что чуть-чуть отсебятины. Во-первых их можно сравнить по простоте написания, что очень часто является немаловажным фактором.) Во-вторых по скорости работы. Берём два алгоритма и два одинаковых массива и смотрим, за какое время / количество шагов они дадут нам желаемый результат (конечно, очень хотелось бы, чтобы результаты, полученные от этих алгоритмов совпали). Потом делаем массивы, для которых условия поиска / сортировки на этих алгоритмах были бы наихудшими. Снова же замеряем время / число шагов.

Теперь немного отменятины 

В-третьих ещё вроде можно сравнивать по кол-ву требуемой памяти, ведь можно сложность алгоритма поиска / сортировки свести к линейной за счёт больших затрат памяти

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]