- •Индивидуальное задание
- •Содержимое технического задания
- •Схемы алгоритмов
- •Функция ввода данных
- •Программный код библиотеки
- •Программный код событийной процедуры
- •Результаты работы программы
- •Результаты работы программы
- •Список использованных источников
- •Лабораторная работа №2 «Одномерные массивы»
- •Задание
- •Cодержимое технического задания
- •Функция генерации динамического массива
- •Программный код dll-библиотеки
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №3
- •Задание
- •Cодержимое технического задания
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №4
- •Задание
- •Cодержимое технического задания
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №5
- •5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •6. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
- •Схемы алгоритмов.
- •Программный код dll-библиотеки
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №6
- •4. Подготовить тесты для контрольного решения задачи. Показать их
- •5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №7
- •Индивидуальное задание
- •Содержание тз
- •4. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •5. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
- •3 Разработка схем алгоритмов
- •4 Разработка программного кода
- •5 Результаты выполнения проекта
5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
6. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
Схемы алгоритмов.
На рисунках 1-5 изображены схемы алгоритмов пользовательских функций
Рисунок 1 — Схема нахождения первого отрицательного элемента в массиве.
Рисунок 2 — Схема алгоритма нахождения первого четного элемента в массиве.
Рисунок 3 — Схема алгоритма сортировки бинарными вставками.
Рисунок 4 — Схема алгоритма «Шейкер-сортировки»
Рисунок 5 — Схема алгоритма событийной процедуры.
Программный код 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;
}
}
Программный код событийной процедуры
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