Thread Ergebnisse Auflisten (6 answers)
Opened by Dennis at 2013-06-23 23:07

wollik
 2013-06-27 20:27
#168642 #168642
User since
2005-02-04
21 Artikel
BenutzerIn
[default_avatar]
Hallo Dennis,
zum Hochzählen einfach $i++ verwenden, dann wird $i um eins erhöht.
Ich habe Dir Deinen Code einmal in eine Wile-Schleife gepackt, die solange hochzählt, bis der unter $ok eingetragene pi-Wert erreicht ist. Ich habe $ok auf nur 9 Nachkommastellen gesetzt, fange bei 32000 Ecken an und erhöhe die Anzahl der Ecken um 2000 und verringere diesen Step bis auf 1 wenn ich in die Nähe der 9 Nachkommastellen komme. Damit passt das Alles auf ein paar Seiten.

Code: (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
 
#!perl
$| = 1;
use strict;
use warnings;
my $PI = 3.1415926535;
my $ok = 3.141592653;
my ($ecken, $steps, $pi_i, $pi_a);
$ecken = 30000;
$steps = 2000;
$pi_i = 1;
$pi_a = 2;
#Angabe der Anzahl der Ecken des Vielecks die in den Kreis gelegt werden

print "\n\n\t\tSIN\t\t\tTAN\n";
print "\t\t(Innenecken)\t\t(Aussenecken)\n";

while ($pi_i lt $pi_a) {
$ecken = $ecken + $steps;
$pi_i = sin($PI/$ecken)*$ecken;
$pi_a = tan($PI/$ecken)*$ecken;
print ":$steps:\t$ecken\t$pi_i\t$pi_a\n";

if ($pi_i gt $ok) {
print "\n\nPI durch $ecken Innenecken funden!!!\n\n";
last;
}
if ($pi_a lt $ok) {
print "\n\nPI durch $ecken Aussenecken gefunden!!!\n\n";
last;
}

if ($ecken > 101650) { $steps = 1;}
else {
if ($ecken > 101640) {$steps =2;}
else {
if ($ecken > 101600 ) { $steps = 4;}
else {
if ($ecken > 101400) { $steps = 20;}
else {
if ($ecken > 101000) { $steps = 120;}
else {
if ($ecken > 98000) { $steps = 400;}
else {
if ($ecken > 80000) { $steps = 1200;}
else {
if ($ecken > 60000) { $steps = 1800;}
} } } } } }

}

sub tan { sin($_[0]) / cos($_[0]) }


Evtl. kannst Du ja was damit anfangen.

Viele Grüße
WolliK

View full thread Ergebnisse Auflisten