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

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

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

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


 

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

22208. ИССЛЕДОВАНИЕ КАТУШКИ СО СТАЛЬНЫМ СЕРДЕЧНИКОМ И ФЕРРОРЕЗОНАНСНОГО СТАБИЛИЗАТОРА 33.72 KB
  Изучить влияние магнитного насыщения и нелинейной индуктивности катушки на электрический резонанс в последовательном колебательном контуре и рассмотреть применение явления феррорезонанса напряжений.
22209. Клееные балки 785.5 KB
  Существующие виды клееных балок можно разделить на две основные группы: 1 дощатоклееные балки состоящие из склеенных между собой досок; 2 клеефанерные балки состоящие из дощатых поясов и приклеенных к ним стенок из водостойкой фанеры. Дощатоклееные балки применяют главным образом в качестве основных несущих конструкций покрытия сельских общественных и промышленных зданий используют их также в виде прогонов пролеты и нагрузки которых не позволяют применять прогоны цельного сечения а также в виде главных балок перекрытий мостов и...
22210. Рамные конструкции 1.42 MB
  Деревянные рамы обычно применяют однопролетными при пролетах 1230 м. В мировой практике строительства встречаются рамы пролетом до 60 м. Рамы классифицируются по нескольким признакам По статической схеме рамы могут быть 1 трехшарнирными статически определимыми Рисунок 1 – Трехшарнирная рама 2 двухшарнирными жестко опертыми такие рамы являются статически неопределимыми Рисунок 2 – Двухшарнирная жестко опертая рама 3 двухшарнирными шарнирно опертыми тоже статически неопределимые Рисунок 3 – Двухшарнирная шарнирно опертая рама...
22211. Арки. Общая характеристика. Схемы арок, конструкция и расчет 1.47 MB
  Схемы арок конструкция и расчет Арки также как и рамные относятся к распорным конструкциям т. Арки используются в качестве основных несущих конструкций зданий различного назначения. В зарубежном строительстве с успехом применяют арки пролетом до 100 м и более.
22212. Деревянные стойки 1.37 MB
  Нагрузки воспринимаемые плоскими несущими конструкциями покрытия балки арки покрытия фермы передаются на фундамент через стойки или колонны. В зданиях с деревянными несущими конструкциями покрытия целесообразно применять деревянные стойки хотя иногда возникает необходимость установки железобетонные или металлические колонны. Деревянные стойки являются сжатыми или сжатоизгибаемыми несущими конструкциями опирающимися на фундаменты.
22213. Плоские сквозные конструкции. Фермы - основные виды и расчет 552 KB
  Фермы основные виды и расчет Сквозными несущими деревянными конструкциями называются такие в которых пояса соединены друг с другом не сплошной стенкой из досок или фанеры как в плоских сплошных конструкциях а решеткой состоящей из отдельных стержней – раскосов и стоек. Сквозные конструкции бывают: 1 балочные фермы; 2 распорные арки и рамы; 3 решетчатые стойки. Фермы применяют как правило в статически определимых схемах в отношении как опорных закреплений так и решения решетки. В зависимости от конструктивных особенностей...
22214. Связи. Подбор сечений элементов фермы 154 KB
  Связи обеспечивают общую устойчивость здания воспринимают ветровые и крановые тормозные нагрузки и передают их на фундамент. В зданиях с деревянным каркасом применяют два основных вида связей: а связевые фермы располагаемые вертикально наклонно или горизонтально поперек здания по наружным поясам или наружному контуру несущих конструкций; б продольные связи тоже фермы плоскость которых располагается перпендикулярно плоскости несущих конструкций; эти связи закрепляют нижние пояса или внутреннюю кромку несущих конструкций. Эти связи...
22215. Пространственные деревянные конструкции – основные формы, области применения и основные расчёты 786.5 KB
  При расчёте вычисляют нормальные продольные и сдвигающие усилия а также изгибающие моменты от собственного веса снега и ветра. Принимается следующее распределение внутренних усилий между элементами оболочки: нормальные продольные усилия N1 воспринимаются продольным настилом и усиленными в поясах частями его сдвигающие усилия Т1 воспринимаются двойным косым настилом изгибающие моменты М1 и М2 воспринимаются рёбрами жёсткости и поперечным настилом. Расчёт куполовоболочек с достаточной точностью ведётся по безмоментной теории...
22216. Пластмассы, как материал для строительных конструкций. Основные виды конструкционных пластмасс и области их применения 138 KB
  Пластмассы в большинстве своем представляют многокомпонентные смеси. Наполнители – компоненты вводимые в пластмассы с целью улучшения их механических и технологических свойств повышение теплостойкости снижения стоимости. В зависимости от вида смол под влиянием на них температуры пластмассы делятся на два вида: а термопластичные пластмассы или термопласты на основе термопластичных смол; б термореактивные реапласты на основе термореактивных смол.