1 00:00:00,981 --> 00:00:02,928 დავუბრუნდით ჩვენს პროგრამას 2 00:00:02,928 --> 00:00:05,575 რომელიც იყენებს ფუნქციას, რათა ვინსტონი ოთხჯერ დახატოს 3 00:00:05,575 --> 00:00:06,966 მე შეცვალე ეს ფუნქცია 4 00:00:06,966 --> 00:00:10,106 ახლა ის აჩვენებს, რა ასაკისაა ვინსტონი ცხოვრების ამა თუ იმ მომენტში 5 00:00:10,106 --> 00:00:11,377 მალე ნახავთ რატომაც 6 00:00:11,377 --> 00:00:13,549 მაგრამ მანამდე რაღაც უნდა გითხრათ ვინსტონზე 7 00:00:13,549 --> 00:00:15,901 ვინსტონი ზედმეტად უყვარს დონატები 8 00:00:15,901 --> 00:00:18,437 ის ყოველდღე სამ ცალს ჭამს. 9 00:00:18,437 --> 00:00:21,333 ამიტომაც ამხელა ყვითელი სახე აქვს 10 00:00:21,703 --> 00:00:25,311 იმისთვის, რომ გავაფრთხილო, რამდენად მავნეა მისი ეს ჩვევა 11 00:00:25,311 --> 00:00:28,263 მე მინდა შევცალო პროგრამა ისე, რომ მან აჩვენოს 12 00:00:28,263 --> 00:00:31,755 რამდენი დონატი ექნება მას ნაჭამი ცხოვრების რაღაც მომენტისთვის. 13 00:00:32,095 --> 00:00:35,783 მაგალითად, როცა ის ორი წლისაა 14 00:00:35,873 --> 00:00:41,598 მას ნაჭამი ექნება 3-ჯერ 365 გამრავლებული 2-ზე 15 00:00:41,598 --> 00:00:45,873 სამი დონატი დღეში, წელიწადში 365 დღეა, და ასე ორი წლის განმავლობაში 16 00:00:45,873 --> 00:00:50,330 ამ რიცხვს გამოვაჩენთ სათაურის ქვეშ 17 00:00:50,330 --> 00:00:53,945 ორი ათასი დონატი! ძალიან ბევრია ორწლიანისთვის. 18 00:00:53,945 --> 00:01:02,452 ახლა ვნახოთ, რამდენს შეჭამს ის 14 წლის ასაკში, ანუ 3-ჯერ 365 14-ზე 19 00:01:04,032 --> 00:01:08,446 გამოვიდა 15000 დონატი 20 00:01:08,446 --> 00:01:12,620 შემეძლო გამეგრძელებინა გამოთვლები, მაგრამ კანონზომიერებას ვამჩნევ 21 00:01:13,150 --> 00:01:16,718 გამოთვლები მეორდება 22 00:01:16,718 --> 00:01:20,416 და ყოველ ჯერზე მხოლოდ წლების რაოდენობა იცვლება 23 00:01:20,416 --> 00:01:28,092 როდესაც კოდის ასეთ გამეორებას ვხედავ, ვფიქრობ "შემიძლია აქ ფუნქცია დავწერო?" 24 00:01:28,352 --> 00:01:31,835 კი, ნაღდად შემიძლია. დავწეროთ ეს ფუნქცია 25 00:01:32,795 --> 00:01:34,416 ფუნქციას აი აქ განვსაზღვრავ 26 00:01:34,416 --> 00:01:40,377 დავარქვათ მას calcTotalDonuts (დათვალე დონატების საერთო რაოდენობა) 27 00:01:40,917 --> 00:01:44,228 მას გადაეცემა ერთადერთი პარამეტრი - წლების რაოდენობა 28 00:01:44,228 --> 00:01:48,872 იმიტომ რომ ეს ერთადერთი ცვლადი რამეა ჩვენს გამოთვლებში 29 00:01:49,316 --> 00:01:52,878 აქ, შიგნით, გამოვითვლით მნიშვნელობას და შევინახავთ მას ცვლადში 30 00:01:52,878 --> 00:01:59,600 ეს იქნება 3-ჯერ 365 გამრავლებული წლების რაოდენობაზე 31 00:02:00,680 --> 00:02:03,099 კარგი. ფუნქცია მზადაა 32 00:02:03,099 --> 00:02:08,598 ამ გამოსახულებას აქ calcTotalDonuts-ით შევცვლი 33 00:02:08,598 --> 00:02:11,568 გამოვიძახებ ამ ფუნქციას და გადავცემ ორიანს 34 00:02:12,738 --> 00:02:16,877 ახლა საერთო რაოდენობა აღარ ჩანს 35 00:02:17,227 --> 00:02:19,092 რა მოხდა? 36 00:02:19,092 --> 00:02:22,616 ჩვენმა ფუნქციამ გამოთვალა მნიშვნელობა აი აქ 37 00:02:23,096 --> 00:02:25,640 მაგრამ საერთო რაოდენობა არავის ამცნო 38 00:02:26,050 --> 00:02:30,367 ეს იგივეა, რაც მასწავლებელმა რომ გამოგიძახოთ გაკვეთილზე, დაგისვათ კითხვა 39 00:02:30,367 --> 00:02:31,744 და თქვენ მიხვდეთ პასუხს 40 00:02:31,744 --> 00:02:33,652 მაგრამ მოგერიდოთ მისი ხმამაღლა თქმა. 41 00:02:33,652 --> 00:02:36,998 თქვენ შეასრულეთ დავალება, მაგრამ მასწავლებელი ამას არასდროს გაიგებს 42 00:02:37,348 --> 00:02:41,229 თუ გვინდა, რომ ფუნქციამ გადასცეს მნიშვნელობა იმას, ვინც გამოიძახა 43 00:02:41,229 --> 00:02:45,170 ფუნქციამ უნდა დააბრუნოს მნიშვნელობა 44 00:02:45,710 --> 00:02:49,319 ამისთვის უნდა დავწეროთ: return (დააბრუნე) 45 00:02:49,599 --> 00:02:51,998 და ის, რაც გვინდა დავაბრუნებინოთ 46 00:02:51,998 --> 00:02:55,138 ეს შეიძლება იყოს ცვლადი, მნიშვნელობა ან გამოსახულება 47 00:02:55,138 --> 00:02:57,749 აქ დავწერთ: return totalDonuts 48 00:02:57,749 --> 00:03:01,540 ახლა ის, ვინც გამოიძახებს ამ ფუნქციას, მიიღევს პასუხს 49 00:03:01,880 --> 00:03:04,421 და ჩვენი მნიშვნელობაც გამოჩნდა! 50 00:03:04,771 --> 00:03:06,651 შეგვიძლია ჩვენი ფუნქცია შევამოკლოთ 51 00:03:06,651 --> 00:03:08,791 არ გვჭირდება ცვლადში მნიშვნელობის დამახსოვრება 52 00:03:08,791 --> 00:03:11,181 შეგვიძლია მთელი გამოსახულება return-ის მერე დავსვათ 53 00:03:11,181 --> 00:03:14,268 და გამოგვივა ერთხაზიანი ფუნქცია. 54 00:03:15,068 --> 00:03:17,166 კარგი, ახლა შეგვიძლია დავთვალოთ 55 00:03:17,166 --> 00:03:20,444 რამდენი დონატი შეჭამა ვინსტონმა ცხოვრების ამა თუ იმ მომენტში 56 00:03:20,444 --> 00:03:24,132 უბრალოდ გამოვიძახოთ ეს ფუნქცია და გადავცეთ წლების რაოდენობა 57 00:03:24,212 --> 00:03:28,704 კარგი, აქ გვაქვს calcTotalDonuts(25) 58 00:03:28,704 --> 00:03:30,546 სწორ ადგილას დავწეროთ 59 00:03:30,546 --> 00:03:36,366 calcTotalDonuts(65) 60 00:03:36,366 --> 00:03:43,211 გამოდის, რომ 65 წლის ვინსტონს 70000 დონატი ექნება ნაჭამი! 61 00:03:43,211 --> 00:03:45,096 ეს მართლაც ძალიან ბევრია 62 00:03:45,136 --> 00:03:48,051 არა მგონია ვინსტონმა ამდენს გაუმკლავდეს. 63 00:03:48,051 --> 00:03:50,331 ახლა, რაც გამოთვლები ფუნქციაში გვაქვს 64 00:03:50,331 --> 00:03:52,891 გაგვიმარტივდება მისი ნაწილები შევცვალოთ 65 00:03:53,181 --> 00:03:55,138 მაგალითად, ვინსტონმა ეს რომ ნახოს და თქვას 66 00:03:55,138 --> 00:03:58,865 "ო, ეს ზედმეტია. იქნებ დღეში ერთი ვჭამო?" 67 00:03:58,865 --> 00:04:02,242 ჩვენ აქ გადავალთ და შევცვლით რიცხვს 68 00:04:02,732 --> 00:04:04,329 და ყველაფერი შეიცვლება 69 00:04:04,329 --> 00:04:07,971 გამოვიდა 23000. ისევ ძალიან ბევრია. 70 00:04:07,971 --> 00:04:10,773 ახლა ვინსტონმა შეიძლება თქვას: "კარგი, იქნებ კვირაში ერთი ვჭამო?" 71 00:04:10,773 --> 00:04:12,477 ეს ნორმალურია 72 00:04:12,477 --> 00:04:15,025 365-ს შევცვლით 50-ით 73 00:04:15,025 --> 00:04:17,153 იმიტომ რომ წელიწადში დაახლოებით 50 კვირაა 74 00:04:17,176 --> 00:04:23,866 გაცილებით უკეთესია. 3000 დონატი, საკმაოდ ნორმალურია 75 00:04:23,870 --> 00:04:27,479 როგორც ხედავთ, ფუნქციებისა და დასაბრუნებელი მნიშვნელობების გამოყენებით 76 00:04:27,479 --> 00:04:31,767 საწერი კოდის რაოდენობაც და ვინსტონის წონაც შევამცირეთ