Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ C#.docx
Скачиваний:
16
Добавлен:
20.11.2019
Размер:
1.85 Mб
Скачать

4.4.2. Ввод/вывод и обработка одномерного массива-столбца

При вводе одномерного массива в виде столбца необходимо просто набрать значения, нажав после каждого на 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;

}

4.4.3. Ввод/вывод и обработка двумерного массива

Перед тем как приступить к вводу/выводу и обработке двумерного массива введем некоторые уточнения. Очевидно, что на кнопку «Обработка и вывод двумерного массива» нет смысла нажать пока массив не введен. Поэтому изначально пусть эта кнопка будет «серой», для чего на этапе проектирования дадим ее свойству 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. форма показана после нажатия кнопок «Ввод двумерного массива» и «Обработка и вывод двумерного массива»