Thread Extrapolation
(11 answers)
Opened by Fekix at 2019-07-09 15:55 2019-07-10T12:40:17 Fekix Dann sind die Schleife und die Variable %values überflüssig. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 use strict; use warnings; use autodie; use bignum; my ($A, $B) = do { open my $fh, '<', 'input.inp'; $fh->getlines; }; chomp($A, $B); my $x = 0.203 - ((1 - 0.203) / 100); for (1 .. 101) { $x = $x + ((1 - 0.203) / 100); my $y = $A + $x ** $B; print "$x\t$y\n"; } Zeile 1 und 2: kein Programm ohne ![]() ![]() Zeile 3: ![]() ![]() Zeile 4: ![]() Zeile 5: Ich habe die Eingabevariablen umbenannt, weil kleines $a und $b reserviert für ![]() Zeile 6: Verwende Variablen als Dateideskriptor. Diese dürfen einen eingeschränkten Gültigkeitsbereich haben, aber die alten Nacktwörter sind leider global. Siehe ![]() Zeile 7: IO::Handle#getlines alle Zeilen lesen. Dieser Wert ist auch der Rückgabewert des do-Blocks und wird anschließend an $A, $B zugewiesen. Zeile 8: ![]() Zeile 9: ![]() Zeile 11: Zählervariablen sind überflüssig, wenn du nur Ganzzahlen hochzählen willst. Ich bin der Meinung, dass eine Eingabedatei für nur zwei Werte nicht sinnvoll ist. Programmargumente sind leichter zu handhaben: Code (perl): (dl
)
1 2 3 use Getopt::Long qw(GetOptions); my ($A, $B) = (400, 0.2); # default values if not passed as arguments GetOptions('A:f' => \$A, 'B:f' => \$B); Beispiele für Programmaufrufe: |