Вычисление сопротивления цепи, состоящей из двух резисторов (соединенных последовательно или параллельно) - C (СИ)
Формулировка задачи:
Написать функцию, которая вычисляет сопротивление цепи, состоящей из двух резисторов, которые могут быть соединены последовательно или параллельно. Функция должна проверять корректность параметров: если неверно указан тип соединения, то функция должна возвращать –1.
Решение задачи: «Вычисление сопротивления цепи, состоящей из двух резисторов (соединенных последовательно или параллельно)»
textual
Листинг программы
#include <stdio.h>
#define POSL 1
#define PARAL 2
float resist(float a, float b, int type)
{
if(type !=POSL && type != PARAL)return -1;
if(type == POSL)
return a+b;
if(type == PARAL)
return (a*b)/(a+b);
return -1;
}
int main(void)
{
printf("%f\n", resist(100, 100, POSL));
printf("%f\n", resist(100, 100, PARAL));
return 0;
}
Объяснение кода листинга программы
- Подключение заголовочного файла
для работы с функцией вывода. - Определение двух констант POSL и PARAL для указания типов соединения резисторов (последовательное и параллельное).
- Создание функции resist с тремя аргументами (a, b, type) типа float и int.
- Проверка типа соединения резисторов с помощью оператора
не равнои возврат значения -1 в случае неверного ввода. - В случае последовательного соединения, возврат суммы значений резисторов.
- В случае параллельного соединения, возврат значения, равного произведению резисторов, делённому на их сумму.
- В функции main вывод результатов вызова функции resist с первым аргументом 100, вторым аргументом 100 и третьим аргументом POSL.
- Вывод результатов вызова функции resist с первым аргументом 100, вторым аргументом 100 и третьим аргументом PARAL.
- Возврат 0 в функции main, что означает успешный конец работы программы.