Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты по информатике(ответы).docx
Скачиваний:
6
Добавлен:
20.09.2019
Размер:
93.57 Кб
Скачать

Концепция модульного программирования

Концепцию модульного программирования можно сформулировать в виде нескольких понятий и положений:

  • Функциональная декомпозиция задачи - разбиение большой задачи на ряд более мелких, функционально самостоятельных подзадач - модулей. Модули связаны между собой только по входным и выходным данным.

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

  • Реализуемые решения должны быть простыми и ясными. Если назначение модуля непонятно, то это говорит о том, что декомпозиция начальной или промежуточной задачи была проведена недостаточно качественно. В этом случае необходимо еще раз проанализировать задачу и, возможно, провести дополнительное разбиение на подзадачи. При наличии сложных мест в проекте их нужно подробнее документировать с помощью продуманной системы комментариев. Этот процесс нужно продолжать до тех пор, пока действительно не удастся добиться ясного понимания назначения всех модулей задачи и их оптимального сочетания.

  • Назначение всех переменных модуля должно быть описано с помощью комментариев по мере их определения.

Билет №6 Назначение и структура модуля Header.

Заголовочный файл (иногда головной файл, англ. headerfile), или подключаемый файл — в языках программирования файл, механически «вставляемый» компилятором в исходный текст в том месте, где располагается некоторая директива.

В языках программирования Си и C++, с их зачаточной модульностью, заголовочные файлы — основной способ подключить к программе типы данных, структуры, прототипы функций, перечислимые типы, и макросы, используемые вдругом модуле. Имеет по умолчанию расширение .h;. Например, идентификаторы, которые должны быть объявлены более чем в одном файле, удобно описать в заголовочном файле, а затем его подключать по мере надобности. Подобным же образом работает модульность и в большинстве ассемблеров.

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

Заголовочные файлы намного медленнее — чтобы откомпилировать 10 c-файлов, к каждому из которых подключён длинный h-файл, компилятору придётся пройти по заголовку 10 раз. Чтобы справиться с этой проблемой, во многих компиляторах используют предварительно откомпилированные заголовки.

Билет №7 Стандартные модули Unit в Турбо-Паскале.

Модуль - это отдельный файл, в котором находятся константы, типы данных, переменные, процедуры и функции.

BorlandPascal содержит следующие стандартные модули:

Crt, Dos,Graph,Graph3,Overlay,Printer,Strings,System, Turbo3,WinAPI,WinCrt, WinDOS,WinPrn,WinProcs,WinTypes.

Данные стандартные модули обеспечивают поддержку всех ваших программ на BorlandPascal и хранятся в отдельных файлах TPW.TPL (для среды Windows), TPP.TPL (для защищенного режима DOS) или TURBO.TPL (для реального режима DOS).

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

Alloc.h - библиотека функций управления памятью

Complex.h - заголовочный файл стандартной библиотеки языка программирования С, в котором объявляются функции для комплексной арифметики. Эти функции используют встроенный тип complex

Conio.h - заголовочный файл, используемый в старых компиляторах, работающих в операционных системах MS-DOS, для создания текстового интерфейса пользователя. Тем не менее, он не является частью языка программирования Си, стандартной библиотеки языка Си, ISO C или требуемой стандартом POSIX

Float.h - заголовочный файл стандартной библиотеки языка программирования С, который содержит макрос, определяющий различные ограничения и параметры типов с плавающей точкой. Fstream.h -

limits.h - заголовочный файл стандартной библиотеки общего назначения языка программирования Си, который включает определения характеристик общих типов переменных.

math.h - заголовочный файл стандартной библиотеки языка программирования С, разработанный для выполнения простых математических операций

signal.h - заголовочный файл, определенный в стандартной библиотеке языка Си, для указания того, как программа обрабатывает сигналы во время ее выполнения.

stgarg.h - аголовочный файл стандартной библиотеки языка программирования Си, предоставляющий средства для перебора аргументов функции, количество и типы которых заранее не известны.

stdlib.h - заголовочный файл стандартной библиотеки языка Си, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие.

stdio.h - заголовочный файл стандартной библиотеки языка Си, содержащий определения макросов, константы и объявления функций и типов, используемых для различных операций стандартного ввода и вывода

string.h - заголовочный файл стандартной библиотеки языка Си, содержащий функции для работы с нуль-терминированными строками и различными функциями работы с памятью

Билет №8 Организация обмена информацией между подпрограммой и вызывающей программой.

Имеется два способа передачи данных между подпрограммой и той

программой, из которой производится ее вызов – через глобальныепарамет-

ры и через формальные параметры.

Передача данных через глобальные параметры.

Параметры, которые введены и описаны внутри подпрограмм, называ-

ютсялокальными, т.к. они локализированы внутри той подпрограммы, в ко-

торой они описаны, и как бы “невидимы” снаружи (из других подпрограмм).

В то же время, параметры, которые введены и описаны в программе до опи-

сания подпрограммы, называются глобальными по отношению к этой под-

программе, т.к. они “видимы” как внутри неё, так и в программе её вызы-

вающей. Это позволяет использовать глобальные параметры для передачи

данных.

Для примера передачи данных через глобальные параметры рассмотрим

следующую программу - обработчик события нажатия кнопки:

Procedure TForm1.Button1Click(Sender:Tobject);

Varz,a,b:integer;

Procedure Pw;

Var z:integer;

begin

z:=a*b;

writeln(‘zPw=’,z);

end;//конец Pw

begin

z:=1; a:=2; b:=4;

Pw; //вызовпроцедуры

Writeln(‘zb=’,z);

end;

Переменные а и b являются локальными в процедуре TForm1.Button1

Click но они же глобальные по отношению к процедуре Pw, т.к. описаны вы-

ше её описания. Процедура Pw “видит” переменные а и b, поэтому она напе-

чатаетzPw=8.

Переменная z здесь описана как внутри Pw так и снаружи. В этом слу-

чае под переменную z будет отведено две разных ячейки памяти, одна – под

z, которая снаружи Pw, другая – под z внутри Pw. В результате внешняя z как

64

бы становится «невидимой», т.е. внутри Pw она не изменится и второй опера-

тор печати выведет zb=1.