Thread Dezimalzahlen ausgeben
(21 answers)
Opened by Sade J at 2010-10-18 17:47
Ich hoffe du hast dich informiert wie CGIs funktionieren?
Ich würde niemals versuchen die Eingaben selber zu Parsen, wenn ich nicht genau weiß wie bei CGI Die Werte Kodiert werden. Und warum den Aufwand? Es gibt ein fertiges und sehr gut getestetes Modul, dass das macht! Ich habe keine Ahnung was du hier versuchst, ich vermute mal, du willst die Zahlen aus einem String extrahieren. Das geht sicher einfacher und übersichtlicher, wen du sagst was du da eigendlich für einen String zerlegen willst. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 $daten = <>; @daten = split("",$daten); splice(@daten,3,5); shift@daten; splice(@daten,1,1); @zahl = @daten; pop @zahl; $zahl = join("",@zahl); @potenz = splice(@daten,1,1); $potenz = join("",@potenz); Hier ein Code der funktionieren sollte: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 #!/usr/bin/perl -w # bitte immer "strict" und "warnings" nutzen use strict; use warnings; # Programm ist ein CGI use CGI; # Fehler an den Browser use CGI::Carp qw(fatalsToBrowser); # CGI initialisieren my $cgi=CGI->new(); # Header senden WICHTIG! print $cgi->header(); # alle werte holen my $zahl=$cgi->param('zahl') || 0; my $potenz=$cgi->param('potenz') || 0; # HTML einleiten print "<html><body>"; # sind alles Zahlen? # testen mit einem regulären Ausdruck my $regexp=qr(^[+-]?\d+$); if($zahl=~$regexp && $potenz=~$regexp) { my $faktor=$zahl; if ($potenz == 0) { $zahl=1; } elsif ($potenz > 0) { for (my $i = 1;$i <= $potenz - 1;$i = $i + 1) { $zahl = $zahl * $faktor; } } else { $zahl = 1/$zahl; $faktor = 1/$faktor; for (my $j = -1;$j >= $potenz + 1;$j = $j - 1){ $zahl = $zahl * $faktor; } } print "<h1>Die Lösung ergibt: $zahl</h1>\n"; } else { print "<h1>Zahl, Faktor und Potenz müssen Zahlen sein!</h1>\n"; } print "</body></html>\n"; Der Aufruf im Browser wäre dann: Code: (dl
)
http://deine.url.sonstwo/cgi-bin/das_script.cgi?zahl=10&potenz=10 EDIT: Das mit "Faktor" korrigiert. Last edited: 2010-10-19 11:01:55 +0200 (CEST) |