1 00:00:00,000 --> 00:00:02,830 >> დინამიკები 1: მოდით დავწეროთ პროგრამა, რომელიც თხოვს მომხმარებელს დადებითი 2 00:00:02,830 --> 00:00:05,950 რიცხვი, n, და შემდეგ ბეჭდავს თანხა ყველა ნომერი 3 00:00:05,950 --> 00:00:07,980 შორის 1 და n. 4 00:00:07,980 --> 00:00:10,580 ისე, აქ ჩვენ მთავარი, რაც მე უკვე დაწერილი წინასწარ. 5 00:00:10,580 --> 00:00:13,520 და შეამჩნია აქ ზედა მთავარი ვაცხადებ int n. 6 00:00:13,520 --> 00:00:16,079 >> მე მაშინ, შიგნით do ხოლო loop, პირველი ამობეჭდოთ 7 00:00:16,079 --> 00:00:17,530 დადებითი მთელი რიცხვი, გთხოვთ. 8 00:00:17,530 --> 00:00:21,070 მერე გაგრძელება მიიღოს მთელი დან მომხმარებელი CS50 ბიბლიოთეკა მისაღებად 9 00:00:21,070 --> 00:00:22,070 int ფუნქცია. 10 00:00:22,070 --> 00:00:26,410 და შემდეგ ჩემს ხოლო მდგომარეობა აქ, მე დარწმუნდით, რომ n მეტია ან 11 00:00:26,410 --> 00:00:30,480 უდრის 1 სანამ მე რეალურად გაგრძელება რაღაც რომ ღირებულება. 12 00:00:30,480 --> 00:00:31,520 >> რა გავაკეთო შემდეგ? 13 00:00:31,520 --> 00:00:34,690 ისე, მე მოვუწოდებ ფუნქცია, რომ მე ვაპირებ მოვუწოდებთ sigma წარმომადგენელი 14 00:00:34,690 --> 00:00:37,700 კაპიტალის sigma რომ თქვენ შეიძლება გაიხსენა მათემატიკის კლასების, რომ 15 00:00:37,700 --> 00:00:40,860 მიუთითებს, რომ გსურთ მთლიანობაში რაღაც ერთი ღირებულება სხვა. 16 00:00:40,860 --> 00:00:44,540 და რაც რომ ფუნქცია დააბრუნებს, როგორც მისი დაბრუნების ღირებულება, მე ვაპირებ შესანახად 17 00:00:44,540 --> 00:00:46,500 ამ ცვლადში პასუხი. 18 00:00:46,500 --> 00:00:50,280 >> და ბოლოს, ჩემი ბოლო ხაზი მთავარ, მე ვარ აპირებს ამობეჭდოთ რა პასუხი. 19 00:00:50,280 --> 00:00:52,840 რა თქმა უნდა, ჩვენ ჯერ არ ხორციელდება ამ ფუნქციის sigma. 20 00:00:52,840 --> 00:00:54,590 ასე როგორ უნდა წავიდეთ შესახებ აკეთებს, რომ? 21 00:00:54,590 --> 00:00:58,040 >> ისე, ბოლოში ჩემი ფაილი, მე ვარ აპირებს გაგრძელება განაცხადოს ფუნქცია 22 00:00:58,040 --> 00:00:59,450 რომ ბრუნდება int. 23 00:00:59,450 --> 00:01:01,630 და მე ვაპირებ მოვუწოდო რომ ფუნქცია sigma. 24 00:01:01,630 --> 00:01:06,340 და მე ვაპირებ დააკონკრეტა, რომ როგორც შეყვანის რომ ფუნქცია ადასტურებს ასევე int. 25 00:01:06,340 --> 00:01:09,800 და მე მოვუწოდებ უბრალოდ, უნდა იყოს მკაფიო, m ნაცვლად n. 26 00:01:09,800 --> 00:01:12,120 მაგრამ ჩვენ შეეძლო უწოდა ყველაზე არაფერი მინდა. 27 00:01:12,120 --> 00:01:14,930 >> Inside ორგანოს ამ ფუნქციის ვარ აპირებს გააგრძელოს გამოიყენოს ნაცნობი 28 00:01:14,930 --> 00:01:16,420 მშენებლობა, კერძოდ loop. 29 00:01:16,420 --> 00:01:19,010 მაგრამ მე ასევე აპირებს გავაკეთოთ ცოტა საღი აზრის შემოწმების დავრწმუნდეთ, რომ 30 00:01:19,010 --> 00:01:22,340 მომხმარებელი არ მომაწოდეს ნომერი რომ მე არ ელოდება. 31 00:01:22,340 --> 00:01:28,010 კერძოდ, მე ვაპირებ, თუ მ არანაკლებ 1 და, გარკვეულწილად თვითნებურად, 32 00:01:28,010 --> 00:01:31,280 მე უბრალოდ აპირებს დაბრუნებას 0 თუ ნომერი არ არის დადებითი 33 00:01:31,280 --> 00:01:32,800 რიცხვი, როგორც მე ველოდოთ. 34 00:01:32,800 --> 00:01:36,920 >> შემდეგ მე ვაპირებ განაცხადოს ცვლადი ე.წ. თანხა და ინიციალიზაცია მას 0. 35 00:01:36,920 --> 00:01:40,810 ეს საბოლოოდ შესანახად თანხა ყველა ციფრები 1 და მ. 36 00:01:40,810 --> 00:01:43,550 და შემდეგ მე ვაპირებ გამოიყენოთ ნაცნობი forward loop შენება. 37 00:01:43,550 --> 00:01:50,272 განთავსების int i იღებს 1, i ნაკლებია, ვიდრე ან ტოლია m, i plus plus. 38 00:01:50,272 --> 00:01:54,010 და შემდეგ, სხეულის ამ loop, მე უბრალოდ აპირებს გააკეთოს თანხა 39 00:01:54,010 --> 00:01:56,350 შეადგენს თანხა პლუს i. 40 00:01:56,350 --> 00:02:01,900 ან, უფრო მარტივად, თანხა პლუს შეადგენს i, რომელიც აღწევს იგივე შედეგი. 41 00:02:01,900 --> 00:02:04,810 >> და მერე ბოლოს, მე უნდა დაბრუნდეს თანხა, რომ მე გამოთვლილია. 42 00:02:04,810 --> 00:02:07,640 ასე რომ, მე დაამატოთ სანაცვლოდ თანხა. 43 00:02:07,640 --> 00:02:08,560 >> ახლა მე არ კეთდება ამჟამად. 44 00:02:08,560 --> 00:02:11,360 მე უნდა ასწავლოს C, რომ ეს ფუნქცია ნამდვილად არსებობს. 45 00:02:11,360 --> 00:02:14,400 და ასე atop ჩემი ფაილი მე ვაპირებ განაცხადოს რასაც ჩვენ მოუწოდა ფუნქცია 46 00:02:14,400 --> 00:02:18,270 პროტოტიპი, იდენტურია ხელმოწერა რომ მე გამოიყენება, როდესაც განსაზღვრის ფუნქცია 47 00:02:18,270 --> 00:02:19,250 მომენტში წინ. 48 00:02:19,250 --> 00:02:22,450 >> კერძოდ, მაღლა მთავარი, მე ვაპირებ აკრიფოთ int 49 00:02:22,450 --> 00:02:26,080 sigma, int m, მძიმით. 50 00:02:26,080 --> 00:02:29,240 არ ახორციელებს ფუნქცია ერთხელ, უბრალოდ აცხადებდა იგი. 51 00:02:29,240 --> 00:02:32,800 თუ მე ახლა გადარჩენა, კომპილირდება და აწარმოებს ამ პროგრამა, ვნახოთ, რა მივიღო. 52 00:02:32,800 --> 00:02:37,460 რათა sigma 0 dot slash sigma 0. 53 00:02:37,460 --> 00:02:41,050 და ახლა მოდით გთავაზობთ დადებითი მთელი რიცხვი მოსწონს 2, რომელიც უნდა მომეცი 54 00:02:41,050 --> 00:02:45,920 სამი, რადგან ღირებულებებს შორის 1 და 2 1 plus 2 შეადგენს 3. 55 00:02:45,920 --> 00:02:47,300 და მართლაც, ის, რაც მე მისაღებად. 56 00:02:47,300 --> 00:02:49,940 >> მოდით გაუშვით ერთხელ, დრო, ვთქვათ, 3. 57 00:02:49,940 --> 00:02:53,470 ასე რომ, მე უნდა მიიღოს 1 plus 2 plus 3 უნდა მომეცი 6. 58 00:02:53,470 --> 00:02:54,740 და მართლაც, მე კიდევ 6. 59 00:02:54,740 --> 00:02:57,380 >> და მოდით ცდილობენ ერთი ბოლო ღირებულება, ვთქვათ, 50. 60 00:02:57,380 --> 00:03:01,160 და 1,275 არის ჩვენი პასუხი. 61 00:03:01,160 --> 00:03:02,253