Структуры данных и алгоритмы работы с ними. Понятие типа в языках программирования. Скалярные и векторные типы данных. Типы, определяемые пользователем. Указатели и работа с ними. Динамическая память.
Заказать уникальный реферат- 23 23 страницы
- 12 + 12 источников
- Добавлена 09.06.2023
- Содержание
- Часть работы
- Список литературы
1 Структуры данных и алгоритмы работы с ними 5
1.1 Структуры данных 5
1.2 Алгоритмы работы со структурными данными 6
2 Понятие типа в языках программирования 8
3 Скалярные и векторные типы данных 11
3.1 Скалярные типы данных 11
3.2 Векторные типы данных 11
4 Типы, определяемые пользователем 13
5 Указатели и работа с ними 15
6 Динамическая память 18
Заключение 21
Список использованной литературы 22
В современных языках программирования можно выделять и освобождать память в программе для объектов и для массивов любого встроенного или определяемого пользователем типа. Это известно как динамическое управление памятью. На протяжении десятилетий управление динамической памятью C++ осуществлялось с помощью операторов new и delete. Базовые рекомендации C++ не рекомендуют использовать эти операторы напрямую. Оператор new можно использовать для динамического резервирования (то есть выделения) точного объема памяти, необходимого для хранения объекта или встроенного массива. Объект или встроенный массив создается в свободной памяти — области памяти, назначенной каждой программе для хранения динамически выделяемых объектов. Как только память выделена, вы можете получить к ней доступ через указатель, возвращаемый оператором new. Когда вам больше не нужна память, вы можете вернуть ее в свободное хранилище, используя оператор удаления для освобождения (т. е. освобождения) памяти, которая затем может быть повторно использована будущими новыми операциями.Рассмотрим следующий оператор: Time* timePtr{new Time{}}; Err Оператор new выделяет память для объекта Time, вызывает конструктор по умолчанию для его инициализации и возвращает Time* — указатель типа, указанного справа от оператора new. Предыдущий оператор вызывает конструктор Time по умолчанию, потому что мы не предоставили аргументы конструктора. Если new не может найти достаточно места в памяти для объекта, он генерирует исключение bad_alloc.Динамическое размещение встроенных массивов с помощью new[] Вы также можете использовать оператор new для динамического размещения встроенных массивов. Следующий оператор динамически выделяет 10-элементный встроенный массив целых чисел:int*gradesArray{новый интервал[10]{}};Этот оператор направляет указатель intgradesArray на первый элемент динамически выделяемого массива. Пустой инициализатор в фигурных скобках, следующий за новым значением int[10], инициализирует элементы массива, который устанавливает элементы фундаментального типа в 0, bools в false и указатели на nullptr. Инициализатор в фигурных скобках также может содержать список инициализаторов, разделенных запятыми, для элементов массива. Значение, инициализирующее объект, вызывает его конструктор по умолчанию, если он доступен. Правила усложняются для объектов, у которых нет конструкторов по умолчанию. Дополнительные сведения см. в правилах инициализации значений по адресу:https://en.cppreference.com/w/cpp/language/value_initializationРазмер встроенного массива, созданного во время компиляции, должен быть указан с помощью целочисленного константного выражения. Однако размер динамически выделяемого массива можно указать с помощью любого неотрицательного интегрального выражения. Освобождение динамически выделенных встроенных массивов с помощью delete[] Чтобы освободить память, на которую указываетgradeArray, используйте оператор delete[]gradeArray.Если указатель указывает на встроенный массив объектов, этот оператор сначала вызывает деструктор для каждого объекта в массиве, а затем освобождает память для всего массива. Как и в случае с delete, delete[] для nullptr не действует.ЗаключениеПо итогам написания данной работы хотелось бы указать, что применение автоматизированных средств разработки объектно-ориентированного программного обеспечения в современном обществе и внедрение новых ИТ в РФ позволяет государству активно развиваться, а его гражданам – улучшать свой социальный и профессиональный уровень. Благодаря тому, что многие организации и предприятия постоянно внедряют данные разработки в самых различных областях деятельности специалистов программирования, в результате чего это дает государству возможность выходить на новые рынки и увеличивать доход. Применение автоматизированных средств разработки объектно-ориентированного программного обеспечения для различных ОС, ИТ и ИС в современном мире помогает повысить качество продукции, выпускаемой различными предприятиями мира. Это также существенно упрощает механизмы обмена информацией между современными компаниями, повышает безопасность ее передачи.Цель и задачи, которые были сформулированы в начале работы, все достигнуты и решены. Этот реферат удалось написать с использованием современной литературы и международной сети Интернет. Отмечена важность данной тематики, поскольку без ее применения в соответствующих направлениях невозможно полноценное развитие государства в целом. Поэтому важно постоянно модернизировать методы исследований тематики, изложенной в данной работе, что позволит вывести РФ на новый уровень развития.Список использованной литературыЗыков С.В. Введение в теорию программирования. Объектно-ориентированный подход. 3-е изд. — Учебное пособие. — М.: Интернет-Университет Информационных Технологий (ИНТУИТ); Ай Пи Ар Медиа, 2021. — 187 c.Ногоева, Г. Д. Создание веб приложений посредством библиотеки языка программирования Python / Г. Д. Ногоева, К. Д. Абыкеев // Вестник Кыргызстана. – 2021. – № 1-2. – С. 179-182. – DOI 10.33514/BK-1694-7711-2021-1(2)-179-182.Ключарев А. А., Матьяш В. А., Щекин С. В.Структуры и алгоритмы обработки данных: Учеб. пособие/ СПбГУАП. СПб., 2003. – 172 с.Сундукова Т.О., Ваныкина Г.В. Структуры и алгоритмы компьютерной обработки данных. 2-е изд., испр. — М.: Интуит, 2016. — 805 с.Скин Джош, Гринхол Дэвид, Бэйли Эндрю. Kotlin. Программирование для профессионалов. 2-е изд. — СПб.: Питер, 2022. — 560 с. Sharma V.K., Kumar V., Sharma S., Pathak S. Python Programming: A Practical Approach. CRC Press, 2022. — 345 p.Graham E. Learn the C++ programming language in a straightforward easy decent friendly structured manner. Emma Graham, 2022. — 812 p.Jain Shashank. Nature-Inspired Optimization Algorithms with Java: A Look at Optimization Techniques. Apress Media LLC, 2022. — 182 p.Deitel Paul, Deitel Harvey. C++ 20 for Programmers: An Objects-Natural Approach. Pearson Education, Inc., 2022. — 960 p.Agarkova, A. A. ProbabilitytheoryusingthePYTHONprogramminglanguage / A. A. Agarkova // IX Международная научно-практическая конференция имени академика А.Г. Шипунова : Материалы IХ Международной научно-практической конференции , Орел, 25 марта 2022 года. – Орел: Орловский государственный университет имени И.С. Тургенева, 2022. – P. 114-118.Волосова Н.К., Волосов К.А., Волосова А.К., Пастухов Д.Ф., Пастухов Ю.Ф. О двух численных алгоритмах для решения конечномерной задачи Лагранжа на экстремум с ограничениями типа равенств. Учебное пособие. — Москва: Полоцкий государственный университет (ПГУ), 2022. — 33 с.JosuttisNicolai M. C++17. The Complete Guide. Lean Publishing, 2022. — 430 p.
2. Ногоева, Г. Д. Создание веб приложений посредством библиотеки языка программирования Python / Г. Д. Ногоева, К. Д. Абыкеев // Вестник Кыргызстана. – 2021. – № 1-2. – С. 179-182. – DOI 10.33514/BK-1694-7711-2021-1(2)-179-182.
3. Ключарев А. А., Матьяш В. А., Щекин С. В.Структуры и алгоритмы обработки данных: Учеб. пособие/ СПбГУАП. СПб., 2003. – 172 с.
4. Сундукова Т.О., Ваныкина Г.В. Структуры и алгоритмы компьютерной обработки данных. 2-е изд., испр. — М.: Интуит, 2016. — 805 с.
5. Скин Джош, Гринхол Дэвид, Бэйли Эндрю. Kotlin. Программирование для профессионалов. 2-е изд. — СПб.: Питер, 2022. — 560 с.
6. Sharma V.K., Kumar V., Sharma S., Pathak S. Python Programming: A Practical Approach. CRC Press, 2022. — 345 p.
7. Graham E. Learn the C++ programming language in a straightforward easy decent friendly structured manner. Emma Graham, 2022. — 812 p.
8. Jain Shashank. Nature-Inspired Optimization Algorithms with Java: A Look at Optimization Techniques. Apress Media LLC, 2022. — 182 p.
9. Deitel Paul, Deitel Harvey. C++ 20 for Programmers: An Objects-Natural Approach. Pearson Education, Inc., 2022. — 960 p.
10. Agarkova, A. A. Probability theory using the PYTHON programming language / A. A. Agarkova // IX Международная научно-практическая конференция имени академика А.Г. Шипунова : Материалы IХ Международной научно-практической конференции , Орел, 25 марта 2022 года. – Орел: Орловский государственный университет имени И.С. Тургенева, 2022. – P. 114-118.
11. Волосова Н.К., Волосов К.А., Волосова А.К., Пастухов Д.Ф., Пастухов Ю.Ф. О двух численных алгоритмах для решения конечномерной задачи Лагранжа на экстремум с ограничениями типа равенств. Учебное пособие. — Москва: Полоцкий государственный университет (ПГУ), 2022. — 33 с.
12. Josuttis Nicolai M. C++17. The Complete Guide. Lean Publishing, 2022. — 430 p.