86874

Обработка динамических массивов данных

Лабораторная работа

Информатика, кибернетика и программирование

На этапе проектирования между страницами можно переключаться простым щелчком мышки на корешке. В области каждой страницы можно размещать любые компоненты Delphi. Все объекты, размещаемые на страницах компонента TPageControl, считаются принадлежащими непосредственно родительской форме - классу типа TF...

Русский

2015-04-11

75.09 KB

3 чел.

Обработка динамических массивов данных

Компонент PageControl

Компонент PageControl   (Набор страниц) с закладки Win32 представляет собой наложенные одна на другую страницы, причем доступ к каждой странице, содержащей свой набор элементов управления, осуществляется через корешки, на которых можно написать название, определяющее содержание страницы. Этот элемент управления удобен тем, что позволяет эффективно использовать ограниченное пространство экрана, создавая эффект книги, которую можно раскрыть на любой странице.

Первоначально компонент, помещенный в форму, будет пустым, не содержащим ни одной страницы.

  Рис.4

Новая страница добавляется командой New Page (Создать страницу) из контекстного меню. Другие команды: Next Page - переключиться на следующую страницу, Previous Page - переключиться на предыдущую страницу. При этом создается новый объект типа TTabSheet.

  Рис.5

На этапе проектирования между страницами можно переключаться простым щелчком мышки на корешке. В области каждой страницы можно размещать любые компоненты Delphi. Все объекты, размещаемые на страницах компонента TPageControl, считаются принадлежащими непосредственно родительской форме - классу типа TForm, поэтому явно указывать страницы при обращении к этим объектам не обязательно.

Рассмотрим некоторые свойства компонента PageControl  :

Свойство

Описание свойства

Примеры значений

RaggedRight

Определяет режим выравнивания длины корешков по длине надписи

True — включен,

False — выключен

MultiLine

Определяет возможность размещения корешков в несколько рядов

True — включен,

False — выключен

HotTrack

Текст корешка выделяется ярким цветом при наведении указателя мыши

True — включен,

False — выключен

Style

Стиль объекта

tsTabs - стандартный вид, tsButtons - корешки имеют вид выпуклой кнопки, tsFlatButtons - корешки имеют вид плоских кнопок

TabPosition

Определяет место расположения ярлычков закладок

tpBottom - внизу,

tpLeft - слева,

tpRight - справа 

tpTop  вверху компонента

Свойство ActivePageIndex родительского объекта PageControll содержит номер открытой страницы (нумерация начинается с нуля). Свойство ActivePage, которое содержит не номер активной (видимой) страницы, а непосредственно ссылку на нее. Для переключения страниц можно использовать и это свойство, если заранее известно, какую страницу надо показать: PageControl1.ActivePage:=<Имя страницы>;

Текущее число страниц хранится в свойстве PageCount, а массив самих страниц - в свойстве Pages, которое не предназначено для изменения. Например, чтобы поменять название первой страницы в процессе работы программы, можно использовать следующий оператор:

PageControl1.Pages[0].Caption:='Новый заголовок';

Задание 3: Создать приложение, содержащее две страницы компонента PageControl (для плоских фигур вычислять периметр и площадь, для объемных - площадь основания и объем), ориентируясь на следующий вид формы:

 Рис.6

Плоские фигуры:

  1.  Равносторонний треугольник
  2.  Прямоугольный треугольник
  3.  Квадрат
  4.  Прямоугольник
  5.  Равнобедренная трапеция
  6.  Окружность
  7.  Параллелограмм
  8.  Ромб

Объемные фигуры:

  1.  Прямая призма
  2.  Прямоугольный параллелепипед
  3.  Куб
  4.  Правильная пирамида
  5.  Цилиндр
  6.  Конус
  7.  Шар (Площадь поверхности)


Работа с динамическими массивами

Вспомним, что под массивом мы понимаем множество индексированных однотипных элементов. Ранее мы работали со  статическими (фиксированной размерности) массивами.

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

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

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

Описание динамического  массива имеет вид:

Array of тип элемента;

Например, одномерный целочисленный динамический массив:

с: array of integer;

Для дальнейшей работы с динамическим массивом в необходимый момент используется стандартной функции SetLength(); например SetLength(с,10). Нумерация ячеек динамических массивов начинается с нуля, в остальном никаких особенностей в работе с ними нет. И в момент, когда такой массив больше не нужен, используется процедура Finalize(с) или с := NIL.

Лабораторная работа №2. Динамические массивы

В соответствии с указанным набором вариантов  создать приложение для решения задачи формирования и обработки одномерного динамического массива. Вывод содержимого массива осуществлять в StrigGrid.

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

Возможный вид формы:

 Рис…

Размер массива вводится пользователем и фактически не ограничен (ограничен оперативной памятью). Массив заполняется случайным образом в рамках диапазона [-(размерность+номер варианта); размерность+номер варианта]. Т.е. если пользователь ввел размерность 12 и у вас 20 вариант, диапазон значений массива должен принадлежать отрезку [-32;32].

Обработать все возможные исключительные ситуации.

Номер варианта состоит из трехзначного числа. Полученные индивидуальные задания формируются по цифрам варианта.

Задание 1

Вычислить  <1>  <2>  элементов  <3>  массива

Для каждого номера варианта постановка задачи конкретизируется по таблице задания: по первой цифре номера варианта записывается <1>, по второй цифре <2>, по третьей соответственно <3>.

Например, для варианта 123 постановка задачи имеет вид: Вычислить сумму положительных элементов всего массива.

Цифра

<1>

<2>

<3>

0

сумму

положительных

всего

1

произведение

принадлежащих [0; 10]

первой половины

2

среднее арифметическое значение

принадлежащих [3; 15]

второй половины

3

среднее квадратичное значение

принадлежащих [4; 20]

первой трети

4

среднее гармоническое значение

четных по номеру

последней трети

5

среднее геометрическое значение

нечетных по номеру

второй трети

6

среднее степени d значение

четных по значению

первой половины

7

среднее арифметическое значение

нечетных по значению

второй половины

8

среднее квадратичное значение

принадлежащих [5; 20]

первой трети

9

среднее гармоническое значение

каждых третьих

последней трети

Необходимые расчетные формулы:

Обозначим множество данных .

Название

Формула

Среднее арифметическое

Среднее квадратичное (или квадратическое)

Среднее геометрическое положительных чисел

Среднее гармоническое положительных чисел

Среднее степени d (или среднее обобщенное) положительных чисел

Задание 2

Определить  <1>  среди  <2>  элементов  <3>  массива

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

Например, для варианта 123 постановка задачи имеет вид: Определить наибольший элемент среди  положительных  элементов  всего  массива.

Цифра

<1>

<2>

<3>

0

наибольший элемент

положительных

всего

1

минимальное значение

принадлежащих [0; 10]

первой половины

2

первый и второй максимум

принадлежащих [3; 15]

второй половины

3

элемент, самый близкий к заданному числу d

принадлежащих [4; 20]

первой трети

4

наименьший по модулю элемент

четных по номеру

последней трети

5

наименьший элемент

нечетных по номеру

второй трети

6

максимальное значение

четных по значению

первой половины

7

первый и второй минимум

нечетных по значению

второй половины

8

наибольший по модулю элемент

принадлежащих [5; 20]

первой трети

9

значение, по модулю самое близкое к заданному числу d

каждых третьих

последней трети

Задание 3

Упорядочить <1> элементы <2> массива по <3> значений

Все элементы, удовлетворяющие заданным условиям, записываются в новый, вспомогательный массив, затем этот массив упорядочивается по заданному правилу. Для проверки правильности упорядочения всего массива или его части необходимо вывести его в StrigGrid на странице “Задание 3” на форме.

Например, для варианта 123 постановка задачи имеет вид: Упорядочить нечётные по номеру элементы всего массива по возрастанию значений.

Цифра

<1>

<2>

<3>

0

нечётные по номеру

всего

возрастанию

1

нечётные по значению

первой половины

убыванию абсолютных

2

чётные по номеру

второй половины

возрастанию обратных

3

чётные по значению

первой трети

убыванию квадратов

4

отрицательные

последней трети

возрастанию модулей обратных

5

принадлежащие

[-10; 10]

второй трети

убыванию

6

каждые третьи

первой половины

возрастанию абсолютных

7

каждые вторые

второй половины

убыванию обратных

8

ненулевые

первой трети

возрастанию квадратов

9

положительные

последней трети

убыванию модулей обратных


 

А также другие работы, которые могут Вас заинтересовать

38006. ОПРЕДЕЛЕНИЕ СОСТАВА КОМПЛЕКСНЫХ СОЕДИНЕНИЙ МЕТОДОМ НАСЫЩЕНИЯ 42 KB
  При этом выход единственного комплекса увеличивается соответственно увеличивается и оптическая плотность раствора измеренная на длине волны максимального поглощения комплекса. Точка пересечения прямых соответствует стехиометрическому соотношению СR CM = M n для комплекса состава MnRM. В случае образования малопрочного комплекса точку пересечения находят экстрополяцией линейных участков кривой. Применяется в тех случаях когда мы не можем надежно определить точку излома малопрочный комплекс побочные процессы при насыщении сдвиг рН...
38007. Изучение устойчивости комплексного соединения в растворе при разбавлении и при введении посторонних веществ 197.5 KB
  Теоретическое введение Предположим что мы определяем металл М по фотометрической реакции М iR = MRi измеряя поглощение образующегося комплекса на длине волны λ остальные компоненты и комплексы М и с R стехиометрии на этой длине не поглощают. МRi = βRi [R]` φ Обозначая индексами Л и П величины относящиеся соответственно к пробе и эталону запишем : `MRi = ``MRi...
38008. Диагностика и лечение дисфагии при заболеваниях центральной нервной системы. Клинические рекомендации 352 KB
  При отборе публикаций, как потенциальных источников доказательств, использованная каждым исследователем методология изучалась для того, чтобы убедиться в ее валидности. Результат изучения влияет на уровень доказательств, присваеваемый публикации, что в свою очередь влияет на силу, вытекающих из нее рекомендаций.
38009. Методы защиты речевой конфиденциальной информации от утечки по воздушному акустическому каналу 747.5 KB
  Получить практические навыки по: работе с измерительными приборами: генератором среднегеометрических частот октавных полос речевого сигнала шумомером акустическими излучателями прибором для определения уровня звукового давления акустического сигнала на базе ПЭВМ; расчету параметров несущих конструкций определяющих возможность образования канала утечки речевой информации их анализу и разработке предложений по повышению уровня защищённости защищаемого помещения пассивными методами защиты; работе с нормативными документами...
38010. ИССЛЕДОВАНИЕ СОРТИРОВОК РАЗЛИЧНЫХ ТИПОВ 156 KB
  Задача работы: овладеть навыками написания программ при исследовании различных методов сортировки. Теория Среди улучшенных методов сортировки встречаются как доработанные прямые методы так и методы уже более высокого уровня т. с новой идеей где одним из элементов сортировки является прямой метод.
38011. ИССЛЕДОВАНИЕ АЛГОРИТМОВ НА ГРАФАХ 1.78 MB
  Краткая теория Представление графов Для представления графов чаще всего применяется матрица смежности – это матрица [n n] где n число элементов а элементы [i j] могут быть равны значению 0 или x – flse или 1 – true в зависимости от того присутствует ли дуга из вершины i в вершину j рис.n] of integer то можно составить оператор L_SMEG_V который определяет множество смежных вершин для заданной вершины v и записывает их в вектор типа ms. function L_SMEG_Vv2 n1:integer; vr k1:integer:ms; {v2 – это вершина для которой ищут все...
38012. ОПРЕДЕЛЕНИЕ ЭФФЕКТИВНОСТИ И СЛОЖНОСТИ ИССЛЕДУЕМЫХ АЛГОРИТМОВ 146.5 KB
  Краткая теория Теория сложности алгоритмов Сложность алгоритма характеристика алгоритма определяющая зависимость времени выполнения программы описывающей этот алгоритм от объёма обрабатываемых данных. Формально определяется как порядок функции выражающей время работы алгоритма. Эффективность алгоритма – временная сложность в самом худшем случае Ofn или просто fn.
38013. ИЗУЧЕНИЕ БЕТА –АКТИВНОСТИ 145.5 KB
  10 ЛАБОРАТОРНАЯ РАБОТА № 95 ИЗУЧЕНИЕ БЕТА –АКТИВНОСТИ Цель работы Изучение явления бета распада определение длины пробега –частиц и максимальной энергии –частиц радиоактивного источника. Например радиоактивный изотоп водорода испускает –частицы с Еmx = 18 кэВ а изотоп азота – с Еmx = 166 МэВ. Типичная кривая распределения –частиц по энергиям изображена на рис.1 где dN dE– число –частиц имеющих полную энергию от Е до Е dЕ Еmx –максимальная энергия –частиц данного радиоактивного вещества.
38014. Изучение нормального закона распределения случайных величин (закон Гаусса) на основе опытных данных 190 KB
  Составить интервальную таблицу частот статистический интервальный ряд распределения: а Разбить весь диапазон случайных величин на k интервалов. Строки 13 Таблицы 3 называют статистическим интервальным рядом распределения. Интервальный ряд распределения изобразить графически в виде гистограммы.