Программа расчёта сопротивления двух параллельно соединённых резисторов.
Иногда пользуюсь, чтоб не переводить бумагу.
Расчёт производится по формулам:
R = R1 * R2 / (R1 + R2)
R1 = R * R2 / (R2 - R)
R2 = R * R1 / (R1 - R)
R - сопротивление параллельно соединённых R1 и R2.
Вводим значения R1, R2, R, вместо неизвестного значения вводим 0.
Исходник на PascalABC:
program r1_r1_r3;
//расчёт сопротивления двух параллельно соединённых резисторов
// R = R1 * R2 / (R1 + R2)
// R1 = R * R2 / (R2 - R)
// R2 = R * R1 / (R1 - R)
var
r1, r2, R: real;
procedure find_r1 (const r2,R:real);
begin
writeln('R1=',r2*R/(R2-r):3:2, ' Om');
end;
procedure find_r2(const r1,r:real);
begin
writeln('R2=',r1*R/(R1-r):3:2, ' Om');
end;
procedure find_R(const r1,r2:real);
begin
writeln('R = ',R1*R2/(r1 + r2):3:2, ' Om');
end;
// основная программа
begin
while true do
begin
writeln('расчёт сопротивления двух параллельно соединённых резисторов.');
writeln('Введите значения R1,R2,R.');
writeln('Вместо неизвестного значения введите 0.');
read(r1, r2, R);
writeln('R1=', r1, ', R2=', r2, ', R=', R);
if R1 = 0 then find_r1(r2,R)
else if R2 = 0 then find_r2(r1,R)
else if R = 0 then find_R(r1,r2)
else begin writeln('Введены все значения, проверка:');writeln('R = ',R1,' * ',R2,' / (',R1,' + ',R2,') = ', R1*R2/(r1 + r2):3:2, ' Om');end;
writeln();writeln();
end;
end.