Расчёт площади домовладения

Очередное решение задачи по книге Лукин С.Н. — Понятно о Visual Basic .NET. Cамоучитель (в 3-х томах)

Условие: В самом углу прямоугольного двора стоит прямоугольный дом. Подсчитать площадь дома, свободную площадь двора и длину забора. В углу, где дом, забора, естественно, нет. Размеры дома и двора вводим при помощи InputBox. Все числа целые.

Решение:

Public Class Form1
    'объявляем глобальные переменные, так как будут использоваться в нескольких кнопках
    Dim dlina_doma As Integer 'длина дома
    Dim shirina_doma As Integer 'ширина дома
    Dim dlina_dvora As Integer 'длина участка
    Dim shirina_dvora As Integer 'ширина участка


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'объявляем переменную для рисования в picturebox
        Dim graf As Graphics
        graf = PictureBox1.CreateGraphics
        'присваиваем значения с текстовых полей
        dlina_doma = Val(TextBox1.Text)
        shirina_doma = Val(TextBox2.Text)
        dlina_dvora = Val(TextBox3.Text)
        shirina_dvora = Val(TextBox4.Text)
        'рисуем двор(ширину и длину умножаем на 5, для большей видимости плана)
        graf.DrawRectangle(Pens.Black, 10, 10, shirina_dvora * 5, dlina_dvora * 5)
        'рисуем дом(ширину и длину умножаем на 5, для большей видимости плана)
        graf.FillRectangle(Brushes.Brown, 10, 10, shirina_doma * 5, dlina_doma * 5)

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'объявляем локальные переменные
        Dim s_dvora As Integer
        Dim s_doma As Integer
        Dim s_svobodn_dvora As Integer
        Dim l_zabora As Integer

        'присваиваем значения с текстовых полей
        dlina_doma = Val(TextBox1.Text)
        shirina_doma = Val(TextBox2.Text)
        dlina_dvora = Val(TextBox3.Text)
        shirina_dvora = Val(TextBox4.Text)
        'делаем рассчёт
        s_dvora = Val(dlina_dvora) * Val(shirina_dvora)
        s_doma = Val(dlina_doma) * Val(shirina_doma)
        s_svobodn_dvora = s_dvora - s_doma
        l_zabora = (2 * dlina_dvora + 2 * shirina_dvora) - (dlina_doma + shirina_doma)

        'выводим в текстовое поле
        TextBox5.Text = s_dvora
        TextBox6.Text = s_doma
        TextBox7.Text = s_svobodn_dvora
        TextBox8.Text = l_zabora

    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 = ""
        TextBox5.Text = ""
        TextBox6.Text = ""
        TextBox7.Text = ""
        TextBox8.Text = ""

        'стираем рисунок
        PictureBox1.Image = Nothing
    End Sub
End Class

Решил чуть изменить решение и вводить данные не с помощью inputbox , а в текстовом поле, так как эта программка мне самому в дальнейшем понадобиться, и вводить данные на текстовом поле более удобно.

  1. Объявил глобальные переменные, которые будут применяться на нескольких кнопках
  2. На кнопке рисования объявил новый объект graf для рисования
  3. присвоил значения текстовых полей переменным
  4. нарисовал двор и дом в нём . Важно!!! Расчёты проводятся с учётом того, что две стороны дома соприкасаются с забором
  5. на кнопке расчёта объявил локальные переменные, так как они больше нигде использоваться не будут
  6. присвоил значение переменным и на этой кнопке, чтобы можно было произвести расчёт без необходимости рисования двора и дома. Иначе расчёт проводился бы только после прорисовки участка и дома.
  7. вывел значения в текстовом поле
  8. всё стираем, сбрасываем для нового расчёта. Если использовать picturebox1.dispose() — то удалили вообще бы объекты из памяти и пришлось бы заново запускать программу. PictureBox1.Image=Nothihg только удаляет нарисованное, сохраняя фон.

Программа работает только с целыми числами.

Программу расчёт площади домовладения можно скачать. Установки не требует. Файл exe. Размер 29kb. На компьютере должен быть установлен net.framework 3.5 и выше.

Запись опубликована в рубрике Мои программы, Мой дневник, Решение заданий vb.net. Добавьте в закладки постоянную ссылку.