Обработка одномерных массивов
Автор: PolinaVvv • Декабрь 15, 2021 • Лабораторная работа • 1,532 Слов (7 Страниц) • 210 Просмотры
Лабораторная работа №6
«Обработка одномерных массивов»
- Задание на лабораторную работу.
Дан динамический целочисленный массив в диапазоне от -100 до 100. Написать программу, которая в этом находит в этом массиве количество пар соседних элементов массива, произведение которых нечётно, а сумма – положительна. Массив должен быть сгенерирован случайно с помощью соответствующего метода.
Также для выполнения задания следует разработать DLL библиотеку, в которую необходимо поместить нижеперечисленные методы:
- Метод enter_mas(int n, params double[] masPtr), предназначенный для генерации массива случайных чисел.
- Метод output_mas(int n, DataGridView grid, params double[] masPtr) предназначенный для корректировки столбцов, сточек и ячеек в таблице – DataGridView.
- Метод Proc6(int n, ref int k, params double[] masPtr) предназначенный для нахождения количества пар элементов массива, произведение которых нечётно, а сумма – положительна.
Необходимо разработать событийный метод, в котором надо осуществить обращение к DLL библиотеке и вышеперечисленным методам.
- Блок-схемы алгоритма программы.
На рисунке 1 представлена блок-схема процедуры Proc6(int n, ref int k, params double[] masPtr).
[pic 1]
Рисунок 1 – Блок-схема процедуры Proc6().
Событийная блок-схема представлена на рисунке 2.
[pic 2]
Рисунок 2 – Событийная блок-схема.
- Программный код.
ArrayClass2.cs
using System;
using System.Windows.Forms;
namespace ArrayLibrary2
{
public class ArrayClass2
{
public static void enter_mas(int n, params double[] masPtr)
{
Random a = new Random();
for (int i = 0; i < n; i++)
masPtr[i] = (double)(a.Next(-100, 100));
}
public static void output_mas(int n, DataGridView grid, params double[] masPtr)
{
grid.ColumnCount = n;
grid.RowCount = 2;
for (int i = 0; i < n; i++)
{
grid.Rows[0].Cells[i].Value = "[" + i + "]";
grid.Rows[1].Cells[i].Value = masPtr[i];
}
int Width = 0;
for (int s = 0; s < grid.ColumnCount; s++)
Width += grid.Columns[s].Width;
if (Width > 1200)
grid.Width = 1200;
else
grid.Width = Width;
}
public static void Proc6(int n, ref int k, params double[] masPtr)
{
k = 0;
for (int i = 0; i < (n-1) ; i++)
{
if (((masPtr[i] * masPtr[i + 1]) % 2 == 1) && (masPtr[i] + masPtr[i + 1] > 0))
k++;
}
}
}
}
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace проба_лабы2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void CloseButton_Click_1(object sender, EventArgs e)
...