86874

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

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

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

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

Русский

2015-04-11

75.09 KB

4 чел.

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

Компонент 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

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

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

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


 

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

63754. Сущность конституции, ее социальное значение. Структура Конституции РБ 15.04 KB
  Конституция - это основной закон государства закрепляющий организацию гос.власти и определяющий ее отношение с обществом в целом и с каждым из граждан.
63755. Порядок формирования и компетенция государственных органов Республики Беларусь (Национальное собрание Республики Беларусь, Совет Министров Республики Беларусь) 14.81 KB
  Президент гарантирует реализацию основных направлений внутренней и внешней политики представляет Беларусь в отношениях с другими государствами принимает меры по охране суверенитета республики ее национальной безопасности и территориальной целостности.
63756. Правовой статус Президента Республики Беларусь 17.28 KB
  Президент Республики Беларусь является Главой государства гарантом Конституции Республики Беларусь прав и свобод человека и гражданина. Президент принимает меры по охране суверенитета Республики Беларусь ее национальной безопасности и территориальной целостности обеспечивает политическую...
63759. Понятие и признаки административного правонарушения. Состав административного правонарушения. Отличие административного правонарушения от иных видов правонарушений 13.53 KB
  Как и состав преступления состав административного правонарушения образуют четыре элемента: Объект правонарушения те общественные отношения которые оно нарушает.
63760. Понятие и сущность административной ответственности 13.87 KB
  Административная ответственность выражается в применении должностным лицом предусмотренных действующими нормами административного права конкретных административно-правовых санкций к физическим и юридическим лицам виновным в совершении особого рода правонарушения...
63761. Административное взыскание: виды, порядок применения 14.23 KB
  За совершение административного правонарушения Кодексом про административные правонарушения предусмотрены такие виды административных взысканий: предупреждение штраф платное изъятие предмета который стал предметом совершения или непосредственным объектом...