1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> პროფესორი: ასე რომ, დღის წესრიგში ამ კვირაში, არ არის, რომ ბევრი პერსონალი. 3 00:00:09,790 --> 00:00:12,801 მაგრამ იმედია, ძალიან სასარგებლოა და შესაბამისი თქვენთვის ბიჭები ამ კვირაში. 4 00:00:12,801 --> 00:00:15,550 მაგრამ ჩვენ ვაპირებთ დახარჯვა იქნებ 15, 20-ე წუთზე უბრალოდ სწრაფად საუბარი 5 00:00:15,550 --> 00:00:17,370 შესახებ ბმული სიაში. 6 00:00:17,370 --> 00:00:19,694 ლინკები სიები ვაპირებთ დაიფარება ვიქტორინა. 7 00:00:19,694 --> 00:00:22,610 ასე რომ, ალბათ, რომ ეს იქნება ძალიან სასარგებლო უნდა ვისწავლოთ ცოტა რა, რომ არის. 8 00:00:22,610 --> 00:00:25,210 >> ჩვენ ვაპირებთ, რომ დახარჯოს დიდი უმრავლესობა დღევანდელ მონაკვეთზე 9 00:00:25,210 --> 00:00:27,640 აპირებს ვიქტორინა ნულოვანი პრაქტიკის პრობლემები. 10 00:00:27,640 --> 00:00:30,970 და მაშინ ჩვენ გადარჩენა იქნებ 20, 30-ე წუთზე ბოლოს ნებისმიერი კითხვების 11 00:00:30,970 --> 00:00:32,850 ვინმეს აქვს. 12 00:00:32,850 --> 00:00:34,610 >> და მაშინ, ბოლო ხუთ წუთში, მე ვაპირებ 13 00:00:34,610 --> 00:00:36,467 მისცეს სატუმბი სიტყვის ვიქტორინა. 14 00:00:36,467 --> 00:00:38,050 თქვენ ბიჭები ყველას გვინდა, რომ აქ, რომ. 15 00:00:38,050 --> 00:00:39,591 იმიტომ, რომ ეს იქნება კარგი დრო. 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> ყველა უფლება, ასე რომ ზოგიერთი მასალა ლინკები სიაში. 18 00:00:49,230 --> 00:00:52,620 როგორ ისინი, როგორც წესი, სტრუქტურა არის თქვენ გაქვთ რასაც კვანძის, არა? 19 00:00:52,620 --> 00:00:54,870 თქვენ გაქვთ ეს ყველაფერი მოუწოდა კვანძების, რომლებიც structs. 20 00:00:54,870 --> 00:00:57,360 მე წასვლა თუ როგორ უნდა შექმნათ კვანძის მომდევნო slide. 21 00:00:57,360 --> 00:01:00,680 მაგრამ არსებითად ყველა უკავშირდება სიები არის მონაცემები, რომ 22 00:01:00,680 --> 00:01:03,340 უკვე strung ერთად მეშვეობით პოინტერები. 23 00:01:03,340 --> 00:01:09,110 >> ასე რომ, უპირატესობა ჩვენ გვაქვს გამოყენების უკავშირდება სიაში ზე, 24 00:01:09,110 --> 00:01:11,280 ალბათ, როგორც მასივი, ის ფაქტი, რომ მასივი 25 00:01:11,280 --> 00:01:15,000 თქვენ უნდა ერთი მომიჯნავე ბლოკი მეხსიერება ყველა ერთსა და იმავე ადგილზე, ერთი 26 00:01:15,000 --> 00:01:16,870 მიყოლებით, შეძლებს აქვს, რომ. 27 00:01:16,870 --> 00:01:20,200 ვინაიდან უკავშირდება სიაში, თქვენ შეიძლება შემთხვევითი პატარა ბიტი მეხსიერების 28 00:01:20,200 --> 00:01:23,020 მთელი თქვენი კომპიუტერი strung ერთად მითითებას. 29 00:01:23,020 --> 00:01:26,270 >> და ამ გზით თქვენ შეუძლია ინფორმაციის 30 00:01:26,270 --> 00:01:28,610 რომ მოდის ერთ შემდეგ სხვა, მას შემდეგ, რაც სხვა 31 00:01:28,610 --> 00:01:32,720 გარეშე, მხოლოდ უზარმაზარი ბლოკი მეხსიერების თქვენს კომპიუტერში სადღაც. 32 00:01:32,720 --> 00:01:35,910 ასე რომ, ეს არის ერთ-ერთი მთავარი მიზეზი, რის გამოც ჩვენ ვიყენებთ ლინკები სიაში. 33 00:01:35,910 --> 00:01:40,300 >> მეორე, ეს არის ძალიან მარტივი დინამიურად ზომის შეცვლა ბმული სიაში იმიტომ მასივი, 34 00:01:40,300 --> 00:01:44,720 როდესაც თქვენ გამოაცხადოს მასივი, თქვენ გაქვთ გარკვეული მნიშვნელობა. 35 00:01:44,720 --> 00:01:47,340 ვთქვათ, მე მინდოდა, რომ შეიქმნას მასივი 10 რიცხვებით. 36 00:01:47,340 --> 00:01:49,970 შევქმნა მასივი 10 რიცხვებით და ეს არის. 37 00:01:49,970 --> 00:01:50,580 ეს არის 10. 38 00:01:50,580 --> 00:01:52,038 მე არ ვიცი, რა უნდა გააკეთოს ამის შემდეგ. 39 00:01:52,038 --> 00:01:53,680 თუ მინდოდა, რომ ეს 11 არ შეუძლია ამის გაკეთება. 40 00:01:53,680 --> 00:01:55,710 თუ მინდა, რომ ეს 9, ამის გაკეთება არ შეუძლიათ. 41 00:01:55,710 --> 00:01:59,910 >> არადა ბმული სია, შეგიძლიათ დაამატოთ და წაშლა და ჩადეთ სადაც გსურთ. 42 00:01:59,910 --> 00:02:04,940 თქვენ შეგიძლიათ დინამიურად შეცვლის თქვენი სტრუქტურა აქ, თქვენი მონაცემები სტრუქტურა. 43 00:02:04,940 --> 00:02:08,370 და რომ გვაძლევს ბევრი უფრო დასძინა მოქნილობა 44 00:02:08,370 --> 00:02:11,320 რომ ჩვენ არ, როგორც წესი, აქვს მასივები. 45 00:02:11,320 --> 00:02:15,210 >> ყველას დაბნეული ძირითადი სტრუქტურა როგორ ლინკი სიაში 46 00:02:15,210 --> 00:02:17,930 ან რატომ უნდა გამოვიყენოთ ერთი მასივი? 47 00:02:17,930 --> 00:02:20,330 ჰო, ჩვენ წავიდეთ მეტი დეტალურად როგორ რეალურად შევქმნათ ერთი. 48 00:02:20,330 --> 00:02:24,121 მაგრამ ეს მხოლოდ სახის ზოგადი გაგებით ახლავე. 49 00:02:24,121 --> 00:02:24,620 ზემოთ. 50 00:02:24,620 --> 00:02:28,770 ასე რომ, კოლექტორები strung ერთად ამ ლამაზი პატარა რამ 51 00:02:28,770 --> 00:02:29,960 მოუწოდა კვანძების. 52 00:02:29,960 --> 00:02:32,210 ყველა კვანძის ტიპის struct. 53 00:02:32,210 --> 00:02:36,090 გახსოვდეთ, struct არის თუ უნდოდა შექმნას გარკვეული ტიპის ცვლადი 54 00:02:36,090 --> 00:02:39,850 C რომ არ უკვე არსებობს, თქვენ, როგორც პროგრამისტი, 55 00:02:39,850 --> 00:02:42,030 ნამდვილად შეგვიძლია, რომ თავს. 56 00:02:42,030 --> 00:02:46,540 >> ასე რომ, ამ ტიპის მონაცემები სტრუქტურა ეწოდება კვანძის, 57 00:02:46,540 --> 00:02:50,770 ფაქტობრივად უკვე ჩვენს მიერ, რომელიც არ არსებობს ფარგლებში C საკუთარი. 58 00:02:50,770 --> 00:02:53,150 და ისე, რომ თქვენ შევქმნათ ერთი თქვენ უნდა 59 00:02:53,150 --> 00:02:57,170 სათაურის typedef struct, რომელიც ეუბნება შემდგენელი ვარ 60 00:02:57,170 --> 00:02:59,640 შესახებ, რათა შეიქმნას struct. 61 00:02:59,640 --> 00:03:00,830 >> ჩვენ ვაპირებთ, სახელად "კვანძის". 62 00:03:00,830 --> 00:03:03,350 და შიგნით ჩვენ ვაპირებთ განაცხადოს ცვლადი, 63 00:03:03,350 --> 00:03:05,060 რომელიც აპირებს შესანახად ღირებულება. 64 00:03:05,060 --> 00:03:09,320 და მაშინ ჩვენ ასევე ვაპირებთ არ მაჩვენებელი მოუწოდა "შემდეგი" 65 00:03:09,320 --> 00:03:12,090 რომ მიუთითებს შემდეგი კვანძის ბმული სია. 66 00:03:12,090 --> 00:03:14,730 და მაშინ დასრულდება, რომ off მხოლოდ იმეორებს კვანძის ისევ ისე 67 00:03:14,730 --> 00:03:17,490 შემდგენელი იცის, OK რომ ბოლოს ჩემი struct. 68 00:03:17,490 --> 00:03:22,540 >> ასე რომ, ამ გზით, ჩვენ სახის შექმნის cute პატარა მასივი 69 00:03:22,540 --> 00:03:25,450 ასეთი რამ ერთად ღირებულება და მომცეთ. 70 00:03:25,450 --> 00:03:27,757 და თქვენ შეგიძლიათ უკავშირებენ მათ ყველა ერთად იმ მითითებას. 71 00:03:27,757 --> 00:03:30,090 ასე რომ შეიძლება ყველა სახის იყოს strung ერთად ჯაჭვი. 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> ზემოთ. 74 00:03:34,162 --> 00:03:35,453 გესმით, რომ ცოტა უკეთესი? 75 00:03:35,453 --> 00:03:36,140 >> აუდიტორია: Yeah. 76 00:03:36,140 --> 00:03:38,540 >> პროფესორი: ყველა უფლება. 77 00:03:38,540 --> 00:03:44,280 ასე რომ, ისე, რომ, როგორც თქვენ ბიჭები ვხედავთ, ტიპიური ბმული სია სტრუქტურა 78 00:03:44,280 --> 00:03:45,500 თქვენ უნდა ხელმძღვანელი. 79 00:03:45,500 --> 00:03:49,460 თქვენ გაქვთ ხელმძღვანელი ღირებულება, რომელიც არ არის მიმდინარეობს აღნიშნა, ნებისმიერი სხვა მაჩვენებელი. 80 00:03:49,460 --> 00:03:53,177 მაგრამ ის აპირებს აღვნიშნო, ან მითითება, ერთი კვანძის. 81 00:03:53,177 --> 00:03:56,510 კვანძის შემდეგ აპირებს მითითებას კვანძის ამის შემდეგ, და ასე შემდეგ და ასე შემდეგ 82 00:03:56,510 --> 00:03:59,170 სანამ თქვენ საბოლოოდ მოხვდა ბოლოს თქვენი ლინკი სიაში. 83 00:03:59,170 --> 00:04:00,980 თქვენ უბრალოდ არ უნდა მომცეთ არსებობს. 84 00:04:00,980 --> 00:04:04,659 >> ასე რომ, ვფიქრობ, როგორც, ჯაჭვი, ან თუნდაც თუ რომელიმე თქვენგანი ბიჭები გააკეთა, მე არ ვიცი, 85 00:04:04,659 --> 00:04:06,450 ისევე როგორც ხილის Loops როდესაც თქვენ პატარა. 86 00:04:06,450 --> 00:04:08,590 თქვენ რომ სიმებიანი მათ ერთად და აცვიათ მათ გარშემო კისრის. 87 00:04:08,590 --> 00:04:09,840 ვფიქრობ, რომ ეს ზუსტად იგივე რამ. 88 00:04:09,840 --> 00:04:12,964 თქვენ ამ პატარა რამ, რომ თქვენ შეუძლია სიმებიანი ერთად რომ წერტილი ერთი 89 00:04:12,964 --> 00:04:15,291 მას შემდეგ, რაც ის, რომ ერთ-ერთ შემდეგ და ასე შემდეგ და ასე შემდეგ 90 00:04:15,291 --> 00:04:17,040 სანამ თქვენ გაქვთ ჯაჭვი მონაცემთა სტრუქტურის 91 00:04:17,040 --> 00:04:21,190 რომელიც შეგიძლიათ გამოიყენოთ თუმცა გსურთ. 92 00:04:21,190 --> 00:04:27,370 >> ასე რომ, ისე, რომ ეს ჩვენ გვინდა როგორც წესი, ჩადეთ ან წაშლა 93 00:04:27,370 --> 00:04:30,020 ნებისმიერი კვანძის ლინკები სიაში არის ძალიან განსხვავებული 94 00:04:30,020 --> 00:04:31,970 დამოკიდებულია სადაც ეს კვანძი. 95 00:04:31,970 --> 00:04:34,880 ასე, მაგალითად, იმიტომ, რომ მითითებები ყოველთვის 96 00:04:34,880 --> 00:04:38,645 მიუთითებს კონკრეტული ღირებულება, როცა წაშლა და ჩადეთ კვანძის, 97 00:04:38,645 --> 00:04:41,770 თქვენ გვინდა დავრწმუნდეთ, რომ მომცეთ ყველაფერი მიუთითებს უფლება რამ. 98 00:04:41,770 --> 00:04:46,200 >> ასე რომ, თუ თქვენ სურდა პოტენციურად ჩადეთ ახალი კვანძის ერთად ღირებულება ერთი 99 00:04:46,200 --> 00:04:48,379 დაწვრილებით დახარისხებული ლინკი სია, ჩვენ ყველამ ვიცით აქ 100 00:04:48,379 --> 00:04:51,170 სურათზე, რომელიც აპირებს წავიდეს შორის ხელმძღვანელი და ორი, არა? 101 00:04:51,170 --> 00:04:52,620 იმის გამო, რომ ერთ-ერთი შეესაბამება უფლება არსებობს. 102 00:04:52,620 --> 00:04:59,060 მაგრამ გზა, რომელიც ჩვენ ყველაფერს გააკეთებს, რომ არის პირველი dereferencing მაჩვენებელი 103 00:04:59,060 --> 00:05:02,160 ხელმძღვანელი და გაგზავნის, რომ ერთი. 104 00:05:02,160 --> 00:05:05,040 >> მაგრამ ჩვენ მოვალთ პრობლემა აქ. 105 00:05:05,040 --> 00:05:08,280 შეუძლია ვინმეს რა პრობლემა არის, თუ ჩვენ პირველი dereference 106 00:05:08,280 --> 00:05:10,090 მომცეთ ხელმძღვანელი ერთი? 107 00:05:10,090 --> 00:05:14,202 რა პრობლემა შეიძლება ჩვენ გადაეყარონ თუ ჩვენ ვცდილობთ რომ დაამატოთ ეს წინ ჩვენი მასივი? 108 00:05:14,202 --> 00:05:15,409 >> აუდიტორია: [INAUDIBLE] 109 00:05:15,409 --> 00:05:16,200 პროფესორი: ზუსტად. 110 00:05:16,200 --> 00:05:20,000 ასე რომ, აქ ჩვენ გვაქვს მაჩვენებელი, რომელიც იყო ერთხელ მიუთითებს უფროსი ორი. 111 00:05:20,000 --> 00:05:23,120 მაგრამ თუ თავი დაეღწია, რომ მაჩვენებელი, თქვენ აღვნიშნო, რომ ეს ერთ-ერთი, 112 00:05:23,120 --> 00:05:26,500 ჩვენ ახლა არ ვიცი სად უნდა წავიდეს, რათა იპოვოს ორი. 113 00:05:26,500 --> 00:05:29,850 იმის გამო, რომ, როგორც ვთქვი, თქვენ მოხვდით გიგანტური ბლოკი მეხსიერება თქვენს კომპიუტერში. 114 00:05:29,850 --> 00:05:31,860 ყველა ამ კვანძების იქნებოდა შემთხვევით interspersed 115 00:05:31,860 --> 00:05:33,350 ნებისმიერ ადგილას თქვენს კომპიუტერში. 116 00:05:33,350 --> 00:05:36,140 და თქვენ არ იცით, თუ როგორ წავიდეთ შესახებ მოძიებაში, რომ. 117 00:05:36,140 --> 00:05:40,420 >> ასე რომ, თქვენ უნდა პოინტერები მიუთითებს ყველა კვანძების დასასრულს. 118 00:05:40,420 --> 00:05:42,420 ანდა თუ შემთხვევით dereference ერთი 119 00:05:42,420 --> 00:05:44,485 გარეშე მინიჭება მნიშვნელობა პირველი, თქვენ 120 00:05:44,485 --> 00:05:47,410 უბრალოდ აპირებს დაკარგავს ყველაფერი შემდეგ. 121 00:05:47,410 --> 00:05:49,720 >> ასე რომ, რასაც ჩვენ ვაპირებთ, რომ არ არის, თქვენ პირველი 122 00:05:49,720 --> 00:05:53,270 გსურთ შექმნათ კურსორი კვანძის გსურთ ჩადეთ. 123 00:05:53,270 --> 00:05:55,270 წერტილამდე, სადაც თქვენ გსურთ ჩადეთ მას, 124 00:05:55,270 --> 00:05:59,410 და ამის შემდეგ თქვენ შესაძლოა, უფროსი უკან ერთი. 125 00:05:59,410 --> 00:06:02,800 >> არა, რომ აზრი, რომ ყველას აქ? 126 00:06:02,800 --> 00:06:03,346 შესანიშნავი. 127 00:06:03,346 --> 00:06:04,720 ვფიქრობ, რომ ეს, ისევე, როგორც ჯაჭვი. 128 00:06:04,720 --> 00:06:07,420 თუ თქვენ დაამატოთ ჯაჭვი, ეს ერთგვარი ინტუიციური 129 00:06:07,420 --> 00:06:10,742 როგორ მინდა წავიდეთ შესახებ ჩასმა რომ. 130 00:06:10,742 --> 00:06:15,274 >> OK, ასე რომ რეალურად ბევრად უფრო მოკლეა, ვიდრე მეგონა, რომ ეს უნდა იყოს, 131 00:06:15,274 --> 00:06:16,690 ხუთი წუთის spiel on ბმული სიები. 132 00:06:16,690 --> 00:06:19,960 უბრალოდ, ასე რომ თქვენ ბიჭებს აქვთ ძირითადი იდეა რა, რომ არის. 133 00:06:19,960 --> 00:06:23,580 >> აქ ჩვენ გვაქვს დღის წესრიგში ვიქტორინა ნულოვანი. 134 00:06:23,580 --> 00:06:24,895 ნუ ეს დაშინების თქვენ. 135 00:06:24,895 --> 00:06:26,270 მე ვიცი, რომ ბევრი ინფორმაცია. 136 00:06:26,270 --> 00:06:27,580 ეს ძალიან საშიშია. 137 00:06:27,580 --> 00:06:33,130 ეს არის ასევე ბევრი, მე ვფიქრობ, CSC სახის თვალსაზრისით. 138 00:06:33,130 --> 00:06:37,440 რამ, როგორიცაა თექვსმეტობითი სიმები, მითითებას, დინამიური მეხსიერების გამოყოფის 139 00:06:37,440 --> 00:06:40,120 ძალიან საშინელი sounding თვალსაზრისით. 140 00:06:40,120 --> 00:06:42,700 >> მაგრამ ჩვენ ვაპირებთ, რომ დაარღვიოს მათ ქვემოთ, ამის გარკვეული პრაქტიკის პრობლემები 141 00:06:42,700 --> 00:06:44,980 ასე რომ თქვენ ბიჭები ყველა მზად ვართ ამ გამოცდას. 142 00:06:44,980 --> 00:06:47,104 რამდენი თქვენგანი აქვს უკვე დაიწყო სწავლა? 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> OK, თქვენ ბიჭები ალბათ მინდა დაიწყოს ნაცნობობა 145 00:06:53,670 --> 00:06:56,480 ამას, რადგან ვიქტორინა ხვალ. 146 00:06:56,480 --> 00:06:58,739 ან ხუთშაბათს ზოგიერთ თქვენგანს. 147 00:06:58,739 --> 00:07:01,030 ჰო, ამიტომ ჩვენ ვაპირებთ წავიდეთ მეტი გარკვეული პრაქტიკის პრობლემები. 148 00:07:01,030 --> 00:07:04,600 თუ ბიჭები ყველა სურს მიიღოს გარეთ ფურცელი ქაღალდი, ფანქარი. 149 00:07:04,600 --> 00:07:07,310 ჩვენ ვაპირებთ, რომ უბრალოდ ატარებენ უმრავლესობის დღევანდელ მონაკვეთზე 150 00:07:07,310 --> 00:07:11,590 აპირებს ზოგიერთი, რომ ასე თუ არა ბიჭები იდეა რა ელის ვიქტორინა. 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> OK. 153 00:07:16,890 --> 00:07:19,730 რამდენიმე ლოგისტიკური ვრცლად ასევე, არავისთვის 154 00:07:19,730 --> 00:07:25,120 რომელიც არ ყოფილა, რომ ბმული არსებობს, თუ მიდიხარ cs50.yale.edu, წინა 155 00:07:25,120 --> 00:07:28,566 ამ გვერდზე არის ბმული რომელიც ამბობს, "მომხმარებლის Quiz Zero". 156 00:07:28,566 --> 00:07:29,440 ლინკები მოგაწვდით იქ. 157 00:07:29,440 --> 00:07:31,065 თუ თქვენ არ წაიკითხავს, ​​გთხოვთ წაიკითხოთ იგი. 158 00:07:31,065 --> 00:07:34,470 იმის გამო, რომ ის გიჩვენებთ მართლაც მნიშვნელოვანია ინფორმაცია იმის შესახებ, ვიქტორინა. 159 00:07:34,470 --> 00:07:37,410 >> მე ვაპირებ გაიყვანოს ამ out from რომ მხოლოდ იმიტომ, ფიზიკურად, 160 00:07:37,410 --> 00:07:40,200 თუ ბიჭები არ ვიცი სად წასვლა, ჩვენ გვაქვს პრობლემები. 161 00:07:40,200 --> 00:07:44,220 ასე რომ, თუ თქვენი ბოლო თვალსაზრისით ერთად to N, წასვლა სამართლის სკოლა აუდიტორიაში. 162 00:07:44,220 --> 00:07:47,500 და თუ თქვენი ბოლო იწყება P to Z, წასვლა Davies აუდიტორიაში. 163 00:07:47,500 --> 00:07:50,240 და ეს მხოლოდ ვრცელდება ხალხი ოთხშაბათი განყოფილებაში. 164 00:07:50,240 --> 00:07:53,420 >> თუ თქვენ აღების ვიქტორინა ხუთშაბათი, მიდიხარ SSS 114 165 00:07:53,420 --> 00:07:55,078 სადაც თქვენი ლექცია, როგორც წესი, არის. 166 00:07:55,078 --> 00:07:55,953 აუდიტორია: [INAUDIBLE] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 პროფესორი: O to Z, თქვენ აპირებს წასვლა Davies აუდიტორიაში. 169 00:08:01,940 --> 00:08:03,273 მე ვაპირებ, რომ შეიცვალოს, არა? 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> Oh, yeah, უბრალოდ ვერ ავტომატურად. 172 00:08:09,698 --> 00:08:11,753 >> ჰო, რომ თქვენ კრისტა. 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 ჰო, ჩემი ცუდი. 175 00:08:16,030 --> 00:08:17,610 Yep, O to Z, თქვენ აპირებს წასვლა Davies Auditorim. 176 00:08:17,610 --> 00:08:19,140 მე ვაპირებ დაფიქსირება ამ ერთხელ მე ატვირთეთ. 177 00:08:19,140 --> 00:08:20,320 ჰო. 178 00:08:20,320 --> 00:08:22,160 >> და მაშინ რაღაც მნიშვნელოვანია, რომ გონება 179 00:08:22,160 --> 00:08:25,290 ის არის, რომ ოთხშაბათს, თუ ოფიციალურად ჩაირიცხა ოთხშაბათი განყოფილებიანი, 180 00:08:25,290 --> 00:08:26,832 თქვენ უნდა მიიღოს თქვენი ვიქტორინა ოთხშაბათს. 181 00:08:26,832 --> 00:08:29,706 და თუ თქვენ ჩარიცხულ ხუთშაბათი, თქვენ უნდა მიიღოს თქვენი ვიქტორინა ხუთშაბათი. 182 00:08:29,706 --> 00:08:31,000 და ეს დროს კლასი დროს. 183 00:08:31,000 --> 00:08:35,970 იმ შემთხვევაში, მე ვფიქრობ, რომ ეს იგივეა, 1:00 to 2:15 ოთხშაბათს და 2:30 to 3:45 184 00:08:35,970 --> 00:08:37,220 ხუთშაბათს. 185 00:08:37,220 --> 00:08:41,710 >> თუ თქვენ გაქვთ შეურიგებელი კონფლიქტები, დეკანის excuses არის ერთადერთი რამ, 186 00:08:41,710 --> 00:08:43,030 სამწუხაროდ, ჩვენ შეუძლია. 187 00:08:43,030 --> 00:08:45,560 იმის გამო, რომ ჩვენ გვქონდა უმრავლესობის ითხოვს 188 00:08:45,560 --> 00:08:47,970 გადახვიდეთ ოთხშაბათს, ხუთშაბათს. 189 00:08:47,970 --> 00:08:51,265 რაც ჩვენ არ შეგვიძლია პატივი სცეს, თუ ჩვენ გვაქვს დეკანის თხოვნით. 190 00:08:51,265 --> 00:08:52,650 >> OK. 191 00:08:52,650 --> 00:08:57,000 ასე რომ, სანამ ჩვენ უნდა დავიწყოთ შესახებ რამდენიმე პრაქტიკის პრობლემები, 192 00:08:57,000 --> 00:09:00,540 მე უბრალოდ აპირებს წასვლა მეტი ენდი სასარგებლო რჩევები წარმატება. 193 00:09:00,540 --> 00:09:04,140 თქვენ ბიჭები, როდესაც თქვენ შესწავლა, თქვენ ნამდვილად გვინდა, რომ პრაქტიკაში წერა კოდი ხელით. 194 00:09:04,140 --> 00:09:07,050 პირველად ოდესმე აიღო CS ვიქტორინა, არ მქონდა 195 00:09:07,050 --> 00:09:09,960 პრაქტიკა წერა კოდი ხელით ადრე და ეს იყო ძალიან 196 00:09:09,960 --> 00:09:11,890 შოკისმომგვრელი რამდენად რთული იყო. 197 00:09:11,890 --> 00:09:16,125 >> როცა ბიჭები არ მოხვდება ჩვევა აკრეფით გარეთ ყველაფერი, 198 00:09:16,125 --> 00:09:20,260 საქმე ძალიან ბუნებრივად მიმდინარეობს შეუძლია არ autocompleted 199 00:09:20,260 --> 00:09:22,015 ფრჩხილებში და semicolons არსებობს. 200 00:09:22,015 --> 00:09:23,890 როდესაც ვწერთ ის ხელით, ზოგჯერ 201 00:09:23,890 --> 00:09:27,100 ძალიან, ძალიან ადვილია იმის დავიწყება, მძიმით, ან დაგავიწყდებათ დახურვა bracket, 202 00:09:27,100 --> 00:09:30,970 ან დაგავიწყდებათ დახუროს მსხვილი ნაწლავის, ან რამე მაგდაგვარს. 203 00:09:30,970 --> 00:09:34,322 >> ასე რომ, როდესაც ჩვენ ვწერთ კოდს ხელით, ეს არის ძალიან განსხვავებული შეგრძნებას. 204 00:09:34,322 --> 00:09:37,280 ასე, რომ თქვენ ბიჭები, როდესაც თქვენ სამუშაო მეშვეობით ზოგიერთი პრაქტიკის პრობლემები, 205 00:09:37,280 --> 00:09:38,904 ეს იქნებოდა კარგი იმას დღეს. 206 00:09:38,904 --> 00:09:41,770 ან ხვალ, მე ვფიქრობ, თუ თქვენ აღების ვიქტორინა ხუთშაბათს. 207 00:09:41,770 --> 00:09:45,280 >> მეორე, ჩვენ უნდა ბოლო, ისევე, რვა წლის ღირებულების პრაქტიკა 208 00:09:45,280 --> 00:09:47,070 ტესტები ონლაინ რეჟიმში. 209 00:09:47,070 --> 00:09:50,759 წლევანდელი ვიქტორინა სავარაუდოდ ძალიან, ძალიან ჰგავს ყველა მათგანი. 210 00:09:50,759 --> 00:09:51,800 ისინი ყველა ძალიან ჰგავს. 211 00:09:51,800 --> 00:09:54,220 თქვენ სახის შეღწევას სტილი ტიპის კითხვებზე 212 00:09:54,220 --> 00:09:57,250 რომ ჩვენ ვთხოვთ, ტიპის ფუნქციებს, რომ ჩვენ წერენ ეს, 213 00:09:57,250 --> 00:09:58,580 et cetera, და სხვა. 214 00:09:58,580 --> 00:10:01,980 >> ასე რომ მიიღოს პრაქტიკა ტესტებში, განსაკუთრებით დროის მცირე მონაკვეთში. 215 00:10:01,980 --> 00:10:05,390 75-ე წუთზე გავაკეთოთ ვიქტორინა არის არ არის ბევრი დროის. 216 00:10:05,390 --> 00:10:07,254 ეს არის ძალიან, ძალიან დიდი ხნის განმავლობაში. 217 00:10:07,254 --> 00:10:09,670 ასე რომ, თქვენ ბიჭები ნამდვილად გსურთ დარწმუნდით, რომ თქვენ ბიჭები არიან 218 00:10:09,670 --> 00:10:11,990 ჩვევა წერის კოდი ხელით სწრაფად. 219 00:10:11,990 --> 00:10:15,070 იმის გამო, რომ თქვენ არ გსურთ პირველი დრო, რომ ნახოთ ვიქტორინა რომ სიგრძე 220 00:10:15,070 --> 00:10:16,560 იყოს თქვენი ვიქტორინა. 221 00:10:16,560 --> 00:10:20,540 თქვენ ბიჭები ნამდვილად გვინდა დავრწმუნდეთ, რომ თქვენ პრაქტიკაში წინასწარ. 222 00:10:20,540 --> 00:10:24,550 >> მეოთხე, გსურთ განიხილავს ლექცია და განყოფილებიანი სლაიდები. 223 00:10:24,550 --> 00:10:25,980 თქვენ არ გვემახსოვრება რამ. 224 00:10:25,980 --> 00:10:30,430 რეალურად, ყველას ეძლევა ერთი ფურცელი თეთრი ქაღალდი აღნიშნავს, 225 00:10:30,430 --> 00:10:31,090 წინა და უკანა. 226 00:10:31,090 --> 00:10:32,920 შენ შეიძლება შეიტანოთ და წერა. 227 00:10:32,920 --> 00:10:37,070 თუ თქვენ აღმოჩნდეთ სჭირდება გვემახსოვრება არაფერი, ამას ქვემოთ რომ ფურცელი. 228 00:10:37,070 --> 00:10:40,810 >> მე გაძლევთ გარანტიას, რომ თქვენ არ გსურთ, დავრჩებოდით შუა, რომ ვიქტორინა 229 00:10:40,810 --> 00:10:43,890 დაემსგავსო, oh yeah, რა არის runtime ამ სახის წინააღმდეგ, რომ ერთგვარი. 230 00:10:43,890 --> 00:10:46,490 უბრალოდ დააყენა მას და კოპირება სწორი თქვენი შენიშვნა ფურცელი. 231 00:10:46,490 --> 00:10:50,420 მაშინ თქვენ შეგიძლიათ რეალურად უბრალოდ გამოიყენოთ თქვენი ტვინის ვფიქრობ პრობლემების შესახებ 232 00:10:50,420 --> 00:10:52,190 ვიდრე მქონე გავიხსენოთ ფაქტები. 233 00:10:52,190 --> 00:10:55,250 ასე რომ, ნამდვილად ისარგებლოს ნებისმიერი ნიშა დეტალები 234 00:10:55,250 --> 00:11:00,140 რომ ფიქრობთ უნდა გვემახსოვრება, plop ის ქვემოთ მიმოხილვა ფურცელი. 235 00:11:00,140 --> 00:11:02,680 >> OK, რაიმე შეკითხვები ლოჯისტიკური დაკავშირებით ვიქტორინა 236 00:11:02,680 --> 00:11:05,510 დაწყებამდე რამდენიმე ინტელექტუალური პრობლემები პრაქტიკაში? 237 00:11:05,510 --> 00:11:06,416 ჰო? 238 00:11:06,416 --> 00:11:10,040 >> აუდიტორია: მე არ მქონდა შანსი შევხედოთ ვიქტორინა [INAUDIBLE] 239 00:11:10,040 --> 00:11:11,757 მაგრამ ეს იქნება განაცხადის ძირითადად, 240 00:11:11,757 --> 00:11:14,090 ან არსებობს ასევე იქნება, როგორიცაა, ცოდნა კითხვები? 241 00:11:14,090 --> 00:11:14,940 >> პროფესორი: ეს არის ბევრი. 242 00:11:14,940 --> 00:11:16,731 ასე რომ, ისე, რომ მე გვინდა აღწერილი ვიქტორინა 243 00:11:16,731 --> 00:11:18,810 is-- მე ერთად გარკვეული პრაქტიკის პრობლემები 244 00:11:18,810 --> 00:11:20,960 რომ მე გამოყვანილია ყველა ტესტებში. 245 00:11:20,960 --> 00:11:25,210 მაგრამ დაინახავთ, რომ არსებობს ორი მთავარი სახის კითხვებით ჩვენ გკითხოთ. 246 00:11:25,210 --> 00:11:28,750 >> ერთი არის ძალიან დაბალ დონეზე დეტალურად პერსონალი. 247 00:11:28,750 --> 00:11:31,720 ჩვენ მოგცემთ მცირე ბლოკი კოდი და აცხადებენ, რომ იქ არის შეცდომა აქ? 248 00:11:31,720 --> 00:11:33,110 რა იქნება ბეჭდვის აქ? 249 00:11:33,110 --> 00:11:35,980 რა იქნება ეს კოდი აწარმოოს, et cetera. 250 00:11:35,980 --> 00:11:38,710 ასე რომ, ძალიან დაბალი დონე ინფორმაცია დეტალები. 251 00:11:38,710 --> 00:11:42,700 >> და Flip მხარის, ჩვენ გვექნება ძალიან მაღალი დონის ცოდნა დაფუძნებული კითხვები. 252 00:11:42,700 --> 00:11:45,190 ახსნით, თუ რა განსხვავება ორობითი ძებნა 253 00:11:45,190 --> 00:11:46,148 და ხაზოვანი ძებნა? 254 00:11:46,148 --> 00:11:48,500 რატომ გვინდა გამოყენება ერთი მეტი სხვა? 255 00:11:48,500 --> 00:11:49,960 ალბათ, რა არის GDB? 256 00:11:49,960 --> 00:11:51,560 რატომ ჩვენ გვინდა გამოვიყენოთ GDB? 257 00:11:51,560 --> 00:11:54,590 უმაღლესი დონის, უფრო ფუნდამენტური გაგება კითხვებს. 258 00:11:54,590 --> 00:11:58,240 ასე რომ, თქვენ ნახავთ ნარევი ორი მათგანი თქვენს ვიქტორინა. 259 00:11:58,240 --> 00:12:01,462 >> არაფერი სანამ ჩვენ უხელმძღვანელებს სწორი შევიდა? 260 00:12:01,462 --> 00:12:02,879 OK. 261 00:12:02,879 --> 00:12:03,670 აუდიტორია: კიდევ ერთი. 262 00:12:03,670 --> 00:12:04,030 პროფესორი: ოჰ, კიდევ ერთი. 263 00:12:04,030 --> 00:12:04,340 ბოდიში. 264 00:12:04,340 --> 00:12:05,631 >> აუდიტორია: ჰო, ეს ყველა უფლება. 265 00:12:05,631 --> 00:12:10,140 ასე რომ თქვენ განაცხადა 75-ე წუთზე არის ძალიან მოკლე, როგორც ეს ნაკლებად სავარაუდოა, 266 00:12:10,140 --> 00:12:11,640 რომ ჩვენ დასრულდება? 267 00:12:11,640 --> 00:12:13,571 ან, როგორც, 75-ე წუთზე არის ზუსტად იმდენი დრო 268 00:12:13,571 --> 00:12:15,700 როგორც ჩვენ უნდა, თუ ჩვენ სათანადოდ მომზადებული? 269 00:12:15,700 --> 00:12:17,450 პროფესორი: OK, ასე რომ, ვიქტორინა არის რთული. 270 00:12:17,450 --> 00:12:19,550 ეს არის ნამდვილად რთული. 271 00:12:19,550 --> 00:12:21,092 თქვენ აღმოჩნდეთ მოკლე დროში. 272 00:12:21,092 --> 00:12:24,341 თქვენ ალბათ აპირებს მოხვდა, როგორც 10, 15 წუთის წასვლა, და რომ ისევე, როგორც, shit. 273 00:12:24,341 --> 00:12:25,520 მე იმდენად დარჩა გასაკეთებელი. 274 00:12:25,520 --> 00:12:26,520 და ეს სრულიად ჯარიმა. 275 00:12:26,520 --> 00:12:28,740 ყველას აპირებს ვგრძნობ იგივე გზით. 276 00:12:28,740 --> 00:12:31,074 >> უბრალოდ ძალიან იცის რამდენი დრო თქვენ გაქვთ. 277 00:12:31,074 --> 00:12:33,490 და ამიტომაც გეუბნებით თქვენ: ბიჭები ამის პრაქტიკა ტესტებში. 278 00:12:33,490 --> 00:12:36,672 იმიტომ, რომ ეს ნამდვილად იძლევა დიდი გრძნობა რა ვიქტორინა აპირებს იყოს. 279 00:12:36,672 --> 00:12:39,130 ასე რომ, თუ თქვენ აღმოჩნდეთ მიმდინარეობს შეუძლია დასრულდა პრაქტიკა 280 00:12:39,130 --> 00:12:41,671 ტესტებში კარგი თანხა დრო, შეგიძლიათ ჰგავდა თავს კარგად, 281 00:12:41,671 --> 00:12:45,695 მაშინ არ აქვს პრობლემა ოთხშაბათს ან ხუთშაბათს. 282 00:12:45,695 --> 00:12:46,575 >> ზემოთ. 283 00:12:46,575 --> 00:12:49,200 ასე რომ, თუ ყველას wants-- ვფიქრობ, ყველაზე მეტი ადამიანი ფურცლებზე 284 00:12:49,200 --> 00:12:49,810 გარეთ უკვე. 285 00:12:49,810 --> 00:12:52,604 მე ვაპირებ არსებითად მხოლოდ გაძლევთ ნიმუში კითხვებს, 286 00:12:52,604 --> 00:12:54,520 გაძლევთ ბიჭები, ისევე, რამდენიმე წუთში მათ. 287 00:12:54,520 --> 00:12:59,610 და ჩვენ წავიდეთ მეტი, როგორც კლასი რა პასუხები მათგანი. 288 00:12:59,610 --> 00:13:02,860 >> ასე რომ, ეს არის ძალიან ტიპიური ადრეული კითხვაზე ჩვენ გამოგიგზავნით 289 00:13:02,860 --> 00:13:06,720 გთხოვოთ, მხოლოდ კონვერტაცია ციფრები შორის სხვადასხვა ბაზები. 290 00:13:06,720 --> 00:13:09,070 ორობითი, როგორც თქვენ ბიჭები შეუძლია გავიხსენოთ, ბაზაზე ორი. 291 00:13:09,070 --> 00:13:12,470 Decimal არის ბაზა 10, ან ის, რაც ჩვენ როგორც ადამიანებს, როგორც წესი, ინტერპრეტაცია. 292 00:13:12,470 --> 00:13:17,120 თექვსმეტობითი არის ბაზა 16, რომელიც არის ნულოვანი ცხრა ისევე, როგორც მეშვეობით F. 293 00:13:17,120 --> 00:13:19,990 >> ასე რომ, არსებობს ოთხი ნომრები ვარ გეკითხებით ბიჭები გარდაქმნას აქ. 294 00:13:19,990 --> 00:13:23,909 მე მივცემ თქვენ გსურთ, სამი ოთხ წუთში ვფიქრობ მეშვეობით, თუ როგორ 295 00:13:23,909 --> 00:13:25,200 ჩვენ წავიდეთ შესახებ გადაჭრის ამ. 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> აუდიტორია: არის ჩვენ დაშვებული კალკულატორები? 298 00:13:35,710 --> 00:13:37,630 >> პროფესორი: თქვენ არ უნდა კალკულატორები, yeah. 299 00:13:37,630 --> 00:13:42,420 მე ვფიქრობ, რომ ძირითად ამისა, ვფიქრობ, ყველა ბიჭები იქნება სთხოვა. 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> და მხოლოდ ამიტომ ასეთი აქვს გრძნობა როდესაც ყველას კეთდება, ეძებოთ, 302 00:14:45,070 --> 00:14:47,429 ტალღა, მე არ ვიცი, ღიმილი, ბედნიერი თუ თქვენ კეთდება. 303 00:14:47,429 --> 00:14:47,929 ჰო. 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 იქნებ რამდენიმე წუთის განმავლობაში. 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> OK, მოდით ამას. 308 00:18:29,600 --> 00:18:31,580 მე შეგნებულად აპირებს მოგცემთ ბიჭებს ნაკლები დრო 309 00:18:31,580 --> 00:18:33,760 ვიდრე თქვენ ალბათ უნდა გავაკეთოთ ზოგიერთი პრობლემა, 310 00:18:33,760 --> 00:18:37,124 უბრალოდ იმიტომ, რომ მე მინდა, რომ დავრწმუნდეთ, რომ მივიღებთ მეშვეობით bunch of პრობლემები. 311 00:18:37,124 --> 00:18:39,290 ასე რომ, არ აწუხებს, თუ თქვენ არ გაქვთ შანსი დასრულდება. 312 00:18:39,290 --> 00:18:43,770 სრულიად ნორმალურია, რადგან თქვენ გაქვთ იდეა, თუ როგორ უნდა წავიდეს ამის შესახებ. 313 00:18:43,770 --> 00:18:45,850 მოდით წავიდეთ წინ და ამის პირველი. 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> ასე რომ, პირველი, ჯერ არავის გინდათ მითხრათ, ორობითი, რა თითოეული ეს ციფრები 316 00:18:57,870 --> 00:19:00,484 წარმოადგენს თვალსაზრისით მათი ღირებულებები? 317 00:19:00,484 --> 00:19:01,250 ჰო? 318 00:19:01,250 --> 00:19:03,349 >> აუდიტორია: ორი რომ ელექტრო ნულოვანი, ორი ერთ. 319 00:19:03,349 --> 00:19:04,140 პროფესორი: ზუსტად. 320 00:19:04,140 --> 00:19:04,640 ასე რომ. 321 00:19:04,640 --> 00:19:13,430 322 00:19:13,430 --> 00:19:16,430 >> უფლება, ასე რომ, როგორც წესი, როდესაც ჩვენ ამ ბაზაზე 10 323 00:19:16,430 --> 00:19:20,580 ეს ყველაფერი, ისევე როგორც, 10 ბაზაზე ნულოვანი, არა? 324 00:19:20,580 --> 00:19:21,810 ეს არის თქვენი ერთი ადგილი. 325 00:19:21,810 --> 00:19:24,520 ყველა თქვენი 10 ადგილი არის არის 10 ძალა ერთი. 326 00:19:24,520 --> 00:19:26,600 100 ადგილი 10 ძალა ორი. 327 00:19:26,600 --> 00:19:29,570 >> როგორიც არ უნდა იყოს ბაზის თქვენ აპირებს უნდა გააკეთოს ზუსტად იგივე, 328 00:19:29,570 --> 00:19:31,480 უბრალოდ სხვადასხვა ბაზა. 329 00:19:31,480 --> 00:19:34,130 ასე რომ ორობითი, რომ არის ბაზის ორი. 330 00:19:34,130 --> 00:19:37,110 თქვენ აპირებს დააკონვერტიროთ ყველა ციფრები ორ, რაც არ უნდა ძალა 331 00:19:37,110 --> 00:19:38,190 რომ ციფრი. 332 00:19:38,190 --> 00:19:41,450 ასე რომ, ამ თვალსაზრისით, ჩვენ შეიძლება ჰქონდეს უფრო ადვილი გზა 333 00:19:41,450 --> 00:19:43,800 მიმდინარეობს შეუძლია დაამატოთ ან მთლიანობაში ყველა ნომრები, რათა 334 00:19:43,800 --> 00:19:46,010 დააკონვერტიროთ შევიდა ბაზა 10. 335 00:19:46,010 --> 00:19:50,362 >> ასე რომ, ჯერ არავის მინდა მითხრათ რა პასუხი პირველ ერთი არის ბაზა ათი? 336 00:19:50,362 --> 00:19:51,674 >> აუდიტორია: ორი, [INAUDIBLE] 337 00:19:51,674 --> 00:19:52,340 პროფესორი: ჰო. 338 00:19:52,340 --> 00:19:53,230 აუდიტორია: 42. 339 00:19:53,230 --> 00:19:56,560 პროფესორი: 42, იქ წასვლა. 340 00:19:56,560 --> 00:20:00,660 ასე რომ გზა მივიღეთ ეს პასუხი იყო აკეთებს ორი პირველი, რომელიც ორი. 341 00:20:00,660 --> 00:20:02,760 პლუს ორი მესამე, რომელიც რვა. 342 00:20:02,760 --> 00:20:07,590 პლუს ორი მეხუთე, რომელიც არის ის რაც დარჩა დასრულდა. 343 00:20:07,590 --> 00:20:09,390 თქვენ შევაჯამებ და ეს 42. 344 00:20:09,390 --> 00:20:12,000 >> არის ვინმე დაბნეული, როგორ მივიღეთ ეს? 345 00:20:12,000 --> 00:20:15,630 ასე რომ, ძირითადი ამისა, როგორც მე ვუთხარი, რომ თქვენ უნდა იყოს OK. 346 00:20:15,630 --> 00:20:17,410 თუ არა, ასევე, შეგვიძლია პრაქტიკაში, რომ ძალიან. 347 00:20:17,410 --> 00:20:18,720 მაგრამ ეს ყველა უფლება. 348 00:20:18,720 --> 00:20:20,560 ზემოთ. 349 00:20:20,560 --> 00:20:25,570 >> ვინმეს სურს, რომ მომეცი პასუხი მეორე ისევე? 350 00:20:25,570 --> 00:20:26,860 >> 50? 351 00:20:26,860 --> 00:20:27,600 კარგი. 352 00:20:27,600 --> 00:20:30,044 ყველას დაბნეული, თუ როგორ მივიღეთ, რომ ან? 353 00:20:30,044 --> 00:20:31,960 ზემოთ, მე არ პასუხი მომდევნო slide. 354 00:20:31,960 --> 00:20:34,440 ასე რომ, არ აწუხებს, თუ თქვენ უნდა კოპირება მას. 355 00:20:34,440 --> 00:20:38,860 >> OK, ასე რომ თექვსმეტობითი არის ცოტა რთული სიტუაციაა. 356 00:20:38,860 --> 00:20:41,840 მაგრამ მე ვაპირებ გაჩვენოთ ბიჭები კომბინაცია როგორ უნდა გავაკეთოთ ეს. 357 00:20:41,840 --> 00:20:44,800 ასე რომ, თექვსმეტობითი, როგორც თქვენ მახსოვს, ის არის, რომ იყოს 16. 358 00:20:44,800 --> 00:20:48,920 და იმიტომ, რომ ჩვენ, როგორც ადამიანებს არ რეალურად 16 ნომრები წარმოადგენს, რომ 359 00:20:48,920 --> 00:20:56,940 ჩვენ წავიდეთ ნულიდან ცხრა, რომელიც ჩვენი პირველი 10 ფასეულობები, და მაშინ ჩვენ გავაკეთოთ მეშვეობით F, 360 00:20:56,940 --> 00:20:58,630 რომლებიც მომდევნო ექვსი ღირებულებებს. 361 00:20:58,630 --> 00:21:03,040 >> ასე რომ, იოლი გზა გადასვლა ნებისმიერი ბინარული ნომერი თექვსმეტობითი 362 00:21:03,040 --> 00:21:05,350 შესვენება მათ up შევიდა halves. 363 00:21:05,350 --> 00:21:10,042 და ასე რომ ნებისმიერი ორობითი რიცხვი ჩვენ მივცემ თქვენ ალბათ რვა ციფრები. 364 00:21:10,042 --> 00:21:11,750 შეგიძლიათ უბრალოდ შესვენება მათ შუა. 365 00:21:11,750 --> 00:21:17,460 >> ასე რომ, პირველი one-- ერთ ერთი, ერთ ერთი, ერთი, ერთი, ერთი ერთი. 366 00:21:17,460 --> 00:21:21,340 სახის ვფიქრობ ეს, თქვენ იცით, მიაპყროს ირიბის ან მძიმით მათ შორის. 367 00:21:21,340 --> 00:21:23,800 და თქვენ შეგიძლიათ დააკონვერტიროთ პირდაპირ რასაც 368 00:21:23,800 --> 00:21:26,670 ეს არის პირველი ნომერი თექვსმეტობითი, 369 00:21:26,670 --> 00:21:29,880 და რაც აქ არის მეორე თექვსმეტობითი. 370 00:21:29,880 --> 00:21:37,584 >> ასე მახსოვს საერთო notation, რა თექვსმეტობითი ღირებულებებს დაიწყოს? 371 00:21:37,584 --> 00:21:38,460 >> აუდიტორია: Zero. 372 00:21:38,460 --> 00:21:39,270 >> პროფესორი: 0X. 373 00:21:39,270 --> 00:21:45,210 ჩვენ ვიცით, რომ ნებისმიერ დროს, ჩვენ ვთხოვთ თქვენ დააკონვერტიროთ ნებისმიერი ნომერი თექვსმეტობითი, 374 00:21:45,210 --> 00:21:48,230 ან ნებისმიერ დროს ხედავთ რაიმე ნომერი, რომელიც იწყება 0X, 375 00:21:48,230 --> 00:21:50,230 თქვენ იცით, რომ ეს არის თექვსმეტობითი მნიშვნელობა. 376 00:21:50,230 --> 00:21:54,160 >> და მაშინ ვაპირებთ მოგეთხოვებათ განსაზღვროს, თუ რა ამ ორი ციფრი არის. 377 00:21:54,160 --> 00:21:59,690 და ისე გავაკეთოთ, რომ ითვლიან up რომ ნახევარი და ითვლიან up, რომ ნახევარი. 378 00:21:59,690 --> 00:22:02,870 ასე რომ, ამ მაგალითად, რა ერთ, ერთი, ერთი, ერთი იყოს? 379 00:22:02,870 --> 00:22:04,890 რა მნიშვნელობა რომ იყოს? 380 00:22:04,890 --> 00:22:06,040 ეს მინდა იყოს F, არა? 381 00:22:06,040 --> 00:22:08,050 ეს მინდა იყოს 15. 382 00:22:08,050 --> 00:22:11,780 >> ასე რომ, ეს იქნება F. ერთი, ერთი, ერთი, ერთი აქ არის ასევე 383 00:22:11,780 --> 00:22:21,270 F. ასე რომ, ერთი, ერთი, ერთი, ერთი, ერთი, ერთი, ერთი, ერთი თექვსმეტობითი, ის არის, რომ არის 0XFF. 384 00:22:21,270 --> 00:22:25,350 იმის გამო, რომ ამ ტაიმში, წარმოდგენილია F ღირებულება 15 385 00:22:25,350 --> 00:22:27,331 და ამ ტაიმში, წარმოდგენილია F ღირებულება 15. 386 00:22:27,331 --> 00:22:29,456 იმიტომ, რომ მახსოვს, ჩვენ დათვლის ნულიდან ცხრა. 387 00:22:29,456 --> 00:22:35,290 A არის, როგორიც 10, B არის როგორც 11, F 15. 388 00:22:35,290 --> 00:22:41,690 >> აკეთებს, რომ აზრი, რომ ყველას, თუ როგორ მივიღეთ ორობითი to თექვსმეტობითი? 389 00:22:41,690 --> 00:22:44,595 >> აუდიტორია: ასე რომ, თუ არ მივიღებთ 15 ერთი, ერთი, ერთი, ერთი? 390 00:22:44,595 --> 00:22:46,220 პროფესორი: ჰო, ეს არის ორობითი, არა? 391 00:22:46,220 --> 00:22:48,090 წარმოიდგინეთ, რომ ეს არის მხოლოდ ორობითი რიცხვი. 392 00:22:48,090 --> 00:22:50,792 ასე, რომ თქვენ ორი, zeroth, რომელიც ერთი. 393 00:22:50,792 --> 00:22:51,500 აუდიტორია: Oh, OK. 394 00:22:51,500 --> 00:22:51,670 ასე რომ, უბრალოდ, სულ ის. 395 00:22:51,670 --> 00:22:52,670 >> პროფესორი: ჰო, და შემდეგ უბრალოდ, სულ რომ გარეთ. 396 00:22:52,670 --> 00:22:53,380 ეს არის ის, რაც არის. 397 00:22:53,380 --> 00:22:54,890 >> აუდიტორია: OK. 398 00:22:54,890 --> 00:22:55,830 >> პროფესორი: OK. 399 00:22:55,830 --> 00:23:00,740 >> აუდიტორია: ასე რომ თქვენ გადასვლა ორობითი ათობითზე თექვსმეტობითი? 400 00:23:00,740 --> 00:23:04,590 >> პროფესორი: ეს არის იოლი გზა ამის გაკეთება, yeah. 401 00:23:04,590 --> 00:23:11,390 თქვენ არ აპირებს ათობითზე რადგან ათობითი მხოლოდ ნულოვანი ცხრა. 402 00:23:11,390 --> 00:23:13,410 ჩვენ უბრალოდ სახის გაყოფა ამ დაყოფილია ორ. 403 00:23:13,410 --> 00:23:15,201 >> აუდიტორია: [INAUDIBLE] გამოყენების ათობითი იპოვოს 404 00:23:15,201 --> 00:23:17,809 ის, რაც მატჩების მდე თექვსმეტობითი. 405 00:23:17,809 --> 00:23:20,100 პროფესორი: მე ვგულისხმობ, თქვენ ითვლიან up გამოყენებით მათემატიკის ძირითადი. 406 00:23:20,100 --> 00:23:20,725 აუდიტორია: Yeah. 407 00:23:20,725 --> 00:23:22,300 პროფესორი: ჰო, საკმაოდ ბევრი. 408 00:23:22,300 --> 00:23:23,630 ეს ცოტა გაუგებარია. 409 00:23:23,630 --> 00:23:26,410 მაგრამ ვიცი, რომ თქვენ შეიძლება გაყოფა რასაც 410 00:23:26,410 --> 00:23:28,160 ეს მნიშვნელობა შევიდა მხოლოდ halves. 411 00:23:28,160 --> 00:23:29,570 შეხედეთ, რა არის ეს ორობითი? 412 00:23:29,570 --> 00:23:30,610 რა ნომერი არის, რომ? 413 00:23:30,610 --> 00:23:33,270 ეს იქნება რაღაც ნულიდან F. 414 00:23:33,270 --> 00:23:35,722 >> აქ არის აგრეთვე იქნება რაღაც ნულიდან F. 415 00:23:35,722 --> 00:23:37,722 და მაშინ შეგიძლიათ უბრალოდ დააყენა იმ ორ უფლება არსებობს. 416 00:23:37,722 --> 00:23:38,263 >> აუდიტორია: OK. 417 00:23:38,263 --> 00:23:38,910 პროფესორი: Yep. 418 00:23:38,910 --> 00:23:39,410 OK. 419 00:23:39,410 --> 00:23:42,320 ასე, რომ თქვენ ბიჭები მინდა ცდილობენ მომდევნო ერთი მაშინ? 420 00:23:42,320 --> 00:23:49,601 ნულოვანი, ერთი, ნულოვანი ერთი, ერთი, ნულოვანი, ერთი ნულოვანი. 421 00:23:49,601 --> 00:23:52,350 მე მივცემ თქვენ ბიჭები მოსწონს 30 წამში, მას შემდეგ, რაც თქვენ, ალბათ, არ ვიცი 422 00:23:52,350 --> 00:23:53,850 შეასრულა თუ როგორ უნდა გავაკეთოთ ეს ადრე. 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> OK, არავის სურს მიიღოს ერთი გასროლა? 425 00:24:27,381 --> 00:24:28,774 >> 0X5A. 426 00:24:28,774 --> 00:24:29,440 პროფესორი: 0X5A. 427 00:24:29,440 --> 00:24:30,470 5 ა. 428 00:24:30,470 --> 00:24:31,340 კარგი. 429 00:24:31,340 --> 00:24:37,050 ასე რომ, ეს აქ, რომ be-- გსურთ გვეუბნებიან, თუ როგორ მიიღო, რომ? 430 00:24:37,050 --> 00:24:38,920 პირველ რიგში, როგორ მიიღეთ ხუთ? 431 00:24:38,920 --> 00:24:42,030 >> აუდიტორია: იმიტომ, ნულოვანი, ერთ-ერთი, ნულოვანი, ერთი ხუთ. 432 00:24:42,030 --> 00:24:45,170 >> პროფესორი: ამჯამად ყველას გვესმის რატომ ნულოვანი, ერთი, ნულოვანი, ერთი ხუთი? 433 00:24:45,170 --> 00:24:46,260 თქვენ მოხვდით აქ. 434 00:24:46,260 --> 00:24:48,010 თქვენ არაფერი აქვს ორი პირველი. 435 00:24:48,010 --> 00:24:50,300 ორი მეორე, თქვენ ერთ-ერთი, რომელიც არის ოთხი. 436 00:24:50,300 --> 00:24:52,600 ასე, რომ თქვენ დაამატოთ ოთხი პლუს ერთი, თქვენ გაქვთ ხუთი. 437 00:24:52,600 --> 00:24:53,600 ყველას კარგი? 438 00:24:53,600 --> 00:24:54,100 OK. 439 00:24:54,100 --> 00:24:56,570 და მერე რა ეს იყოს და რატომ? 440 00:24:56,570 --> 00:24:58,350 რა რაოდენობის ამჯამად შეესაბამება? 441 00:24:58,350 --> 00:24:59,350 >> აუდიტორია: 10. 442 00:24:59,350 --> 00:25:00,976 >> პროფესორი: რა ამ ბაზაზე ორი? 443 00:25:00,976 --> 00:25:01,850 აუდიტორია: [INAUDIBLE] 444 00:25:01,850 --> 00:25:03,010 პროფესორი: ზუსტად. 445 00:25:03,010 --> 00:25:06,370 ასე რომ, ეს მეორე მნიშვნელობა აქ იქნება 0X5A. 446 00:25:06,370 --> 00:25:08,410 >> ყველას კარგი როგორ უნდა გარდაქმნას? 447 00:25:08,410 --> 00:25:10,770 ეს არის ბევრი ადვილია, ვიდრე ფიქრობთ, რომ ეს არის. 448 00:25:10,770 --> 00:25:13,330 მე უბრალოდ გვინდა დავრწმუნდეთ, თქვენ იცით, სასარგებლო რჩევები 449 00:25:13,330 --> 00:25:14,950 და ხრიკები, თუ როგორ უნდა გავაკეთოთ, რომ. 450 00:25:14,950 --> 00:25:18,432 >> აუდიტორია: რატომ შეგიძლია მხოლოდ გაყოფილი ის შუა, რომ? 451 00:25:18,432 --> 00:25:21,390 უბრალოდ იყოს, OK, მე მხოლოდ აპირებს აინტერესებს ეს პირველი [INAUDIBLE]? 452 00:25:21,390 --> 00:25:24,240 >> პროფესორი: იმის გამო, რომ რეალურად გზა თექვსმეტობითი ღირებულებებს წარმოდგენილი. 453 00:25:24,240 --> 00:25:26,890 0X, რომ რეალურად ნიშნავს სხვა არაფერია, გეუბნებოდით 454 00:25:26,890 --> 00:25:28,710 ის, რომ ეს რიცხვი. 455 00:25:28,710 --> 00:25:31,580 და ეს ყოველთვის წარმოადგენს პირველი ოთხი ციფრი. 456 00:25:31,580 --> 00:25:34,330 და ეს ყოველთვის წარმოადგენს ბოლო ოთხი ციფრი. 457 00:25:34,330 --> 00:25:37,835 ასე რომ, ამ ორი ციფრი მხოლოდ შეესაბამება სხვადასხვა ბიტი. 458 00:25:37,835 --> 00:25:39,200 >> აუდიტორია: ასე რომ, ჩვენ always-- 459 00:25:39,200 --> 00:25:41,830 >> პროფესორი: თქვენ ყოველთვის აპირებს მიიღოს რვა მნიშვნელობა ბიტი. 460 00:25:41,830 --> 00:25:44,580 >> აუდიტორია: არის, რომ ისევე, როგორც რამ აქ, ან რამ მთელი? 461 00:25:44,580 --> 00:25:46,883 პროფესორი: ეს მხოლოდ რამ კომპიუტერები, yep. 462 00:25:46,883 --> 00:25:47,424 აუდიტორია: OK. 463 00:25:47,424 --> 00:25:48,240 გასაოცარია. 464 00:25:48,240 --> 00:25:51,290 >> პროფესორი: გარდა ამისა, ასე რომ ამ მაგალითში ჩვენ მოაქცია ორობითი ათობითზე, 465 00:25:51,290 --> 00:25:53,290 და ორობითი თექვსმეტობითი. 466 00:25:53,290 --> 00:25:56,610 თქვენ ბიჭები გვინდა დავრწმუნდეთ, თქვენ ასევე პრაქტიკაში ხდება პირიქით. 467 00:25:56,610 --> 00:26:03,370 ასე რომ, თუ მივეცი თქვენ 0XFF, თქვენ შეიძლება მიაპყროს, რომ ორობითი, არა? 468 00:26:03,370 --> 00:26:06,820 >> თქვენ დააკონვერტიროთ F შევიდა ორობითი, რომელიც ერთ-ერთი, ერთი, ერთი, ერთი, 469 00:26:06,820 --> 00:26:09,380 გარდაქმნას F ორობითი, რომელიც ერთ-ერთი, ერთი, ერთი, ერთი. 470 00:26:09,380 --> 00:26:11,310 >> ასე რომ, ჩვენ შეიძლება გთხოვოთ, რომ ამის გაკეთება სხვა გზა გარშემო. 471 00:26:11,310 --> 00:26:14,817 ასე რომ, ათობითზე ორობითი, ან თექვსმეტობითი ორობითი. 472 00:26:14,817 --> 00:26:16,650 ასე რომ, თუ გინდათ დარწმუნებული ვარ, რომ თქვენ იცით, ორივე გზით. 473 00:26:16,650 --> 00:26:19,371 ჩვენ, ალბათ, გთხოვოთ კომბინაცია ორი. 474 00:26:19,371 --> 00:26:20,660 >> ჰო, თქვენ გაქვთ შეკითხვა? 475 00:26:20,660 --> 00:26:22,724 შემიძლია see-- თქვენ კარგი? 476 00:26:22,724 --> 00:26:23,348 აუდიტორია: Yeah. 477 00:26:23,348 --> 00:26:24,560 პროფესორი: OK. 478 00:26:24,560 --> 00:26:26,101 ვარ კარგი წაშლას ეს? 479 00:26:26,101 --> 00:26:26,600 შესანიშნავი. 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> ყველა უფლება, პასუხი აქ თუ ვინმეს საინტერესოა მოგვიანებით და დაბნეული. 482 00:26:40,437 --> 00:26:41,844 OK. 483 00:26:41,844 --> 00:26:46,070 >> აუდიტორია: არა აქვს მნიშვნელობა, თუ ჩვენ დააყენა ჩვენი წერილები capitol ან ამას? 484 00:26:46,070 --> 00:26:50,360 >> პროფესორი: ეს ასეა, იმიტომ, რომ თექვსმეტობითი მიერ კონვენციის, 485 00:26:50,360 --> 00:26:52,840 ყველა პერსონაჟი ზედა. 486 00:26:52,840 --> 00:26:54,650 ასე რომ მეშვეობით F არიან იქნება ზედა. 487 00:26:54,650 --> 00:26:58,660 თუ თქვენ დააყენა ამას, მე არ ვიცი, თუ ჩვენ აუცილებლად აღსანიშნავად ეს არასწორია. 488 00:26:58,660 --> 00:27:00,679 მაგრამ თეორიულად, ეს არ არის ტექნიკურად 489 00:27:00,679 --> 00:27:01,970 თუ როგორ უნდა ყოფილიყო იგი. 490 00:27:01,970 --> 00:27:03,303 ასე რომ, ისინი უნდა იყოს ზედა. 491 00:27:03,303 --> 00:27:05,910 ჰო, კარგი კითხვა. 492 00:27:05,910 --> 00:27:07,780 >> OK. 493 00:27:07,780 --> 00:27:08,790 მეორე კითხვა. 494 00:27:08,790 --> 00:27:12,750 განვიხილოთ ეს მშვენიერი პროგრამა აქ. 495 00:27:12,750 --> 00:27:15,180 მე ვთხოვ კითხვა, მე დავბრუნდები ეს. 496 00:27:15,180 --> 00:27:23,170 >> ასე რომ, პირველ რიგში, რა არის შიგნით სტანდარტული io.h, რომ ინტერესთა პროგრამაში? 497 00:27:23,170 --> 00:27:26,640 მეორე, რა ბათილად ნიშნავდეს ხაზი სამი? 498 00:27:26,640 --> 00:27:30,572 და მესამე, რას დაბრუნების ნულოვანი მთავარი, როგორც ხაზი ექვსი, ზოგადად ნიშნავდეს? 499 00:27:30,572 --> 00:27:33,280 თუ ბიჭები მინდა დაწერა იმ ქვემოთ, მას შემდეგ, რაც მე უნდა გადახვიდეთ უკან 500 00:27:33,280 --> 00:27:36,810 რომ slide უბრალოდ ასე რომ თქვენ ხედავთ კოდი. 501 00:27:36,810 --> 00:27:40,400 ეს არის მაგალითი, ისევე, იქნებ მაღალ დონეზე კითხვა, სადაც ჩვენ ვთხოვთ თქვენ 502 00:27:40,400 --> 00:27:42,435 რა რამ ნიშნავს პროგრამა. 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> ყველას კარგი ჩემთვის დაბრუნდეს slide? 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 OK, მაგარი. 507 00:27:54,361 --> 00:27:57,610 ასე რომ, მე მივცემ თქვენ ბიჭები მოსწონს, შესაძლოა, სამი წუთში შევხედოთ ამ ერთი რეალური სწრაფი. 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> OK, ასე რომ, ეს ერთ-ერთი ის მსგავსად საკმაოდ მარტივია, კონცეპტუალურად. 510 00:28:44,140 --> 00:28:49,280 ვინმეს გინდათ მითხრათ, რა არის პირველი შიგნით hash, მათ შორის 511 00:28:49,280 --> 00:28:52,630 ჩვენი სტანდარტული io.h ბიბლიოთეკა ფაილი? 512 00:28:52,630 --> 00:28:55,510 რატომ გვჭირდება, რომ ბიბლიოთეკა შედის ამ პროგრამაში? 513 00:28:55,510 --> 00:28:56,930 რა აქ გვჭირდება ეს? 514 00:28:56,930 --> 00:28:56,980 >> ჰო? 515 00:28:56,980 --> 00:28:58,340 >> აუდიტორია: ის არის, რომ როდესაც თქვენ დააყენა, რომ printf? 516 00:28:58,340 --> 00:28:59,131 >> პროფესორი: ზუსტად. 517 00:28:59,131 --> 00:29:01,780 ასე რომ, printf, ნებისმიერ დროს მიიღოს შეყვანის შესახებ 518 00:29:01,780 --> 00:29:04,140 და ბეჭდვითი რაღაც ეკრანზე, რომ 519 00:29:04,140 --> 00:29:05,600 სტანდარტული შემავალი, გამომავალი ბიბლიოთეკა. 520 00:29:05,600 --> 00:29:07,170 წარმოიდგინეთ, რომ way-- შემავალი, გამომავალი. 521 00:29:07,170 --> 00:29:08,430 >> არ მაქვს გამომავალი? 522 00:29:08,430 --> 00:29:09,207 დიახ, მე. 523 00:29:09,207 --> 00:29:12,040 ასე რომ, მე ვიცი, რომ მე ყოველთვის აპირებს უნდა სტანდარტიზაცია i.o ბიბლიოთეკა. 524 00:29:12,040 --> 00:29:16,400 >> ასე რომ, printf ფუნქცია რომლითაც ჩვენ უნდა შეამოწმონ 525 00:29:16,400 --> 00:29:19,370 და hashtag მოიცავს სტანდარტული i.o ბიბლიოთეკა. 526 00:29:19,370 --> 00:29:20,280 OK. 527 00:29:20,280 --> 00:29:22,660 >> მეორე, ეს რას ბათილად ნიშნავდეს? 528 00:29:22,660 --> 00:29:26,970 ჩვენ გვაქვს int ძირითადი (void), რას ბათილად აქ ნიშნავს აქ ხაზი სამი? 529 00:29:26,970 --> 00:29:28,080 ჰო, წელს დაბრუნდა. 530 00:29:28,080 --> 00:29:29,020 >> აუდიტორია: [INAUDIBLE] 531 00:29:29,020 --> 00:29:29,920 >> პროფესორი: ზუსტად. 532 00:29:29,920 --> 00:29:33,320 ასე მახსოვს, ჩვენ ვისწავლეთ დაწყებული ჩვენი pset 533 00:29:33,320 --> 00:29:35,360 რომ თქვენ შეგიძლიათ რეალურად დააკონკრეტა command line 534 00:29:35,360 --> 00:29:39,010 არგუმენტები, რომ თქვენი პროგრამა, რომ თქვენ მთავარი ფუნქცია, იღებს, როგორც თქვენ, შესახებ, 535 00:29:39,010 --> 00:29:39,650 ეძახით. 536 00:29:39,650 --> 00:29:42,650 თუ ჩვენ ბათილად, რაც იმას ნიშნავს, რომ თქვენ შეიძლება მხოლოდ პროგრამის გაშვება პირდაპირ 537 00:29:42,650 --> 00:29:44,680 ყოველგვარი ბრძანების არგუმენტები. 538 00:29:44,680 --> 00:29:46,160 ყველას ნათელი, რომ? 539 00:29:46,160 --> 00:29:46,660 OK. 540 00:29:46,660 --> 00:29:52,850 >> და ბოლოს რატომ ვახვევთ აკეთებს ამ დაბრუნების ნულოვანი რამ აქ? 541 00:29:52,850 --> 00:29:54,740 რატომ ჩვენ კი აქვს int ძირითადი? 542 00:29:54,740 --> 00:29:57,330 რატომ არ შეიძლება ჩვენ უბრალოდ უნდა ბათილად მთავარი ბათილად? 543 00:29:57,330 --> 00:29:59,216 ჰო? 544 00:29:59,216 --> 00:30:01,590 აუდიტორია: უბრალოდ, ასე, რომ ჩვენ შეგვიძლია რა თქმა უნდა, რომ პროგრამა არის 545 00:30:01,590 --> 00:30:04,247 არსებული წარმატებით, რადგან განსხვავებით, თუ იგი დათვლილია. 546 00:30:04,247 --> 00:30:06,580 და ჩვენ ვიცით, რომ ეს სხვადასხვა სახის შეცდომა. 547 00:30:06,580 --> 00:30:07,621 >> პროფესორი: ჰო, ზუსტად. 548 00:30:07,621 --> 00:30:10,670 ეს არის უბრალოდ ძალიან ჩვეულებრივი რამ, რასაც ჩვენ ვაკეთებთ, 549 00:30:10,670 --> 00:30:13,840 არის, რომ მხოლოდ ბოლოს თქვენს პროგრამაში, უბრალოდ დარწმუნდით 550 00:30:13,840 --> 00:30:15,830 რომ თქვენი ძირითადი ფუნქცია გაშვებული სწორად, 551 00:30:15,830 --> 00:30:17,940 ჩვენ ყოველთვის გვინდა ამის სანაცვლოდ ნულოვანი. 552 00:30:17,940 --> 00:30:21,160 მიუხედავად იმისა, რომ ჩვენ შეიძლება აუცილებელი ვერ ვხედავ, რომ დაბეჭდილი ნებისმიერ წერტილში. 553 00:30:21,160 --> 00:30:25,092 >> იმის გამო, რომ, როგორც პროგრამისტები, თქვენ იცით, თუ თქვენ ბევრი სხვადასხვა ხაზების კოდი 554 00:30:25,092 --> 00:30:27,050 და თქვენ არ ვიცი სად ამ ვაპირებთ არასწორი, 555 00:30:27,050 --> 00:30:30,240 და თუ შეცდომა ხდება გსურთ დარწმუნდით, რომ თქვენ, რომ შეცდომა. 556 00:30:30,240 --> 00:30:33,240 ასე რომ, როგორც წესი, თუ რამე მიდის არასწორი გვექნება დაბრუნების ერთი მხოლოდ 557 00:30:33,240 --> 00:30:34,669 დარწმუნდით, რომ ჩვენ ვიცით, რომ ეს არის. 558 00:30:34,669 --> 00:30:36,460 ასე რომ, თუ ვხედავ დაბრუნების ნულოვანი, რომ, როგორც წესი, 559 00:30:36,460 --> 00:30:38,293 ნიშნავს, რომ თქვენი პროგრამა შესრულებული წარმატებით. 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 კარგი? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 ზემოთ. 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> OK, მეორე პროგრამა აქ. 566 00:30:52,680 --> 00:30:54,827 მიგვაჩნია, რომ. 567 00:30:54,827 --> 00:30:56,910 და თუ ბიჭები ვხედავ float, თქვენ ბიჭები ალბათ შეუძლია 568 00:30:56,910 --> 00:31:00,810 აქვს კარგი იდეა რა მე უნდა გკითხოთ. 569 00:31:00,810 --> 00:31:05,200 >> ასე რომ, როდესაც ეს პროგრამა ახორციელებს, როგორც ხედავთ, 570 00:31:05,200 --> 00:31:09,330 მე ვაცხადებ float შიგნით ჩემი მთავარი ფუნქცია. 571 00:31:09,330 --> 00:31:13,470 მე დასახელებისგან იგი "უპასუხებს", და მე შექმნის რომ თანაბარი ერთი იყოფა 10. 572 00:31:13,470 --> 00:31:17,860 მე დაბეჭდვისას, ერთი ათობითი ადგილი, რომ float. 573 00:31:17,860 --> 00:31:19,880 და მაშინ მე დაბრუნების ნულოვანი. 574 00:31:19,880 --> 00:31:24,470 >> ასე რომ, როდესაც შესრულებაში პროგრამა, ვფიქრობ, უკან ხარბ ახლა, 575 00:31:24,470 --> 00:31:26,550 ეს პროგრამა ბეჭდავს 0.0. 576 00:31:26,550 --> 00:31:29,993 როგორც ყველამ ვიცით, იმედია, ჩვენ ყველა ვიცი, ერთი იყოფა 10 არ არის, 0.00, 577 00:31:29,993 --> 00:31:32,350 ეს 0.1. 578 00:31:32,350 --> 00:31:37,810 მაგრამ რატომ ამ პროგრამის ფიქრობს, რომ 1 იყოფა 10 ნამუშევარი 0.1 სხვა 579 00:31:37,810 --> 00:31:39,504 0.1? 580 00:31:39,504 --> 00:31:42,545 მე მივცემ თქვენ ბიჭები შესაძლოა, 30 წამი უბრალოდ სწრაფად ვიფიქროთ, რომ 581 00:31:42,545 --> 00:31:43,878 და მე დაბრუნდეს პროგრამა. 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> OK. 584 00:32:20,290 --> 00:32:22,205 არავის სურს, რათა ეს კადრი? 585 00:32:22,205 --> 00:32:24,330 სამ სასჯელს ან ნაკლები, იმიტომ, რომ, როგორც წესი, ჩვენ 586 00:32:24,330 --> 00:32:27,650 აპირებს შეზღუდოს ყველა პასუხი სამ სასჯელს ან ნაკლები 587 00:32:27,650 --> 00:32:31,130 ასე რომ თქვენ არ უბრალოდ regurgitate შემთხვევითი რამ თქვენს ვიქტორინა. 588 00:32:31,130 --> 00:32:32,740 >> ჰო, მიიღოს გასროლა. 589 00:32:32,740 --> 00:32:36,390 >> აუდიტორია: ასე რომ მე ვფიქრობ, რომ ეს რამ მოუწოდა, ისევე, [INAUDIBLE] 590 00:32:36,390 --> 00:32:42,320 ასე რომ, არ შეიძლება იყოს, მაგალითად, არ შეიძლება იყოს, როგორიცაა, 0.09, 591 00:32:42,320 --> 00:32:47,250 რომ სადაც ბეჭდვა პირველი ციფრი, ეს იქნება 0.0? 592 00:32:47,250 --> 00:32:49,100 >> პროფესორი: Close, არ საკმაოდ. 593 00:32:49,100 --> 00:32:49,810 Christabell? 594 00:32:49,810 --> 00:32:51,770 >> აუდიტორია: თქვენ გამყოფი ერთი და 10, და ისინი ორივე რიცხვებით. 595 00:32:51,770 --> 00:32:54,610 ასე რომ, ისე, რომ ის აპირებს შესანახად იგი არის როგორც მთელი რიცხვი. 596 00:32:54,610 --> 00:32:56,480 ასე რომ, უახლოესი რიცხვი იქნება 0.0. 597 00:32:56,480 --> 00:32:57,471 და ისე, რომ 0.1. 598 00:32:57,471 --> 00:32:58,970 პროფესორი: ჰო, ძალიან კარგი. 599 00:32:58,970 --> 00:33:00,040 ეს არის სწორი პასუხი. 600 00:33:00,040 --> 00:33:03,597 ასე რომ, ეს არის ძალიან დამაბნეველი კონცეფცია ბევრი ბავშვები. 601 00:33:03,597 --> 00:33:06,680 და მე მინდა, რომ დავრწმუნდეთ, რომ ეს განამტკიცა ყველას თავი. 602 00:33:06,680 --> 00:33:10,090 >> ასე რომ, რაც ჩვენ მოვუწოდებთ მცურავი პუნქტიანი ორაზროვნება, 603 00:33:10,090 --> 00:33:12,800 სადაც ამიტომ ბევრი თქვენი პროგრამების ხარბ 604 00:33:12,800 --> 00:33:17,010 არ მუშაობს თავდაპირველად იყო, რადგან თქვენ დაავიწყდა მიცემული ცვლადი. 605 00:33:17,010 --> 00:33:19,370 ასე რომ, რა Christabell განაცხადა მთლიანად სწორი. 606 00:33:19,370 --> 00:33:21,990 >> Float არის არსებითად არაზუსტი. 607 00:33:21,990 --> 00:33:26,400 იმის გამო, რომ კომპიუტერული, უფლება, ჩვენ სასრული რაოდენობით ბიტი მეხსიერების 608 00:33:26,400 --> 00:33:28,480 ჩვენ შეგვიძლია გამოვიყენოთ წარმოადგენს ნომრები. 609 00:33:28,480 --> 00:33:33,480 ასე, მაგალითად, ამ CS50 ID is-- მე ვფიქრობ, რომ ეს არის 64-bit კომპიუტერი. 610 00:33:33,480 --> 00:33:37,520 >> Float შეიძლება მხოლოდ იყოს წარმოდგენილი მიერ სასრული რაოდენობით იმ ბიტი. 611 00:33:37,520 --> 00:33:42,260 ასე რომ, 0.1 უსასრულო zeros, რომ ის იყო 0.1, არა? 612 00:33:42,260 --> 00:33:45,450 მაგრამ ჩვენ არ შეგვიძლია რეალურად შესანახად რომ ნომერი, ჩვენი კომპიუტერი. 613 00:33:45,450 --> 00:33:47,810 ჩვენ უბრალოდ არ აქვს საკმარისი მეხსიერება ამის გაკეთება. 614 00:33:47,810 --> 00:33:52,340 >> ასე რომ, უახლოეს დაახლოებას რა ინახება მეხსიერებაში რეალურად 615 00:33:52,340 --> 00:33:55,390 რაღაც 0.000 რაღაც, რაღაც, რაღაც, რაღაც. 616 00:33:55,390 --> 00:34:01,240 რომელიც, ერთხელ თქვენ შეკვეცავს ის, რაუნდები ქვემოთ 0.0. 617 00:34:01,240 --> 00:34:05,640 >> ასე რომ, ეს, მაგალითად, არის მხოლოდ ერთი იმაზე, თუ უამრავი საკითხები 618 00:34:05,640 --> 00:34:08,469 ჩვენ როდესაც ჩვენ ცდილობს არასწორად გააკეთოს მათემატიკის 619 00:34:08,469 --> 00:34:11,000 ოღონდ ისე, როგორც სხვადასხვა რიცხვი. 620 00:34:11,000 --> 00:34:14,870 ასე რომ იყოს ფრთხილი ხდება. 621 00:34:14,870 --> 00:34:18,239 >> On ტესტებში, თუ ჩვენ მოგცემთ ბლოკი კოდი და ეს იგივეა, 622 00:34:18,239 --> 00:34:19,510 რა ბეჭდავს out ბოლოს? 623 00:34:19,510 --> 00:34:24,096 და თუ ეს შემთხვევითი მნიშვნელობა თქვენ ბიჭები უნდა იცოდეს, თუ რატომ, რომ ხდება. 624 00:34:24,096 --> 00:34:24,909 ჰო? 625 00:34:24,909 --> 00:34:27,926 >> აუდიტორია: Truncate არის მოშორება ყველაფერი მას შემდეგ, გარკვეული თვალსაზრისით? 626 00:34:27,926 --> 00:34:28,513 [INAUDIBLE] 627 00:34:28,513 --> 00:34:30,929 პროფესორი: ჰო, ასე რომ, რეალურად ეს არის ძალიან ცუდი მაგალითი, 628 00:34:30,929 --> 00:34:37,870 იმიტომ 0,100 რასაც რეალურად რომ შეკვეცავს ქვემოთ 0.1. 629 00:34:37,870 --> 00:34:41,389 მაგრამ თუ თქვენ აწარმოებს it-- მე არ მახსოვს, იმიტომ, რომ გასულ წელს 630 00:34:41,389 --> 00:34:42,830 გაიქცა ის სხვადასხვა პროგრამა. 631 00:34:42,830 --> 00:34:45,300 ისინი გაიქცა ის რაღაც მოუწოდა CS50 ელექტრო მოწყობილობების, რომელიც 632 00:34:45,300 --> 00:34:46,389 განსხვავდება ID. 633 00:34:46,389 --> 00:34:48,520 ეს იყო 32-bit, ჩემი აზრით. 634 00:34:48,520 --> 00:34:50,290 და ასე იყო სხვადასხვა ნომრები. 635 00:34:50,290 --> 00:34:53,330 >> მაგრამ არსებითად, უბრალოდ ვიცი, რომ მთელი კონცეფცია truncation 636 00:34:53,330 --> 00:34:54,815 და როგორ უბრალოდ წყვეტს რამ off. 637 00:34:54,815 --> 00:34:55,690 ასე რომ, თუ ის rounds-- 638 00:34:55,690 --> 00:34:56,300 >> აუდიტორია: დამრგვალების გარეშე. 639 00:34:56,300 --> 00:34:57,370 >> პროფესორი: ზუსტად. 640 00:34:57,370 --> 00:34:57,870 ჰო. 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 ზემოთ. 643 00:35:04,380 --> 00:35:05,250 >> Hi, უკან. 644 00:35:05,250 --> 00:35:07,634 ჩვენ უბრალოდ აპირებს მეტი რამდენიმე ინტელექტუალური მიმოხილვა შეკითხვებს. 645 00:35:07,634 --> 00:35:08,430 >> ყველა უფლება. 646 00:35:08,430 --> 00:35:10,150 ამიტომ მიგვაჩნია, რომ სხვადასხვა პროგრამა აქ. 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 მე ვაპირებ გაძლევთ ბიჭები რამდენიმე წუთის წაკითხვის მეტი ამ. 649 00:35:15,380 --> 00:35:18,588 ეს არის ის, რომ იყო ძალიან ცოტა ხნის წინ, მე ვფიქრობ, რომ ააფეთქეს ბევრი თქვენგანი 650 00:35:18,588 --> 00:35:19,142 ბიჭები გონებაში. 651 00:35:19,142 --> 00:35:21,100 მაგრამ ჩვენ ვაპირებთ, რომ გაიგო ამ გზით კვლავ მხოლოდ 652 00:35:21,100 --> 00:35:24,152 დარწმუნდით, რომ თქვენ მესმის, რომ ეს მთლიანად. 653 00:35:24,152 --> 00:35:24,652 OK. 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 OK. 656 00:35:41,780 --> 00:35:44,342 ყველას უფრო მეტი დრო უნდა წაკითხვის მეშვეობით ეს კოდი? 657 00:35:44,342 --> 00:35:45,650 OK. 658 00:35:45,650 --> 00:35:50,630 >> ასე რომ, ეს მეჩვენება, რომ ამ პროგრამის მე 659 00:35:50,630 --> 00:35:53,460 შექმნა ორი strings გამოყენებით GetString. 660 00:35:53,460 --> 00:35:55,180 ერთი მოუწოდა და ერთი მოუწოდა ტ. 661 00:35:55,180 --> 00:35:58,680 და თუ ისინი თანასწორი უდრის ერთმანეთს, 662 00:35:58,680 --> 00:36:00,880 ეს უნდა ბეჭდვა "თქვენ ჩაწერეთ იგივე ". 663 00:36:00,880 --> 00:36:04,170 >> მაგრამ elsewise, ეს იქნებოდა ბეჭდვა "თქვენ აკრეფილი სხვადასხვა რამ, "უფლება? 664 00:36:04,170 --> 00:36:05,990 როგორც ჩანს, ძალიან, ძალიან მარტივია. 665 00:36:05,990 --> 00:36:08,720 მაგრამ, მიუხედავად ამისა, თუ რეალურად ცდილობენ წერენ ამ პროგრამის, 666 00:36:08,720 --> 00:36:12,230 როგორც ჩანს, მაშინაც კი, როცა შეყვანის ზუსტად იგივე სიმები, 667 00:36:12,230 --> 00:36:15,490 ის კვლავ ბეჭდავს out, "თქვენ აკრეფილი სხვადასხვა რამ! " 668 00:36:15,490 --> 00:36:18,020 ვინმეს სურს მიიღოს ესროლეს, რის გამოც ეს პროგრამა ყოველთვის 669 00:36:18,020 --> 00:36:20,370 პასუხობს, რომ საშუალებებით სხვადასხვა, თუნდაც 670 00:36:20,370 --> 00:36:22,090 როდესაც სიტყვა თავად არის იგივე? 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> ასე რომ, თუ მე უნდა შეყვანის დავით სიყვარული გამოვიყენოთ მაგალითად, ისევე როგორც დედა, არა? 673 00:36:29,170 --> 00:36:37,890 მხედრულ M-O-M for S, T უდრის ამას M-O-M. 674 00:36:37,890 --> 00:36:40,340 თუ მე გაიქცა ამ გზით რომ კოდი, რატომ ეს 675 00:36:40,340 --> 00:36:44,180 ამობეჭდოთ "თქვენ აკრეფილი სხვადასხვა რამ?" 676 00:36:44,180 --> 00:36:46,336 >> ვინმეს უნდა მეტი დრო, რომ ვიფიქროთ ეს? 677 00:36:46,336 --> 00:36:47,294 OK, მე ვფიქრობ, რომ ჩვენ კარგი. 678 00:36:47,294 --> 00:36:48,716 ჰო? 679 00:36:48,716 --> 00:36:53,930 >> აუდიტორია: OK, ასე რომ, რაღაც შესახებ სადაც ის ინახება მეხსიერებაში, არა? 680 00:36:53,930 --> 00:36:54,890 >> პროფესორი: Yep. 681 00:36:54,890 --> 00:37:00,400 >> აუდიტორია: სად ეს იგივეა, თუ ეს სიმებიანი ინახება მეხსიერების spot-- 682 00:37:00,400 --> 00:37:01,689 მე გამოგონება ამას არის ნულოვანი. 683 00:37:01,689 --> 00:37:02,355 პროფესორი: რა თქმა უნდა. 684 00:37:02,355 --> 00:37:05,290 აუდიტორია: სიმებიანი ტ ინახება მეხსიერების ადგილზე, 685 00:37:05,290 --> 00:37:11,000 მოსწონს, 167, და მაშინ ნულოვანი არ უდრის 167. 686 00:37:11,000 --> 00:37:12,610 >> პროფესორი: ზუსტად. 687 00:37:12,610 --> 00:37:18,350 OK, ასე მახსოვს, ეს წარმოუდგენელი გამოცხადება ავუხსენით, რომ თქვენ ბიჭები 688 00:37:18,350 --> 00:37:21,530 გასულ კვირას, რომ strings ნამდვილად არ არსებობს? 689 00:37:21,530 --> 00:37:25,380 როდესაც ჩვენ შევქმნათ რაღაც მოუწოდა სიმებიანი ჩვენ, რეალურად, 690 00:37:25,380 --> 00:37:29,330 შექმნა რაღაც მოუწოდა char ვარსკვლავი. 691 00:37:29,330 --> 00:37:34,470 რომელი ყოვლისა, ეს არის მომცეთ სიმებიანი ან მასივი სიმბოლო. 692 00:37:34,470 --> 00:37:39,480 >> ასე რომ, ამ მაგალითად, თუ მე იყო შეტანის M-O-M გზა 693 00:37:39,480 --> 00:37:49,350 რომ ჩემი კომპიუტერი შესანახად ეს არის ფარგლებში მეხსიერება წარმატებული ნულოვანი, არა? 694 00:37:49,350 --> 00:37:53,180 იმ ოთხი სიმბოლო, სიმბოლო, იქნება შენახული სადღაც. 695 00:37:53,180 --> 00:37:59,290 >> და მაშინ, ამ ოთხი გმირები, წარმატებული ნულოვანი, 696 00:37:59,290 --> 00:38:01,275 ინახება სადმე სხვაგან, არა? 697 00:38:01,275 --> 00:38:04,685 მე არ ვიცი, სადაც მისამართები , ისინი სადღაც ჩემს კომპიუტერში. 698 00:38:04,685 --> 00:38:07,080 მაგრამ მე ზუსტად არ ვიცი სად არიან. 699 00:38:07,080 --> 00:38:10,170 >> როცა შექმნა string s, ყველა რომ ნამდვილად არის 700 00:38:10,170 --> 00:38:15,550 არის მომცეთ დაიწყოს ეს კონტექსტი. 701 00:38:15,550 --> 00:38:21,130 და როდესაც მე შექმნა ამ t ღირებულება, ყველა რომ მომცეთ აქ. 702 00:38:21,130 --> 00:38:23,980 ასე რომ, როდესაც თქვენ ცდილობთ გაუტოლოს და შემოწმება 703 00:38:23,980 --> 00:38:27,710 იმისათვის, რომ ნახოთ, თუ არის ტოლობის უდრის t, კომპიუტერი 704 00:38:27,710 --> 00:38:31,635 მართლაც უბრუნდება თქვენ მისამართის ამ მ 705 00:38:31,635 --> 00:38:33,390 და მისამართი, რომელიც მ. 706 00:38:33,390 --> 00:38:36,230 და იმიტომ, რომ ისინი ორი ცალკე ცალი მონაცემები 707 00:38:36,230 --> 00:38:38,750 რომელიც ინახება ორი სხვადასხვა მისამართები თქვენს კომპიუტერში, 708 00:38:38,750 --> 00:38:41,750 თქვენს კომპიუტერში არასდროს აპირებს აღიარებს მათ, როგორც იგივე. 709 00:38:41,750 --> 00:38:43,500 ვინმეს სურს იძლევა ესროლეს, რაც ჩვენ 710 00:38:43,500 --> 00:38:46,900 უნდა გავაკეთოთ, თუ გვინდოდა გამოსწორების ამ და აქვს სწორი გაშვებული პროგრამა 711 00:38:46,900 --> 00:38:49,360 ნაცვლად? 712 00:38:49,360 --> 00:38:52,070 ვიფიქროთ, რომ რამდენიმე წამში. 713 00:38:52,070 --> 00:38:54,929 რა უნდა გავაკეთოთ, უნდა შეიცვალოს ამ პროგრამის ფუნქციონირებას 714 00:38:54,929 --> 00:38:56,220 სხვათა შორის, ჩვენ გვინდა, რომ ეს ფუნქცია? 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> ჰო, მინდა მიიღოს stab მას? 717 00:39:18,918 --> 00:39:24,082 >> აუდიტორია: ვცდილობთ dereference მაჩვენებელი და ნახოთ მეშვეობით მასივი? 718 00:39:24,082 --> 00:39:25,540 პროფესორი: ეს არის ერთ-ერთი გზა ამის გაკეთება. 719 00:39:25,540 --> 00:39:27,880 ასე რომ, რა არის შენი სახელი ისევ? 720 00:39:27,880 --> 00:39:29,010 მე ვწუხვარ, მაგონებს. 721 00:39:29,010 --> 00:39:29,589 >> Zee: Zee. 722 00:39:29,589 --> 00:39:32,130 პროფესორი: ჰო, რა Zee ვარაუდით აბსოლუტურად მუშაობა. 723 00:39:32,130 --> 00:39:32,629 მარჯვენა? 724 00:39:32,629 --> 00:39:35,730 ჩვენ შეგვეძლო dereference მაჩვენებელი და რეალურად წასვლა და ხელმისაწვდომობის 725 00:39:35,730 --> 00:39:38,460 ფიზიკური მონაცემები შიგნით აქ. 726 00:39:38,460 --> 00:39:40,300 და ჩვენ შეგვიძლია მხოლოდ შედარება მთელ ეკრანზე. 727 00:39:40,300 --> 00:39:43,670 >> ჩვენ შეგვიძლია ვთქვათ, OK, მაჩვენებელი, მომეცი რა არის შიგნით აქ. 728 00:39:43,670 --> 00:39:44,960 ეს იქნებოდა დაბრუნდება მ. 729 00:39:44,960 --> 00:39:47,168 და მე ვიტყოდი, მაჩვენებელი, მომეცი რა არის შიგნით აქ. 730 00:39:47,168 --> 00:39:47,750 დაბრუნების მ. 731 00:39:47,750 --> 00:39:48,410 ნუ იმ მატჩში? 732 00:39:48,410 --> 00:39:49,410 დიახ. 733 00:39:49,410 --> 00:39:50,340 მაშინ ჩვენ გადაადგილება. 734 00:39:50,340 --> 00:39:54,240 >> ჩვენ მუდმივად შემოწმების მთელი ორი strings ყველა გზა ბოლომდე 735 00:39:54,240 --> 00:39:56,635 და თუ იმ თანაბარია, თუ ყველა ღირებულებები თანაბარი. 736 00:39:56,635 --> 00:39:59,680 და თუ ყველა ღირებულებები თანაბარი, მაშინ ჩვენ ვიცით, სიმები არიან ნამდვილი. 737 00:39:59,680 --> 00:40:01,600 რა თქმა უნდა, ეს არის ის, როგორ უნდა გავაკეთოთ ეს? 738 00:40:01,600 --> 00:40:03,930 >> ვინმეს დაბნეული ნებისმიერ ეს? 739 00:40:03,930 --> 00:40:06,970 მთელი კონცეფცია, თუ როგორ სიმები მართლაც მხოლოდ მითითებას, 740 00:40:06,970 --> 00:40:08,440 და როგორ ისინი ნამდვილად არ არსებობს? 741 00:40:08,440 --> 00:40:10,480 და რატომ არ მივიღებთ შეცდომები ისე როგორც ჩვენ ეს? 742 00:40:10,480 --> 00:40:15,070 იმის გამო, რომ მე გაძლევთ გარანტიას, ბიჭები, მითითებას და სიმებიანი გამოყოფა და მეხსიერება 743 00:40:15,070 --> 00:40:16,470 ვაპირებთ, რომ ამუშავება. 744 00:40:16,470 --> 00:40:17,410 >> ჰო? 745 00:40:17,410 --> 00:40:21,072 >> აუდიტორია: [INAUDIBLE] dereference ეს, უბრალოდ დააყენა ვარსკვლავი [INAUDIBLE] 746 00:40:21,072 --> 00:40:21,780 პროფესორი: მართალია. 747 00:40:21,780 --> 00:40:28,430 ასე რომ, derererence მომცეთ საშუალება წასვლა რომ მისამართი მაჩვენებელი 748 00:40:28,430 --> 00:40:30,390 და მიიღოს მონაცემები, ღირებულება არსებობს. 749 00:40:30,390 --> 00:40:32,700 და გზა უნდა გავაკეთოთ, რომ ვარსკვლავი მაჩვენებელი. 750 00:40:32,700 --> 00:40:34,262 არ აღრეული, რომ. 751 00:40:34,262 --> 00:40:35,186 >> აუდიტორია: [INAUDIBLE]. 752 00:40:35,186 --> 00:40:35,852 >> პროფესორი: ჰო. 753 00:40:35,852 --> 00:40:39,750 აუდიტორია: ასე რომ შეგიძლიათ უბრალოდ დაწერეთ თუ ვარსკვლავი s თანაბარი შეადგენს ვარსკვლავი ტ. 754 00:40:39,750 --> 00:40:40,630 >> პროფესორი: ისე, არა. 755 00:40:40,630 --> 00:40:40,960 No. 756 00:40:40,960 --> 00:40:41,640 >> აუდიტორია: ეს არ არის საკმარისი, არა? 757 00:40:41,640 --> 00:40:43,760 >> პროფესორი: ეს არ არის, იმიტომ, რომ თქვენ მხოლოდ შემოწმების პირველი წერილი. 758 00:40:43,760 --> 00:40:46,010 თქვენ ალბათ აპირებს გვჭირდება გარკვეული ციკლი, 759 00:40:46,010 --> 00:40:49,055 iterates მეშვეობით თითოეული ხასიათი, როგორც სიმები. 760 00:40:49,055 --> 00:40:49,837 ჰო. 761 00:40:49,837 --> 00:40:52,920 ასე რომ, თუ თქვენ სურდა მხოლოდ შეამოწმეთ იმ შემთხვევაში, თუ მათ დაიწყეს იგივე, 762 00:40:52,920 --> 00:40:58,220 შეგიძლიათ გააკეთოთ, თუ, ვარსკვლავი s უდრის ვარსკვლავი ტ. 763 00:40:58,220 --> 00:41:01,300 მაშინ თქვენ იცით, რომ მაინც დაიწყო იმავე ხასიათი. 764 00:41:01,300 --> 00:41:01,952 >> ჰო? 765 00:41:01,952 --> 00:41:04,056 >> აუდიტორია: ასე რომ გზა თქვენ, რომ იქნება 766 00:41:04,056 --> 00:41:06,064 როგორც ჩანერგილი მარყუჟის ან მაჩვენებელი? 767 00:41:06,064 --> 00:41:06,730 პროფესორი: ჰო. 768 00:41:06,730 --> 00:41:08,170 საკმაოდ ბევრი უბრალოდ ამისთვის loop. 769 00:41:08,170 --> 00:41:12,430 გახსოვდეთ, დავით კლასში აღნიშნული უფასო სინტაქსური შაქარი? 770 00:41:12,430 --> 00:41:17,690 და მან ეს ძალიან გაუგებარია, რამ ვარსკვლავი t 771 00:41:17,690 --> 00:41:22,030 პლუს ერთი, სადაც იგი ინტეგრაცია მეშვეობით და იგი გადავიდეს მაჩვენებელი? 772 00:41:22,030 --> 00:41:29,910 ადვილია გზა აკეთებს ეს არის მხოლოდ ტ i. 773 00:41:29,910 --> 00:41:31,090 >> ასე რომ, ეს მხოლოდ მასივი. 774 00:41:31,090 --> 00:41:34,630 გზა, რომ თქვენ უნდა loop რომ გაიქცა ნულიდან i, სადაც 775 00:41:34,630 --> 00:41:36,580 მე სიგრძე სიმებიანი, თქვენ შეიძლება მხოლოდ 776 00:41:36,580 --> 00:41:39,510 წერენ, რომ ნაცვლად აკეთებს მთელი მაჩვენებელი, მინიშნება რამ. 777 00:41:39,510 --> 00:41:43,510 ასე რომ, ეს ყველაფერი ზუსტად ექვივალენტი თქვენს კომპიუტერში. 778 00:41:43,510 --> 00:41:45,905 >> თქვენ ბიჭები ალბათ არ უნდა ვიცოდეთ, რომ, 779 00:41:45,905 --> 00:41:48,280 მაგრამ კარგია, რომ უბრალოდ სახის აქვს უკან თქვენი გონება. 780 00:41:48,280 --> 00:41:52,630 უბრალოდ ვიცი, რომ კომპიუტერი ცნობს სხვადასხვა ბლოკები კოდი 781 00:41:52,630 --> 00:41:53,890 იგივე რამ. 782 00:41:53,890 --> 00:41:57,510 იმიტომ, რომ ეს არის მხოლოდ ბევრად უფრო შესახებ მეგობრული ჩვენთვის წარმოადგინოს, როგორც ეს 783 00:41:57,510 --> 00:41:58,150 მასივი. 784 00:41:58,150 --> 00:42:00,990 ეს უბრალოდ ადვილია. 785 00:42:00,990 --> 00:42:02,719 >> აუდიტორია: ასე რომ გამოვიყენოთ strlen მინდა, მივიღო 786 00:42:02,719 --> 00:42:03,385 პროფესორი: ჰო. 787 00:42:03,385 --> 00:42:03,926 აუდიტორია: OK. 788 00:42:03,926 --> 00:42:05,940 პროფესორი: თქვენ შეიძლება გამოყენება strlen ან, თუ 789 00:42:05,940 --> 00:42:10,420 არ აქვს strlen შეგიძლიათ უბრალოდ up სანამ არ მოხვდა წარმატებული ნულოვანი ორივე. 790 00:42:10,420 --> 00:42:11,568 ან იმუშავებს. 791 00:42:11,568 --> 00:42:12,068 ჰო. 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 აუდიტორია: ასე რომ, ეს dereference ყველა ერთჯერადი ხასიათი თუ ჩვენ რეალურად 794 00:42:17,996 --> 00:42:21,044 წერის ეს კოდი, ჩვენ შეიძლება უბრალოდ t ფრჩხილებში i 795 00:42:21,044 --> 00:42:22,460 გსურთ ვარსკვლავი წინაშე იგი? 796 00:42:22,460 --> 00:42:27,700 >> პროფესორი: ჰო, შეადგენს შეადგენს s bracket i, და შემდეგ შენარჩუნება მოძრავი i 797 00:42:27,700 --> 00:42:29,790 ქვემოთ მანამ, სანამ არ მოხვდა ბოლოს. 798 00:42:29,790 --> 00:42:31,286 ჰო, რას გააკეთებდა. 799 00:42:31,286 --> 00:42:33,660 და მე რეალურად აქვს შემდეგი მაგალითად, როდესაც ჩვენ რეალურად 800 00:42:33,660 --> 00:42:36,740 წერენ strlen ასე რომ თქვენ ბიჭები იქნება სახის მისაღებად უნდა ითამაშოს გარშემო ცოტა. 801 00:42:36,740 --> 00:42:43,567 >> ასე რომ ყველას ნათელი მხოლოდ მეხსიერება, სიმები, მითითებას, ხარისხის მისამართები? 802 00:42:43,567 --> 00:42:46,650 რამდენიმე უმაღლესი დონის ცნებები, რომ თქვენ აუცილებლად უნდა იცოდეს ვიქტორინა 803 00:42:46,650 --> 00:42:48,928 ხვალ. 804 00:42:48,928 --> 00:42:49,904 >> ყველა უფლება. 805 00:42:49,904 --> 00:42:50,404 კარგი. 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 Yep. 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 OK, ასე რომ ერთი რამ, რომ ჩვენ ასევე ითხოვენ თქვენ, როგორც ჩვენ ვაკეთებთ ყოველ წელს ვიქტორინა არის, 810 00:43:04,180 --> 00:43:08,340 ვარაუდობენ, რომ თქვენ მივიწყებული (რომელიც ჩვენ, როგორც ჩანს უნდა დაგვავიწყდეს, ყოველწლიურად) 811 00:43:08,340 --> 00:43:10,810 რომელშიც header ფაილი strlen განისაზღვრება. 812 00:43:10,810 --> 00:43:13,860 ასე რომ, ჩვენ უნდა გადაწეროთ იგი საკუთარ თავს. 813 00:43:13,860 --> 00:43:16,350 >> აქ არის ჩამონათვალი გაიდლაინები რომ ჩვენ შეგვიძლია წარმოგიდგენთ 814 00:43:16,350 --> 00:43:20,660 ბიჭები, სადაც თქვენ უნდა ვივარაუდოთ, რომ ეს სიმებიანი არ იქნება null. 815 00:43:20,660 --> 00:43:23,830 შეიძლება ვივარაუდოთ, რომ ის იქნება წყდება წარმატებული ნულოვანი. 816 00:43:23,830 --> 00:43:26,670 ასე, რომ თქვენ იცით, რომ ის, რაც ის აპირებს დასრულდება. 817 00:43:26,670 --> 00:43:29,500 >> და, მაგალითად, რომ ხანგრძლივობა მიესალმები იქნება ხუთ. 818 00:43:29,500 --> 00:43:32,890 ასე რომ, შეიძლება ვივარაუდოთ, რომ მიესალმები იქნება ხუთი, H-E-L-L-ო. 819 00:43:32,890 --> 00:43:35,890 თქვენ არ უნდა ვივარაუდოთ, რომ უკანა ნულოვანი ანგარიშები სიგრძეზე. 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> ეს ბოლო რამ აქ, არ ფიქრი რიცხვი overflow. 822 00:43:42,300 --> 00:43:45,270 ვინმეს გახსოვთ რა რიცხვი overflow არის? 823 00:43:45,270 --> 00:43:48,041 >> აუდიტორია: სცილდება ხანგრძლივობა [INAUDIBLE]. 824 00:43:48,041 --> 00:43:50,740 >> პროფესორი: ჰო, ახსნით ცოტა, რას ნიშნავს ეს? 825 00:43:50,740 --> 00:43:55,330 >> აუდიტორია: ასე რომ, ვფიქრობ, ეს მიდის უკან რომ truncating მაგალითად ადრე. 826 00:43:55,330 --> 00:43:58,380 მაგრამ თუ თქვენ გაქვთ მხოლოდ ამდენი ნომრები რომ სცილდება რაოდენობის ბიტი 827 00:43:58,380 --> 00:44:01,409 რომ თქვენ შეგიძლიათ რეალურად მივანიჭოთ მას რომ ეს უბრალოდ სახის შეწყვიტა. 828 00:44:01,409 --> 00:44:04,242 პროფესორი: ჰო, ტიპიური კომპიუტერული, რამდენი ბიტი გვაქვს? 829 00:44:04,242 --> 00:44:05,306 აუდიტორია: 32? 830 00:44:05,306 --> 00:44:06,430 პროფესორი: ჰო, 32, მარჯვნივ. 831 00:44:06,430 --> 00:44:10,030 და ისე, რომ ის, რაც, ოთხი მილიარდი, ორი მილიარდი? 832 00:44:10,030 --> 00:44:13,579 ოთხი მილიარდი, მდე ოთხი მილიარდი დადებითი რიცხვებით, არა? 833 00:44:13,579 --> 00:44:15,370 ორი მილიარდი უარყოფითი, ორი მილიარდი დადებითი, 834 00:44:15,370 --> 00:44:16,900 დამოკიდებული, თუ როგორ სურს ამის გაკეთება. 835 00:44:16,900 --> 00:44:21,470 >> ასე რომ, ძირითადად, ჩვენ შეგვიძლია აქვს საკმარისი რიცხვებით, რომელიც შეიძლება ახვიდეთ 836 00:44:21,470 --> 00:44:25,800 ორი 31-ე მინუს 1, უფლება? 837 00:44:25,800 --> 00:44:27,980 იმის გამო, რომ ერთხელ ჩვენ მოხვდა ორი რომ 32-ე, ჩვენ არ 838 00:44:27,980 --> 00:44:30,040 აქვს, რომ ბევრი მეხსიერების ჩვენი კომპიუტერი. 839 00:44:30,040 --> 00:44:32,310 >> ასე რომ, თეორიულად, მე შეიძლება ამუშავება ნომერი 840 00:44:32,310 --> 00:44:34,560 რომ არის, ისევე, ორი 46-ე. 841 00:44:34,560 --> 00:44:38,040 ეს არის დიდი-ass ნომერი, მაგრამ თეორიულად შეიძლება. 842 00:44:38,040 --> 00:44:42,730 ასე რომ, მთელი overflow არის, თუ თქვენ ცდილობენ შექმნა მთელი რიცხვი, რომელიც სცილდება რა 843 00:44:42,730 --> 00:44:44,790 თქვენს კომპიუტერში შეუძლია შენახვა. 844 00:44:44,790 --> 00:44:46,590 >> და ასე რომ თქვენ ბიჭები ამ მაგალითში არ აქვს 845 00:44:46,590 --> 00:44:51,330 ფიქრი ჩვენს გაძლევთ გიგანტური სიმებიანი რომ არის ორი, 32 სიმბოლო 846 00:44:51,330 --> 00:44:51,830 ხანგრძლივი. 847 00:44:51,830 --> 00:44:54,010 ეს იქნება ნამდვილად ნიშნავს. 848 00:44:54,010 --> 00:44:59,430 >> ყველა უფლება, ამიტომ მე მხოლოდ აპირებს თქვენ ბიჭები ბაზის სტრუქტურა. 849 00:44:59,430 --> 00:45:02,020 თქვენ აპირებს შექმნას ფუნქცია მოუწოდა int strlen, სადაც 850 00:45:02,020 --> 00:45:08,436 უღელტეხილზე წელს, char ვარსკვლავი, ან ტექსტი, მომცეთ სიმებიანი მოუწოდა. 851 00:45:08,436 --> 00:45:10,820 >> ყველა უფლება, ყველას ასლი ქვემოთ. 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 ზემოთ. 854 00:45:14,850 --> 00:45:17,020 Oops-- სხვა გზით. 855 00:45:17,020 --> 00:45:21,360 >> ასე რომ, ეს არის ერთგვარი მოსწონს რთული ნაჭერი პრობლემა, 856 00:45:21,360 --> 00:45:25,320 ასე რომ, მე მივცემ თქვენ ბიჭები შესაძლოა ხუთ ექვსი წუთი სახის გონებრივი იერიში 857 00:45:25,320 --> 00:45:27,478 და დაწეროთ ამ ფუნქციის გარეთ. 858 00:45:27,478 --> 00:45:29,710 >> აუდიტორია: ჩვენ არ ანგარიშის [INAUDIBLE], 859 00:45:29,710 --> 00:45:30,200 ჩვენ არ უნდა გამოიყენოთ რიცხვი? 860 00:45:30,200 --> 00:45:31,241 >> პროფესორი: არა, არა. 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 მე მივცემ თქვენ ბიჭები მინიშნება. 863 00:48:06,930 --> 00:48:12,325 ხოლო loop შეიძლება იყოს ძალიან სასარგებლოა. 864 00:48:12,325 --> 00:48:12,825 ჰო. 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 აი 867 00:48:45,495 --> 00:48:45,995 candy. 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 Candy ასევე ხელმისაწვდომი იქნება ვიქტორინა, მე ვფიქრობ. 870 00:48:53,410 --> 00:48:55,315 ასე, რომ თქვენ ბიჭები იქნება ყველა დაშაქრული ხვალ. 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 ვერ შევიდე თქვენ მიიღო იგი. 873 00:49:02,962 --> 00:49:03,718 >> აუდიტორია: OK. 874 00:49:03,718 --> 00:49:04,384 პროფესორი: ჰო. 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> იქნებ კიდევ 30 წამი ან იმდენად. 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> ყველა უფლება, თუ თქვენ არ კეთდება, არ აწუხებს. 879 00:50:07,340 --> 00:50:08,810 ჩვენ გადაადგილება მეშვეობით ერთად. 880 00:50:08,810 --> 00:50:09,310 OK. 881 00:50:09,310 --> 00:50:13,800 ამიტომ, მე ვაპირებ, რომ მხოლოდ განლაგება ძირითადი სტრუქტურა ამ ფუნქციას აქ. 882 00:50:13,800 --> 00:50:17,255 Int strlen. 883 00:50:17,255 --> 00:50:20,040 884 00:50:20,040 --> 00:50:23,460 პირველი, ჯერ არავის მინდა ვუთხრა მე რა, რომ int ნიშნავს? 885 00:50:23,460 --> 00:50:25,160 ჩვენ უნდა გვქონდეს ამ ფუნქციას. 886 00:50:25,160 --> 00:50:26,709 >> აუდიტორია: Strlen [INAUDIBLE]. 887 00:50:26,709 --> 00:50:27,500 პროფესორი: ზუსტად. 888 00:50:27,500 --> 00:50:31,140 ასე რომ, რაც არ უნდა მოხდეს აქ, ჩვენ უნდა დაბრუნდეს რიცხვი. 889 00:50:31,140 --> 00:50:36,367 და, როგორც ეს მითითებულია სპეც, ჩვენ გვინდა, რომ დაბრუნდება 890 00:50:36,367 --> 00:50:37,700 წავალ ეს ბიჭები, მხოლოდ შენარჩუნებას აპირებს. 891 00:50:37,700 --> 00:50:40,480 ეს ყველაფერი კარგი. 892 00:50:40,480 --> 00:50:42,960 ჭამა ეს ყველაფერი ასე რომ არ აქვს მას უკან, რეალურად. 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 Int, უბრალოდ ნიშნავს, რომ თქვენ უნდა დაბრუნების რიცხვი. 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> რა არის ეს char ვარსკვლავი s? 897 00:50:57,106 --> 00:50:58,640 რას ნიშნავს ეს? 898 00:50:58,640 --> 00:51:00,879 >> აუდიტორია: მსგავსად, რა ხდება შეყვანის. 899 00:51:00,879 --> 00:51:01,670 პროფესორი: ზუსტად. 900 00:51:01,670 --> 00:51:04,142 და რა არის თითქმის იგივე, როგორც char ვარსკვლავი? 901 00:51:04,142 --> 00:51:04,850 აუდიტორია: სიმებიანი? 902 00:51:04,850 --> 00:51:05,641 პროფესორი: ზუსტად. 903 00:51:05,641 --> 00:51:09,080 ასე რომ, ყველა ვაკეთებთ მიცემა ამ მომცეთ სიმებიანი. 904 00:51:09,080 --> 00:51:09,580 OK. 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 ზემოთ. 907 00:51:13,360 --> 00:51:16,650 >> გარდა ამისა, არ უნდა დაგვავიწყდეს, თუ დავივიწყებთ, გადმოგცეთ ეს ფრჩხილებში, 908 00:51:16,650 --> 00:51:18,330 არ უნდა დაგვავიწყდეს, დაწერა მათ თავს. 909 00:51:18,330 --> 00:51:20,720 იმის გამო, რომ თეორიულად, თქვენი კოდი არასწორი თუ თქვენ დაგავიწყდებათ წერენ ისინი. 910 00:51:20,720 --> 00:51:21,803 უბრალოდ ყოველთვის ყურადღება მიაქციოს. 911 00:51:21,803 --> 00:51:23,750 მსგავსად, ცოტა რამ რომ თქვენ არ შეამჩნია 912 00:51:23,750 --> 00:51:26,917 როდესაც თქვენ პროგრამირების თქვენი ლეპტოპი, რადგან თქვენი ლეპტოპი აკეთებს იგი თქვენთვის? 913 00:51:26,917 --> 00:51:28,624 ნუ დაგავიწყდებათ, როდესაც თქვენ წერა ხელით. 914 00:51:28,624 --> 00:51:29,170 ჰო? 915 00:51:29,170 --> 00:51:30,954 >> აუდიტორია: მაგრამ როგორ არასწორი? 916 00:51:30,954 --> 00:51:33,190 ისევე, მივიღებთ, რომ მთელი პრობლემა არასწორი? 917 00:51:33,190 --> 00:51:34,190 >> პროფესორი: არა, არა. 918 00:51:34,190 --> 00:51:34,860 არ ინერვიულოთ. 919 00:51:34,860 --> 00:51:39,270 ეს, ფაქტობრივად, თეორიულად შესაძლებელია მიიღოთ სრული რაოდენობა კითხვაზე 920 00:51:39,270 --> 00:51:41,980 მაშინაც კი, თუ თქვენი კოდი იქნება არასოდეს აწარმოებს რეალურ ცხოვრებაში. 921 00:51:41,980 --> 00:51:46,052 მე გთავაზობთ თქვენ არ ცდილობენ რომ მოხდეს. 922 00:51:46,052 --> 00:51:48,260 მაგალითად, როგორიცაა, თუ ყველაფერი რომ აქ არის სწორი, 923 00:51:48,260 --> 00:51:51,850 მაგრამ თქვენ დაგავიწყდებათ მსხვილი ნაწლავის ან bracket, თქვენი კოდი არ რეალურად აწარმოებს. 924 00:51:51,850 --> 00:51:53,740 მაგრამ ჩვენ შეიძლება იყოს მოწყალე. 925 00:51:53,740 --> 00:51:54,394 >> ჰო? 926 00:51:54,394 --> 00:51:56,050 >> აუდიტორია: თქვენ უნდა კომენტარს ჩვენი ხელწერა? 927 00:51:56,050 --> 00:51:57,758 >> პროფესორი: არა, არა, არ შეშფოთება, რომ. 928 00:51:57,758 --> 00:51:58,440 არარის კომენტირებისას. 929 00:51:58,440 --> 00:51:59,400 სტილი უნდა იყოს კარგი. 930 00:51:59,400 --> 00:52:01,470 ისევე როგორც, არ smush ყველაფერი ერთ ხაზს. 931 00:52:01,470 --> 00:52:04,580 ჩვენ არ იქნება ბედნიერი თქვენ თუ ამის გაკეთება. 932 00:52:04,580 --> 00:52:07,250 >> ვინმეს სურს მომეცი პირველი ხაზი? 933 00:52:07,250 --> 00:52:08,633 მინიშნება, რომ ეს ძალიან ადვილია. 934 00:52:08,633 --> 00:52:09,320 >> ჰო? 935 00:52:09,320 --> 00:52:11,920 >> აუდიტორია: Int, n ნულის ტოლია. 936 00:52:11,920 --> 00:52:13,734 უბრალოდ დააყენეთ counter. 937 00:52:13,734 --> 00:52:15,900 პროფესორი: ასე რომ, ჩვენ გვინდა რაღაც ერთგვარი counter, არა? 938 00:52:15,900 --> 00:52:19,780 მე უბრალოდ აპირებს დაარქვით "იმედი" გულისთვის readability. 939 00:52:19,780 --> 00:52:21,265 რა გვინდა მითითებული ეს უდრის? 940 00:52:21,265 --> 00:52:21,890 >> აუდიტორია: Zero. 941 00:52:21,890 --> 00:52:23,840 პროფესორი: Yep. 942 00:52:23,840 --> 00:52:24,340 მძიმით. 943 00:52:24,340 --> 00:52:26,250 ეს არის ასევე ძალიან უცნაური ნახაზი semicolons. 944 00:52:26,250 --> 00:52:28,870 უბრალოდ პრაქტიკაში აკეთებს, რომ. 945 00:52:28,870 --> 00:52:31,990 >> ასე რომ, ჩვენ გვინდა, რომ პირველი უნდა კონტრ ტიპის int. 946 00:52:31,990 --> 00:52:35,360 იმის გამო, რომ ჩვენ გვინდა, რომ ითვლიან, თუ როგორ ბევრი ასო არის 947 00:52:35,360 --> 00:52:36,780 ამ სიმებიანი, არა? 948 00:52:36,780 --> 00:52:38,330 ძალიან მარტივია პირველი ნაბიჯი. 949 00:52:38,330 --> 00:52:42,140 >> OK, იქნებ ცოტა უფრო რთული ახლა, როგორ ვაპირებთ ამის გაკეთება? 950 00:52:42,140 --> 00:52:45,400 ვინმეს სურს მომეცი ხაზი კოდი 951 00:52:45,400 --> 00:52:48,450 რომ შეუძლია დაეხმაროს loop მეშვეობით, რაც არის? 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> ჰო, მამაცი უკან? 954 00:52:56,900 --> 00:53:06,832 >> აუდიტორია: OK, ასე რომ, ხოლო წერტილი asterisks, რომ ჰო, ვარსკვლავი s, 955 00:53:06,832 --> 00:53:09,465 არ არის ნულის ტოლია, მაშინ რაღაც? 956 00:53:09,465 --> 00:53:11,090 პროფესორი: ეს არის მართლაც, მართლაც ახლოს. 957 00:53:11,090 --> 00:53:11,835 მართლაც ახლოს. 958 00:53:11,835 --> 00:53:13,710 ამიტომ, მე ვაპირებ მივმართო ორი რამ, რომ. 959 00:53:13,710 --> 00:53:18,240 პირველ რიგში, ეს არ არის ზუსტად ნულოვანი. 960 00:53:18,240 --> 00:53:20,110 რა არის ეს? 961 00:53:20,110 --> 00:53:22,550 ეს არის null terminator, რომელიც წარმატებული ნულოვანი. 962 00:53:22,550 --> 00:53:24,960 ასე რომ, ისინი სხვადასხვა თვალსაზრისით, თუ როგორ ისინი ინახება. 963 00:53:24,960 --> 00:53:26,270 ასე რომ თქვენ ძალიან ახლოს. 964 00:53:26,270 --> 00:53:30,330 >> და მეორეც, ჩვენ არ გვინდა, უბრალოდ გადაადგილება მაჩვენებელი. 965 00:53:30,330 --> 00:53:32,320 ჩვენ გვინდა, რომ რეალურად შეამოწმონ ღირებულებების, არა? 966 00:53:32,320 --> 00:53:34,050 ასე რომ, როგორ გავაკეთოთ ეს? 967 00:53:34,050 --> 00:53:34,550 ძალიან მარტივია. 968 00:53:34,550 --> 00:53:36,841 არ ვფიქრობ, მითითებას, არ ვფიქრობ, მოგონებები. 969 00:53:36,841 --> 00:53:38,525 დაბრუნება კვირაში ორი კურსი. 970 00:53:38,525 --> 00:53:39,555 >> აუდიტორია: [INAUDIBLE]. 971 00:53:39,555 --> 00:53:40,680 პროფესორი: როგორც, გახსოვთ? 972 00:53:40,680 --> 00:53:41,400 რა შეგვიძლია? 973 00:53:41,400 --> 00:53:42,650 როგორ არიან ისინი ინახება მეხსიერებაში? 974 00:53:42,650 --> 00:53:43,300 >> აუდიტორია: ისინი დააყენა. 975 00:53:43,300 --> 00:53:43,810 >> პროფესორი: ისინი დააყენა. 976 00:53:43,810 --> 00:53:45,550 ასე რომ, ჩვენ შედიხართ თითოეული ხასიათი შიგნით? 977 00:53:45,550 --> 00:53:46,466 >> აუდიტორია: [INAUDIBLE]. 978 00:53:46,466 --> 00:53:47,530 პროფესორი: ზუსტად. 979 00:53:47,530 --> 00:53:53,195 ასე რომ, while-- რა მიდის შიგნით აქ? 980 00:53:53,195 --> 00:53:54,940 S of - 981 00:53:54,940 --> 00:53:55,920 >> აუდიტორია: I. 982 00:53:55,920 --> 00:53:58,216 >> პროფესორი: Oh, მე არ არსებობს, აკეთებს? 983 00:53:58,216 --> 00:53:59,620 >> აუდიტორია: Oh, იმედი? 984 00:53:59,620 --> 00:54:01,640 >> პროფესორი: ჩვენ შეგვიძლია მხოლოდ გამოყენება რაოდენობა, ხომ ასეა? 985 00:54:01,640 --> 00:54:03,050 >> აუდიტორია: უკაცრავად, მე მას i. 986 00:54:03,050 --> 00:54:04,341 >> პროფესორი: ჰო, ეს ყველაფერი კარგი. 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 ჩვენ გვყავს ცვლადი აქ, რომ უკვე გამოცხადდა, როგორც ჩვენი მთვლელი. 989 00:54:10,760 --> 00:54:13,650 რატომ არ გამოვიყენებთ, რომ გადატანა მეშვეობით ხოლო loop? 990 00:54:13,650 --> 00:54:15,230 ამას რამე აზრი აქვს? 991 00:54:15,230 --> 00:54:20,864 >> ასე რომ, როდესაც ის საქართველოს ითვლიან ჯერ არავის მინდა მომეცი რა ხდება მას შემდეგ, რაც აქ? 992 00:54:20,864 --> 00:54:22,030 აუდიტორია: ეს არ უდრის. 993 00:54:22,030 --> 00:54:23,405 პროფესორი: არ უდრის, არა? 994 00:54:23,405 --> 00:54:26,200 ეს bang შეადგენს, ძახილის წერტილი უდრის, 995 00:54:26,200 --> 00:54:28,500 რასაც თქვენ ბიჭები მინდა ეძახით არ გაუტოლდება 996 00:54:28,500 --> 00:54:29,496 >> აუდიტორია: [INAUDIBLE]. 997 00:54:29,496 --> 00:54:30,990 >> პროფესორი: ჰო. 998 00:54:30,990 --> 00:54:37,110 დამახსოვრება ერთჯერადი ციტირებით არის char, ორმაგი შეთავაზებები სიმებიანი. 999 00:54:37,110 --> 00:54:38,630 ფრთხილად, როდესაც გამოყენებით მათ. 1000 00:54:38,630 --> 00:54:42,430 ასე რომ, როდესაც ჩვენ ვეძებთ მეშვეობით მასივი, ბოლო ხასიათი, 1001 00:54:42,430 --> 00:54:46,420 ჩვენ ვიცით, ჩვენ არ გვინდა, ეს უნდა იყოს წარმატებული ნულოვანი. 1002 00:54:46,420 --> 00:54:47,340 >> ასე რომ, ხოლო. 1003 00:54:47,340 --> 00:54:48,840 ჩვენ არ ვართ ბოლოს სიმებიანი. 1004 00:54:48,840 --> 00:54:52,335 რა გვინდა ჩვენ უნდა გავაკეთოთ შიგნით? 1005 00:54:52,335 --> 00:54:55,269 >> აუდიტორია: ჩვენ გვინდა, რომ დაამატოთ counter ასე რომ ითვლის plus plus? 1006 00:54:55,269 --> 00:54:56,060 პროფესორი: ზუსტად. 1007 00:54:56,060 --> 00:55:03,064 ასე რომ აქ ჩვენ ვაპირებთ, რომ იმედი, იმედი plus plus. 1008 00:55:03,064 --> 00:55:03,980 დაკარგული კიდევ ერთი ხაზი. 1009 00:55:03,980 --> 00:55:05,090 ჩვენ თითქმის არ არსებობს. 1010 00:55:05,090 --> 00:55:07,398 რა ჩვენ დავიწყება უნდა გავაკეთოთ? 1011 00:55:07,398 --> 00:55:08,770 >> აუდიტორია: დავბრუნდეთ ნულოვანი? 1012 00:55:08,770 --> 00:55:10,820 >> პროფესორი: გსურთ დაბრუნების ნულოვანი? 1013 00:55:10,820 --> 00:55:12,962 >> აუდიტორია: არა, დაბრუნების strlen. 1014 00:55:12,962 --> 00:55:13,511 დაელოდეთ. 1015 00:55:13,511 --> 00:55:14,760 პროფესორი: რა ინახება? 1016 00:55:14,760 --> 00:55:15,090 აუდიტორია: იმედი. 1017 00:55:15,090 --> 00:55:15,589 იმედი. 1018 00:55:15,589 --> 00:55:17,150 პროფესორი: ზუსტად. 1019 00:55:17,150 --> 00:55:20,760 ასე რომ აქ ჩვენ ვაპირებთ დაბრუნებას რაოდენობა. 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> იმის გამო, რომ ის, რაც ჩვენ აქ აკეთებენ ultimately-- 1022 00:55:25,380 --> 00:55:29,780 ჩვენ გვაქვს counter ცვლადი რომ ვაპირებთ, რომ იყოს მეშვეობით ჩვენი სიმებიანი. 1023 00:55:29,780 --> 00:55:33,050 ჩვენ ვაპირებთ, რომ შევინარჩუნოთ აპირებს, შეინახოს აპირებს, ირგვლივ და გარშემო ამ loop. 1024 00:55:33,050 --> 00:55:37,700 და მიუხედავად იმისა, რომ ჩვენ არ ვართ ბოლომდე ამ ტექსტი, რომელიც არის null terminator. 1025 00:55:37,700 --> 00:55:40,410 >> და ყოველ ჯერზე ჩვენ გაიაროს ის, რომ ჩვენ ვამატებთ, რომ ჩვენი მთვლელი. 1026 00:55:40,410 --> 00:55:42,640 და ჩვენ ვაპირებთ, შემდგომი გასწვრივ ამ მასივი. 1027 00:55:42,640 --> 00:55:44,880 და ბოლოს, კიდევ ერთხელ მოხვდა null terminator, 1028 00:55:44,880 --> 00:55:48,469 ჩვენ ვიცით, რა შეგვიძლია შესვენება, დაბრუნდნენ რაოდენობა. 1029 00:55:48,469 --> 00:55:49,260 ჩვენ გვაქვს ჩვენი strlen. 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> ამჯამად ყველას, თუ როგორ ეს განხორციელდა? 1032 00:55:56,400 --> 00:55:58,830 ხოლო მარყუჟების მე ვიცი, ჩვენ არ გვაქვს ძალიან ბევრი გააკეთა მათთან, 1033 00:55:58,830 --> 00:56:01,240 მაგრამ ისინი, როგორც წესი, ძალიან, ძალიან სასარგებლოა, თუ თქვენ 1034 00:56:01,240 --> 00:56:05,390 არ ვიცი, რა თქვენ შეჩერების მდგომარეობა აუცილებლად უნდა იყოს. 1035 00:56:05,390 --> 00:56:06,220 >> კითხვა? 1036 00:56:06,220 --> 00:56:10,080 >> აუდიტორია: შეგვიძლია დავწეროთ null on ხოლო მდგომარეობა? 1037 00:56:10,080 --> 00:56:10,940 >> პროფესორი: მიუხედავად იმისა, რომ? 1038 00:56:10,940 --> 00:56:15,304 ჰო, ასე რომ ამ პრობლემა მქონდა თუ არა ბიჭები ვივარაუდოთ, რომ ის არ იქნება null. 1039 00:56:15,304 --> 00:56:17,220 იმიტომ, რომ მახსოვს, თეორიულად, თუ მივეცი 1040 00:56:17,220 --> 00:56:21,180 მაჩვენებელი, რომელიც იყო ძალიან დიდი მეხსიერება, ეს მოგცემთ null, არა? 1041 00:56:21,180 --> 00:56:23,770 ეს არის ის რაც ოპერაციული სისტემა იქნებოდა. 1042 00:56:23,770 --> 00:56:26,960 >> ასე რომ, თუ მე არ გეტყვით, უნდა ვივარაუდოთ, s იქნება null, თქვენ უნდა შეამოწმოთ. 1043 00:56:26,960 --> 00:56:32,050 ასე რომ, აქ, თქვენ ყველაფერს გააკეთებს, თუ უდრის უდრის null, დაბრუნდნენ ერთი. 1044 00:56:32,050 --> 00:56:33,028 ასე რომ. 1045 00:56:33,028 --> 00:56:34,153 აუდიტორია: [INAUDIBLE] ნულოვანი. 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 პროფესორი: OK, მე გეტყვით, თქვენ რატომ არ შეგვიძლია ამის გაკეთება. 1048 00:56:39,370 --> 00:56:43,357 იმიტომ, რომ მახსოვს მეხსიერება, უფლება, აქ. 1049 00:56:43,357 --> 00:56:43,940 ჩვენ წავიდეთ აქ. 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> თქვენ მოხვდით გიგანტური ბლოკები მეხსიერების ყველა ბადეები 1052 00:56:54,090 --> 00:56:56,680 რომ მაღაზიაში განსხვავებული ღირებულებები, უფლება? 1053 00:56:56,680 --> 00:57:00,110 ასე რომ, ყველა სიმებიანი is-- for მაგალითად, თუ ჩვენ ვართ შეყვანის hello, 1054 00:57:00,110 --> 00:57:05,490 ეს იქნება H-E-L-L-O წარმატებული ნულოვანი, არა? 1055 00:57:05,490 --> 00:57:09,570 და მერე ვინ იცის, როგორიცაა შემთხვევითი რამ, რომ აქ მას შემდეგ. 1056 00:57:09,570 --> 00:57:11,220 >> ჩვენ რეალურად არ ვიცი რა არის. 1057 00:57:11,220 --> 00:57:13,350 ასე რომ, თუ თქვენ უნდა გავაკეთოთ ნაცვლად წარმატებული ნულოვანი, 1058 00:57:13,350 --> 00:57:15,590 null, ეს არ შეიძლება იყოს null. 1059 00:57:15,590 --> 00:57:17,680 იმის გამო, რომ ეს მხოლოდ შეიძლება ნიშნავს, შემთხვევითი სხვა რამ 1060 00:57:17,680 --> 00:57:19,270 რომ არ ეკუთვნის თქვენს სიმებიანი. 1061 00:57:19,270 --> 00:57:23,219 ასე რომ, ისე, რომ ჩვენ ყოველთვის ვიცით, რომ სიმებიანი დამთავრდა არის წარმატებული ნულოვანი. 1062 00:57:23,219 --> 00:57:25,760 და ისე, რომ ყოველთვის, თუ როგორ ჩვენ შეამოწმეთ ბოლოს სიმებიანი. 1063 00:57:25,760 --> 00:57:30,820 >> Null, რომ ყველა საშუალებით, თუ თქვენ გაქვთ არარსებული მაჩვენებელი, პირველ რიგში, 1064 00:57:30,820 --> 00:57:36,160 თუ თქვენი მეხსიერების მხოლოდ იმდენად დიდი, რომ თქვენ არ შეუძლია დაბრუნება, მაშინ ეს უნდა იყოს null. 1065 00:57:36,160 --> 00:57:40,150 ასე რომ იყოს ძალიან ფრთხილად, როდესაც გამიჯვნის შორის სხვაობა null 1066 00:57:40,150 --> 00:57:42,130 და წარმატებული ნულოვანი. 1067 00:57:42,130 --> 00:57:43,670 ჰო. 1068 00:57:43,670 --> 00:57:46,886 >> ყველას OK ეს? 1069 00:57:46,886 --> 00:57:48,150 OK. 1070 00:57:48,150 --> 00:57:50,440 >> ასე რომ, მე თქვენ ბიჭები წერენ გარეთ strlen. 1071 00:57:50,440 --> 00:57:53,790 Feasibly ჩვენ შეგვიძლია ასევე გთხოვოთ დაწერა გარეთ რომ მე, გვახსოვდეს, რომ "Atwoa" 1072 00:57:53,790 --> 00:57:55,400 ან რასაც თქვენ ბიჭები მინდა ეძახით? 1073 00:57:55,400 --> 00:57:58,010 ეს ფუნქცია Vigenere და ცეზარ, რომელიც 1074 00:57:58,010 --> 00:58:00,900 აკონვერტებს ASCII ღირებულება რიცხვი? 1075 00:58:00,900 --> 00:58:04,360 ეს ასევე ამუშავება წარსულში ტესტებში ფუნქციები ჩვენ გთხოვეთ დაწერა. 1076 00:58:04,360 --> 00:58:08,280 >> საკმაოდ ბევრი ნებისმიერი ფუნქცია რომ თქვენ გამოიყენება და 1077 00:58:08,280 --> 00:58:11,660 ძალიან ადვილია დაწერა საკუთარ თავს, სენსორები მინდა დაბალია, 1078 00:58:11,660 --> 00:58:14,620 არის ზედა, ქვედა, ზედა. 1079 00:58:14,620 --> 00:58:17,964 ფუნქციები, რომელიც გარდაქმნას სიმებიანი ამას რომ ზედა. 1080 00:58:17,964 --> 00:58:19,380 ჩვენ ყველამ ვიცით, თუ როგორ უნდა გავაკეთოთ, არა? 1081 00:58:19,380 --> 00:58:21,100 ეს არის საკმაოდ მარტივია. 1082 00:58:21,100 --> 00:58:24,770 უბრალოდ გვინდა დავრწმუნდეთ, რომ თქვენ can-- ეს არის იგივე აზროვნების პროცესი. 1083 00:58:24,770 --> 00:58:26,940 თქვენ უბრალოდ iterate მეშვეობით და ჩართოთ რამ. 1084 00:58:26,940 --> 00:58:30,190 თქვენ არც იმედი და როდესაც თქვენ ჩართოთ რამ სხვაგვარად. 1085 00:58:30,190 --> 00:58:32,280 >> მე suggest-- მე არ ვიცი, თუ ჩვენ ვაპირებთ 1086 00:58:32,280 --> 00:58:39,080 გთხოვოთ, რომ გვემახსოვრება რა კაპიტალი ან კაპიტალის Z, ან ამას ან ამას 1087 00:58:39,080 --> 00:58:42,640 z არიან ASCII, მაგრამ მე გთავაზობთ ალბათ წერდა, რომ ქვემოთ შემთხვევაში 1088 00:58:42,640 --> 00:58:44,124 ჩვენ ვაკეთებთ. 1089 00:58:44,124 --> 00:58:45,540 უბრალოდ, ასე რომ თქვენ ბიჭები გვყავს მითითება. 1090 00:58:45,540 --> 00:58:47,180 ისევე როგორც ზედა არის, რა, 197? 1091 00:58:47,180 --> 00:58:51,320 და შემდეგ ამას იგივეა 50 რაღაც. 1092 00:58:51,320 --> 00:58:52,492 65, yeah, რომ თქვენ გადასვლა. 1093 00:58:52,492 --> 00:58:54,950 ასე რომ, უბრალოდ საკმაოდ ბევრი ვიცი განსხვავება მათ შორის არის 32. 1094 00:58:54,950 --> 00:58:57,670 ეს არის საკმაოდ მნიშვნელოვანი. 1095 00:58:57,670 --> 00:58:58,170 ჰო. 1096 00:58:58,170 --> 00:59:01,445 ვარ კარგი ეს? 1097 00:59:01,445 --> 00:59:01,945 OK. 1098 00:59:01,945 --> 00:59:03,109 >> აუდიტორია: ჩვენ შეგვეძლო თეორიულად დაწერა რამდენიმე 1099 00:59:03,109 --> 00:59:04,410 ამ დროს, აგრეთვე ჩვენს little-- 1100 00:59:04,410 --> 00:59:07,035 >> პროფესორი თქვენ თეორიულად ვერ გადააკოპირეთ ფუნქცია ქვემოთ. 1101 00:59:07,035 --> 00:59:08,482 მართალია. 1102 00:59:08,482 --> 00:59:11,080 >> აუდიტორია: არ [INAUDIBLE]. 1103 00:59:11,080 --> 00:59:12,720 >> პროფესორი: შენ უნდა ფურცელი. 1104 00:59:12,720 --> 00:59:14,194 თქვენ ბიჭები გაქვთ შენიშვნა ფურცელი. 1105 00:59:14,194 --> 00:59:14,860 თქვენ შეგიძლიათ აკრიფოთ იგი. 1106 00:59:14,860 --> 00:59:15,490 თქვენ შეგიძლიათ დაწეროთ ის. 1107 00:59:15,490 --> 00:59:17,031 ამის გაკეთება შეგიძლიათ რაც გინდათ ის. 1108 00:59:17,031 --> 00:59:18,530 ჰო. 1109 00:59:18,530 --> 00:59:21,406 თეორიულად, თუ გსურთ, წავიდეთ. 1110 00:59:21,406 --> 00:59:23,338 >> აუდიტორია: [INAUDIBLE] მაგრამ ჩვენ ნამდვილად არ 1111 00:59:23,338 --> 00:59:25,994 აუცილებლად უნდა გვახსოვდეს, ღირებულება, ჩვენ შეგვიძლია მხოლოდ 1112 00:59:25,994 --> 00:59:28,914 გამოყენება ზედა ან ქვედა ფუნქცია, არა? 1113 00:59:28,914 --> 00:59:29,580 პროფესორი: ჰო. 1114 00:59:29,580 --> 00:59:32,740 მაგრამ თუ ჩვენ მივეცით თქვენ კითხვა რომელიც ამბობს, რომ წერენ ზედა, 1115 00:59:32,740 --> 00:59:34,350 მაშინ თქვენ უნდა დაწერა. 1116 00:59:34,350 --> 00:59:38,150 ასე რომ, შენ შეიძლება ვივარაუდოთ, რომ თქვენ ბიჭები ჰქონდეს ყველა ფუნქციები, 1117 00:59:38,150 --> 00:59:41,523 მაგრამ თუ გსურთ გამოიყენოთ ზედა ან ქვედა, რას უნდა გავაკეთოთ? 1118 00:59:41,523 --> 00:59:43,840 >> აუდიტორია: [INAUDIBLE] გამოიყენოს CS50 [INAUDIBLE] 1119 00:59:43,840 --> 00:59:44,840 >> პროფესორი: ეს CS50.h? 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 ფრთხილად არ არსებობს. 1122 00:59:48,310 --> 00:59:50,640 >> ასე რომ, ზედა, ქვედა, არის ზედა, ქვედა, 1123 00:59:50,640 --> 00:59:52,990 ფუნქციები, რომელიც გულისხმობს სიმებიანი მანიპულირება არის 1124 00:59:52,990 --> 00:59:55,490 ყველა ფარგლებში ან ASCII ან ფარგლებში მათემატიკის ბიბლიოთეკა 1125 00:59:55,490 --> 00:59:57,350 ან ფარგლებში სიმებიანი ბიბლიოთეკა. 1126 00:59:57,350 --> 01:00:00,290 ასე რომ, თუ თქვენ ბიჭები გამოიყენოთ იმ ფუნქციები, ფრთხილად უნდა გვახსოვდეს 1127 01:00:00,290 --> 01:00:01,451 მოიცავს, რომ header. 1128 01:00:01,451 --> 01:00:03,950 ასე რომ, ალბათ ასევე რაღაც გსურთ მოიცავს თქვენს ფურცელი, 1129 01:00:03,950 --> 01:00:04,892 რა არის თავით? 1130 01:00:04,892 --> 01:00:06,600 რა არის ბიბლიოთეკები თქვენ უკვე იყენებთ? 1131 01:00:06,600 --> 01:00:08,550 რა ფუნქციები შიგნით იმ ბიბლიოთეკების? 1132 01:00:08,550 --> 01:00:09,230 ეს მნიშვნელოვანია. 1133 01:00:09,230 --> 01:00:10,420 >> ჰო? 1134 01:00:10,420 --> 01:00:12,570 >> აუდიტორია: ვერ ჩვენ, უბრალოდ, cop out და hashtag 1135 01:00:12,570 --> 01:00:14,955 მეშვეობით აბსოლუტურად ყველა წერილი, რომ ჩვენ ოდესმე 1136 01:00:14,955 --> 01:00:17,340 ჩანს, ისევე როგორც ყველა კითხვას? 1137 01:00:17,340 --> 01:00:18,320 >> პროფესორი: თქვენ შეიძლება. 1138 01:00:18,320 --> 01:00:20,361 მე არ ვიცი, რა ბედნიერი ჩვენ ვაპირებთ, რომ იყოს grade 1139 01:00:20,361 --> 01:00:25,090 რომ ინტელექტუალური, როდესაც ყველა ნაჭერი კოდი ორჯერ, რადგან ეს უნდა იყოს. 1140 01:00:25,090 --> 01:00:27,200 მე არ ვიცი, ჩვენ შეგვიძლია გამეხადა წერტილი სტილი. 1141 01:00:27,200 --> 01:00:28,790 მაგრამ თეორიულად თქვენი კოდი იქნება სწორი. 1142 01:00:28,790 --> 01:00:30,915 თქვენ ბიჭები cop out და უბრალოდ მოიცავს ყველაფერს. 1143 01:00:30,915 --> 01:00:32,044 ეს ჯარიმა ძალიან, yeah. 1144 01:00:32,044 --> 01:00:32,960 აუდიტორია: [INAUDIBLE]. 1145 01:00:32,960 --> 01:00:33,270 პროფესორი: ჰო. 1146 01:00:33,270 --> 01:00:34,900 მინდა ვარაუდობენ არ აკეთებს, რომ მიუხედავად იმისა, რომ. 1147 01:00:34,900 --> 01:00:35,505 ჰო. 1148 01:00:35,505 --> 01:00:36,130 აუდიტორია: ზემოთ. 1149 01:00:36,130 --> 01:00:36,620 პროფესორი: კარგი კითხვაა. 1150 01:00:36,620 --> 01:00:37,480 აუდიტორია: ასე რომ, უარეს შემთხვევაში. 1151 01:00:37,480 --> 01:00:38,563 პროფესორი: უარეს შემთხვევაში. 1152 01:00:38,563 --> 01:00:40,350 თუ თქვენ მთლიანად უნდა დაგვავიწყდეს, თქვენ შეიძლება ამის გაკეთება. 1153 01:00:40,350 --> 01:00:40,850 ჰო. 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> Yep, კოდი არის სწორი იქ. 1156 01:00:45,400 --> 01:00:49,176 მე n ნაცვლად რაოდენობა, მაგრამ, თქვენ ვიცი, რასაც მოძრავი თქვენი ნავი. 1157 01:00:49,176 --> 01:00:51,092 აუდიტორია: მოითმინეთ, ამიტომ ჩვენ არ უნდა ჰეშტეგი 1158 01:00:51,092 --> 01:00:53,460 მოიცავს იმიტომ, რომ ჩვენ დაწყებული int? 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> პროფესორი: ჰო, მე მხოლოდ ვივარაუდოთ, რომ ჩვენ დაისვა დაწერა ფუნქცია. 1161 01:00:59,924 --> 01:01:02,340 თუ უნდოდა იყოს უსაფრთხო, თქვენ შეიძლება ალბათ, რომ ეს არ არსებობს. 1162 01:01:02,340 --> 01:01:05,650 მაგრამ მე უბრალოდ არ გადაიტვირთოთ, yeah. 1163 01:01:05,650 --> 01:01:09,919 >> მე კი არ ვიცი, თუ უნდა ნებისმიერ ბიბლიოთეკაში ამ. 1164 01:01:09,919 --> 01:01:12,710 იმის გამო, რომ თქვენ ნამდვილად არ ბეჭდვის არაფერი ან არაფერი, არა? 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 ჰო, მე არ ვიცი, თუ თქვენ გჭირდებათ ბიბლიოთეკა. 1167 01:01:19,568 --> 01:01:22,400 >> OK. 1168 01:01:22,400 --> 01:01:26,020 ეს არის ასევე ცოტა მეტი გასწვრივ ხაზები მეხსიერების მანიპულირება. 1169 01:01:26,020 --> 01:01:27,400 ამ სახის ცოტა სახიფათო. 1170 01:01:27,400 --> 01:01:28,960 ვფიქრობ, რომ ამ. 1171 01:01:28,960 --> 01:01:30,580 თქვენ გაქვთ ფუნქცია მოუწოდა func. 1172 01:01:30,580 --> 01:01:33,570 მე ვერ დაასახელა ის რასაც, მაგრამ აირჩიოს დაარქვით func. 1173 01:01:33,570 --> 01:01:36,000 მე მაქვს ეს ზემოთ ჩემი მთავარი. 1174 01:01:36,000 --> 01:01:39,790 გახსოვდეთ, თქვენ გსურთ აქვს ფუნქცია მას შემდეგ, რაც თქვენი მთავარი, 1175 01:01:39,790 --> 01:01:42,370 თქვენ გვინდა დავრწმუნდეთ, რომ თქვენ მოიცავს პროტოტიპი დაბრუნება. 1176 01:01:42,370 --> 01:01:45,750 >> მაგრამ ამ შემთხვევაში ეს იმდენად მოკლე რომ ვიგრძენი, რომ მე მხოლოდ 1177 01:01:45,750 --> 01:01:47,260 მოიცავს ეს atop ძირითადი. 1178 01:01:47,260 --> 01:01:51,170 მე არ უნდა პროტოტიპი, იმიტომ, რომ ის უკვე დაწერილი ზემოთ. 1179 01:01:51,170 --> 01:01:55,430 ასე რომ, ყველა მე ვაკეთებ ჩემი მთავარი ფუნქცია ქმნის რიცხვი x უდრის 10-ს. 1180 01:01:55,430 --> 01:02:00,490 მე ვურეკავდი ჩემს func ფუნქცია, და მაშინ დაბეჭდვის რაღაც. 1181 01:02:00,490 --> 01:02:02,840 >> და მაშინ, რომ, ფაქტობრივად, რა func აკეთებს. 1182 01:02:02,840 --> 01:02:04,340 თქვენ ბიჭები გვინდა ვიფიქროთ მეშვეობით. 1183 01:02:04,340 --> 01:02:05,423 იმიტომ, რომ ეს ცოტა სახიფათო. 1184 01:02:05,423 --> 01:02:07,220 ეს არის ძალიან, ძალიან სახიფათო, რეალურად. 1185 01:02:07,220 --> 01:02:09,549 ვფიქრობ მეშვეობით, რაც ამ პროგრამა იქნება outputting. 1186 01:02:09,549 --> 01:02:10,840 მე მივცემ თქვენ ბიჭები ორი წუთის განმავლობაში. 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> დისკუსია? 1189 01:03:37,891 --> 01:03:38,853 >> აუდიტორია: Yeah. 1190 01:03:38,853 --> 01:03:39,815 >> პროფესორი: ჰო. 1191 01:03:39,815 --> 01:03:42,220 ყველა უფლება, ასე რომ ეს არის სახიფათო მიზეზი. 1192 01:03:42,220 --> 01:03:44,845 და სწორედ ამიტომ მინდოდა, რათა ეს ყველას ყურადღებას. 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 ვინმეს სურს, რომ მომეცი წინადადება, მცდელობა? 1195 01:03:51,147 --> 01:03:52,230 რა ამ ამობეჭდოთ? 1196 01:03:52,230 --> 01:03:53,930 სრულიად ჯარიმა თუ ვცდებოდით. 1197 01:03:53,930 --> 01:03:55,619 ჰო? 1198 01:03:55,619 --> 01:03:59,483 >> აუდიტორია: მე ვფიქრობ, რომ ეს 100 და მაშინ 10 წლის ორ ცალკე ხაზები. 1199 01:03:59,483 --> 01:04:00,940 >> პროფესორი: და 10? 1200 01:04:00,940 --> 01:04:03,154 ვინმეს აქვს რაიმე სხვა მიხვდება? 1201 01:04:03,154 --> 01:04:04,150 ჰო? 1202 01:04:04,150 --> 01:04:09,040 >> აუდიტორია: იქნებ მხოლოდ 10 რადგან func არ დაბრუნების არაფერი? 1203 01:04:09,040 --> 01:04:11,610 >> პროფესორი: OK, ასე რომ, ჩვენ აქვს გამოიცანით ნომერ 1204 01:04:11,610 --> 01:04:14,990 ის არის, რომ ვხვდები ნომერი ორი არის უბრალოდ აპირებს ბეჭდვა 10. 1205 01:04:14,990 --> 01:04:17,623 ვინმეს აქვს რაიმე სხვა მიხვდება? 1206 01:04:17,623 --> 01:04:19,654 OK. 1207 01:04:19,654 --> 01:04:21,070 მოდით გავლა ამ, არა? 1208 01:04:21,070 --> 01:04:23,903 როდესაც თქვენ მიიღებთ ნაჭერი კოდი, არ შევჩერდეთ და იყოს, 1209 01:04:23,903 --> 01:04:25,060 ah, რომ იმდენად პერსონალი! 1210 01:04:25,060 --> 01:04:26,460 მე ასე დაბნეული! 1211 01:04:26,460 --> 01:04:28,220 მსგავსად, დასამშვიდებლად თავს ქვემოთ. 1212 01:04:28,220 --> 01:04:31,602 უბრალოდ ვიცი, რომ თქვენ შეიძლება მხოლოდ გაეცნონ კოდი ხაზს. 1213 01:04:31,602 --> 01:04:32,310 ეს არის ის, რაც არის. 1214 01:04:32,310 --> 01:04:33,840 ეს იგივეა, კითხულობს წიგნს. 1215 01:04:33,840 --> 01:04:38,000 >> ასე რომ, ნებისმიერი ფუნქცია, ჩვენ ყოველთვის იწყება მთავარი. 1216 01:04:38,000 --> 01:04:40,860 ასე რომ, ჩვენ ვაპირებთ იწყება int მთავარი ბათილად, 1217 01:04:40,860 --> 01:04:43,010 მაშინაც კი, პროგრამის უკვე აწარმოებს ქვემოთ, არა? 1218 01:04:43,010 --> 01:04:45,070 დაწყება მთავარ ბათილად. 1219 01:04:45,070 --> 01:04:48,030 Int x უდრის 10-ს. 1220 01:04:48,030 --> 01:04:50,400 >> ამიტომ, მე ვაპირებ, რომ წაშალოს ეს. 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 მე ვაპირებ შევაჩერო მეხსიერების უბრალოდ, ასე რომ თქვენ ბიჭები შეგიძლიათ სახის ვხედავთ, რა ხდება. 1223 01:04:58,470 --> 01:05:02,190 >> დამახსოვრება ქვემოთ აქ ჩვენ გვაქვს ჩვენი დასტის? 1224 01:05:02,190 --> 01:05:05,810 აქ ჩვენ გვაქვს ჩვენი ბევრი სადღაც აქ. 1225 01:05:05,810 --> 01:05:07,470 დასტის იზრდება, არა? 1226 01:05:07,470 --> 01:05:10,150 და ფარგლებში დასტის, თქვენ უნდა მაგისტრალური ფუნქციონირებას ასევე 1227 01:05:10,150 --> 01:05:12,230 ყველა მაგისტრალური ადგილობრივი ცვლადები. 1228 01:05:12,230 --> 01:05:14,310 >> ასე რომ, აქ, int x ტოლი 10. 1229 01:05:14,310 --> 01:05:17,670 ჩვენს ძირითად ფუნქციას ჩვენ შექმნა ცვლადში x. 1230 01:05:17,670 --> 01:05:20,590 ჩვენ მიიღწევა, რომ ტოლი 10. 1231 01:05:20,590 --> 01:05:24,200 აქ თქვენ მოხვდით გარკვეული x, და თქვენ გარემოში, რომ ტოლი 10, უფლება, 1232 01:05:24,200 --> 01:05:25,400 ფარგლებში ძირითადი. 1233 01:05:25,400 --> 01:05:27,430 ყველას კარგი? 1234 01:05:27,430 --> 01:05:28,070 >> ფუნქცია. 1235 01:05:28,070 --> 01:05:30,330 ასე რომ, ახლა, ჩვენს მთავარ ფუნქცია, ჩვენ მოუწოდებენ 1236 01:05:30,330 --> 01:05:31,810 ფუნქცია ჩვენ წერილობით ზემოთ. 1237 01:05:31,810 --> 01:05:34,550 ასე რომ, ჩვენ ახლა შევა მეორე ფუნქცია. 1238 01:05:34,550 --> 01:05:40,120 ჩვენ ვაპირებთ, რომ შევქმნათ კიდევ ერთი ცვლადი int x უდრის 100. 1239 01:05:40,120 --> 01:05:42,410 რა ხდება აქ დასტის? 1240 01:05:42,410 --> 01:05:46,980 რა ხდება, როცა რეკავთ ფუნქცია, რომელიც ქმნის ახალ ცვლადები? 1241 01:05:46,980 --> 01:05:50,038 რა ხდება აქ დასტის? 1242 01:05:50,038 --> 01:05:52,134 >> აუდიტორია: [INAUDIBLE] piles თავზე? 1243 01:05:52,134 --> 01:05:52,800 პროფესორი: ჰო. 1244 01:05:52,800 --> 01:05:54,050 ასე რომ, ეს რეალურად ქმნის ასლი. 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 და ეს ერთგვარი piles თავზე. 1247 01:05:57,740 --> 01:06:00,700 წარმოიდგინეთ დასტის დასტის წიგნები, დასტის არაფერი. 1248 01:06:00,700 --> 01:06:06,520 Piles თავზე, პირველი ბოლო გარეთ, გაგრძელდება, პირველი გარეთ. 1249 01:06:06,520 --> 01:06:08,471 >> ასე რომ, ის აპირებს შექმნას x აქ. 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> ეს აპირებს ყველა funcs ცვლადები. 1252 01:06:14,450 --> 01:06:14,950 შესანიშნავი. 1253 01:06:14,950 --> 01:06:20,980 ასე რომ, ახლა ჩვენ გვაქვს ორი სხვადასხვა x ის, რომ წარმოადგენს ორი ძალიან განსხვავებული რამ. 1254 01:06:20,980 --> 01:06:24,470 მაშინ ჩვენ ვაპირებთ ბეჭდვა out მთელი x. 1255 01:06:24,470 --> 01:06:26,430 მოდით ამობეჭდოთ 100, არა? 1256 01:06:26,430 --> 01:06:29,389 იმის გამო, რომ აქ ის 100. 1257 01:06:29,389 --> 01:06:31,680 ასე რომ, პირველი, რაც რომ ის აპირებს ამობეჭდოთ. 1258 01:06:31,680 --> 01:06:35,710 როგორც ეს ფუნქცია დააბრუნებს არაფერი, ახლა რომ ფუნქცია, რომ ხაზი მთავარ 1259 01:06:35,710 --> 01:06:37,070 კეთდება. 1260 01:06:37,070 --> 01:06:39,160 ყველას კარგი ჩემთან ჯერჯერობით? 1261 01:06:39,160 --> 01:06:43,034 >> ასე რომ, ჩვენ ახლა ორი გარეთ სამ ჩვენი მთავარი ფუნქცია. 1262 01:06:43,034 --> 01:06:44,450 ახლა ჩვენ ვაპირებთ, რომ მესამე ხაზი. 1263 01:06:44,450 --> 01:06:46,350 ჩვენ ვაპირებთ, რომ printf. 1264 01:06:46,350 --> 01:06:48,222 რა არის ეს x ფარგლებში მთავარი? 1265 01:06:48,222 --> 01:06:49,263 რას წარმოადგენს? 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> რა მნიშვნელობა x ახლა? 1268 01:06:54,280 --> 01:06:55,220 >> აუდიტორია: 100. 1269 01:06:55,220 --> 01:06:56,799 >> პროფესორი: ეს არის 100? 1270 01:06:56,799 --> 01:06:57,590 აუდიტორია: Still 10. 1271 01:06:57,590 --> 01:06:58,878 პროფესორი: Still 10. 1272 01:06:58,878 --> 01:07:00,870 ჰო. 1273 01:07:00,870 --> 01:07:06,810 იმიტომ, რომ მახსოვს, ფარგლებში ჩვენი func, x უდრის 100. 1274 01:07:06,810 --> 01:07:09,690 მაგრამ თუ ჩვენ დაბრუნებას ჩვენი მთავარი ფუნქცია, 1275 01:07:09,690 --> 01:07:12,440 რომ ცვლადი ინახება სხვადასხვა ადგილიდან ჩვენი Stack. 1276 01:07:12,440 --> 01:07:16,250 >> ასე რომ, ახლა ჩვენ უნდა დაბრუნდეს მთავარი დასტის, მაგისტრალური ადგილობრივი ცვლადები. 1277 01:07:16,250 --> 01:07:18,460 აქ x უდრის 10. 1278 01:07:18,460 --> 01:07:20,300 ასე რომ, ჩვენ ვაპირებთ ბეჭდვა 10. 1279 01:07:20,300 --> 01:07:22,530 >> ასე რომ, ის აბსოლუტურად სწორი იყო. 1280 01:07:22,530 --> 01:07:25,053 ჩვენ ვაპირებთ, რომ აქვს გამოშვება 100 და 10. 1281 01:07:25,053 --> 01:07:25,553 ჰო? 1282 01:07:25,553 --> 01:07:28,700 აუდიტორია: როცა malloc, ეს არის ბევრი ან დასტის, რომელიც [INAUDIBLE]? 1283 01:07:28,700 --> 01:07:31,950 პროფესორი: როდესაც თქვენ malloc, თქვენ აღების მეხსიერების საწყისი ბევრი 1284 01:07:31,950 --> 01:07:32,830 და გამოყოფის იგი. 1285 01:07:32,830 --> 01:07:34,950 ასე რომ, თქვენ არ გაქვთ სასადილო ერთად რომელიმე ამ. 1286 01:07:34,950 --> 01:07:38,100 ასე რომ, ვფიქრობ, უფრო დიდი takeaway აქ არის რაღაც მოუწოდა ფარგლებს. 1287 01:07:38,100 --> 01:07:39,650 >> იმ თქვენ, რომლებიც იყვნენ განხილვის სხდომაზე ღამით, 1288 01:07:39,650 --> 01:07:41,080 ჩვენ მოკლედ ვისაუბრეთ ამ. 1289 01:07:41,080 --> 01:07:45,380 სფერო განსაზღვრავს, თუ როგორ და როდესაც თქვენი ცვლადები არსებობს. 1290 01:07:45,380 --> 01:07:48,050 ან ფარგლებში რა ფარგლებში ნუ თქვენი ცვლადები არსებობს. 1291 01:07:48,050 --> 01:07:51,690 >> საკმაოდ ბევრი უზენაესობის ცერის ზოგადად არის, თქვენი ცვლადები თუ თქვენ შექმნით მათ 1292 01:07:51,690 --> 01:07:56,660 შიგნით curly აფრთხილებს ისინი არსებობენ მხოლოდ ქვეყნის შიგნით იმ Curly braces. 1293 01:07:56,660 --> 01:08:00,312 >> ასე მაგალითად, ჩვენი ფუნქცია func, ხედავთ ამ ორ აფრთხილებს. 1294 01:08:00,312 --> 01:08:02,020 თუ თქვენ შექმნით არაფერი შიგნით, 1295 01:08:02,020 --> 01:08:06,500 შანსი ყველა თქვენ აკეთებთ არის შექმნის დასტის და შენახვის, რომ არსებობს. 1296 01:08:06,500 --> 01:08:07,430 იგივე რჩება. 1297 01:08:07,430 --> 01:08:09,950 ეს მხოლოდ ინახება შიგნით ძირითადი. 1298 01:08:09,950 --> 01:08:13,560 >> თქვენ ასევე მინდა, რომ იყოს ძალიან, ძალიან ფრთხილად აქ. 1299 01:08:13,560 --> 01:08:18,310 იმის გამო, რომ საზღვრები ასევე lends თავად სხვადასხვა მაგალითები. 1300 01:08:18,310 --> 01:08:25,950 ასე მაგალითად საიტზე მარყუჟის, int i = 0. 1301 01:08:25,950 --> 01:08:28,460 მე ნაკლებია, მე არ ვიცი, 10. 1302 01:08:28,460 --> 01:08:32,111 მე plus plus. 1303 01:08:32,111 --> 01:08:34,560 და თქვენ მოხვდით კოდი შიგნით, არა? 1304 01:08:34,560 --> 01:08:38,830 >> სად ცვლადი, i, რეალურად მხოლოდ არსებობს? 1305 01:08:38,830 --> 01:08:40,510 მხოლოდ შიგნით ამისთვის loop. 1306 01:08:40,510 --> 01:08:43,640 ასე რომ, მე ყოველ ბევრი თქვენგანი აქვს ალბათ შეექმნა ეს შეცდომა, როდესაც 1307 01:08:43,640 --> 01:08:45,930 თქვენ აკეთებთ პროგრამების თქვენს psets. 1308 01:08:45,930 --> 01:08:49,990 რამდენი ბიჭები არ ცდილობდა გამოეყენებინა i გარეთ ამისთვის მარყუჟის და ჰქონდა შეცდომა? 1309 01:08:49,990 --> 01:08:53,310 მომწონს unreferenced რიცხვებით ან რამე მაგდაგვარს? 1310 01:08:53,310 --> 01:08:56,069 >> მიზეზი, რის გამოც, რაც ხდება იმიტომ, რომ აქ თქვენ 1311 01:08:56,069 --> 01:08:59,109 შექმნა რაღაც, რომ მხოლოდ არსებობს განმავლობაში თქვენი for loop. 1312 01:08:59,109 --> 01:09:01,972 და თუ თქვენ ცდილობენ გამოიყენოს იგი, მე არ რეალურად არსებობს გარეთ. 1313 01:09:01,972 --> 01:09:04,930 ასე რომ, ძირითადად კომპიუტერი და თქუა, რამეთუ არ ვიცი, რა თქვენ ვსაუბრობთ. 1314 01:09:04,930 --> 01:09:08,689 ყველა ვიცი, ის არის, რომ მე აქ, მაგრამ ახლა აღარ. 1315 01:09:08,689 --> 01:09:12,580 >> ასე რომ, თუ მე უნდა შევქმნათ ამისთვის loop შიგნით, არა? 1316 01:09:12,580 --> 01:09:19,080 და მე ვაპირებ, რომ შევქმნათ ერთი, როგორც int j, და ეს გააკეთოს, რასაც. 1317 01:09:19,080 --> 01:09:23,689 და თქვენ გაქვთ კოდი შიგნით რომ მარყუჟი, j მხოლოდ არსებობს აქ. 1318 01:09:23,689 --> 01:09:26,029 მაგრამ, რომ ასევე არსებობს ფარგლებში i. 1319 01:09:26,029 --> 01:09:29,310 ასე რომ, j მხოლოდ არსებობს ამ მარყუჟის, 1320 01:09:29,310 --> 01:09:33,850 ხოლო i არსებობს მთელი რამ. 1321 01:09:33,850 --> 01:09:34,500 >> ყველას ნათელი? 1322 01:09:34,500 --> 01:09:37,416 იგივე პირობითი განცხადებები თუ გსურთ შექმნათ არაფერი. 1323 01:09:37,416 --> 01:09:40,390 იგივე ხოლო მარყუჟების, თუ გსურთ შექმნათ არაფერი. 1324 01:09:40,390 --> 01:09:42,390 ეს არის ის, რაღაც უნდა იყოს ძალიან, ძალიან ფრთხილად. 1325 01:09:42,390 --> 01:09:45,681 ასე რომ, ეს იყო ძალიან კარგი პრობლემა გრძნობდა, რომ ეს აჩვენა ორი რამ. 1326 01:09:45,681 --> 01:09:47,160 ეს ადასტურებს, პირველ რიგში, ფარგლებს. 1327 01:09:47,160 --> 01:09:49,550 და ეს აჩვენა ასევე მეხსიერების გამოყოფის. 1328 01:09:49,550 --> 01:09:54,130 იმის გამო, რომ თქვენ ბიჭები უნდა იცოდეს, რომ ფუნქციები იზრდება upwards Stack. 1329 01:09:54,130 --> 01:09:56,710 და რომ როცა რეკავთ ფუნქციები, თქვენ შექმნით 1330 01:09:56,710 --> 01:09:59,060 არსებითად ახალი დასტის მეხსიერება. 1331 01:09:59,060 --> 01:10:02,100 ეს არის ძალიან განსხვავებული რა თქვენი მაგისტრალური მეხსიერება არის. 1332 01:10:02,100 --> 01:10:03,300 ჰო. 1333 01:10:03,300 --> 01:10:03,800 Whew! 1334 01:10:03,800 --> 01:10:05,470 ყველას OK რომ? 1335 01:10:05,470 --> 01:10:06,750 ეს იყო გაუგებარია. 1336 01:10:06,750 --> 01:10:09,380 ძალიან კარგი თემა წასვლა, იმიტომ, რომ თქვენ ალბათ 1337 01:10:09,380 --> 01:10:12,255 აპირებს მიიღოს რამდენიმე სახიფათო რამ, როგორიცაა, რომ ვიქტორინა. 1338 01:10:12,255 --> 01:10:13,350 ჰო. 1339 01:10:13,350 --> 01:10:13,850 ზემოთ. 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 მე ამას თქვენ 100 ერთ ხაზი და შემდეგ 10 მეორეს. 1342 01:10:18,430 --> 01:10:21,468 ჰო, ძალიან კარგი. 1343 01:10:21,468 --> 01:10:26,350 >> OK, ახლა თქვენ ბიჭები მიიღებს შანსი იყოს TAs. 1344 01:10:26,350 --> 01:10:30,600 თქვენ უნდა უპასუხოს ყველა ლამაზი წერილებს, რომ მე ხანდახან კიდევ. 1345 01:10:30,600 --> 01:10:34,290 >> ასე რომ, ძვირფასო Andi, მე ვხედავ, მე ვფიქრობ, რომ რაღაც აპირებს ცუდი ჩემი შემდგენელი. 1346 01:10:34,290 --> 01:10:37,910 მე დარწმუნებული ვარ, რომ ჩემი კოდი არის სწორი, მაგრამ მე მომდის სეგმენტაცია ბრალია 1347 01:10:37,910 --> 01:10:39,074 ყოველ ჯერზე მე აწარმოებს. 1348 01:10:39,074 --> 01:10:39,740 რა ხდება? 1349 01:10:39,740 --> 01:10:42,844 გთხოვთ დავეხმაროთ, უამრავი სიყვარული. 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> თუ თქვენ ბიჭები რაღაც რომ როგორ უპასუხებთ? 1352 01:10:49,410 --> 01:10:51,860 ეს არის ძალიან გავრცელებული კითხვები, ჩვენ ვთხოვთ თქვენ. 1353 01:10:51,860 --> 01:10:54,090 იმ შემთხვევაში, თუ, ჩვენ მოგცემთ სცენარი, ჩვენ მოგვცეს 1354 01:10:54,090 --> 01:10:56,350 თქვენი საუკეთესო ვხვდები, რა ხდება. 1355 01:10:56,350 --> 01:11:00,710 ვინმეს აქვს stab რა ხდება? 1356 01:11:00,710 --> 01:11:02,654 ჰო? 1357 01:11:02,654 --> 01:11:06,056 >> აუდიტორია: იქნებ dereferenced null, რაღაც მაჩვენებელი 1358 01:11:06,056 --> 01:11:08,924 მიუთითებს რაღაც null. 1359 01:11:08,924 --> 01:11:11,590 პროფესორი: ჰო, მინდა იყოს მაგალითად, როდესაც რომ მოხდებოდა. 1360 01:11:11,590 --> 01:11:14,467 მაგრამ რა არის უფრო დიდი სურათი რა ხდება აქ? 1361 01:11:14,467 --> 01:11:17,050 აუდიტორია: ეს თქვენ ცდილობთ წვდომის მეხსიერება, რომ თქვენ არ 1362 01:11:17,050 --> 01:11:18,175 უნდა ჰქონდეს შეხება? 1363 01:11:18,175 --> 01:11:19,200 პროფესორი: ზუსტად. 1364 01:11:19,200 --> 01:11:24,800 ასე რომ, ვფიქრობ seg ბრალია, off საზღვრები, შეზღუდული არეალი მეხსიერება 1365 01:11:24,800 --> 01:11:27,780 რომ თქვენ არ უნდა ეხება. 1366 01:11:27,780 --> 01:11:31,670 >> ასე რომ, საკმაოდ ბევრი, როდესაც თქვენ ცდილობთ რომ index--, როგორიც მაგალითად, 1367 01:11:31,670 --> 01:11:34,110 თქვენ გამოცხადდა მასივი ნულიდან ცხრა. 1368 01:11:34,110 --> 01:11:37,360 მაგრამ თქვენ ცდილობენ შეეხოთ, რომ მე -10 ღირებულება, თქვენ არ გაქვთ დაშვება, რომ. 1369 01:11:37,360 --> 01:11:38,694 იმიტომ, რომ თქვენ არ გამოაცხადა. 1370 01:11:38,694 --> 01:11:40,943 ასე რომ, თქვენი კომპიუტერი აპირებს შევხედოთ, რომ იყოს, 1371 01:11:40,943 --> 01:11:43,440 uh oh, თქვენ ცდილობთ წასვლა გარეთ ფარგლებში ინდექსი. 1372 01:11:43,440 --> 01:11:45,270 მე ვაპირებ, რომ გადმოგცეთ სეგმენტაცია ბრალი. 1373 01:11:45,270 --> 01:11:46,590 >> ვფიქრობ, როგორც სეგმენტი, არა? 1374 01:11:46,590 --> 01:11:49,665 დამატებითი სეგმენტი, ბრალი როდესაც თქვენ ცდილობენ დაარღვიოს რაღაც 1375 01:11:49,665 --> 01:11:50,790 და თქვენ არ უნდა იყოს იქ. 1376 01:11:50,790 --> 01:11:53,660 სეგმენტაცია ბრალია ნებისმიერ დროს თქვენ ცდილობენ შეეხოთ რამ 1377 01:11:53,660 --> 01:11:54,970 რომ თქვენ არ უნდა ეხება. 1378 01:11:54,970 --> 01:11:56,815 >> ასე რომ საერთო მაგალითები ინდექსი. 1379 01:11:56,815 --> 01:11:58,940 რა თქმა უნდა, თუ თქვენ ცდილობთ შეეხოთ, რომ არ იყო null, 1380 01:11:58,940 --> 01:12:00,220 რომ ასევე მუშაობა ისევე. 1381 01:12:00,220 --> 01:12:02,300 თუ თქვენი მაჩვენებელი კი ცდილობს შეეხოთ რამ, რაც არ უნდა შეეხოთ, 1382 01:12:02,300 --> 01:12:03,730 რომ შესაძლოა მუშაობა ისევე. 1383 01:12:03,730 --> 01:12:07,120 ყველაზე, როგორც წესი, თქვენ ვხედავ ამ მასივი. 1384 01:12:07,120 --> 01:12:07,740 ყველას კარგი? 1385 01:12:07,740 --> 01:12:10,374 >> აუდიტორია: ასე რომ, თუ გსურთ წვდომის 10 წერტილი 1386 01:12:10,374 --> 01:12:12,290 და არსებობს მხოლოდ ლიმიტი ცხრა ან რამე. 1387 01:12:12,290 --> 01:12:13,160 >> პროფესორი: ჰო, ზუსტად. 1388 01:12:13,160 --> 01:12:13,660 საკმაოდ ბევრი. 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 ზემოთ. 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> ძვირფასო Andi. 1393 01:12:19,920 --> 01:12:23,440 ამიტომ, ჩვენ მივიღეთ ამ მშვენიერი რამ მოუწოდა ჯიშები. 1394 01:12:23,440 --> 01:12:25,472 თუ შერწყმა დალაგების, როგორც ჩვენ დაინახა, მაგალითად, როდესაც 1395 01:12:25,472 --> 01:12:27,180 დავით გააკეთა მთელი რამ კლასის რატომ, 1396 01:12:27,180 --> 01:12:29,760 თუ ეს ასე ბევრად უფრო სწრაფად, ვიდრე ნებისმიერი სხვა სახის, 1397 01:12:29,760 --> 01:12:33,310 რატომ გადაიტვირთოთ იცის ნებისმიერი სხვა სახის? 1398 01:12:33,310 --> 01:12:35,100 >> რა არის ეს საკითხი ნამდვილად თქვენ გეკითხებით? 1399 01:12:35,100 --> 01:12:36,659 რა არის სამი word-- 1400 01:12:36,659 --> 01:12:37,950 აუდიტორია: რა არის ვაჭრობის საგანი? 1401 01:12:37,950 --> 01:12:38,530 პროფესორი: ზუსტად. 1402 01:12:38,530 --> 01:12:39,946 აი, რა კითხვა ითხოვს. 1403 01:12:39,946 --> 01:12:43,682 რა არის შორის ვაჭრობის შერწყმა დალაგების ლექსები ნებისმიერი სხვა სახის? 1404 01:12:43,682 --> 01:12:45,850 >> აუდიტორია: იღებს მეხსიერება, არა? 1405 01:12:45,850 --> 01:12:47,720 >> პროფესორი: თქვენ განმარტავენ, რომ ცოტა მეტი? 1406 01:12:47,720 --> 01:12:49,490 პირველი მოდით აგიხსნით Merge მაღაზია. 1407 01:12:49,490 --> 01:12:50,970 როგორ ამჯამად შერწყმა დალაგების მუშაობს? 1408 01:12:50,970 --> 01:12:55,220 >> აუდიტორია: ასე, რომ ეს სამუშაოები გამყოფი ყველაფერი ნახევარი 1409 01:12:55,220 --> 01:13:00,660 და შემდეგ აყენებს ერთად და reallocating ეს იმისათვის, 1410 01:13:00,660 --> 01:13:02,862 როგორც ყველა დროის შერწყმა კომპლექტი. 1411 01:13:02,862 --> 01:13:03,820 პროფესორი: საკმაოდ ბევრი. 1412 01:13:03,820 --> 01:13:06,861 ასე რომ, შემიძლია შევაჩერო ეს, მაგრამ ეს იქნებოდა მიიღოს ჩემთვის ხუთ წუთში დავხატოთ ის. 1413 01:13:06,861 --> 01:13:10,220 ვიხსენებთ იმ მონაკვეთზე სლაიდები სადაც ჩვენ დაფარული შერწყმა დალაგების. 1414 01:13:10,220 --> 01:13:10,790 ზუსტად. 1415 01:13:10,790 --> 01:13:13,406 >> ასე რომ გზა შერწყმა დალაგების სამუშაოები არის ეს ყოფს რამ ნახევარი, 1416 01:13:13,406 --> 01:13:15,780 და მერე უბრალოდ უყურებს პირველი ღირებულებებს ყველა მათგანი 1417 01:13:15,780 --> 01:13:17,000 და სახის მხოლოდ. 1418 01:13:17,000 --> 01:13:20,364 მუდმივად ქმნის ახალ კოლექტორები და აყენებს რამ უფრო და უფრო მეტი მიზნით. 1419 01:13:20,364 --> 01:13:23,030 ასე რომ, მიუხედავად იმისა, რომ მართლაც, მართლაც სწრაფად, რადგან it's-- თქვენ იცით, 1420 01:13:23,030 --> 01:13:25,380 ორობითი ძებნა არის N შესვლა n. 1421 01:13:25,380 --> 01:13:27,880 თქვენ შექმნით ამდენი სხვადასხვა მასივები, რომ თქვენ 1422 01:13:27,880 --> 01:13:29,700 გამოყენებით დიდი ოდენობით მეხსიერება. 1423 01:13:29,700 --> 01:13:33,080 ასე რომ, მიუხედავად იმისა, რომ სწრაფად, ვაჭრობის აქ არის ის, რომ თქვენ იყენებთ მეტი მეხსიერება. 1424 01:13:33,080 --> 01:13:38,490 >> ასე რომ, მინიშნება, სახის და ძიება იყო დაფარული ბევრი ამ წელიწადში 1425 01:13:38,490 --> 01:13:41,610 ვიდრე ისინი უკვე წლის წინა. 1426 01:13:41,610 --> 01:13:45,100 თქვენ ბიჭები უნდა დაინახოს, რომ აისახება შესაბამისად ვიქტორინა. 1427 01:13:45,100 --> 01:13:49,160 მე ნამდვილად დროის გასატარებლად აპირებს მეტი რა ყველა სხვადასხვა სახის 1428 01:13:49,160 --> 01:13:52,320 არის, თუ როგორ ორობითი ძებნა, როგორ ხაზოვანი ძებნა მუშაობა. 1429 01:13:52,320 --> 01:13:54,750 როგორ ალბათ pseudocode კოდექსის იმ გარეთ. 1430 01:13:54,750 --> 01:13:55,950 რა არის გაშვებული ჯერ? 1431 01:13:55,950 --> 01:13:59,210 რაღაც გაშვებული ჯერ ძალიან ადვილად დააკოპირეთ ქვემოთ გადატანა შენიშვნა ფურცელი, 1432 01:13:59,210 --> 01:13:59,710 არა? 1433 01:13:59,710 --> 01:14:01,420 >> ეს მართლაც რთულია, როდესაც თქვენ შუა ტესტი 1434 01:14:01,420 --> 01:14:02,390 და თქვენ უნდა გაერკვნენ, რომ. 1435 01:14:02,390 --> 01:14:03,160 ასლი მას. 1436 01:14:03,160 --> 01:14:05,550 მე გაძლევთ გარანტიას, რომ თქვენ აპირებთ უნდა იცოდეს, რომ. 1437 01:14:05,550 --> 01:14:06,860 რა არის ვაჭრობის ღ? 1438 01:14:06,860 --> 01:14:10,064 უარეს შემთხვევაში, საუკეთესო შემთხვევაში სცენარი ყველა მათგანი, ძალიან გაეცნონ. 1439 01:14:10,064 --> 01:14:10,564 ჰო? 1440 01:14:10,564 --> 01:14:12,730 >> აუდიტორია: გვჭირდება იცით, თუ როგორ უნდა კოდს შერწყმა დალაგება? 1441 01:14:12,730 --> 01:14:15,470 ისევე, როგორც ჩვენ უნდა მახსოვს რეკურსიული? 1442 01:14:15,470 --> 01:14:18,950 >> პროფესორი: მე დიდად მეეჭვება, უბრალოდ იმიტომ, რომ ეს იგივეა, საკმაოდ რთული. 1443 01:14:18,950 --> 01:14:22,282 მაგრამ ეს არ შეიძლება იყოს მიზანშეუწონელია, თუ ჩვენ გთხოვთ, გამოიყენოთ pseudocode ის. 1444 01:14:22,282 --> 01:14:22,781 ჰო. 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> Yep, OK, კიდევ ერთი. 1447 01:14:29,170 --> 01:14:31,387 ეს შეიძლება არ ამუშავება ბოლო ნაჭერი ცოტა. 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 ჰო? 1450 01:14:43,090 --> 01:14:44,930 ხომ ყველას გვესმის, რომ? 1451 01:14:44,930 --> 01:14:48,360 >> OK, ასე რომ საკმაოდ ბევრი პირველი ყველა, რა ტიპის პროგრამა 1452 01:14:48,360 --> 01:14:51,000 იქნება გაწვდით გამომავალი როგორც ეს? 1453 01:14:51,000 --> 01:14:54,350 დამახსოვრება ვკითხეთ, თქვენ გაეცნობიან ამ ახალი ტიპის გამართვის ინსტრუმენტი? 1454 01:14:54,350 --> 01:14:57,340 რა იყო ეს სახელწოდება? 1455 01:14:57,340 --> 01:14:59,460 Valgrind, მარჯვენა 1456 01:14:59,460 --> 01:15:02,600 >> ეს იყო პროგრამა, რომელშიც თქვენ შეიძლება მოუწოდოს, რომელიც შეიძლება 1457 01:15:02,600 --> 01:15:05,940 შენარჩუნება სიმღერა ყველა ხსოვნას თქვენ გამოყენებით თქვენი პროგრამა და ხდებოდა. 1458 01:15:05,940 --> 01:15:11,090 ასე რომ, თუ თქვენ მოხვდით რაღაც, როგორიცაა, ნამდვილად წააგო, 40 bytes ერთ ბლოკში. 1459 01:15:11,090 --> 01:15:14,870 ალბათ თქვენ არ დამახსოვრების გასათავისუფლებლად იგი. 1460 01:15:14,870 --> 01:15:18,710 იმის გამო, რომ, თუ თქვენ იყენებთ ბაიტი მეხსიერების, ეს ნიშნავს, რომ თქვენ გამოიყენოთ, რომ მეხსიერება, 1461 01:15:18,710 --> 01:15:20,240 მაგრამ თქვენ არ შეუძლია გასათავისუფლებლად. 1462 01:15:20,240 --> 01:15:21,948 ასე რომ, თუ გინდათ დარწმუნებული ვარ, რომ თქვენ ასევე 1463 01:15:21,948 --> 01:15:31,420 გამოყენებით free--, რომ არის ფუნქცია გასათავისუფლებლად ყველა 1464 01:15:31,420 --> 01:15:34,930 მეხსიერების გადატანა მიერ malloc. 1465 01:15:34,930 --> 01:15:35,500 >> ზემოთ. 1466 01:15:35,500 --> 01:15:37,140 ასე რომ, ეს slide, მე ეს. 1467 01:15:37,140 --> 01:15:41,050 ეს ყველგან ბევრი ლექციები, ბევრი მონაკვეთზე სლაიდები. 1468 01:15:41,050 --> 01:15:44,254 ნამდვილად გსურთ დარწმუნდით თქვენ იცით, ეს ყველაფერი. 1469 01:15:44,254 --> 01:15:47,170 ან თქვენი შენიშვნა ფურცელი ან თუ გსურთ გვემახსოვრება, მოგერიდებათ. 1470 01:15:47,170 --> 01:15:48,836 ეს არის ის, მართლაც, მართლაც, მართლაც მნიშვნელოვანია. 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> ასევე ძალიან კარგი კითხვაზე, რომ ჩვენ შეუძლია სთხოვოს. 1473 01:15:56,890 --> 01:16:00,320 რატომ არის შერჩევის დალაგების შევხედოთ შერჩევის დალაგების ყველა runtimes 1474 01:16:00,320 --> 01:16:02,060 არიან n კვადრატში. 1475 01:16:02,060 --> 01:16:06,714 მიუხედავად იმისა, თუ სიაში საქმე თქვენ, როგორც, რატომ არის შერჩევის დალაგების 1476 01:16:06,714 --> 01:16:08,630 მე მივცემ თქვენ ბიჭები 30 მეორე ვიფიქროთ ამ. 1477 01:16:08,630 --> 01:16:10,700 იმის გამო, რომ ეს სახის გაუგებარია. 1478 01:16:10,700 --> 01:16:12,710 იგი მოიცავს კონცეპტუალური აზროვნების. 1479 01:16:12,710 --> 01:16:16,470 რატომ პერსპექტივაში ჯერ იყოს იგივე ორივე უარესი და საუკეთესო შემთხვევაში სცენარი? 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> ჰო? 1482 01:16:30,000 --> 01:16:38,084 >> აუდიტორია: იმიტომ, შერჩევა დალაგების თითოეულ თანამდებობა ან სივრცეში ამ პატარა მასივი 1483 01:16:38,084 --> 01:16:40,350 რამ ან რასაც. 1484 01:16:40,350 --> 01:16:44,430 ასე რომ, კი საუკეთესო შემთხვევაში, მაშინაც კი, თუ ის კარგად გადანაწილებული, 1485 01:16:44,430 --> 01:16:47,380 ეს მაინც უნდა იყოს, OK, ერთი. 1486 01:16:47,380 --> 01:16:49,000 ჩემი პირველი ადგილი მაქვს ერთი. 1487 01:16:49,000 --> 01:16:50,250 და გაიაროს ყველა მათგანი. 1488 01:16:50,250 --> 01:16:51,249 OK, ერთ-ერთი ყველაზე პატარა. 1489 01:16:51,249 --> 01:16:53,053 და მაშინ იგი მიდის ისევ და როგორც, OK, ორი 1490 01:16:53,053 --> 01:16:54,594 არის პატარა ყველა რამ. 1491 01:16:54,594 --> 01:16:56,804 მაგრამ ეს ჯერ კიდევ აქვს შეამოწმეთ თითოეული. 1492 01:16:56,804 --> 01:16:57,470 პროფესორი: ჰო. 1493 01:16:57,470 --> 01:17:00,490 ასე მაგალითად, მოდით უბრალოდ, ვამბობთ ჩვენ სიაში, უკვე დახარისხებული, 1494 01:17:00,490 --> 01:17:03,390 მასივი ერთი ხუთ. 1495 01:17:03,390 --> 01:17:07,100 ისე, რომ შერჩევა სახის ის არის, რომ იგი გადის, ის ამოწმებს ამ ორი. 1496 01:17:07,100 --> 01:17:08,234 მაშინ იგი ამოწმებს იმ ორი. 1497 01:17:08,234 --> 01:17:09,650 და მაშინ ის ამოწმებს, და ის ამოწმებს. 1498 01:17:09,650 --> 01:17:13,285 იგი ინარჩუნებს შემოწმების ყველა მათგანი, მიუხედავად იმისა, თუ არა 1499 01:17:13,285 --> 01:17:14,160 ეს რეალურად გადანაწილებული. 1500 01:17:14,160 --> 01:17:16,450 იმის გამო, რომ, უბრალოდ, გზა ერთგვარი მუშაობს. 1501 01:17:16,450 --> 01:17:19,530 >> ასე რომ, ამ კითხვაზე არის სახის მოსწონს კონცეპტუალური საკითხი ჩვენ ვთხოვთ. 1502 01:17:19,530 --> 01:17:21,430 სად პირველი, თქვენ უნდა იცით, რა შერჩევა დალაგების 1503 01:17:21,430 --> 01:17:23,304 არის, უფლება, შეძლებს კითხვაზე პასუხის გაცემა. 1504 01:17:23,304 --> 01:17:26,200 თქვენ უნდა შეეძლოს იმის გაგება, კონცეპტუალურად, რა ხდება. 1505 01:17:26,200 --> 01:17:30,760 და მაშინ შეუძლია მას და ვფიქრობ, OK მოდით უბრალოდ წარმოიდგინეთ, უარეს შემთხვევაში სცენარი. 1506 01:17:30,760 --> 01:17:32,230 ისინი ყველა კლებადობით. 1507 01:17:32,230 --> 01:17:33,290 როგორ იქნებოდა, რომ იმოქმედებს ეს? 1508 01:17:33,290 --> 01:17:34,650 >> რა მოხდება, თუ ის აღმავალი შეკვეთა? 1509 01:17:34,650 --> 01:17:35,640 თუ ეს უკვე გადანაწილებული? 1510 01:17:35,640 --> 01:17:37,240 როგორ, რომელიც გავლენას ახდენს runtimes? 1511 01:17:37,240 --> 01:17:40,270 და მაშინ შერჩევა დალაგების, თქვენ შეამჩნევთ ის, რომ ფაქტობრივად არ აქვს. 1512 01:17:40,270 --> 01:17:43,500 იმის გამო, რომ თქვენ შემოწმება ყველა ღირებულებები, მიუხედავად იმისა, თუ რა ხდება. 1513 01:17:43,500 --> 01:17:45,810 >> ასე რომ, კარგი რამ უნდა გვახსოვდეს. 1514 01:17:45,810 --> 01:17:50,290 რატომ ზოგიერთი სახის განსხვავდება სხვები და როგორ და უარეს შემთხვევაში სცენარი 1515 01:17:50,290 --> 01:17:52,740 იმოქმედებდა ყველა მათგანი. 1516 01:17:52,740 --> 01:17:56,700 >> მე ვაპირებ ნამდვილად მოხვდა სახის იმიტომ, რომ ეს იქნება ვიქტორინა. 1517 01:17:56,700 --> 01:17:57,199 ჰო. 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 OK. 1520 01:18:01,320 --> 01:18:05,590 იქ ექვსი წუთი დარჩა. 1521 01:18:05,590 --> 01:18:09,880 მე შეუძლია მიიღოს სამი წუთის შეკითხვებს. 1522 01:18:09,880 --> 01:18:12,290 მე ასევე შეგიძლიათ გათიშეთ გარშემო მოსწონს 20-ე წუთზე განყოფილებაში 1523 01:18:12,290 --> 01:18:13,850 თუ გვინდა, რომ კითხვის დასმის ისევე. 1524 01:18:13,850 --> 01:18:16,330 ვინმეს უბრალოდ ნამდვილად მოკლე კითხვები და კონცეპტუალური საკითხები 1525 01:18:16,330 --> 01:18:17,360 ისინი იმის შესახებ, ახლა? 1526 01:18:17,360 --> 01:18:17,832 ჰო? 1527 01:18:17,832 --> 01:18:19,720 >> აუდიტორია: შეგიძლიათ გაიგო ცოტა ცოტა შესახებ bitwise ოპერატორები? 1528 01:18:19,720 --> 01:18:20,280 >> პროფესორი: ჰო. 1529 01:18:20,280 --> 01:18:22,446 ასე რომ, bitwise ოპერატორები არიან ის, რომ თქვენ ალბათ 1530 01:18:22,446 --> 01:18:24,170 შეიძლება უბრალოდ უნდა დააყენოს თქვენი ფურცელი. 1531 01:18:24,170 --> 01:18:27,540 ასე რომ, quickly-- მე არ მინდა, წასვლა ძალიან ბევრი სიღრმე 1532 01:18:27,540 --> 01:18:31,164 იმიტომ, რომ ჰარვარდის, მათი მიმოხილვა სხდომაზე, დაფარული ეს კარგად. 1533 01:18:31,164 --> 01:18:33,080 Bitwise ოპერატორი, არსებობს ხუთი მათგანი, არა? 1534 01:18:33,080 --> 01:18:41,370 >> არსებობს ამ, რომელიც x ან ფუნქცია, იქ ampersand, რომელიც არის და. 1535 01:18:41,370 --> 01:18:44,050 მილები, რომელიც არის ან. 1536 01:18:44,050 --> 01:18:46,790 და მაშინ თქვენ გაქვთ ორი სხვადასხვა სახის ცვლილებები. 1537 01:18:46,790 --> 01:18:50,610 >> თუ მე გაძლევთ ორი ღირებულებები, თუ მე გაძლევთ, ისევე, როგორც ერთი და. 1538 01:18:50,610 --> 01:18:52,390 რა, რომ შეაფასოს? 1539 01:18:52,390 --> 01:18:55,490 თუ მე გაძლევთ ჭეშმარიტი და ნამდვილი, ჭეშმარიტი? 1540 01:18:55,490 --> 01:18:56,930 რაც შეეხება ჭეშმარიტი ან მცდარი? 1541 01:18:56,930 --> 01:18:57,830 და მაინც ასეა, არა? 1542 01:18:57,830 --> 01:18:59,762 იმიტომ, რომ იქ არის ან. 1543 01:18:59,762 --> 01:19:01,220 ჩვენ სავარაუდოდ მოგცემთ ნომრები. 1544 01:19:01,220 --> 01:19:03,780 ასე მახსოვს, ერთი უდრის მართალია, ნულოვანი ტოლია ყალბი. 1545 01:19:03,780 --> 01:19:07,407 და ჩვენ, შესაძლოა, თქვენ ეს ყველაფერი და გთხოვოთ, რომ გვითხრათ, რა მოხდება. 1546 01:19:07,407 --> 01:19:10,240 ჰარვარდის მოიცავს ეს პირველი 10-ე წუთზე მათი შესწავლის 1547 01:19:10,240 --> 01:19:11,230 ნამდვილად, ნამდვილად კარგად. 1548 01:19:11,230 --> 01:19:14,260 ასე რომ ბიჭებს სურთ, რათა დარწმუნებული ვარ, თქვენ ვიხსენებთ, რომ. 1549 01:19:14,260 --> 01:19:16,387 >> აუდიტორია: pisa5 იქნება ვიქტორინა? 1550 01:19:16,387 --> 01:19:16,970 პროფესორი: No. 1551 01:19:16,970 --> 01:19:18,240 ნუ კი შევხედოთ pisa5 ახლავე. 1552 01:19:18,240 --> 01:19:18,810 ძნელია. 1553 01:19:18,810 --> 01:19:22,830 უბრალოდ კი არ გადაიტვირთოთ ეძებს pisa5. 1554 01:19:22,830 --> 01:19:25,665 >> თუმცა, როგორც გარკვეული მინიშნებები და წინადადებები, მე 1555 01:19:25,665 --> 01:19:28,320 იქნებოდა გთავაზობთ იწყება pisa5 როგორც კი ვიქტორინა დასრულდა. 1556 01:19:28,320 --> 01:19:30,319 ეს იქნება ყველაზე მძიმე კვირას, მაგრამ მაშინ ბიჭები 1557 01:19:30,319 --> 01:19:34,590 იქნება გავიდა მას მთებში მოძრავი მწვანე და puppies, 1558 01:19:34,590 --> 01:19:36,115 და ეს ჯარიმა. 1559 01:19:36,115 --> 01:19:39,810 >> ეს კლასი იღებს მნიშვნელოვანი უფრო ადვილია შემდეგ მეხუთე pset. 1560 01:19:39,810 --> 01:19:41,560 აუდიტორია: საათები არის კვირას, ორშაბათს? 1561 01:19:41,560 --> 01:19:44,260 პროფესორი: ჰო, სამუშაო საათებში იქნება კვირა ორშაბათი, რომ pset. 1562 01:19:44,260 --> 01:19:47,009 სამუშაო საათები დღეს არსებითად იქნება მხოლოდ მიმოხილვა ინტელექტუალური. 1563 01:19:47,009 --> 01:19:50,350 თუ ვინმეს სურს, რომ მოვიდეს და ვთხოვ TAs კითხვა, ჩვენ ვიქნებით იქ. 1564 01:19:50,350 --> 01:19:53,220 >> მე მიიღოს შესაძლოა კიდევ ერთი კითხვა თუ ვინმეს აქვს კითხვაზე? 1565 01:19:53,220 --> 01:19:53,809 ჰო? 1566 01:19:53,809 --> 01:19:55,850 აუდიტორია: როდესაც თქვენ განსაზღვრის კვანძების, [INAUDIBLE] 1567 01:19:55,850 --> 01:20:00,700 თუ ამბობენ, რომ კვანძის ვარსკვლავი და შემდეგ მომავალი, არ კომპიუტერული ავტომატურად 1568 01:20:00,700 --> 01:20:03,610 მესმის, რომ თქვენ გულისხმობდა ერთი მაჩვენებელი? 1569 01:20:03,610 --> 01:20:04,580 >> პროფესორი: No. 1570 01:20:04,580 --> 01:20:06,710 >> აუდიტორია: თქვენ უნდა relink ის [INAUDIBLE]? 1571 01:20:06,710 --> 01:20:09,270 >> პროფესორი: ასე რომ, ძირითადად struct კვანძის არის, გახსოვდეთ, 1572 01:20:09,270 --> 01:20:12,620 ეს, როგორც თქვენ შექმნას კვანძის და მაშინ თქვენ გაქვთ მაჩვენებელი მოუწოდა შემდეგი. 1573 01:20:12,620 --> 01:20:14,630 ყველა თქვენ აკეთებთ არის, რომ სტრუქტურა არსებობს. 1574 01:20:14,630 --> 01:20:16,387 თქვენ უნდა მივანიჭოთ რომ მაჩვენებელი სადღაც. 1575 01:20:16,387 --> 01:20:18,470 ასე რომ, კომპიუტერი არ ვიცი, რასაც ის აკეთებს არის. 1576 01:20:18,470 --> 01:20:20,250 თქვენ უნდა რეალურად მივანიჭოთ მას, როდესაც თქვენ შექმნით თქვენი უკავშირდება სიაში. 1577 01:20:20,250 --> 01:20:22,170 და რომ ის, რაც, ძირითადად, 5 pset იქნება. 1578 01:20:22,170 --> 01:20:24,106 ასე რომ, არ აწუხებს ნებისმიერ, რომ ახლა. 1579 01:20:24,106 --> 01:20:26,380 >> აუდიტორია: ასე რომ, ჩვენ არ უნდა ფოკუსირება ძალიან ბევრი ბმული სია, ისევე, 1580 01:20:26,380 --> 01:20:27,440 ზოგადი კონცეფცია? 1581 01:20:27,440 --> 01:20:30,980 >> პროფესორი: Just საკმაოდ ბევრი stacks, რიგები, ბმული სიები, ხეები, hash მაგიდები. 1582 01:20:30,980 --> 01:20:33,639 უბრალოდ შეძლებს ვიცი რასაც ისინი. 1583 01:20:33,639 --> 01:20:35,680 ჩვენ არ ვაპირებთ, ვთხოვოთ გნებავთ რამე კონკრეტული 1584 01:20:35,680 --> 01:20:39,300 იმიტომ, რომ ჩვენ ნამდვილად არ კეთდება pset, რომ მოიცავს, რომ არც ერთი არ არის. 1585 01:20:39,300 --> 01:20:45,540 >> ასე რომ, ბოლო ორი წუთით ადრე მე გაგათავისუფლებთ მოკვლა ამ ვიქტორინაში. 1586 01:20:45,540 --> 01:20:49,370 საკმაოდ ბევრი, როგორც, ვიფიქროთ, თუ როგორ შორს თქვენ ბიჭები არ მოდის ამ კლასში. 1587 01:20:49,370 --> 01:20:52,820 >> მახსოვს, როდესაც კვირაში ორი ამ კლასის, ზოგიერთ თქვენგანს 1588 01:20:52,820 --> 01:20:55,720 ატარებენ სამი საათის განმავლობაში წერილობით წყალი. 1589 01:20:55,720 --> 01:20:57,970 რამდენ ხანს უნდა მიიღოს თუ არა ბიჭები წერენ წყალი ახლა? 1590 01:20:57,970 --> 01:20:59,670 30 წამში, იქნებ? 1591 01:20:59,670 --> 01:21:01,810 ვიფიქროთ რამდენად თქვენ ბიჭები არ შეიტყო. 1592 01:21:01,810 --> 01:21:04,320 CS არის ნამდვილად, ნამდვილად მძიმე თემაზე. 1593 01:21:04,320 --> 01:21:06,190 არ არსებობს ეჭვი, რომ. 1594 01:21:06,190 --> 01:21:09,160 ძნელი, ამიტომ არავინ სწავლობს მას. 1595 01:21:09,160 --> 01:21:10,730 ეს უბრალოდ რთულია. 1596 01:21:10,730 --> 01:21:11,650 და ეს სრულიად ჯარიმა. 1597 01:21:11,650 --> 01:21:14,150 >> და მე ნამდვილად ვამაყობ, რომ ყველას აქვს გახადა ამ შორს. 1598 01:21:14,150 --> 01:21:16,380 Psets არ არის ადვილი. 1599 01:21:16,380 --> 01:21:17,790 ისინი ბევრი დრო. 1600 01:21:17,790 --> 01:21:22,580 თქვენ ბიჭები, მე არასდროს მოგთხოვთ დაწერა თამაში 15 ან Vigenere წლის pset. 1601 01:21:22,580 --> 01:21:24,160 არ არის საჭირო, უბრალოდ freak out შესახებ. 1602 01:21:24,160 --> 01:21:28,080 ყველა ჩვენ ტესტირების აქ შევაფასოთ თქვენი კონცეპტუალური ცოდნა, ასევე 1603 01:21:28,080 --> 01:21:31,524 როგორც ზოგიერთი თქვენი ძირითადი უნარების კოდირების. 1604 01:21:31,524 --> 01:21:33,440 ტესტი მიზნად ისახავს იყოს მართლაც რთული. 1605 01:21:33,440 --> 01:21:36,180 მსგავსად, იგი შექმნილია თქვენ არ მიიღოთ 100. 1606 01:21:36,180 --> 01:21:39,880 იგი ასევე განკუთვნილია თქვენ ალბათ ვერ შეძლებს დასრულდება 75-ე წუთზე. 1607 01:21:39,880 --> 01:21:41,995 და ეს სრულიად ჯარიმა. 1608 01:21:41,995 --> 01:21:42,870 მე ვარ სტუდენტი თავს. 1609 01:21:42,870 --> 01:21:45,960 მე ვიცი, მე სიძულვილი როცა მე ფეხით გარეთ ვიქტორინა იყოს, shit. 1610 01:21:45,960 --> 01:21:47,044 ეს იყო ნამდვილად მძიმე. 1611 01:21:47,044 --> 01:21:49,460 ალბათ, თუ რა ხდება მოხდეს და რომ მთლიანად ჯარიმა, 1612 01:21:49,460 --> 01:21:50,751 მე გეუბნებით თქვენ ბიჭები ახლა. 1613 01:21:50,751 --> 01:21:53,190 საშუალებით ეს ყველაფერი არ არის მაღალი ყველა. 1614 01:21:53,190 --> 01:21:55,360 >> და იმ თქვენ, რომლებიც უკვე მიღების, ისევე, 1615 01:21:55,360 --> 01:21:57,870 სამად თქვენი პრობლემა კომპლექტი, ეს არ ნიშნავს იმას, რომ თქვენ 1616 01:21:57,870 --> 01:21:59,536 ვაპირებთ კიდევ 60 პროცენტი ამ კლასში. 1617 01:21:59,536 --> 01:22:01,440 თუ თქვენ გაქვთ 60% -ით ვიქტორინა, რომ არ 1618 01:22:01,440 --> 01:22:03,330 ნიშნავს, თქვენ აპირებს მიიღოთ D ამ კლასში. 1619 01:22:03,330 --> 01:22:05,740 ჩვენ ვხედავთ, განსაკუთრებით მე, იმ თქვენ, ჩემს განყოფილებაში, 1620 01:22:05,740 --> 01:22:07,406 მე ვხედავ, თუ რამდენად მძიმე ბიჭები არიან ყველა მუშაობს. 1621 01:22:07,406 --> 01:22:09,190 და მე შენარჩუნება სიმღერა რომ. 1622 01:22:09,190 --> 01:22:11,420 >> თქვენ ბიჭები კარგად იქნება. 1623 01:22:11,420 --> 01:22:14,580 არ არსებობს ინსტიტუციური მეხსიერება ბედნიერება ბოლოს სემესტრში. 1624 01:22:14,580 --> 01:22:16,840 იმის გამო, რომ ყველა ჰარვარდის ბავშვები ვეუბნებით მათი მეგობრები, oh, თქვენ უნდა იყოს ჯარიმა. 1625 01:22:16,840 --> 01:22:18,381 არავინ ეუბნება ბიჭებს, რომ აქ. 1626 01:22:18,381 --> 01:22:20,950 ასე რომ, უნდა გითხრათ, ბიჭები, რომ აქ. 1627 01:22:20,950 --> 01:22:22,280 >> თქვენ ბიჭები კარგად იქნება. 1628 01:22:22,280 --> 01:22:24,080 მე ასე ამაყობს ყველა თქვენ ბიჭები. 1629 01:22:24,080 --> 01:22:25,680 ტესტი რთული იქნება. 1630 01:22:25,680 --> 01:22:28,140 სწავლა, და ამის შემდეგ მხოლოდ გადაყარეთ ის დაშორებით. 1631 01:22:28,140 --> 01:22:31,280 მიიღეთ მზად უნდა ვისწავლოთ ახალი რამ. 1632 01:22:31,280 --> 01:22:33,990 და ჭამა Candy. 1633 01:22:33,990 --> 01:22:35,940 ჩვენ გვაქვს უამრავი candy. 1634 01:22:35,940 --> 01:22:37,760 >> მიიღეთ კარგი ღამის ძილის. 1635 01:22:37,760 --> 01:22:40,420 ნუ არ მძინავს, რადგან რომ მინდა იყოს ძალიან ცუდია. 1636 01:22:40,420 --> 01:22:41,490 CS ბევრი ლოგიკა. 1637 01:22:41,490 --> 01:22:44,960 თუ არ სძინავთ, თქვენ ვერ იფუნქციონირებს, და თქვენი ტვინის ვერ იფუნქციონირებს. 1638 01:22:44,960 --> 01:22:48,780 და მე ვიქნები აქ მომდევნო 20 -ე წუთზე, თუ ვინმეს სურს, რომ გათიშეთ გარშემო. 1639 01:22:48,780 --> 01:22:51,150 თქვენ ბიჭები ვაპირებთ, რათა მოკლას იგი. 1640 01:22:51,150 --> 01:22:53,000 წარმატებებს გისურვებთ. 1641 01:22:53,000 --> 01:22:55,663