Schrift
[thread]8073[/thread]

Jeder Anfang muss gemacht werden...: Eines Tages trat ich an,den lichten Pfad (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
Crian
 2006-06-12 13:43
#67197 #67197
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ich hab gleich mit dem Kamelbuch angefangen, aber ich hatte auch schon Programmierungserfahrungen in anderen Sprachen.

Wenn du ein paar GUI-Anwendungen in Perl sehen willst, schau dich mal auf meiner Perlseite um (siehe Sig).
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
docsnyder
 2006-06-13 15:30
#67198 #67198
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@Paddsen

Willkommen!

ZumThema GUI kann ich sagen, daß ich mit "Prima" super zufrieden bin: einfaches Paradigma und trotzdem mächtig und schnell.

Gruß, Doc\n\n

<!--EDIT|docsnyder|1150198285-->
Paddsen
 2006-06-16 12:29
#67199 #67199
User since
2006-06-09
10 Artikel
BenutzerIn
[Homepage] [default_avatar]
So liebe Community, Ich habe schon ein kleines Problem:

Ich hatte vor ein einfaches Programm zu schreiben, dass beim Satz des Pythagoras hilft und nach den gegebenen Seiten frägt...

In der letzten Zeile wird ein Fehler angezeigt, den ich leider nicht nachvollziehen kann:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!perl
print "Das Paddsensche Dreieckswunder\n\n";

print "Programm zum Errechnen non Dreiecksseiten\n\n\n";

print "Hast du die Hypothenuse gegeben?Gib Ja oder Nein ein.\n";

$info1 = <STDIN>;

if ($info1 eq "Ja\n") {
print "Ok, dann gebe sie nun ein\n";
} else {
print "hmm, Pech gehabt\n\n"
}

$hypo = <STDIN>; #Die Hypothenuse

print "...und nun die Seite, die du weisst eingeben...\n\n";

$seite = <STDIN> # Die seite

print "((($hypo ** 2) - ($seite ** 2)) ** 0.5)";


Danke!
nepos
 2006-06-16 12:47
#67200 #67200
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Da fehlt ein Strichpunkt:
Code (perl): (dl )
$seite = <STDIN>; # Die seite

So muss es aussehen.
Dubu
 2006-06-16 12:53
#67201 #67201
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
- Ich sehe weder "use strict" noch "use warnings". Bitte benutze beides. Siehe Wiki:Wissensbasis.UseStrict
- Der Fehler kommt vom fehlenden Semikolon in der drittletzten Zeile.
- Deine print-Anweisung gibt die Formel aus, nicht das Ergebnis. War das so gewünscht?
- Mit chomp() kann man einen eventuellen Zeilenumbruch am Ende eines Strings entfernen. Das möchtest du wahrscheinlich zumindest für $hypo und $seite machen.
Paddsen
 2006-06-16 12:58
#67202 #67202
User since
2006-06-09
10 Artikel
BenutzerIn
[Homepage] [default_avatar]
:D Oh, ich hab die ganze Zeit nur auf die letzte Zeile geachtet, da ja dort der Fehler wegen dem $seite auftritt, Vielen Dank, jetzt funzt es.

Hat von euch wer ne Ahnung, wie man es erreciht, dass das Programm am Ende neugestartet wird?
Paddsen
 2006-06-16 13:31
#67203 #67203
User since
2006-06-09
10 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Dubu,16.06.2006, 10:53]- Ich sehe weder "use strict" noch "use warnings". Bitte benutze beides. Siehe Wiki:Wissensbasis.UseStrict
- Der Fehler kommt vom fehlenden Semikolon in der drittletzten Zeile.
- Deine print-Anweisung gibt die Formel aus, nicht das Ergebnis. War das so gewünscht?
- Mit chomp() kann man einen eventuellen Zeilenumbruch am Ende eines Strings entfernen. Das möchtest du wahrscheinlich zumindest für $hypo und $seite machen.[/quote]
Quote
- Ich sehe weder "use strict" noch "use warnings". Bitte benutze beides. Siehe Wiki:Wissensbasis.UseStrict
- Der Fehler kommt vom fehlenden Semikolon in der drittletzten Zeile.
- Deine print-Anweisung gibt die Formel aus, nicht das Ergebnis. War das so gewünscht?
- Mit chomp() kann man einen eventuellen Zeilenumbruch am Ende eines Strings entfernen. Das möchtest du wahrscheinlich zumindest für $hypo und $seite machen.


Ok, das mit usestrict usw muss ich mir anschauen,aber ich ba es jetzt noch optimiert:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!perl
print "\n\nDas Paddsensche Dreieckswunder\n\n";
print "--------------------------------------------------------------------\n Programm zum Errechnen von Dreiecksseiten im rechtwinkligen Dreieck\n--------------------------------------------------------------------\n\n";
print "Hast du die Hypothenuse gegeben? Gib 'Ja' oder 'Nein' ein.\n\n";
$info1 = <STDIN>;
if ($info1 eq "Ja\n") {
print "\n Ok, dann gebe sie nun ein\n\n";
$hypo = <STDIN>; #Die Hypothenuse
print "\n ...und nun die Seite, die du weisst eingeben...\n\n";
$seite = <STDIN>; # Die seite
print "\n Die fehlende Seite hat die Laenge " . ((($hypo ** 2) - ($seite ** 2)) ** 0.5);
} else {
print "\n Gut. Dann gib jetzt bitte die erste Seite ein:\n\n";
$seite1 = <STDIN>;
print "\n ...und dann die Seite 2 eingeben:\n\n";
$seite2 = <STDIN>;
print "\n Die Laenge der Hypothenuse c betraegt " . (($seite1 ** 2) + ($seite2 **2)) ** 0.5;
}

print "\n--------------------------------------------------------------------"
Paddsen
 2006-06-16 14:48
#67204 #67204
User since
2006-06-09
10 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ok, ich habe use strict und use warnings in mein script eingebaut und my davor gesetzt: dazu hab ich jetzt noch ne Frage:

Es gibt ja auch Variablen für zB die zeit (time..?), die ich ja dann nicht deklarieren muss und somit kein my beim Einführen schreiben muss oder muss ich das auch?

Was mich auch noch interessieren würde, wäre wie man die Zahl PI in einem Script auf unendlich viele nachkommastellen berechnen kann, gibt es da in perl einfache wege? (natürlich errechnet der rechner die zahl nur bis man das prog beendet...)

Und zweitens würde es mich interessieren ob es sowas wie waits gibt, also Anweisungen, die den Programm sagen, dass es eine Weile nichts machen soll und erst nach einiger Zeit weiterabarbiuten soll...
Dubu
 2006-06-16 15:15
#67205 #67205
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Paddsen,16.06.2006, 12:48]Ok, ich habe use strict und use warnings in mein script eingebaut und my davor gesetzt: dazu hab ich jetzt noch ne Frage:

Es gibt ja auch Variablen für zB die zeit (time..?), die ich ja dann nicht deklarieren muss und somit kein my beim Einführen schreiben muss oder muss ich das auch?
[/quote]
time() ist eine Funktion, keine Variable, auch nicht, wenn man sie ohne Klammern schreibt.

Perl-interne Variablen (siehe perlvar) müssen nicht extra deklariert werden. Es kann aber nötig sein, sie zu lokalisieren, wenn man ihnen vorübergehend einen anderen Wert geben möchte. Ein Beispiel: Wenn man eine Datei absatzweise einlesen möchte, kann man dafür den Input Record Separator auf "" setzen. Das sollte natürlich nur lokal geschehen, damit der restliche Code nicht betroffen ist.
Code: (dl )
1
2
3
4
5
6
7
8
open my $fileh, '<', 'meinroman.txt' or die $!;
{
   local $/ = "";
   while (my $absatz = <$fileh>) {
       # ... mach was mit dem Absatz
   }
}
close $fileh;

Der äußere Block begrenzt hier die Wirkung auf $/.

Quote
Was mich auch noch interessieren würde, wäre wie man die Zahl PI in einem Script auf unendlich viele nachkommastellen berechnen kann, gibt es da in perl einfache wege? (natürlich errechnet der rechner die zahl nur bis man das prog beendet...)

Es gibt Bibliotheken, um mit Ganz- oder Fließkommazahlen beliebiger Länge zu rechnen, siehe CPAN:Math::BigInt oder CPAN:Math::BigFloat. Den Pi-Algorithmus musst du aber liefern. ;)

Quote
Und zweitens würde es mich interessieren ob es sowas wie waits gibt, also Anweisungen, die den Programm sagen, dass es eine Weile nichts machen soll und erst nach einiger Zeit weiterabarbiuten soll...

perldoc -f sleep
Paddsen
 2006-06-16 16:00
#67206 #67206
User since
2006-06-09
10 Artikel
BenutzerIn
[Homepage] [default_avatar]
Also das sleep geht prima, aber das mit PI ist mir wohl noch zu hoch, hab ja erst begonnen mit perl und sollte nichts überstürzen... ???


Habt ihr noch Ideen für kleine Programme an denen ich mich versuchen kann mit meinem bescheidenen Wissen, denn Perl macht echt Fun, selbst wenn man bisher noch wenig Möglichkeiten hat :)
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



View all threads created 2006-06-09 23:34.