|
TwojePC.pl © 2001 - 2025
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
Rekurencyjne funkcje w powłoce bash - fibonacci i silnia. , Coyote 18/08/05 20:26 Witam.
Koleżanka ma poprawić projekt do końca sierpnia inaczej nie zaliczy egzaminu. Aby to zrobić należy napisać (między innymi, ale akurat z tym jest problem) funkcje rekurencyjne podane w temacie pod powłoką bash. Ani ona ani ja nie jesteśmy sobie w stanie poradzić z takim zadaniem. Czy ktoś z Was, dobrych ludzi, miałby ochotę pomóc w tej sprawie? Jeśli tak to odezwijcie się do mnie na GG (1650565) o dowolnej porze (zazwyczaj jestem niewidoczny więc...) i ja Was odpowiednio skieruję.
Z góry bardzo dziękujemy, przewidziana nagroda. :)
Pozdrówka
C.Do J23: Buziaki dla Ciebie, Misiu! :*
>>GG 1650565<< - Że sie tak beszczeknei zapytam? , Stone 18/08/05 23:12
Jakiego rodzaju nagroda? Ziwązana z koleżanką:DPozdrawiam
Stone aka S1one - Beszczelnie miało być :D , Stone 18/08/05 23:14
...Pozdrawiam
Stone aka S1one - beszczelnie odpowiem... , Coyote 18/08/05 23:27
...a co mi do tego? :]
A serio - raczej pieniężna :) Choć jak ładnie zagadasz z koleżanką - kto wie, kto wie :)Do J23: Buziaki dla Ciebie, Misiu! :*
>>GG 1650565<< - beszczelnie odpowiem , Stone 19/08/05 00:17
#Silnia:
#!/bin/bash
N=$1
s=1
while [ $N -ge 1 ];
do
s=$[$s * $N]
N=$[$N - 1]
done
echo "$1! = $s"
exit 1
Tyle na dzisiaj, jutro fibonacci, a ładana ta chociaż koleżanka? :DPozdrawiam
Stone aka S1one - acha działa do wartości parametru 20, dalej nie wyrabia bash, , Stone 19/08/05 00:20
nie ma też sprawdzania warunków, typu czy podany parametr jest dodatni i czy jest cyfra.Pozdrawiam
Stone aka S1one - tylko że , BONUS 19/08/05 10:27
to nie jest rekurencyjne :(
mój przykład (rekurencyjny)
#!/bin/bash
#test
nazwa=$0
#tu sprawdzamy jak sie nasz skrypt nazywa
N=$1
s=0
if [ $N -eq 1 ]
then
# jezeli wejscie jest 1 to silnia 1
s=1
else
#jezeli nie to mnozymy to co mamy przes silnia elementu o 1 mniej
pom=$[$N -1]
#tu liczymy ile jest jeden mniej
s=$(./$nazwa $pom)
# tu pod s mamy silnia jeden mniej wolamy ten sam skrypt z parametrem 1 mniej
s=$[ $s * $N ]
# a tu mnozymy
fi
echo $s
# a tu zwracamy wynik
Pozdro
BONUS- o dokładnie, dokładnie... , Coyote 19/08/05 11:18
...a miałbyś może jeszcze ochotę napisać ten drugi? I powiedz, co chciałbyś w zamian.
dzięki :)Do J23: Buziaki dla Ciebie, Misiu! :*
>>GG 1650565<< - jeżeli , BONUS 19/08/05 12:41
dobrze rozumem - trzeba podać n-ty element ciągu fib n>=0
to by było tak
#!/bin/bash
#Ciag Fibonacciego
nazwa=$0
#tu sprawdzamy jak sie nasz skrypt nazywa
N=$1
s=0
if [ $N -eq 0 ]
then
#jezeli mamy na wejsciu 0 to ciag =0
s=0
else
if [ $N -eq 1 ]
then
#jezeli mamy na wejsciu 1 to ciag =1
s=1
else
#bierzemy fib dla elementu N-1
pom=$[$N -1 ]
s=$(./$nazwa $pom)
#bierzemy fib dla elementu N-2
pom1=$[$N -2 ]
s1=$(./$nazwa $pom1)
#mamy fib (N-1) i fib(N-2) czyli liczymy fib (N)=fib(N-1)+fib(N-2) dla N>1
s=$[ $s + $s1 ]
fi
fi
echo $s
# a tu zwracamy wynik
Pozdro
BONUS
PS Pewnie można zrobić to lepiej :) NIe znam się- dzięki , Coyote 19/08/05 17:20
koleżanka już to dostała, zaimplementuje, zobaczy czy wszystko rozumie i czy wszystko działa. W razie czego będę się zgłaszał z pytaniami.
Bardzo jej pomogłeś i w jej imieniu - dziękuję jeszcze raz :)Do J23: Buziaki dla Ciebie, Misiu! :*
>>GG 1650565<< - ok. , Coyote 19/08/05 20:49
wszystko ładnie działa. Bardzo, bardzo, bardzo Ci koleżanka dziękuje. Dałeś jej szansę na zaliczenie tego przedmiotu w tym semestrze. Pozdrówka! :)Do J23: Buziaki dla Ciebie, Misiu! :*
>>GG 1650565<<
- A ok myślałem, , Stone 19/08/05 16:30
że to ma liczyć funkcję rekurencyjną, a nie w sposób rekurencyjny.Pozdrawiam
Stone aka S1one - wybacz... , Coyote 19/08/05 17:19
...jak teraz patrzę, to ja niejasno się wyraziłem.Do J23: Buziaki dla Ciebie, Misiu! :*
>>GG 1650565<< - Nic się nie stało , Stone 19/08/05 17:26
póżno było to ja miałem problemy ze zrozumieniem.Pozdrawiam
Stone aka S1one
|
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
 |
|
|
|