VII קלח - םיטפירקס תפטעמ םע היצקנופ תויובכרומב קימעהל


.היסרוקרו םיימוקמ םינתשמב שומיש ומכ תוילנויצקנופ תונוכתב קימעהל ןמזה עיגה וישכע .זגפ לש םיטפירקס תחת תויצקנופ בותכל דציכ יסיסב ןויער ךל ןתנ ילוא "תפטעמ לש םיטפירקסב תויצקנופ לש הביתכו הנבה

.הטמל תחא המגוד לע לכתסנ ואוב הזה רבדה תא ריבסהל תנמ לע .ימוקמ ופקיה רמולכ עיפומ אוה וב דוק שוג התואמ שיגנ היהי ימוקמ כ זרכומה הנתשמ .הנתשמה רהצומה ובש םיוסמה קולב יולת הז ?ימו

#!/bin/bash 

func( ) { 
	local i=10 
	j=20 
	echo "i from func = $i" 
	echo "j from func = $j" 
} 

echo "i outside func = $i" 
echo "j outside func = $j" 

func 

echo "i outside func = $i" 
echo "j outside func = $j" 

exit 0

.היהי טלפה ל"נה טירסתה עוציב תעב

i outside func = 
j outside func = 
i from func = 10 
j from func = 20 
i outside func = 
j outside func = 20

.ימוקמ אלו func ךותב זרכוהש j הנתשמל ןכמ רחאל תשגל היה ןתינ תעכ .תרחא האצות תורציימ דה תורהצה 2 ןתוא func היצקנופל האירק רחאל .תונושארה דהה תורהצה ינש ועצ

.לדחמ תרירב אוה func ךותב ללכ ךרדב רהצומה j הנתשמהש בל םיש .ץוחבמ 10 ךרעל תשגל היה ןתינ אל , func היצקנופה ךותב היה ופקיהש ןוויכמ ? i ימוקמה הנתשמ

.היסרוקר ,תויצקנופ תחת רתויב ןיינעמה ףיעסל רובענ ואוב .תויצקנופ לש םיקולב ךותב םהב שמתשהל דציכו םיימוקמ םינתשמ ריכמ התא תעכ

:כ תונשיה סחי בותכל םילוכי ונא ךכיפל .n! = 1 x 2 x 3 x ... x (n-1) x n -ש םיעדוי ונחנא .רפסמ לש ןוירוטקפ תאיצמל המגודה תא לוקש .םתירוגלא ותוא לש רתוי הטושפ הסרג תועצמאב םתירוגלא אטבמכ

n! = (n-1)! x n

.רמולכ ,תמדוקה האצותה תא ליפכהל ידכ החיש לכמ רזחהה ךרעב שמתשהלו היצקנופ התואל תיביסרוקר רשקתהל ונל לק זא

5! = 4! x 5
4! = 3! x 4
3! = 2! x 3
2! = 1! x 2
1! = 0! x 1

.היסרוקרו םיימוקמ םינתשמ תועצמאב רפסמ לש הדבוע תאיצמל טפירקס בותכל םיסנמ ונא ןאכ

#!/bin/bash 

fact( ) { 
	local num=$1 
	if [ $num -eq 0 ]; then 
		ret=1 
	else 
		temp=$((num-1)) 
		fact $temp 
		ret=$((num*$?)) 
	fi 
	return $ret 
} 

fact 5 

echo "Factorial of 5 = $?" 

exit 0

num ךרע לכ ןוסחאל שמשמה ימוקמ הנתשמ אוה n-1 אל וא ספאל הווש רפסמה םא קדוב סיסבה יאנת ןאכ .החיש לכב (0 ןכש! = 1 םיילילש םירפסמל רדגומ וניא ילאירוטקפהו). תעכ .ולש רשקתמל 1 ךרע

.תגצומו תינושארה רשקתמה תרהצהל תרבעומ 120 תיפוסה האצותה . ret = 5 x 24 איה תיפוסה האצותהו 24 היהי הרזחהה ךרע num = 5 רשאכ ףוסבל .האלה ןכו ret = 2 x 1

.ל"נה אשונל ןורתיפ אוצמל םישמתשמל רתונ הז זא .םילודג םימלש םירפסמ ריזחהל תולוכי ןניא תויצקנופ ,םדוקה רמאמב יתרבסהש יפכ .ל"נה טירסתב תחא היעב שי

ש. ןכ איה הבושתה ?םיימוקמ םינתשמב שומיש אלל היסרוקר עצבל םילוכי ונא םאה.

:אוה יסיסבה תונשיהה סחי .היסרוקר תועצמאב י'צאנוביפ תרדס תגצהל האבה המגודב ןייע

fib(0) = 0 
fib(1) = 1 
else 
	fib(n) = fib(n-1) + fib(n-2)

Fibonacci series using recursion

#!/bin/bash 

fib( ) { 
	a=$1 
	if [ $a -lt 2 ]; then 
		echo $a 
	else 
		((--a)) 
		b=$(fib $a) 

		((--a)) 
		c=$(fib $a) 

		echo $((b+c)) 
	fi 
} 

for i in $(seq 0 15) 
do 
	out=$(fib $i) 
	echo $out 
done 

exit 0

.עוציבה ךלהמב טירסתה תמירז תא ןיבהל ולכותש הווקמ ינא .ל"נה טירסתב םיימוקמ םינתשמב םישמתשמ אל

.C ומכ תונכת תופשב היסרוקר רשאמ רתוי תיטיא טירסתב היסרוקר ?אל ,ןמז תצק חקול הז .ל"נה טירסתה עוציבל עגונה דחוימ והשמל בל תמש .וגצויש י'צאנוביפ תרדסב םיחנומה רפסמ תא גציימ 15 ךרעה ןאכ

... דועו דועו םיכרעמ לע םיבורקה םירמאמה תא לבקל ידכ Tecmint םע ןכדועמ ראשיה .script טירסתב תויצקנופה קלח תא םייסל ןנכתמ ינא הז רמאמב


כל הזכויות שמורות. © Linux-Console.net • 2019-2024