
- •Индивидуальное задание
- •Содержимое технического задания
- •Схемы алгоритмов
- •Функция ввода данных
- •Программный код библиотеки
- •Программный код событийной процедуры
- •Результаты работы программы
- •Результаты работы программы
- •Список использованных источников
- •Лабораторная работа №2 «Одномерные массивы»
- •Задание
- •Cодержимое технического задания
- •Функция генерации динамического массива
- •Программный код dll-библиотеки
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №3
- •Задание
- •Cодержимое технического задания
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №4
- •Задание
- •Cодержимое технического задания
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №5
- •5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •6. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
- •Схемы алгоритмов.
- •Программный код dll-библиотеки
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №6
- •4. Подготовить тесты для контрольного решения задачи. Показать их
- •5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №7
- •Индивидуальное задание
- •Содержание тз
- •4. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •5. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
- •3 Разработка схем алгоритмов
- •4 Разработка программного кода
- •5 Результаты выполнения проекта
4. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
5. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
3 Разработка схем алгоритмов
Схемы алгоритмов представлены на рисунках 1-4.
Рисунок 1 – Алгоритм функции, предназначенный для поиска суммы нечетных отрицательных элементов
Рисунок 2 – Алгоритм функции, формирующий новый массив из элементов исходного массива, значения которых больше найденного числа
Рисунок 3 – Алгоритм событийной процедуры
4 Разработка программного кода
Код dll-библиотеки представлен ниже.
void Class1::output_mas(int* mas, int len, DataGridView^ grid) { grid->ColumnCount = len; grid->RowCount = 2; for (int i = 0; i < len; i++) { grid->Rows[0]->Cells[i]->Value = "[" + i + "]"; grid->Rows[1]->Cells[i]->Value = mas[i]; } int widht = 0; for (int s = 0; s < grid->ColumnCount; s++) widht += grid->Columns[s]->Width; if (widht > 400) grid->Width = 440; else grid->Width = widht;
}
void Class1::entermas2(double** arr, int n, int m) { srand(unsigned(time(NULL))); for (int i = 0; i < n; i++) { arr[i] = new double[m]; for (int j = 0; j < m; j++) arr[i][j] = (double)(rand() % 100) - 20; } }
void Class1::outputmas2(double** arr, int n, int m, DataGridView^ grid1) { grid1->ColumnCount = m + 1; grid1->RowCount = n + 1; grid1->Rows[0]->Cells[0]->Value = "[" + n + "]" + "[" + m + "]"; for (int i = 0; i < n; i++) grid1->Rows[i + 1]->Cells[0]->Value = "[" + i + "]"; for (int j = 0; j < m; j++) grid1->Rows[0]->Cells[j + 1]->Value = "[" + j + "]"; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) grid1->Rows[i + 1]->Cells[j + 1]->Value = arr[i][j]; int sum1 = 0, sum2 = 0; for (int s = 0; s < grid1->ColumnCount; ++s) sum1 += grid1->Columns[s]->Width; if (sum1 > 730) grid1->Width = 730; else grid1->Width = sum1 + 3; for (int r = 0; r < grid1->RowCount; r++) sum2 += grid1->Rows[r]->Height; if (sum2 > 230) grid1->Height = 230; else grid1->Height = sum2 + 3; }
int Class1::sumotr(double** arr, int n, int m, int& summ, int& count) { summ = 0; count = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if ((i + j) % 2 != 0 && arr[i][j] < 0) { summ += arr[i][j]; count++; } } } return count; } int* Class1::newmas(double **arr, int n, int m, int count, int& len) { int* mas = new int[n * m]; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (arr[i][j] > count) { mas[len] = arr[i][j]; len++; } return mas; } |
Программный код событийной процедуры представлен ниже.
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { Application::Exit(); } private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { try { String^ r = Interaction::InputBox("Введите количество строк в массиве", "Ввод", "", -1, -1); int n = Convert::ToInt32(r); String^ c = Interaction::InputBox("Введите количество столбцов в массиве", "Ввод", "", -1, -1); int m = Convert::ToInt32(c); double** arr = new double* [n]; for (int i = 0; i < n; i++) { arr[i] = new double[m]; } int g = 0; int summ = 0; int count = 0; Class1^ class1Object = gcnew Class1(); // Создаем экземпляр класса Class1 из DLL class1Object->entermas2(arr, n, m); class1Object->outputmas2(arr, n, m, dataGridView1); class1Object->sumotr(arr, n, m, summ, count); MessageBox::Show("Cумма найденных элементов равно " + Convert::ToString(summ), "", MessageBoxButtons::OK, MessageBoxIcon::Information); MessageBox::Show("Количество найденных элементов равно " + Convert::ToString(count), "", MessageBoxButtons::OK, MessageBoxIcon::Information); int len = 0; int* mas = Class1::newmas(arr, n, m, count, len); Class1::output_mas(mas, len, dataGridView2); for (int i = 0; i < n; i++) delete[] arr[i]; delete[] arr; delete[] mas; } catch (Exception^ ex) { MessageBox::Show("Произошла ошибка: " + ex->Message, "Ошибка", MessageBoxButtons::OK, MessageBoxIcon::Error); } } |