using System;
using System.Windows.Forms;
namespace PhysicsSolver
{
public partial class Form1 : Form
{
const double g = 10; // ускорение свободного падения, Н/кг
public Form1()
{
InitializeComponent();
comboBox1.Items.Add("Архимедова сила");
comboBox1.Items.Add("Плотность жидкости");
comboBox1.SelectedIndex = 0;
}
private void button1_Click(object sender, EventArgs e)
{
try
{
double result = 0;
if (comboBox1.SelectedItem.ToString() == "Архимедова сила")
{
// Вводим ребро куба в сантиметрах
double aCm = Convert.ToDouble(textBox1.Text);
// Переводим см в метры
double aM = aCm / 100;
// Объём куба V = a^3
double volume = Math.Pow(aM, 3);
// Плотность воды = 1000 кг/м³
double density = 1000;
// F = ρ * g * V
result = density * g * volume;
labelResult.Text = $"Архимедова сила: {result} Н";
}
else if (comboBox1.SelectedItem.ToString() == "Плотность жидкости")
{
// Давление в Па
double pressure = Convert.ToDouble(textBox1.Text);
// Высота столба жидкости в сантиметрах
double hCm = Convert.ToDouble(textBox2.Text);
// Переводим см в метры
double hM = hCm / 100;
// ρ = p / (g * h)
result = pressure / (g * hM);
labelResult.Text = $"Плотность жидкости: {result} кг/м³";
}
}
catch
{
MessageBox.Show("Введи нормальные числа, а не заклинание древних физиков.");
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedItem.ToString() == "Архимедова сила")
{
label1.Text = "Ребро куба, см:";
label2.Visible = false;
textBox2.Visible = false;
}
else
{
label1.Text = "Давление, Па:";
label2.Text = "Высота, см:";
label2.Visible = true;
textBox2.Visible = true;
}
labelResult.Text = "";
}
}
}