Похожие презентации:
_Лекция_01_Программа=
1.
Кафедра ИСУ Конах В.В1 курс.
Основы и методологии программирования
1
Программа = алгоритм + структуры данных
Существует огромное количество определений, что такое программа, но
суть у них одна.
Программа – описание действий, которые должен выполнить
компьютер, автоматически переводимое на язык машинных команд этого
компьютера.
Программа пишется на одном из языков программирования, содержит
инструкции и операторы в нужной логической последовательности, которые
заставляют работать аппаратное обеспечение, выполняя необходимые
пользователю функции.
Н. Вирт определил понятие программы следующим образом [21]:
Алгоритмы + структуры данных = программы
Под структурой данных программ в общем случае понимают
множество элементов данных, множество связей между ними, а также
характер их организованности.
Под организованностью данных понимается продуманное устройство с
целью
рационального
использования
по
назначению.
Примеры
организованности данных: стек, организованный массивом; структура
данных для хранения информации о студентах; список, текстовый файл и т.д.
Простейшие
структуры
данных,
реализуемые
языком
программирования, называют также стандартными типами данных. Многие
языки программирования позволяют на основе стандартных типов строить
типы данных, определенные программистом (пользователем).
Возникает естественный вопрос: «Чем характеризуются данные?». В
1973 г. Н. Виртом была опубликована статья «Типы данных – это не
значения». С его точки зрения тип данных – это множество значений и
набор операций, которые можно выполнять над этими данными, т.е.:
тип данных = множество значений + набор операций
Структуры данных и алгоритмы служат основой построения программ
[21].
Задачей создания любого программного продукта является
преобразование входных данных в выходные через последовательные
состояния
промежуточных
данных.
Компьютер
работает
с
последовательностью битов или байтов. Человеку работать на языке битов и
байтов неудобно. Программист работает с числами, символами, текстом и
более сложными структурами (массивы, списки, деревья и т.д.).
Стандартные типы данных, принятые в языках программирования,
обычно включают целые и вещественные числа, символы, строки и т. п.
Состав типов данных может различаться в разных языках. При выполнении
2.
Кафедра ИСУ Конах В.В1 курс.
Основы и методологии программирования
2
программы на С++ значение переменной может многократно меняться, но ее
тип не меняется никогда. Благодаря типам, компилятор может проверить
корректность операций, выполняемых над той или иной переменной. Таким
образом, типы переменных во многом определяют структуру данных.
Структура данных в свою очередь во многом определяет алгоритмы.
Одна и та же задача может часто решаться с использованием разных
структур данных. Для решения одной и той же задачи, но с различающимися
структурами данных обычно требуются разные алгоритмы. Без
предшествующей спецификации структуры данных невозможно приступать
к составлению алгоритмов.
Структура данных определяет организацию информации в памяти
компьютера, а алгоритм определяет способ вычислений.
Следует различать физическую структуру данных – способ
представления данных в компьютере, и логическую (абстрактную) – без
учета ее представления в машинной памяти. В общем случае между
логической и соответствующей ей физической структурами имеется
различие, вследствие которого существуют правила отображения логической
структуры на физическую.
Структуры данных, применяемые в алгоритмах, могут быть достаточно
сложными. Поэтому от выбора правильного представления данных часто
зависит решение задачи не меньше, чем от выбора алгоритма. Знание
структур данных позволяет организовать их хранение и обработку
максимально эффективным образом – с точки зрения минимизации затрат
как памяти, так и процессорного времени.
Другим не менее, а может быть, и более важным преимуществом, которое
обеспечивается структурным подходом к данным, является возможность
структурирования сложной программы для достижения ее понятности
человеку, что сокращает количество ошибок при первоначальном написании
кода программы и необходимо при последующем ее сопровождении