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

4.3. Создание меню

Для создания меню перенесем на форму компонент MenuStrip, который находится в группе компонентов Menus & Toolbars. Местоположение его на форме значения не имеет, поскольку меню всегда находится на одном и том же месте. После этого двигаясь с помощью мыши по пунктам меню набираем на клавиатуре их названия, которые автоматически становятся значениями свойств Text. Значения свойств Name выбирают по умолчанию, например, пункт меню File получит имя fileToolStripMenuItem. Если не предполагается в дальнейшем ссылка в функциях на пункты меню, то имена, естественно, можно такими и оставить. В противном случае желательно их поменять на нечто покороче. Например, делать их равными свойству Text.

Для внесения исправлений в уже созданное меню поставим курсор на тот пункт (неважно, горизонтального или выпадающего меню) перед которым необходимо вставить новый пункт, нажмем на правую клавишу и выберем пункт Insert. Для удаления поставим курсор на удаляемый пункт и выберем из выпадающего меню пункт Delete. Для изменения свойств выделяем пункт меню и пользуемся традиционным способом –списком свойств.

Для реализации пунктов меню ставим на него курсор, делаем двойной щелчок и в полученную заготовку функции пишем необходимую программу.

4.4. Ввод/вывод массивов

Рассмотрим ввод/вывод массивов на примере формы на рис.4.2. Одномерный массив может быть представлен как в виде строки, так и в виде столбца. В обоих случаях используется знакомый нам компонент TextBox, но для представления массива столбцом необходимо свойству Multiline придать значение True. После этого можно «вытянуть» этот компонент по вертикали. Для представления двумерного массива используем этот же компонент, Multiline имеет значение True, а компоненту дадим необходимые для размещения массива высоту и ширину. Дадим компонентам следующие имена (свойство Name): mas_row для массива-строки, mas_col для массива столбца, mas22 - для двумерного массива, result – для результата. Тип данных в компонентах TextBox по прежнему String.

Рис. 4.2

Назначение кнопок видно из названий.

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

Для ввода одномерного массива – строки необходимо определить, какой разделитель будет использован между отдельными элементами. В нашем случае используем знак ; . Реализация кнопки «Массив – строка» приведена ниже:

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 будет пустая строка в середине. Что с ней делать – решать программисту!