//---------------------------------------------------------------------------
// Проект 16. Маркировка конденсатора
// Код 104 → ёмкость в пФ/нФ/мкФ.
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------

// Трёхзначный код: первые две цифры — значение, третья — степень десятки,
// результат в пикофарадах. Классические 104 → 100 нФ.
double capCodeToPf(int code)
{
    int d = code % 10;
    int base = code / 10;
    return base * pow(10.0, d);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonCalcClick(TObject *Sender)
{
    AnsiString s = EditCode->Text.Trim();
    if (s.Length()!=3) { MemoOut->Text="Введите три цифры, например 104"; return; }
    int code;
    try { code = StrToInt(s); }
    catch (...) { MemoOut->Text="Только цифры"; return; }
    double pf = capCodeToPf(code);
    MemoOut->Lines->Clear();
    MemoOut->Lines->Add(FormatFloat("0.###", pf)       + " пФ");
    MemoOut->Lines->Add(FormatFloat("0.###", pf/1e3)   + " нФ");
    MemoOut->Lines->Add(FormatFloat("0.######", pf/1e6)+ " мкФ");
}
//---------------------------------------------------------------------------
