WEBVTT 00:00:00.981 --> 00:00:02.928 დავუბრუნდით ჩვენს პროგრამას 00:00:02.928 --> 00:00:05.575 რომელიც იყენებს ფუნქციას, რათა ვინსტონი ოთხჯერ დახატოს 00:00:05.575 --> 00:00:06.966 მე შეცვალე ეს ფუნქცია 00:00:06.966 --> 00:00:10.106 ახლა ის აჩვენებს, რა ასაკისაა ვინსტონი ცხოვრების ამა თუ იმ მომენტში 00:00:10.106 --> 00:00:11.377 მალე ნახავთ რატომაც 00:00:11.377 --> 00:00:13.549 მაგრამ მანამდე რაღაც უნდა გითხრათ ვინსტონზე 00:00:13.549 --> 00:00:15.901 ვინსტონი ზედმეტად უყვარს დონატები 00:00:15.901 --> 00:00:18.437 ის ყოველდღე სამ ცალს ჭამს. 00:00:18.437 --> 00:00:21.333 ამიტომაც ამხელა ყვითელი სახე აქვს 00:00:21.703 --> 00:00:25.311 იმისთვის, რომ გავაფრთხილო, რამდენად მავნეა მისი ეს ჩვევა 00:00:25.311 --> 00:00:28.263 მე მინდა შევცალო პროგრამა ისე, რომ მან აჩვენოს 00:00:28.263 --> 00:00:31.755 რამდენი დონატი ექნება მას ნაჭამი ცხოვრების რაღაც მომენტისთვის. 00:00:32.095 --> 00:00:35.783 მაგალითად, როცა ის ორი წლისაა 00:00:35.873 --> 00:00:41.598 მას ნაჭამი ექნება 3-ჯერ 365 გამრავლებული 2-ზე 00:00:41.598 --> 00:00:45.873 სამი დონატი დღეში, წელიწადში 365 დღეა, და ასე ორი წლის განმავლობაში 00:00:45.873 --> 00:00:50.330 ამ რიცხვს გამოვაჩენთ სათაურის ქვეშ 00:00:50.330 --> 00:00:53.945 ორი ათასი დონატი! ძალიან ბევრია ორწლიანისთვის. 00:00:53.945 --> 00:01:02.452 ახლა ვნახოთ, რამდენს შეჭამს ის 14 წლის ასაკში, ანუ 3-ჯერ 365 14-ზე 00:01:04.032 --> 00:01:08.446 გამოვიდა 15000 დონატი 00:01:08.446 --> 00:01:12.620 შემეძლო გამეგრძელებინა გამოთვლები, მაგრამ კანონზომიერებას ვამჩნევ 00:01:13.150 --> 00:01:16.718 გამოთვლები მეორდება 00:01:16.718 --> 00:01:20.416 და ყოველ ჯერზე მხოლოდ წლების რაოდენობა იცვლება 00:01:20.416 --> 00:01:28.092 როდესაც კოდის ასეთ გამეორებას ვხედავ, ვფიქრობ "შემიძლია აქ ფუნქცია დავწერო?" 00:01:28.352 --> 00:01:31.835 კი, ნაღდად შემიძლია. დავწეროთ ეს ფუნქცია 00:01:32.795 --> 00:01:34.416 ფუნქციას აი აქ განვსაზღვრავ 00:01:34.416 --> 00:01:40.377 დავარქვათ მას calcTotalDonuts (დათვალე დონატების საერთო რაოდენობა) 00:01:40.917 --> 00:01:44.228 მას გადაეცემა ერთადერთი პარამეტრი - წლების რაოდენობა 00:01:44.228 --> 00:01:48.872 იმიტომ რომ ეს ერთადერთი ცვლადი რამეა ჩვენს გამოთვლებში 00:01:49.316 --> 00:01:52.878 აქ, შიგნით, გამოვითვლით მნიშვნელობას და შევინახავთ მას ცვლადში 00:01:52.878 --> 00:01:59.600 ეს იქნება 3-ჯერ 365 გამრავლებული წლების რაოდენობაზე 00:02:00.680 --> 00:02:03.099 კარგი. ფუნქცია მზადაა 00:02:03.099 --> 00:02:08.598 ამ გამოსახულებას აქ calcTotalDonuts-ით შევცვლი 00:02:08.598 --> 00:02:11.568 გამოვიძახებ ამ ფუნქციას და გადავცემ ორიანს 00:02:12.738 --> 00:02:16.877 ახლა საერთო რაოდენობა აღარ ჩანს 00:02:17.227 --> 00:02:19.092 რა მოხდა? 00:02:19.092 --> 00:02:22.616 ჩვენმა ფუნქციამ გამოთვალა მნიშვნელობა აი აქ 00:02:23.096 --> 00:02:25.640 მაგრამ საერთო რაოდენობა არავის ამცნო 00:02:26.050 --> 00:02:30.367 ეს იგივეა, რაც მასწავლებელმა რომ გამოგიძახოთ გაკვეთილზე, დაგისვათ კითხვა 00:02:30.367 --> 00:02:31.744 და თქვენ მიხვდეთ პასუხს 00:02:31.744 --> 00:02:33.652 მაგრამ მოგერიდოთ მისი ხმამაღლა თქმა. 00:02:33.652 --> 00:02:36.998 თქვენ შეასრულეთ დავალება, მაგრამ მასწავლებელი ამას არასდროს გაიგებს 00:02:37.348 --> 00:02:41.229 თუ გვინდა, რომ ფუნქციამ გადასცეს მნიშვნელობა იმას, ვინც გამოიძახა 00:02:41.229 --> 00:02:45.170 ფუნქციამ უნდა დააბრუნოს მნიშვნელობა 00:02:45.710 --> 00:02:49.319 ამისთვის უნდა დავწეროთ: return (დააბრუნე) 00:02:49.599 --> 00:02:51.998 და ის, რაც გვინდა დავაბრუნებინოთ 00:02:51.998 --> 00:02:55.138 ეს შეიძლება იყოს ცვლადი, მნიშვნელობა ან გამოსახულება 00:02:55.138 --> 00:02:57.749 აქ დავწერთ: return totalDonuts 00:02:57.749 --> 00:03:01.540 ახლა ის, ვინც გამოიძახებს ამ ფუნქციას, მიიღევს პასუხს 00:03:01.880 --> 00:03:04.421 და ჩვენი მნიშვნელობაც გამოჩნდა! 00:03:04.771 --> 00:03:06.651 შეგვიძლია ჩვენი ფუნქცია შევამოკლოთ 00:03:06.651 --> 00:03:08.791 არ გვჭირდება ცვლადში მნიშვნელობის დამახსოვრება 00:03:08.791 --> 00:03:11.181 შეგვიძლია მთელი გამოსახულება return-ის მერე დავსვათ 00:03:11.181 --> 00:03:14.268 და გამოგვივა ერთხაზიანი ფუნქცია. 00:03:15.068 --> 00:03:17.166 კარგი, ახლა შეგვიძლია დავთვალოთ 00:03:17.166 --> 00:03:20.444 რამდენი დონატი შეჭამა ვინსტონმა ცხოვრების ამა თუ იმ მომენტში 00:03:20.444 --> 00:03:24.132 უბრალოდ გამოვიძახოთ ეს ფუნქცია და გადავცეთ წლების რაოდენობა 00:03:24.212 --> 00:03:28.704 კარგი, აქ გვაქვს calcTotalDonuts(25) 00:03:28.704 --> 00:03:30.546 სწორ ადგილას დავწეროთ 00:03:30.546 --> 00:03:36.366 calcTotalDonuts(65) 00:03:36.366 --> 00:03:43.211 გამოდის, რომ 65 წლის ვინსტონს 70000 დონატი ექნება ნაჭამი! 00:03:43.211 --> 00:03:45.096 ეს მართლაც ძალიან ბევრია 00:03:45.136 --> 00:03:48.051 არა მგონია ვინსტონმა ამდენს გაუმკლავდეს. 00:03:48.051 --> 00:03:50.331 ახლა, რაც გამოთვლები ფუნქციაში გვაქვს 00:03:50.331 --> 00:03:52.891 გაგვიმარტივდება მისი ნაწილები შევცვალოთ 00:03:53.181 --> 00:03:55.138 მაგალითად, ვინსტონმა ეს რომ ნახოს და თქვას 00:03:55.138 --> 00:03:58.865 "ო, ეს ზედმეტია. იქნებ დღეში ერთი ვჭამო?" 00:03:58.865 --> 00:04:02.242 ჩვენ აქ გადავალთ და შევცვლით რიცხვს 00:04:02.732 --> 00:04:04.329 და ყველაფერი შეიცვლება 00:04:04.329 --> 00:04:07.971 გამოვიდა 23000. ისევ ძალიან ბევრია. 00:04:07.971 --> 00:04:10.773 ახლა ვინსტონმა შეიძლება თქვას: "კარგი, იქნებ კვირაში ერთი ვჭამო?" 00:04:10.773 --> 00:04:12.477 ეს ნორმალურია 00:04:12.477 --> 00:04:15.025 365-ს შევცვლით 50-ით 00:04:15.025 --> 00:04:17.153 იმიტომ რომ წელიწადში დაახლოებით 50 კვირაა 00:04:17.176 --> 00:04:23.866 გაცილებით უკეთესია. 3000 დონატი, საკმაოდ ნორმალურია 00:04:23.870 --> 00:04:27.479 როგორც ხედავთ, ფუნქციებისა და დასაბრუნებელი მნიშვნელობების გამოყენებით 00:04:27.479 --> 00:04:31.767 საწერი კოდის რაოდენობაც და ვინსტონის წონაც შევამცირეთ