Что такое порядковый тип. Порядковый тип. Вещественные типы данных

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

ТЭО – что это такое и чем оно отличается от других похожих документов

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

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

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

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

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

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

  • анализ рынков и тенденций на них;
  • маркетинговые стратегии;
  • описания услуг и товаров;
  • анализ рисков.

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

Правила составления ТЭО

Технико-экономическое обоснование каждого отдельного проекта может отличаться в зависимости от его масштаба, сложности и направленности. Структура ТЭО и содержание его частей определяется разработчиком, который несет ответственность за объективность итоговых результатов.

Обоснование крупномасштабного начинания разбивается на несколько последовательных этапов:

  • Первый – это общее понимание реализуемости проекта. Здесь в общих чертах кратко описывается предлагаемая инициатива, используются известные аналогии и обобщенные оценки. Данная стадия не требует значительных затрат средств и времени. Если на основании полученных данных руководством будет решено, что предложение имеет перспективу, то переходят к следующему этапу.
  • Второй носит название "предварительный выбор", поскольку предлагает ориентировочное обоснование с точностью оценок в рамках +(-) 20%. Стоимость его обычно находится в пределах 1% от общей сметы начинания.
  • Третий носит завершающий характер. Расчет ТЭО (полного) на этой стадии проработан до точности +(-) 10%, и на его основе принимается окончательное решение.

Полное технико-экономическое состоит из таких разделов:

Указанные составляющие ТЭО проекта – образец, применимый к производству продукции на предприятии. Если речь будет идти о строительстве или сфере услуг, то внутреннее наполнение разделов может иметь другой вид.

Разные типы проектов и особенности обоснований для них

В зависимости от целей начинаний, расчеты для них отличаются, иногда довольно значительно. Остановимся на них детальнее:

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

Технико-экономическое обоснование в строительной отрасли

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

Основные решения, отображаемые в технико-экономическом обосновании строительства, это:

  • объемно-планировочные;
  • технологические;
  • природоохранные;
  • конструктивные.

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

Как пример, можно привести приблизительное ТЭО строительства жилого многоэтажного здания. В подобном случае документ будет содержать следующие разделы:

  • Пояснительная записка общего характера о предлагаемом строении. В нее войдут сведения о месте расположения, назначении строения, его площади и этажности, общей сметной стоимости всех помещений, сетей и оборудования, перечень участников проекта. Источник финансирования – средства покупателей жилья и банковский кредит. Указываются сроки начала и завершения строительных работ.
  • Сведения о земельном участке, предназначенном для строительства и данные геологических, гидрологических, метеорологических и геодезических изысканий.
  • Генеральный план застройки, включающий сам дом, придомовую территорию и объекты социальной инфраструктуры (если есть), а также транспортная доступность.
  • Технологические решения, используемые при строительстве, например, материал, из которого планируется возводить здание (бетон, кирпич).
  • Решения архитектурно-строительного характера, учитывающие весь комплекс функциональных, социальных, противопожарных, художественных, санитарно-гигиенических и прочих требований, достаточных для комфортного проживания жильцов.
  • Характеристики инженерных систем, сетей и оборудования. Возьмем такой пример. В доме предполагается установка 9 лифтовых подъемников, модульной котельной, централизованного водоснабжения и водоотведения. Наличие газоснабжения не предусматривается, планируется использовать для бытовых нужд электрическую энергию, поэтому в квартирах устанавливаются электрические плиты.
  • Вопросы управления комплексом строительно-монтажных работ, обеспечения условий труда и безопасности рабочих.
  • Организация процесса строительства (наличие календарного плана с разбивкой по процессам).
  • Мероприятия, направленные на соблюдение норм по охране окружающей природной среды, а также на предупреждение чрезвычайных ситуаций и организацию гражданской обороны.
  • Сметная документация.
  • Экономические и маркетинговые расчеты (план реализации квартир по годам, расчеты по взятому в банке кредиту, оплата услуг подрядчиков и поставщиков).
  • Ожидаемые финансовые результаты. Здесь просчитываются все денежные потоки, структура источников денег, все возможные убытки и прибыли. Рассчитывается уровень окупаемости начинания, NPV, IRR. Все денежные потоки дисконтируются, исходя из длительности реализации проекта.

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

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

ТЭО в строительстве

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

  • технологических;
  • объемно-планировочных;
  • конструктивных;
  • природоохранных;
  • экологической безопасности;
  • санитарно-эпидемиологических;
  • эксплуатационной безопасности;
  • экономической эффективности;
  • социальных последствий.

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

Пример структуры ТЭО строительства жилого здания

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

Схема инвестиционной модели динамики Cash Flow и самоокупаемости

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

  1. Производственная программа инвестиционного объекта.
  2. Инвестиционный план.
  3. Укрупненный план движения денежных средств.
  4. Укрупненный план доходов и расходов.
  5. Свод показателей эффективности проекта.

Примеры обоснований с расчетами

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

Пример преамбулы ТЭО и части Производственной программы

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

Продолжение примера ТЭО строительства производственно-складской базы

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

Пример ТЭО локального проекта в стоматологическом бизнесе

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

Технико-экономическое обоснование (ТЭО)

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

Главной задачей при составлении ТЭО является оценка затрат на инвестиционный проект и его результатов, анализ срока окупаемости проекта.

Составить ТЭО необходимо самому предпринимателю для понимания того, что стоит ли ждать от проекта, а для инвестора ТЭО предпринимателя, запрашивающего инвестиции необходимо, для понимания сроков окупаемости вложенных денег. Разработка ТЭО может может быть поручена как группе специалистов (в сложных проектах), так и может быть составлено и самостоятельно предпринимателем.

Что же является основными отличиями ТЭО от бизнес-плана?

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

Но иногда возникает ситуация и дополнительно в ТЭО приводятся подробные данные об анализе технологий и оборудования и причины их выбора.

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

Методика составления ТЭО .

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

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

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

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

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

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

Пример №1

1. реальное состояние предприятия; 2. анализ рынка и оценка производственных мощностей предприятия; 3. техническая документация; 4. положение дел с трудовыми ресурсами; 5. организационные и накладные расходы предприятия; 6. оценка длительности проекта; 7. анализ финансовой привлекательности и экономической обоснованности проекта.

Пример №2

1. суть предлагаемого проекта, представление основ проекта и принципов его воплощения в жизнь; 2. небольшой обзор рынка, изложение результатов различных исследований с целью изучения спроса на новую услугу или товар; 3. технологические и инженерные аспекты проекта: а) описание процесса производства; б) доказательства необходимости приобретения нового оборудования или модернизации старого; в) сравнение нового продукта с действующими стандартами качества; г) обзор сильных и слабых сторон нового товара или услуги; 4. финансовые и экономические показатели, включающие в себя: а) предполагаемые и необходимые инвестиции в проект; б) предполагаемые внутренние и внешние финансовые источники; в) производственные издержки; 5. оценка эффективности и окупаемости продвигаемого проекта, гарантия возврата внешних заимствований; 6. восприимчивость предлагаемого нового продукта, услуги к существующим на рынках рискам, а также стойкость к возможным рискам в будущем; 7. общая оценка эффективности возможного внешнего заимствования.

Пример № 3

1. краткое изложение всех основных положений технико-экономического обоснования; 2. условия претворения нового проекта в жизнь (кому принадлежит авторство проекта, исходный материал по проекту, какие подготовительные мероприятия и исследования уже проведены и т.п.); 3. анализ предполагаемых рынков сбыта, обзор производственных возможностей предприятия, а также расчет пиковых возможностей предприятия и ряд других факторов; 4.в данном разделе отражается все, что связано с обеспечением производства (необходимые запасы и производственные ресурсы), анализ существующих контрагентов и возможных поставщиков, анализ возможных издержек на различные производственные факторы; 5.раздел посвящен территориальному расположению предприятия и расходам, связанным с этим положением (ориентировочная оценка, где будет находиться предприятие, предварительные расчеты, связанные с оплатой аренды участка под производство или под офисное помещение); 6. конструкторская и проектная документация (оценка необходимых технологий для нового проекта, оценка дополнительных объектов вспомогательного назначения, без которых будет невозможно осуществление производства0; 7. организационные и другие дополнительные расходы, связанные с новым проектом (расчет дополнительных расходов, а также набросок предполагаемой структуры будущего производства); 8. анализ трудовых ресурсов для будущего проекта (оценка человеческих ресурсов, которые понадобятся для запуска нового проекта). Указывается предполагаемое число рабочего и обслуживающего персонала, необходимое количество инженерно-технических работников. Кроме того, указывается, будут ли привлекаться только местные работники, либо иногородние (иностранные) специалисты. В этом же разделе указываются просчитанные затраты на оплату труда, налоги, связанные с заработной платой и ряд других моментов; 9. график хода осуществления представляемого проекта; 10. общая оценка экономической и финансовой состоятельности планируемого проекта. Отметим, что многие из приведенных примеров технико-экономического обоснования, особенно последний пример, напоминает детально составленный бизнес-план. Существует тонкая грань между ТЭО и бизнес-планом, и это приводит к тому, что с большой долей уверенности можно сказать, что если от вас потребуется предоставить технико-экономическое обоснование проекта, можно смело составлять детально проработанный бизнес-план, при этом оставив ненужные споры - теоретикам экономической науки, а лучше перейти к делу.

Методика составления технико-экономического обоснования (ТЭО)

2. Общее описание проекта, вводные данные о проекте. Информация об исследованиях, которые были проведены предварительно, оценка необходимых инвестиций. 3. Описание рынка и производства. Оценка спроса и прогноз будущих продаж, описание мощностей предприятия. 4. Сырье и ресурсы. Расчет необходимых объемов материальных ресурсов, прогноз и описание поставок ресурсов на предприятие, анализ цен на них. 5. Выбор месторасположения предприятия (объектов предприятия). Обоснование выбора места и оценка стоимости аренды помещения или участка. 6. Проектная документация. Описание технологии производства будущих изделий, характеристики необходимого оборудования, дополнительные строения. 7. Организационная структура предприятия. Описание организации предприятия и накладные расходы. 8. Трудовые ресурсы. Оценка потребности в трудовых ресурсах с делением на категории (рабочие, служащие, топ-менеджеры, руководители и т.д). Оценка расходов на заработную плату. 9. Сроки осуществления проекта. План-график проекта, смета расходов, размеры траншей и пр. 10. Экономические расчеты. Оценка инвестиционных издержек, производственные издержки, финансовая оценка проекта.

Отличие ТЭО от Инвестиционного меморандума.

При проведении исследования в области маркетинга, задачей которого являлось выявление предпочтений потребителей на рынке консалтинговых услуг, была выявлена в том числе и потребность в написании инвестиционных меморандумов и бизнес-планов. В ходе проведенного анализа опросов, анкетирования, письменных обращений, можно сделать вывод, что на современном российском рынке бизнес-услуг, сложилась некая неопределенность в вопросах определений и толкований ряда близких понятий, таких как: инвестиционный меморандум, ТЭО и бизнес-план. Приведем объяснение периодичность появления на свет этих экономических документов. До появления инвестиционного меморандума создается технико-экономическое обоснование или ТЭО - это является основой при определении необходимости финансовых вложений. ТЭО это документ, как правило, который создается силами ведущих финансовых менеджеров компаний. Целью технико-экономического обоснования является определение, насколько данное вложение финансов будет перспективным и способно принести финансовую выгоду. Создавая инвестиционный меморандум по сути преследуют то же самое, но инвестиционный меморандум создается для инвесторов. Создав ТЭО, переходят к составлению более тщательного документа, в котором определяется, как вновь создаваемый продукт, либо проект, будет себя вести в условиях, имеющегося рынка. А также, какое воздействие будет оказывать на планируемый проект уже имеющиеся конкурентные факторы на рынке, а также настоящие и будущие риски. Такого рода документ, получил название бизнес-план. В ходе работы с бизнес-планом, как правило, начинается рост издержек коммерческой структуры, связанный с необходимостью работ в области проведения исследований в сфере маркетинга. Такие исследования ставят своей целью определить, насколько предположения, которые изложенные в технико-экономическом обосновании, будут соответствовать данным, которые будут получены в ходе этих исследований. Если эти исследования приводят к тому, что если данные, предположения и предложения технико-экономического обоснования подтверждаются в ходе маркетинговых исследований, то проект вправе претендовать на получение финансирования. Финансовые расчеты позднее ложатся в основу инвестиционного меморандума. Этап рождения нового предприятия чрезвычайно ответственный для финансовых менеджеров. На этом этапе начинается определение и становление политики предприятия, начинает поступать информация, которая дает реальную информацию о возможных сторонах и скоростей развития.

В чем отличие инвестиционного меморандума от ТЭО .

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

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

http://www.ufk-invest.ru/literatura/?text=7&PHPSESSID=

Глава II. Типы данных.

§7. Типы данных. Порядковые типы языка Pascal.

Типы данных.

Во втором параграфе мы немного узнали о типах данных. Это было необходимо, что бы начать программировать. В данном параграфе мы подробно рассмотрим все типы данных существующие в Pascal.

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

Память в компьютере состоит из элементарных ячеек, в которых может содержаться только единичка или нолик. У каждой ячейки существует свой уникальный адрес. Размер памяти в одну ячейку называется битом. Размер памяти в 8 ячеек называется байтом. 1024 байта составляют килобайт. А 1024 килобайта составляют один мегабайт. 1024 мегабайта – один гигабайт, а 1024 гигабайта – один тиробайт.

У вас должен возникнуть уместный вопрос: почему в одном килобайте 1024 байта. Дело в том, что приставка, например, кило в обычной жизни обозначает, что число надо помножить на тысячу. Например, 5 километров – это 5000 метров. А вот при обозначении количества памяти приставка кило обозначает, что число надо помножить на 1024. Такое число возникло не просто случайно, оно равно двум в степени десять . В своё время первые программисты договорились и решили объём памяти в 1024 байта называть одним килобайтом. Соответственно 1 килобайт, помноженный на один килобайт, будет равен одному мегабайту. А один мегабайт, помноженный на один мегабайт, будет равен одному гигабайту. И так далее.

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

Для примера можем посчитать, сколько элементарных ячеек содержится в оперативной памяти в один гигабайт. Один гигабайт – это 1024 мегабайта. Один мегабайт это 1024 килобайта. Соответственно в одном гигабайте содержится 1024 х 1024 = 1048576 килобайт. Ещё раз помножим на 1024 и получим 1073741824 байта. Помножим это число на 8 получим 8589934592 бит. Вот столько элементарных ячеек памяти содержится в оперативной памяти объёмом в один гигабайт.

Двигаемся дальше. Представим себе, что нам необходимо обработать 24 элементарных ячейки памяти, или говоря другими словами 24 бита. Содержание этих ячеек можно представить в виде списка. Например, он может быть таким:

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

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

00000001 00000010 00010100 00001101

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

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

Именно такая договорённость и есть типы данных. Т.е. используя определённый тип мы «договариваемся с компьютером», что определённое количество бит, будут обозначать определённое число или букву, или ещё что-то другое.

О двоичных цифрах сейчас мы говорить не будем, потому что на данном этапе в этом нет необходимости. Главное вы должны усвоить, что если вы хотите использовать, допустим, целое число, то вы должны выбрать тип целых чисел, если какое-либо дробное число, то тип real, если символ, то тип char и так далее.

Теперь перейдём непосредственно к изучению типов данных. В Pascal ряд типов по некоторым признакам можно объединить в группы. Далее приведу схему, на которой наглядно видны все типы и группы.

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

Порядковые типы.

Особенностью порядковых типов является то, что переменная любого порядкового типа имеет конечное число возможных значений и то, что несколько переменных какого-либо порядкового типа можно расположить в порядке убывания или возрастания, т.е. упорядочить (отсюда и название). А так же то, что только переменные порядковых типов могут быть параметром цикла For to do.

Целые типы.

Как уже было сказано, переменная целого типа содержит в себе целое число. Мы изучили уже тип целых чисел Byte. Переменная такого типа может содержать в себе целое число от 0 до 255 включительно. Занимает оно в памяти компьютера 1 байт. Если нам понадобиться отрицательное число или число больше 255, тогда мы можем использовать тип Integer. Переменная такого типа может содержать в себе целые числа от -32768 до +32767 включительно. Однако такая переменная будет занимать в памяти 2 байта.

Название

Перевод

названия на русский

Размер

занимаемой

памяти в байтах

Диапазон

значений

от

до

Byte

Байт

ShortInt

Короткое целое

Word

Слово

65 535

Integer

Целое

32 768

32 767

LongInt

Длинное целое

2 147 483 648

2 147 483 647

Для удобства запоминания в таблице приведён перевод названий типов. В столбце диапазон значений приведённые числа входят в этот диапазон. Например, переменная типа Integer может содержать в себе число 32 767, а вот число 32768 уже не может.

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

Так же стоит отметить, что операции с большими числами могут занимать больше времени, чем с маленькими. Поэтому не следует использовать, например, тип LongInt, если вы заведомо знаете, что переменная не будет принимать значения больше 32 767.

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

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

Вместо операции деления, с целыми числами можно осуществлять следующие две операции:

div – целочисленное деление. (Получаем значение от деления как бы без дробной части);

mod – получение остатка от целочисленного деления.

Все мы умеем делить столбиком. Для понимания этих двух операций можно привести следующий рисунок:

Если использовать запись как в обычной математике, то:

9 div 4 = 2;

i,f: Integer ;

begin

Writeln("Введите два целых числа" );

Read(i,f);

Writeln(i, "/" ,f, "=" ,i div f, " остаток " ,i mod f);

end .

____________________________________________________

Введите два целых числа

13/5=2 остаток 3

Так же есть ещё одна функция для работы с целыми типами – Odd, которая возвращает True, если число нечётное и False, если число чётное. Пример:

var i: integer ;

begin

i:= 10 ;

If odd(i) then writeln("Число " ,i, " - нечётное." )

else writeln("Число " ,i, " - чётное." );

end .

___________________________________________________

Число 10 - чётное.

Стоит отметить следующий нюанс: если переменная целого типа имеет последнее значение диапазона, то при увеличении этой переменной на единицу она примет первое значение диапазона. И наоборот – если первое значение, то при уменьшении на единицу последнее. Например, если переменная А типа Byte имеет значение 255, тогда А+1 будет равно 0. Или если увеличить на два, то А+2=1. Ещё пример: если А=250, то А+20=14. Ещё пример, если А=0, то А-1=255. В таких ситуациях компилятор ошибку не выдаёт. При выполнении программы ошибки тоже не будет. Просто вы получите не правильное значение. Это обстоятельство так же должно быть критерием выбора правильного типа.

Как уже было сказано, в цикле For to do можно использовать переменную любого порядкового типа. Однако есть один нюанс. Если вы укажете после слова to число, выходящее за рамки возможных значений типа переменной, стоящей после слова For, то этот цикло не будет выполнен ни разу вообще. В данной ситуации только будет выполнен оператор присваивания находящийся после слова For, причём никаких сообщений об ошибках вы не получите. Например:

b: byte ;

begin

b:= 2 ;

Writeln(b);

For b:=- 5 to 5 do Writeln(b);

Writeln(b);

end.

______________________________

Обратите внимание, что код цикла выполнен не был, а переменной b было присвоено значение 251. Что произошло? В цикле For to do мы попытались присвоить переменной b значение, выходящее за рамки «рабочего» диапазона типа byte. Что сделал компьютер? Он, как бы, выполнил следующее арифметическое выражение: b=0-5. И произошло то, что было описано в предыдущем абзаце. Т.е. b стало равно 251, как это видно из результата работы программы.

Теперь должно быть понятно, почему код цикла не был выполнен ни разу. Прежде чем выполнять код цикла происходит сравнение значения переменной с тем, что стоит после слова to. В данной ситуации переменная b оказалась больше числа 5.

Вывод целых чисел в виде таблицы.

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

Для решения задачи будем рассуждать следующим образом: мы можем с помощью процедур write и writeln вывести каждое число в отдельности в нужной последовательности. Однако нам необходимо, автоматизировать этот процесс, и что бы код занимал, как можно меньше строчек. Поэтому нам необходимо использовать цикл. В данной ситуации, при работе с целыми числами, наилучшим образом подходит цикл For to do.

Попробуем с помощью этого цикла вывести десять чисел от 1 до 10 в одну строчку:

var i: integer ;

begin

For i:= 1 to 10 do

write(i: 4 );

end .

________________________________________

1 2 3 4 5 6 7 8 9 10

Обратите внимание, что для вывода переменной i на экран задано 4 символа. Это для того, что бы последнее число 100 было отделено от предыдущего 99 одним пробелом.

Мы организовали автоматический вывод 10 чисел в одну строчку. Теперь надо подумать, как вывести все 100 чисел. Для этого нам необходимо после вывода каждых новых десяти чисел переходить на новую строчку. Сделаем это по следующему условию: если число делиться без остатка на 10, то вызываем процедуру Writeln:

var i: integer ;

begin

For i:= 1 to 100 do

Begin

write(i: 4 );

if (i mod 10 ) = 0 then writeln;

end ;

end .

_________________________________________

1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30

31 32 33 34 35 36 37 38 39 40

41 42 43 44 45 46 47 48 49 50

51 52 53 54 55 56 57 58 59 60

61 62 63 64 65 66 67 68 69 70

71 72 73 74 75 76 77 78 79 80

81 82 83 84 85 86 87 88 89 90

91 92 93 94 95 96 97 98 99 100

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

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

Задачи.

1. Пользователь вводит целое число, не используя функцию Odd, определить, является число чётным или нет.

2. Имеем 4 числа. В первой строчке вывести числа, которые делятся на 3 без остатка, во второй – которые делятся на три с остатком. Если чисел, которые делятся без остатка или делятся с остатком, нет, то вывести соответствующее сообщение. В третьей строчке под числом, которое делится с остатком вывести остаток от деления на 3.

3. Составьте свою функцию определения чётное число или нет на основе операции mod, а так же программу, демонстрирующую пример использования этой функции.

4. Вывести на экран только чётные числа от 1 до 100 в виде таблицы. В таблице должно быть 9 столбиков.

Решение.

var i: integer ;

begin

writeln("Введите целое число." );

Read(i);

if (i mod 2 )= 0 then writeln("Число " ,i, " - чётное." )

end .

______________________________________________________

Введите целое число.

Число 57 - нечётное.

var i,k,l,m: integer ;

S1,s2: longint ;

begin

i:= 3 ;k:= 45 ;l:= 21 ;m:= 1 ;

Writeln("Имеем следующие числа: " ,i, " " ,k, " " ,l, " " ,m);

S1:= 0 ;s2:= 0 ;

if (i mod 3 ) = 0 then s1:=s1+ 1 else s2:=s2+ 1 ;

if (k mod 3 ) = 0 then s1:=s1+ 1 else s2:=s2+ 1 ;

if (l mod 3 ) = 0 then s1:=s1+ 1 else s2:=s2+ 1 ;

if (m mod 3 ) = 0 then s1:=s1+ 1 else s2:=s2+ 1 ;

if s1 = 0 then write("Чисел, которые делятся на 3 без остатка нет." )

else write("Делятся на 3 без остатка: " );

if (i mod 3 ) = 0 then write(i, " " );

if (k mod 3 ) = 0 then write(k, " " );

if (l mod 3 ) = 0 then write(l, " " );

if (m mod 3 ) = 0 then write(m, " " );

Writeln;

if s2 = 0 then write("Чисел, которые делятся на 3 с остатком нет." )

else write("Делятся на 3 с остатком: " );

if (i mod 3 ) <> 0 then write(i: 4 );

if (k mod 3 ) <> 0 then write(k: 4 );

if (l mod 3 ) <> 0 then write(l: 4 );

if (m mod 3 ) <> 0 then write(m: 4 );

Writeln;

Write(" остаток: " );

if (i mod 3 ) <> 0 then write((i mod 3 ): 4 );

if (k mod 3 ) <> 0 then write((k mod 3 ): 4 );

if (l mod 3 ) <> 0 then write((l mod 3 ): 4 );

if (m mod 3 ) <> 0 then write((m mod 3 ): 4 );

end .

_________________________________________________________________________

Имеем следующие числа: 3 45 21 1

Делятся на 3 без остатка: 3 45 21

Делятся на 3 с остатком: 1

Остаток: 1

Function chetnost(i: integer ): boolean ;

begin

If (i mod 2 )= 0 then chetnost:= True

else chetnost:= False ;

end ;

Var i: integer ; b: boolean ;

begin

writeln("Введите целое число" );

Read(i);

B:=chetnost(i);

if b then writeln("Число " ,i, " - чётное." )

else writeln("Число " ,i, " - нечётное." );

end .

_____________________________________________

Введите целое число

Число 3 - нечётное.

var i: integer ;

D Pascal существенно расширяет CF Pascal добавлением новых типов данных к символам и файлам. Порядковые типы данных описывают простые, неделимые объекты. Перечислимый тип содержит фиксированный набор именованных объектов. Логический тип имеет только два объекта – TRUE и FALSE. Целый тип реализует положительные и отрицательные целые числа. Наконец, часть типа также в свою очередь может быть типом, типом диапазон. Конечно, типы включают операции, которые определяют, что может быть сделано с объектами. Для логического, целого и т.д. эти операции хорошо понятны интуитивно.

Типы данных описывают множества значений и операции, которые могут быть применены к ним. Типы данных введенные CF Pascal это CHAR и TEXT. Значениями типа CHAR являются множество допустимых символов Паскаль-машины и операциями над этими значениями являются операторы сравнения:

= < > <= >= <>

значениями которых являются соответствующие математические операции, отражающие различное положение символов в алфавитной последовательности. Значения типа данных TEXT – последовательности строк, каждая строка является последовательностью символов. Операции над такими данными:

RESET REWRITE READ WRITE WRITELN OEF EOLN

Типы данных предлагают преимущества абстрагирования , репликации и аутентификации .

Типы данных абстрагируют важные свойства данных. Например, для понимания сравнения

‘A’ < ‘B’

нет необходимости знать, как эти символы представлены в Паскаль-машине. Последовательность сортировки определяет значение этих операций. Пользователю нет необходимости знать количество битов, которыми представлено символьное значение, что происходит с избыточными битами, действительно ли битовое значение для символа B больше чем для A и т.д.

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

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

PROGRAM Typex(INPUT, OUTPUT);

Поскольку операция = определена в CF Pascal только для символьных операндов, появление Ch и F в качестве операндов подразумевает, что оба они типа CHAR. У Ch тип корректен, а F объявлена как TEXT, поэтому будет выявлено несоответствие.


В D Pascal существует две разновидности типов данных: простые типы данных и составные (aggregate) типы данных. Значения простых типов не могут состоять из более мелких частей, с которыми можно работать по отдельности. CHAR – простой тип. Значения сложных типов данных образованы объединением значений простых типов. TEXT – составной тип, потому что строки фалов состоят из символов.

Значения простых типов упорядочены, то есть для каждой пары значений этого типа x, y возможен только один из вариантов: x < y, x = y, x > y. Поэтому эти типы называются порядковыми.

Паскаль содержит три предопределенных порядковых типа, которые задаются идентификаторами CHAR, INTEGER и BOOLEAN. Дополнительно к предопределенным порядковым типам, в Паскале предусмотрено два метода для программиста для определения новых порядковых типов, а именно:

  1. Перечислимые типы, значениями которых являются уникальные идентификаторы.
  2. Типы диапазон, значениями которых являются последовательные значения другого порядкового типа.

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

<обозначение типа> ::= <идентификатор типа> | <новый тип>

<идентификатор типа> ::= <идентификатор>

<новый тип> ::= <перечислимый тип> | <тип диапазон>

Способы описания для <перечислимый тип> и <тип диапазон> будут даны в соответствующих разделах ниже.

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

<блок> ::= <раздел объявлений типов> <раздел объявлений переменных>

<раздел объявлений процедур> <раздел операторов>

<раздел объявлений типов> ::= TYPE <объявления типов> |

Это правило показывает что <раздел объявлений типов> может быть пустым (как это было во всех программах до данного места)

<объявления типов> ::= <объявления типов> <объявление типа> | <объявление типа>

<объявление типа> ::=<идентификатор > = <обозначение типа>

Контекстное правило, которое сопровождает эти синтаксические правила, говорит о том, что только некоторые идентификаторы являются <объявлением типа>:

CR Чтобы быть использованным как <идентификатор типа>, <идентификатор> должен ранее появиться в <объявлениях типов>.

Таким образом для

и T1 и T2 являются идентификаторами типа и могут быть использованы в текущем блоке для объявления переменных и формальных параметров, как ранее использовался CHAR.