Вторник, 2026-04-21

Professor VB - примеры на VB.net и C#
Меню сайта
Вход на сайт
Категории раздела
Мои программы [9]
Полезный софт [8]
Главная » Статьи » Soft » Мои программы

VB.net - тепловой баланс

VB.net - тепловой баланс



Представляю вам небольшую программу, на основе лабораторной работы.

* * *

Когда нет под рукой термометра, а необходимо получить нужную температуру, можно воспользоваться следующей формулой:
t = (t1 * V1 + t2 * V2) / (V1 + V2)

Где
t - конечная температура,
t1,t2 - начальные температуры жидкостей
V1,V2 - начальные
объемы соответствующих жидкостей

Таким образом, мы сможем подобрать любую температуру из диапазона, для воды это примерно от 18°- 24° (комнатная температура) до 100° (температура кипения воды).

Другой задачей является получение жидкости заданного объема и температуры - для этого необходимо узнать сколько жидкости с разной температурой необходимо добавить.

Таким образом можно решить 3 различных задачи:
    - Найти общую температуру
    - Найти начальные объемы
    - Определить одну из температур

    
Для решения этих задач выведем соответствующие формулы.


    - Найти общую температуру


T = (T1 * V1 + T2 * V2) / (V1 + V2)
V = V1 + V2

 

    - Найти начальные объемы


V2 = V * (T - T1) / (T2 - T1)
V1 = V - V2

 

    - Определить одну из температур


V = V1 + V2
T1 = (T * V - T2 * V2) / V1

 


 

Интерфейс нашей программы будет таким:
на форму поместим

- 3 RadioButton - для выбора задачи
- 3 GroupBox - для ввода условий и вывода ответов
- Кнопку - для решения (при изменении значений в нумераторе - так же будет выполнятся решение)
- Ярлыки - для подписей

В GroupBox помешаем нумераторы(NumericUpDown) и Ярлыки.

Свойства нумераторов(NumericUpDown):
-DecimalPlaces = 2 (для объемов) и 3 (для температур)
-Maximum = 1000
-Value - отличное от нуля
-Minimum = 0,01 (для объемов) и 0 (для температур, если работаем только с водой)

 

Все нумераторы и ярлыки ответов называем соответственно.

    - Найти общую температуру
gbT
    numV1
    numV2
    lblV
    numt1
    numt2
    lblt
        
    - Найти начальные объемы
gbV2
    numVVt1
    numVVt2
    numVVt
    numVVv
    lblVVv1
    lblVVv2    
    
    - Определить одну из температур
gbTT
    numTTv1
    numTTv2
    lblTTv
    numTTt
    numTTt2
    lblTTt1

Где
gb... - GroupBox
num... - NumericUpDown
lbl... - label (ярлыки)

---

Переходим к коду.


Public Class Form1
    'Задаем переменные
    Dim V As Decimal    'общий объем
    Dim V1 As Decimal    'объем 1 жидкости
    Dim V2 As Decimal    'объем 2 жидкости
    Dim T As Decimal    'полученная температура
    Dim T1 As Decimal    'температура 1 жидкости
    Dim T2 As Decimal    'температура 2 жидкости

    'При загрузке, выравниваем все GroupBox (gb...) и меняем размер формы (me)
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        '374; 475
        Me.Width = 374
        Me.Height = 475

        gbT.Top = 137
        gbT.Left = 52

        gbTT.Top = 137
        gbTT.Left = 52

        gbV2.Top = 137
        gbV2.Left = 52
  
  End Sub

    'подпрограмма выполнения расчетов
    Sub START()
        '----- T---Найти общую температуру-
        If rbT.Checked = True Then
            V1 = numV1.Value
            V2 = numV2.Value

            T1 = numt1.Value
            T2 = numt2.Value

            If V1 <> 0 Or V2 <> 0 Then
                V = V1 + V2
                T = (T1 * V1 + T2 * V2) / (V1 + V2)

                lblt.Text = Math.Round(T, 1)
                lblV.Text = Math.Round(V, 2)

            Else
                lblt.Text = "-"
                lblV.Text = "-"
            End If

        End If
        '---END-- T----

        '----- V1V2---Найти начальные объемы -
        If rbV2.Checked = True Then
            T = numVVt.Value
            T1 = numVVt1.Value
            T2 = numVVt2.Value
            V = numVVv.Value

            If (T2 - T1) <> 0 Then
                V2 = V * (T - T1) / (T2 - T1)
                V1 = V - V2

                lblVVv1.Text = Math.Round(V1, 2)
                lblVVv2.Text = Math.Round(V2, 2)
            Else
                lblVVv1.Text = "-"
                lblVVv2.Text = "-"
            End If

        End If
        '---END-- V1V2----

        '----- t1t2---Определить одну из температур-
        If rbT1.Checked = True Then
            V1 = numTTv1.Value
            V2 = numTTv2.Value
            T = numTTt.Value
            T2 = numTTt2.Value

            If V1 <> 0 Then
                V = V1 + V2
                T1 = (T * V - T2 * V2) / V1

                lblTTt1.Text = Math.Round(T1, 1)
                lblTTv.Text = Math.Round(V, 2)
            Else
                lblTTt1.Text = "-"
                lblTTv.Text = "-"

            End If

        End If
        '---END-- t1t2----
    End Sub

 

    'меняем обозначения и выбираем нужное решение
    Private Sub rbT_CheckedChanged(sender As Object, e As EventArgs) Handles rbT.CheckedChanged
        lblName.Text = "Найти общую температуру"
        gbT.Visible = True
        gbTT.Visible = False
        gbV2.Visible = False
        START()

    End Sub

    'меняем обозначения и выбираем нужное решение
    Private Sub rbV2_CheckedChanged(sender As Object, e As EventArgs) Handles rbV2.CheckedChanged
        lblName.Text = "Найти начальные объемы "
        gbT.Visible = False
        gbTT.Visible = False
        gbV2.Visible = True
        START()
 
   End Sub

    'меняем обозначения и выбираем нужное решение
    Private Sub rbT1_CheckedChanged(sender As Object, e As EventArgs) Handles rbT1.CheckedChanged
        lblName.Text = "Определить одну из температур"
        gbT.Visible = False
        gbTT.Visible = True
        gbV2.Visible = False
        START()

    End Sub

    'выполнение расчетов
    'по нажатию на кнопку

    Private Sub cmdOk_Click(sender As Object, e As EventArgs) Handles cmdOk.Click
        START()
    End Sub

    'выполнение расчетов
    'по нажатию на нумераторы

    Private Sub numV1_ValueChanged(sender As Object, e As EventArgs) Handles numV1.ValueChanged
        START()
    End Sub

    Private Sub numV2_ValueChanged(sender As Object, e As EventArgs) Handles numV2.ValueChanged
        START()
    End Sub

    Private Sub numt1_ValueChanged(sender As Object, e As EventArgs) Handles numt1.ValueChanged
        START()
    End Sub

    Private Sub numt2_ValueChanged(sender As Object, e As EventArgs) Handles numt2.ValueChanged
        START()
    End Sub

    Private Sub numVVt1_ValueChanged(sender As Object, e As EventArgs) Handles numVVt1.ValueChanged
        START()
    End Sub

    Private Sub numVVt2_ValueChanged(sender As Object, e As EventArgs) Handles numVVt2.ValueChanged
        START()
    End Sub

    Private Sub numVVt_ValueChanged(sender As Object, e As EventArgs) Handles numVVt.ValueChanged
        START()
    End Sub

    Private Sub numVVv_ValueChanged(sender As Object, e As EventArgs) Handles numVVv.ValueChanged
        START()
    End Sub

    Private Sub numTTv1_ValueChanged(sender As Object, e As EventArgs) Handles numTTv1.ValueChanged
        START()
    End Sub

    Private Sub numTTv2_ValueChanged(sender As Object, e As EventArgs) Handles numTTv2.ValueChanged
        START()
    End Sub

    Private Sub numTTt_ValueChanged(sender As Object, e As EventArgs) Handles numTTt.ValueChanged
        START()
    End Sub

    Private Sub numTTt2_ValueChanged(sender As Object, e As EventArgs) Handles numTTt2.ValueChanged
        START()
    End Sub

End Class

 


 

 

 

В начало

 

 



 

Категория: Мои программы | Добавил: ProfessorVB (2017-03-28)
Просмотров: 3645 | Теги: физика, объем, температура, Лабораторная, Vb.net, тепловой баланс | Рейтинг: 5.0/1
Всего комментариев: 0
avatar
Облако тегов
Поиск
Друзья сайта
  • www.youtube.com

  • vk.com/professorvb

  • Партнерка AIR

  • Партнерка VSP Group
  • Поделись с друзьям
    Теги
    урок C# си шарп видео Генератор имен MenuStrip дроби решебник Алгебра уравнения системы геометрия Vb.net генератор уроки математика программа условия массив элементов видеоуроки удаление записи из xml добавление записи в xml создать XML поиск удалить из xml анекдот калькулятор нок НОД время конструкторы дата тест сокращение дробей тренажер английский русский развитие мнемоника Сборник программ иностранные слова переменные random рандом professorvb смена раскладки OpenFileDialog Timer mindgames поиск в массиве цикл текст словарь база пароль слова Существительные cos комплексные числа процесс массив классы массивы многомерные While forEach Continue for Обработка событий Обработка нажатий клавиш rgb палитра цветов система уравнений XML база данных xml количество элементов soft обход блокировки AntiCenz fri-gate pirat запрещенные сайты proxy google черный список save Open RichTextBox TopMost между датами календарь перемешивание массива Сравнение дробей Меморина скорочтение Ребусы Анаграммы Рифмоплет размер недостатки использование
    Copyright ProfessorVB © 2026