Uploaded by dgwwdgwgwg

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

advertisement
ЛАБОРАТОРНАЯ РАБОТА №4
ДИНАМИЧЕСКИЕ МАССИВЫ
Для создания динамических переменных используют операцию new , определенную в
C ++:
указатель = new имя_типа[инициализатор];
где инициализатор – выражение в круглых скобках.
Операция new позволяет выделить и сделать доступным участок динамической
памяти, который соответствует заданному типу данных. Если задан инициализатор, то
в этот участок будет занесено значение, указанное в инициализаторе.
int* x=new int(5);
Для удаления динамических переменных используется операция delete,
определенная в C ++:
delete указатель;
где указатель содержит адрес участка памяти, ранее выделенный с помощью
операции new.
delete x;
Операция new при использовании с массивами имеет следующий формат:
new тип_массива
Такая операция выделяет для размещения массива участок динамической памяти
соответствующего размера, но не позволяет инициализировать элементы массива.
Операция new возвращает указатель, значением которого служит адрес первого
элемента массива. При выделении динамической памяти размеры массива должны
быть полностью определены.
//выделение динамической памяти 100*sizeof (int ) байт
int* a = new int[100];
Примеры использования::
1. int *a=new int[100];// выделение динамической памяти размером 100*sizeof(int)
байтов
2. double *b=new double[10];//выделение динамической памяти размером
10*sizeof(double) байтов
3. long(*ka)[4];//указатель на массив из 4 элементов типа long
kа=new[2][4];//выделение динамической памяти размером 2*4*sizeof(long) байтов
3. int**matr=(int**)new int[5][10];//еще один способ выделения памяти под
двумерный //массив
4. int **matr;
matr=new int*[4];//выделяем память под массив указателей int* их n элементов
for(int I=0;I<4;I++)
matr[I]=new int[6];//выделяем память под строки массива
Указатель на динамический массив затем используется при освобождении памяти с
помощью операции delete.
Примеры:
delete[] a;//освобождает память, выделенную под массив, если а адресует его начало
delete[] b;
delete[] ka;
for(I=0;I<4;I++)
delete [] matr[I];//удаляем строки
delete [] matr;//удаляем массив указателей
Ход выполнения лабораторной работы
Изучить теоретические сведения.
Внимательно изучить предоставленное задание соответствующее выданному
варианту.
Составить блок-схему алгоритма работы проектируемого программного средства.
Реализовать программное средство, удовлетворяющее поставленной задаче.
Подготовить отчет, содержащий анализ, подготовку, выполнение задачи и заключение.
Индивидуальные задания
Заполнение массива необходимо производить автоматически(рандомно).
Выполнить задание в соответствии с выданным вариантом.
1)
Задан одномерный массив а (n). Найти количество, все номера и
произведение элементов массива меньших 1.
2) Дано 2 массива х(n) и у(m). Сколько раз встречается второй элемент
первого массива х(n) во втором массиве у(m).
3) В каком из двух данных массивов р (n) q(n) больше отрицательных
элементов?
4) Дан массив p(n). Каждый положительный элемент в нем возвести в
квадрат. Остальные элементы оставить прежними.
5) Задан одномерный массив а (n). Найти номер последнего элемента
меньшего заданного числа betta, количество положительных элементов и
сумму элементов больших 3.
6) В каком из двух данных массивов р (n) q(n) больше положительных
элементов?
7) Дано 2 массива х(n) и у(m). Сколько раз встречается первый элемент
первого массива х(n) во втором массиве у(m).
8) Дан массив r(n). Каждый элемент равный 0 в нем заменить на 1.
Остальные оставить прежними.
9) Задан одномерный массив а (n). Найти номер последнего элемента
равного 5 и переставить его с первым элементом массива. Найти среднее
арифметическое элементов массива больших заданного числа alfa.
10) Задан одномерный массив а (n). Найти номер последнего положительного
элемента и переставить его с первым элементом массива. Найти
количество и сумму элементов отрицательных массива.
11) Дано 2 массива х(n) и у(m). Сколько раз встречается последний элемент
первого массива х(n) во втором массиве у(m).
12) В каком из двух данных массивов р (n) q(n) больше нулевых элементов?
13) Задан одномерный массив а (n). Найти все номера и среднее
арифметическое отрицательных элементов массива
14) Дано 2 массива х(n) и у(m). Сколько раз встречается второй элемент
второго массива у(m) в первом массиве х(n).
15) Дано 2 массива х(n) и у(m). Сколько раз встречается первый элемент
второго массива у(m) в первом массиве х(n).
16) В каком из двух данных массивов р (n) q(n) больше элементов, равных 1?
17) Дан массив b (n). Переписать в массив C(n) положительные элементы
массива b(n), умноженные на 5 (со сжатием, без пустых элементов
внутри) Затем упорядочить методом «выбора и перестановки» по
возрастанию новый массив.
18) Дан массив а (n). Переписать в массив b(n) только положительные
элементы массива а, умноженные на 3. (со сжатием., без пустых
элементов внутри) Затем упорядочить методом «выбора и перестановки»
по возрастанию новый массив.
19) Дан массив х (n). Переписать в массив y(n) отрицательные элементы
массива х, умноженные на 2. (со сжатием., без пустых элементов внутри)
Затем упорядочить методом «выбора и перестановки» по возрастанию
новый массив.
20) Дан массив b (n). Переписать в массив C(n) отрицательные элементы
массива b(n), умноженные на 4. (со сжатием., без пустых элементов
внутри) Затем упорядочить методом «выбора и перестановки» по
возрастанию новый массив.
21) Дан массив b (n). Переписать в массив C(n) положительные элементы
массива b(n), деленные на 5. (со сжатием., без пустых элементов внутри)
Затем упорядочить методом «выбора и перестановки» по возрастанию
новый массив.
22) Дан массив а (n). Переписать в массив b(n) только положительные
элементы массива а, деленные на 3 (со сжатием., без пустых элементов
внутри) Затем упорядочить методом «выбора и перестановки»по
возрастанию новый массив.
23) Дан массив х (n) . Переписать в массив y(n) отрицательные элементы
массива х деленные на 2. (со сжатием., без пустых элементов внутри)
Затем упорядочить по возрастанию новый массив.
24) Дан массив b (n) . Переписать в массив C(n) отрицательные элементы
массива b(n). (со сжатием., без пустых элементов внутри) Затем
упорядочить методом «выбора и перестановки»по возрастанию новый
массив.
25) Дан массив с (n). Переписать в массив х (n) все ненулевые элементы
массива, умноженные на 4. (со сжатием., без пустых элементов внутри)
Затем упорядочить методом «выбора и перестановки» по возрастанию
новый массив.
26) Дан массив с (n) . Переписать в массив х (n) все ненулевые элементы
массива, возведенные в квадрат. (со сжатием., без пустых элементов
внутри) Затем упорядочить методом «выбора и перестановки» по
возрастанию новый массив.
27) Дан массив с (n) . Переписать в массив х (n) все ненулевые элементы
массива. (со сжатием., без пустых элементов внутри) Затем упорядочить
методом «выбора и перестановки» по возрастанию новый массив.
28) Дан массив с (n) .Переписать в массив х ненулевые элементы массива с,
разделенные на 5. (со сжатием., без пустых элементов внутри). Затем
упорядочить методом «выбора и перестановки» по возрастанию новый
массив. 10
29)Дан массив b (n) . Переписать в массив C(n) корни квадратные из
положительных элементов массива b(n), деленные на 5. (со сжатием., без
пустых элементов внутри) Затем упорядочить методом «выбора и
перестановки» по возрастанию новый массив.
30) Дан массив b (n) . Переписать в массив C(n) корни квадратные из
положительных элементов массива b(n) (со сжатием., без пустых
элементов внутри). Затем упорядочить методом «выбора и
перестановки»по возрастанию новый массив.
31) Дан массив х (n) . Переписать в массив y(n) элементы массива х, большие
3. (со сжатием., без пустых элементов внутри) Затем упорядочить методом
«выбора и перестановки»по возрастанию новый массив.
Download