WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

им. Р.Е. АЛЕКСЕЕВА

Кафедра «Информационные радиосистемы»

Модульное программирование

Учебно-методическое пособие для выполнения курсовой работы по дисциплинам «Информатика», «Структурное программирование» для студентов специальностей 210302 «Радиотехника», 210201 «Проектирование и технология радиоэлектронных средств»

дневной формы обучения Нижний Новгород 2011 Составители: С.Б. Сидоров, Е.Н. Приблудова УДК 519.6 Модульное программирование: уч.-метод. пособие для выполнения курсовой работы по дисциплинам «Информатика», «Структурное программирование»

для студентов специальностей 210302 «Радиотехника», 210201 «Проектирование и технология радиоэлектронных средств» дневной формы обучения / НГТУ им. Р.Е.Алексеева; сост.: С.Б. Сидоров, Е.Н. Приблудова. Н. Новгород, 2011.– 85 с.

Содержит методические материалы и подбор задач, предназначенных для отработки приёмов разработки программных систем. Рассмотрен пример решения задачи и приведены требования к составлению отчёта. Может быть использовано студентами для самостоятельной работы по дисциплинам «Информатика», «Структурное программирование», а также для выполнения курсовых работ по теме: «Модульное программирование».

Редактор О.В. Пугина Подп. к печ. 01.2011. Формат 60x841/16. Бумага газетная. Печать офсетная.

Печ. л. 5,5. Уч.-изд.л. 5. Тираж экз. Заказ.

Нижегородский государственный технический университет им. Р.Е. Алексеева.

Типография НГТУ. 603950, Н. Новгород, ул. Минина, 24.

© Сидоров С.Б., Приблудова Е.Н.,

СОДЕРЖАНИЕ

1.ОСНОВНЫЕ ПОНЯТИЯ

1.1.Модульное программирование

1.2.Характеристики модулей

1.3.Соглашения по разработке модулей

1.4.Пример: операции над полиномами

1.5.Технология проектирования сверху-вниз

1.5.1.Постановка задачи

1.5.2.Декомпозиция задачи

2.ТЕМЫ КУРСОВЫХ РАБОТ

2.1.Разработка информационно-поисковой системы

2.2.Решение вычислительной задачи

2.3.Разработка проблемно-ориентированной библиотеки

2.4.Разработка прикладной программы

2.5.Компьютерное моделирование

3.ПРИМЕР ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ

3.1.Постановка задачи

3.2.Реализация основной программы

3.3.Реализация исполнителя «Приложение»

3.4.Реализация исполнителя «Интерфейс пользователя»

3.5.Реализация исполнителя «Оболочка»

3.6.Реализация исполнителя «Многоугольник»

3.7.Реализация исполнителя «Геометр»

4.СОСТАВЛЕНИЕ ОТЧЕТА

4.1.Общая структура отчета

4.2.Пример оформления отчёта по курсовой работе

5.КРИТЕРИИ ОЦЕНКИ КАЧЕСТВА ВЫПОЛНЕНИЯ РАБОТЫ

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1. ОСНОВНЫЕ ПОНЯТИЯ 1.1. Модульное программирование Изначальной и, вероятно, все еще самой общей парадигмой программирования является следующая: «Решите, какие процедуры вы желаете; используйте лучшие из алгоритмов, которые можете найти». При этом внимание фокусируется на определении процедуры: выбор алгоритма, необходимого для выполнения желаемых вычислений.

Процедурное программирование использует функции для создания порядка в лабиринте алгоритмов. Когда Вы изучали язык программирования Си, Вы фактически изучали процедурное программирование.

Одной из важнейших составляющих процедурного программирования является модульное программирование. Главную идею модульного программирования можно сформулировать следующим образом.

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

Как правило, модуль представляет собой совокупность функций и данных, используемых для решения задач определенного класса или реализующих набор операций над некоторым понятием. Например, в одном модуле могут быть определены функции, обеспечивающие ввод-вывод. В другом модуле могут содержаться функции, позволяющие выполнять операции над строками.

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

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

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

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

Основным стержнем, на котором держится модульное программирование, является аппарат подпрограмм (функций). Внутри модулей действия реализуются посредством определения соответствующих подпрограмм. В вызывающей программе содержатся фактически только вызовы необходимых подпрограмм. Программные средства поддержки этой технологии наиболее полно впервые были реализованы в языке программирования Фортран и потом в подавляющем большинстве последующих языков.

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

Во-первых, мы должны знать, какие подпрограммы какие действия выполняют. Во-вторых, мы должны знать, какую информацию мы должны передать этим подпрограммам для решения задачи, и каким образом она должна быть передана. Таким образом, важным моментом при использовании модульного программирования является обеспечение взаимодействия между модулями, или как говорят, определение интерфейса. Описание интерфейса, как правило, приводят в специальном заголовочном файле. Передача информации между подпрограммами (функциями) модулей в большинстве случаев осуществляется через список параметров при вызове соответствующей подпрограммы. Иногда допускается использование глобальных переменных, но каждый такой случай должен быть обоснован.

Для рассматриваемой технологии характерна еще одна задача, а именно задача сборки программы из модулей. Существует несколько способов её решения, некоторые из которых рассматриваются далее.

Наиболее распространённым способом сборки программы является сборка на уровне объектных файлов. Суть его состоит в том, что для каждого разработанного модуля, посредством компилятора с языка, отдельно получают объектный файл, а затем, используя компоновщик, объединяют их в единый исполняемый образ программы. Такие известные языки программирования как язык ассемблера, Си, Фортран поддерживают данную технологию. Однако, например, не менее известный язык Паскаль в его классическом варианте такой возможности не предусматривает. На рис.1 приведена иллюстрация рассмотренного метода.

В современных вычислительных системах, поддерживающих многозадачность, широкое распространение получила новая концепция динамической сборки программы. В её основе лежит использование разделяемых библиотек (so) или библиотек динамического связывания (dll). Механизм динамического связывания позволяет программе вызвать функцию, которая не является частью этой программы. Исполнимый код такой функции находится как раз в разделяемой библиотеке, которая компилируется и хранится отдельно от программ, использующих ее.

Различают два способа динамического связывания: связывание времени загрузки (load-time linking) и связывание времени исполнения (run-time linking). Первый случай имеет место, когда в программе производится явное обращение к функции из внешней библиотеки. В этом случае при создании программы используется специальная библиотека импорта (import library). Такая библиотека содержит информацию о функциях самой библиотеки, но не содержит исполнимого кода этих функций. Во время загрузки программы, операционная система использует информацию из библиотеки импорта, чтобы определить расположение исполнимого кода разделяемой библиотеки и загрузить его в память компьютера.

Связывание времени исполнения используется в том случае, когда программе во время своего выполнения может потребоваться получить доступ к библиотекам, неизвестным на этапе разработки программы. При этом сама программа может управлять процессом загрузки и выгрузки таких библиотек, а обращение к их функциям производится неявным способом, используя специальные точки входа. Такой механизм обусловлен тем, что на этапе разработки программы имя вызываемой функции может быть неизвестно, а, следовательно, Вы не можете произвести к ней явное обращение вида myFunction();

а должны использовать конструкцию вида:

void* handle = dlopen("libm.so", RTLD_LAZY);

void (*myFunction)(); //myFunction — указатель на функцию *(void **) (&myFunction) = dlsym(handle, "myFunction");

(*myFunction)();

1.2. Характеристики модулей Важнейшим принципом разработки модуля является принцип информационной закрытости. Этот принцип утверждает, что содержание модулей должно быть скрыто друг от друга. Модуль должен определяться и проектироваться так, чтобы его содержимое (функции и данные) было недоступно тем модулям, которые не нуждаются в такой информации (клиентам). Этот принцип иллюстрируется на рис.2.

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

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

В этом случае модуль играет роль «чёрного ящика». Его содержимое (реализация) недоступно другим модулям, а управление им (интерфейс) простое. Изменение реализации модуля никоим образом не может повлиять на его пользователей.

Для оценки уровня информационной закрытости модуля можно использовать его внутреннюю характеристику - связность. Под связностью модуля понимается мера зависимости его частей. Чем выше связность модуля, тем лучше результат проектирования. Далее приведены различные типы связности в порядке её уменьшения. При этом первые три свидетельствуют о хорошем качестве модуля, а остальные о недостаточно высоком качестве разработки.

Функциональная связность. Части модуля вместе реализуют одну проблемную задачу (операцию). Например: вычисление синуса угла, проверка орфографии, вычисление зарплаты сотрудника, определение места пассажира.

Модуль выполняет только то, для чего он предназначен. Поэтому модуль вычисления синуса не должен печатать его значение.

Информационная связность. Выходные данные одной части используются как входные данные в другой части модуля. Порядок выполнения действий строго определён и подобен конвейеру.

Коммуникативная связность. В этом случае части модуля связаны по данным, то есть они работают с одним и тем же типом структуры данных. При этом порядок выполнения действий безразличен.

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

Временная связность. Различные части модуля не связаны между собой ни по данным, ни по порядку выполнения, но необходимы в один и тот же пе риод работы системы.

Логическая связность. В этом случае части модуля объединены по принципу функционального подобия. Например, модуль включает в себя различные функции обработки ошибок. К серьёзным недостаткам таких модулей относится сложное сопряжение с другими модулями и большая вероятность внесения ошибок при необходимости изменений.

Связность по совпадению. В модуле отсутствуют явно выраженные внутренние связи вообще.

Для оценки меры взаимозависимости модулей по данным применяется другая характеристика – сцепление. Сцепление является внешней характеристикой модуля, которую желательно уменьшать. Выделяют несколько типов сцепления, которые перечислены ниже в порядке его увеличения.

Сцепление по данным. В этом случае функции модуля А вызывают функции модуля B, причём все входные и выходные параметры вызываемого модуля являются простыми элементами данных.

Сцепление по образцу. Здесь в качестве параметров используются структуры данных.

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

Сцепление по внешним ссылкам. В этом случае оба модуля ссылаются на один и тот же глобальный элемент данных.

Сцепление по общей области. Здесь модули разделяют одну и ту же глобальную структуру данных.

Сцепление по содержанию. Один модуль прямо ссылается на содержание другого модуля (в обход интерфейсной части вызываемого модуля).

1.3. Соглашения по разработке модулей За время существования такой дисциплины как программирование, в ней были выработаны определенные правила оформления программных модулей.

Подавляющее большинство разработчиков программного обеспечения стремятся их соблюдать. Следование этим правилам позволит получить хорошо структурированную, легко читаемую программу. Использование одних и тех же правил оформления модулей позволяет легче и быстрее разобраться в них, значительно уменьшает количество «необязательных» ошибок. Те же, кто эти правила совершенно игнорируют, всех этих преимуществ лишены. На этапе обучения следование приведённым далее правилам обязательно. Вместе с тем нельзя рассматривать их как некие догмы. Это всего лишь рекомендации. В процессе трудовой деятельности вы вынуждены будете их несколько адаптировать в соответствии с требованиями трудовой организации, компании.

1. Проектируйте модуль со связностью не ниже коммуникативной. Он не должен быть просто совокупностью никак не связанных между собой функций и данных.

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

3. Добейтесь, чтобы сцепление модуля было по данным или по образцу.

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

4. При разработке модуля с именем Name, как правило, создается два файла: файл-заголовок Name.h и файл-реализация Name.cpp. В файле-заголовке определяется интерфейс к данному модулю. Он включает в себя определение констант, новых типов данных, описаний функций с обязательным указанием их параметров и описаний глобальных переменных, определенных в модуле и доступных для других частей программы. Если модуль «A» обращается к модулю «B», то в модуле «A» должен быть подключен файл-заголовок модуля «B». Поскольку файл-заголовок может подключаться несколько раз, то во избежание дублирования используют конструкцию следующего вида #ifndef name_h #define name_h //...

//описания //...

#endif Файл-реализация Name.cpp содержит определения глобальных и статических переменных модуля, определение новых типов данных, используемых только внутри этого модуля и реализации функций. Очевидно, что в этом модуле должно производиться подключение файла-заголовка.

5. Минимизируйте использование глобальных переменных. Наилучшим решением является отказ от их использования. Поскольку глобальные переменные могут быть сделаны доступными из любого модуля, то чрезвычайно трудно контролировать их использование. Настоятельно рекомендуется передавать в функцию все необходимые ей данные в качестве параметров.

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

7. Каждая строка программы должна содержать не более одного оператора.

Также избегайте объявления нескольких переменных на одной строке.

8. Программный код пишется для чтения не компилятором, а человеком.

Программный код должен сам себя документировать и средства языка C позволяют обеспечить выполнение этого требования. Как минимум, все используемые в программах имена должны быть содержательными. Понять смысл оператора digitCount = digitCount + 2 гораздо проще, чем c = c+2.

9. Хорошая практика программирования состоит в том, чтобы всем явным константам давать символические имена и их использовать в программе.

Указанное правило не относится к константам, которые даже в принципе не могут поменяться. Например, индексация элементов в векторе начинается с 0, поэтому определение для этой константы символического имени бессмысленно и только запутывает программный код.

Используйте отступы для выделения операторов и их блоков внутри условного оператора, оператора цикла и выбора. Следование этой рекомендации позволяет избежать ошибок, связанных, например, с расстановкой скобок { и }. Но еще более важно, что при таком подходе четко прослеживается структура программы.

1.4. Пример: операции над полиномами В качестве примера, иллюстрирующего «хороший стиль» программирования, рассмотрим следующую задачу. Пусть требуется реализовать набор функций для выполнения операций над полиномами переменной степени P n x=a n x na n1 x n1a 1 xa 0. В рамках нашего примера ограничимся операциями ввода полинома со стандартного устройства ввода и вывода на стандартное устройство вывода. Для иллюстрации использования реализованных операций рассмотрим тестовую программу циклического ввода-вывода полинома. Примем, что необходимость повторного ввода полинома определяется по команде пользователя. Если пользователь в ответ на запрос о продолжении работы с программой ввел y, то необходимо продолжить, в противном случае программа завершается.

Из определения понятия «полином» следует, что он обладает следующими характеристиками:

• степень полинома;

• набор коэффициентов полинома.

Для представления понятия полинома определим тип данных Polinom, представляющий собой структуру с указанными выше полями. С целью упрощения примера введем дополнительное ограничение: максимально возможную степень полинома n max.

Конечная программа будет состоять из трех файлов. В файле polinom.h содержится определение структуры описания полинома, в файле polinom.cpp содержатся реализации функций над полиномом, а в файле main.cpp приводится текст основной программы.

//polinom.h //файл содержит определение структуры данных //для описания полинома #ifndef POLINOM_H #define POLINOM_H //максимальная степень полинома const int PolinomMaxDegree = 10;

//структура описания полинома struct Polinom int n; //степень полинома double a[PolinomMaxDegree+1]; //коэффициенты полинома extern int PolinomRead(Polinom *p); ///функция ввода полинома extern void PolinomWrite(Polinom *p); ///функция вывода полинома #endif //polinom.cpp //файл содержит реализации функций над полиномом #include "polinom.h" int ReadPolinom(Polinom *p) printf("Введите степень полинома:");

scanf("%d",&n);

if( nPolinomMaxDegree ) printf("Введите коэффициенты полинома:");

scanf("%lf",&p->a[i]);

//старший коэффициент должен быть != if( p->a[n]==0 ) p->n=n;

return 0;

void WritePolinom(Polinom *p) printf("Коэффициенты полинома: ");

for( int i = p->n; i >= 0; --i) printf("%lg ",p->a[i]);

printf("\n");

//main.cpp - Программа тестирования ввода-вывода полиномов.

//Версия 1. //Разработчик: Иванов И.И.

//Дата разработки: 25 декабря 2000 г.

#include #include "polinom.h" extern int NeedContinue();

int main() char appName[] ="Программа ввода-вывода полиномов. Версия 1.0\n";

Polinom pol; //исходный полином puts(appName); //напечатать назначение программы if( ReadPolinom(&pol) != -1 ) WritePolinom(&pol);

else printf("Некорректно заданы значения параметров\n");

while( NeedContinue() );

return 0;

int NeedContinue() printf("продолжать?(y/n):");

return getchar() == 'y';

1.5. Технология проектирования сверху-вниз 1.5.1.Постановка задачи При создании сложных программных систем важной задачей является правильная организация процесса проектирования системы. Одним из самых распространенных методов решения этой задачи является технология проектирования «сверху вниз». Этот метод напрямую связан с технологией модульного программирования.

Проектирование и реализация программной системы возникают не сами по себе, а как следствие постановки некоторой задачи, которую требуется решить. При этом, формулируя задачу, мы имеем дело с понятиями реального мира, а не с абстрактными числами, строками, функциями и т. д. Например, в задаче рисования мы имеем дело с понятиями «картинка», «инструмент рисования» и т. д.

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

Во многих случаях понятие может быть определено, используя ряд других, более простых понятий. Возвращаясь к нашему примеру, «картинку» можно определить как совокупность различных геометрических фигур, таких как точки, линии, окружности. В этом случае понятие «геометрическая фигура»

выступает как понятие более низкого уровня, и используется для определения «картинки». В свою очередь понятие геометрической фигуры можно также детализировать используя перечисленные выше понятия.

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

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

При проектировании программной системы у разработчика имеется в распоряжении ряд исполнителей, уже реализованных ранее, либо поддерживаемых самой системой программирования. Такие исполнители назовем базовыми исполнителями. Например, базовыми исполнителями можно считать библиотеку файлового ввода-вывода, математическую библиотеку, понятие массива с определенными над ним операциями, либо некоего исполнителя, реализованного Вами ранее. Таким образом, задачу разработки программной системы можно определить как задачу реализации искомого исполнителя A на основе совокупности исполнителей E 1,, E k. Реализацию A на базе указанной совокупности исполнителей будем обозначать как R A, E1,, E k.

1.5.2.Декомпозиция задачи Как мы с Вами установили, исходную задачу удобно решать, разбивая ее на подзадачи с помощью промежуточных исполнителей. Технология программирования «сверху вниз» предлагает такое разбиение вести от исполнителя A (сверху) к базовым исполнителям E 1, E 2,, E k (вниз).

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

Таким образом, модульная структура программы имеет вид графа (в приведенном примере - древовидную структуру). В узлах такого дерева размещаются программные модули, а направленные дуги (стрелки) показывают статическую подчиненность модулей, т. е. каждая дуга показывает, что в тексте модуля, из которого она исходит, есть ссылка на модуль, в который она входит.

Процесс разбиения задачи на ряд подзадач носит название декомпозиции. Конечная программа состоит из нескольких слоев и представляет собой иерархию исполнителей. При этом все или некоторые из них могут быть уже реализованы ранее, а, следовательно, достаточно их подключения к основной программе. Остальные же исполнители необходимо реализовывать, при этом они, в свою очередь, могут быть реализованы с привлечением других исполнителей. Проводя декомпозицию задачи, необходимо руководствоваться скорее тем, что надо сделать, нежели тем, на какой базе. То есть, при использовании технологии проектирования «сверху-вниз», Вы создаете реализацию некоторого исполнителя в удобном, естественном виде, не привязываясь жестко к уже существующим исполнителям.

Технологическая цепочка проектирования «сверху-вниз» приведена на рис.4. Центральным моментом технологии «сверху-вниз» является шаг декомпозиции. Эта операция состоит в том, чтобы по имеющемуся внешнему описанию исполнителя A получить его реализацию на базе придуманного нами исполнителя B и одновременно внешнее описание придуманного исполнителя B.

Рис. 4. Технологическая цепочка процесса декомпозиции Шаг декомпозиции можно провести различными способами. Придумывая нового исполнителя B, следует учитывать несколько требований. С одной стороны, необходимо как можно большую часть работы переложить на нового исполнителя B. Вместе с тем проведенный шаг декомпозиции должен приближать нас к базовым исполнителям E. И, конечно же, придуманный исполнитель должен соответствовать некоему реальному понятию.

Обычно, при проведении декомпозиции, исполнители реализуются на базе нескольких исполнителей, а не одного. В этом случае в результате очередного шага появляются внешние описания этих исполнителей и одна реализация R A, B 1,, B k. Некоторые из этих исполнителей могут быть базовыми, то есть B i {E 1,, E k }, либо получены ранее, на предыдущих шагах. Очевидно, что если все исполнители удовлетворяют этим условиям, то процесс проведения декомпозиции можно считать завершенным.

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

Среди всего прочего проектирование «сверху-вниз» обладает существенным преимуществом. При его использовании удается совместить процесс отладки с процессом разработки. Пусть, например, получена реализация A, а реализации некоторых из промежуточных исполнителей отсутствуют. В этом случае нереализованные части программы заменяются имитаторами (заглушками). Каждый имитатор модуля представляется достаточно простым программным фрагментом, который, в основном, сигнализирует о самом факте обращения к имитируемому модулю, производит необходимую для правильной работы программы обработку значений его входных параметров (иногда с их распечаткой) и выдает, если это необходимо, заранее подготовленный подходящий результат.

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

Кроме того, очень удобно реализацию каждого исполнителя производить в своем модуле, а его внешнее описание в соответствующем этому модулю заголовочном файле. Если исполнители A и B используют исполнителя C в качестве промежуточного, то доступ A и B к внешнему описанию C можно обеспечить простым подключением файла-заголовка.

Хранение внешних описаний всех исполнителей в одном файлезаголовке может показаться рациональным. Однако такой подход неприемлем хотя бы в силу того, что исполнители уже фактически не отделены друг от друга. При разработке другой программной системы мы можем пожелать воспользоваться некоторыми из реализованных ранее исполнителей. Однако поскольку их внешние описания объединены, то мы вынуждены будем использовать все, а не только нужные нам. Кроме того, при изменении внешнего описания какого-либо исполнителя, повторную компиляцию придется провести для всех исполнителей. В случае же отдельных файлов-заголовков компиляция потребуется только для тех реализаций, которые имеют дело с изменившимся исполнителем. Этот фактор особенно важен при разработке больших программных систем.

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

2. ТЕМЫ КУРСОВЫХ РАБОТ

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

поиск элементов по значению некоторых атрибутов;

отбор элементов по значениям некоторых атрибутов.

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

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

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

1. Разработать программную информационную систему «Железная дорога». Система должна обеспечивать доступ к информации о расписании движения пригородных электропоездов и поездов дальнего следования.

Оператор должен иметь возможность выполнять следующие действия:

– получение расписания движения поездов в заданном направлении;

– поиск поезда, наиболее подходящего по заданному времени.

Каждая запись в расписании должна содержать следующую информацию:

– режим отправления (ежедневно, по четным/нечетным дням, кроме праздничных дней, конкретный день недели);

2. «Таблица чемпионата». Система должна поддерживать информацию о сыгранных матчах в чемпионате по футболу. Принять, что за победу начисляется 3 очка, за ничью - 1, за поражение - 0. В случае равенства очков преимущество получает команда, имеющая лучшую разность между забитыми и пропущенными мячами. Пользователю предоставляется возможность выполнять следующие действия:

– узнать результат матча между заданными командами;

– получение статистики по заданной команде (количество набранных очков, забитых и пропущенных мячей);

– выдача турнирного положения команд.

3. Информационно-поисковая система «Студенты». Система обеспечивает доступ к информации о студентах факультета. Пользователь должен иметь возможность выполнять следующие действия:

– выдать информацию о студенте по фамилии;

– выбрать студентов, имеющих задолженность хотя бы по одной дисциплине с указанием его фамилии и группы;

– получить список студентов указанной группы.

Информация о студенте должна включать в себя:

– фамилия, имя, отчество;

– номер зачетной книжки;

– текущая успеваемость по дисциплинам (рассмотреть фиксированное число дисциплин, например 5). Успеваемость оценивается по 5-бальной 4. «Страны мира». Система должна поддерживать справочную информацию о странах. Каждая страна описывается следующими атрибутами:

– название страны;

– название столицы;

– название части света;

– численность населения ( в тыс. человек);

– площадь ( в тыс. кв. км).

Должны быть реализованы следующие операции:

– выдать информацию об указанной стране;

– выдать список названий стран, численность которых превышает заданное значение;

– получить список названий стран из заданной части света, площадь которых меньше заданного значения.

5. «Видеотека». Система должна поддерживать справочную информацию о видеокассетах пользователя. Каждая видеокассета имеет следующие характеристики:

– номер видеокассеты;

– название фильма;

– страна, где был снят фильм;

– продолжительность фильма;

– жанр фильма;

– дата приобретения видеокассеты.

Должны быть реализованы следующие операции:

– проверить наличие фильма по его названию;

– получить список фильмов с указанным жанром и заданной страной;

– найти все кассеты, приобретенные до указанной даты.

6. Разработать информационную систему «Подписка». Система должна обеспечивать поддержку обработки информации о подписке жителей на газеты и журналы. Каждая запись содержит следующие атрибуты:

– фамилия подписчика;

– адрес подписчика;

– индекс издания;

– название издания;

– тип издания (газета, журнал);

– начальный и конечный месяцы, на которые сделана подписка.

Должны быть реализованы следующие операции:

– по заданному адресу определить список печатных изданий, на которые сделана подписка;

– получить список фамилий подписчиков заданного издания;

– подсчитать требуемое количество экземпляров заданного издания в каждый из месяцев в году.

7. Разработать информационно-поисковую систему «Коллекция». Система должна обеспечивать хранение и обработку информации о какой-либо коллекции (марок, монет, и т. д.). Сведения об отдельном предмете коллекции могут включать в себя:

– название предмета;

– краткое описание (историческая справка);

– количество экземпляров;

– стоимость;

– время создания;

– дата приобретения.

Должны быть реализованы следующие операции:

– выдать список названий предметов, количество экземпляров которых не превышает указанной величины (редкие предметы);

– выдать список названий предметов стоимость которых не меньше чем указанное значение (самые дорогие);

– найти предметы, время создания которых не превосходит заданное значение (самые древние).

8. Разработать информационно-поисковую систему «Программа передач».

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

– день недели;

– название телеканала;

– время передачи;

– жанр передачи (фильм, новости и т.д.);

– название передачи.

Должны быть реализованы следующие операции:

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

– получить список спортивных передач по телеканалам в течение всей недели;

– сформировать список передач определенного жанра, которые будут показаны в заданный день на выбранном телеканале.

9. Информационно-поисковая система «Абитуриент». Система обеспечивает доступ к сведениям о поступающих в высшее учебное заведение. Информация об абитуриенте должна включать в себя:

– фамилия, имя, отчество;

– дата рождения;

– название факультета;

– номер оконченной школы;

– посещение подготовительных курсов;

– оценки на вступительных экзаменах (рассмотреть 3 вступительных экзамена). Успеваемость оценивается по 5-бальной системе;

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

– выдать информацию о количестве поступающих на указанный факультет;

– выбрать абитуриентов, сумма баллов которых превышает указанное значение;

– сформировать список фамилий абитуриентов, посещавших подготовительные курсы и получивших «неуд» на каком-либо экзамене при поступлении на заданный факультет.

10. «Библиотека». Разработать информационно-поисковую систему доступа к ресурсам библиотеки. Сведения о печатном издании включают в себя:

– ФИО автора;

– название;

– издательство;

– год выпуска;

– количество страниц;

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

– выдать список книг указанного автора;

– сформировать список книг указанного жанра;

– найти все книги указанного жанра, изданные в указанный период времени.

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

– фамилия, имя, отчество;

– телефон;

– адрес (город, улица, дом, квартира);

– дата рождения;

– комментарий (заносится дополнительная информация об абоненте).

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

– вывод информации по фамилии;

– составить список тех, у кого в указанные сроки будет день рождения;

– сформировать список проживающих в указанном городе. Выдавать ФИО человека и его телефон.

12. Разработать справочную систему «Товары», содержащую сведения об имеющихся в наличии товарах в магазине. Каждый вид товара описывается следующим образом:

– название;

– количество (в единицах – кг, штук и т.д.);

– цена за единицу;

– срок реализации;

– поставщик.

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

– вывод информации по заданному названию товара;

– выдать список товаров, у которых срок реализации истекает ранее указанной даты;

– сформировать список поставщиков указанной продукции;

– принять и выполнить заказ на приобретение указанного товара с заданным количеством единиц. Исполнение заказа означает внесение изменений в базу данных о товаре.

13. Разработать информационно-справочную систему «Экспорт», содержащую сведения об экспортируемых товарах. Каждый вид товара описывается следующим образом:

– наименование товара;

– страна, импортирующая товар;

– объем поставляемого товара (в единицах);

– срок поставки товара.

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

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

– найти страну, которая импортирует наибольшее количество видов товара (с самым большим ассортиментом);

– найти в базе данных экспортные операции, срок поставки которых ранее указанной даты. При этом выдавать названия товара и страны импортера.

14. Разработать справочную систему «Ассортимент», содержащую сведения об игрушках. Каждый вид игрушки описывается следующим образом:

– название игрушки (кукла, конструктор, кубики и т.д.);

– ее цена;

– возрастные границы (например, игрушка может предназначаться для детей в возрасте от двух до четырех лет);

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

– получить названия игрушек, цена которых не превышает заданную сумму и подходящие детям до указанного возраста;

– получить названия игрушек, которые подходят детям двух заданных значений возраста (например, 4 и 10 лет);

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

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

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

y i = f x i, i=0,, n1. С помощью линейной интерполяции вычислить значения функции в заданных точках t 0,,t m1, то есть найти f t 0,, f t m1.

Предполагается, что таблица значений функции хранится в текстовом файле в виде последовательности пар y i, x i. Точки интерполяции t i задаются пользователем в процессе работы с программой.

2. Найти приближенное значение корня уравнения f x=0 методом деления отрезка пополам. Абсолютная погрешность найденного значения не должна превосходить. В качестве f x рассмотреть функцию Отрезок, на котором производится поиск корня и параметры функции запрашиваются у пользователя. Процесс поиска корня должен отображаться на экране монитора.

3. С заданной точностью найти приближенное значение корня уравнения f ( x)=0 методом хорд. Считать, что требуемая точность достигнута, как

Похожие работы:

«Государственное образовательное учреждение высшего профессионального образования Липецкий государственный технический университет УТВЕРЖДАЮ Декан ЭФ _ В.В. Московцев _2011 г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ (МОДУЛЯ) Коммуникативные компетенции делового человека Направление подготовки _080100 Экономика Профиль подготовки Экономика предприятий и организаций _ Квалификация (степень) выпускника бакалавр_ Нормативный срок обучения _ 4 года г. Липецк – 2011 г. Содержание 1. Цели освоения дисциплины 2....»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ ИМЕНИ В. Н. КАРАЗИНА КОМИССИЯ ПО ЭКОЛОГИИ НАУЧНО-МЕТОДИЧЕСКОГО СОВЕТА МОН УКРАИНЫ А. Н. Некос В. М. Дудурич ЭКОЛОГИЯ И ПРОБЛЕМЫ БЕЗОПАСНОСТИ ТОВАРОВ НАРОДНОГО ПОТРЕБЛЕНИЯ Под общей редакцией проф. В. Е. Некоса Харьков 2007 1 УДК 504+613.2 ББК 51.23 Н 47 Рекомендовано Министерством образования и науки Украины как учебное пособие для студентов экологических специальностей высших учебных заведений (письмо № 1.4/18-Г-198...»

«В. Г. Апальков А Н Г Л И Й С К И Й ЯЗЫК Рабочие п р о г р а м м ы Предметная линия учебников И. Н. ВЕРЕЩАГИНОЙ, О. В. АФАНАСЬЕВОЙ, И. В. МИХЕЕВОЙ V - IX классы Пособие для учителей общеобразовательных учреждений и школ с углублённым изучением английского языка Москва Просвещение 2012 СОДЕРЖАНИЕ Пояснительная записка 4 Цели курса 5 Общая характеристика курса 7 Описание места курса в учебном плане 8 Личностные, метапредметные и предметные результаты Содержание курса Предметное содержание речи —...»

«MI,IHI4CTEPCTBOCIOPTA POCCTTfrCKOIZ @EAEP/J]0/1?I.DEAEPANbHOEOCYAAPCTBEHHOE f ETOA}KETHOE OFPA3OBATEJ'IbHOE YIIPEXAEHI4E BbICruEf O IIPO@ECCUOHAJILHOIO OBPA3OB AIJIIfl (P OCCrIR CI{4IZ f OCyAAp CTBEHHbII;I yHr4BEpCr{TET @I43trIqECKOTIKYIbTYPbI, CIIOPTA,MONONE }KII{TI TYPII3MA (IIIonI4@K)) ( Anu. OTTIET o cAMooECnEAOBAHr4rr @EAEpAnbHOrO TOCyAAPCTBEHHOTOETOAXETHOI O OFPA3OBATEJIbHOI O YI{PEXAEHII.g BbICTUE| O IIPO@ECCI4OHAJIbHO| O OEPA3OBAHIlIfl (P OCCI4IZC KI4I;I f OCYAAPCTB EH HbIIZ...»

«Министерство образования Республики Беларусь Учреждение образования БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра экономической теории и маркетинга ОСНОВЫ МАРКЕТИНГА Учебно-методическое пособие по выполнению контрольных работ и проведению практических занятий для студентов специальностей 1-25 01 07, 1-25 01 08, 1-26 02 02, 1-26 02 03 заочной формы обучения Минск 2004 УДК 338.242 Рассмотрено и рекомендовано к изданию редакционноиздательским советом университета Составители:...»

«Министерство образования и науки Украины Севастопольский национальный технический университет ПРОГРАММА КАНДИДАТСКОГО МИНИМУМА ПО ФИЛОСОФИИ Методические указания для подготовки к экзамену кандидатского минимума по дисциплине Философия для аспирантов и соискателей Севастополь 2006 Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 2 УДК 1 (09) Методические указания для подготовки к экзамену кандидатского минимума по дисциплине Философия для аспирантов и...»

«СИБИРСКИЙ УНИВЕРСИТЕТ ПОТРЕБИТЕЛЬСКОЙ КООПЕРАЦИИ ТОВАРОВЕДЕНИЕ И ЭКСПЕРТИЗА ТОВАРОВ Программа, методические указания и задания контрольной и самостоятельной работы для студентов заочной формы обучения специальности 0803201.65 Коммерция (торговое дело) Новосибирск 2008 Кафедра товароведения и технологии сельскохозяйственной продукции Товароведение и экспертиза товаров: программа, методические указания и задания контрольной и самостоятельной работ / [сост. ст. преподаватель, к.техн.н....»

«Министерство образования и науки Российской Федерации Федеральное агентство по образованию Южно-Уральский государственный университет Кафедра Экономика и управление на транспорте 656.13 (07) Л251 О.Н. Ларин ОРГАНИЗАЦИЯ ПАССАЖИРСКИХ ПЕРЕВОЗОК Учебное пособие Челябинск Издательство ЮУрГУ 2005 1 УДК 656.13.072 (075.8) Ларин О.Н. Организация пассажирских перевозок: Учебное пособие. – Челябинск: Изд-во ЮУрГУ, 2005. – 104 с. В учебном пособии рассматриваются основы организации пассажирских перевозок...»

«ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Рабочая программа учебного курса Математика для 2 класса составлена на основе Примерной программы начального общего образования по математике образовательной области Математика и информатика (Стандарты второго поколения. – М.: Просвещение, 2011) и авторской программы курса Математикадля учащихся 1-4 классов общеобразовательных учреждений Истоминой Н.Б. (Истомина Н.Б. – Смоленск: Ассоциация 21 век, 2011 г.). Программа соответствует учебникам, рекомендованным Министерством...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СИБИРСКАЯ ГОСУДАРСТВЕННАЯ ГЕОДЕЗИЧЕСКАЯ АКАДЕМИЯ (ФГБОУ ВПО СГГА) В.С. Айрапетян, О.К. Ушаков ФИЗИКА ЛАЗЕРОВ Рекомендовано Сибирским региональным учебно-методическим центром для межвузовского использования в качестве учебного пособия для студентов, обучающихся по направлениям подготовки бакалавров 200200.62 и магистров 200200.68 Оптотехника...»

«Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Московский инженернофизический институт (государственный университет) МЕТОДИЧЕСКИE РЕКОМЕНДАЦИИ ПО ОРГАНИЗАЦИИ УЧЕБНОГО ПРОЦЕССА МАГИСТРОВ ПО ОЧНО-ЗАОЧНОЙ (ВЕЧЕРНЕЙ) И ЗАОЧНОЙ ФОРМАМ ОБУЧЕНИЯ ПО СПЕЦИАЛЬНОСТИ НАНОТЕХНОЛОГИЯ С ПРОФИЛЕМ ФУНКЦИОНАЛЬНЫЕ НАНОМАТЕРИАЛЫ ДЛЯ ЭНЕРГЕТИКИ 2.4. МЕТОДИЧЕСКИE РЕКОМЕНДАЦИИ ПО ОРГАНИЗАЦИИ УЧЕБНОГО ПРОЦЕССА МАГИСТРОВ ПО ОЧНО-ЗАОЧНОЙ (ВЕЧЕРНЕЙ) И...»

«Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Ульяновский государственный технический университет А. М. Крицштейн ЭЛЕКТРИЧЕСКИЕ МАШИНЫ Учебное пособие для студентов, обучающихся по специальностям 120400, 120100 (дисципл ина Электротехника и электроника) Ульяновск 2005 УДК 621.3 (075) ББК 31.21я7 К 82 Рецензенты: кафедра аэронавигации А и РЭО Ульяновского высшего авиационного училища; профессор Ульянов ского госу дар ств...»

«СРЕДНЕЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАНИЕ М. А. ЕРЕМУШКИН ОСНОВЫ РЕАБИЛИТАЦИИ Рекомендовано ГОУ ВПО Московская медицинская академия имени И. М. Сеченова в качестве учебного пособия для студентов учреждений среднего профессионального образования, обучающихся по специальностям Лечебное дело, Сестринское дело по дисциплине Основы реабилитации Регистрационный номер рецензии 644 от 25 декабря 2009 г. ФГУ ФИРО 3-е издание, стереотипное УДК 615.8(075.32) ББК 51.1(2)2я723 Е69 Р е ц е н з е н т ы: главный...»

«Государственное бюджетное образовательное учреждение высшего профессионального образования Иркутский государственный медицинский университет Министерства здравоохранения России Кафедра общественного здоровья и здравоохранения Г.М. Гайдаров, Н.С. Хантаева, Е.В. Бардымова ЭКСПЕРТИЗА ВРЕМЕННОЙ НЕТРУДОСПОСОБНОСТИ В ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКИХ УЧРЕЖДЕНИЯХ. МЕДИКО-СОЦИАЛЬНАЯ ЭКСПЕРТИЗА. Учебное пособие Иркутск, 2013 УДК 614.2:616 – 036.865 (075.8) ББК 51.1 (2 Рос), 3я 73 Г 14 Рекомендовано Центральным...»

«МИНИСТЕРСТВО ПУТЕЙ СООБЩЕНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Департамент кадров и учебных заведений САМАРСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ПУТЕЙ СООБЩЕНИЯ Кафедра Вагоны МЕТОДИЧЕСКИЕ УКАЗАНИЯ к выполнению лабораторных работ по дисциплине Энергохолодильные системы вагонов и их ремонт для студентов специальности 150800 – Вагоны Составители: Б.Д. Фишбейн Т.В. Лисевич Е.Н. Титова Р.И. Котельников Самара 2004 УДК 629.4.048+629.463.125 Методические указания к выполнению лабораторных работ по дисциплине...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Технологический институт Федерального государственного образовательного учреждения высшего профессионального образования Южный федеральный университет СОГЛАСОВАНО УТВЕРЖДАЮ Зав. кафедорой РТС Декан радиотехнического факультета _ В. Т. Лобач _ С. Г. Грищенко 200/ учеб.год _200/_ учеб.год УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС (УМК) учебной дисциплины ПРОЕКТИРОВАНИЕ УСТРОЙСТВ ОБРАБОТКИ СИГНАЛОВ Таганрог 2008 г. 1....»

«И збирательная комиссия Республики Коми П равовой статус участников избирательного процесса Сборник методических материалов по вопросам избирательного права и избирательного процесса Сы кты вкар, 2012 Избирательная комиссия Республики Коми Правовой статус участников избирательного процесса Сборник методических материалов по вопросам избирательного права и избирательного процесса Сыктывкар, 2012 Правовой статус участников избирательного процесса Сборник методических материалов по вопросам...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное учреждение высшего профессионального образования Московский государственный агроинженерный университет имени В.П. Горячкина ВВЕДЕНИЕ В СПЕЦИАЛЬНОСТЬ АВТОМОБИЛИ И АВТОМОБИЛЬНОЕ ХОЗЯЙСТВО Учебное пособие МОСКВА 2009 Введение За последнее двадцатилетие с момента начала построения в нашей стране рыночной экономики изменились как сами предприятия, так и их требования к специалистам, и, конечно же, условия работы. Если...»

«БИБЛИОГРАФИЧЕСКИЙ УКАЗАТЕЛЬ КНИГ, ПОСТУПИВШИХ В БИБЛИОТЕКУ в 2013г. Акушерство 1. 618Г А 44 Акушерство: Национальное руководство / ред. Э. К. Айламазян [и др.]. - Москва : ГЭОТАР-Медиа, 2013. - 1200 с.o=эл. опт. диск (CD-ROM). - (Национальные руководства) Экземпляры: всего:1 - оф(1) Аннотация: Национальное руководство Акушерство создано ведущими российскими специалистами акушерами-гинекологами на основании современных научных знаний и рекомендаций Российского общества акушеров-гинекологов. При...»

«И.А. АНКУДИМОВА ХИМИЯ ИЗДАТЕЛЬСТВО ТГТУ Министерство образования и науки Российской Федерации ГОУ ВПО Тамбовский государственный технический университет И.А. АНКУДИМОВА ХИМИЯ Учебное пособие Тамбов Издательство ТГТУ 2006 УДК 54(075) ББК Г 1я73-1 А679 Р е це н зе н т Кандидат химических наук, доцент, преподаватель высшей категории Тамбовского областного государственного образовательного учреждения – образовательной школы-интерната Политехнический лицей-интернат ТГТУ Б.И. Исаева А679 Анкудимова,...»




























 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.