1 00:00:00,000 --> 00:00:11,280 2 00:00:11,280 --> 00:00:13,650 >> დინამიკები 1: All უფლება. 3 00:00:13,650 --> 00:00:14,390 კეთილი იყოს. 4 00:00:14,390 --> 00:00:19,260 ეს არის კვირას ორი CS50 და ჩვენ გვაქვს დღემდე იყენებს ფუნქციები მაგრამ 5 00:00:19,260 --> 00:00:20,830 მეტწილად აღებული მათ გადასცა. 6 00:00:20,830 --> 00:00:23,430 ჩვენ გამოყენებული printf რომელსაც აქვს მხარე ეფექტი ბეჭდვა 7 00:00:23,430 --> 00:00:24,110 რამ ეკრანზე. 8 00:00:24,110 --> 00:00:25,790 ჩვენ გამოყენებული მისაღებად-int, მიიღეთ float. 9 00:00:25,790 --> 00:00:29,230 >> მაგრამ თუ თქვენ ნამდვილად გინდათ შექმნათ საკუთარი ფუნქციები, როგორც ზოგიერთი 10 00:00:29,230 --> 00:00:31,740 თქვენ ალბათ უკვე შეუდგა გააკეთოს პრობლემა Set ერთი, თუმცა 11 00:00:31,740 --> 00:00:33,140 არ არის მკაცრად საჭირო? 12 00:00:33,140 --> 00:00:37,150 ისე, მოდით წავიდეთ წინ და დავუბრუნდეთ, რომ პრობლემა მხოლოდ სვამს შესახებ for 13 00:00:37,150 --> 00:00:40,660 მათი სახელი და ბეჭდვა რაღაც ეკრანზე, მაგრამ ცდილობენ ფაქტორი გარკვეული 14 00:00:40,660 --> 00:00:44,000 საქართველოს საერთო რომ ჩვენ ჩანს ჩვენი კოდი დღემდე. 15 00:00:44,000 --> 00:00:45,120 ასე, რომ მე ვგულისხმობ შემდეგ. 16 00:00:45,120 --> 00:00:47,315 >> მე ვაპირებ წავიდეთ წინ და შევქმნათ ახალი პროგრამა, მხოლოდ დარეკვა 17 00:00:47,315 --> 00:00:49,320 ეს hello.c, როგორც ყოველთვის. 18 00:00:49,320 --> 00:00:53,730 მე ვაპირებ წავიდეთ წინ და მისცეს თავს მოიცავს სტანდარტული io.h ზედა. 19 00:00:53,730 --> 00:00:57,040 მე ვაპირებ ასევე მისცეს თავს preemptively CS50 ბიბლიოთეკის ისე, რომ 20 00:00:57,040 --> 00:00:59,080 მე არ მიიღოს დაიყვირა at მიერ შემდგენელი. 21 00:00:59,080 --> 00:01:02,400 ახლა კი მე ვაპირებ წავიდეთ წინ და აცხადებენ, int, მთავარი, ბათილად. 22 00:01:02,400 --> 00:01:09,020 >> შემდეგ კი აქ, ეს არის სადაც მინდა იმისათვის, რომ დავიწყოთ გამოაცხადოს ფუნქციებს 23 00:01:09,020 --> 00:01:12,090 რამდენიმე სხვა ფუნქცია, მე ვარ აპირებს დაწეროს, მაგრამ ეს არ 24 00:01:12,090 --> 00:01:13,820 გაკეთებული არსებობს. 25 00:01:13,820 --> 00:01:19,210 მაგალითად, ვარაუდობენ, რომ მინდოდა წერენ ფუნქცია, რომელიც საშუალებას აძლევს ჩემთვის 26 00:01:19,210 --> 00:01:23,830 ამობეჭდოთ hello, მძიმე, და შემდეგ რამდენიმე მომხმარებლის სახელზე. 27 00:01:23,830 --> 00:01:29,010 იმის ნაცვლად, რომ გრძელდება ამის გაკეთება printf hello,% s, რომ არ იქნება, თუ 28 00:01:29,010 --> 00:01:33,380 იქ იყო ფუნქცია მოუწოდა არ printf მაგრამ ბეჭდური სახელი? 29 00:01:33,380 --> 00:01:36,600 >> ასე რომ, სხვა სიტყვებით, მინდა შეძლებს დაწერა პროგრამა, რომელიც აკეთებს პატარა 30 00:01:36,600 --> 00:01:37,710 მსგავსი რამ. 31 00:01:37,710 --> 00:01:42,070 პირველი, მე ვაპირებ ვთქვა printf თქვენი სახელი, რითაც რითაც მომხმარებელს 32 00:01:42,070 --> 00:01:46,150 მომეცი მისი სახელი და შემდეგ მე აპირებს გამოიყენოს ნაცნობი სიმებიანი s აქ 33 00:01:46,150 --> 00:01:47,290 ვაცხადებ, სიმებიანი. 34 00:01:47,290 --> 00:01:50,420 მომეცი ცვლადი ტიპის ტექსტი, ეძახით s, და მაღაზიაში რომ 35 00:01:50,420 --> 00:01:52,120 შედეგად მოუწოდებენ მიიღოს სიმებიანი. 36 00:01:52,120 --> 00:01:56,060 მაგრამ ახლა ამ კვირის წარსულში, მე გარკვეულწილად tediously გაკეთდეს hello,% s / n. 37 00:01:56,060 --> 00:01:58,630 38 00:01:58,630 --> 00:02:02,570 >> ხოლო სხვა სიტყვებით, ჩვენ ვნახეთ ამ მაგალითად რამოდენიმე ჯერ, და ეს 39 00:02:02,570 --> 00:02:05,280 ტრივიალური მაგალითი იმიტომ, რომ იქ მხოლოდ ერთი ხაზი კოდი, ასე რომ ეს ნამდვილად არ 40 00:02:05,280 --> 00:02:06,860 დიდი გარიგება შენარჩუნება ბეჭდვის ერთხელ. 41 00:02:06,860 --> 00:02:09,990 თუმცა ვარაუდობენ, რომ ეს ხაზი კოდი რეალურად იყო ხდება ტვირთი, და 42 00:02:09,990 --> 00:02:12,900 ეს არ არის ერთი ხაზი კოდი, მაგრამ 10 ხაზი კოდი რამდენიმე კვირის განმავლობაში დღეიდან, 43 00:02:12,900 --> 00:02:15,190 და თქვენ მხოლოდ მისაღებად დაღლილი საქართველოს გადაწერა და pasting ან 44 00:02:15,190 --> 00:02:17,180 retyping იმავე კოდი. 45 00:02:17,180 --> 00:02:22,100 თუ არ იქნება ლამაზი ნაცვლად აკეთებს printf hello,% s და ა.შ., 46 00:02:22,100 --> 00:02:26,500 რომ არ იქნება, თუ იქ იყო ფუნქცია მოუწოდა ბეჭდვითი სახელი, რომელიც 47 00:02:26,500 --> 00:02:27,560 იღებს არგუმენტს - 48 00:02:27,560 --> 00:02:29,120 სხვა სიტყვებით, ის შეყვანა - 49 00:02:29,120 --> 00:02:30,620 და შემდეგ მძიმით. 50 00:02:30,620 --> 00:02:33,240 ასე რომ, ფუნქცია, რომ არა ეს იყოს ლამაზი თუ არსებობდა? 51 00:02:33,240 --> 00:02:36,690 მაშინ მე არ უნდა ფიქრი რა printf, რა% s და ყველა 52 00:02:36,690 --> 00:02:39,400 ამ სირთულეების, რომლებიც არ არის, რომ საინტერესოა. 53 00:02:39,400 --> 00:02:40,570 ისინი სასარგებლო. 54 00:02:40,570 --> 00:02:44,700 >> ასე რომ, ბეჭდვის სახელი, სამწუხაროდ, არ იყო გამოიგონეს 40 პლუს წლის წინ. 55 00:02:44,700 --> 00:02:45,980 არავის ეგონა, რომ დაწერა. 56 00:02:45,980 --> 00:02:48,300 მაგრამ ეს სილამაზე, რომელსაც პროგრამირების ენა, ისევე, როგორც 57 00:02:48,300 --> 00:02:52,930 Scratch შეგიძლიათ განსაზღვრავს საბაჟო კორპუსები, ისე in C და ყველაზე ნებისმიერ ენაზე, შეგიძლიათ 58 00:02:52,930 --> 00:02:57,260 განსაზღვროს საკუთარი ფუნქციონირება, შეიძლება თქვენ განსაზღვრავს საკუთარ ფუნქციებს. 59 00:02:57,260 --> 00:03:01,710 ასე რომ, მიუხედავად იმისა, რომ ჩვენ მთავარ მიერ ავტომატურად უფასოდ, შეგვიძლია განაცხადოს 60 00:03:01,710 --> 00:03:02,730 ჩვენი საკუთარი ფუნქციები. 61 00:03:02,730 --> 00:03:05,670 >> ამიტომ, მე ვაპირებ რაღაც ოთახში აქ დასაწყისშივე, და მე ვაპირებ განაცხადოს ჩემი 62 00:03:05,670 --> 00:03:08,210 საკუთარი ფუნქცია, ხდება თვალი ცოტა უცნაურია, პირველ რიგში, მაგრამ ჩვენ მოვა 63 00:03:08,210 --> 00:03:09,400 უკან ეს ადრე ხანგრძლივი. 64 00:03:09,400 --> 00:03:12,310 მე ვაპირებ ვთქვა, ბათილად, რითაც მითითებით ამ ფუნქციას აკეთებს 65 00:03:12,310 --> 00:03:16,040 რაღაც, აქვს გვერდითი ეფექტი, მაგრამ ეს არ დაბრუნდება რაღაც ჩემთვის 66 00:03:16,040 --> 00:03:18,810 ანალოგიურად, რომ მიიღოთ int ან მიიღოს სიმებიანი თავად აკეთებს. 67 00:03:18,810 --> 00:03:22,450 და მე ვაპირებ, რათა ამ ფუნქციის სახელი ბეჭდვითი სახელი და მე ვაპირებ 68 00:03:22,450 --> 00:03:26,470 განმარტებით, ეს ბიჭი აპირებს სიმებიანი, და მე ვაპირებ მოვუწოდო, რომ 69 00:03:26,470 --> 00:03:27,600 სიმებიანი სახელი. 70 00:03:27,600 --> 00:03:32,100 მე ვერ ვუწოდებ არაფერი მინდა, მაგრამ მე მინდა ჩემი კოდი უნდა იყოს თვითმმართველობის დოკუმენტირების. 71 00:03:32,100 --> 00:03:34,770 სხვა სიტყვებით, თუ ერთი თქვენგანი იყო ამ ფაილის გახსნის და წაიკითხავს, ​​შეიძლება 72 00:03:34,770 --> 00:03:39,020 სახის infer საწყისი სახელი რომ შეყვანის რა როლი ეს უნდა ითამაშოს. 73 00:03:39,020 --> 00:03:42,270 >> ახლა კი ქვემოთ, რომ მე ვაპირებ გახსნა curly მუდმივი წინააღმდეგობა გაუწიოს და დახურული curly მუდმივი წინააღმდეგობა გაუწიოს, 74 00:03:42,270 --> 00:03:47,140 და ასე შემდეგ შეამჩნია მე მოჰყვება იგივე ნიმუში წლის ხაზების ოთხი მეშვეობით შვიდი როგორც 75 00:03:47,140 --> 00:03:51,622 მე უკვე შემდეგ კარგი კვირაში პლუს ახლა შორის, ვთქვათ, ხაზების ცხრა და 76 00:03:51,622 --> 00:03:53,400 14, რომელიც შეადგენს ძირითად. 77 00:03:53,400 --> 00:03:56,160 სხვა სიტყვებით, ბეჭდვა სახელი არის კიდევ ერთი ფუნქცია. 78 00:03:56,160 --> 00:03:58,990 ახლა, შემდგენელი არ აპირებს ვიცი მოვუწოდებთ ამ რამ ავტომატურად 79 00:03:58,990 --> 00:04:02,670 იმიტომ, რომ მე ფაქტიურად მხოლოდ გამოიგონა ის, მაგრამ ეს ვიცი მაინც მოვუწოდებთ მთავარი 80 00:04:02,670 --> 00:04:08,710 ავტომატურად და შემდეგ, რა თქმა უნდა ხაზი 13, მოგიწოდებთ, საკუთარი ფუნქცია. 81 00:04:08,710 --> 00:04:12,805 და რადგან მე განაცხადა, რომ ფუნქცია up on line ოთხი ადრე, მთავარ 82 00:04:12,805 --> 00:04:16,579 ამ აპირებს ასწავლიან შემდგენელი რა გაცემა, unquote, "ბეჭდვის სახელი" 83 00:04:16,579 --> 00:04:18,140 ნიშნავს და რა უნდა გააკეთოს. 84 00:04:18,140 --> 00:04:22,700 ასე რომ, მე ვარ ერთგვარი ვაძლევთ მას ახალი საბაჟო ბლოკირება კონტექსტში, ვთქვათ, ნულიდან. 85 00:04:22,700 --> 00:04:27,240 >> ასე რომ, აქ, მე შემიძლია დააყენა, რომ ძალიან ხშირი ან განმეორებითი ნიმუში კოდი მე შენარჩუნება 86 00:04:27,240 --> 00:04:32,300 წერა კლასის, printf % S hello,% s / n ", - 87 00:04:32,300 --> 00:04:36,720 88 00:04:36,720 --> 00:04:37,590 რა მინდა დააყენა აქ? 89 00:04:37,590 --> 00:04:39,200 S? 90 00:04:39,200 --> 00:04:41,420 მინდა დააყენა სახელი ამ კონტექსტში. 91 00:04:41,420 --> 00:04:43,440 ასე რომ შეამჩნია ცოტა dichotomy აქ. 92 00:04:43,440 --> 00:04:47,680 იმიტომ, რომ მე ვაცხადებ საკუთარი ფუნქცია მე და გარკვეულწილად თვითნებურად მოუწოდა 93 00:04:47,680 --> 00:04:50,880 ეს ბეჭდვა სახელით, და რადგან მე მითითებული ფრჩხილებში, რომ ეს 94 00:04:50,880 --> 00:04:55,035 ფუნქცია იღებს ერთ არგუმენტი, ტიპის რაც სიმებიანი - ამიტომ სიტყვა 95 00:04:55,035 --> 00:05:00,010 ან ფრაზა ან მსგავსი რამ - და მე მოუწოდებენ, რომ არგუმენტი სახელი, რომ 96 00:05:00,010 --> 00:05:04,770 ნიშნავს მხოლოდ ცვლადს, ის ფარგლებში, ასე ვთქვათ, არის სახელი. 97 00:05:04,770 --> 00:05:07,780 >> ერთადერთი შორის არსებობს რა ორი curly აფრთხილებს, რა თქმა უნდა? 98 00:05:07,780 --> 00:05:12,990 ისე მართლაც, ისევე, როგორც ხაზი 10 გზით 14, ასე რომ ისევე როგორც ორშაბათს ვერ გამოიყენებს 99 00:05:12,990 --> 00:05:17,650 S, მაგრამ რა შეგვიძლია გავაკეთოთ არის გაივლის S შევიდა ბეჭდვითი სახელი. 100 00:05:17,650 --> 00:05:21,030 ბეჭდვა სახელის უბრალოდ ასე ხდება, რათა ეს იგივე, სინონიმი, მეტსახელად 101 00:05:21,030 --> 00:05:24,400 უწოდა სახელი და ახლა გამოყენება ამ მხრივაც. 102 00:05:24,400 --> 00:05:26,840 ასე რომ, ახლა ნება მომეცით გადარჩენა ეს დააშორებს. 103 00:05:26,840 --> 00:05:31,250 >> ნება მომეცით წავიდეთ წინ და მიიღოს hello. 104 00:05:31,250 --> 00:05:32,400 კარგად გამოიყურება. 105 00:05:32,400 --> 00:05:36,110 არ Spit ნებისმიერი შეცდომები. . / მიესალმები შეიტანეთ. 106 00:05:36,110 --> 00:05:37,020 რა არის ჩემი სახელი? 107 00:05:37,020 --> 00:05:38,060 დავით. 108 00:05:38,060 --> 00:05:39,270 და კომენტარი პირველმა დავით. 109 00:05:39,270 --> 00:05:41,820 ასე არ არის, რომ საინტერესო, მაგრამ ვფიქრობ ახლა. 110 00:05:41,820 --> 00:05:44,310 თქვენ ახლა უკვე იგივე ნივთიერება როგორც ჩვენ გვქონდა Scratch to 111 00:05:44,310 --> 00:05:45,420 ჩვენი საკუთარი ფუნქციები. 112 00:05:45,420 --> 00:05:46,770 >> მაგრამ არსებობს ცოტა GOTCHA. 113 00:05:46,770 --> 00:05:50,620 დავუშვათ, რომ მე ნამდვილად არ ფიქრობდა ამ გზით და მე რეალურად გარეშე 114 00:05:50,620 --> 00:05:54,250 ნამდვილად ფიქრობდა ის დაწერა რომ ფუნქცია ქვემოთ აქ. 115 00:05:54,250 --> 00:05:55,420 გრძნობს კარგად გონივრული. 116 00:05:55,420 --> 00:05:58,440 In Scratch არ არსებობს ცნება ადგილმდებარეობის თქვენს სცენარი. 117 00:05:58,440 --> 00:06:00,670 თქვენ შეეძლო ერთი გოლი აქ, ერთი აქ, ერთი გოლი აქ, და ეს შეიძლება დაიწყოს 118 00:06:00,670 --> 00:06:03,310 თვალი ცოტა რთული თუ არ ქმნის მას out neatly, მაგრამ ეს არ 119 00:06:03,310 --> 00:06:05,910 აქვს მნიშვნელობა, სადაც ფიზიკურად სცენარების იყო ეკრანზე. 120 00:06:05,910 --> 00:06:09,660 სამწუხაროდ C - ეს არის განსხვავებით ენებს, როგორიცაა ჯავა და პითონი 121 00:06:09,660 --> 00:06:13,600 და სხვები, რომ თქვენ შეიძლება ნაცნობი ერთად - სამწუხაროდ C, იმისათვის აკეთებს 122 00:06:13,600 --> 00:06:15,830 სულ ერთია, რადგან watch რა მოხდება ახლა. 123 00:06:15,830 --> 00:06:19,010 >> სტანდარტულ ფუნქცია, ხდება შეასრულოს, რა თქმა უნდა, ძირითადი. 124 00:06:19,010 --> 00:06:22,290 მთავარი აპირებს მოვუწოდებთ ბეჭდვითი სახელი ხაზი რვა, მაგრამ, სამწუხაროდ, 125 00:06:22,290 --> 00:06:26,660 შემდგენელი კი არ იციან, რომ ბეჭდვითი სახელი არსებობს მანამ, სანამ იგი იღებს ხაზი 11, 126 00:06:26,660 --> 00:06:28,520 რაც სამწუხაროდ იქნება ძალიან გვიან. 127 00:06:28,520 --> 00:06:30,660 მოდით გავაკეთოთ მიიღოს hello. 128 00:06:30,660 --> 00:06:32,950 ახლა კი რა, ორი შეცდომები გამომუშავებული. 129 00:06:32,950 --> 00:06:36,050 ასე რომ, ახლა ნება მომეცით გადახვევა მდე ძალიან პირველი, როგორც ჩვენ ყოველთვის უნდა გავაკეთოთ, და 130 00:06:36,050 --> 00:06:39,560 შეამჩნია, რომ ის ყვირილი at me, "ფარული დეკლარაციას ფუნქცია 131 00:06:39,560 --> 00:06:40,540 ბეჭდვა სახელი. " 132 00:06:40,540 --> 00:06:43,860 >> ასე რომ, ჩვენ ვნახეთ ამ გზავნილის ადრე, დაფარული დეკლარაციას ფუნქცია. 133 00:06:43,860 --> 00:06:48,080 როდესაც გვაქვს ჩანს, რომ ასეთი შეცდომა? 134 00:06:48,080 --> 00:06:49,180 როდესაც მე არ შეიცავდა ბიბლიოთეკა. 135 00:06:49,180 --> 00:06:53,470 თუ დამავიწყდა cs50.h და მინდა მისაღებად დაიყვირა ზე for მიიღოს სიმებიანი ან მიიღოთ int. 136 00:06:53,470 --> 00:06:56,880 მაგრამ ამ შემთხვევაში, ეს ფუნქცია ბეჭდვითი სახელი არ არის ბიბლიოთეკაში, არა? 137 00:06:56,880 --> 00:07:00,230 ეს ფაქტიურად ამ ფაილში, ისე, რა არის ნამდვილად პრობლემა? 138 00:07:00,230 --> 00:07:04,660 >> ისე სამწუხაროდ C, იგი მოგაწვდით ასე ძალიან ფაქტიურად რომ თუ 139 00:07:04,660 --> 00:07:08,640 მინდა ფუნქცია მოუწოდა ბეჭდვითი სახელზე არსებობს, თქვენ ან უნდა განახორციელოს 140 00:07:08,640 --> 00:07:11,940 რომ ფუნქციონირებს ძალიან ყველაზე თქვენი კოდი ისე, რომ ეს ხელმისაწვდომი უნდა შეამცირონ 141 00:07:11,940 --> 00:07:15,070 ფუნქციები, მაგრამ გულწრფელად ვამბობ, რომ ხდება დაუდევარი ძალიან სწრაფად. 142 00:07:15,070 --> 00:07:18,160 პირადად მე მიყვარს აყენებს მთავარ პირველი რადგან მაშინ ეს ძალიან ნათელი, თუ რას 143 00:07:18,160 --> 00:07:19,890 პროგრამა აკეთებს ერთი შეხედვით. 144 00:07:19,890 --> 00:07:23,290 და პლუს, შეგიძლიათ მოხვდება უცნაური კუთხეში შემთხვევებში, როდესაც, თუ x სურს მოვუწოდებთ 145 00:07:23,290 --> 00:07:27,530 შ მაგრამ შ შეიძლება მოვუწოდებთ x, უბრალოდ ფიზიკურად ვერ რეალურად დააყენა ერთი 146 00:07:27,530 --> 00:07:28,540 ზემოთ სხვა. 147 00:07:28,540 --> 00:07:31,230 >> მაგრამ აღმოჩნდება, დო, ჩვენ შეგვიძლია გადაწყვიტოს ეს ძალიან მარტივად. 148 00:07:31,230 --> 00:07:34,010 მე ვაპირებ დააყენოს ცოტა სივრცე აქ, და მე მხოლოდ აპირებს 149 00:07:34,010 --> 00:07:38,170 preemptively, თუმცა გარკვეულწილად redundantly, მიდის ასწავლიან 150 00:07:38,170 --> 00:07:42,320 შემდგენელი რომ არსებობს ფუნქცია მოუწოდა ბეჭდვითი სახელი, ის ტექსტი, 151 00:07:42,320 --> 00:07:46,330 და მე ვაპირებ მოვუწოდო იგი ასახელებს მძიმით. 152 00:07:46,330 --> 00:07:50,220 >> ასე რომ, ეს ახლა ხაზის ოთხი, რომელიც ჩვენ არ მინახავს ადრე, არის დეკლარაცია 153 00:07:50,220 --> 00:07:53,940 საქართველოს ფუნქცია ბეჭდვითი სახელი, მაგრამ ეს მხოლოდ დაპირება, რომ ეს ფუნქცია 154 00:07:53,940 --> 00:07:56,620 საბოლოოდ განისაზღვრება, საბოლოოდ განხორციელდება. 155 00:07:56,620 --> 00:08:00,180 ეს ახლა მე შემიძლია თავი დაანებოს, რადგან ახლა ეს არის განმარტება, 156 00:08:00,180 --> 00:08:04,090 განხორციელების, ერთგვარი ბოლო მილის განხორციელების ამ 157 00:08:04,090 --> 00:08:05,130 კერძოდ ფუნქცია. 158 00:08:05,130 --> 00:08:08,450 ასე გულწრფელად რომ ეს სისულელე, ეს შემაშფოთებელი, მაგრამ ეს გზა C არის და ეს 159 00:08:08,450 --> 00:08:12,050 იმიტომ, რომ ეს მოგაწვდით ძალიან ფაქტიურად და, როგორც კომპიუტერული გულწრფელად უნდა, 160 00:08:12,050 --> 00:08:16,020 მარტო ჯერ ზუსტად რას ვამბობ, რომ გააკეთოს და ისე, რომ რიგი მნიშვნელოვანია. 161 00:08:16,020 --> 00:08:18,940 >> ასე რომ დაივიწყებს და ისევ, დაიწყოს შეამჩნია გამეორების ნიმუშები. 162 00:08:18,940 --> 00:08:21,850 შანსი გნებავთ, თუ არ უკვე დავიწყებთ ექმნებათ შეტყობინებები 163 00:08:21,850 --> 00:08:24,700 მსგავსი რომ ერთი შეხედვით, როგორც ჩანს, სრულიად cryptic, მაგრამ თუ დაიწყება 164 00:08:24,700 --> 00:08:29,000 მოსაძებნად ეს გასაღები სიტყვები "ფარული დეკლარაცია", აღნიშნულია 165 00:08:29,000 --> 00:08:32,380 ფუნქცია ამ შემთხვევაში - და გულწრფელად, თქვენ ზოგჯერ კი პატარა მწვანე 166 00:08:32,380 --> 00:08:35,010 სტაფილოს სიმბოლო იმისა, რომ ეუბნება, სადაც საკითხი, ალბათ, - 167 00:08:35,010 --> 00:08:40,980 შეგიძლიათ დაიწყოს მუშაობა თქვენი გზა ჯერჯერობით უხილავი შეცდომის შეტყობინებები. 168 00:08:40,980 --> 00:08:45,860 ნებისმიერი კითხვების წერილობით თქვენი საკუთარი ფუნქციის ამ გზით? 169 00:08:45,860 --> 00:08:47,540 >> მოდით რაღაც რომ არის უფრო მყარი. 170 00:08:47,540 --> 00:08:51,760 იმის ნაცვლად, რომ უბრალოდ რომ რამე რომ აქვს მხარე ეფექტი ბეჭდვა, ნება მომეცით წავიდეთ 171 00:08:51,760 --> 00:08:55,340 წინ და გადარჩენა ახალი ფაილი და ჩვენ მოვუწოდებ ამ positive.c, მიუხედავად იმისა, რომ ეს 172 00:08:55,340 --> 00:08:57,600 იქნება ცოტა განსხვავებული წინააღმდეგ ბოლო დროს. 173 00:08:57,600 --> 00:09:01,910 ამჯერად, მინდა ხელახლა განხორციელება ბოლო დროს-ს positive.C მაგალითად, რომელიც 174 00:09:01,910 --> 00:09:04,430 არის აიძულოს შესახებ, რათა ჩემთვის დადებითი მთელი რიცხვი. 175 00:09:04,430 --> 00:09:07,280 მაგრამ მე უნდა გამოიყენოს მისაღებად int ბოლო დროს. 176 00:09:07,280 --> 00:09:10,780 თუ არა იგი უკვე ლამაზი თუ იყო ფუნქცია მოუწოდა პოზიტიურად int 177 00:09:10,780 --> 00:09:13,610 რომ მე შეიძლება მხოლოდ გამოაცხადოს ამ ნაწილი ფუნქციებს? 178 00:09:13,610 --> 00:09:16,480 ასე რომ, განსხვავება ისაა, ჩვენ გამოგიგზავნით განახორციელოს პოზიტიურად int, მაგრამ განსხვავებით 179 00:09:16,480 --> 00:09:20,330 ბეჭდვითი სახელი, რომელსაც მხარე ეფექტი - ეს არ დაბრუნებულა რაღაც ჩემთვის მოსწონს 180 00:09:20,330 --> 00:09:21,710 ნომერი ან სიმებიანი - 181 00:09:21,710 --> 00:09:25,510 პოზიტიურად int, რა თქმა უნდა, მიდის დაბრუნებას, იმედია, დადებითი int. 182 00:09:25,510 --> 00:09:26,170 >> ასე რომ, მოდით ეს. 183 00:09:26,170 --> 00:09:30,840 ჩართეთ cs50.h, მოიცავს სტანდარტული io.h. 184 00:09:30,840 --> 00:09:33,520 Int მთავარი ბათილად. 185 00:09:33,520 --> 00:09:42,160 ახლა კი აქ, მე ვაპირებ წავიდეთ წინ და ვთქვათ int, მას ო, ტოლობის 186 00:09:42,160 --> 00:09:44,270 პოზიტიურად int. 187 00:09:44,270 --> 00:09:49,080 და ისევე, როგორც მიიღოთ int უკვე არსებობს რადგან პერსონალის დაწერა ეს, მე ვაპირებ 188 00:09:49,080 --> 00:09:53,950 უნდა ვივარაუდოთ, რომ მომენტი, რომ მიიღოს დადებითი int არსებობს, და ახლა მე ვაპირებ 189 00:09:53,950 --> 00:09:57,730 to წავიდეთ წინ და აცხადებენ, printf, მადლობა% ი / ო ", ო. 190 00:09:57,730 --> 00:10:02,940 191 00:10:02,940 --> 00:10:07,770 >> ასე რომ, ახლა თუ მე შეადგინოს ამ პროგრამის რა მოხდება ჩემს ტერმინალში 192 00:10:07,770 --> 00:10:09,075 ფანჯრის ბოლოში ეკრანზე? 193 00:10:09,075 --> 00:10:11,580 194 00:10:11,580 --> 00:10:13,900 მე ვაპირებ ალბათ მიიღოს, რომ იგივე შეცდომა, როგორც ადრე. 195 00:10:13,900 --> 00:10:14,570 მოდით ცდილობენ ამ. 196 00:10:14,570 --> 00:10:16,450 პოზიტიური. 197 00:10:16,450 --> 00:10:19,900 ისევ და ისევ, დაფარული დეკლარაცია ფუნქციის, პოზიტიურად int. 198 00:10:19,900 --> 00:10:21,970 ასე რომ, ჩვენ გადაჭრით ეს რამდენიმე გზა არსებობს. 199 00:10:21,970 --> 00:10:27,310 მე ვაპირებ, რომ შევინარჩუნოთ ის მარტივი და უბრალოდ დააყენა ჩემი დეკლარაციის აქ და მიიღეთ 200 00:10:27,310 --> 00:10:28,120 დადებითი int. 201 00:10:28,120 --> 00:10:29,720 მე უნდა ე.წ. ხელმოწერით. 202 00:10:29,720 --> 00:10:32,410 ხელმოწერის მხოლოდ ეხება to ესთეტიკასთან 203 00:10:32,410 --> 00:10:34,090 პირველი ხაზი პროგრამა. 204 00:10:34,090 --> 00:10:37,420 რა უნდა მიიღოს დადებითი int დაბრუნების? 205 00:10:37,420 --> 00:10:37,970 >> ასე int. 206 00:10:37,970 --> 00:10:41,540 ვგულისხმობ იდეალურად, ეს დაბრუნდნენ რაღაც დადებითი int, მაგრამ ეს 207 00:10:41,540 --> 00:10:42,160 არ არსებობს. 208 00:10:42,160 --> 00:10:45,280 ჩვენ არ ჩანს, რომ მათ შორის ჩვენი მონაცემებით სახის, ამიტომ ჩვენ უნდა გავუმკლავდეთ 209 00:10:45,280 --> 00:10:47,170 ის ფაქტი, რომ ჩვენ გვაქვს ძალიან ცოტა მონაცემთა ტიპები მუშაობა. 210 00:10:47,170 --> 00:10:50,360 მაგრამ ჩვენ შეგვიძლია დაბრუნების int და მხოლოდ ვენდობით, რომ ეს იქნება საკმაოდ პოზიტიური. 211 00:10:50,360 --> 00:10:52,690 ეს იქნება მოუწოდა პოზიტიურად int. 212 00:10:52,690 --> 00:10:55,122 >> ახლა კი რა თავისი არგუმენტები? 213 00:10:55,122 --> 00:10:56,440 სჭირდება რაიმე შეყვანის? 214 00:10:56,440 --> 00:10:58,280 ს სჭირდება შეტანის? 215 00:10:58,280 --> 00:11:00,900 ასე რომ, ეს არ უნდა იცოდეს, წინასწარ არაფერი. 216 00:11:00,900 --> 00:11:03,220 მიიღეთ სიმებიანი არ, მიიღოთ int არ. 217 00:11:03,220 --> 00:11:06,430 Printf აკეთებს - მას სჭირდება გარკვეული შეყვანის შევიდა ეს - და ბეჭდვითი სახელი 218 00:11:06,430 --> 00:11:09,020 საჭიროა გარკვეული შეყვანა, მაგრამ მისაღებად დადებითი int არ. 219 00:11:09,020 --> 00:11:11,530 ამიტომ, მე ვაპირებ მკაფიოდ ვუთხრა შემდგენელი ბათილად. 220 00:11:11,530 --> 00:11:13,470 ძალადაკარგულად არის არარსებობის არაფერი. 221 00:11:13,470 --> 00:11:17,990 ასე რომ, ბათილად არაფერს ნიშნავს ხდება შიგნით იმ ფრჩხილებში, მძიმით. 222 00:11:17,990 --> 00:11:20,840 >> ახლა კი ბოლოში ჩემი ფაილი - და ისევ, მე უბრალოდ როგორც ასეთი anal 223 00:11:20,840 --> 00:11:23,640 აქ აყენებს მთავარ ზედა, რომელიც არის კარგი პრაქტიკა, რადგან ამ გზით, 224 00:11:23,640 --> 00:11:26,220 ნებისმიერ დროს თქვენ თუ ვინმე სხვა ხსნის თქვენი ფაილი, 225 00:11:26,220 --> 00:11:27,400 ფუნქცია არ არის უფლება არსებობს. 226 00:11:27,400 --> 00:11:29,660 თქვენ შეგიძლიათ ჩაყვინთვის შემდეგ მოედანზე ერთი. 227 00:11:29,660 --> 00:11:34,190 ასე რომ, ახლა მე ვაპირებ დუბლიკატი ამ, პოზიტიურად int ბათილად, მაგრამ მე არ ვარ 228 00:11:34,190 --> 00:11:35,430 აპირებს მოხვდა მძიმით არის. 229 00:11:35,430 --> 00:11:38,280 მე ვაპირებ გახსნა curly აფრთხილებს, და ახლა გვჭირდება სესხის 230 00:11:38,280 --> 00:11:39,700 ზოგიერთი იდეები ორშაბათიდან. 231 00:11:39,700 --> 00:11:44,450 >> ასე რომ, როგორც თქვენ გავიხსენოთ, ჩვენ ეს რაღაც მინდა გავაკეთოთ შემდეგ, ხოლო 232 00:11:44,450 --> 00:11:45,830 რაღაც ასეა. 233 00:11:45,830 --> 00:11:46,630 და რა გავაკეთო? 234 00:11:46,630 --> 00:11:51,540 მე რაღაც მისცეს ჩემთვის დადებითი მთელი რიცხვი, 235 00:11:51,540 --> 00:11:52,430 ცოტა ზოლში. 236 00:11:52,430 --> 00:11:53,540 მე ვერ გამოიყენოთ რომელიმე სიტყვა მე მინდა. 237 00:11:53,540 --> 00:11:54,960 და მაშინ მე რა? 238 00:11:54,960 --> 00:11:59,530 Int ო შეადგენს მისაღებად int, არანაირი არგუმენტი მას. 239 00:11:59,530 --> 00:12:00,550 >> და შეამჩნია განსხვავება. 240 00:12:00,550 --> 00:12:04,680 როცა მოვუწოდებთ ფუნქცია, როდესაც თქვენ გამოიყენოს ფუნქცია, თქვენ არ დასვა ბათილად. 241 00:12:04,680 --> 00:12:08,570 თქვენ მხოლოდ გავაკეთოთ, რომ როდესაც გამოცხადების ფუნქცია, სწავლების შემდგენელი რა 242 00:12:08,570 --> 00:12:09,780 ეს უნდა ველოდოთ. 243 00:12:09,780 --> 00:12:11,650 ასე რომ თქვენ არ უნდა დააყენოს ძალადაკარგულად იქ თავს. 244 00:12:11,650 --> 00:12:12,940 >> ახლა კი, რა იყო ჩემს მდგომარეობაში? 245 00:12:12,940 --> 00:12:19,670 ასევე, N არის არ უდრის დადებითი, მაგრამ ეს მხოლოდ ფსევდო კოდი. 246 00:12:19,670 --> 00:12:22,530 ასე რომ, როგორ შემიძლია გამოვხატო ამ უფრო cleanly? 247 00:12:22,530 --> 00:12:24,090 ასე რომ ნაკლებია ან ნულის ტოლია. 248 00:12:24,090 --> 00:12:26,250 ასე რომ, კიდევ ერთხელ, შეამჩნია შეგიძლიათ გააკეთოთ ნაკლებია ან ტოლი. 249 00:12:26,250 --> 00:12:28,100 მიუხედავად იმისა, რომ ეს ორი დამოუკიდებელი სიმბოლოები, შეგიძლიათ ამის გაკეთება 250 00:12:28,100 --> 00:12:29,350 თქვენს კლავიატურაზე, როგორც ასეთი. 251 00:12:29,350 --> 00:12:33,950 >> მაგრამ ჯერ კიდევ bug რომ მე ბრალია ბოლო დროს ძალიან. 252 00:12:33,950 --> 00:12:36,950 მე უნდა განაცხადოს - 253 00:12:36,950 --> 00:12:37,460 ზუსტად. 254 00:12:37,460 --> 00:12:39,640 მე უნდა განაცხადოს ო გარეთ საქართველოს ციკლი. 255 00:12:39,640 --> 00:12:44,180 ასე რომ, მე უნდა დააყენოს n აქ, და მე არ მინდა კიდევ ერთხელ ვაცხადებთ, რომ ეს აქ 256 00:12:44,180 --> 00:12:46,480 ნუუკუე მე ახალი განსხვავებულია. 257 00:12:46,480 --> 00:12:48,860 მინდა მივანიჭოთ მნიშვნელობა აქ. 258 00:12:48,860 --> 00:12:54,320 >> ახლა კი მე არ საკმაოდ კეთდება აქ. 259 00:12:54,320 --> 00:12:57,290 ნება მომეცით მიიღონ წინ თავს და თითქოს მე გაკეთდეს. 260 00:12:57,290 --> 00:13:01,220 პოზიტიური და ახლა აქ არის ახალი შეცდომა. 261 00:13:01,220 --> 00:13:04,550 კონტროლის აღწევს ბოლოს არასამთავრობო ბათილად ფუნქცია. 262 00:13:04,550 --> 00:13:07,760 ასე რომ, ახალი შეცდომა, მაგრამ თუ სახის საქართველოს tease გარდა თითოეული სიტყვა, ეს 263 00:13:07,760 --> 00:13:09,620 ალბათ ეუბნება რა არის არასწორი. 264 00:13:09,620 --> 00:13:11,240 >> კონტროლი. 265 00:13:11,240 --> 00:13:14,250 საკონტროლო მხოლოდ იმას ნიშნავს, რომ ბრძანება ჩატარებული ოპერაციების პროგრამით. 266 00:13:14,250 --> 00:13:16,510 კომპიუტერის კონტროლი და რაღაც გაფუჭდა. 267 00:13:16,510 --> 00:13:18,510 ასე რომ, ეს ბოლოს მიაღწევს არასამთავრობო ბათილად ფუნქცია. 268 00:13:18,510 --> 00:13:21,760 რა ფუნქცია არის ის, სავარაუდოდ, გულისხმობდა? 269 00:13:21,760 --> 00:13:24,790 რა ფუნქცია არასამთავრობო ბათილად? 270 00:13:24,790 --> 00:13:27,400 ასე რომ დადებითი int და ცოტა გაუგებარია, რომ კარგად, 271 00:13:27,400 --> 00:13:29,010 ეს არის სახის ბათილად. 272 00:13:29,010 --> 00:13:33,070 მას აქვს დაზუსტება ბათილად მისი არგუმენტები, არამედ მისი გამომავალი აპირებს 273 00:13:33,070 --> 00:13:34,540 იყოს ტიპის ო. 274 00:13:34,540 --> 00:13:37,260 ასე რომ, სიტყვა მარცხენა არის ე.წ. დაბრუნების ტიპის. 275 00:13:37,260 --> 00:13:40,320 სიტყვა ქვეყნის შიგნით აქ ნულოვანი ან მეტი არგუმენტი 276 00:13:40,320 --> 00:13:41,970 რომ ფუნქცია იღებს. 277 00:13:41,970 --> 00:13:44,060 >> ასე რომ, რა უნდა გავაკეთო? 278 00:13:44,060 --> 00:13:47,650 ამ დროისთვის ჩემს კოდი, ხაზის 21 სადაც მოციმციმე სწრაფი ახლა არის, მე 279 00:13:47,650 --> 00:13:51,430 დადებითი int შიგნით საქართველოს ცვლადში ო. 280 00:13:51,430 --> 00:13:55,200 როგორ შემიძლია მისთვის მთავარზე დაბრუნება? 281 00:13:55,200 --> 00:13:55,960 ფაქტიურად. 282 00:13:55,960 --> 00:13:59,320 დაბრუნება n მძიმით. 283 00:13:59,320 --> 00:14:04,090 >> ასე რომ, ისევე, როგორც კოლტონი დაბრუნდა ნაწილი ქაღალდი პასუხი ჩემს მიერ ჩაშვების 284 00:14:04,090 --> 00:14:07,020 რომ ცალი ქაღალდის ამ პატარა შავი ყუთი მაგიდაზე, ამის შემდეგ 285 00:14:07,020 --> 00:14:10,100 კოდს, ფაქტიურად მხოლოდ წერენ, დაბრუნება ო, და ეს თითქოს კოლტონი იყო 286 00:14:10,100 --> 00:14:12,140 გადაცემის რამე ფიზიკური უკან. 287 00:14:12,140 --> 00:14:15,870 ამ შემთხვევაში, რა ხდება არის მიიღოს დადებითი int აპირებს გადასცემს უკან 288 00:14:15,870 --> 00:14:19,220 რა სავარაუდოდ დადებითი მთელი რიცხვი, ვისთვისაც? 289 00:14:19,220 --> 00:14:21,380 სად, რომ ღირებულება დასრულდება? 290 00:14:21,380 --> 00:14:29,080 რომ მთავრდება ამ ცვლადი, ო, და მაშინ ჩვენ გააგრძელოს ხაზი ცხრა. 291 00:14:29,080 --> 00:14:31,920 >> ასე რომ, სხვა სიტყვებით, გამოიტანს ოპერაციების, ეს პროგრამა იწყება 292 00:14:31,920 --> 00:14:34,430 შესრულებაში და შემდგენელი აცნობიერებს, oh, გსურთ ბიბლიოთეკა? 293 00:14:34,430 --> 00:14:36,310 ნება მომეცით წავიდეთ ხელში ჩაგდება, რაც არ უნდა შიგნით, რომ. 294 00:14:36,310 --> 00:14:37,750 Oh, გსურთ სტანდარტული IO ბიბლიოთეკა? 295 00:14:37,750 --> 00:14:39,660 ნება მომეცით წავიდეთ ხელში ჩაგდება, რაც არ უნდა შიგნით, რომ. 296 00:14:39,660 --> 00:14:44,510 რას შემდგენელი აცხადებენ, რომ თავად როდესაც ჰიტები ხაზის ოთხი? 297 00:14:44,510 --> 00:14:47,980 ოჰ, შენ პირობა დადო, რომ განახორციელებს ფუნქცია მოუწოდა პოზიტიურად, მაგრამ 298 00:14:47,980 --> 00:14:50,820 ჩვენ დავუბრუნდეთ მოგვიანებით, რაღაც ერთად იმ ხაზები. 299 00:14:50,820 --> 00:14:53,450 >> Int მთავარი ბათილად მხოლოდ იმას ნიშნავს, აქ არის guts, ჩემი პროგრამა. 300 00:14:53,450 --> 00:14:54,990 ხაზი შვიდი მხოლოდ curly მუდმივი წინააღმდეგობა გაუწიოს. 301 00:14:54,990 --> 00:14:59,540 ხაზი რვა ამბობს მარცხენა მისცეს მე 32 ბიტი for რიცხვი, მას ნ. 302 00:14:59,540 --> 00:15:02,160 მარჯვენა მხარეს, ეს არის ამბობდა პოზიტიურად int. 303 00:15:02,160 --> 00:15:07,120 ახლა პაუზის, რომ ამბავი, რადგან ახლა მე არ შენარჩუნება მოძრავი ჩემი კურსორი ქვემოთ. 304 00:15:07,120 --> 00:15:11,720 ჩემი კურსორი ახლა მიდის ქვემოთ, რადგან ახლა პოზიტიურად int ახორციელებს. 305 00:15:11,720 --> 00:15:13,100 Int ო განისაზღვრება. 306 00:15:13,100 --> 00:15:14,040 ნუ შემდეგ. 307 00:15:14,040 --> 00:15:16,090 Printf მაძლევს დადებითი მთელი რიცხვი. 308 00:15:16,090 --> 00:15:19,740 >> მიიღეთ int ეხლა შესახებ, ჩაწერს მას n, და შესაძლოა ეს კიდევ ერთხელ და ისევ. 309 00:15:19,740 --> 00:15:23,010 ეს მარყუჟის იმას ნიშნავს, რომ ეს კოდი შეიძლება შეასრულოს და ქვემოთ მოსწონს ეს კიდევ ერთხელ 310 00:15:23,010 --> 00:15:25,810 და კიდევ ერთხელ, მაგრამ როცა შესახებ საბოლოოდ თანამშრომლობს და მაძლევს დადებითი 311 00:15:25,810 --> 00:15:31,750 int, მე მოხვდა ხაზი 21, სადაც წერტილი ნომერი ჩაბარების უკან, და რომელიც ერთი 312 00:15:31,750 --> 00:15:34,280 უნდა ხაზი გავუსვა ახლა? 313 00:15:34,280 --> 00:15:35,070 ცხრა. 314 00:15:35,070 --> 00:15:39,010 კონტროლის, ასე ვთქვათ, ბრუნდება ხაზის ცხრა. 315 00:15:39,010 --> 00:15:40,650 ეს არის ის, ხაზი, რომელიც ახლა პასუხისმგებელი. 316 00:15:40,650 --> 00:15:43,250 >> ასე რომ, თუ რა ხდებოდა ყველა ამ დროს ქვეშ hood, მაგრამ 317 00:15:43,250 --> 00:15:46,480 როდესაც ჩვენ გამოყენებული ფუნქციები, როგორიცაა printf ან თუნდაც მიიღოს სიმებიანი, რომ ვინმეს 318 00:15:46,480 --> 00:15:50,600 დაწერა თქვენთვის, კონტროლი მიმდინარეობს გადასცა off ვინმე კოდი ხაზი 319 00:15:50,600 --> 00:15:51,290 by ხაზის მიერ ხაზი. 320 00:15:51,290 --> 00:15:53,770 უბრალოდ ჩვენ ვერ ვხედავთ და ჩვენ ვერ მართლაც ასახავს იგი ამ 321 00:15:53,770 --> 00:15:57,620 პროგრამა, რადგან ეს რომელიმე სხვა ფაილი მყარ დისკზე 322 00:15:57,620 --> 00:16:00,000 unbeknownst ჩვენთვის. 323 00:16:00,000 --> 00:16:02,100 მოდით რეალურად ადგენენ და აწარმოებს ეს ახლა. 324 00:16:02,100 --> 00:16:03,890 >> პოზიტიური. 325 00:16:03,890 --> 00:16:05,260 შეადგინოს, რომ პროგრესი. 326 00:16:05,260 --> 00:16:06,650 . / პოზიტიურია. 327 00:16:06,650 --> 00:16:08,020 მომეცი დადებითი მთელი რიცხვი. 328 00:16:08,020 --> 00:16:08,800 მოდით, რთულია. 329 00:16:08,800 --> 00:16:10,430 უარყოფითი 1. 330 00:16:10,430 --> 00:16:11,360 ნულოვანი. 331 00:16:11,360 --> 00:16:13,370 მოდით მივცეთ მას 50. 332 00:16:13,370 --> 00:16:18,100 მადლობა 50 და ასე შემდეგ კონტროლი ახლა დაბრუნდა. 333 00:16:18,100 --> 00:16:21,750 ნებისმიერი შეკითხვა, კი, რომ? 334 00:16:21,750 --> 00:16:23,180 ჰო? 335 00:16:23,180 --> 00:16:25,630 >> [Inaudible]. 336 00:16:25,630 --> 00:16:26,130 >> ვიმეორებ. 337 00:16:26,130 --> 00:16:27,860 ოჰ, კარგი კითხვა. 338 00:16:27,860 --> 00:16:31,100 ასე რომ, შესაძლოა, შეამჩნია პარალელურად აქ მე სახის ჭრის კუთხეში შესახებ. 339 00:16:31,100 --> 00:16:35,420 შესაბამისად 12, მე ამბობდა, პოზიტიურად int დააბრუნებს int, არამედ იმავე 340 00:16:35,420 --> 00:16:39,660 ლოგიკა, ის ახლა დგას, რომ მიზეზი, რომ ხაზი ექვსი, მე და განაცხადა, რომ ძირითადი ბრუნდება 341 00:16:39,660 --> 00:16:44,040 int, მაგრამ რა გვაქვს ჩვენ არასოდეს ჰქონდა ნებისმიერ პროგრამებს? 342 00:16:44,040 --> 00:16:46,470 ჩვენ არასდროს არ გვქონია ნახსენები ამ საკვანძო სიტყვა დაბრუნება. 343 00:16:46,470 --> 00:16:49,970 >> გამოდის, რომ C, სულ მცირე მობილური რომ ვიყენებთ 344 00:16:49,970 --> 00:16:55,750 დამზადებულია 1999 წელს, ტექნიკურად, ეს ხდება ავტომატურად. 345 00:16:55,750 --> 00:16:59,300 ნებისმიერ დროს როცა თქვენ განახორციელოს პროგრამა და თქვენ განახორციელოს ფუნქცია მოუწოდა, მთავარ 346 00:16:59,300 --> 00:17:04,230 რომ ფუნქცია დააბრუნებს ნულოვანი მიერ სტანდარტულ თუ არ ვიტყვი, წინააღმდეგ შემთხვევაში, 347 00:17:04,230 --> 00:17:05,849 და ნულოვანი მხოლოდ კონვენციას. 348 00:17:05,849 --> 00:17:09,430 მსოფლიოს ბრუნდება ნულოვანი ამით რაც მიუთითებს, რომ ყველა კარგად არის, 349 00:17:09,430 --> 00:17:13,040 ეფექტურად ტოვებს us ოთხი მილიარდი შესაძლებელია რამ, რაც შეიძლება წავიდეს 350 00:17:13,040 --> 00:17:17,530 არასწორი ასე რომ, თუ დაბრუნდება ერთი, რომ შესაძლოა ნიშნავდეს კოდი, რომელიც ნიშნავს ამ 351 00:17:17,530 --> 00:17:18,310 რამ გაფუჭდა. 352 00:17:18,310 --> 00:17:20,589 ჩვენ ვერ დაბრუნდებიან ორი, რაც იმას ნიშნავს, ეს სხვა რამ გაფუჭდა. 353 00:17:20,589 --> 00:17:23,440 ჩვენ ვერ დაბრუნდებიან ოთხი მილიარდი, რომელიც ნიშნავს ეს სხვა რამ გაფუჭდა. 354 00:17:23,440 --> 00:17:27,170 >> და თუ ახლა ვიფიქროთ საკუთარი კომპიუტერის ან Mac, თქვენ ალბათ გახსოვთ, რომ 355 00:17:27,170 --> 00:17:29,610 ზოგჯერ თქვენ გაქვთ cryptic შეცდომის შეტყობინებები პროგრამული, რომ თქვენ 356 00:17:29,610 --> 00:17:32,650 გამოყენებით, ზოგჯერ მას აქვს ადამიანის მეგობრული აღწერა, მაგრამ არსებობს 357 00:17:32,650 --> 00:17:35,265 ხშირად კოდი ან ნომრის ეკრანზე? 358 00:17:35,265 --> 00:17:37,800 თუ ეს არ მოვა გათვალისწინებით, უბრალოდ თვალი out მას. 359 00:17:37,800 --> 00:17:40,790 ეს არის ის, როგორც წესი, რაც ამ კოდები გულისხმობდა. 360 00:17:40,790 --> 00:17:44,200 ისინი შედის Microsoft Word და სხვა პროგრამებში, რომ თუ თქვენ წარადგინოს 361 00:17:44,200 --> 00:17:48,850 ხარვეზის შესახებ კომპანიის, შეგიძლიათ ვუთხრა, რა, მე მივიღე შეცდომის ნომერი 45. 362 00:17:48,850 --> 00:17:51,750 და ზოგიერთი პროგრამის უკან კომპანია შეიძლება გამოიყურებოდეს, რომ მისი 363 00:17:51,750 --> 00:17:54,940 კოდი და აცხადებენ, უჰ, იმიტომ, რომ მე გააკეთა ეს ხარვეზი და ამიტომაც შესახებ 364 00:17:54,940 --> 00:17:56,240 მივიღე ეს შეტყობინება. 365 00:17:56,240 --> 00:17:59,490 >> მაგრამ გულწრფელად, უბრალოდ ცოტა გადატანის და პატარა tedious to 366 00:17:59,490 --> 00:18:02,130 დავასკვნათ, რომ, როგორც მინიმუმ, ჩვენს პირველი რამდენიმე პროგრამების, ამიტომ ჩვენ 367 00:18:02,130 --> 00:18:02,970 უკვე omitting იგი. 368 00:18:02,970 --> 00:18:07,450 მაგრამ მთელი ამ ხნის ყველა ერთი თქვენი ფუნქციები მთავარ აქვს ფარულად ჰქონდა ამ 369 00:18:07,450 --> 00:18:11,600 ხაზი ავტომატურად დასძინა თქვენთვის შემდგენელი, მხოლოდ კონვენციით 370 00:18:11,600 --> 00:18:13,172 გადაარჩენს თქვენ გარკვეული დროის განმავლობაში. 371 00:18:13,172 --> 00:18:14,620 >> [Inaudible]. 372 00:18:14,620 --> 00:18:16,250 >> თქვენ არ უნდა შეიცავდეს იგი მთავარ. 373 00:18:16,250 --> 00:18:16,700 კიდევ კარგი. 374 00:18:16,700 --> 00:18:20,260 მაგრამ თქვენ უნდა შეიცავდეს ეს თუ იყო ახორციელებს ფუნქცია მოსწონს ეს. 375 00:18:20,260 --> 00:18:22,850 წინააღმდეგ შემთხვევაში ფუნქცია ბინა გარეთ ვერ იმუშავებს. 376 00:18:22,850 --> 00:18:24,480 მაგრამ მთავარი, ეს არ არის აუცილებელი. 377 00:18:24,480 --> 00:18:28,450 ერთი კვირის ან ორი, დავიწყებთ მიღების შევიდა, რომ ჩვევების ერთხელ გვინდა, რომ დავიწყოთ 378 00:18:28,450 --> 00:18:29,690 ფიქსირდება შეცდომები. 379 00:18:29,690 --> 00:18:32,550 კარგი კითხვა. 380 00:18:32,550 --> 00:18:36,880 >> ასე სწრაფად სიტყვიერი შესვენების უნდა აღინიშნოს, რომ ამ პარასკევს, ჩვენ არ მქონე სადილი 381 00:18:36,880 --> 00:18:39,980 თავისთავად, მაგრამ ჩვენ, რომელსაც სადილი ზოგიერთი სტუდენტები და თანამშრომლები. 382 00:18:39,980 --> 00:18:42,940 თუ გსურთ შემოგვიერთდნენ, ვგრძნობ უფასო წასვლა cs50.net/rsvp. 383 00:18:42,940 --> 00:18:45,030 6:00 PM ამ პარასკევს. 384 00:18:45,030 --> 00:18:47,990 ფართი არის, როგორც ყოველთვის, შეზღუდული, მაგრამ ჩვენ გააგრძელოს ამ თემაზე თითქმის 385 00:18:47,990 --> 00:18:51,420 ყოველკვირეულად, თუ სივრცე ამოიწურება ამ კვირაში. 386 00:18:51,420 --> 00:18:56,160 >> ასე რომ cliffhanger, რომ ჩვენ არ ფასდაკლებას ორშაბათს იყო, რომ strings სინამდვილეში 387 00:18:56,160 --> 00:19:00,520 იყოს ინდექსირებული შევიდა, რომელიც მხოლოდ იმას ნიშნავს, თქვენ შეუძლიათ მიიღონ პირველ ხასიათი, 388 00:19:00,520 --> 00:19:03,770 მეორე სიმბოლო, მესამე ხასიათი და ა.შ., რადგან თქვენ შეგიძლიათ 389 00:19:03,770 --> 00:19:07,860 ეფექტურად ვფიქრობ სიმებიანი, ისევე როგორც hello, როგორც ამ შემთხვევაში ხუთ 390 00:19:07,860 --> 00:19:09,670 წერილების შიგნით ყუთები. 391 00:19:09,670 --> 00:19:13,370 და შეგიძლიათ მიიღოთ თითოეულ მათგანს ყუთები, რაც syntax მივიღეთ 392 00:19:13,370 --> 00:19:15,230 გააცნოს ორშაბათს? 393 00:19:15,230 --> 00:19:16,760 იმ კვადრატულ ფრჩხილებში თქვენს კლავიატურაზე. 394 00:19:16,760 --> 00:19:18,980 ეს მხოლოდ იმას ნიშნავდა, წასვლა ადგილმდებარეობა ნულოვანი. 395 00:19:18,980 --> 00:19:22,840 >> ვიწყებთ დამთვლელი ზე ნულოვანი, ასე bracket ნულოვანი ნიშნავს სთ, bracket ერთი 396 00:19:22,840 --> 00:19:25,170 ნიშნავს e, და სხვ. 397 00:19:25,170 --> 00:19:28,490 ასე რომ, ყველა იმ დროს, როდესაც ჩვენ გამოყენებით strings და ბეჭდვის "გამარჯობა" 398 00:19:28,490 --> 00:19:31,250 და "სამყარო" და სხვა რამ ეკრანზე, მისთვის შენახული 399 00:19:31,250 --> 00:19:32,820 ამ ყუთები მოსწონს ეს. 400 00:19:32,820 --> 00:19:33,370 და მიიღოს ვხვდები. 401 00:19:33,370 --> 00:19:37,470 რას თითო ყუთზე წარმოადგენს ფიზიკურად შიგნით თქვენი კომპიუტერის? 402 00:19:37,470 --> 00:19:38,250 >> [Inaudible]. 403 00:19:38,250 --> 00:19:39,150 >> ბოდიში? 404 00:19:39,150 --> 00:19:39,580 >> პერსონაჟები. 405 00:19:39,580 --> 00:19:44,760 >> ასე რომ, ხასიათის, რა თქმა უნდა, იმ შემთხვევაში, საქართველოს strings და ხასიათი მხოლოდ 406 00:19:44,760 --> 00:19:46,800 რვა ბიტი ან ერთი ბაიტი. 407 00:19:46,800 --> 00:19:49,550 ასე რომ, ალბათ, სულ ცოტა ბუნდოვნად იცნობს იმ ფაქტს, რომ თქვენი 408 00:19:49,550 --> 00:19:50,500 კომპიუტერში აქვს მეხსიერება. 409 00:19:50,500 --> 00:19:52,110 მას აქვს ორი ტიპის მეხსიერების მაინც. 410 00:19:52,110 --> 00:19:54,810 ერთი არის ხისტი, სადაც თქვენ გადარჩენა პერსონალის მუდმივად, და ეს 411 00:19:54,810 --> 00:19:57,400 როგორც წესი, დიდი ასე რომ თქვენ გაქვთ ფილმები და მუსიკის და სხვ. 412 00:19:57,400 --> 00:20:04,010 >> ამის შემდეგ თქვენ სხვა ტიპის მეხსიერება მოუწოდა RAM, R-A-M, წვდომის 413 00:20:04,010 --> 00:20:07,510 მეხსიერება, და ეს არის მეხსიერების , რომელიც გამოიყენება მაშინ, როდესაც კომპიუტერი 414 00:20:07,510 --> 00:20:11,520 გაშვებული, მაგრამ თუ დაკარგვის ძალაუფლების ან თქვენი ბატარეის კვდება, ყველაფერი ეს ინახება 415 00:20:11,520 --> 00:20:15,300 in RAM ქრება თუ დაკარგვის ძალა საერთოდ, რადგან ეს არ არის 416 00:20:15,300 --> 00:20:16,060 მუდმივი. 417 00:20:16,060 --> 00:20:19,120 თქვენ, როგორც წესი, აქვს, ამ დღეებში, კონცერტის ეს ორი gigs, რაც უფრო. 418 00:20:19,120 --> 00:20:23,490 და თავდაყირა ოპერატიული არის, რომ ეს გაცილებით ბევრად, ბევრად უფრო სწრაფად, ვიდრე მყარ დისკს 419 00:20:23,490 --> 00:20:27,390 ან თუნდაც მყარი სახელმწიფო დისკები ამ დღეებში, მაგრამ, როგორც წესი, უფრო ძვირი ისე 420 00:20:27,390 --> 00:20:28,480 თქვენ ნაკლები იქნება. 421 00:20:28,480 --> 00:20:32,400 >> ასე რომ, დღეს საუბარი ნამდვილად ეხება to RAM, რომ მეხსიერების, რომ 422 00:20:32,400 --> 00:20:35,270 არსებობს მხოლოდ მაშინ, როდესაც არსებობს ძალა მიმდინარეობს ყელში თქვენს კომპიუტერში. 423 00:20:35,270 --> 00:20:40,530 ასე რომ, როდესაც თქვენ აკრიფოთ H-E-L-L-O, ენტერს კლავიატურა, H ხდება ერთ 424 00:20:40,530 --> 00:20:44,550 byte ოპერატიული, E მიმდინარეობს კიდევ ერთი ბაიტი ოპერატიული, როგორც ეს 425 00:20:44,550 --> 00:20:45,800 დანარჩენი სიტყვა. 426 00:20:45,800 --> 00:20:49,010 ასე რომ გავიხსენოთ რა შევძელით ამის გაკეთება ბოლო დროს იყო ეს. 427 00:20:49,010 --> 00:20:53,940 ნება მომეცით წავიდეთ წინ და ქმნის ფაილი რომ ჩვენ მოუწოდა string.c და გავიხსენოთ 428 00:20:53,940 --> 00:20:56,860 რომ ეს ჩანდა პატარა მსგავსი რამ. 429 00:20:56,860 --> 00:20:59,860 ნება მომეცით, ფაქტობრივად, გააფართოვოს უკან და შეცვლის მას ზუსტად ის, რაც ჩანდა, 430 00:20:59,860 --> 00:21:02,654 სიმებიანი ხანგრძლივობა s. 431 00:21:02,654 --> 00:21:04,560 >> ასე რომ შევხედოთ პროგრამის აქ. 432 00:21:04,560 --> 00:21:08,530 ჩვენ მოიცავს CS50 ბიბლიოთეკის ისე რომ ჩვენ შეგვიძლია გამოვიყენოთ მიიღოს სიმებიანი. 433 00:21:08,530 --> 00:21:11,400 ჩვენ შედის სტანდარტული io.h ასე რომ ჩვენ შეგვიძლია გამოვიყენოთ printf. 434 00:21:11,400 --> 00:21:13,580 რატომ ჩვენ string.h? 435 00:21:13,580 --> 00:21:16,980 ეს იყო ახალი ორშაბათს. 436 00:21:16,980 --> 00:21:18,230 ამიტომ გვინდოდა სიმებიანი სიგრძეზე. 437 00:21:18,230 --> 00:21:19,090 ქ ლენგის. 438 00:21:19,090 --> 00:21:21,470 ხალხი გადაწყვიტა წლის წინ მოდით იყოს ლაკონური. 439 00:21:21,470 --> 00:21:24,290 იმის ნაცვლად, რომ უწოდა "სიმებიანი სიგრძე," მოდით მას "ქ ლენგის" და მოდით 440 00:21:24,290 --> 00:21:28,540 მსოფლიოს ფიგურა, რომ გამოვიდეს და ასე რომ რაც ჩვენ მიიღონ დაშვება ერთად string.h. 441 00:21:28,540 --> 00:21:29,390 >> ეს არის ნაცნობი. 442 00:21:29,390 --> 00:21:30,320 ეს არის ნაცნობი. 443 00:21:30,320 --> 00:21:31,450 ეს არის ნაცნობი. 444 00:21:31,450 --> 00:21:32,370 ეს არის პატარა ახალი. 445 00:21:32,370 --> 00:21:35,420 შესაბამისად 22 - და ჩვენ დავბრუნდებით ეს, მაგრამ ახლა ვიცი - 446 00:21:35,420 --> 00:21:37,880 და თქვენ მხოლოდ ვიცი, რომ ეს მქონე წაკითხვის დოკუმენტაცია ან თუ 447 00:21:37,880 --> 00:21:39,010 თქვენ იცოდა C უკვე - 448 00:21:39,010 --> 00:21:41,510 მიიღოს სიმებიანი ზოგჯერ ხრახნიანი up. 449 00:21:41,510 --> 00:21:45,130 თუ მომხმარებლის მართლაც შეჯიბრებითობის ან uncooperative და ის მხოლოდ 450 00:21:45,130 --> 00:21:49,450 არ შეიტანოთ არაფერი კლავიატურის ან სახის იმდენად დროს კლავიატურაზე, რომ 451 00:21:49,450 --> 00:21:53,760 ეს overwhelms კომპიუტერის მეხსიერებაში, თეორიულად, მიიღოს სიმებიანი შეიძლება დაბრუნდეს 452 00:21:53,760 --> 00:21:56,270 რაღაც გარდა სიმებიანი სიმბოლოს. 453 00:21:56,270 --> 00:22:01,930 ეს შეიძლება დაბრუნდეს სპეციალური ღირებულება მოუწოდა NULL ყველა caps, N-U-L-L, და ეს 454 00:22:01,930 --> 00:22:03,390 მხოლოდ ე.წ. Sentinel ღირებულება. 455 00:22:03,390 --> 00:22:08,010 ეს არის განსაკუთრებული მნიშვნელობა, რომელიც ნიშნავს რაღაც ცუდი მოხდა ამ შემთხვევაში. 456 00:22:08,010 --> 00:22:10,520 ეს არარსებობის სიმებიანი. 457 00:22:10,520 --> 00:22:16,190 >> ასე რომ null ვარ შემოწმება უბრალოდ ასე რომ, გრძელი ამბავი მოკლედ, ქ ლენგის და 458 00:22:16,190 --> 00:22:20,230 სხვა ფუნქციები რომ მოვა C, თუ ელიან სიმებიანი მაგრამ თქვენ გადმოეცა 459 00:22:20,230 --> 00:22:23,630 არარსებობის სიმებიანი, თუ გაივლის მათ null, კომპიუტერი ან პროგრამა 460 00:22:23,630 --> 00:22:25,000 მხოლოდ ავარიის აშკარა. 461 00:22:25,000 --> 00:22:25,610 ეს იქნება გათიშეთ. 462 00:22:25,610 --> 00:22:27,250 ეს იქნება ჩააგდოს გარკვეული შეცდომა. 463 00:22:27,250 --> 00:22:28,690 ცუდი მოხდება. 464 00:22:28,690 --> 00:22:31,130 ასე რომ, მიუხედავად იმისა, რომ ეს ჯერ კიდევ არ არის კარგად განსაზღვრული - 465 00:22:31,130 --> 00:22:33,730 ეს გახდის უფრო გრძნობა ერთ კვირაში ორ - შეესაბამება 22, ეს მხოლოდ 466 00:22:33,730 --> 00:22:38,790 მაგალითად თვითმმართველობის თავდაცვითი შეცდომა შემოწმება მხოლოდ იმ შემთხვევაში, ერთ დროს გარეთ 467 00:22:38,790 --> 00:22:42,040 მილიონი რაღაც მიდის არასწორი ზე სულ მცირე ჩემი პროგრამა არ მისაწოდებლად. 468 00:22:42,040 --> 00:22:45,960 >> ასე რომ, თუ არ უდრის რაღაც ცუდი, მე მაქვს ეს ციკლი, და ეს იყო 469 00:22:45,960 --> 00:22:47,710 სადაც ჩვენ გვქონდა, რომ სხვა ახალი ნაწილი სინტაქსი. 470 00:22:47,710 --> 00:22:51,580 მე მაქვს for loop iterating დან ნულოვანი მდე სიგრძით s. 471 00:22:51,580 --> 00:22:56,140 შემდეგ კი აქ, მე დაბეჭდვისას s bracket i, მაგრამ რატომ მე% c ყველა 472 00:22:56,140 --> 00:23:00,770 მოულოდნელი ნაცვლად% s კი თუმცა s არის სიმებიანი? 473 00:23:00,770 --> 00:23:02,110 ეს ხასიათი, არა? 474 00:23:02,110 --> 00:23:06,560 S არის ტექსტი, მაგრამ s bracket რაღაც, s bracket i სად არის ნულოვანი 475 00:23:06,560 --> 00:23:10,380 ან ერთი ან ორი, რომ ინდივიდუალური ხასიათის სიმებიანი და ისე 476 00:23:10,380 --> 00:23:14,970 რომ, printf უნდა იყოს ინფორმირებული, რომ ეს მართლაც ხასიათი უნდა ველოდოთ. 477 00:23:14,970 --> 00:23:18,096 >> და მაშინ გავიხსენოთ, რა გააკეთა ამ პროგრამის რეალურად გააკეთებს? 478 00:23:18,096 --> 00:23:19,848 >> ნაბეჭდი ის ამ სვეტით. 479 00:23:19,848 --> 00:23:21,120 >> ჰო, ზუსტად. 480 00:23:21,120 --> 00:23:24,990 უბრალოდ ნაბეჭდი სიტყვა, რომელიც მე აკრიფოთ სვეტი, ერთი ხასიათი თითო ხაზზე. 481 00:23:24,990 --> 00:23:26,190 ასე რომ, ვნახოთ, ეს კიდევ ერთხელ. 482 00:23:26,190 --> 00:23:27,810 ასე რომ მხოლოდ. 483 00:23:27,810 --> 00:23:30,200 შედგენილი OK. . / სიმებიანი. 484 00:23:30,200 --> 00:23:35,560 ნება მომეცით აკრიფოთ H-E-L-L-O, შეიტანეთ და მართლაც მე მივიღებ, ერთი თითო ხაზზე. 485 00:23:35,560 --> 00:23:37,280 >> ნება მომეცით, გავაკეთოთ ერთი ოპტიმიზაცია აქ. 486 00:23:37,280 --> 00:23:40,240 თუ ფიქრობთ ამის შესახებ, მით უმეტეს, თუ თქვენ პროგრამირდება ადრე, იქ 487 00:23:40,240 --> 00:23:43,340 სავარაუდოდ არაეფექტურობა შეესაბამება 24. 488 00:23:43,340 --> 00:23:46,160 სხვა სიტყვებით, ეს არის აუცილებელი საუკეთესო დიზაინი. 489 00:23:46,160 --> 00:23:50,200 პირდაპირი, ერთხელ მაინც თქვენ მახსოვს რა ქ ლენგის არის, მაგრამ ეს 490 00:23:50,200 --> 00:23:52,640 თავისსავე მითუმეტეს პოტენციურად. 491 00:23:52,640 --> 00:23:54,863 რა შეიძლება რომ იყოს? 492 00:23:54,863 --> 00:23:56,280 >> [Inaudible]. 493 00:23:56,280 --> 00:23:56,800 >> ზუსტად. 494 00:23:56,800 --> 00:24:00,340 ეს შემოწმების ხანგრძლივობა s თითოეული დრო, მიუხედავად იმისა, 495 00:24:00,340 --> 00:24:02,980 H-E-L-L-O ყოველთვის აპირებს უნდა იყოს ხუთ სიმბოლოს. 496 00:24:02,980 --> 00:24:05,490 ყოველ ჯერზე, ამ გზით მარყუჟის ხუთ არ იცვლება. 497 00:24:05,490 --> 00:24:08,750 მე შეიძლება დამატება i, მაგრამ რა არის სიგრძეზე s ყოველ 498 00:24:08,750 --> 00:24:09,690 iteration ამ მარყუჟის? 499 00:24:09,690 --> 00:24:15,810 ეს ხუთი, ეს ხუთი, ეს ხუთი და მაგრამ მე მაინც ითხოვს ამ 500 00:24:15,810 --> 00:24:18,320 კითხვის ნიშნის ქვეშ ისევ და ისევ და ისევ. 501 00:24:18,320 --> 00:24:20,750 ახლა გულწრფელად ვამბობ, კომპიუტერი იმდენად რა სწრაფი, არავინ აპირებს შეამჩნია 502 00:24:20,750 --> 00:24:23,780 სხვაობა ამ შემთხვევაში, მაგრამ ამ სახის ღარიბი დიზაინი გადაწყვეტილებები 503 00:24:23,780 --> 00:24:28,330 დავიწყოთ დაამატოთ მდე თუ შემდგენელი თავად არ ცდილობს დააფიქსიროს ეს თქვენთვის, რომელიც 504 00:24:28,330 --> 00:24:30,630 მას, როგორც წესი, არა, იმ მაინც მოწყობილობების. 505 00:24:30,630 --> 00:24:31,540 >> ამიტომ, მე ვაპირებ ამის გაკეთება. 506 00:24:31,540 --> 00:24:34,580 მე ვაპირებ დაამატოთ მძიმით შემდეგ ჩემი პირველი ცვლადი, i. 507 00:24:34,580 --> 00:24:37,310 მე ვაპირებ, რათა თავს კიდევ ერთი ცვლადი, უწოდა N, მხოლოდ 508 00:24:37,310 --> 00:24:41,330 კონვენცია ნომრები, ხოლო შემდეგ მე აპირებს დაავალოს n ღირებულება სიმებიანი 509 00:24:41,330 --> 00:24:42,530 ხანგრძლივობა s. 510 00:24:42,530 --> 00:24:46,060 და მაშინ მე ვაპირებ შეცვლას ჩემი მდგომარეობაში რომ იყოს რა? 511 00:24:46,060 --> 00:24:51,960 მე ვაპირებ შევცვალო ჩემი მდგომარეობაში to ხოლო i ნაკლებია, ვიდრე n. 512 00:24:51,960 --> 00:24:55,700 >> ასე რომ, ახლა, რამდენჯერ ვარ მე შემოწმების ხანგრძლივობა s? 513 00:24:55,700 --> 00:25:00,110 ერთხელ, მაგრამ ეს OK, რათა შეამოწმოს i წინააღმდეგ ო ისევ და ისევ, რადგან ახლა იმ 514 00:25:00,110 --> 00:25:03,170 ღირებულებები რეალურად არ იცვლება. 515 00:25:03,170 --> 00:25:06,020 ახლა ახლა, მხოლოდ ის ვიცით, რომ ნებისმიერ დროს როცა თქვენ მოვუწოდებთ ფუნქცია, იქ ცოტა 516 00:25:06,020 --> 00:25:09,930 ოვერჰედის, საკმარისი არ დაუკარგავს თქვენ მართლაც ეხლა ოდესმე გამოყენებით ფუნქციებს, მაგრამ 517 00:25:09,930 --> 00:25:12,750 რა თქმა უნდა, როდესაც ხაზი კოდი მინდა, რომ - და ხაზები მიიღებს 518 00:25:12,750 --> 00:25:15,490 უფრო საინტერესო, სანამ ხანგრძლივი - სადაც არსებობს შესაძლებლობა, რომ ვიფიქროთ, თუ 519 00:25:15,490 --> 00:25:18,320 აკრიფოთ ეს კოდი, რამდენი ჯერ იქნება ეს შესრულდეს? 520 00:25:18,320 --> 00:25:20,950 თქვენ დაიწყება სანახავად დროთა შესრულების თქვენს პროგრამებში 521 00:25:20,950 --> 00:25:21,660 მართლაც შეიცვალოს. 522 00:25:21,660 --> 00:25:24,110 >> ფაქტობრივად, ერთი პრობლემა ადგენს ჩვენ გაკეთდეს წლის წარსული მოიცავს 523 00:25:24,110 --> 00:25:27,600 ახორციელებს, როგორც თქვენ შეიძლება სამშობლოში კვირის ნულოვანი, მართლწერის შემოწმება, მაგრამ 524 00:25:27,600 --> 00:25:31,380 მართლწერის შემოწმება რომ მხარდასაჭერად ლექსიკონი 150,000 პლუს 525 00:25:31,380 --> 00:25:32,860 სიტყვა, რომელიც მოგაწვდით ბიჭები. 526 00:25:32,860 --> 00:25:37,100 თქვენ უნდა დაწეროს კოდი, რომელიც ტვირთის ამ სიტყვებით შევიდა RAM, ასე შევიდა 527 00:25:37,100 --> 00:25:40,700 ყუთები, როგორიც დავინახეთ ეკრანზე მომენტი წინ, შემდეგ კი სწრაფად 528 00:25:40,700 --> 00:25:43,740 შეიძლება, თქვენ უნდა გასცე პასუხი კითხვაზე ფორმა, არის ამ სიტყვის 529 00:25:43,740 --> 00:25:44,280 misspelled? 530 00:25:44,280 --> 00:25:45,420 არის თუ არა ეს სიტყვა misspelled? 531 00:25:45,420 --> 00:25:46,770 არის თუ არა ეს სიტყვა misspelled? 532 00:25:46,770 --> 00:25:49,525 >> და ასე რომ ის, რაც ჩვენ გაკეთდეს წლის წარსული აღმოჩნდა ის, 533 00:25:49,525 --> 00:25:53,500 თუმცა მე დამ-in სურვილისამებრ საფუძველზე, კონკურსის სახის, რომლის დროსაც 534 00:25:53,500 --> 00:25:59,470 სტუდენტები, რომლებიც ნაკლებად მეხსიერება და ნაკლები დრო, ნაკლები CPU ციკლი, დასრულდება მდე 535 00:25:59,470 --> 00:26:02,640 bubbling მდე ყველაზე პატარა ლიდერი საბჭოს ან თანამდებობის რომ ჩვენ დააყენა 536 00:26:02,640 --> 00:26:04,770 კურსის მთავარ გვერდზე, როგორც ჩვენ გაკეთდეს წლის წარსულში. 537 00:26:04,770 --> 00:26:08,100 ასე რომ, კიდევ ერთხელ, სრულიად ნებაყოფლობითია, თუმცა ამ საუბრობს დიზაინი შესაძლებლობები 538 00:26:08,100 --> 00:26:11,250 რომლებიც წინ ანგარიშით ერთხელ ჩვენ ვიწყებთ მშენებლობის atop ზოგიერთი 539 00:26:11,250 --> 00:26:14,010 ძირითადი შენობა ბლოკად. 540 00:26:14,010 --> 00:26:16,780 >> ნება მომეცით, დავუბრუნდეთ ამ დაჭერა for მხოლოდ ერთი წუთით და გამოვლენა პატარა 541 00:26:16,780 --> 00:26:17,610 რაღაც უფრო. 542 00:26:17,610 --> 00:26:21,400 ეს მართლაც სიმებიანი და ჩვენ აღებული უპირატესობა რამდენიმე ბიბლიოთეკა, 543 00:26:21,400 --> 00:26:25,150 სტანდარტული io.h რომელსაც აქვს - 544 00:26:25,150 --> 00:26:26,110 >> Printf. 545 00:26:26,110 --> 00:26:27,860 >> Printf, სხვა საკითხებთან ერთად. 546 00:26:27,860 --> 00:26:31,540 cs50.h, რომელმაც მისაღებად int და მიიღეთ სიმებიანი და ა.შ., string.h, რომელიც 547 00:26:31,540 --> 00:26:32,570 ჰქონდა ქ ლენგის. 548 00:26:32,570 --> 00:26:34,800 მაგრამ აღმოჩნდება, რომ არსებობს კიდევ ერთი. 549 00:26:34,800 --> 00:26:38,540 გულწრფელად ვამბობ, არსებობს უამრავი და უამრავი თავით ფაილი რომ განაცხადოს ფუნქციები 550 00:26:38,540 --> 00:26:43,320 ბიბლიოთეკებისათვის, მაგრამ ეს ctype.h არის რეალურად იქნება გარკვეულწილად 551 00:26:43,320 --> 00:26:46,900 ხელსაყრელი, რადგან მე ვაპირებ to წავიდეთ წინ და განახორციელონ ერთი 552 00:26:46,900 --> 00:26:48,120 სხვა პროგრამა აქ. 553 00:26:48,120 --> 00:26:52,420 >> ნება მომეცით წავიდეთ წინ და ქმნის რაღაც მე დავწერე ადრე მოუწოდა 554 00:26:52,420 --> 00:26:55,750 capitalize.c და ავიღოთ შევხედოთ როგორ ნამუშევრები. 555 00:26:55,750 --> 00:27:00,340 გავითვალისწინოთ რომ მე გამოყენებით, ამ ვერსიაში ეს, სამი ნაცნობი ფაილი. 556 00:27:00,340 --> 00:27:04,110 გავითვალისწინოთ რომ შეესაბამება 18, მე მიღების ტექსტი. 557 00:27:04,110 --> 00:27:07,660 შენიშვნა შეესაბამება 21, მე იმის თაობაზე, რომ შემდეგი კოდი აპირებს 558 00:27:07,660 --> 00:27:12,170 კაპიტალიზაცია s, მიუხედავად შესახებ აკრეფილი ამ და როგორ ვარ მე აკეთებს, რომ? 559 00:27:12,170 --> 00:27:13,300 ისე, მე აღების - 560 00:27:13,300 --> 00:27:14,750 გაკვეთილი ვისწავლეთ ბოლო დროს - 561 00:27:14,750 --> 00:27:18,370 მე გამოცხადების მე და N და iterating მეტი სიმბოლოების სიმებიანი. 562 00:27:18,370 --> 00:27:22,720 და მაშინ რა არის ეს ბლოკი კოდის ხაზი 24 გზით 27 563 00:27:22,720 --> 00:27:24,550 აკეთებს layman პირობები? 564 00:27:24,550 --> 00:27:27,766 565 00:27:27,766 --> 00:27:29,730 >> ამას წერილი უკან. 566 00:27:29,730 --> 00:27:30,430 >> ზუსტად. 567 00:27:30,430 --> 00:27:35,920 თუ bracket i - ასე რომ, თუ i-th ხასიათი s, რომელიც კონკრეტული 568 00:27:35,920 --> 00:27:40,220 char in სიმებიანი, მეტია ან ტოლია ამას და - 569 00:27:40,220 --> 00:27:42,670 გავიხსენოთ, რომ ორმაგი ampersand ნიშნავდეს და - 570 00:27:42,670 --> 00:27:46,810 და იგივე ხასიათის, s bracket i, არის ნაკლებია ან ტოლი ამას z, 571 00:27:46,810 --> 00:27:50,600 რაც იმას ნიშნავს, რომ ის ან ბ ან გ ან dot, dot, dot, ან z, რაც იმას ნიშნავს, 572 00:27:50,600 --> 00:27:51,340 ეს ამას. 573 00:27:51,340 --> 00:27:52,900 რა სურთ ამ შემთხვევაში? 574 00:27:52,900 --> 00:27:55,010 ისე, მე შემიძლია ამის გაკეთება გარკვეულწილად cryptically, მაგრამ 575 00:27:55,010 --> 00:27:56,160 მოდით tease ამ დაიშალა. 576 00:27:56,160 --> 00:28:00,210 >> მე ვაპირებ მოვუწოდო printf, ბეჭდავს% c იმიტომ, რომ მინდა reprint ამ 577 00:28:00,210 --> 00:28:01,580 ხასიათი ეკრანზე. 578 00:28:01,580 --> 00:28:06,650 მე მაშინ აპირებს s bracket i, i-th პერსონაჟი s, და რატომ 579 00:28:06,650 --> 00:28:12,330 მე ვაკეთებ პატარა შეასრულა აქ, ამას მინუსი დედაქალაქში? 580 00:28:12,330 --> 00:28:16,352 რა არის, რომ აპირებენ მე, ზოგადად? 581 00:28:16,352 --> 00:28:18,600 >> [Inaudible]. 582 00:28:18,600 --> 00:28:19,390 >> ზუსტად. 583 00:28:19,390 --> 00:28:20,860 მე ნამდვილად არ მახსოვს, - 584 00:28:20,860 --> 00:28:24,390 ეს იყო 65 კაპიტალური ა მე ნამდვილად არ მახსოვს რა ამას არის, 585 00:28:24,390 --> 00:28:25,540 მაგრამ არა აქვს მნიშვნელობა. 586 00:28:25,540 --> 00:28:26,580 კომპიუტერული იცის. 587 00:28:26,580 --> 00:28:30,380 ასე განაცხადა, ამას მინუს დედაქალაქში, ეს უცნაური იყოს 588 00:28:30,380 --> 00:28:33,530 subtracting ერთი char მეორე, მაგრამ რა არის სიმბოლო ქვეშ hood? 589 00:28:33,530 --> 00:28:34,520 ისინი უბრალოდ ნომრები. 590 00:28:34,520 --> 00:28:36,980 ასე რომ, რაც არ უნდა იმ რაოდენობით, მოდით კომპიუტერული მახსოვს 591 00:28:36,980 --> 00:28:38,240 ვიდრე მე ადამიანის. 592 00:28:38,240 --> 00:28:41,710 >> ასე რომ, ამას მინუს კაპიტალი არის აპირებენ ჩემთვის განსხვავება. 593 00:28:41,710 --> 00:28:45,370 ეს ხდება, 32, და რომ იქნება საქმე ამას ბ და კაპიტალის B 594 00:28:45,370 --> 00:28:45,930 და სხვ. 595 00:28:45,930 --> 00:28:47,710 იგი რჩება თანმიმდევრული, საბედნიეროდ. 596 00:28:47,710 --> 00:28:51,930 ასე რომ, მე არსებითად ამბობდა, მიიღოს ამას წერილი, სხვაობა off, რომ 597 00:28:51,930 --> 00:28:55,340 სტანდარტული განსხვავება, და რომ ეფექტურად ცვლილებების s bracket i დან 598 00:28:55,340 --> 00:28:59,400 ამას უნდა, რა თქმა უნდა, ზედა, გარეშე ნამდვილად მქონე ვფიქრობ 599 00:28:59,400 --> 00:29:03,040 შესახებ ან გახსოვდეთ, რა იყო იმ ციფრები, ჩვენ ვისაუბრეთ, როდესაც რვა 600 00:29:03,040 --> 00:29:04,800 მოხალისეები გამოვიდა სცენაზე? 601 00:29:04,800 --> 00:29:08,800 ახლა ამავდროულად, სხვა, თუ ეს ასე არ არის ამას წერილი განსაზღვრული 602 00:29:08,800 --> 00:29:10,400 ხაზის 24, უბრალოდ ბეჭდვა ის. 603 00:29:10,400 --> 00:29:12,590 მე მხოლოდ მინდა შევეხო ციფრები, რომ იყო 604 00:29:12,590 --> 00:29:14,410 რეალურად თავდაპირველად ამას. 605 00:29:14,410 --> 00:29:15,150 >> ასე რომ, ვნახოთ, ამ. 606 00:29:15,150 --> 00:29:17,400 სასტარტედ კაპიტალიზაცია. 607 00:29:17,400 --> 00:29:18,470 შედგენილი, OK. 608 00:29:18,470 --> 00:29:19,730 . / კაპიტალიზაცია. 609 00:29:19,730 --> 00:29:23,530 და ნება მომეცით აკრიფოთ H-E-L-L-O ამას, შეიტანეთ. 610 00:29:23,530 --> 00:29:26,370 და შეამჩნია, რომ ეს არის მოაქცია შევიდა ზედა. 611 00:29:26,370 --> 00:29:27,940 ნება მომეცით ეს კიდევ ერთხელ გავაკეთოთ ერთად სხვადასხვა სიტყვას. 612 00:29:27,940 --> 00:29:32,720 როგორ შესახებ D--V-I-D პირველი D კაპიტალიზაცია მისი სახელის, როგორც წესი, არის? 613 00:29:32,720 --> 00:29:33,560 შეიტანეთ. 614 00:29:33,560 --> 00:29:34,870 გავითვალისწინოთ მაინც სწორი. 615 00:29:34,870 --> 00:29:40,250 უბრალოდ outputted, რომ პირველი D უცვლელი მეშვეობით, რომელიც სხვაგან მშენებლობა. 616 00:29:40,250 --> 00:29:42,170 >> ასე რომ, გახსოვდეთ, მაშინ, რამდენიმე რამ აქ. 617 00:29:42,170 --> 00:29:45,060 ერთი, თუ თქვენ ოდესმე გსურთ შეამოწმოთ ორი პირობები ერთდროულად, თქვენ და მათ 618 00:29:45,060 --> 00:29:46,500 ერთად, როგორც ჩვენ გამოვლენილი. 619 00:29:46,500 --> 00:29:49,900 თქვენ შეიძლება შედარება გმირები ამ გზით და ეფექტურად მკურნალობა პერსონაჟების როგორც 620 00:29:49,900 --> 00:29:53,050 ნომრები, მაგრამ გულწრფელად ვამბობ, ეს ასეა რა cryptic მე არასოდეს აპირებს გვახსოვდეს 621 00:29:53,050 --> 00:29:56,510 როგორ უნდა ამუშავება ამ ნულიდან გარეშე მსჯელობა მეშვეობით საკმაოდ 622 00:29:56,510 --> 00:29:57,140 ცოტა დრო. 623 00:29:57,140 --> 00:30:00,590 >> თუ არა იგი უკვე, თუ ვინმე იქ წერდა ფუნქცია მოუწოდა არის 624 00:30:00,590 --> 00:30:05,390 შეამცირონ, რომ შეიძლება პასუხი გასცეს ჩემთვის ჭეშმარიტი ან ყალბი, ეს პერსონაჟი არის ამას? 625 00:30:05,390 --> 00:30:09,350 ისე საბედნიეროდ, ვინც დაწერა ctype.h ზუსტად რომ. 626 00:30:09,350 --> 00:30:15,540 ნება მომეცით წავიდეთ აქ და დამატება ctype for გ სახის და ახლა ნება მომეცით დაცემას აქ და 627 00:30:15,540 --> 00:30:18,820 გადაწერა ეს ხაზი შემდეგნაირად. 628 00:30:18,820 --> 00:30:27,510 >> ასე რომ, თუ ეს ე.წ. დაბალია, მე აცხადებენ, s bracket i, მაშინ მე ვაპირებ წაშლა 629 00:30:27,510 --> 00:30:29,400 ეს ორი ხაზი საერთოდ. 630 00:30:29,400 --> 00:30:32,570 ასე რომ, ახლა ვინმეს, მე იმ იმედით, წერდა ფუნქცია მოუწოდა უფრო დაბალია, და ეს 631 00:30:32,570 --> 00:30:36,250 თურმე გააკეთეს და მათ განაცხადეს, მას შიგნით ctype.h. 632 00:30:36,250 --> 00:30:39,480 ახლა კი მე ვაპირებ დატოვოს ხაზის 27 მარტო, მე დატოვებს ხაზი 31 633 00:30:39,480 --> 00:30:41,890 მარტო, მაგრამ შეამჩნია, თუ რამდენად მე გამკაცრდა ჩემს კოდი. 634 00:30:41,890 --> 00:30:42,690 ეს ახლა სუფთა. 635 00:30:42,690 --> 00:30:47,250 ეს ნაკლებად რთული გაეცნონ რადგან ახლა ფუნქცია, უფრო მეტიც, არის 636 00:30:47,250 --> 00:30:50,080 ასე შესანიშნავად დაასახელა ის მხოლოდ ჯერ რა წერია. 637 00:30:50,080 --> 00:30:51,520 >> ასე რომ, ახლა მე ვაპირებ გადარჩენა ეს. 638 00:30:51,520 --> 00:30:52,930 მე ვაპირებ დააშორებს. 639 00:30:52,930 --> 00:30:56,650 და ისევე, როგორც Scratch შეიძლება Booleans, ლოგიკური ღირებულებების ჭეშმარიტი ან 640 00:30:56,650 --> 00:31:01,530 ცრუ, რომ ზუსტად ის, რაც არის დაწევა ეფექტურად ბრუნდება. 641 00:31:01,530 --> 00:31:02,960 ნება მომეცით recompile. 642 00:31:02,960 --> 00:31:04,500 ნება მომეცით ხელახლა პერსპექტივაში. 643 00:31:04,500 --> 00:31:07,350 ახლა კი მოდით ცდილობენ ეს კიდევ ერთხელ, H-E-L-L-O, შეიტანეთ. 644 00:31:07,350 --> 00:31:07,970 ეს არის საკმაოდ კარგი. 645 00:31:07,970 --> 00:31:10,150 და ცდილობენ კიდევ ერთხელ, დარწმუნდით I არ ხრახნიანი რაღაც up. 646 00:31:10,150 --> 00:31:11,670 ამას კაპიტალიზაცია ასევე. 647 00:31:11,670 --> 00:31:14,190 >> მაგრამ ეს არ არის საკმარისი, რადგან სხვა საქმეა, რომ მე არასოდეს არ აპირებს 648 00:31:14,190 --> 00:31:19,090 მახსოვს, სანამ არ მუშაობდა ეს ნამდვილად მხედველობაში, ვთქვათ, ქაღალდის არის 649 00:31:19,090 --> 00:31:19,920 ამ რა ხაზი. 650 00:31:19,920 --> 00:31:23,450 თუ არ იქნება ლამაზი თუ იყო ფუნქცია მოუწოდა ზედა? 651 00:31:23,450 --> 00:31:26,930 ისე გამოდის, იქ არის ctype.h ასევე. 652 00:31:26,930 --> 00:31:30,150 მე ვაპირებ წავიდეთ წინ და ტიპის - 653 00:31:30,150 --> 00:31:31,340 ნება მომეცით მოიტანს, რომ ხაზი უკან. 654 00:31:31,340 --> 00:31:36,430 იმის ნაცვლად, რომ ამ აქ, ნება მომეცით წავიდეთ წინ და აცხადებენ, შემცვლელი% c 655 00:31:36,430 --> 00:31:42,110 შედეგად მოუწოდებდა ამ ფუნქციას ზედა on i-th ხასიათი s. 656 00:31:42,110 --> 00:31:45,430 ახლა კი შეამჩნია ის მიღების ცოტა დაბალანსებული. 657 00:31:45,430 --> 00:31:48,870 მე უნდა შეასრულოს სიმღერა, თუ რამდენი ფრჩხილებში მე გაიხსნა და დაიხურა. 658 00:31:48,870 --> 00:31:50,050 >> ასე რომ, ახლა კი სუფთა. 659 00:31:50,050 --> 00:31:53,460 ახლა ამ პროგრამის დღითიდღე უკეთესი და უკეთესი განკუთვნილია სავარაუდოდ იმიტომ, რომ ეს 660 00:31:53,460 --> 00:31:56,450 ბევრად, ბევრად მეტი იკითხება, მაგრამ ეს არ არის მოდით გამოსწორებას. 661 00:31:56,450 --> 00:31:57,600 სასტარტედ კაპიტალიზაცია. 662 00:31:57,600 --> 00:31:58,930 . / კაპიტალიზაცია. 663 00:31:58,930 --> 00:32:03,220 H-E-L-L-O. მოდით აწარმოებს ერთხელ, D--V-I-D. OK, ასე რომ, ჩვენ ჯერ კიდევ 664 00:32:03,220 --> 00:32:04,250 ნამდვილად კარგი ფორმა. 665 00:32:04,250 --> 00:32:06,030 >> მაგრამ ახლა ზედა. 666 00:32:06,030 --> 00:32:09,720 მე ვთავაზობ, რომ არსებობს კიდევ ერთი დახვეწას ჩვენ ვერ იქნებოდა 667 00:32:09,720 --> 00:32:12,820 მართლაც კარგია, რომ შეიძლება მართლაც გამკაცრდეს ეს კოდი და ნამდვილად გვაძლევს ხუთ 668 00:32:12,820 --> 00:32:15,150 ხუთიდან დიზაინი, მაგალითად. 669 00:32:15,150 --> 00:32:16,510 რა იქნებოდა, თავი დაეღწია? 670 00:32:16,510 --> 00:32:20,770 ისე, შევხედავთ, როგორ რა ხანგრძლივი ამ ბლოკი კოდი არის მხოლოდ რაღაც უბრალო. 671 00:32:20,770 --> 00:32:23,850 >> ახლა, როგორც განზე, როგორც თქვენ ალბათ ჩანს სუპერ მონაკვეთზე გასულ 672 00:32:23,850 --> 00:32:27,570 კვირის ბოლოს, თქვენ არ მკაცრად სჭირდება curly აფრთხილებს, როდესაც თქვენ უბრალოდ უნდა ერთი 673 00:32:27,570 --> 00:32:32,180 ხაზი კოდი, მიუხედავად იმისა, შევთავაზეთ შენახვა მათ ისე, რომ იგი იღებს გაცილებით 674 00:32:32,180 --> 00:32:36,190 უფრო მკაფიო, ისევე როგორც Scratch-ს U-ფორმის კორპუსები, რა შიგნით ფილიალი. 675 00:32:36,190 --> 00:32:40,170 მაგრამ არ იქნება ლამაზი თუ ზედა, როდესაც მოცემული მისი შეყვანა, აღმოჩნდა იგი 676 00:32:40,170 --> 00:32:44,730 ზედა თუ ეს ასე არ არის, და რა იყოს მშვენიერი წინააღმდეგ შემთხვევაში, თუ 677 00:32:44,730 --> 00:32:47,210 უკვე ზედა? 678 00:32:47,210 --> 00:32:49,620 უბრალოდ გაივლის ის მეშვეობით და სხვა რომ არაფერი. 679 00:32:49,620 --> 00:32:50,660 >> ასე რომ, შესაძლოა, აკეთებს, რომ. 680 00:32:50,660 --> 00:32:52,990 მე ვერ ცდილობენ და მხოლოდ იმედი მაქვს რომ ეს ასეა, მაგრამ ნება მომეცით 681 00:32:52,990 --> 00:32:54,450 დანერგვა კიდევ ერთი რამ. 682 00:32:54,450 --> 00:32:57,440 იმის ნაცვლად, რომ გამოყენებისას ინტეგრირებული ტერმინალში ფანჯრის ქვემოთ აქ, გავიხსენოთ, რომ 683 00:32:57,440 --> 00:33:01,130 ამ მოედანზე შავი ხატი გაძლევთ უფრო დიდი ტერმინალში ფანჯარა, რომ მე შემიძლია სრული 684 00:33:01,130 --> 00:33:02,260 ჩვენებას თუ მინდა? 685 00:33:02,260 --> 00:33:05,820 გამოდის, ისინი ერთგვარი oddly დასახელებულა, მაგრამ არსებობს ეს ყველაფერი მოუწოდა 686 00:33:05,820 --> 00:33:10,970 ადამიანი გვერდები, სახელმძღვანელო გვერდების, კაცი მოკლე, და მე შეუძლია ეს მიერ 687 00:33:10,970 --> 00:33:14,515 ბეჭდვის კაცი - 688 00:33:14,515 --> 00:33:15,570 რა მინდა ტიპის? 689 00:33:15,570 --> 00:33:17,830 კაცი ზედა. 690 00:33:17,830 --> 00:33:21,090 >> ახლა კი შეამჩნია თუ არსებობს ფუნქციონირებს შიგნით კომპიუტერი, in 691 00:33:21,090 --> 00:33:23,970 ამ შემთხვევაში მოწყობილობების, რაც არის ოპერაციული სისტემა Linux, იგი აპირებს 692 00:33:23,970 --> 00:33:27,920 მისცეს ჩემთვის გარკვეულწილად cryptic ნაკრები გამომავალი, მაგრამ თქვენ მოვძებნოთ დროთა განმავლობაში რომ 693 00:33:27,920 --> 00:33:31,720 ის ყოველთვის დაფორმატების საკმაოდ ბევრი იგივე ასე რომ თქვენ დაიწყოს შეეგუება. 694 00:33:31,720 --> 00:33:35,130 ყურადღება მიაქციეთ ზედა ზედა, და როგორც ჩანს, ეს იგივე დოკუმენტაცია 695 00:33:35,130 --> 00:33:35,680 ამისთვის უნდა შეამცირონ. 696 00:33:35,680 --> 00:33:38,740 ვინც დაწერა ეს იყო ჭრის ზოგიერთ კუთხეში და მისი ყველა ერთ გვერდზე. 697 00:33:38,740 --> 00:33:40,720 ეს ყველაფერი "მიზნით ცხოვრება გარდაქმნას 698 00:33:40,720 --> 00:33:42,780 წერილში, რომელიც ზედა ან ამას. 699 00:33:42,780 --> 00:33:46,290 >> გავითვალისწინოთ, რომ მოკლე, კაცი გვერდზე ასწავლის რა ფაილი მაქვს 700 00:33:46,290 --> 00:33:48,130 რომ მოიცავს გამოყენება ამ რამ. 701 00:33:48,130 --> 00:33:51,320 ეს მაძლევს ხელმოწერების ეს ფუნქციები, ორივე მათგანი, თუნდაც 702 00:33:51,320 --> 00:33:53,510 თუმცა ჩვენ ახლა მხოლოდ აინტერესებს ერთი. 703 00:33:53,510 --> 00:33:54,730 აქ არის აღწერილობა. 704 00:33:54,730 --> 00:33:58,800 ზედა გარდაქმნის წერილი გ ზედა თუ ეს შესაძლებელია. 705 00:33:58,800 --> 00:34:02,280 >> ჯერ კიდევ არ არის, რომ სასწავლო, მაგრამ ნება მომეცით ახლა გამოიყურება ქვეშ დაბრუნებული მნიშვნელობა, რამ 706 00:34:02,280 --> 00:34:03,520 ეს გადასცა უკან. 707 00:34:03,520 --> 00:34:08,600 ასე რომ, ღირებულება დაბრუნდა ის არის, რომ მოაქცია წერილით ან გ, თუ 708 00:34:08,600 --> 00:34:09,870 კონვერტაციის არ იყო შესაძლებელი. 709 00:34:09,870 --> 00:34:11,202 რა არის გ? 710 00:34:11,202 --> 00:34:12,560 >> ორიგინალური ხასიათი. 711 00:34:12,560 --> 00:34:15,370 >> ორიგინალური ხასიათი და ვიცით, რომ, კიდევ ერთხელ, მიმდინარეობს მდე 712 00:34:15,370 --> 00:34:19,179 მოკლე შინაარსი, და ვინც დაწერა ეს ფუნქცია უბრალოდ გადაწყვიტა, რომ შეტანის 713 00:34:19,179 --> 00:34:22,909 რათა ზედა და ქვედა არის მხოლოდ თვითნებურად უნდა მოუწოდა გ. 714 00:34:22,909 --> 00:34:24,909 მათ შეეძლოთ მას ყველაზე არაფერი მათ სურთ, მაგრამ ისინი ინახება ეს 715 00:34:24,909 --> 00:34:26,270 მარტივია, გ. 716 00:34:26,270 --> 00:34:27,880 ასე რომ, მე კონსულტაციები კაცი გვერდზე. 717 00:34:27,880 --> 00:34:31,870 წაიკითხავს reassures ჩემთვის, რომ თუ ეს არ არის ამას წერილი, ეს 718 00:34:31,870 --> 00:34:34,969 აპირებს მხოლოდ მომეცი უკან გ, რომელიც სრულყოფილი, რაც იმას ნიშნავს, მე შემიძლია თავი დაეღწია 719 00:34:34,969 --> 00:34:36,199 ჩემი სხვას მდგომარეობაშია. 720 00:34:36,199 --> 00:34:39,679 >> ნება მომეცით დაბრუნდეს GEdit და ახლა ნება მომეცით მხოლოდ ამის გაკეთება. 721 00:34:39,679 --> 00:34:41,960 მე აპირებს ჩემი printf განცხადებაში. 722 00:34:41,960 --> 00:34:45,969 მე ვაპირებ წავიდეთ წინ და მარჯვენა შიგნით for loop ბეჭდვითი, რომ, და მიიღოს 723 00:34:45,969 --> 00:34:48,760 ჩამოშორებას ახლა ეს მთელი თუ მშენებლობა. 724 00:34:48,760 --> 00:34:51,860 არ იყო ცუდი იდეა, და ეს იყო ძალიან გაცილებით სწორი და შეესაბამება 725 00:34:51,860 --> 00:34:54,100 ყველაფერი ჩვენ ქადაგებდა, მაგრამ არ არის აუცილებელი. 726 00:34:54,100 --> 00:34:57,070 როგორც კი ხვდები, ზოგიერთი ბიბლიოთეკა ფუნქცია არსებობს იმისა, რომ ვინმე 727 00:34:57,070 --> 00:35:01,340 წერდა, ან იქნებ დაწერა სხვაგან ფაილი, შეგიძლიათ გამოიყენოთ იგი და მართლაც 728 00:35:01,340 --> 00:35:02,690 დავიწყოთ გამკაცრდეს up კოდი. 729 00:35:02,690 --> 00:35:06,080 >> ხოლო, როცა ამბობენ, რამ, როგორიცაა კარგი სტილი, ფაქტია, რომ ეს ადამიანი მოუწოდა 730 00:35:06,080 --> 00:35:11,490 ფუნქცია ზედა, ან მანამდე არის ქვედა არის შესანიშნავად მოსახერხებელია, რადგან 731 00:35:11,490 --> 00:35:12,900 ისინი ძალიან აღწერილობითი. 732 00:35:12,900 --> 00:35:16,120 თქვენ არ მინდა მოვუწოდო თქვენი ფუნქციები x და y და z, რომელთაც აქვთ 733 00:35:16,120 --> 00:35:19,620 ბევრად, ბევრად უფრო ნაკლები მნიშვნელობა აქვს. 734 00:35:19,620 --> 00:35:25,160 ნებისმიერი შეკითხვა, რომ სერია გაუმჯობესების? 735 00:35:25,160 --> 00:35:28,010 >> ასე რომ საკმარისია ითქვას ერთი takeaways კიდევ, როგორც საკუთარი პრობლემა 736 00:35:28,010 --> 00:35:30,960 კომპლექტი - იქნებ პრობლემა ნაკრები, მაგრამ რა თქმა უნდა, P მითითებული ორი და შემდგომი, მაშინაც კი, 737 00:35:30,960 --> 00:35:34,380 როდესაც ისინი სწორი არ არის აუცილებელი ნიშნავს, ისინი საქართველოს მხოლოდ 738 00:35:34,380 --> 00:35:36,155 ჯერჯერობით ან განსაკუთრებით კარგად შემუშავებული. 739 00:35:36,155 --> 00:35:38,420 ეს არის ის, სხვა ღერძი უნდა დავიწყოთ ფიქრი. 740 00:35:38,420 --> 00:35:41,730 ასე რომ, ეს იყო სიმებიანი შიგნით თქვენი კომპიუტერის მეხსიერებაში, მაგრამ თუ თქვენ გაქვთ 741 00:35:41,730 --> 00:35:46,180 მთელი bunch პერსონაჟების მსგავსად H-E-L-L-O შიგნით ოპერატიული, და ვარაუდობენ 742 00:35:46,180 --> 00:35:51,330 რომ თქვენ თქვენი პროგრამის მოვუწოდებთ მიიღოს სიმებიანი რამდენჯერმე, რომ თქვენ 743 00:35:51,330 --> 00:35:54,200 მოვუწოდებთ მიიღოს სიმებიანი ერთხელ, მაშინ მოვუწოდებთ მიიღოს სიმებიანი ერთხელ. 744 00:35:54,200 --> 00:35:55,880 ისე, რა ხდება მოხდება დროთა განმავლობაში? 745 00:35:55,880 --> 00:35:59,170 >> სხვა სიტყვებით, თუ თქვენ გაქვთ ხაზი კოდი, თუმცა გარეთ კონტექსტში, ისევე როგორც 746 00:35:59,170 --> 00:36:02,120 სიმებიანი s იღებს - 747 00:36:02,120 --> 00:36:02,960 მოდით ეს. 748 00:36:02,960 --> 00:36:05,270 სიმებიანი სახელი შეადგენს მიიღოს სიმებიანი. 749 00:36:05,270 --> 00:36:08,590 ამიტომ ვარაუდობენ, რომ ხაზი კოდი იგულისხმება ვთხოვო შესახებ მისი სახელი. 750 00:36:08,590 --> 00:36:14,580 ეს მომდევნო ხაზი კოდი იგულისხმება ვთხოვო შესახებ მისი სკოლა, და 751 00:36:14,580 --> 00:36:15,920 ამ მეორე ხაზზე და სხვ. 752 00:36:15,920 --> 00:36:18,150 ვარაუდობენ, რომ ჩვენ შევინარჩუნოთ ითხოვს შესახებ კიდევ და 753 00:36:18,150 --> 00:36:19,750 სხვა და სხვა სიმებიანი. 754 00:36:19,750 --> 00:36:22,390 ისინი აპირებენ დარჩენას მეხსიერება ამავე დროს. 755 00:36:22,390 --> 00:36:24,280 ერთი არ აპირებს clobber სხვა. 756 00:36:24,280 --> 00:36:26,420 სკოლა არ ჩაანაცვლებს სხვა. 757 00:36:26,420 --> 00:36:28,520 მაგრამ სად ისინი დასრულდება მდე მეხსიერება? 758 00:36:28,520 --> 00:36:32,030 >> ისე, თუ ჩვენ დავიწყებთ მიაპყროს ეკრანზე, რაც ჩვენ შეგვიძლია გამოვიყენოთ ეს საგანი 759 00:36:32,030 --> 00:36:35,800 აქ, ისევე როგორც chalkboard, თუ ეს შავი მართკუთხედი წარმოადგენს ჩემს კომპიუტერის 760 00:36:35,800 --> 00:36:39,800 მეხსიერება, მე ვაპირებ თვითნებურად დაიწყოს გამყოფი იგი დაყოფილია პატარა მოედნები, 761 00:36:39,800 --> 00:36:42,120 ყოველი მათგანი წარმოადგენს ერთი ბაიტი მეხსიერება. 762 00:36:42,120 --> 00:36:46,560 გულწრფელად ვამბობ, თუ აქვს Gigabyte ოპერატიული ამ დღეებში, თქვენ გაქვთ მილიარდი bytes 763 00:36:46,560 --> 00:36:49,540 მეხსიერების თქვენს კომპიუტერში, ასე მილიარდი ამ მოედნებზე. 764 00:36:49,540 --> 00:36:52,110 ასე რომ, საკმარისია ითქვას, რომ ეს არ არის ნამდვილად, რომ მასშტაბით. 765 00:36:52,110 --> 00:36:58,250 >> მაგრამ ჩვენ შეგვიძლია შევინარჩუნოთ ხატვის ყველა ამ ნამდვილად არ გავაფართოვოთ სკვერი და ამ 766 00:36:58,250 --> 00:37:01,260 ერთობლივად წარმოადგენს ჩემი კომპიუტერის მეხსიერებაში. 767 00:37:01,260 --> 00:37:03,136 ახლა ჩვენ მხოლოდ ამის dot, dot, dot. 768 00:37:03,136 --> 00:37:06,260 ასე რომ, სხვა სიტყვებით, როდესაც მე ახლა გამოიწვიოს მომხმარებელი Get სიმებიანი მისცეს me 769 00:37:06,260 --> 00:37:07,350 ტექსტი, რა ხდება? 770 00:37:07,350 --> 00:37:14,270 თუ მომხმარებლის ტიპების "Hello", რომელიც დამთავრდა წელს H-E-L-L-O. მაგრამ ვარაუდობენ 771 00:37:14,270 --> 00:37:15,720 შესახებ, მაშინ სახეები - 772 00:37:15,720 --> 00:37:17,250 რეალურად, მე არ უნდა გაკეთდეს კომენტარი პირველმა რადგან ჩვენ ითხოვს 773 00:37:17,250 --> 00:37:18,330 მათ სახელები. 774 00:37:18,330 --> 00:37:20,580 მოდით დავუბრუნდეთ თუ შეიძლება ამის გაკეთება. 775 00:37:20,580 --> 00:37:26,130 >> ასე რომ, თუ მე ტიპის D--V-I-D, ჩემი სახელი და გვარი, მაგრამ გავიხსენოთ, რომ მეორე ხაზი 776 00:37:26,130 --> 00:37:29,220 კოდექსი მიიღოს სიმებიანი ერთხელ თავისი სკოლა. 777 00:37:29,220 --> 00:37:32,090 სად არის, რომ სიტყვა, რომელიც შესახებ ტიპების აპირებს შემდეგი? 778 00:37:32,090 --> 00:37:38,290 ასევე, შესაძლოა, აპირებს წასვლას H--R-V--R-D. ასე რომ, მიუხედავად იმისა, რომ მე 779 00:37:38,290 --> 00:37:41,560 შედგენილი იქნება, როგორც ორ რიგში, ეს მხოლოდ მთელი bunch of bytes თქვენს 780 00:37:41,560 --> 00:37:42,710 კომპიუტერის ოპერატიული. 781 00:37:42,710 --> 00:37:46,560 აქ არის პრობლემა, რადგან ახლა თუ მე ვარ გამოყენებით RAM ამ ძალიან გონივრული 782 00:37:46,560 --> 00:37:49,910 მაგრამ ერთგვარი გულუბრყვილო გზა, რა შეგიძლიათ არ როგორც ჩანს ზღვარის? 783 00:37:49,910 --> 00:37:52,640 784 00:37:52,640 --> 00:37:54,680 სადაც იწყება და სად ერთი მთავრდება, არა? 785 00:37:54,680 --> 00:37:55,860 ისინი ერთგვარი დაბინდვა ერთად. 786 00:37:55,860 --> 00:37:57,920 >> გამოდის, კომპიუტერი ამას არ გააკეთებს. 787 00:37:57,920 --> 00:38:04,720 ნება მომეცით რეალურად გადახვევა უკან დრო რამდენიმე პერსონაჟი, და ნაცვლად ჰარვარდის 788 00:38:04,720 --> 00:38:09,570 მიმდინარეობს მაშინვე მომხმარებლის სახელზე, მომხმარებლის რეალურად იღებს, უკან 789 00:38:09,570 --> 00:38:12,000 სცენები, სპეციალური სიმბოლოს შეიყვანეს მიერ 790 00:38:12,000 --> 00:38:13,885 კომპიუტერი მას. 791 00:38:13,885 --> 00:38:19,470 / 0, წინააღმდეგ შემთხვევაში ცნობილია როგორც nul ხასიათი გამაღიზინებლად მოუწოდა N-U-L, არ 792 00:38:19,470 --> 00:38:22,190 N-U-L-L, მაგრამ თქვენ დაწერა როგორც / 0. 793 00:38:22,190 --> 00:38:27,130 უბრალოდ ყველა ნულოვანი ბიტი არის მარკერის in შორის პირველი სიტყვა, რომელიც მომხმარებლის 794 00:38:27,130 --> 00:38:28,290 აკრეფილი და მეორე. 795 00:38:28,290 --> 00:38:33,020 >> ასე რომ, ჰარვარდის რეალურად ახლა მთავრდება რადგან ეს რიგითობა გმირები 796 00:38:33,020 --> 00:38:36,110 და კიდევ ერთი / 0. 797 00:38:36,110 --> 00:38:41,690 ასე რომ, სხვა სიტყვებით, მიერ, რომელსაც ეს Sentinel ღირებულებების, რვა მომიჯნავე ნულოვანი 798 00:38:41,690 --> 00:38:45,220 ბიტი, შეგიძლიათ დაიწყოს ზღვარის ერთი ხასიათი სხვა. 799 00:38:45,220 --> 00:38:49,720 ასე რომ, მთელი ამ ხნის, თუ რა იყო "გამარჯობა" არის რეალურად "Hello" ერთად / 0, და 800 00:38:49,720 --> 00:38:53,580 იმავდროულად, შეიძლება ძალიან კარგად იყოს უფრო მეტს RAM 801 00:38:53,580 --> 00:38:56,400 შიგნით კომპიუტერი. 802 00:38:56,400 --> 00:38:57,810 >> ნება მომეცით გავაკეთოთ ერთი რამ არის. 803 00:38:57,810 --> 00:39:01,800 გამოდის, რომ ყველა ეს მოედნები ჩვენ უკვე ხატვის, ისინი კი, 804 00:39:01,800 --> 00:39:06,140 სიმები, მაგრამ უფრო ზოგადად, ეს ყველაფერი მასივები. 805 00:39:06,140 --> 00:39:10,590 მასივი უბრალოდ ბლოკი მეხსიერება ეს არის ის, უკან თავში თავში დაბრუნება, 806 00:39:10,590 --> 00:39:15,130 და თქვენ, როგორც წესი, გამოიყენოთ მასივი გზით ამ მოედანზე bracket notation. 807 00:39:15,130 --> 00:39:18,210 ასე რომ, ჩვენ ვაპირებთ ვხედავ ამ საკმაოდ მწირი დროთა განმავლობაში, მაგრამ ნება მომეცით წავიდეთ წინ და 808 00:39:18,210 --> 00:39:21,160 ქმნის, მოდით ეძახით ასაკის. 809 00:39:21,160 --> 00:39:23,920 და შეამჩნია რა შეგვიძლია ერთად ამ საერთო tricks, პატარა 810 00:39:23,920 --> 00:39:25,750 ცოტა მეტი syntax აქ. 811 00:39:25,750 --> 00:39:29,270 >> ასე რომ, ხაზი 17 ამ პროგრამის - ფაქტობრივად, ნება მომეცით პროგრამის გაშვება პირველი 812 00:39:29,270 --> 00:39:30,770 ასე რომ, ჩვენ ვხედავთ რაც ამ რამ არ. 813 00:39:30,770 --> 00:39:33,530 მინდა გითხრათ, მიიღოს ასაკის შეადგინოს ამ პროგრამის. 814 00:39:33,530 --> 00:39:34,950 . / ასაკის. 815 00:39:34,950 --> 00:39:36,480 რამდენი ადამიანი ოთახში? 816 00:39:36,480 --> 00:39:38,020 მას სამი. 817 00:39:38,020 --> 00:39:39,575 ასაკი პირველი პირი? 818 00:39:39,575 --> 00:39:42,710 18, 19 და 20. 819 00:39:42,710 --> 00:39:46,770 ახლა კი გარკვეულწილად ridiculously, უბრალოდ არ გააკეთა პროგრამა, რომელიც საუკუნეების იმ 820 00:39:46,770 --> 00:39:47,740 სამი ადამიანი. 821 00:39:47,740 --> 00:39:50,390 >> ასე რომ აშკარად საშუალება გარკვეული fun არითმეტიკა აქ. 822 00:39:50,390 --> 00:39:51,560 საბედნიეროდ, მათემატიკის სწორია. 823 00:39:51,560 --> 00:39:54,720 18 წავიდა 19, 19 წავიდა 20 და სხვ. 824 00:39:54,720 --> 00:39:58,510 მაგრამ რა სინამდვილეში ნიშნავს, რომ საილუსტრაციო აი, როგორ ჩვენ შენახვის 825 00:39:58,510 --> 00:40:00,190 იმ სამ ხალხის ასაკის. 826 00:40:00,190 --> 00:40:02,370 ნება მომეცით მასშტაბის გასაზრდელად რა არის ხდება აქ. 827 00:40:02,370 --> 00:40:06,240 >> ასე რომ, პირველი, ეს პირველი რამდენიმე ხაზები უნდა მისაღებად საკმაოდ ნაცნობი. 828 00:40:06,240 --> 00:40:08,770 მე მხოლოდ რითაც მომხმარებელი, ადამიანთა რიცხვი ოთახში. 829 00:40:08,770 --> 00:40:11,490 მაშინ მე გამოყენებით მიიღოს int და ამის გაკეთება ხოლო ეს კიდევ ერთხელ და ისევ და ისევ. 830 00:40:11,490 --> 00:40:15,780 ჩვენ ვნახეთ, რომ ნიმუში ადრე, მაგრამ ხაზი 27 არის ახალი და რეალურად საკმაოდ 831 00:40:15,780 --> 00:40:18,160 სასარგებლო და გახდება სულ უფრო და უფრო სასარგებლოა. 832 00:40:18,160 --> 00:40:21,620 გავითვალისწინოთ რომ რა განსხვავებული ხაზი 27 არის, რომ მე, როგორც ჩანს, გამოცხადების 833 00:40:21,620 --> 00:40:23,960 int მოუწოდა ასაკის, მაგრამ დაველოდოთ. 834 00:40:23,960 --> 00:40:27,140 ეს არ არის მხოლოდ int ასაკის. 835 00:40:27,140 --> 00:40:30,130 აქ არის ამ კვადრატულ ფრჩხილებში, შიგნით, რომელიც ნ. 836 00:40:30,130 --> 00:40:35,150 >> ასე რომ, bracket n ამ კონტექსტში არ შიგნით printf განაცხადი აქ 837 00:40:35,150 --> 00:40:44,370 ამ ერთადერთი ხაზი 27, ამ ხაზის ამბობდა, მომეცი ო ints, რომელთაგან თითოეული 838 00:40:44,370 --> 00:40:46,080 არის ტიპის int. 839 00:40:46,080 --> 00:40:49,870 ასე რომ, ეს bucket, ასე ვთქვათ, of, ამ შემთხვევაში, სამი რიცხვებით უკან 840 00:40:49,870 --> 00:40:52,770 უკან დაბრუნება ისე, რომ ეფექტურად სამი ცვლადი. 841 00:40:52,770 --> 00:40:54,890 ალტერნატიული, უნდა იყოს ნათელი, იქნება ეს. 842 00:40:54,890 --> 00:40:57,400 >> თუ მინდოდა პირველი სტუდენტის ასაკი, შეიძლება ამის გაკეთება. 843 00:40:57,400 --> 00:40:59,520 თუ მინდოდა მეორე სტუდენტის ასაკი შეიძლება ამის გაკეთება. 844 00:40:59,520 --> 00:41:01,860 თუ მინდოდა მესამე სტუდენტის ასაკი, შეიძლება ამის გაკეთება. 845 00:41:01,860 --> 00:41:04,320 და ღმერთმა ნუ ქნას, რომ ჩვენ გვჭირდება ყველას ასაკი ამ ოთახში - 846 00:41:04,320 --> 00:41:07,670 ვგულისხმობ, ეს heck, ძალიან ბევრი ასლი, ჩასვით ისევ და ისევ და ისევ. 847 00:41:07,670 --> 00:41:10,870 და პლუს ერთხელ შეადგინოს ამ პროგრამის თუ კიდევ ერთი სტუდენტი დადის ზე მეტ გარეთ 848 00:41:10,870 --> 00:41:14,200 რომ კარი, ახლა ჩემს ნომერზე ცვლადები არასწორია. 849 00:41:14,200 --> 00:41:17,450 >> რა არის ლამაზი შესახებ მასივი როგორც მალე დაიწყება შეგრძნება თავს 850 00:41:17,450 --> 00:41:20,190 გადაწერა და pasting, შანსი, რომ არ არის საუკეთესო მიდგომა. 851 00:41:20,190 --> 00:41:22,240 მასივი დინამიური პოტენციურად. 852 00:41:22,240 --> 00:41:24,610 არ ვიცი წინასწარ, თუ რამდენი ადამიანი იქნება ოთახში, 853 00:41:24,610 --> 00:41:28,670 მაგრამ მე ვიცი, მე უნდა ნ მათ, და მე გაერკვნენ n როცა დრო მოდის. 854 00:41:28,670 --> 00:41:35,500 ეს ხაზი კოდი, ახლა კი იმას ნიშნავს, მომეცი ბლოკი მეხსიერება, რაც ასე გამოიყურება 855 00:41:35,500 --> 00:41:40,380 სადაც რაოდენობის ყუთები ეკრანზე არის მთლიანად დამოკიდებული ო, რომ 856 00:41:40,380 --> 00:41:42,010 მომხმარებლის აკრეფილი შემოსული 857 00:41:42,010 --> 00:41:44,850 >> ასე რომ, ახლა დანარჩენი ამ პროგრამის რეალურად საკმაოდ მსგავსია იმისა, რაც ჩვენ 858 00:41:44,850 --> 00:41:46,860 უბრალოდ გააკეთა სიმბოლოს. 859 00:41:46,860 --> 00:41:49,970 გაფრთხილების მაქვს for loop იწყება ხაზი 30. 860 00:41:49,970 --> 00:41:54,920 ასე რომ, მას შემდეგ, რაც მე მასივი, I iterate ეხლა Y ნულის ტოლი მდე ო. 861 00:41:54,920 --> 00:41:58,890 მე უბრალოდ ამ სასწავლო printf გაგზავნა უბრალოდ ამბობდა, მომეცი ასაკი 862 00:41:58,890 --> 00:42:03,690 პირის #% i, ასე რომ ნომერ პირველი, ნომერი ორი, ნომერი სამი. 863 00:42:03,690 --> 00:42:04,730 და რატომ ამის გაკეთება? 864 00:42:04,730 --> 00:42:08,870 გულწრფელად ვამბობ, ადამიანები ურჩევნია ითვლიან ერთი მდე, ხოლო კომპიუტერის მეცნიერები, 865 00:42:08,870 --> 00:42:09,620 ნულოვანი მდე. 866 00:42:09,620 --> 00:42:11,700 კომპიუტერული მეცნიერები არ აპირებენ გამოყენება ამ სახის პროგრამა, ამიტომ ჩვენ 867 00:42:11,700 --> 00:42:13,990 აპირებს დავიწყო დამთვლელი ერთ მსგავსად ნორმალური ადამიანი. 868 00:42:13,990 --> 00:42:17,630 >> ახლა კი თანხვედრაში 33, შეამჩნია ოდნავ სხვადასხვა ნაწილი სინტაქსი. 869 00:42:17,630 --> 00:42:23,710 I-th ასაკის რომ ცვლადის ტიპის მასივი აპირებს მიიღოს int. 870 00:42:23,710 --> 00:42:25,770 ახლა კი ბოლოს, ეს მხოლოდ არითმეტიკული ქვემოთ აქ. 871 00:42:25,770 --> 00:42:29,200 გადავწყვიტე ცალკე მარყუჟის, პრეტენზია გარკვეული დროის გადის და ახლა ამ 872 00:42:29,200 --> 00:42:31,400 ცალკე მარყუჟის ამ ხაზების შეასრულოს. 873 00:42:31,400 --> 00:42:35,810 >> წელი ამიერიდან, ადამიანი იქნება i წლის, მაგრამ შეამჩნია ეს არ არის 874 00:42:35,810 --> 00:42:36,500 ცვლადი i. 875 00:42:36,500 --> 00:42:38,390 ეს არის% i for int. 876 00:42:38,390 --> 00:42:43,210 და შეამჩნია, როგორც პირველი placeholder, I plug in i პლუს 1, ამიტომ ჩვენ იმედი მოსწონს 877 00:42:43,210 --> 00:42:44,250 ნორმალური ადამიანი. 878 00:42:44,250 --> 00:42:49,190 და შემდეგ ღირებულება მათი ასაკი, ამისთვის i წლის, მე ასაკის bracket 879 00:42:49,190 --> 00:42:52,980 i - და რატომ ვარ მე აკეთებს პლუს ერთი აქ? 880 00:42:52,980 --> 00:42:53,760 ისინი უბრალოდ ასაკია. 881 00:42:53,760 --> 00:42:55,030 ეს არის ჩემი სულელური არჩევანი პროგრამები. 882 00:42:55,030 --> 00:42:56,810 ისინი უბრალოდ ასაკის ერთი წლით. 883 00:42:56,810 --> 00:42:59,770 მე ვერ აკრიფოთ ნებისმიერი ნომერი, რომელიც მე რეალურად მინდა იქ. 884 00:42:59,770 --> 00:43:02,430 >> რა არის რეალურად ყველა შესაბამისობა აქ? 885 00:43:02,430 --> 00:43:07,610 ისე, მინდა გითხრათ, რეალურად გადახვევა უკან მეტი აქ და ხატავს სურათს 886 00:43:07,610 --> 00:43:10,830 თუ რა დევს წინ. 887 00:43:10,830 --> 00:43:15,720 ის, რასაც ჩვენ უნდა აკეთებს ჩვენი მომავალი პრობლემა Set ორი არის dabbling in 888 00:43:15,720 --> 00:43:17,070 მსოფლიოს კრიპტოგრაფიის. 889 00:43:17,070 --> 00:43:22,500 ასე რომ, ეს სიმებიანი პერსონაჟების, ისე რიგითობა მრავალი სიმბოლო და რაც 890 00:43:22,500 --> 00:43:23,750 ჯერ ეს ვთქვა? 891 00:43:23,750 --> 00:43:28,530 892 00:43:28,530 --> 00:43:30,600 ეს არ ონლაინ ვერსია საქართველოს სლაიდები. 893 00:43:30,600 --> 00:43:35,880 >> ასე რომ, ამტკიცებენ, რომ ეს უდრის ამას, სულელური რეკლამის მრავალი წლის 894 00:43:35,880 --> 00:43:39,950 წინ, რომ, შესაძლოა, რეალურად იხსენებენ მისი წარმოშობა. 895 00:43:39,950 --> 00:43:42,740 ასე რომ, ეს მაგალითად დაშიფვრის ან კრიპტოგრაფიის. 896 00:43:42,740 --> 00:43:46,150 გამოდის, რომ, თუ გსურთ რეალურად ინფორმაციას ან წილის 897 00:43:46,150 --> 00:43:49,310 ინფორმაციას ვინმე საიმედოდ, მოსწონს გაგზავნა მოსწონს ეს, შეგიძლიათ 898 00:43:49,310 --> 00:43:50,500 scramble წერილები. 899 00:43:50,500 --> 00:43:53,170 თუმცა, როგორც წესი, სიტყვები არ scrambled შემთხვევით. 900 00:43:53,170 --> 00:43:56,365 ისინი permuted გარკვეულწილად ან შეიცვალა რამდენიმე გზა ისე, რომ - oops. 901 00:43:56,365 --> 00:43:59,040 სწორედ fun სპოილერი მომავალი დრო. 902 00:43:59,040 --> 00:44:04,390 >> ასე რომ შეგიძლიათ რუკაზე რა აშკარად O to ბ ცნობა, რომ ხაზები up 903 00:44:04,390 --> 00:44:05,420 კაპიტალიზაცია-ბრძენი. 904 00:44:05,420 --> 00:44:07,960 როგორც ჩანს რ ხდება ე. 905 00:44:07,960 --> 00:44:14,000 როგორც ჩანს F-H-E-R ხდება S-U-R-E. ასე რომ, თურმე არსებობს რუკების, ხოლო 906 00:44:14,000 --> 00:44:18,720 ამ შემთხვევაში არსებობს საკმაოდ სულელური რუკების თუ ვინმეს აქვს figured ის? 907 00:44:18,720 --> 00:44:21,440 ეს არის რაღაც მოუწოდა Rot 13, როტაცია 13. 908 00:44:21,440 --> 00:44:24,760 ეს stupidest დაშიფვრის მექანიზმები, რადგან ეს სიტყვა უბრალოდ 909 00:44:24,760 --> 00:44:29,160 დასძენს 13 თითოეული ასოს, სულელური იმ გაგებით, რომ თუ მხოლოდ 910 00:44:29,160 --> 00:44:31,890 ცოტა თავისუფალი დრო თქვენს ხელში და ფანქარი, ან უბრალოდ ვფიქრობ, რომ 911 00:44:31,890 --> 00:44:35,260 მეშვეობით თქვენს ხელმძღვანელი, შეგიძლიათ ვცდილობთ ყველა შესაძლო დამატებები - ერთი, ორი, 912 00:44:35,260 --> 00:44:38,470 სამი, dot, dot, dot, 25 მხოლოდ როტაცია მთელი ანბანი, და 913 00:44:38,470 --> 00:44:40,860 საბოლოოდ, თქვენ გაერკვნენ რა ეს მესიჯი არის. 914 00:44:40,860 --> 00:44:43,700 ასე რომ, თუ გააკეთეს მსგავსი რამ in კლასის სკოლის გავლის შეტყობინებები თქვენი 915 00:44:43,700 --> 00:44:46,830 საუკეთესო მეგობარი, თუ თქვენი კლასის სკოლა პედაგოგი, უბრალოდ წავიკითხე მეშვეობით 916 00:44:46,830 --> 00:44:50,320 გაგზავნა და უხეში იძულებული გადაწყვეტა, თქვენ ალბათ შემოსული 917 00:44:50,320 --> 00:44:52,550 პასუხი, რომ. 918 00:44:52,550 --> 00:44:54,970 >> ახლა, რა თქმა უნდა, რეალურ სამყაროში, კრიპტოგრაფიის არის უფრო დახვეწილი. 919 00:44:54,970 --> 00:45:00,120 ეს არის snippet of ტექსტი კომპიუტერული სისტემით, რომელსაც აქვს სახელისა და 920 00:45:00,120 --> 00:45:03,630 პაროლები, როგორც თითქმის ყველა ჩვენი გასაკეთებელი და ეს არის ის პაროლი ძალის 921 00:45:03,630 --> 00:45:07,260 ჰგავს თუ ინახება თქვენს ხისტ მანქანა, არამედ დაშიფრული ფორმით. 922 00:45:07,260 --> 00:45:11,050 ეს არ არის მხოლოდ როტაცია წერილები, არის B და B არის C. ეს არის 923 00:45:11,050 --> 00:45:15,620 ბევრად უფრო დახვეწილი, მაგრამ ის იყენებს რა საყოველთაოდ ცნობილია როგორც საიდუმლო გასაღები 924 00:45:15,620 --> 00:45:16,690 კრიპტოგრაფიის. 925 00:45:16,690 --> 00:45:20,210 ეს სურათი მოგვითხრობს შემდეგ ამბავი რამდენიმე ხატები. 926 00:45:20,210 --> 00:45:22,250 >> მარცხენა, ჩვენ გვაქვს რა ჩვენ მოვუწოდებთ ძირითადი ტექსტი. 927 00:45:22,250 --> 00:45:25,420 სამყაროში კრიპტოგრაფიის, ჩვეულებრივი ტექსტი არის მხოლოდ ორიგინალური გაგზავნა 928 00:45:25,420 --> 00:45:29,050 დაწერილი ინგლისური ან ფრანგული ან ნებისმიერ ენაზე განაწილებაზე. 929 00:45:29,050 --> 00:45:32,405 თუ გსურთ დაშიფვრა იგი, ჩვენ გაივლის ეს pictorially მეშვეობით ბოქლომი, ასე 930 00:45:32,405 --> 00:45:35,580 ზოგიერთი სახის ალგორითმი, ზოგიერთი ფუნქცია ან პროგრამა რომ ვინმე წერს 931 00:45:35,580 --> 00:45:39,880 რომ scrambles წერილებს იმედია მეტი complicatedly ვიდრე უბრალოდ დასძინა 13 932 00:45:39,880 --> 00:45:40,980 ყოველი მათგანი. 933 00:45:40,980 --> 00:45:43,780 >> რა გავიდნენ, რომ პროცესი შუა იქ ეწოდება cyphertext. 934 00:45:43,780 --> 00:45:44,850 ასე რომ, ასეთი sexy სიტყვა. 935 00:45:44,850 --> 00:45:47,630 ეს მხოლოდ იმას ნიშნავს, რომ ეს დაშიფრული მობილური ძირითადი ტექსტი. 936 00:45:47,630 --> 00:45:52,570 და თუ თქვენ გაქვთ, რომ იგივე საიდუმლო, 13 ან მინუს 13, თქვენ შესაძლებლობა 937 00:45:52,570 --> 00:45:54,970 გაშიფვრა გაგზავნა იგრძნობა. 938 00:45:54,970 --> 00:45:57,770 >> ასე რომ, პრობლემა არის მითითებული ორი, მათ შორის რამ თქვენ თუ ამ Hacker 939 00:45:57,770 --> 00:46:01,860 გამოცემა, თქვენ უნდა დაწეროს კოდი ბზარი ეს პაროლები, მჭიდროდაა გარეთ 940 00:46:01,860 --> 00:46:05,170 რაც იყო და როგორ იყო დაშიფრული, თუმცა ჩვენ ყველაფერს ვაკეთებთ გაძლევთ ცოტა 941 00:46:05,170 --> 00:46:06,460 ხელმძღვანელობით გზაზე. 942 00:46:06,460 --> 00:46:09,320 In სტანდარტული გამოცემა, ჩვენ დანერგვა რამდენიმე ciphers, დაშიფვრის 943 00:46:09,320 --> 00:46:12,400 მექანიზმები, ერთი მოუწოდა ცეზარ, ერთი მოუწოდა Vigenere, რომლებიც ჯერ 944 00:46:12,400 --> 00:46:16,100 ბრუნვის ciphers, სადაც ხდება რაღაც, B ხდება რაღაც, მაგრამ 945 00:46:16,100 --> 00:46:18,820 თქვენ უნდა გავაკეთოთ პროგრამულად იმიტომ, რომ იქ მართლაც იყოს საიდუმლო 946 00:46:18,820 --> 00:46:22,840 გასაღები ჩართული, რომელიც, როგორც წესი, მთელი რიგი ან სიტყვით რომ მხოლოდ 947 00:46:22,840 --> 00:46:26,420 გამგზავნი და მიმღები ეს შეტყობინებები უნდა გაიგოს. 948 00:46:26,420 --> 00:46:28,660 >> ახლა ეს რეალურად აქვს incarnations რეალურ ცხოვრებაში. 949 00:46:28,660 --> 00:46:32,910 ეს, მაგალითად, პატარა ობოლი ენი საიდუმლო დეკოდერი ბეჭედი, და თქვენ 950 00:46:32,910 --> 00:46:35,180 შეიძლება რეალურად განახორციელოს ეს ბრუნვის ciphers - 951 00:46:35,180 --> 00:46:37,930 ხდება რაღაც, B ხდება რაღაც - ერთად რამდენიმე დისკები, 952 00:46:37,930 --> 00:46:40,840 ერთი გარეთ, ერთი ქვეყნის შიგნით ასეთი, რომ თუ თქვენ როტაცია საჭე ან 953 00:46:40,840 --> 00:46:44,170 ბეჭედი, შეგიძლიათ რეალურად გამოდიან წერილების სხვადასხვა წერილები, 954 00:46:44,170 --> 00:46:45,430 მიღების საიდუმლო კოდი. 955 00:46:45,430 --> 00:46:48,110 ასე რომ, როგორც cliffhanger დღეს, რა მეგონა, მე მინდა ამის გაკეთება ცოტა 956 00:46:48,110 --> 00:46:52,170 throwback, რომ თუ თქვენ ჩართოთ TV 24 დეკემბერს, თქვენ შეგიძლიათ ნახოთ 957 00:46:52,170 --> 00:46:55,390 ფილმის რეკლამა nauseum for 24 საათის განმავლობაში ზედიზედ. 958 00:46:55,390 --> 00:47:06,030 მაგრამ დღეს, მე გასახსნელად აქ და მოგვცეს მხოლოდ ორი წუთი 959 00:47:06,030 --> 00:47:13,493 pedagogically შესაბამისი საშობაო ამბავი პატარა თანამემამულე დაასახელა Ralphie. 960 00:47:13,493 --> 00:47:14,400 >> [ვიდეო აღწარმოების] 961 00:47:14,400 --> 00:47:17,420 >> -იქნება ეს ცნობილია ყველასთვის და sundry, რომ რალფ პარკერი წინამდებარე დაინიშნა 962 00:47:17,420 --> 00:47:20,650 წევრი პატარა ობოლი ენი საიდუმლო წრე და მას უფლება აქვს ყველა 963 00:47:20,650 --> 00:47:23,460 პატივით და სარგებელი ხდება მასთან. 964 00:47:23,460 --> 00:47:25,990 >> ხელმოწერილი, პატარა ობოლი Annie. 965 00:47:25,990 --> 00:47:30,100 Countersigned პიერ ანდრე in მელნის. 966 00:47:30,100 --> 00:47:34,270 ჯილდოები და შეღავათები უკვე ასაკში ცხრა. 967 00:47:34,270 --> 00:47:39,440 >> [ყვირილი, რადიო] 968 00:47:39,440 --> 00:47:40,770 >> კარგით, მოდით მიიღოს იგი. 969 00:47:40,770 --> 00:47:44,965 მე არ უნდა ყველა რომ ჯაზის შესახებ კონტრაბანდისტების და მეკობრეების. 970 00:47:44,965 --> 00:47:48,270 >> -Listen ხვალ საღამოს დადების ავანტიურის შავი 971 00:47:48,270 --> 00:47:49,650 მეკობრე გემი. 972 00:47:49,650 --> 00:47:53,320 ახლა დროა ენი საიდუმლო შეტყობინება თქვენთვის წევრები 973 00:47:53,320 --> 00:47:55,720 საიდუმლო წრე. 974 00:47:55,720 --> 00:47:56,580 გახსოვდეთ, ბავშვები. 975 00:47:56,580 --> 00:48:01,720 მხოლოდ წევრების ენი საიდუმლო წრე შეიძლება decode ენი საიდუმლო გაგზავნა. 976 00:48:01,720 --> 00:48:05,872 გახსოვდეთ, ენი დამოკიდებულია თქვენ. 977 00:48:05,872 --> 00:48:08,670 თქვენი ქინძისთავები რომ B2. 978 00:48:08,670 --> 00:48:11,000 აქ არის გზავნილი. 979 00:48:11,000 --> 00:48:12,335 12, 11, 2 - 980 00:48:12,335 --> 00:48:14,670 >> -მე ჩემი პირველი საიდუმლო შეხვედრა. 981 00:48:14,670 --> 00:48:19,720 >> -25, 14, 11, 18, 16 - 982 00:48:19,720 --> 00:48:21,650 >> პიერ იყო დიდი ხმა შეძლებენ. 983 00:48:21,650 --> 00:48:24,830 მე ვერ გეტყვით, რომ დღეს ის გაგზავნა მართლაც მნიშვნელოვანია. 984 00:48:24,830 --> 00:48:26,400 >> -3, 25. 985 00:48:26,400 --> 00:48:28,540 სწორედ გზავნილი ენი თავად. 986 00:48:28,540 --> 00:48:30,086 გახსოვდეთ, არ ვუთხრა ვინმეს. 987 00:48:30,086 --> 00:48:34,370 988 00:48:34,370 --> 00:48:38,710 >> -90 წამში, მე მხოლოდ ოთახი ამ სახლში, სადაც ბიჭი ცხრა 989 00:48:38,710 --> 00:48:42,668 შეიძლება იჯდეს კონფიდენციალურობის და decode. 990 00:48:42,668 --> 00:48:47,628 Aha, ბ მივედი შემდეგ. 991 00:48:47,628 --> 00:48:53,060 ე პირველი სიტყვა "იყოს". ს იგი მოდის ადვილი არის. 992 00:48:53,060 --> 00:48:54,980 უ 25. 993 00:48:54,980 --> 00:48:55,940 ეს არის ის, რ 994 00:48:55,940 --> 00:48:56,900 >> -კარგით, Ralphie. 995 00:48:56,900 --> 00:48:57,860 I gotta go. 996 00:48:57,860 --> 00:48:59,780 >> -I'll be ქვემოთ, MA. 997 00:48:59,780 --> 00:49:01,030 Gee პროგრამირებაში. 998 00:49:01,030 --> 00:49:04,300 999 00:49:04,300 --> 00:49:08,220 >> -T. ო დარწმუნდით. 1000 00:49:08,220 --> 00:49:09,500 დარწმუნდით, რომ რა? 1001 00:49:09,500 --> 00:49:11,660 რა იყო პატარა ობოლი ენი ცდილობს ვთქვა? 1002 00:49:11,660 --> 00:49:12,844 დარწმუნდით, რომ რა? 1003 00:49:12,844 --> 00:49:14,732 >> -Ralphie რენდი აქვს გასავლელი. 1004 00:49:14,732 --> 00:49:16,148 თქვენ გთხოვთ გამოვიდეს? 1005 00:49:16,148 --> 00:49:17,092 >> -All უფლება, MA. 1006 00:49:17,092 --> 00:49:18,510 მე ვიქნები უფლება. 1007 00:49:18,510 --> 00:49:20,270 >> -I იყო უახლოვდება არის. 1008 00:49:20,270 --> 00:49:21,823 დაძაბულობის საშინელი იყო. 1009 00:49:21,823 --> 00:49:23,045 რა იყო ეს? 1010 00:49:23,045 --> 00:49:26,510 ბედი პლანეტა შეუძლია სასწორზე დევს. 1011 00:49:26,510 --> 00:49:28,985 >> -Ralphie რენდი ნახვა gotta go. 1012 00:49:28,985 --> 00:49:32,680 >> -I'll იქნება სწორი გარეთ ტირილი ხმამაღლა. 1013 00:49:32,680 --> 00:49:33,956 >> -თითქმის. 1014 00:49:33,956 --> 00:49:35,140 ჩემი თითების გაფრინდა. 1015 00:49:35,140 --> 00:49:36,880 ჩემი აზრით ფოლადის ხაფანგში. 1016 00:49:36,880 --> 00:49:38,010 ყველა ფორე vibrated. 1017 00:49:38,010 --> 00:49:39,878 ეს იყო თითქმის ნათელია. 1018 00:49:39,878 --> 00:49:43,210 დიახ, დიახ, დიახ, დიახ, დიახ. 1019 00:49:43,210 --> 00:49:49,030 >> -დარწმუნდით თქვენს Ovaltine. 1020 00:49:49,030 --> 00:49:50,280 Ovaltine? 1021 00:49:50,280 --> 00:49:53,980 1022 00:49:53,980 --> 00:49:55,230 Crummy კომერციული? 1023 00:49:55,230 --> 00:49:58,572 1024 00:49:58,572 --> 00:50:00,694 ძე bitch. 1025 00:50:00,694 --> 00:50:01,900 >> [END ვიდეო აღწარმოების] 1026 00:50:01,900 --> 00:50:04,260 >> დინამიკები 1: ეს არის CS50, და რომ იქნება პრობლემა Set ორი. 1027 00:50:04,260 --> 00:50:06,305 თქვენ მომავალ კვირას. 1028 00:50:06,305 --> 00:50:08,800 >> დინამიკები 2: მომდევნო CS50, ეს მოხდება. 1029 00:50:08,800 --> 00:50:11,060 >> დინამიკები 1: So ერთ თემას ჩვენ არ გვაქვს უყურებდნენ დღემდე არის 1030 00:50:11,060 --> 00:50:12,220 რომ ფუნქციის მაჩვენებლებს. 1031 00:50:12,220 --> 00:50:14,540 ახლა, ფუნქციის მაჩვენებელი მხოლოდ მისამართი საჯარო 1032 00:50:14,540 --> 00:50:17,000 ფუნქცია, მაგრამ ჰგავს - 1033 00:50:17,000 --> 00:50:18,250 ვაჟი - 1034 00:50:18,250 --> 00:50:19,670