Ввод/вывод и обработка одномерного массива-строки
Для ввода одномерного массива – строки необходимо определить, какой разделитель будет использован между отдельными элементами. В нашем случае используем знак ; . Реализация кнопки «Массив – строка» приведена ниже:
private void button5_Click(object sender, EventArgs e)
{
string[] temp;
//массив для размещения вводимых и выводимых данных
int k, pr = 1;
string dan;
dan = mas_row.Text;
//присвоение набранной строки целиком переменной
temp = dan.Split(';');
// выделение отдельных элементов массива, аргументом функции
// Split является наш разделитель ;
k = temp.Length; //определим длину введенного массива
while (temp[k - 1] == "") k--; // см. разъяснение 1
int[] x = new int[k];
//объявление массива чисел для введенных данных
for (int i = 0; i < k; i++)
//преобразование типов введенных данных
x[i] = Convert.ToInt32(temp[i]);
for (int i = 0; i < k; i++)
{ // обработка введенного массива
x[i] = x[i] * x[i];
pr *= x[i];
}
rezult.Text = "Proizv " + pr; // вывод результата
dan = "";
mas_row.Clear(); // очистка поля mas_row для вывода
for (int i = 0; i < k; i++)
dan += " " + x[i];
// накопление полученных элементов числового массива в
// переменной символьного типа, в качестве разделителя – пробел
mas_row.Text = dan; //вывод результата
}
Разъяснение 1. Если закончить последовательность вводимых данных разделителем (в нашем случае ;), то последним элементом массива temp будет пустая строка, которая не может быть преобразована в число. Поэтому исключим эту возможность. Если при вводе ставить два разделителя подряд, то в массиве temp будет пустая строка в середине. Что с ней делать – решать программисту!
|
|
Ввод/вывод и обработка одномерного массива-столбца
При вводе одномерного массива в виде столбца необходимо просто набрать значения, нажав после каждого на Enter. Нажатие на Enter после последнего значения вставит пустую строку в качестве последнего элемента. Реализация кнопки «Массив – столбец»:
private void button4_Click(object sender, EventArgs e)
{
string []st1;
int []mas;
//массивы для размещения данных
int k,pr=0;
st1=new string[mas_col.Lines.Length];
k=mas_col.Lines.Length;
mas = new int[k];
//инициируем массивы для принятия исходных данных, количество
//элементов равно количеству строк в компоненте mas_col
st1 = mas_col.Lines;
//перенесем введенный массив из компонента mas_col в массив st1
while(st1[k-1]=="") k--; //см. разъяснение 1 выше
for(int i=0;i<k;i++) // преобразование типов данных
mas[i]=Convert.ToInt32(st1[i]);
for (int i = 0; i < k; i++)
|
|
{ // обработка массива
mas[i] = 5 * mas[i];
pr += mas[i];
st1[i] = Convert.ToString(mas[i]);
// преобразование типов данных для вывода
}
mas_col.Clear(); //очистка поля вывода
mas_col.Lines = st1; // вывод результата: массива - столбца
rezult.Text="Summa Col "+pr;
}
Ввод/вывод и обработка двумерного массива
Перед тем как приступить к вводу/выводу и обработке двумерного массива введем некоторые уточнения. Очевидно, что на кнопку «Обработка и вывод двумерного массива» нет смысла нажать пока массив не введен. Поэтому изначально пусть эта кнопка будет «серой», для чего на этапе проектирования дадим ее свойству Enabled значение False. Во-вторых, ввод и обработка двумерного массива будут в разных функциях, поэтому его необходимо объявить как переменную класса Form1 (Напомним, что каждой форме соответствует класс). Найдем раздел переменных этого класса и запишем туда:
private double[,] a;
int n, m; //количество строк и столбцов
Мы по существу уже знаем, как ввести двумерный массив: он представляет собой столбец с одномерными массивами - строками. Используем в качестве разделителя ; . Предположим, что двумерный массив прямоугольный.
|
|
Реализация кнопки «Ввод двумерного массива»:
private void button1_Click(object sender, EventArgs e)
{
string[] mas; // массив для представления одной вводимой строки
string s = "";
string[] dan; //массив для представление всех введенных строк
this.button2.Enabled = true; // кнопка обработки откроется
n = mas22.Lines.Length; //количество строк в двумерном
// массиве будет равно количеству введенных строк
dan = new string[n];
dan = mas22.Lines; //введенные строки передаем
// массив символьных строк, одна строка – один элемент
while (dan[n - 1] == "") n--;
mas = dan[0].Split(';'); //разделим первую строку на
//элементы с помощью разделителя
m = mas.Length; // определим количество столбцов двумерного
// массива
a = new double[n, m]; // инициализация двумерного массива
for (int i = 0; i < n; i++)
{ // строка за строкой преобразуем типы данных и
// формируем числовой массив
mas = dan[i].Split(';');
for (int j = 0; j < mas.Length; j++)
a[i, j] = Convert.ToDouble(mas[j]);
|
|
} }
Реализация кнопки «Обработка и вывод двумерного массива»:
private void button2_Click(object sender, EventArgs e)
{
string[] st1 = new string[n]; // массив для
// накопления двумерного массива после обработки
double smm=0;
mas22.Clear(); //очистка поля для вывода
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{ // обработка массива
a[i, j] = 2 * a[i, j];
smm += a[i, j];
}
// цикл подготовки двумерного массива к выводу
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
st1[i]+=" "+Convert.ToString(a[i,j]);
mas22.Lines = st1; // вывод двумерного массива
rezult.Text = "Summa 2: "+Convert.ToString(smm);
}
Примечание. На рис. 4.1. форма показана после нажатия кнопок «Ввод двумерного массива» и «Обработка и вывод двумерного массива»
Дата добавления: 2018-04-05; просмотров: 400; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!