Hi leute ich bin mir sicher langsam nervts mit dem Rechner. Doch leider muss ich auch einen machen. Dieser soll punkt vor strich beachten und den string nach unzulässigen eingaben durchsuchen. Also des mit den unzulässigen eingaben hab ich gelöst aber des mit dem ausrechen noch nciht ganz:).Ich hab überhaupt keinen peil wie ich des machen soll.
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
53
54
55
56
#! /usr/bin/perl -w
################################## Taschenrechner ################################
# #
#Programmierer: Max Florian #
#Unterstützung: Benda Franz #
# #
#Programm: Dies ist ein einfacher Taschenrechner der die vier Grundrechenarten #
# beherscht. Desweiteren war die Aufgabe, dass der Rechner Punkt vor #
# Strich und negative Zahlen beachtet. Zur Sicherheit soll eine #
# Fehlermeldung erscheinen sollte eine ungueltige Ziffer eingeben werden. #
# #
##################################################################################
use strict;
use warnings;
#Ueberpruefen der Usereingaben
sub eingabepruef
{
my $usreingabe = $_[0];
if($usreingabe !~ /^[\d+\+\-\*\/\(\)]+$/)
{
print "Fehler! Sie haben einen oder mehrere Buchstaben verwendet\n";
exit;
}
}
#Hauptprogramm
sub main
{
#Variablendefinition
my $usreingabe = "0"; #Speichert die eingebene Rechnung
my $Ergebnis = "0"; #Zeigt ausgerechnetes Ergebnis an
#Usereingaben werden gespeichert
print "Geben sie ihre Berechung ein:\n";
chomp ($usreingabe = <STDIN>);
#Richtige Usereingaben (keine Sondereingaben)?
&eingabepruef($usreingabe);
#Berechnung der Eingaben
#Zerlegen des Strings
#
#$usreingabe =~ /^(\d+\.?\d*)(d+\.?\[\d+\+\-\*\/]{1})(\d*)([\d+\+\-\*\/]{1})(\d+\.?\d*)$/
print "Ergebnis: $usreingabe\n";
}
main();
exit(0);
(Ich weis der Code sieht nicht so professionell aus wie ihr des gewohnt seid, aber vielleicht könnt ihr mir trozdem helfen)
Zuerst hab ich gedacht dass die eingaben von STDIN in der Variablen einfach berechnet werden, aber des war leider nicht der fall.