Составление программ линейной структуры с#. Разработка программ линейной структуры
Скачать 1.05 Mb.
|
1 Лабораторная работа № 1 Тема: Разработка программ линейной структуры. Цель работы: Разработка программы линейной структуры в среде Visual Studio на языке C# Оборудование:IBM – совместимые компьютеры. Место проведения: Компьютерный класс. Техника безопасности: См. инструкцию. Математические функции В языке Си Шарп предоставляется целый класс математических методов. Это класс - Math . В этом классе методы статические. Для его подключения нужно прописать в начале: using System; Для вызова метода, необходимо прописать: Math .Функция(); В классе Math имеется 25 методов математических вычислений. Обратите внимание на то, что вычисление синуса, косинуса и так далее вычисляется в радианах . Поэтому если вам нужны градусы, нужно конвертировать!!! int gradus = 30; double radian = gradus * Math .PI / 180; А вычисление Акр синуса, косинуса и так далее. Нужно вычислять от -1 до 1. Поэтому: double x = 0.5; double gradus = Math .Acos(x) * 180 / Math .PI; Math .Abs Возвращаем абсолютное число, имеет 7 перегрузок. То есть метод принимает разные типы переменных. int i = Math .Abs(x); Math .Acos Арк Косинус. Определяется угол, косинус которого равен указанному числу. double i = Math .Acos(0.5); Math .Asin Арк Синус. Также определяет угол. double i = Math .Asin(0.5); Math .Atan Арк Тангенс. Возвращает угол, значение которого было указано double i = Math .Atan(0.5); Math .Cos Возвращает косинус угла. double x = Math .Cos(1.04); Math .Cosh Возвращает гиперболический косинус угла. double x = Math .Cosh(radian); Math .Exp Экспонента. double x = Math .Exp(2); Math .Log Вычисление логарифма. X - число которое нужно найти, Osn - основание логарифма. double x = Math .Log(X,Osn); Math .Log10 Вычисление десятичного логарифма. double x = Math .Log10(10) Math .Max Возвращает из 2-х чисел большее число. Имеет 11 перегруженых методов. int x = Math .Max(10,20); Math .Min Возвращает из 2-х чисел меньшее число. Имеет 11 перегруженых методов. int x = Math .Min(10,20); Math .PI Возвращает число Пи. double pi = Math .PI; Math .Pow Вычисляет число возведенное в степень: a x double i = Math .Pow(a, x); Math .Sin Возвращает синус угла. double p = Math .Sin(0.5); 2 Math .Sinh Возвращает гиперболический синус угла. double p = Math .Sin(0.5); Math .Sqrt Возвращает квадратный корень. double r = Math .Sqrt(7); Math .Tan Возвращает тангенс угла. double p = Math .Tan(1.04); Math .Tanh Возвращает гиперболический тангенс угла. double p = Math .Tanh(1.04); Условие задачи Составить программу, которая по введенному радиусу R находит площадь поверхности шара. Программу реализовать как Windows Forms Application Площадь поверхности шара вычисляется по формуле: где R – радиус шара, π – константа равная 3.1415 В программе используются следующие элементы управления: Label – метка для вывода сообщений; Button – кнопка для выполнения расчета; TextBox – поле ввода, предназначенное для ввода значения R Выполнение 1. Запустить MS Visual Studio. Создать проект по шаблону Windows Forms Application Сохранить проект под любым именем. 2. Размещение элементов управления на форме. Из вкладки « Common Controls » выносим на форму четыре элемента управления (рис. 1): два элемента управления типа Label (метка); элемент управления типа Button (кнопка); элемент управления типа TextBox (строка ввода). 3 Рис. 1. Элементы управления Label , Button , TextBox Автоматически создаются четыре объекта с именами label1 , label2 , button1 и textBox1 . По этим именам можно будет иметь доступ к свойствам этих объектов. Форма приложения будет иметь вид, как показано на рис. 2. 4 Рис. 2. Форма приложения после размещения label1 , label2 , button1 и textBox1 3. Настройка элементов управления типа Label . Выделяем элемент управления (объект) label1 . В палитре Toolbox изменяем свойство Text , набираем « R = «. Точно так же изменяется свойство Text для элемента управления label2 (рис. 3). Вводим текст « Площадь поверхности шара = «. Рис. 3. Изменение свойства Text в label1 4. Элемент управления Button . Аналогично к label1 выделяем элемент управления (объект) button1 . В свойстве Text вводим строку « Вычислить «. 5. Корректировка вида формы. Изменяем название формы. Для этого выделяем форму. В свойстве Text формы вводим текст « Площадь поверхности шара «. После корректировки форма будет иметь вид, как показано на рисунке 4. 5 Рис. 4. Вид формы после корректировки 6. Программирование события клика на кнопке « Вычислить» . 6.1. Вызов программного кода. В программе нужно обработать событие, которое генерируется когда пользователь делает клик «мышкой» на кнопке « Вычислить «. После нажатия на кнопке « Вычислить » формируется фрагмент кода, который будет обрабатываться нашим приложением. Во время обработки сначала определяется значение введенного радиуса R , затем делается расчет по формуле и вывод результата. Чтобы вызвать фрагмент кода обработки события на кнопке button1 нужно выполнить такие действия: выделить кнопку button1 (рис. 5 — 1); перейти к вкладке Events (события) в окне свойств (рис. 5 — 2); сделать двойной щелчок «мышкой» напротив события « Click » (рис. 5 — 3). Рис. 5. Последовательность вызова фрагмента кода обработки события Click В итоге, откроется вкладка программного кода, который размещен в файле « Form1.cs » (рис. 6). 6 Рис. 6. Метод обработки события клика на кнопке button1 Листинг программного кода следующий: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click( object sender, EventArgs e) { } } } В методе button1_Click вписываем код обработки события. Листинг метода следующий: 7 ... private void button1_Click( object sender, EventArgs e) { const double Pi = 3.1415; double R,S; R = Double .Parse(textBox1.Text); S = 4 * Pi * R * R; label2.Text = "Площадь поверхности шара = " + S.ToString(); } В коде описываются две переменные R и S типа double . Также описывается константа Pi Для преобразования из текстового типа string в тип double используется метод Parse . Таким образом заполняется значение переменной R. R = Double .Parse(textBox1.Text.ToString()); Подобным образом можно преобразовывать данные и других типов. Например, для типа int можно написать: int d; d = Int32 .Parse( "100" ); // d = 100 Результат вычисления площади поверхности шара выводится в label2.Text Преобразование в тип string осуществляется с помощью метода ToString() 6.3. Корректировка программного кода. В коде, описанном в пункте 6.2 нету защиты от некорректного ввода значения R . Поэтому метод button1_Click нужно переписать следующим образом: private void button1_Click( object sender, EventArgs e) { try { double a, b; a = Double .Parse(textBox1.Text.ToString()); b = 4 * Math .PI * Math .Pow(a, 2); label1.Text = "Площадь шара = " + b.ToString(); } catch ( FormatException ex) { //label2.Text = "Ошибка - " + ex.Message; //MessageBox.Show("Ошибка выполнения"); MessageBox .Show( "Ошибка выполнения" , "Сообщение" , MessageBoxButtons .OK, MessageBoxIcon .Error); 8 } } Сообщение об ошибке при возникновении исключительной ситуации (Рисунок7) Рисунок 7 Блок try { } catch (...) { } позволяет осуществить программный перехват критической (исключительной) ситуации, которая может возникнуть в результате ввода некорректного значения в поле textBox1 (например «абракадабра»). В этом случае в свойстве ex.Message буде выведено сообщение: Ошибка – Input string was not in a correct format. Ввод только цифровых значений Для элемента TextBox, наоборот, недопустимыми значениями будут буквы, в обработчике события KeyPress для текстового поля TextBox укажите код: if (!char.IsDigit(e.KeyChar) ) { e.Handled = true; MessageBox.Show("Поле ввода не может содержать буквы"); } 9 Ввод только текста В тело обработчика события KeyPress для текстового поля TextBox укажите следующий код (для элемента TextBox недопустимыми значениями будут цифры): if (char.IsDigit(e.KeyChar) ) { e.Handled = true; MessageBox.Show("Поле ввода не может содержать цифры"); } 7. Запуск программы на выполнение. После этого можно запустить нашу программу на выполнение и протестировать ее работу при любых значениях R Варианты задания (в соответствии с номером компьютера) 1. Вычислить площадь треугольника. S=1/2*a*h 2. Вычислить площадь трапеции S=(a+b)/2*h 3. Вычислить площадь поверхности и объем цилиндра S=2π*r(h+r); v=π*r 2 *h 4. Вычислить площадь трапеции S=(a+b)/2*h 5. Вычислить площадь поверхности и объем шара v=3/4π*r 3 ; s=4*π*r 2 6. Вычислить объем цилиндра v=π*r 2 *h 7. Вычислить объем полого цилиндра v=π*h*(r1 2 -r2 2 ) 8. Вычислить площадь конуса s=1/3*π* r 2 *h 9. Вычислить общее сопротивление из двух параллельно соединенных резисторов. Rобщ=(R1*R2)/(R1+R2) 10. Вычислить объем усеченного конуса v= 1/3*π*h*(r1 2 +r1*r2+ r2 2 ) 11. Вычислить объем шарового сегмента v=1/3* π*h 2 *(3*R-h) 10 12. Вычислить объем шарового слоя V=1/2* π*h*(R 2 +r 2 +1/3*h 2 ) 13. Вычислить объем шарового сектора V=2/3* π*R 2 *h 14. Вычислить объем правильной треугольной пирамиды V=(h*a 2 )/(4* 3 ) 15. Вычислить площадь кольца S = π (R 2 - r 2 ); 16. Вычислить эллипса S = π a b; 11 17. Вычислить площадь параллелограмма S = b h; Студент должен знать: Среду программирования Visual Studio на языке C# Студент должен уметь: Создать программу для решения поставленной задачи, сохранить и откомпилировать проект. Преподователь Белозёров В.О. |