
Очередной ответ на задание номер 4 из книги Лукина
Условие: Даны радиус и высота цилиндра. Вычислить объем цилиндра и полную площадь его поверхности. Начертить (это нелегко) цилиндр данного радиуса и высоты. Радиус и высоту вводить в два текстовых поля. Объем и площадь выводить на поверхность формы методом DrawString с 3 знаками после запятой и с текстовыми пояснениями. Высота эллипсов, изображающих основания цилиндра, должна быть в два раза меньше их ширины
Решение:
Public Class Form1
'объявляем глобальные переменные и присваиваем им значения с текстового поля
Dim r_cil As Single
Dim v_cil As Single
'объявляем глобальный объект для рисования
Dim graf As Graphics
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'создаём граф объект при загрузке формы, чтобы не прописывать в каждой кнопке
graf = PictureBox1.CreateGraphics
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'объявляем локальные переменные объёма и площади поверхности
Dim Ob_cil As Double
Dim s_cil As Double
'присваиваем значения из текстового поля
r_cil = Val(TextBox1.Text) 'радиус цилиндра
v_cil = Val(TextBox2.Text) 'высота цилиндра
'вычисляем объём цилиндра
Ob_cil = Math.PI * (r_cil ^ 2) * v_cil 'вычисляем объём цилиндра по формуле V=pr^2*h
s_cil = (2 * Math.PI * r_cil * v_cil) + (2 * Math.PI * r_cil ^ 2) 'вычисляем площадь поверхности по формуле S=2*prh + 2pr^2
'выводим результат в текстовое поле
TextBox3.Text = Math.Round(Ob_cil, 3)
TextBox4.Text = Math.Round(s_cil, 3)
'выводим результат на picturebox
graf.DrawString("Объём цилиндра = " & Math.Round(Ob_cil, 3), Button1.Font, Brushes.Black, 50, 20)
graf.DrawString("Полная площадь поверхности цилиндра = " & Math.Round(s_cil, 3), Button1.Font, Brushes.Black, 50, 50)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'присваиваем значения из текстового поля
r_cil = Val(TextBox1.Text) 'радиус цилиндра
v_cil = Val(TextBox2.Text) 'высота цилиндра
'рисуем цилиндр
graf.DrawEllipse(Pens.Black, 50, 150, r_cil * 2, r_cil) 'верхний эллипс
graf.DrawEllipse(Pens.Black, 50, v_cil + 150, r_cil * 2, r_cil) 'нижний эллипс
graf.DrawLine(Pens.Black, 50, 150 + r_cil / 2, 50, 150 + (v_cil + r_cil / 2)) 'левая линия
graf.DrawLine(Pens.Black, 50 + r_cil * 2, 150 + r_cil / 2, 50 + r_cil * 2, 150 + (v_cil + r_cil / 2)) 'правая линия
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'всё стираем
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
PictureBox1.Image = Nothing
End Sub
End Class
P.s В связи с тем, что у меня не удалялась надпись, которая была в текстовом поле (результаты вычислений), вывел её в PictureBox.
Итак, что делал:
- Объявил глобальные переменные радиуса цилиндра и высоты цилиндра, так как они будут применяться в других кнопках
- при загрузке формы создал объект для рисования graf, иначе бы пришлось объявлять два раза в каждой кнопке
- первая кнопка объявление локальных переменных объёма и площади, вычисление и вывод результатов в текстовом поле и в picturebox
- вторая кнопка рисуем цилиндр в Picturebox.
- последняя кнопка всё стирает для новых расчётов.
Скачать программу Рисуем цилиндр
Установки не требует.
Файл exe. Размер 26kb.
На компьютере должен быть установлен net.framework 3.5 и выше.