Resistance calculator: Difference between revisions

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

edits