- •1.1.2 Классификация структур данных
- •1.1.3 Обозначения и договоренности
- •1.1.4 Множества.
- •1.1.5 Прямоугольные структуры. Массивы
- •Лекция 2
- •2.1 Прямоугольные структуры. Таблицы
- •2.2 Реализация с использованием параллельных массивов (статическое представление таблицы)
- •2.3 Реализация операций для неупорядоченной таблицы с использованием статической памяти
- •2.4 Динамическая память. Куча
- •2.5 Операции над указателями
- •2.6 Геометрическая интерпретация
- •2.7 Динамическая цепочка
- •2.8 Реализация операций для неупорядоченной таблицы с использованием динамической памяти
- •3.2 Обратная польская (постфиксная) запись
- •Лекция 4
- •4.1 Списковые структуры. Линейный список
- •Атом есть линейный список (атомарный);
- •Атом есть линейный список (атомарный);
- •4.2 Об операции "расчленение"
- •4.3 Логическое описание линейного списка.
- •4.4 Вычисление значения арифметического выражения
- •Лекция 5
- •5.1 Деревья
- •5.2 Бинарные деревья
- •5.5 Дерево двоичного поиска
- •7.2 Инструментальные средства. Архивация файлов (пока без сжатия)
- •7.3 Программы хранения и обработки информации
- •7.4 Код Цезаря
- •7.5 Упаковка текста
- •7.6 Код Хаффмана
- •7.7 Код Хемминга
- •7.8 Вектор Айлиффа
- •Вектор Айлиффа
- •Лекция 8
- •8.1 Сортировка – перестановка элементов линейной структуры
- •8.2 Алгоритмы сортировки Три класса алгоритмов сортировки (включением, выбором, обменом)
- •8.2.1 Сортировка простым включением.
- •9.2 Источники погрешностей
- •9.3 Классификация погрешностей
- •9.4 Терминология
- •FoRmula traNslation (станд.66, станд.77(*))
- •10.0 Бланк для записи текста программы на Фортране
- •10.1 Элементы языка
- •10.2 Типы данных и операции
- •10.3 Описание переменных и констант
- •10.4 Арифметические операции
- •11.3 Операторы присваивания
- •11.4 Оператор continue
- •11.5 Оператор безусловной передачи управления
- •11.6 Вычисляемый оператор передачи управления
- •11.7 Оператор передачи управления по предписанию
- •11.8 Арифметический оператор условной передачи управления
- •11.9 Логический оператор условной передачи управления
- •11.10 Структурный оператор условной передачи управления*
- •11.11 Оператор цикла с параметром
- •Лекция 12
- •12.1 Реализация стандартных структур
- •12.2 Операции ввода/вывода
- •12.3 Операторы ввода/вывода
- •12.4 Оператор формата (format)
- •12.5 Логическая запись
- •12.6 Взаимодействие операторов в/в и оператора format.
- •Расширенная форма оператора read
- •12.7 Управляющие символы при печати
- •12.8 Представление целого и действительного в памяти.
- •12.9 Оператор data
- •12.10 Сравнение текстовых данных
- •12.11 Функции для данных типа character
- •Лекция 13
- •13.1 Программные единицы
- •13.2 Библиотечные и встроенные функции
- •13.3 Оператор-функция
- •Правило соответствия: Списки формальных и фактических параметров согласованы по количеству, типу и порядку следования. Пример
- •13.4 Подпрограмма-функция
- •13.5 Подпрограмма-процедура
- •О соответствии фактических и формальных параметров
- •13.6 Операторы external и intrinsic
- •Пример (параметр-переменная и параметр-значение)
- •14.3 Операторы ввода и вывода.
- •14.4 Параметры операторов ввода и вывода
- •Открытие (присоединение) файла.
- •14.5 Операторы open и close
- •14.6 Оператор read
- •14.7 Оператор write
- •14.8 Другие операторы
II семестр
0. Содержание курса
Лекций -2; Семинаров -0 (2); Лабораторных -2;
До 1 апреля 10 баллов на F (кто не успел - 15 баллов до 15 апреля).
Апрель - контрольная по составлению проекта программы.
Май - защита курсовых работ.
Июнь - экзамен.
Литература по Фортрану (в дополнение к списку 1 семестра):
П.В. Соловьев. Fortran для персонального компьютера (Справочное пособие). М 1991.
З.С. Брич, Д.В. Капилевич, Н.А. Клецкова. Фортран 77 для ПЭВМ. М, «Ф и С», 1991.
Лекция 1
1.1 Cтруктуры данных
1.1.1 Основные понятия
Вычислительные машины первоначально были задуманы как быстрые вычислители и использовались, в основном, для решения вычислительных задач. Однако, со временем, все в большей степени вычислительные машины используются для сбора, хранения и обработки информации. Нельзя классифицировать задачи на чисто вычислительные и задачи обработки информации, поскольку эффективность решения всякой задачи зависит и от организации вычислений и от организации работы с данными.
Задача для ЭВМ = вычислительная часть + обработка информации.
Информация – совокупность сведений или знаний.
Данные - информация, пригодная для обработки.
Система – совокупность взаимосвязанных объектов, подчиненных определенной (единой) цели.
Автоматизированные информационные системы (АИС) - системы обработки данных.
Базы данных (БД) - совокупность взаимосвязанных данных.
Структура - взаимосвязь отдельных элементов.
Запись - совокупность (группа) элементов (полей).
Эффективность обработки данных зависит от формы представления (типы данных), взаимосвязи отдельных элементов (структур данных), последовательности действий (алгоритма).
Под структурой данных можно понимать совокупность данных, на которой описана структура (взаимосвязь отдельных элементов). Над структурой данных определена совокупность операций обработки данных с учетом структуры. С другой стороны, совокупность операций обработки данных требует наличия определенной взаимосвязи данных, то есть определенной структуры. Таким образом, можно отождествить структуру данных с набором операций обработки данных, определенных на ней.
Три уровня абстракции описания структур данных:
Набор функциональных спецификаций;
Логическое описание (типы данных);
Физическое представление.
1.1.2 Классификация структур данных
Линейные |
Нелинейные |
||||
Прямоугольные |
Структуры ряда |
Списковые |
Древовидные |
Графы |
Мульти графы |
Массивы, таблицы |
Строки, очереди, стеки, деки |
Линейный список |
n-дерево, бинарное дерево, дерево двоичного поиска |
|
|
Указатель - адрес начала записи.
1.1.3 Обозначения и договоренности
Пусть Т1, Т2, ..., Тn - имена известных типов данных
Т=record N1:T1; N2:T2; ...; Nn:Tn end - новый тип - запись, Ni - имена полей, i=1,2,...,n.
Пусть t:T, ti:Ti, i=1,2,...,n; инициализация t.N1=t1; t.N2=t2; ..., t.Nn=tn; если tt:T, то можно tt:=t (присваивание).
Пример:
type
Comp=record {Комплексное число}
Re:real;
Im:real
end;
var
z:Comp;
zz:Comp;
В секции действий
z.Re:=3.14; z.Im:=1.0;{инициализация}
zz:=z (присваивание).
Глобальный тип: Inf - информационная часть (часть данных, не влияющих на структуру).
1.1.4 Множества.
Множество записей - простейшая вырожденная структура данных, характеризуемая отсутствием взаимосвязи между элементами множества (записями). В языке Паскаль логическое описание и физическое представление множества берет на себя транслятор (тип данных множество предопределен в языке, описатель set of T). Операции над множествами сведены в таблицу.
Имя операции |
Функциональные спецификации |
Аргументы |
Результат |
Описание |
Создать |
U |
|
|
Создается пустое множ |
Включить |
TUU |
t, u |
{xTxu или x=t} |
К u добавляется t, если он не принадлежит u |
Принадлежит? |
TUBoolean |
t, u |
Истина, если tu, |
Принадлежит ли элемент t множеству u? |
Исключить |
TUU |
t, u |
{xTxu и xt} |
Удалить элемент t из множества u |
Пусто? |
UBoolean |
u |
Истина, если u= |
Пусто ли множество u? |
Объединение |
UUU |
u1, u2 |
{xTxu1 или xu2} |
Объединение u1 и u2 |
Пересечение |
UUU |
u1, u2 |
{xTxu1 и xu2} |
Пересечение u1 и u2 |
Разность |
UUU |
u1, u2 |
{xTxu1 и xu2} |
Разность u1 и u2 |
Дополнение |
UU |
u |
{xT xu} |
Дополнение к u |
Здесь Т – базовый тип множества, U – тип множество, t – данное базового типа (t:T или tT), u, u1, u2 – данные типа U.
1.1.5 Прямоугольные структуры. Массивы
Массив - конечное упорядоченное множество элементов (записей) одного типа. Индекс (номер по порядку) указывает относительное положение элемента (отсчет ведется от первого элемента). В языках программирования структура данных "массив" поддерживается транслятором. Пусть Т - базовый тип, т.е. тип элементов, I – индексный тип (множество допустимых индексов). Тогда можно определить новый тип данных М = array[I]of Т.
Над массивом определены следующие операции:
создание массива (это делает транслятор),
инициализация элемента,
чтение значение элемента
Задача. Записать функциональные спецификации для структуры данных «массив».
Создание массива М,
Инициализация массива МITМ,
Чтение значения элемента массива МIT.