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

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

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

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


 

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

58440. Все починається з мами 45.5 KB
  Мета. Удосконалювати навички виразного читання, збагачувати активний словниковий запас; виховувати любов і повагу до матері красою художнього слова.
58441. Повторення теми «Одяг» 32 KB
  Мета. Повторити ЛО теми. Навчати діалогічного мовлення за темою. Практикувати у відповіді на запитання Whose is this? Увести та активізувати присвійні займенники в абсолютному відмінку
58443. Ляльки. Одяг 68 KB
  Take the short dress and colour it blue. Take the big boots and colour them black. Take the small shoes and colour them red. Take the new trousers and colour them grey.
58444. Герої мультфільмів 36 KB
  Jane came to visit Vicky. Look at picture b. What are they doing? Do you know this cartoon? Do you like it? Who are the characters in this cartoon? Do Jane and Vicky like it?icture. This is Sue again. Whats she wearing?
58445. Той ще не музика, хто в дудку дме. А. Григорук Той ще не музика, хто в дудку дме 35 KB
  У яку групу обєднаємо слова останньої групи Музичні інструменти. Як ви їх розумієте Прочитайте слова і вирази правильно наголошуючи один одному напівголосно. Поясніть її слова. Чому він винувато посміхнувся Чи підтримали їхню думку інші члени сімї
58446. Посилення колоніальної політики Російської імперії. Спроби ліквідації гетьманства 75.5 KB
  Спроби ліквідації гетьманства Становище в Україні після Полтавської битви. Заходи щодо економіки Гетьманщини. Україна від гетьманування Івана Скоропадського до Правління гетьманського уряду. Гетьман Іван Скоропадський.
58447. ПОДБОР И РАСЧЕТ ОСНОВНЫХЭЛЕМЕНТОВ ОДНОСТУПЕНЧАТОЙ ПАРОКОМПРЕССИОННОЙ ХОЛОДИЛЬНОЙ МАШИНЫ 237.93 KB
  Проведем тепловой, конструктивный и гидромеханический расчет теплообменных аппаратов: конденсатора и испарителя. Конденсатор выберем горизонтальный кожухотрубный с водяным охлаждением. Испаритель выбираем горизонтальный кожухотрубный затопленного типа.
58448. Регуляторні системи організму людини 33.5 KB
  Продовжити знайомити учнів з фізіологічними та функціональними системами організму людини; особливу увагу звернути на регуляції функцій та регуляторні системи організму; формувати уявлення про організм як цілісну саморегулювальну систему.