Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР15-С++24-мая-2012.doc
Скачиваний:
23
Добавлен:
23.09.2019
Размер:
1.07 Mб
Скачать

2.4.2.2. Пример для варианта 30

Написать программу перестановки минимального и максимального элементов двумерного массива размером NxM. Память для массива выделить динамически.

2.4.2.3. Программа

//Лабораторная работа № 15

//Задание № 2

//Выполнила Петрова А.А.

#include<conio.h>

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

int main()

{

double **a, tmp; // указатель исходных одвумерного массива a

int i, j, n, m, imin, jmin, imax, jmax;

cout << "Vvedite razmer massiva a: n, m" << endl;

cin >> n >> m;

a = new double*[n]; // Выделение памяти под массив указателей

for(i=0; i<n; i++) // Выделение памяти под соответствующие

a[i] = new double[m]; // этим указателям строки матрицы

for (i=0; i<n; i++) // Ввод двумерного массива

for (j=0; j<m; j++)

{

cout << "Vvedite a[" << i << "][" << j << "]: " ;

cin >> a[i][j];

}

cout << "Мassiv A:" << endl; // Вывод двумерного массива

for (i=0; i<n; i++)

{

for (j=0; j<m; j++)

cout << setw (9) << a[i][j] << " ";

cout << endl;

}

imin=jmin=imax=jmax=0; // Поиск индексов минимального и

for (i=0; i<n; i++) // максимального элементов массива

for (j=0; j<m; j++)

{

if (a[i][j]<a[imin][jmin]) { imin=i;

jmin=j;

}

if (a[i][j]>a[imax][jmax]) { imax=i;

jmax=j;

}

}

tmp = a[imin][jmin]; // Перестановка элементов

a[imin][jmin] = a[imax][jmax];

a[imax][jmax] = tmp;

cout << "Result :" << endl; // Вывод результата

for (i=0; i<n; i++)

{

for (j=0; j<m; j++)

cout << setw (9) << a[i][j] << " ";

cout << endl;

}

cout <<"Нажмите любую клавишу...";

getch();

for(i=0; i<n; i++) // Освобождение выделенной памяти

delete [] a[i];

delete []a;

a = NULL;

return 0;

}

2.4.2.4. Тестирование

2.4.3. Задание 3. Динамические одномерные массивы Викентьева

Сформировать динамический одномерный массив, заполнить его случайными числами и вывести на печать.

Выполнить указанное в варианте задание и вывести полученный массив на печать.

Порядок выполнения работы:

1. Ввести размер массива;

2. Сформировать массив с помощью операции new или библиотечных функций malloc (calloc);

3.Заполнить массив (можно с помощью датчика случайных чисел);

4.Выполнить задание варианта, сформировать новый массив(ы)-результат(ы);

5.Напечатать массив(ы)-результат(ы);

6.Удалить динамические массивы с помощью операции delete или библиотечной функции free.

2.4.3.1. Варианты заданий

Таблица 15.3

Задание

1

Удалить первый четный элемент

2

Удалить первый отрицательный элемент

3

Удалить элемент с заданным ключом (значением)

4

Удалить элемент равный среднему арифметическому элементов массива

5

Удалить элемент с заданным номером

6

Удалить N элементов, начиная с номера K

7

Удалить все четные элементы

8

Удалить все элементы с четными индексами

9

Удалить все нечетные элементы

10

Удалить все элементы с нечетными индексами

11

Добавить элемент в начало массива

12

Добавить элемент в конец массива

13

Добавить К элементов в начало массива

14

Добавить К элементов в конец массива

15

Добавить К элементов, начиная с номера N

16

Добавить после каждого отрицательного элемента его модуль

17

Добавить после каждого четного элемента элемент со значением 0

18

Добавить по К элементов в начало и в конец массива

19

Добавить элемент с номером К

20

Удалить элементы, имеющие значение больше заданного

21

Удалить N элементов, начиная с номера K

22

Удалить все четные элементы

23

Удалить все элементы с четными индексами

24

Удалить все нечетные элементы

25

Добавить после каждого нечетного элемента элемент со значением 1

26

Удалить максимальный элемент

27

Удалить минимальный элемент

28

Удалить элементы, имеющие значение меньше заданного

29

Все отрицательные элементы заменить их модулями

30

Удалить элемент с заданным номером

2.4.3.2. Пример обработки динамического массива для варианта 30

Удалить элемент с заданным номером

2.4.3.3. Программа

2.4.4.4. Тестирование

2.4.4. Задание 4. Динамические двумерные массивы

Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать.

Выполнить указанное в варианте задание и вывести полученный массив на печать.

Порядок выполнения работы:

1. Ввести размер массива;

2. Сформировать массив с помощью операции new или библиотечных функций malloc (calloc);

3.Заполнить массив (можно с помощью датчика случайных чисел);

4.Выполнить задание варианта, сформировать новый массив(ы)-результат(ы);

5.Напечатать массив(ы)-результат(ы);

6.Удалить динамические массивы с помощью операции delete или библиотечной функции free.