Добавил:
Тот самый Малыхя на партах и на досках Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛРТП.docx
Скачиваний:
0
Добавлен:
13.03.2024
Размер:
1.83 Mб
Скачать

5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.

6. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.

  1. Схемы алгоритмов.

На рисунках 1-5 изображены схемы алгоритмов пользовательских функций

Рисунок 1 — Схема нахождения первого отрицательного элемента в массиве.

Рисунок 2 — Схема алгоритма нахождения первого четного элемента в массиве.

Рисунок 3 — Схема алгоритма сортировки бинарными вставками.

Рисунок 4 — Схема алгоритма «Шейкер-сортировки»

Рисунок 5 — Схема алгоритма событийной процедуры.

  1. Программный код dll-библиотеки

int Class1::mas5(int* mas, int n) {

int flag = 0;

for (int i = 0; flag < 1 && i <= n; i++)

if ((i <= n) && (flag == 0)) {

if (mas[i] < 0) {

flag = 1;

return mas[i];

}

}

}

int Class1::mas8(int* mas, int n) {

int flag = 0;

for (int i = 0; flag < 1 && i <= n; i++)

if ((i <= n) && (flag == 0)) {

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

flag = 1;

return mas[i];

}

}

}

void Class1::mas10(int* mas, int n)

{

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

int x = mas[i];

int left = 0;

int right = i - 1;

int i2 = -1;

while (left <= right) {

int m = (left + right) / 2;

if (mas[m] > x) {

i2 = m;

right = m - 1;

}

else {

left = m + 1;

}

}

if (i2 != -1) {

for (int j = i - 1; j >= i2; j--) {

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

}

mas[i2] = x;

}

}

}

void Class1::mas14(int* mas, int n) {

int flag = 1;

int start = 0;

int end = n - 1;

while (flag == 1) {

flag = 0;

for (int i = start; i < end; ++i) {

if (mas[i] > mas[i + 1]) {

int temp = mas[i];

mas[i] = mas[i + 1];

mas[i + 1] = temp;

flag = 1;

}

}

if (flag == 0) {

break;

}

flag = 0;

for (int i = end - 1; i >= start; --i) {

if (mas[i] > mas[i + 1]) {

int temp = mas[i];

mas[i] = mas[i + 1];

mas[i + 1] = temp;

flag = 1;

}

}

++start;

--end;

}

}

  1. Программный код событийной процедуры

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {

int k, l, d;

String^ g = Interaction::InputBox("Введите количество элементов в массиве", "Ввод", "", -1, -1);

int n = Convert::ToInt16(g);

int* mas = new int[n];

Class1::enter_mas(mas, n);

k = Class1::mas5(mas, n);

d = Class1::mas8(mas, n);

Class1::output_mas(mas, n, dataGridView1);

label7->Text = "первый отрицательный элемент: " + Convert::ToString(k);

label8->Text = "первый четный элемент: " + Convert::ToString(d);

Class1::mas10(mas, n);

Class1::output_mas(mas, n, dataGridView2);

}

private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {

String^ g = Interaction::InputBox("Введите количество элементов в массиве", "Ввод", "", -1, -1);

int n = Convert::ToInt16(g);

int* mas = new int[n];

Class1::enter_mas(mas, n);

Class1::output_mas(mas, n, dataGridView1);

Class1::mas14(mas, n);

Class1::output_mas(mas, n, dataGridView2);

}

};

}

На рисунке 5 представлена функция ввода количества элементов в массиве

Рисунок – 5. Ввод количества элементов в массиве

Результат работы алгоритмов №5, №8, №10 представлен на рисунке 6

Рисунок 6 – Результат работы алгоритмов №5, №8, №10

Результат работы алгоритма №14 представлен на рисунке 7

Рисунок 7 – Результат работы алгоритма №14