Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_programmirovaniyu.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
862.68 Кб
Скачать
  1. Парадигмы программирования

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

  • состояний программы и команд, изменяющих их (императивное программирование),

  • математических функций без состояний (функциональное программирование),

  • объектов и взаимодействий между ними (объектно-ориентированное программирование),

  • алгоритмов и контейнеров, оперирующих с типами данных, переданными как параметр (обобщенное программирвоание),

  • значений и операций, преобразующих значения (программирование на уровне значений), и т.д.

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

Среди прочего выделяют такие парадигмы программирования как директивное (структурное)объектно-ориентированное и декларативное (функционально-логическое).

Структурное программирование

Некоторые представители: Fortran, Pascal, C.

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

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

Функциональное и логическое программирование

Представители функциональных языков: List, Haskell.

Представитель логических языков: Prolog.

Декларативная программа заявляет (декларирует), что должно быть достигнуто в качестве цели. Важным является точная формулировка задачи. Программист не задает алгоритм для ее решения.

Функциональное программирование основано на математическом понятии функции, которая не изменяет свое окружение; это отличие функционального программирования от функций в структурных языках.

Объектно-ориентированное программирование

Представители объектно-ориентированных языков: С++, Java, Python.

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

ООП призвано решать более сложные и объемные задачи по сравнению с директивным программированием.

В основе ООП лежат такие понятия как наследованиеполиморфизм и инкапсуляция.

  1. Структуры данных. Простые (базовые структуры) представление в памяти. Статические структуры данных. Полустатические структуры данных( стеки, деки, очереди, строки).Динамические структуры данных(линейные списки, графы, деревья).

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

(или СТРУКТУРА ДАННЫХ - совокупность физически (типы данных) и логически (алгоритм, функции) взаимосвязанных переменных и их значений. )

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

Различные виды структур данных подходят для различных приложений; некоторые из них имеют узкую специализацию для определённых задач. Многие классические структуры данных представлены в стандартных библиотеках языков программирования или непосредственно встроены в языки программирования.

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

СТАТИЧЕСКАЯ СТРУКТУРА ДАННЫХ - совокупность фиксированного количества переменных постоянной размерности с неизменным характером связей между ними Статические структуры представляют собой структурированное множество примитивных, базовых, структур. Поскольку по определению статические структуры отличаются отсутствием изменчивости, память для них выделяется автоматически - как правило, на этапе компиляции. Возможно выделение памяти на этапе компиляции это очень удобно, это свойство использует для представления объектов, обладающих изменчивостью. Например, когда размер массива неизвестен заранее, для него резервируется максимально возможный размер.

Полустатические структуры данных.

Полустатические структуры данных характеризуются следующими признаками:

Они имеют переменную длину и простые процедуры ее изменения;

Изменение длины структуры происходит в определенных пределах, не превышая какого-то максимального (предельного) значения.

Если полустатическую структуру рассматривать на логическом уровне, то о ней можно сказать, что это последовательность данных, связанная отношениями линейного списка. Доступ к элементу может осуществляться по его порядковому номеру.

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

К полустатическим структурам относиться стеки, деки, очереди, строки

Динамические структуры данных.

ДИНАМИЧЕСКАЯ СТРУКТУРА ДАННЫХ - совокупность переменных, количество, размерность или характер взаимосвязей между которыми меняется во время работы программ.

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

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

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

2. Поле связок, в котором содержатся один или несколько указателей, связывающий данный элемент с другими элементами структуры;

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

К Динамическим структурам относиться линейные списки, графы, деревья

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]