Schrift
[thread]7449[/thread]

addieren oder subtrahieren ohne vorzeichen

Leser: 2


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
popcorn5
 2005-11-08 17:06
#59890 #59890
User since
2003-09-24
60 Artikel
BenutzerIn
[default_avatar]
Hallo (mal wieder),

problem:

ich möchte addieren und subtrahieren können (also perl soll das können), aber ohne dass mir das vorzeichen bekannt ist :)
ein beispiel:

$a=100
$b=-99

$c=$a$b;

meine lösung sieht so aus

if($b < 0)
{
$b=~s/\-//;
$c=$a-$b
}
else
{
$c=$a+$b;
}

gibts da eine bessere lösung ?

danke
pq
 2005-11-08 17:11
#59891 #59891
User since
2003-08-04
12207 Artikel
Admin1
[Homepage]
user image
du willst also die absoluten werte der zahlen addieren/subtrahieren?
dann nimm abs().

edit: ach, dass du das vorzeichen entfernst, hab ich nicht gesehen.
ich kapier dann ehrlich gesagt nicht, was du eigentlich machen willst.\n\n

<!--EDIT|pq|1131465182-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Taulmarill
 2005-11-08 17:20
#59892 #59892
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
hä?!? du schaust erst mal, ob die zahl negativ ist, um ihr dann das vorzeichen per regex (pqs methode ist besser) wegzunehmen um die dann von einer anderen zahl abzuziehen? warum nicht einfach $c = $a + $b??? das macht genau das selbe wie dein code (bitte code tags hinzufügen). ich sehe im moment keinen grund, wesshalb man sich so verbiegen sollte.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
esskar
 2005-11-08 17:25
#59893 #59893
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Taulmarill,08.11.2005, 16:20]ich sehe im moment keinen grund, wesshalb man sich so verbiegen sollte.[/quote]
doch, keine Ahnung von Mathe.
*duck-und-weg*
Ronnie
 2005-11-08 17:45
#59894 #59894
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
EDIT: *grmpf* - siehe esskars Antwort und Korrektur unten.\n\n

<!--EDIT|Ronnie|1131465951-->
pq
 2005-11-08 17:55
#59895 #59895
User since
2003-08-04
12207 Artikel
Admin1
[Homepage]
user image
ich nehme mal an, du weißt nicht, dass man in perl
"+23" + "-42" ohne weiteres ausführen kann und es dasselbe ist wie 23 - 42
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
esskar
 2005-11-08 17:59
#59896 #59896
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Ronnie,08.11.2005, 16:45]
Code: (dl )
$c = $b<0 ? $a-$b : $a+b;

EDIT: Doof wäre aber wenn $a negativ ist, oder schließt du das aus?[/quote]
Code: (dl )
1
2
3
4
5
my $a=100;
my $b=-99;

my $c = $b<0 ? $a-$b : $a+b;
print $c

???
Ronnie
 2005-11-08 18:03
#59897 #59897
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
my $c = $b<0 ? ($a-$b) : ($a+$b);

Okay, keine Beispiele ohne zu testen, außerdem sind $a und $b für andere Dinge vorgesehen.
esskar
 2005-11-08 18:26
#59898 #59898
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
besser keine beispiele ohne zu denken!
was soll denn deiner meinung nach rauskommen?
Ronnie
 2005-11-08 18:29
#59899 #59899
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Okay, vergiß es - dachte er wollte $a + abs($b).\n\n

<!--EDIT|Ronnie|1131467677-->
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2005-11-08 17:06.