Resistance calculator: Difference between revisions
Content added Content deleted
m (ChristerNilsson moved page Parallel Resistor Calculator to Resistance Calculator) |
(→{{header|Perl 6}}: Changed accessors to public) |
||
Line 399: | Line 399: | ||
method res ( ) { |
method res ( ) { |
||
given $ |
given $.symbol { |
||
when '+' { return $ |
when '+' { return $.a.res + $.b.res } |
||
when '*' { return 1 / (1 / $ |
when '*' { return 1 / (1 / $.a.res + 1 / $.b.res) } |
||
default { return $ |
default { return $.resistance } |
||
} |
} |
||
} |
} |
||
method set-voltage ( Numeric $voltage ) { |
method set-voltage ( Numeric $voltage ) { |
||
given $ |
given $.symbol { |
||
when '+' { |
when '+' { |
||
my $ra = $ |
my $ra = $.a.res; |
||
my $rb = $ |
my $rb = $.b.res; |
||
$ |
$.a.set-voltage( $ra / ($ra+$rb) * $voltage ); |
||
$ |
$.b.set-voltage( $rb / ($ra+$rb) * $voltage ); |
||
} |
} |
||
when '*' { |
when '*' { |
||
$ |
$.a.set-voltage( $voltage ); |
||
$ |
$.b.set-voltage( $voltage ); |
||
} |
} |
||
} |
} |
||
Line 426: | Line 426: | ||
method report ( Int $level = 1 ) { |
method report ( Int $level = 1 ) { |
||
my $pad = '| ' x $level; |
my $pad = '| ' x $level; |
||
my $f = ( self.res, $ |
my $f = ( self.res, $.voltage, self.current, self.effect ).fmt('%8.3f'); |
||
say "$f $pad$ |
say "$f $pad$.symbol"; |
||
$ |
$.a.report( $level+1 ) if $.a; |
||
$ |
$.b.report( $level+1 ) if $.b; |
||
} |
} |
||
} |
} |