После изучения материалов данной главы студент должен:
знать
уметь
- • составлять сметную документацию;
- • использовать в расчетах перечень исходных документов, необходимых для определения сметной стоимости строительства;
- • формулировать элементы системы ценообразования в строительстве;
- • использовать различные виды договорных цен;
- • обосновывать последовательность приемки готовых строительных объектов или этапов работ;
владеть
- • теоретическими подходами к определению содержания сферы капитального строительства;
- • исходной информационной базой для разработки договорных цен в строительстве;
- • информацией об ответственности подрядной организации по договору строительного подряда;
- • информационной базой об обязанностях стороны, на которой лежит риск случайной гибели объекта строительства, по договору строительного подряда;
- • основными формами «выхода» из неэффективных инвестиционных проектов.
Роль капитального строительства в реализации капитальных вложений
В экономической литературе термину «строительство» соответствуют два различных понятия. Первое обозначает деятельность специалистов – строителей, возводящих здания и сооружения путем выполнения строительно-монтажных работ, т.е. отрасль национального хозяйства. Второе понятие – это вид хозяйственной (предпринимательской) деятельности по реализации капитальных вложений, т.е. сфера, в которой создаются основные средства для всех отраслей национального хозяйства.
Очередь и её реализация с помощью односвязных списков
Необходимость четкой границы между указанными выше понятиями становится особенно актуальной, если учесть, что процесс строительного производства не всегда осуществляется для реализации капитальных вложений. В то же время не все капитальные вложения, выделяемые на расширение строительного производства, приводят к росту основных средств.
Например, строительные и монтажные работы, связанные с текущим ремонтом, пуско-наладочные, буровзрывательные, теплоизоляционные работы, проводимые в строительстве, не приводят к созданию новых или расширению действующих средств труда.
В одних случаях строительную индустрию (совокупность входящих в ее состав подрядных организаций) рассматривают как часть отрасли строительства, а в других – как самостоятельную отрасль национального хозяйства. Отсутствие четкой трактовки данного термина вызвано и тем, что понятие «отрасль» не охватывает всего многообразия экономических отношений, имеющих место в капитальном строительстве.
Капитальное строительство в целом правомерно рассматривать как сферу общественного производства, где сконцентрированы интересы многих участников, в соответствии с размерами и назначением подлежащих изготовлению товаров (производственных зданий или жилых домов).
Из сказанного можно сделать вывод о том, что следует различать три понятия:
- 1) строительство как процесс производства строительномонтажных работ (строительное производство);
- 2) строительство как отрасль национального хозяйства, представленная совокупностью строительных организаций (предприятий) различных форм собственности;
- 3) строительство как деятельность по реализации капитальных вложений, или как сфера капитального строительства.
Данная сфера включает в себя подрядные организации (предприятия), инвесторов-застройщиков, поставщиков оборудования, проектно-изыскательские, научно-исследовательские и буровые организации (предприятия), домашние хозяйства и др.
Очередь как структура данных. Динамические структуры данных #5
Прирост готовой продукции, создаваемой в данной сфере, служит базой для неуклонного расширения национального богатства, которое воплощает в себе накопленные результаты производства.
Конечным результатом деятельности в сфере капитального строительства служит продукция, которая после ввода в действие принимает форму основных средств различных отраслей национального хозяйства и учитывается на счетах бухгалтерского баланса заказчиков (застройщиков). Строительная продукция носит специфический характер. Она неподвижная, неделимая, многогабаритная, индивидуальная, материалоемкая, капиталоемкая, требует длительного срока изготовления, что оказывает существенное влияние на организацию экономических отношений в сфере капитального строительства.
Реализация капитальных вложений в данной сфере хозяйствования предполагает обязательное соблюдение следующих принципов:
- • концентрация усилий;
- • сбалансированность рисков;
- • сотрудничество между партнерами (стратегия коалиции).
Концентрация усилий – наиболее важный принцип стратегического планирования в сфере капитального строительства. На практике реального инвестирования он означает, что портфели инвестиционных проектов создаются заранее, чтобы определить пути вероятного предпринимательского успеха организации (предприятия).
При отборе инвестиционных проектов внимание концентрируют на приоритетных сегментах товарного (строительного) рынка. Успешная инвестиционная стратегия характеризуется четким соответствием целей и средств их достижения. Если цели нереальны, инвестиционные ресурсы могут закончиться раньше, чем эти цели будут достигнуты. Однако если цели малозначимы, ресурсы организации (предприятия) не будут реализованы полностью и в результате попытка достичь конкурентного преимущества на товарном рынке закончится неудачей.
Сбалансированность рисков означает, что нельзя концентрировать все ресурсы на единственной стратегии инвестирования. Разработка технико-экономического обоснования инвестиционного проекта требует уравновешенных проектных рисков, включая и те, что связаны с рынком, снабжением, технологией производства, экологической безопасностью и др.
Развивая сотрудничество с партнерами, каждый участник инвестиционного проекта может извлечь определенные выгоды.
Существуют различные формы сотрудничества: от общих соглашений до партнерства, создания совместных предприятий, холдингов, слияния и поглощения организаций (предприятий). В ТЭО инвестиционного проекта должны быть учтены все возможности и потенциальные преимущества такого сотрудничества в части ускорения и удешевления стоимости строительства предприятия или объекта.
Источник: studme.org
C++. Очередь. Особенности реализации. Способы реализации очереди. Представление очереди как динамического массива
Очередь. Особенности реализации. Способы реализации очереди. Представление очереди в виде динамического массива
- 1. Структура данных «очередь». Особенности реализации очереди
- 2. Виды очередей
- 3. Способы реализации очереди
- 4. Кольцевая очередь
- 5. Очередь с приоритетами. Способы реализации
- 6. Пример реализации очереди в виде динамического массива
Поиск на других ресурсах:
1. Структура данных «очередь». Особенности реализации очереди
Очередь – это динамическая структура данных которая состоит из набора элементов которые размещены последовательно друг за другом. При этом добавление элементов осуществляется с одной стороны, а удаление (вытягивание) – с другой стороны.
Очередь работает по принципу FIFO (First In — First Out), то есть «первым пришел – первым вышел». На рисунке 1 отображен принцип работы очереди.
Рисунок 1. Динамическая структура данных «очередь»
Одной из особенностей очереди есть то, что в очереди часть последовательных элементов может быть занята на данный момент времени (рисунок 2).
Рисунок 2. Очередь, в которой часть элементов занята на данный момент времени
В повседневной жизни использование очереди встречается довольно часто, например:
- очередь в магазине;
- очередь документов на печать на принтере;
- последовательность операторов в алгоритме которые выполняются друг за другом;
- другие случаи.
2. Виды очередей
Различают следующие виды очередей:
- простая очередь;
- кольцевая очередь. В такой очереди элемент, который выходит с начала очереди, будет помещен в ее конец;
- очередь с приоритетами. В такой очереди элементы размещаются по их приоритетам (весовым коэффициентам). Первым из очереди выходит элемент с наивысшим приоритетом.
Любой вид очереди может иметь ограничение по размеру (количество элементов в очереди).
3. Способы реализации очереди
В программе очередь можно реализовывать в виде:
- статического массива с ограничением на размер в очереди;
- динамического массива;
- односвязного списка;
- двусвязного списка.
4. Кольцевая очередь
В кольцевой очереди элемент, который выходит (удаляется) из очереди помещается в ее конец (рисунок 3).
Рисунок 3. Кольцевая очередь
На рисунке 4 изображена работа кольцевой очереди в случае, когда часть элементов занята.
Рисунок 4. Кольцевая очередь. Случай когда часть элементов занята
Примеры кольцевой очереди:
- движение трамваев по круговому маршруту;
- очередь событий для их обработки в Windows.
5. Очередь с приоритетами. Способы реализации
В очереди с приоритетами первым выходит (удаляется) тот элемент, который имеет наивысший приоритет. В очереди с приоритетами каждому элементу ставится в соответствие приоритет (весовой коэффициент).
Очередь с приоритетами может быть реализована одним из двух способов:
- очередь с приоритетным включением. В этом случае элемент, который добавляется в очередь, сразу размещается в ней в соответствии с его приоритетом (рисунок 5). При удалении, этот элемент просто вытягивается с конца очереди;
- очередь с приоритетным исключением. В этом случае новый элемент просто добавляется в конец очереди. А вытягивание элемента из очереди осуществляется по его приоритету, то есть вытягивается элемент с наивысшим приоритетом (рисунок 6).
Рисунок 5. Очередь с приоритетным включением.
Добавление нового элемента в соответствии с его приоритетом
Рисунок 6. Очередь с приоритетным исключением.
Элемент добавляется в конец очереди, вытягивается в соответствии с приоритетом
6. Пример реализации очереди в виде динамического массива
В примере объявляется шаблонный класс Queue , реализующий очередь в виде динамического массива для некоторого обобщенного типа T .
Источник: www.bestprog.net
Очередь (структура данных).
Очередь – структура данных типа «список», позволяющая добавлять элементы лишь в конец списка, и извлекать их из его начала. Она функционирует по принципу FIFO (First In, First Out — «первым пришёл — первым вышел»), для которого характерно, что все элементы a1, a2, …, an-1, an, добавленные раньше элемента an+1, должны быть удалены прежде, чем будет удален элемент an+1. Также очередь может быть определена как частный случай односвязного списка, который обслуживает элементы в порядке их поступления. Как и в «живой» очереди, здесь первым будет обслужен тот, кто пришел первым.
Стандартный набор операций (часто у разных авторов он не идентичен), выполняемых над очередями, совпадает с тем, что используется при обработке стеков:
- добавление элемента;
- удаление элемента;
- чтение первого элемента.
Только, если в отношении стека в момент добавления или удаления элемента допустимо задействование лишь его вершины, то касательно очереди эти две операции должны быть применены так, как это регламентировано в определении этой структуры данных, т. е. добавление – в конец, удаление – из начала. Далее, при реализации интерфейса очереди, список стандартных операций будет расширен.
Выделяют два способа программной реализации очереди. Первый из них основан на базе массива, а второй на базе указателей (связного списка). Первый способ – статический, т. к. очередь представляется в виде простого статического массива, второй – динамический.
Реализация очереди с помощью массива.
Данный способ позволяет организовать и впоследствии обрабатывать очередь, имеющую фиксированный размер. Определим список операций, который будет использоваться как при реализации статической очереди, так и динамической:
- Creation(Q) – создание очереди Q;
- Full(Q) – проверка очереди Q на пустоту;
- Add(Q) – добавление элемента в очередь Q (его значение задается из функции);
- Delete(Q) – удаление элемента из очереди Q;
- Top(Q) – вывод начального элемента очереди Q;
- Size(Q) – размер очереди Q.
В программе каждая из этих операций предстанет в виде отдельной подпрограммы. Помимо того, потребуется описать массив данных data[N], по сути, являющийся хранилищем данных вместимостью N, а также указатель на конец очереди (на ту позицию, в которую будет добавлен очередной элемент) – last. Изначально last равен 0.
В функции main, сразу после запуска программы, создается переменная Q структурного типа Queue, адрес которой будет посылаться в функцию (в зависимости от выбора операции) как фактический параметр. Функция Creation создает очередь, обнуляя указатель на последний элемент. Далее выполняется оператор цикла do..while (цикл с постусловием), выход из которого осуществляется только в том случае, если пользователь ввел 0 в качестве номера команды. В остальных случаях вызывается подпрограмма соответствующая команде, либо выводиться сообщение о том, что команда не определена.
Из всех подпрограмм особого внимания заслуживает функция Delete. Удаление элемента из очереди осуществляется путем сдвига всех элементов в начало, т. е. значения элементов переписываются: в data[0] записывается значение элемента data[1], в data[1] – data[2] и т. д.; указатель конца смещается на позицию назад. Получается, что эта операция требует линейного времени O(n), где n – размер очереди, в то время как остальные операции выполняются за константное время. Данная проблема поддается решению.
Вместо «мигрирующей» очереди, наиболее приемлемо реализовать очередь на базе циклического массива. Здесь напрашивается аналогия с «живой» очередью: если в первом случае покупатели подходили к продавцу, то теперь продавец будет подходить к покупателям (конечно, такая тактика оказалась бы бесполезной, например, в супермаркетах и т. п.). В приведенной реализации очередь считалась заполненной тогда, когда указатель last находился над последней ячейкой, т. е. на расстоянии N элементов от начала.
В циклическом варианте расширяется интерпретация определения позиции last относительно начала очереди. Пусть на начало указывает переменная first. Представим массив в виде круга – замкнутой структуры. После последнего элемента идет первый, и поэтому можно говорить, что очередь заполнила весь массив, тогда когда ячейки с указателями last и first находятся радом, а именно за last следует first. Теперь, удаление элемента из очереди осуществляется простым смещением указателя first на одну позицию вправо (по часовой); чтобы добавить элемент нужно записать его значение в ячейку last массива data и сместить указатель last на одну позицию правее. Чтобы не выйти за границы массива воспользуемся следующей формулой:
(A mod N) + 1
Здесь A – один из указателей, N – размер массива, а mod – операция взятия остатка от деления.
В циклической реализации, как и прежде, очередь не содержит элементов тогда, когда first и last указывают на одну и ту же ячейку. Но в таком случае возникает одно небольшое отличие этой реализации от предшествующей. Рассмотрим случай заполнения очереди, основанной на базе массива, размер которого 5:
Элементы | first | last |
— | 1 | 1 |
1 | 1 | 2 |
1, 2 | 1 | 3 |
1, 2, 3 | 1 | 4 |
1, 2, 3, 4 | 1 | 5 |
В левом столбце записаны произвольные значения элементов, а в двух других значения указателей при соответствующем состоянии очереди. Необходимо заметить, что в массив размером 5 удалось поместить только 4 элемента. Все дело в том, что еще один элемент требует смещения указателя last на позицию 1. Тогда last=first. Но именно эта ситуация является необходимым и достаточным условием отсутствия в очереди элементов. Следовательно, мы не можем хранить в массиве больше N-1 элементов.
В следующей программе реализован интерфейс очереди, основанной на базе циклического массива:
Источник: kvodo.ru