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

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

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

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


 

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

33233. Шунт 13.32 KB
  Устройство и принципы работы датчиков движения и присутствия Датчики движения и присутствия автоматически включают выключают освещение в помещении в зависимости от интенсивности естественного потока света и или присутствия людей. Датчики движения более просты по конструкции и реагируют только на активные движения например идущего человека.
33234. Электрическая цепь, Устройство трансформатора 13.12 KB
  Электрической цепью называется совокупность устройств и объектов образующих путь для электрического тока электромагнитные процессы в которых могут быть описаны с помощью понятий об электрическом токе ЭДС электродвижущая сила и электрическом напряжении. trnsformo преобразовывать это статическое электромагнитное устройство имеющее две или более индуктивно связанных обмоток на какомлибо магнитопроводе и предназначенное для преобразования посредством электромагнитной индукции одной или нескольких систем напряжений переменного тока в...
33235. Зако́н О́ма 13.08 KB
  закон Ома для полной цепи: сила тока в полной цепи равна электродвижущей силе источника деленной на сумму сопротивлений однородного и неоднородного участков цепи.
33236. Последовательное и параллельное соединения в электротехнике 13.47 KB
  Режим при котором вторичная обмотка трансформатора разомкнута а на зажимы первичной обмотки подано переменное напряжение называется холостым ходом трансформатора. Если к первичной обмотке подвести напряжение U1 по ней потечет ток который обозначим I0. Магнитный поток Ф возбуждаемый первичной обмоткой индуктирует во вторичной обмотке э. Тот же самый магнитный поток индуктирует в первичной обмотке э.
33237. Первый закон Кирхгофа 13.56 KB
  2Сердечник статора набирается из стальных пластин толщиной 035 или 05 мм. В продольные пазы статора укладывают проводники его обмотки которые соответствующим образом соединяют между собой образуя трехфазную систему. Для подключения обмоток статора к трехфазной сети они могут быть соединены звездой или треугольником что дает возможность включать двигатель в сеть с двумя различными линейными напряжениями. Для более низких напряжений указанных на щитке обмотки статора соединяются в треугольник для более высоких в звезду.
33238. Работа электрического тока 13.09 KB
  Мощность электрического тока показывает работу тока совершенную в единицу времени и равна отношению совершенной работы ко времени в течение которого эта работа была совершена.
33239. Второй закон Кирхгофа 13.06 KB
  В любом замкнутом контуре электрической цепи алгебраическая сумма ЭДС равна алгебраической сумме падений напряжений на всех его участках
33240. Магни́тное по́ле 13.55 KB
  Принцип работы асинхронного электродвигателя основан на взаимодействии вращающегося магнитного поля возникающего при прохождении трехфазного переменного тока по обмоткам обмоткам статора с током индуктированным полем статора в обмотках ротора в результате чего возникают механические усилия заставляющие ротор вращаться в сторону вращения магнитного поля при условии что частота вращения ротора n меньше частоты вращения поля n1 .
33241. Электромагнит 13.3 KB
  Обычно электромагнит состоит из обмотки и ферромагнитного сердечника который приобретает свойства магнита при прохождении по обмотке ток Регулирование скорости асинхронного двигателя Наиболее распространены следующие способы регулирования скорости асинхронного двигателя: изменение дополнительного сопротивления цепи ротора изменение напряжения подводимого к обмотке статора двигателя изменение частоты питающего напряжения а также переключение числа пар полюсов. Регулирование частоты вращения асинхронного двигателя путем введения...