Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pechat_33__33-4.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
381.05 Кб
Скачать

Результат роботи програми:

Рис. 4. Форма вводу даних

Рис. 5. Програма перевіряє виконання вказаних функцій.

Задача 8

Мовою C# розробити приклад виконання операцій над об'єктами:

    1. Створити базовий клас «Резистор», поля якого тільки такі:

      1. опір R, Ом.

    2. Забезпечити можливість обчислення виразів над об'єктами цього класу.

      1. Операція «+» відповідає послідовному з’єднанню об'єктів. У результаті утворюється новий об'єкт класу «Резистор» із сумарним опором R=R1+R2.

      2. Операція «*» множення на константу n еквівалентна послідовному з'єднанню n однакових резисторів.

Скласти програму, що перевіряє виконання цих операцій шляхом створення декількох резисторів з різними параметрами, програмування схеми їхнього з'єднання і розрахунку струму, що протікає, по формулі I=U/R при заданій напрузі U.

Код програми

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Num_4

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

try

{

if (String.IsNullOrEmpty(textBox1.Text))

{

MessageBox.Show("Задайте напряжение");

}

if (dataGridView1.Rows.Count > 0)

{

Resistor resistorSum = null;

for (var j = 0; j < dataGridView1.Rows.Count; j++)

{

var row = dataGridView1.Rows[j];

if (row.Cells["R"].Value != null && row.Cells["Count"].Value != null)

{

var tmpResistor = new Resistor

{

R = double.Parse(row.Cells["R"].Value.ToString())

} * int.Parse(row.Cells["Count"].Value.ToString());

if (resistorSum == null) resistorSum = tmpResistor;

else resistorSum = resistorSum + tmpResistor;

}

}

if (resistorSum != null)

{

try

{

var i = double.Parse(textBox1.Text) / resistorSum.R;

textBox2.Text = String.Format("{0:0.00}", resistorSum.R);

textBox3.Text = String.Format("{0:0.00}", i);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

else

{

MessageBox.Show("Необходимо ввести параметры хотя бы одного резистора");

}

}

else

{

MessageBox.Show("Необходимо ввести параметры хотя бы одного резистора");

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

}

public class Resistor

{

public double R { get; set; }

public static Resistor operator +(Resistor ResistorObj1, Resistor ResistorObj2)

{

return new Resistor

{

R = ResistorObj1.R + ResistorObj2.R

};

}

public static Resistor operator *(Resistor ResistorObj1, int n)

{

return new Resistor

{

R = ResistorObj1.R * n

};

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]