Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы_по_проге_Берлин / Лабораторная работа 3

.docx
Скачиваний:
19
Добавлен:
11.02.2015
Размер:
20.79 Кб
Скачать

Лабораторная работа №3. Одномерные массивы

Теория.

Массив - это тип данных, который используется для представления последовательности однородных значений. Массив представляет собой группу элементов одного типа. Объявляется массив следующим образом:

тип название[количество_элементов];

Квадратные скобки ([]) говоря о том, что название – имя массива, а число, заключенное в скобки, указывает количество элементов массива. Нумерация элементов массива начинается с нуля, поэтому название[0] является первым, а название[количество_элементов-1] последним элементом массива. Отдельный элемент массива определяется при помощи его номера или индекса. Элементы массива размещаются в памяти последовательно, друг за другом. Имя массива является указателем на первый элемент массива.

В С++ операции new и delete предназначены для динамического распределения памяти компьютера. Операция new выделяет память из области свободной памяти, а операция delete высвобождает выделенную память. Выделяемая память, после её использования должна высвобождаться, поэтому операции new и delete используются парами. Даже если не высвобождать память явно, то она освободится ресурсами ОС по завершению работы программы. Рекомендую все-таки не забывать про операцию delete.

Как было сказано раньше, массивы также могут быть динамическими. Чаще всего операции new и delete применяются, для создания динамических массивов, а не для создания динамических переменных. Рассмотрим фрагмент кода, создания одномерного динамического массива:

// объявление одномерного динамического массива на 10 элементов:

float *ptrarray = new float [10];

// где ptrarray – указатель на выделенный участок памяти под массив вещественных чисел типа float

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

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

// высвобождение памяти отводимой под одномерный динамический массив:

delete [] ptrarray;

После оператора delete ставятся квадратные скобочки, которые говорят о том, что высвобождается участок памяти, отводимый под одномерный массив.

Задание.

1. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  • номер минимального по модулю элемента массива;

  • сумму модулей элементов массива, расположенных после первого отрицательного элемента.

Сжать массив, удалив из него все элементы, величина которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.

2. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  • номер максимального по модулю элемента массива;

  • сумму элементов массива, расположенных после первого положительного элемента.

Преобразовать массив таким образом, чтобы сначала располагались элементы, целая часть которых лежит и интервале [a,b], а потом - все остальные.

3. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  • количество элементов массива, лежащих в диапазоне от А до В;

  • сумму элементов массива, расположенных после максимального элемента.

Упорядочить элементы массива по убыванию модулей.

4. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  • количество элементов массива, равных нулю;

  • сумму элементов массива, расположенных после минимального элемента.

Упорядочить элементы массива по возрастанию модулей.

5. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  • количество элементов массива, больших С;

  • произведение элементов массива, расположенных после максимального по модулю элемента.

Преобразовать массив таким образом, чтобы сначала располагались отрицательные элементы, а потом - все положительные (элементы, равные нулю считать положительными).

6. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  • количество отрицательных элементов массива;

  • сумму модулей элементов массива, расположенных после минимального по модулю элемента.

Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.

7. В одномерном массиве, состоящем из n целочисленных элементов, вычислить:

  • количество положительных элементов массива;

  • сумму элементов массива, расположенных после последнего элемента равного нулю.

Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает единицу, а потом - все остальные.

8. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  • количество элементов массива, меньших С;

  • сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.

Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального, не более чем на 20%, а потом - все остальные.

9. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  • произведение отрицательных элементов массива;

  • сумму положительных элементов массива, расположенных до максимальною элемента.

Изменить порядок следования элементов в массиве на обратный.

10. В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  • произведение положительных элементов массива;

  • сумму элементов массива, расположенных до минимального элемента.

Упорядочить по возрастанию отдельно элементы, стоящие на четных местах и элементы, стоящие на нечетных местах.