Schrift
[thread]12057[/thread]

JavaScript in Perl übersetzen (Seite 4)

Leser: 2


<< |< 1 2 3 4 5 6 >| >> 53 Einträge, 6 Seiten
Nicki271
 2009-02-20 17:39
#119049 #119049
User since
2008-06-23
26 Artikel
BenutzerIn
[default_avatar]
Stimmt, die haben wie es aussieht alle das gleiche gemacht wie ich.

Jetzt habe ich nämlich auch die Aufgabe in Perl euro in dm umzurechnen und umgekehrt und mit auswahlmöglichkeit.
Aber ich kriegs nicht nicht. Ich versuchs weiter und dann schreibe ich hier mal mein ergebnis. :-)
Nicki271
 2009-02-23 14:21
#119079 #119079
User since
2008-06-23
26 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich habe die nächste Aufgabe gemacht und wieder einen Fehler :-((((

Also ich möchte DM in Euro und Euro in DM umwandeln mit Auswahlmöglichkeit.
Einzeln habe ich die Scripte fertig und sie funktionieren auch.
Jetzt habe ich versucht die beiden Scripte zusammen zufügen mit Auswahlmöglichkeit.
Aber das ist ein Fehler drin. Kann mir bitte jemand helfen und sagen was ich falsch gemacht habe?
Vielen Dank :-)

Hier das Scipt:
#!/usr/bin/perl

use strict;
use warnings;

print "Geben Sie den umzurechnenden Betrag ein:\n";

my $kurs_euro = 1.95583; #1 euro ~ 1.98 DM
my $kurs_dm = 0.51129; #1 DM ~ 0.52 Euro

my $eingabe = 1|2|3;

print "1 fuer Euro in DM oder 2 fuer DM in Euro \n" ;
print "Ihre Auswahl?\n";

if ($eingabe == 1)
{
print "euro in DM";

my $euro = <STDIN>;
chomp $euro;
my $dm = $kurs_dm * $euro;
$dm = sprintf "%.2f",$dm;
$dm =~ tr/./,/;
print "DM-Preis: $dm";
}
elsif ($eingabe == 2)
{
print "DM in Euro";

print "DM-Preis: ";
my $DM = <STDIN>;
chomp $DM;
my $Euro = $kurs_dm * $DM;
$DM = sprintf "%.2f",$Euro;
$DM =~ tr/./,/;
print "Euro-Preis: $DM";
}

elsif ($eingabe == 3)
{
print "Die Wahlmöglichkeit '3' existiert nicht.\n";
}
Struppi
 2009-02-23 14:25
#119080 #119080
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Wie lautet denn die Fehlermeldung?
Nicki271
 2009-02-23 14:27
#119081 #119081
User since
2008-06-23
26 Artikel
BenutzerIn
[default_avatar]
Naja, ich kriege keine Fehlermeldung mehr.

Aber das was ausgegeben wird sieht so aus:

Geben Sie den umzurechnenden Betrag ein:
1 fuer Euro in DM oder 2 fuer DM in Euro
Ihre Auswahl?
Die Wahlmöglichkeit '3' existiert nicht.


Ich kann keine Eingabe mehr machen, es wird einfach alles hintereinander geschrieben...
renee
 2009-02-23 14:32
#119082 #119082
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was willst Du mit my $eingabe = 1|2|3; sagen? Wie Du von STDIN liest, haben wir Dir ja schon in einem früheren Beitrag gezeigt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Nicki271
 2009-02-23 14:42
#119083 #119083
User since
2008-06-23
26 Artikel
BenutzerIn
[default_avatar]
Ja, das habt ihr.

Naja, ich will das es die Auswahlmöglichkeiten 1,2 oder 3 gibt.
Aber ich habe da wohl einen Denkfehler drin...
Linuxer
 2009-02-23 18:00
#119085 #119085
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
Hi,

Bitte setze Deinen Code in Code- oder Perl-Tags. Damit werden Codebeispiele besser lesbar. Siehe auch: http://board.perl-community.de/helptags/

Ansonsten musst Du die Auswahl in einen Skalar einlesen und diesen Vergleichen ob er gültig ist. $eingabe = 1|2|3; hilft da nicht weiter. Es ist zwar syntaktisch korrekt, aber Unsinn an dieser Stelle.

Ich bin mal so frei:

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
#! /usr/bin/perl
use strict;
use warnings;

# damit wir den Kurs schnell wechseln können, setzen wir ihn als erstes
my $kurs = 1.95583;             #  1 Euro ~ 1.96 DM

# Benutzer fragen, was er berechnen lassen will
print <<AUSWAHL;
Was möchten Sie tun?
1) Euro in DM umrechnen
2) DM in Euro umrechnen
AUSWAHL

# Benutzereingabe einlesen (fehlt bisher)
chomp( my $auswahl = <STDIN> );

# Fehleremeldung weil ungueltiger Wert angegeben (es gibt noch andere Moeglichkeiten)
if ( !( $auswahl == 1 || $auswahl == 2 ) ) {
        print "Ungueltige Eingabe!";
        exit 1;
}

# Bis hierher scheint es korrekt zu sein, also fragen wir nach dem Betrag
print "Welcher Betrag soll umgerechnet werden? ";
chomp( my $betrag = <STDIN> );

# Berechnen und Ausgeben anhand der getroffenen Auswahl
if ( $auswahl == 1 ) {
        my $resultat = sprintf "%.2f", $betrag*$kurs;

        $resultat =~ tr/./,/;
        print "$betrag Euro sind $resultat DM.\n";
}
elsif ( $auswahl == 2 ) {
        my $resultat = sprintf "%.2f", $betrag/$kurs;

        $resultat =~ tr/./,/;
        printf "$betrag DM sind $resultat Euro.\n";
}
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Nicki271
 2009-02-24 10:00
#119093 #119093
User since
2008-06-23
26 Artikel
BenutzerIn
[default_avatar]
Vielen Dank, jetzt funktioniert es :-)
Jetzt mach ich noch die letzte Aufgabe und dann kann ich den letzten Lerhrbrief machen und meine Prüfung ablegen :-)))
Gast Gast
 2009-02-24 12:28
#119095 #119095
Nicki271+2009-02-24 09:00:20--
Jetzt mach ich noch die letzte Aufgabe und dann kann ich den letzten Lerhrbrief machen und meine Prüfung ablegen :-)))


Schade!
Nicki271
 2009-02-24 16:53
#119103 #119103
User since
2008-06-23
26 Artikel
BenutzerIn
[default_avatar]
Ich habe da doch noch eine Frage zum der Aufgabe mit dem Umrechner. Das Programm läuft.
Aber was muss ich angeben, damit ich sowohl Zahlen mit Punkt als auch mit Komma eingeben kann zum umrechnen.

Wenn ich 5.5 eingebe klappt es,
wenn ich aber 5,5 eingebe, kommt die Fehlermeldung:

Argument "5,5" isn't numeric in multiplication (*) at 20535_4_test.pl line 14
<< |< 1 2 3 4 5 6 >| >> 53 Einträge, 6 Seiten



View all threads created 2008-06-23 09:29.