perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5310
davon online: 1
weitere User: 21
Click for quality!




10.09.2010 / 06:04

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Suchanfragen für Scripts/Programmierung zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragQuadratische Funktion
Seitenanfang
Hallo
Ich möchte gerne eine Wertetabelle errechnen lassen für eine beliebige Quadratisch Funktion ax² ! Nun stehe ich vor einem Problem, denn ich möchte das die Wertetabelle nicht untereinander sondern nebeneinander ausgegeben wird sprich x1 y2 y3 und leider gibt er mir
y1 y2 y3

die Wertetabelle von -10 bis 10 wieder ich möchte aber genau andersrum !

und bei dem 2 print also wo er rausgibt welche Funktion es ist rutscht das *x²immer in die nächste Zeile !

ich hoffe ich bin hier im richtigem Forum wo man sowtwas fragen darf ?

hier ist mein Ansatz:

#! /usr/bin/perl

print "Geben Sie den Streckungs/Stauchungsfaktor für die Quadratische Funktion x² ein\n";
$a = <STDIN>;

print "x | $a*x²\n---------------\n";
$x = -10;

while ($x <= 10) {
$y = $a * $x**2;
print "$x | $y\n";
$x += 1;
}

Datum: 03.12.2004-19:21

Beitragre: Quadratische Funktion
Seitenanfang
>> Wertetabelle von -10 bis 10 wieder ich möchte aber genau andersrum <<

Dann aendere einfach deinen Schleifenzaehler.

$x = 10;
while ($x >= -10) {
...
$x--;
}
oder mach gleich eine for() Schleife draus:
for(reverse (-10..10)) {
$x = $_;
...
}

>> rutscht das *x²immer in die nächste Zeile <<

Das liegt daran das Du das Newline von der Eingabe nicht entfernst. Eingaben von STDIN sind genauso zu behandeln wie Daten aus Dateien, da der Zeilentrenner noch mit dranhaengt.

$a = <STDIN>;
chomp($a);

Und was genau meinst Du mit "nebeneinander ausgeben"?

Datum: 05.12.2004-08:58

Beitragre: Quadratische Funktion
Seitenanfang
ja damit meine ich das die wertetabelle nicht
x1 y1
x2 y2
x3 y3

sondern
x1 x2 x3 x4
y1 y2 y3 y4
ausgegeben wird !

Datum: 05.12.2004-10:47

Beitragre: Quadratische Funktion
Seitenanfang
Hallo,

das kannst Du nur über Arrays lösen.
Z.B.:

print "Geben Sie den Streckungs/Stauchungsfaktor für die Quadratische Funktion x² ein\n";
$a = <STDIN>;

print "x | $a*x²\n---------------\n";
$x = -10;

while ($x <= 10) {
$y = $a * $x**2;
push @xw, sprintf("%6.1f",$x);
push @yw, sprintf("%6.1f",$y);
$x += 1;
}
print join("|",@xw)."\n";
print join("|",@yw)."\n";

Dabei musst Du etwas mit der sprintf-Funktion experimentieren, um eine ordentlichen Anzeige zu erhalten.

Ciao
Ingo

Datum: 06.12.2004-08:25

Beitragre: Quadratische Funktion
Seitenanfang
Warum denn zwei Arrays? Und warum X bei der Ausgabe als Float formatieren? Wenn ich vom Ursprungsposting ausgehe, sind das nur die 21 festen Integers von -10 bis +10. Die kann man auch vor den Ergebnissen in einer Schleife ausgeben.

Datum: 06.12.2004-12:23

Beitragre: Quadratische Funktion
Seitenanfang
Ah jetzt versteh ichs auch...

Gib halt erst die X-Werte aus, hier 4 stellig:

for(reverse (-10..10)) {
printf '%+4d ', $_;
}
print "\n";

Und dann die Y-Werte hinterher mit der Schleife die Du schon hast. Solltest dann nur die Ergebnisfloats mit (s)printf formatieren, damit's nicht so zerhackt aussieht, wenn Y laenger als 4 Zeichen ist.

for(reverse (-10..10)) {printf '%+4d', $_;}

Datum: 06.12.2004-12:31

Beitragre: Quadratische Funktion
Seitenanfang
Hallo,

1. es gibt effektiven und lesbaren Code, wobei lesbarer zum Lernen wohl eher besser geeignet ist

2. floats, weil er nicht gesagt hat, dass er als Stauchungsfaktor nur ganze Zahlen eingeben will, so dass es sein kann, dass ihn die Nachkommastelllen interessieren könnten

Ciao
Ingo

Datum: 07.12.2004-08:08

-






-
-