D
donsimon1991
Ich hab in der SuFu nur einen Thread über Fakultät gefunden, aber der hat mir nicht weitergeholfen.
Was ich schon geschafft habe:
Was ich noch schaffen möchte:
So, und jetzt das Shell-Script (Bash):
Der entscheidende Teil ist also in dem "case-Block", wo die 2 steht. Ich hab den Code einfach PHP-Code eingebunden, ist doch ein befriedigendes Syntaxhighlighting. Darf ich das?
Was ich schon geschafft habe:
- die Fakultät von EINER Zahl berechnen
- Fehlermeldungen ausgeben, wenn Null oder mehr als zwei Argumente übergeben wurden
Was ich noch schaffen möchte:
- eine Schleife erstellen, um die Fakultäten von $1 bis $2 zu berechnen und auszugeben
So, und jetzt das Shell-Script (Bash):
PHP:
#!/bin/bash
# Variablen initialisieren
declare -i zahl1=$1
declare -i zahl2=$2
declare -i fakultaet1=1
declare -i fakultaet2=1
# Wenn $1<$2, dann von=$1 und bis=$2
if [ $zahl1 -lt $zahl2 ]; then
declare -i von=$zahl1
declare -i bis=$zahl2
# Wenn $1<$2, dann von=$2 und bis=$1
elif [ $zahl1 -gt $zahl2 ]; then
declare -i von=$zahl2
declare -i bis=$zahl1
fi
# Ueberpruefen, wie viele Argumente uebergeben wurden
case $# in
0)
# Es gibt KEIN Argument ==> Fehlermeldung ausgeben
echo "Bitte uebergeben Sie als Argumente EINE oder ZWEI Zahlen.";;
1)
# Es gibt EIN Argument ==> Fakultaet von $1 berechnen und ausgeben
while [ $zahl1 -gt 1 ]; do
fakultaet1=$fakultaet1*$zahl1
zahl1=$zahl1-1
done
echo "Fakultaet von" $1 "=" $fakultaet1;;
2)
# Es gibt ZWEI Argumente ==> Schleife mit allen Fakultaeten von $1 bis $2 berechnen und ausgeben
while [ $von -le $bis ]; do
while [ $von -gt 1 ]; do
fakultaet2=$fakultaet2*$von
von=$von-1
done
echo $fakultaet2
von=$von+1
done;;
*)
echo "Sie duerfen nur eine oder zwei Zahlen als Parameter eingeben!";;
esac
Der entscheidende Teil ist also in dem "case-Block", wo die 2 steht. Ich hab den Code einfach PHP-Code eingebunden, ist doch ein befriedigendes Syntaxhighlighting. Darf ich das?
Zuletzt bearbeitet von einem Moderator: