Характеристика динамических массивов
Динамические массивы, как основа для создания справочников и списков. Особенность выделения оперативной памяти компьютера для объектов в программе. Анализ информативности, внешнего оформления и безопасности сайта. Различие между Си и Паскаль в проектах.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 31.01.2016 |
Размер файла | 18,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОУ НПО «ПРОФЕССИОНАЛЬНЫЙ ЛИЦЕЙ №1»
НП «СОЮЗ ПОДДЕРЖКИ ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ»
Проект «Школа + Профессия»
Специальность «Оператор ЭВМ (Программирование)»
Контрольная работа
ДИНАМИЧЕСКИЕ МАССИВЫ
Неганова В.Б.
Руководитель:
Пачгина А.А.
Алексеева Т.П.
Пермь 2013
- Введение
Актуальность проблемы
За последние десятилетия компьютерная индустрия продвинулась далеко вперед. Шаг за шагом люди открывают новые возможности в отрасли IT. Разрабатывая новые возможности и технологии, программисты используют различные языки программирования. Каждый язык предназначен для своих целей, и в каждом языке есть свой набор тематик. Каждая тема имеет исключительные особенности и используется для определенных задач при создании программы.
Тема, взятая мной - динамические массивы (+динамическая память) является, на мой взгляд, важной в области программирования, но которой, к сожалению, во многих школах уделяют мало внимания или не уделяют совсем. Динамические массивы являются основой для создания справочников и списков, а динамическая память используется для экономии физической памяти компьютера.
На мой взгляд, данная тема должна быть изучена более подробно людьми, которые занимаются программированием, так как она охватывает такие разделы в области программирования, как: указатели, структуры, списки, циклы, выражения. Программа с использованием динамических массивов позволяет закрепить изученный материал по этим разделам.
Так же при использовании темы динамических массивов можно создавать справочники с записью в файл, что представляет из себя еще один раздел в программировании.
Таким образом, выбранная мной тема важная для общества и позволяет углубить знания в области программирования и закрепить другие разделы.
Цели и задачи
Цели:
1. Создание двух программ на разных языках программирования.
2. Создание сайта по теме.
Задачи:
Для сайта:
1. Создание схемы страниц для будущего сайта со структурой на каждой странице.
2. Создание страниц в html.
3. Поиск необходимой теоретической информации в учебнике и интернете по теме.
4. Создание внешнего стиля сайта (CSS).
5. Добавление Java скриптов для внешнего дизайна сайта.
6. Запись работы программ на видео для загрузки на сайт.
7. Формирование пакета файлов для загрузки с сайта.
Для программ:
1. Анализ необходимой теории.
2. Создание схемы программы на бумаге.
3. Создание программы-справочника в Си с использованием динамических массивов и записью в файл
4. Создание программы-справочника в Паскале с использованием динамических массивов и динамической памяти и записью в файл.
1. Теоретическая часть
Динамические массивы
Динамическим называется массив, размер которого может меняться во время исполнения программы. Для изменения размера динамического массива язык программирования, поддерживающий такие массивы, должен предоставлять встроенную функцию или оператор. Динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объёмы данных, а регулировать размер массива в соответствии с реально необходимыми объёмами. В отличие от динамических массивов существуют статические массивы и массивы переменной длины. Размер статического массива определяется на момент компиляции программы. Размер массива переменной длины определяется во время выполнения программы. Отличием динамического массива от массива переменной длины является автоматическое изменение размеров, что не трудно реализуется в случаях его отсутствия, поэтому часто не различают массивы переменной длины с динамическими массивами.
Динамическая память
Динамическое распределение памяти -- способ выделения оперативной памяти компьютера для объектов в программе, при котором выделение памяти под объект осуществляется во время выполнения программы. динамический массив память сайт
При динамическом распределении памяти объекты размещаются в т.н. «куче» (англ. heap): при конструировании объекта указывается размер запрашиваемой под объект памяти, и, в случае успеха, выделенная область памяти, условно говоря, «изымается» из «кучи», становясь недоступной при последующих операциях выделения памяти. Противоположная по смыслу операция -- освобождение занятой ранее под какой-либо объект памяти: освобождаемая память, также условно говоря, возвращается в «кучу» и становится доступной при дальнейших операциях выделения памяти.
По мере создания в программе новых объектов, количество доступной памяти уменьшается. Отсюда вытекает необходимость постоянно освобождать ранее выделенную память. В идеальной ситуации программа должна полностью освободить всю память, которая потребовалась для работы. По аналогии с этим, каждая процедура (функция или подпрограмма) должна обеспечить освобождение всей памяти, выделенной в ходе выполнении процедуры. Некорректное распределение памяти приводит к т.н. «утечкам» памяти, когда выделенная память не освобождается. Многократные утечки памяти могут привести к исчерпанию всей оперативной памяти и нарушить работу операционной системы.
Другая проблема -- это проблема фрагментации памяти. Выделение памяти происходит блоками -- непрерывными фрагментами оперативной памяти (таким образом, каждый блок -- это несколько идущих подряд байтов). В какой-то момент, в куче попросту может не оказаться блока подходящего размера и, даже, если свободная память достаточна для размещения объекта, операция выделения памяти окончится неудачей.
Для управления динамическим распределением памяти используется «сборщик мусора» -- программный объект, который следит за выделением памяти и обеспечивает её своевременное освобождение. Сборщик мусора также следит за тем, чтобы свободные блоки имели максимальный размер, и, при необходимости, осуществляет дефрагментацию памяти.
2. Сайт
Для информирования людей о динамических массивах мною был создан сайт, на котором все желающие могут ознакомиться с этой темой, почитать теоретический материал, а так же рассмотреть применение массивов на уже выполненных программах. К ним приложен видеоматериал, объясняющий назначение программы и исходный код, чтобы пользователь мог разобраться на практике с выбранной мной темой.
Структура сайта
Для создания сайта я использовал идею двойного оформления схожего с блогом, где присутствует подложка и внутренняя часть сайта с постами. Каждая страница имеет одинаковую структуру с определенным местоположением всех элементов, а именно: меню, логотип, часы, календарь, посты. Каждая страница связана общим CSS стилем, благодаря которому все страницы выдерживают один формат.
Внешнее оформление
Выбранные мною цвета для сайта гармонично сочетаются друг с другом. Они благоприятно влияют на читателя, не отпугивая его от просмотра страниц. Композиционно все элементы сочетаются друг с другом на странице, не образовывая пустых мест, или наоборот, позиций с высокой информативной или визуальной нагрузкой. Шрифт выполнен в удобном формате и в кегле таким образом, что несмотря на объемность текста на некоторых страницах, читается он довольно легко. Благодаря оптимальному размеру шрифту глаза читателя не устают от усердного всматривания в текст.
Дополнительные скрипты
Сайт о динамических массивах содержит несколько интересных скриптов, делающих каждую страницу более привлекательной. Во-первых, очень важными атрибутами сайта являются часы и календарь. Они выполняют не только информативную роль, но и разбавляют нагрузку читателя внешним видом. Так же стоит отметить удобство в навигации сайта. Меню расположены в удобных местах, а в случае большого ухода вниз страницы, можно легко вернуться в начало, так как по пути следования читателя по странице располагается удобная и не сильно выделяющая стрелка, которая плавно возвращает читателя наверх, не создавая таким образом нагрузку на глаза.
Информативность
Сайт представляет собой введение в тему динамических массивов и динамической памяти. В правом меню располагаются пункты теории, следуя которым автор сможет понять необходимость и общие положения динамических массивов и памяти. В верхнем меню во вкладке «проекты» читатель может ознакомиться с примерами по данной теме, которые написаны на разных языках программирования. Каждый пример представляет собой видеоролик описания программы в действии, а так же возможность скачивания теоретической и практической части.
Личная информация
На сайте читатель может так же познакомиться с создателем сайта поближе. Вкладка «об авторе» позволяет посетителям узнать общую информацию об администраторе сайта, а во вкладке «контакты» предполагается несколько возможностей связи с ним.
Безопасность
Чтобы защититься от кражи информации с сайта, как текстовой, так и графической, на сайте стоит защита от выделения и копирования текста, а так же во время просмотра страниц у пользователя отсутствует возможность воспользоваться правой кнопкой мыши.
Совместимость
Сайт полностью сочетается с браузером Opera. Остальные браузеры, такие как Internet Explorer и Google Chrome принимают CSS стиль сайта, однако на данных браузерах не работает функция поднятия вверх страницы с помощью библиотеки juery.
3. Программы
Программа-справочник на языке Си
Программа, написанная на языке Си, представляет собой динамический массив с возможностью записи в файл. Это такой справочник, в котором каждая ячейка массива представляет собой компьютер, а деление ячейки происходит на две категории - количество ядер и система в компьютере. В программе реализованы такие функции, как вывод, добавление, удаление, поиск, сортировка, сохранение и удаление в файл/из файла. Программа содержит меню, удобное и понятное для пользователя. Так же программа является интерактивной (общительной), чтобы быть ближе к пользователю. После каждого действия программа дает возможность понять человеку, правильно ли он что-то делает или нет. Все записанные ячейки в динамическом массиве можно найти в файле, в который проивзодиась запись. В самой верхней строчке указывается общее количество компьютер, а далее в файле по порядкому расположены все компьютеру через характеристики количества ядер и системы.
Программа-справочник на языке Паскаль
На языке Паскаль используется та же технология динамических массивов и запись в файл. Однако отличительной особенностью от программы, написанной через Си, является использование динамической памяти. С помощью этого программа позволяет экономить физическую память компьютера, работая через ссылки с внутренней памятью. Меню и структура записи в файл мало чем отличается от программы Паскаля, однако структура образования массива меняется. В данном случае построение массива строится с помощью указателей на следующий элемент. В отличии от первой программы, при удалении элемента в Паскале отсутствует необходимость в смещении каждого последующего элемента на место предыдущего. Удаление происходит удалением ссылки на ячейку в оперативной памяти компьютера. Кстати говоря, оперативная память является практически безграничной, что делает программу неограниченной в плане количества ячеек.
Различие между Си и Паскаль в динамических массивах
В Си использовались динамические массивы. В динамических массивах все элементы хранятся в памяти последовательно друг за другом, доступ может быть осуществлен к произвольному элементу.
В Паскале использовались линейные списки, реализованные через динамическую память. Элементы списка не обязательно хранятся в памяти последовательно, так как они связаны друг с другом через ссылки. Доступ к произвольному элементу получить нельзя - для этого нужно последовательно проходить по адресам всех элементов (перебирать их), чтобы найти нужный.
Из-за разницы в способе представления структур в памяти основные операции (добавление, удаление, поиск) так же реализуется по-разному.
Заключение
Все цели и задачи в ходе выполнения работы были достигнуты. Была проделана долгая и сложная работа, а именно: создание сайта, создание программ. Данные элементы несут информативную функцию, позволяющую расширить знание читателей в области программирования и рассмотреть все на примерах в разных языках программирования. Мною были выбраны Си и Паскаль для создания программ, потому что, на мой взгляд, эти два языка являются стандартными и весьма популярными в наши дни.
Использованная литература
1. Доналд Алкок, «Язык паскаль в иллюстрациях», 1991 год.
Размещено на Allbest.ru
...Подобные документы
Объявление, выделение, освобождение памяти под динамические массивы. Обращение к элементам. Решение задач с использованием динамических массивов на языке C++. Разработка и реализация программы для формирования и обработки динамического двумерного массива.
курсовая работа [813,4 K], добавлен 13.06.2014Широкое использование компьютерных и информационных технологий. Концепции типов данных. Алгоритмы сортировки одномерных массивов. Описание двумерного массива Паскаля. Методы доступа к элементам массивов. Индексные, динамические и гетерогенные массивы.
курсовая работа [66,3 K], добавлен 07.12.2010Средства создания динамических структур данных. Формат описания ссылочного типа. Структура памяти во время выполнения программы. Линейные списки, стек, очередь. Организация списков в динамической памяти. Пример создания списка в обратном порядке.
лабораторная работа [788,2 K], добавлен 14.06.2009Изучение понятия и основных видов массивов. Ввод массива с клавиатуры и вывод на экран. Сортировка массивов. Метод простых обменов (пузырьковая сортировка). Сортировка простым выбором и простым включением. Решение задач с использованием массивов Паскаля.
курсовая работа [82,1 K], добавлен 18.03.2013Средства выделения и освобождения памяти. Динамические структуры данных. Связные линейные списки и их машинное представление. Структура одно- и двухсвязного списка. Реализация операций над связными линейными списками. Разработка программы на языке С++.
курсовая работа [944,7 K], добавлен 14.03.2015Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.
отчет по практике [913,8 K], добавлен 21.07.2012Классификация компьютерной памяти. Использование оперативной, статической и динамической оперативной памяти. Принцип работы DDR SDRAM. Форматирование магнитных дисков. Основная проблема синхронизации. Теория вычислительных процессов. Адресация памяти.
курсовая работа [1,5 M], добавлен 28.05.2016Иерархическая структура производного типа данных в языке Паскаль. Определение массива как упорядоченного набора фиксированного количества некоторых значений. Сортировка одномерных и двумерных массивов методом простых обменов, простым выбором и включением.
курсовая работа [48,8 K], добавлен 27.11.2010Разработка простейших классов на примере разработки моделей элементарных объектов и динамических информационных структур (одно и двунаправленных списков). Разработка простых классов. Вызывающая программа (main). Информационные динамические структуры.
творческая работа [17,5 K], добавлен 08.12.2007Линейные динамические структуры. Построение списочной структуры, состоящей из трехнаправленного и двух однонаправленных списков, связанных между собой. Дерево двоичного поиска для заданного множества целых чисел. Листинг программы на языках Си и Паскаль.
курсовая работа [451,1 K], добавлен 19.10.2013Понятие и функциональные особенности запоминающих устройств компьютера, их классификация и типы, сравнительная характеристика: ROM, DRAM и SRAM. Оценка преимуществ и недостатков каждого типа оперативной памяти, направления и пути их использования.
презентация [118,1 K], добавлен 20.11.2013Улучшение параметров модулей памяти. Функционирование и взаимодействие операционной системы с оперативной памятью. Анализ основных типов, параметров оперативной памяти. Программная часть с обработкой выполнения команд и размещением в оперативной памяти.
курсовая работа [99,5 K], добавлен 02.12.2009Простейшая схема взаимодействия оперативной памяти с ЦП. Устройство и принципы функционирования оперативной памяти. Эволюция динамической памяти. Модуль памяти EDO-DRAM BEDO (Burst EDO) - пакетная EDO RAM. Модуль памяти SDRAM, DDR SDRAM, SDRAM II.
реферат [16,1 K], добавлен 13.12.2009Обобщение основных видов и назначения оперативной памяти компьютера. Энергозависимая и энергонезависимая память. SRAM и DRAM. Триггеры, динамическое ОЗУ и его модификации. Кэш-память. Постоянное запоминающее устройство. Флэш-память. Виды внешней памяти.
курсовая работа [1,7 M], добавлен 17.06.2013Осуществление идентификации элемента внутри массива с помощью индекса (ключа). Понятие и свойства массивов, механизм их инициализации и создания. Недостатки непрерывных списков. Структура связного списка, удаление записи из него и добавление нового имени.
презентация [868,4 K], добавлен 14.10.2013Оперативная память как один из главных компонентов компьютера. Роль и значение оперативной памяти в качестве буфера между центральным процессором и винчестером. Факторы, влияющие на производительность всего компьютера. Общая характеристика SRAM и DRAM.
эссе [25,5 K], добавлен 09.12.2014История появления и развития оперативной памяти. Общая характеристика наиболее популярных современных видов оперативной памяти - SRAM и DRAM. Память с изменением фазового состояния (PRAM). Тиристорная память с произвольным доступом, ее специфика.
курсовая работа [548,9 K], добавлен 21.11.2014Обоснование выбора комплектующих компьютера. Особенности подбора процессора, материнской платы, видеокарты, оперативной памяти, жесткого диска. Расположение элементов в корпусе, модулей на материнской плате. Техника безопасности при работе за компьютером.
курсовая работа [1,0 M], добавлен 17.11.2014Понятие и функциональные возможности индексных массивов, принципы их формирования. Особенности использования функции array, range. Ассоциативные массивы, исследование их преимуществ и недостатков, этапы создания. Просмотр массива с помощью цикла.
презентация [144,3 K], добавлен 21.06.2014Изучение состава и основных характеристик типичного настольного персонального компьютера. Обзор видов памяти ПК. Анализ значения каждого вида памяти для хранения информации. Формирование списков пользователя в MS Excel. Установление межтабличных связей.
курсовая работа [1,7 M], добавлен 23.04.2013