Алгоритмы и структуры данных

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

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

•1. Структуры данных.

•2.  Алгоритмы поиска.

•3.  Алгоритмы сортировки. 

 

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

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

В третьем разделе рассматриваются понятие и алгоритмы сортировки. Изучаются методы и алгоритмы сортировки массивов. Конкретно —   сортировка с помощью прямого выбора, прямой вставки, прямого обмена как прямые методы, а  сортировка Шелла (включений с уменьшающимися расстояниями) и  быстрая сортировка — как улучшенные.

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

Для всех изучаемых структур данных, методов поиска, оптимизации поиска, сортировок  алгоритмы реализации в теоретичексой (лекционной) части курса представлены в псевдокоде, в практической части курса — на языке программирования С++.

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

 

Программа курса «Практикум на ЭВМ» (алгоритмы и структуры данных)

В. В. Борисенко

2011-12 учебный год

  1. Основные понятия объектно-ориентированного программирования: класс, описание класса и объекты. Члены и методы класса. Примеры объектно-ориентированных языков. Язык С++ как промежуточный между традиционными и объектно-ориентированными языками. Основные различия между традиционными и объектно-ориентированными языками на примере различий между C++ и C# или Java (наличие контролируемой динамической память и процесса сборки мусора, различия при размещении объектов в памяти, в создании и удалении объектов). Достоинства и недостатки объектно-ориентированных языков.
  2. Язык C++. Типы, операции. Классы, члены классов, методы. Конструктор по умолчанию и copy-конструктор. Переопределение операторов для классов на примере классов «вектор на плоскости», «точка», «прямоугольник». Правильное использование модификатора const и задание типов возвращаемых значений для разных типов операторов и методов.
  3. Обработка исключений в языке C++. Стек, реализация стека на базе массива. Обратная польская запись формул. Проект «Стековый калькулятор». Другие примеры использования обратной польской записи: язык PostScript, промежуточный код в языках Java и C#.
  4. Статические члены и методы классов. Наследование классов, виртуальные методы. Программирование в оконных средах: общие принципы. Преимущества объектно ориентированного в случае программирования в оконной среде. Проект «График функции».

    Что такое классические алгоритмы и структуры данных в вакансиях?

  5. Абстрактные типы данных и контейнеры как обобщение структур данных. Описание абстрактного типа данных и его реализация. Основные виды контейнеров, используемые в программировании: последовательного доступа — стек, очередь, дек, двусвязный и односвязный списки; прямого доступа — массив, динамический массив (вектор), матрица, множество, нагруженное множество (отображение, словарь), дерево, граф. Реализация стека и дека (очереди) на базе массива. Способы реализация циклов «для каждого элемента», итераторы.
  6. Схема построения цикла с помощью инварианта. Применения этой схемы: алгоритм Евклида, алгоритм быстрого возведения в степень, расширенный алгоритм Евклида, вычисление логарифма без разложения в ряд, бинарные алгоритмы умножения и деления чисел.
  7. Непрерывные реализации множества и нагруженного множества (отображения, ассоциативного массива): наивная реализация, реализация с помощью бинарного поиска. Применение сxемы построения цикла с помощью инварианта в алгоритме бинарного поиска.
  8. Бинарная куча и ее реализация.
  9. Задача сортировки массива. Оценка минимального числа сравнений в произвольном алгоритме сортировки. Три алгоритма сортировки.
    • Сортировка кучей (Heap Sort): идея, применение схемы построения цикла с помощью инварианта для написания программы и доказательства ее правильности.
    • Сортировка слиянием, идея.
    • Алгоритм быстрой сортировки (Quick Sort). Применение схемы построения цикла с помощью инварианта для написания подпрограммы, разделяющей массив на три отрезка: элементы меньше медианы, медиана, элементы больше медианы.
  10. Непрерывные и ссылочные реализации контейнеров. Идея ссылочной реализации, достоинства и недостатки непрерывных и ссылочных реализаций. Реализация Л2-списка на С++: классы L2ListHeader и L2List. Особенность реализации с использованием динамической памяти: наследование и виртуальные деструкторы.
  11. Бинарные деревья и деревья поиска. Идея реализации множества и нагруженного множества (отображения) с помощью бинарного дерева поиска. Алгоритмы поиска и добавления элемента для деревьев поиска. Алгоритм нахождение следующей вершины дерева и обхода вершин дерева в порядке их возрастания. Сбалансированные и почти сбалансированные деревья, AVL-деревья.
  12. Красно-черные деревья: определение и свойства. Восстановление структуры красно-черного дерева при добавлении элемента: операции вращения вершины вправо и влево, рассмотрение различных случаев при добавлении элемента с нарушением свойств красно-черного дерева. Реализация нагруженного множества на основе красно-черного дерева: проект «TreeSet».

Рекомендуемая литература

  1. Б. Страуструп. Язык программирования C++ (третье издание). — Пер. с англ. — СПб., М.: «Невский диалект». Издательство «Бином», 1999.
  2. Д. Кнут. Искусство программирования для ЭВМ. Т. 1–3. — Пер. с англ. — М.: Мир, 1976–1978.
  3. Н. Вирт.
    Алгоритмы + структуры данных = программы. — Пер. с англ. — М.: Мир, 1985.
  4. А. Г. Кушниренко, Г. В. Лебедев. Программирование для математиков: Учебное пособие для вузов. — М., Наука, 1988.
  5. А. Г. Кушниренко, Г. В. Лебедев, Р. А. Сворень. Основы информатики и вычислительной техники. — М.: Просвещение, 1996.
  6. В. В. Борисенко. Основы программирования. — М., Интернет-университет информационных технологий–ИНТУИТ.ру, 2005.
  7. У. Робинсон. C# без лишних слов. — Пер. с англ. — М., ДМК-Пресс, 2002.
  8. Френл М. Каррано, Джаннет Дж. Причард. Абстракция данных и решение задач на C++. Стены и зеркала. 3-е издание. «Диалектика-Вильямс», 2003.
  9. Роберт Седжвик. Алгоритмы на C++. Фундаментальные алгоритмы и структуры данных. 2 книги в одной! «Диалектика-Вильямс», 2010.
  10. Бьярне Страуструп. Программирование: принципы и практика использования языка C++. Вильямс, 2010.
  11. Бертран Мейер. Объектно-ориентированное конструирование программных систем + CD. Интернет-университет информационных технологий — ИНТУИТ.ру, Русская Редакция, 2005.

Выделяют следующие этапы решения задачи на ЭВМ:

1) постановка задачи;

2) математическое описание задачи;

3) разработка алгоритма решения;

4) написание программы на языке программирования;

5) подготовка исходных данных;

6) ввод программы и данных в ЭВМ;

7) отладка и тестирование программы;

8) решение задачи;

9) обработка и интерпретация результатов.

Алгоритм — последовательность арифметических и логических действий, приводящая к получению результата и решению задачи (любая конечная система правил преобразования информации).

Свойства алгоритма:

1) детерминированность, — применение алгоритма к одним и тем же данным должно приводить к одному результату;

2) массовость, — дает результат при различных исходных данных;

3) результативность — дает результат через конечное число шагов.

4) Дискретность — алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов.

Видеолекции курса «Алгоритмы и структуры данных»

Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.5) Определенность — каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.

Структура алгоритмов может быть:

1) линейной: вычислительные действия выполняются последовательно друг за другом, алгоритм не содержит условий;

2) разветвляющейся: в зависимости от выполнения некоторого условия вычислительный процесс осуществляется по одной или по другой ветви;

3) циклической: содержать циклы — многократно повторяющиеся участки вычислительного процесса.

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

Структурным называется алгоритм, являющийся комбинацией линейного, разветвляющегося и циклического алгоритмов.

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

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

Методы изображения алгоритмов На практике наиболее распространены следующие формы представленияалгоритмов: . словесная (записи на естественном языке); . графическая (изображения из графических символов); . программная (тексты на языках программирования). Словесное описание алгоритма Данный способ получил значительно меньшее распространение из-за егомногословности и отсутствия наглядности. . такие описания строго не формализуемы; . страдают многословностью записей; . допускают неоднозначность толкования отдельных предписаний. Блок-схема алгоритма А этот способ оказался очень удобным средством изображения алгоритмов и получил широкое распространение в научной и учебной литературе. Структурная (блок-, граф-) схема алгоритма – графическое изображениеалгоритма в виде схемы связанных между собой с помощью стрелок (линий перехода) блоков – графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока дается описание соответствующего действия. Графическое изображение алгоритма широко используется передпрограммированием задачи вследствие его наглядности, т.к. зрительноевосприятие обычно облегчает процесс написания программы, ее корректировки при возможных ошибках, осмысливание процесса обработки информации. При решении сколько-нибудь серьезной задачи блок-схема «расползется» до такой степени, что ее невозможно будет охватить одним взглядом. Блок-схемы алгоритмов удобно использовать для объяснения работы уже готового алгоритма, при этом в качестве блоков берутся действительно блоки алгоритма, работа которых не требует пояснений. Блок-схема алгоритма должна служить для упрощения изображения алгоритма, а не для усложнения. Программное представление алгоритма При записи алгоритма в словесной форме, в виде блок-схемы допускается определенный произвол при изображении команд. Вместес тем такая запись точна настолько, что позволяет человеку понять суть делаи исполнить алгоритм. Однако на практике в качестве исполнителей алгоритмов используютсяспециальные автоматы — ко
мпьютеры.

Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «понятном» ему языке. И здесь на первый план выдвигается необходимость точной записи команд, не оставляющей места для произвольного толкования их исполнителем. Следовательно, язык для записи алгоритмов должен быть формализован.Такой язык принято называть языком программирования, а запись алгоритма на этом языке — программой для компьютера. Порядок разработки иерархической схемы реализации алгоритмов К основным методам структурного программирования относится, прежде всего, отказ от бессистемного употребления оператора непосредственного перехода и преимущественное использование других структурированных операторов, методы нисходящего проектирования разработки программы, идеи пошаговой детализации и некоторые другие соглашения, касающиеся дисциплины программирования. Всякая программа, в соответствии с структурным подходом кпрограммированию, может быть построена только с использованием трех основных типов блоков. 1. Функциональный блок, который на блок-схеме изображается в видепрямоугольников с одним входом и одним выходом: Функциональному блоку в языках программирования соответствуют операторы ввода и вывода или любой оператор присваивания. В виде функционального блока может быть изображена любая последовательность операторов, выполняющихся один за другим, имеющая один вход и один выход. 2. Условная конструкция. Этот блок включает проверку некоторогологического условия (P), в зависимости от которого выполняется либо один(S1), либо другой (S2) операторы 3. Блок обобщенного цикла. Этот блок обеспечивает многократноеповторение выполнения оператора S пока выполнено логическое условие P:

 

Бизнес-кейс « Технопарк система — Саров»

1234

Технопарк «Система – Саров» был создан в Нижегородской области на принципах ГЧП АФК «Система» и РФЯЦ ВНИИЭФ, является частью инновационной системы. Технопаркк стал базовой площадкой научно-производственного кластера, созданного для коммерциализации инновационного потенциала РФЯЦ ВНИИЭФ в гражданском секторе. Основные направления деятельности: энергосбережение и энергоэффективность, ядерные, космические, телекоммуникационные, информационные, суперкомпьютерные технологии.

На территории технопарка площадью 50 га функционирует более 20

российских и зарубежных компаний, включая компанию Intel.

Алгоритмы программирования и структуры данных

Ведутся переговоры с ведущими мировыми высокотехнологичными компаниями – Nokia Siemens Network, General Motors, Rolls Royce, Hewlett-Packard, Magna и другие.

В технопарке создан Молодежный инновационный центр «Система-

Саров» для продвижения инновационных проектов молодых ученых. На базе

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

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

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

ОАО "Технопарк "Система-Саров" подписал соглашение о сотрудничестве с Федеральным государственным бюджетным образовательным учреждением высшего профессионального образования "Национальный исследовательский ядерный университет "МИФИ" (Москва).

Главная задача технопарка — создание новых молодежных стартапов, где удачные идеи получат все шансы для реализации. Технопарк провел экспертизу более 2000 проектов, из которых уже воплощаются в жизнь:

— центр компетенций, обучения и сертификации по суперкомпьютерному имитационному моделированию;

— генераторы синтез-газа;

— наземно-космический центр информационно-управляющих систем различного назначения;

— национальный центр лазерных систем и технологий;

— центр гидродинамических исследований;

— новые технологии переработки и транспортировки угля в рамках угольного технологического кластера;

— производство трубопроводной арматуры для тепловых и атомных электростанций;

— аппаратно-программный комплекс (АПК) для имитационного моделирования телекоммуникационных процессов, диагностики и мониторинга объектов на основе акусто-эмиссионных технологий.

Основными партнерами ОАО «ИТЦ «Система-Саров» являются: ОАО АФК «Система», ОАО «РТИ», ФГУП «РФЯЦ-ВНИИЭФ»,ОАО «ВНИИЖТ»,

ОАО «НИИЭС» (РусГидро), ИПФ РАН, ОАО «СНИИП» (Росатом), МГЛУ Осакский университет Корпорация Microsoft, ФГУП «НИИ «Восход», МГУ им. М.В.Ломоносова, ТГТУ и другие.

Основным инвестором при создании технопарка являлось государство – через ФЦП и другие структуры. ОАО «ИТЦ «Система-Саров» планирует может занять более 10% рынка в России по разработке новых инновационных продуктов для крупного российского бизнеса в ключевых секторах.

Объем инвестиций составил: 15 000 000 000 руб.

Основные конкуренты: ООО"НПО "РЭТ"(Санк-Петербург), ООО Люция (Тюмень), ООО ЦГИ «Прогоз» (Красноярский край), ООО ДСК «Сибирь» (Республика Бурятия), ООО МЕГАСКАН (Москва), ООО ИНК КОМ (Пермский край), ЗАО «ПЕТРОЛЕУМ ТЕХНОЛОДЖИС» (Москва).

Задание:

1) определить примененную в данной ситуации модель государственно-

частного партнерства;

2) определить возможную бюджетную эффективность использования модели государственно-частного партнерства;

3) раскрыть нормативное регулирование механизмов обеспечения исполнения обязательств публичных партнеров, принятых в рамках реализуемого проекта государственно-частного партнерства;

4) перечислить и обосновать возможные риски, оказывающие влияние на реализацию проекта государственно-частного партнерства;

5) раскрыть и рассчитать влияние риска на стоимость привлекаемого финансирования;

6) перечислить лучшие практики государственного и муниципального управления с использованием ГЧП для отраслевого, регионального и городского развития в сфере инноваций.

 

Самостоятельная работа магистрантов включает:

— изучение научной и учебной литературы ,

— подготовку рефератов к семинарам в форме презентаций,

— выполнение творческих заданий,

— анализ научных статей,

— работу с Интернет ресурсами,

— подготовку к зачету.

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

Тематика эссе

1.

Определение «государственно-частного партнёрства» в современной научной отечественной и зарубежной литературе.

2. Обзор официальной статистики по применению проектов ГЧП в мире (отраслевой и географический аспект).

3. Специфика ГЧП как формы взаимодействия государства и бизнеса, отражённая в Практическом руководстве Европейской экономической комиссии по вопросам эффективного управления в сфере государственно-частного партнерства.

4. Модели государственно-частного партнерства: критерии выделения в зарубежной и отечественной практике.

5. Анализ нормативно-законодательной базы в РФ такой формы ГЧП как концессия: проблемы реализации в отечественной практике.

6. Анализ нормативно-законодательной базы в РФ такой формы ГЧП как соглашение о разделе продукции (СРП): проблемы реализации в отечественной практике.

7. Анализ нормативно-законодательной базы ГЧП в Ростовской области: проблемы и перспективы реализации ГЧП-проектов.

8. Перспективы развития в РФ такой формы ГЧП, как контракты жизненного цикла (КЖЦ).

9. Возможности управления рисками при реализации ГЧП-проектов.

10. Оценка финансовых инструментов ГЧП в России на основе отечественной практике.

11. Оценка институциональной среды развития ГЧП в РФ.

12. Оценка перспектив использования ГЧП в инновационной сфере РФ.

13. Оценка перспектив использования ГЧП в сфере транспортной инфраструктуры России.

14. Оценка перспектив использования ГЧП в сфере жилищно-коммунального хозяйства России.

Методические рекомендации по написанию эссе

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

Построение эссе — это ответ на вопрос или раскрытие темы, которое основано на классической системе доказательств.

Структура эссе.

Титульный лист.

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

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

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

Объемы эссе колеблются от 5до 7 машинописных страниц. Работа выполняется на одной стороне листа стандартного формата. По обеим сторонам листа оставляются поля размером 35 мм.слева и 15 мм. справа, рекомендуется шрифт 12-14, интервал — 1,5.

 

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

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

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

 

Научные статьи:

1. Морозова И.А., Мысин М.Н. Влияние стратегического партнерства государственных вузов и бизнес-структур на уровень инвестиционной привлекательности региона // Креативная экономика». 2014. С 3-11.

2.Наумова О.Н.Формирование образовательного кластера в условиях развития государственно-частного и социального партнерств // Креативная экономика. 2014. № 11 (95). С. 33-45.

3. Акимова О.Е., Волков С.К. Государственно-частное партнерство как инструмент развития индустрии туризма в Россий
ской Федерации //

1234



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

Для специальности 230201.65 — «Информационные системы и технологии» объем лекционного курса составляет 38 часов, для 080801.65  — «Прикладная информатика (по областям)» — 34 часа, и  для 080500.62 — «Бизнес-информатика» — 18 часов. Также на сайте можно посмотреть презентации лекционных материалов.

Введение

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

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

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

Число битов, необходимых для кодирования символа (цифры или буквы) в конкретной ЦЭВМ, в большинстве таблиц кодировки равно восьми, и такая группа  битов называется байтом.

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

Биты в памяти ЦЭВМ группируются в элементы большего размера, например в байты.

Новый курс «Алгоритмы и структуры данных»

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

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

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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *