Толик Панков
hex_laden
............ .................. ................

October 2025
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Толик Панков [userpic]
C#: Учебное задание. Конвертер температур Кельвин - Цельсий - Фаренгейт

Скриншоты





Как синхронизировать три поля ввода, так чтоб в одном был ввод, а в других отображался результат


1. Создаем три поля ввода типа InputDigitControl Поля надо назвать соответственно idcC, idcK и idcF для значений в цельсиях, кельвинах и фаренгейтах.

2. Создаем три переменных в коде формы, они будут флагами, показывющими в каком поле происходит ввод:
bool enC = false; bool enK = false; bool enF = false;

3. Для всех полей прописываем общее событие типа Enter idc_Enter

4. В обработчике события захватываем текущий контрол в отдельную переменную:
InputDigitControl idc = (InputDigitControl)sender;

5. Вытаскиваем последний символ в имени контрола:
string fldID = idc.Name.Substring(3, 1);

6. Организуем switch, устанавливающий флаги

switch (fldID)
{
    case "C":
        {
            enC = true;
            enK = false;
            enF = false;
        }; break;
    case "K":
        {
            enC = false;
            enK = true;
            enF = false;
        }; break;
    case "F":
        {
            enC = false;
            enK = false;
            enF = true;
        }; break;
}


Копия функции целиком на PasteBin

7. Событие типа Changed тоже назначаем одно для всех контролов.

8 Внутри обработчика события анализируем флаги, производим расчеты и выводим результаты.
Копия функции целиком на PasteBin

Ввод чисел


С помощью моего компонента InputDigitControl

Формулы для перевода температур


C2K:
K = C + 273.15

C2F:
F = C * 9.0 / 5.0 + 32.0

K2C:
C = K - 273.15

K2F:
F = (K - 273.15) * 9.0 / 5.0 + 32.0

F2C:
C = (F - 32.0) * 5.0 / 9.0

F2K:
K = (F - 32.0) * 5.0 / 9.0 + 273.15

Скомпилированный файл


На GitHub

Исходники проекта


На GitHub

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2023/12/10/c-uchebnoe-zadanie-konverter-temperatur-kelvin-tselsij-farengejt/

Tags: ,
Comments
(Anonymous)

нахуя?

Заголовок поста прочитать не судьба?

(Anonymous)

Ты чтоле учишься?

Я учу. Стандартное задание для моих студентов.

И эталонное решение им для самопроверки, пока я тут нормально не настроил связь.

(Anonymous)

Одмин и связь не настроил, пиздец какой-то.

Чел, мои лекции ради фана и за донат. Хочешь обслуживания как в Mail.ru - плати деньги как в Mail.ru, задонать тыщ пять гривен, например.

(Anonymous)

Обслуживание в mail.ru говно, а деньги я лучше ВСУ задоначу на беспилотники.

Вот туда и задонать!

привкольно! А у тебя своя школа? Онлайн?

Скорее еж птица гордая, лекция оплачена, я читаю, не оплачена - не читаю. Постоянной совсем уж "школы" нет. А так я и оффлайн раньше читал и уроки вел.

но всеж преподавание не дает такой Доход, как программинг

И программинг-то ща не основной, в связи с переездом. Надо учить очередной человеческий язкы, что меня всегда дико бесило. Придумали бы как в фантастике какой-нибудь общегалактический и не ебали бы мозги.

работаем над этим