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

ат 22 2з пр3

.docx
Скачиваний:
2
Добавлен:
20.01.2024
Размер:
118.42 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

СТАРООСКОЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ

ИМ. А.А. УГАРОВА

(филиал) федерального государственного автономного образовательного

учреждения высшего образования

«Национальный исследовательский технологический университет «МИСиС»

​Лабораторная работа № 3 

на тему 

«Работа с одномерными массивами»

​Выполнил: Студент группы № АТ 22-2з 

​. 

 

​Старый Оскол, 2024

Цель работы:

1) Получение практических навыков при работе с массивами.

2) Получение практических навыков при работе с указателями.

Вариант 8

Задание

1) Сформировать массив из n элементов с помощью датчика случайных чисел (n задается пользователем с клавиатуры).

2) Распечатать полученный массив.

3) Выполнить удаление указанных элементов из массива.

4) Вывести полученный результат.

5) Выполнить добавление указанных элементов в массив.

6) Вывести полученный результат.

7) Выполнить перестановку элементов в массиве.

8) Вывести полученный результат.

9) Выполнить поиск указанных в массиве элементов и подсчитать коли-чество сравнений, необходимых для поиска нужного элемента.

10) Вывести полученный результат.

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

12) Вывести полученный результат.

13) Выполнить поиск указанных элементов в отсортированном массиве и подсчитать количество сравнений, необходимых для поиска нужного эле-мента.

14) Вывести полученный результат.

#include <iostream>

#include <cstdlib>

using namespace std;

const int Size = 100;

int main()

{

int mas[Size];

int n;

cout << "Enter n: ";

cin >> n;

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

mas[i] = rand() % 10;

cout << "1. Array:" << endl;

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

cout << mas[i] << " ";

cout << endl;

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

if (mas[i] % 2 != 0) {

for (int j = i; j < n - 1; j++) {

mas[j] = mas[j + 1];

}

n--;

i--;

}

cout << "2. Array:" << endl;

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

cout << mas[i] << " ";

cout << endl;

int* _mas = new int[Size];

int k;

cout << "Enter k: ";

cin >> k;

if (k > (Size - n)) {

cout << "ERROR k > " << Size - n << ".\n";

exit(EXIT_FAILURE);

}

for (int i = 0; i < k; i++)

*(_mas + i) = rand() % 10;

n += k;

for (int i = n + k - 1; i >= k; i--)

mas[i] = mas[i - k];

for (int i = 0; i < k; i++)

mas[i] = *(_mas + i);

delete[] _mas;

cout << "3. Array:" << endl;

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

cout << mas[i] << " ";

cout << endl;

for (int i = 0, j = n - 1; i < j; ++i, --j) {

int t = mas[i];

mas[i] = mas[j];

mas[j] = t;

}

cout << "4. Array:" << endl;

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

cout << mas[i] << " ";

cout << endl;

int count_iter = 0;

int index_ch = 0;

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

if (mas[i] % 2 == 0) {

index_ch = i;

break;

}

else count_iter++;

cout << "5. Elem: " << mas[index_ch] << endl

<< "Kolvo iteraciy: " << count_iter << endl;

for (int i = 1; i < n; i++)

for (int j = n - 1; j >= i; j--)

if (mas[j] < mas[j - 1]) {

int temp = mas[j];

mas[j] = mas[j - 1];

mas[j - 1] = temp;

}

cout << "6. Array:" << endl;

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

cout << mas[i] << " ";

cout << endl;

int find_elem, find_index;

count_iter = 0;

cout << "Enter find: ";

cin >> find_elem;

int first = 0;

int last = n - 1;

int mid;

while (true) {

mid = (first + last) / 2;

if (mas[mid] == find_elem) {

find_index = mid;

break;

}

else {

if (first > last) {

cout << "Not element." << endl;

break;

}

else if (mas[mid] > find_elem)

last = mid;

else

first = mid + 1;

count_iter++;

}

}

cout << "7. Index: " << find_index + 1 << endl

<< "Kolvo iteraciy: " << count_iter << endl;

return 0;

}

Соседние файлы в предмете Основы программирования