1 00:00:00,000 --> 00:00:02,880 >> [მუსიკის დაკვრა] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> დინამიკები 1: ეს არის CS50 და ეს არის დაწყების კვირაში ორი. 4 00:00:13,500 --> 00:00:18,400 ასე რომ, მოდით ჩაყვინთვის მარჯვენა რაღაც რომ არის buggy, ასე ვთქვათ. 5 00:00:18,400 --> 00:00:24,015 ასე რომ, აქ არის CS50 IDE და მე გამოყვანილია წინასწარ ამ ეკრანზე რა 6 00:00:24,015 --> 00:00:25,070 მას. 7 00:00:25,070 --> 00:00:25,760 სპოილერი მზადყოფნაში. 8 00:00:25,760 --> 00:00:26,260 ყველა უფლება. 9 00:00:26,260 --> 00:00:29,060 მე გამოყვანილია ამ ეკრანზე აქ, რომელსაც აქვს ძალიან მარტივი პროგრამა. 10 00:00:29,060 --> 00:00:32,659 თუ ჩვენ გადახვევა ქვემოთ, ყველაზე ეს მხოლოდ კომენტარი, 11 00:00:32,659 --> 00:00:36,730 მაგრამ აქ ხაზების 13 გზით 17 ჩვენ გვაქვს პროგრამა. 12 00:00:36,730 --> 00:00:40,580 >> ეს არის სინტაქსურად მოქმედებს, რაც იმას ნიშნავს, თუ კომპილირება, ეს კომპილირდება და აწარმოებს, 13 00:00:40,580 --> 00:00:41,920 მაგრამ ეს buggy. 14 00:00:41,920 --> 00:00:47,330 ეს პროგრამა ამტკიცებს, რომ კომენტარები ზევით რომ ის უნდა ამობეჭდოთ 10 ვარსკვლავს, 15 00:00:47,330 --> 00:00:48,870 მაგრამ ეს ასე არ არის. 16 00:00:48,870 --> 00:00:53,290 და ეფუძნება თქვენი გამოცდილება, ან მალე გამოცდილება C, 17 00:00:53,290 --> 00:00:56,820 შეგიძლიათ ლოგიკურად დაინახა რატომ არის ეს, ფაქტობრივად, buggy? 18 00:00:56,820 --> 00:00:57,804 ჰო? 19 00:00:57,804 --> 00:00:59,220 აუდიტორია: ეს მიდის ნულიდან 10. 20 00:00:59,220 --> 00:01:01,884 სწორედ 11 iterations. 21 00:01:01,884 --> 00:01:02,550 დინამიკები 1: ჰო. 22 00:01:02,550 --> 00:01:06,030 ასე რომ, ის აპირებს ნულიდან მეშვეობით და ტოლია 10, 23 00:01:06,030 --> 00:01:08,140 რა თქმა უნდა, არის 11 iterations. 24 00:01:08,140 --> 00:01:10,020 ასე რომ, ის აპირებს ბეჭდვითი, მართლაც, 11 ვარსკვლავი. 25 00:01:10,020 --> 00:01:13,040 ასე რომ, კომპიუტერულ მეცნიერებათა კონვენციას ყველაზე პროგრამირების ენები 26 00:01:13,040 --> 00:01:15,270 არის, მართლაც, მხოლოდ იმიტომ, რომ დაიწყება დათვლის დროს ნულოვანი, 27 00:01:15,270 --> 00:01:18,800 მაგრამ ითვლიან მდე მაგრამ არა მნიშვნელობა, რომ რეალურად აინტერესებს. 28 00:01:18,800 --> 00:01:21,216 >> ახლა, ეს არის ერთი რამ, რომ იღებს ცოტა შეგუება 29 00:01:21,216 --> 00:01:25,350 და კიდევ Scratch, შექმნილია, როგორც ეს არის არასამთავრობო პროგრამისტები ან არასამთავრობო კომპიუტერული 30 00:01:25,350 --> 00:01:28,070 მეცნიერები და ბავშვები ძირითადად, მიზნად ისახავს აქვს 31 00:01:28,070 --> 00:01:29,570 თქვენ დაიწყება დათვლის ზოგადად ერთი. 32 00:01:29,570 --> 00:01:30,277 და ეს ჯარიმა. 33 00:01:30,277 --> 00:01:33,110 თქვენ შეგიძლიათ სრულიად დაიწყება დათვლის ერთი, თუ ეს უფრო კომფორტული. 34 00:01:33,110 --> 00:01:37,210 და იმედი მდე და საშუალებით 10, მაგრამ თქვენ გააცნობიეროს, განსაკუთრებით ამ კვირაში 35 00:01:37,210 --> 00:01:39,950 და მის ფარგლებს გარეთ, რომელიც მხოლოდ ასე ბევრი რამ პროგრამირების 36 00:01:39,950 --> 00:01:42,465 ვივარაუდოთ, რომ 0 არის პირველი ციფრი, რომელიც თქვენ ითვლიან, 37 00:01:42,465 --> 00:01:45,590 რომ თქვენ ვაპირებთ უფრო ადვილია, მხოლოდ შეღწევას ამ ჩვევა ამოსავალი 38 00:01:45,590 --> 00:01:49,490 ნულიდან და დათვლის მდე ღირებულება თქვენ აინტერესებს ახლავე საწყისი 39 00:01:49,490 --> 00:01:49,990 მისაღებად წასვლა. 40 00:01:49,990 --> 00:01:50,990 >> ასე რომ, უკვე დაფიქსირდა, რომ. 41 00:01:50,990 --> 00:01:53,670 ჩვენ შეიცვალა ნაკლებია ან უდრის უბრალოდ ნაკლები. 42 00:01:53,670 --> 00:01:56,050 მოდით შევხედოთ მეორე მაგალითი აქ. 43 00:01:56,050 --> 00:01:59,585 >> ასე რომ, ეს პროგრამა ძალიან აცხადებს თავის კომენტარი ზევით, რომ ეს უნდა ბეჭდვა 44 00:01:59,585 --> 00:02:02,260 ათი ვარსკვლავი, მაგრამ ეს ასე არ არის. 45 00:02:02,260 --> 00:02:05,540 რა არის bug აქ? 46 00:02:05,540 --> 00:02:07,930 >> ასე რომ, what-- და ბოდიში, მოდით იყოს ნათელი. 47 00:02:07,930 --> 00:02:08,610 10 ვარსკვლავი. 48 00:02:08,610 --> 00:02:11,644 ერთ ხაზზე, მაგრამ ეს ასე არ არის. 49 00:02:11,644 --> 00:02:14,810 ასე რომ, ფაქტობრივად, ნება მომეცით წავიდეთ წინ და შეადგინონ ეს ერთი იმიტომ, რომ ეს ცოტა ნაკლები 50 00:02:14,810 --> 00:02:16,900 გარკვევა საფუძველზე, რომ აღწერილობა. 51 00:02:16,900 --> 00:02:18,720 ნება მომეცით წასვლას ჩვენი წყაროს დირექტორია. 52 00:02:18,720 --> 00:02:25,110 ჩადება buggy ერთი dot ხაზი, buggy ერთი. 53 00:02:25,110 --> 00:02:28,680 OK, მე ვხედავ, 11 ვარსკვლავი, რომელიც კვლავ პრობლემურია, 54 00:02:28,680 --> 00:02:30,090 მაგრამ ისინი ასევე ყველა ერთ ხაზზე. 55 00:02:30,090 --> 00:02:31,500 რა არის საკითხი აქ? 56 00:02:31,500 --> 00:02:32,339 ჰო. 57 00:02:32,339 --> 00:02:33,255 აუდიტორია: [INAUDIBLE]. 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 დინამიკები 1: ჰო. 60 00:02:36,860 --> 00:02:40,210 ასე რომ, ეს არის დელიკატურობა, რომ თქვენ შეიძლება გავიხსენოთ, მე მიღების მოკლე ნახსენები. 61 00:02:40,210 --> 00:02:42,793 მიუხედავად იმისა, რომ ყველაფერი გამოიყურება საკმაოდ, და ეს ლამაზად indented, 62 00:02:42,793 --> 00:02:45,850 და ეს ერთგვარი გამოიყურება Scratch მსგავსი რომ ხაზი, 16 და 17, 63 00:02:45,850 --> 00:02:47,600 მართლაც, დაზუსტებისათვის, რომ მარყუჟი. 64 00:02:47,600 --> 00:02:48,400 ეს არის არსებითი. 65 00:02:48,400 --> 00:02:50,460 კომპიუტერი არ ვიცი, ან ვხედავ თეთრ სივრცეში. 66 00:02:50,460 --> 00:02:52,910 თეთრი სივრცე მხოლოდ us ადამიანები, სტილისტურად. 67 00:02:52,910 --> 00:02:57,010 კომპიუტერული იცის, როდესაც თქვენ გაქვთ Curly braces, რაც, რა თქმა უნდა, 68 00:02:57,010 --> 00:02:58,280 დაფიქსირება ამ პრობლემას. 69 00:02:58,280 --> 00:03:02,350 >> ასე რომ, თუ ჩვენ რეალურად წავიდა და მკაფიოდ დააყენა ამ Curly braces 70 00:03:02,350 --> 00:03:05,220 რომ დაფიქსირება ამ პრობლემას ცხადი გახადა, შემდგენელი 71 00:03:05,220 --> 00:03:07,930 რომ მე რეალურად მინდა შეასრულოს ორი ხაზი კოდი, კიდევ ერთხელ, 72 00:03:07,930 --> 00:03:09,220 და ისევ და ისევ. 73 00:03:09,220 --> 00:03:11,680 მაგრამ რა არის ფუნდამენტური ახსნა? 74 00:03:11,680 --> 00:03:12,180 მარჯვენა? 75 00:03:12,180 --> 00:03:15,260 ჩვენ არ მკაცრად უნდა curly braces ყველა დროის, 76 00:03:15,260 --> 00:03:18,210 მიუხედავად იმისა, რომ ეს, ალბათ, პრაქტიკის მისაღებად შევიდა, რომ ჩვევა მაინც 77 00:03:18,210 --> 00:03:20,878 მიუხედავად იმისა, რომ დასძენს ორი გმირები თქვენი კოდი. რატომ? 78 00:03:20,878 --> 00:03:22,380 >> აუდიტორია: [INAUDIBLE]? 79 00:03:22,380 --> 00:03:24,630 დინამიკები 1: ჰო ისე, რომ სხვა გამოსავალი საერთოდ. 80 00:03:24,630 --> 00:03:25,130 მარჯვენა? 81 00:03:25,130 --> 00:03:28,250 მით უმეტეს, თუ ერთი შეხედვით თქვენ არ ნამდვილად ვაფასებ, რა ხდება. 82 00:03:28,250 --> 00:03:31,070 ისე, რა თქმა უნდა, ჩვენ შეგვიძლია მხოლოდ ორი რამ ერთდროულად 83 00:03:31,070 --> 00:03:32,710 და მხოლოდ თავიდან ავიცილოთ პრობლემა საერთოდ. 84 00:03:32,710 --> 00:03:36,080 და ეს ჯარიმა, მაგრამ ახლა, დღევანდელი მიზნებისათვის, რა 85 00:03:36,080 --> 00:03:38,200 არის ახსნა bug? 86 00:03:38,200 --> 00:03:39,810 რატომ იყო ყველა იმ ვარსკვლავს ერთ ხაზს? 87 00:03:39,810 --> 00:03:40,806 ჰო? 88 00:03:40,806 --> 00:03:43,296 >> აუდიტორია: როგორც ჩანს, თუ თქვენ გაქვთ ერთი ხაზი კოდი, 89 00:03:43,296 --> 00:03:46,649 თქვენ შეგიძლიათ ამის გაკეთება გარეშე იმ. 90 00:03:46,649 --> 00:03:47,440 დინამიკები 1: ზუსტად. 91 00:03:47,440 --> 00:03:48,750 ეს არის მხოლოდ ადამიანის კონვენციას. 92 00:03:48,750 --> 00:03:50,750 ხალხი გააცნობიეროს, რომ ის ცოტა შემაშფოთებელი და tedious 93 00:03:50,750 --> 00:03:53,470 უნდა დააყენოს curly აფრთხილებს ყველა დრო თუ ყველა გსურთ ამის გაკეთება 94 00:03:53,470 --> 00:03:55,090 არის შეასრულოს ერთი ხაზი კოდი. 95 00:03:55,090 --> 00:03:57,660 ასე რომ, ადამიანები გადაწყვიტა გარკვეული ხნის ​​წინ, რომ ეს ჯარიმა. 96 00:03:57,660 --> 00:04:01,180 თუ გსურთ, რომ ყველა თქვენი loop მხოლოდ, რომ ერთი ხაზი, როგორც ეს, 97 00:04:01,180 --> 00:04:04,030 რომ ჯარიმა ერთჯერადი მძიმით ბოლოს. 98 00:04:04,030 --> 00:04:07,210 მაგრამ თქვენ შეგიძლიათ მხოლოდ ერთი ასეთი ხაზის გარეშე Curly braces. 99 00:04:07,210 --> 00:04:09,900 >> ასე რომ, როდესაც CS50 სტილის სახელმძღვანელო როგორც იქნება აღვნიშნო თქვენ, 100 00:04:09,900 --> 00:04:11,980 თქვენ ნახავთ, რომ ზოგადად ეს არის კარგი ჩვევა 101 00:04:11,980 --> 00:04:14,920 შეღწევას, სანამ თქვენ საკმაოდ კომფორტული გზასაცდენილი 102 00:04:14,920 --> 00:04:17,404 ამ სახის კონვენციები და აკეთებს საკუთარი რამ. 103 00:04:17,404 --> 00:04:18,820 ასე რომ, სანამ თქვენ თვითმმართველობის თანმიმდევრული. 104 00:04:18,820 --> 00:04:21,540 და ჩვენ გაიგო უფრო მეტი სტილი ცოტა მოგვიანებით დღეს. 105 00:04:21,540 --> 00:04:23,200 >> ასე რომ, ნება მომეცით გახსენით ერთი პროგრამა. 106 00:04:23,200 --> 00:04:24,930 რა თქმა უნდა, ჩვენ უნდა დაფიქსირება, რომ 10, ასევე. 107 00:04:24,930 --> 00:04:32,470 ნება მომეცით წავიდეთ წინ და დაწეროთ რეალური სწრაფი პროგრამა, რომელიც მე მოვუწოდებ, 108 00:04:32,470 --> 00:04:38,140 ვთქვათ, loop dot C. ასე რომ, loop dot C. და loop dot C მე ვაპირებ აქვს, 109 00:04:38,140 --> 00:04:41,970 მოიცავს სტანდარტული I / O dot H int ძირითადი ბათილად. 110 00:04:41,970 --> 00:04:44,020 ახლა მოდით უბრალოდ, მართლაც, loop. 111 00:04:44,020 --> 00:04:46,020 ასე რომ, 4 int i იღებს ნულოვანი. 112 00:04:46,020 --> 00:04:48,660 მე ნაკლებად, ვიდრე, ვთქვათ, 50. 113 00:04:48,660 --> 00:04:49,950 მე პლუს, ასევე. 114 00:04:49,950 --> 00:04:53,350 და მაშინ აქ მოდით წავიდეთ წინ და არ ბეჭდვა F. 115 00:04:53,350 --> 00:04:56,400 და მაშინ მინდა ამობეჭდოთ მე ახალი ხაზი, მძიმით. 116 00:04:56,400 --> 00:05:00,015 >> და ეს უნდა ამობეჭდოთ ყველა ციფრები ნულიდან 50-მდე? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 რამდენიმე ხელმძღვანელი nods. 119 00:05:03,680 --> 00:05:04,270 რამდენიმე nos. 120 00:05:04,270 --> 00:05:05,339 რა არის bug უკვე? 121 00:05:05,339 --> 00:05:06,630 რა არის მარტივი შეცდომა მივიღე? 122 00:05:06,630 --> 00:05:07,170 ჰო. 123 00:05:07,170 --> 00:05:08,544 >> აუდიტორია: [INAUDIBLE]. 124 00:05:08,544 --> 00:05:09,210 დინამიკები 1: ჰო. 125 00:05:09,210 --> 00:05:11,520 ასე რომ, მიუხედავად იმისა, რომ გამოიყურება როგორც ეს არის, რაც მე ვაპირებ, 126 00:05:11,520 --> 00:05:13,920 გავიხსენოთ, რომ ასევე მხოლოდ ASCII ხასიათი. 127 00:05:13,920 --> 00:05:14,955 >> ასე რომ, თუ მე ვიტყვი, print "ი" 128 00:05:14,955 --> 00:05:16,670 ეს ფაქტიურად აპირებს ბეჭდვა I. ასე რომ, თუ მე 129 00:05:16,670 --> 00:05:20,030 გვინდა, რომ დანამატის placeholder მნიშვნელობა მე რეალურად უნდა გავაკეთოთ ეს 130 00:05:20,030 --> 00:05:22,630 და შემდეგ plug-in ღირებულება მე დინამიურად ვითარდება. 131 00:05:22,630 --> 00:05:25,200 წინააღმდეგ შემთხვევაში, მე უბრალოდ აპირებს 50 მე ის ეკრანზე. 132 00:05:25,200 --> 00:05:28,140 >> ასე რომ, ნება მომეცით წავიდეთ წინ და რათა ამ მარყუჟის, აწარმოებს, 133 00:05:28,140 --> 00:05:30,650 და, მართლაც, ჩვენ გვაქვს ყველა გზა მეშვეობით 49. 134 00:05:30,650 --> 00:05:34,140 და თუ მე გადახვევა უკან დრო მე ვხედავ ხმების ნულოვანი დასაწყისში. 135 00:05:34,140 --> 00:05:36,050 >> ისე, რა, მე სახის ხრახნიანი up? 136 00:05:36,050 --> 00:05:37,800 რა მოხდება, თუ ამის გაკეთება? 137 00:05:37,800 --> 00:05:40,120 მხოლოდ იმიტომ, რომ მე არ ვფიქრობ. 138 00:05:40,120 --> 00:05:40,970 რა არის ეს პროგრამა. 139 00:05:40,970 --> 00:05:43,970 მას შემდეგ, რაც რე შედგენილი და აწარმოებს, ვაპირებთ გავაკეთოთ, ლოგიკურად? 140 00:05:43,970 --> 00:05:44,870 >> აუდიტორია: არაფერი. 141 00:05:44,870 --> 00:05:45,661 >> დინამიკები 1: არაფერი. 142 00:05:45,661 --> 00:05:47,156 რატომ არის, რომ? 143 00:05:47,156 --> 00:05:49,124 >> აუდიტორია: მე განკუთვნილია ნულოვანი. 144 00:05:49,124 --> 00:05:51,899 ასე რომ, მდგომარეობა სიცრუეა. 145 00:05:51,899 --> 00:05:52,940 დინამიკები 1: ჰო, ზუსტად. 146 00:05:52,940 --> 00:05:55,110 ყველა კოდი არის სწორი, სინტაქსურად. 147 00:05:55,110 --> 00:05:57,310 ეს კომპილირდება, ეს კოდი მიიღებს, მაგრამ ეს არ არის 148 00:05:57,310 --> 00:06:00,110 ვაპირებ არაფრის სასარგებლო იმიტომ, რომ მე ვრთავ მე ნულის. 149 00:06:00,110 --> 00:06:02,240 ჩვენ მაშინ შეამოწმეთ, არის მე უფრო მეტი, ვიდრე 50? 150 00:06:02,240 --> 00:06:03,810 ცხადია, არა, ეს ასე არ არის. 151 00:06:03,810 --> 00:06:05,760 ასე რომ მარყუჟი არასოდეს გაუშვებს ყველა. 152 00:06:05,760 --> 00:06:09,580 >> რა მოხდება, თუ ჩვენ რაღაც ცოტა უფრო უგუნური? 153 00:06:09,580 --> 00:06:12,890 ასე რომ, თუ ჩვენ გავაკეთებთ, როგორც int i იღებს ნულოვანი. 154 00:06:12,890 --> 00:06:15,640 ახლა კი ნება მომეცით გამოიყენოთ ხოლო loop, რომელიც კიდევ ერთი პირობა. 155 00:06:15,640 --> 00:06:21,810 და ეს მაშინ როდესაც მე ვამბობ, ხოლო მე უფრო მეტია, ვიდრე ან ნულის ტოლია, ხოლო შემდეგ მე აქ 156 00:06:21,810 --> 00:06:26,070 წავიდეთ წინ და ფაილის შენახვა, რათა loop. 157 00:06:26,070 --> 00:06:27,070 და მე დაახლოებით აწარმოებს. 158 00:06:27,070 --> 00:06:30,230 რა ვარ მე, რომ ეს დროის ხოლო loop? 159 00:06:30,230 --> 00:06:30,852 ჰო. 160 00:06:30,852 --> 00:06:32,120 >> აუდიტორია: უსასრულო loop? 161 00:06:32,120 --> 00:06:35,360 >> დინამიკები 1: უსასრულო ციკლი? 162 00:06:35,360 --> 00:06:36,662 დიახ, და რატომ? 163 00:06:36,662 --> 00:06:38,120 აუდიტორია: იმიტომ, რომ ეს ყოველთვის ნულის ტოლია. 164 00:06:38,120 --> 00:06:38,786 დინამიკები 1: ჰო. 165 00:06:38,786 --> 00:06:40,100 ასე რომ, მე ინიციალიზაცია, როგორც ნულოვანი. 166 00:06:40,100 --> 00:06:44,470 რა თქმა უნდა, ყოველთვის უფრო მეტი მეტი ან ტოლია 0 შედეგად. 167 00:06:44,470 --> 00:06:46,460 ასე რომ, მე უბრალოდ აპირებს ვხედავ ამ უსასრულოდ. 168 00:06:46,460 --> 00:06:49,850 ახლა კი, ეს არ ამუშავება ერთხელ ან ორჯერ კურსის ხელმძღვანელები. 169 00:06:49,850 --> 00:06:52,417 რა ხდება, როდესაც თქვენ გაქვთ უსასრულო ციკლი? 170 00:06:52,417 --> 00:06:53,314 >> აუდიტორია: კონტროლის C. 171 00:06:53,314 --> 00:06:53,980 დინამიკები 1: ჰო. 172 00:06:53,980 --> 00:06:56,250 ასე რომ, კონტროლის C საბოლოოდ რეაგირება. 173 00:06:56,250 --> 00:06:59,520 სამწუხაროდ, ჩვენ დაბეჭდილი გარეთ მილიონობით zeroes უკვე 174 00:06:59,520 --> 00:07:01,520 და ასე კომპიუტერი სახის მიიღო წინ. 175 00:07:01,520 --> 00:07:03,394 ასე რომ, ის აპირებს იგნორირება ჩემთვის ცოტა. 176 00:07:03,394 --> 00:07:06,560 მაგრამ თუ უბრალოდ მოხვდა კონტროლის C რამდენიმე ჯერ თქვენს Mac ან PC კლავიატურის, 177 00:07:06,560 --> 00:07:08,790 საბოლოო ჯამში ეს უნდა, მართლაც, შეწყვიტოს. 178 00:07:08,790 --> 00:07:11,770 და თუ არა, ჩვენ გაჩვენებთ რამდენიმე ტექნიკის ადრე ხანგრძლივი, სადაც თქვენ 179 00:07:11,770 --> 00:07:14,850 შეიძლება რეალურად იძულებით მოკვლა პროგრამები, ისევე როგორც Windows და Mac OS, 180 00:07:14,850 --> 00:07:15,562 თუ საჭირო იქნება. 181 00:07:15,562 --> 00:07:16,770 მაგრამ მოდით ცდილობენ რაღაც. 182 00:07:16,770 --> 00:07:19,895 მოდით რეალურად ნამატი I. არის ეს მაინც იქნება უსასრულო? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 ნება მომეცით აწარმოებს ამ. 185 00:07:25,140 --> 00:07:27,090 და ახლა თქვენ შეგიძლიათ სახის ვნახოთ, რა ხდება. 186 00:07:27,090 --> 00:07:30,140 ეს, ძალიან, არის უსასრულო ციკლი. 187 00:07:30,140 --> 00:07:33,080 მაგრამ ეს ცოტა შეასრულა კითხვაზე. 188 00:07:33,080 --> 00:07:35,460 არის თუ არა ეს აპირებს ბეჭდვა ნომრები სამუდამოდ? 189 00:07:35,460 --> 00:07:36,647 >> აუდიტორია: არა 190 00:07:36,647 --> 00:07:37,230 დინამიკები 1: No. 191 00:07:37,230 --> 00:07:37,620 რატომ? 192 00:07:37,620 --> 00:07:38,820 გავიგე, რომ ზოგიერთი nos მეტი აქ. 193 00:07:38,820 --> 00:07:41,859 Someone-- ჰო. 194 00:07:41,859 --> 00:07:44,275 აუდიტორია: თქვენ არ გაქვთ საკმარისი ბიტი მართლაც შენარჩუნებას აპირებს. 195 00:07:44,275 --> 00:07:44,730 დინამიკები 1: ყველა უფლება. 196 00:07:44,730 --> 00:07:46,000 ასე რომ, მე არ გაქვთ საკმარისი ბიტი შენარჩუნება აპირებს. 197 00:07:46,000 --> 00:07:47,124 ასე რომ, რა მოხდება? 198 00:07:47,124 --> 00:07:49,320 ეს უბრალოდ შევწყვეტთ? 199 00:07:49,320 --> 00:07:52,542 >> აუდიტორია: რაღაც მომენტში იგი დახურეს the-- 200 00:07:52,542 --> 00:07:54,500 დინამიკები 1: დახურეს მარყუჟის ქვემოთ, მაგრამ რატომ? 201 00:07:54,500 --> 00:07:57,950 რა მოხდება იმ ბოლომდე მისი საზღვრები? 202 00:07:57,950 --> 00:07:58,479 ჰო? 203 00:07:58,479 --> 00:08:00,520 აუდიტორია: ეს ციკლი უკან უარყოფითი რიცხვები. 204 00:08:00,520 --> 00:08:02,900 დინამიკები 1: უარყოფითი რიცხვები, ან თუ ჩვენ მხოლოდ მკურნალობის დადებითი, 205 00:08:02,900 --> 00:08:03,570 ნულოვანი მაინც. 206 00:08:03,570 --> 00:08:04,550 ასე რომ, დიახ, აბსოლუტურად. 207 00:08:04,550 --> 00:08:08,059 შეგახსენებთ, რომ ჩვენ ვნახეთ ბოლო დროს, რომ თუ ნამატი თქვენი ბიტი ერთი ძალიან ბევრჯერ, 208 00:08:08,059 --> 00:08:10,225 და თქვენ იქ დასმას overflow შესაძლებლობების თქვენი int 209 00:08:10,225 --> 00:08:13,058 ან რასაც მონაცემები ტიპის, თქვენ აპირებს გადაიტანოთ გარშემო, ალბათ, 210 00:08:13,058 --> 00:08:14,020 ორი უარყოფითი რიცხვები. 211 00:08:14,020 --> 00:08:16,644 ან თუ თქვენ დააკონკრეტა, რომ თქვენი სპექტრი უნდა იყოს მხოლოდ დადებითი, 212 00:08:16,644 --> 00:08:18,560 თქვენ შეგიძლიათ, მაგრამ ჩვენ არ მინახავს, ​​რომ არ არის, 213 00:08:18,560 --> 00:08:21,420 თქვენ შეიძლება დასრულდება მდე მინიმუმ უკან ნულოვანი. 214 00:08:21,420 --> 00:08:22,410 მიუხედავად იმისა, რომ რეალურად კი. 215 00:08:22,410 --> 00:08:24,320 ამ შემთხვევაში, უარყოფითი ნომრები, ამ შემთხვევაში 216 00:08:24,320 --> 00:08:26,870 მარყუჟის აპირებს შეწყვიტოს იმიტომ, რომ მე ასე არ არის, ფაქტობრივად, 217 00:08:26,870 --> 00:08:29,220 მეტია ან ტოლია ნულოვანი თუ უარყოფითი. 218 00:08:29,220 --> 00:08:31,780 >> ასე რომ, სამწუხაროდ, როგორ ხანგრძლივი იქნებოდა ჩვენ უნდა ველოდოთ? 219 00:08:31,780 --> 00:08:35,490 ახლა ჩვენ მდე რა, 2 მლნ-ish? 220 00:08:35,490 --> 00:08:37,705 ჩვენ ვართ, როგორიც 2 მილიარდი, ჩვენ ვაპირებთ, რომ უნდა ველოდოთ 221 00:08:37,705 --> 00:08:39,330 სანამ ჩვენ ვხედავთ ამ სიმპტომია. 222 00:08:39,330 --> 00:08:46,200 მაგრამ ჩვენ ვხედავთ, რომ ცოტა უფრო სწრაფად, maybe-- ვნახოთ, თუ ჩვენ არ შეუშალოს. 223 00:08:46,200 --> 00:08:46,700 კარგით. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 მაშინაც კი, მენიუები გამოჩენა ნელა. 226 00:08:51,331 --> 00:08:51,830 ყველა უფლება. 227 00:08:51,830 --> 00:08:54,270 ასე რომ, ჩვენ დავბრუნდებით, რომ ხანგრძლივი. 228 00:08:54,270 --> 00:08:56,320 ეს არის კარგი time-- ჯანდაბას, puppies. 229 00:08:56,320 --> 00:08:58,280 >> ეს არის კარგი დროის გარკვეული განცხადებები. 230 00:08:58,280 --> 00:09:01,225 ასე რომ, თუ შეიძლება მინდა ჩაერთონ YHack, 231 00:09:01,225 --> 00:09:03,600 რომელიც არის ღონისძიება მიმდინარეობს დაფინანსებული ჩვენი მეგობრები იელის. 232 00:09:03,600 --> 00:09:05,990 და, მართლაც, ზოგიერთი რა თქმა უნდა, TFs იელის ჩართული ამ. 233 00:09:05,990 --> 00:09:08,610 YHack არის საერთაშორისო hack-a-thon უმასპინძლა და გაიმართა 234 00:09:08,610 --> 00:09:12,395 იელის, აერთიანებს 1500 მსგავსად მოაზროვნე ჰაკერების და კრეატიული ყველა 235 00:09:12,395 --> 00:09:13,120 მთელ მსოფლიოში. 236 00:09:13,120 --> 00:09:14,610 თუ ეს ინტერესი, შევხედოთ აქ. 237 00:09:14,610 --> 00:09:17,401 თუ ეს ძალიან მოკლედ ეკრანზე, შევხედოთ დღევანდელ სლაიდები 238 00:09:17,401 --> 00:09:19,622 იმ URL for yhack.org. 239 00:09:19,622 --> 00:09:21,080 ასე რომ, ასევე რამდენიმე სწრაფ განცხადებები. 240 00:09:21,080 --> 00:09:24,410 ასე რომ, ოფიციალურად სექციები დაიწყება მომავალ კვირას, როგორც აქ და New Haven. 241 00:09:24,410 --> 00:09:27,660 გაითვალისწინეთ, თქვენ უნდა მისაღებად ელ მოგვიანებით ამ კვირის სავარაუდოდ. 242 00:09:27,660 --> 00:09:29,390 ეს დიდი დრო სჭირდება ამისთვის CS50 განყოფილებიანი, 243 00:09:29,390 --> 00:09:32,080 მოცემული ყველა ადამიანი კლასის და ყველას მოძრაობდნენ. 244 00:09:32,080 --> 00:09:34,871 და ყველა სასწავლო პრაქტიკის " გრაფიკით ასევე მაინც განამტკიცებს, 245 00:09:34,871 --> 00:09:38,110 მაგრამ ადევნეთ თვალყური ელ და საჭიროების შემთხვევაში უნდა, თქვენ შეგიძლიათ ხელახლა განყოფილება შემდეგ. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 ასე რომ, მაშინაც კი, თუ თქვენ ხართ მუდმივი დამსწრე განთავსებულია სექციები, გააცნობიეროს, რომ თითქმის ყველა 248 00:09:43,280 --> 00:09:46,786 რესურსების ვიყენებთ სექციები საჯაროდ ხელმისაწვდომია CS50 249 00:09:46,786 --> 00:09:48,460 სწავლა ამ URL აქ. 250 00:09:48,460 --> 00:09:51,630 ასე რომ, თუ თქვენ ოდესმე მინდა ხელახლა მიმოხილვა მასალა განყოფილებიანი, ან წაიკითხა წინ, 251 00:09:51,630 --> 00:09:54,170 თუ თქვენ არ შეუძლია მას გარკვეული კვირაში, გააცნობიეროს, რომ ნიმუში სლაიდები, 252 00:09:54,170 --> 00:09:58,210 და პრობლემები, და განმარტებები, და მეტი ყველა იქ. 253 00:09:58,210 --> 00:10:00,645 >> სამუშაო საათები დღეს განახლდება, და ხვალ, ოთხშაბათს, 254 00:10:00,645 --> 00:10:03,020 და ხუთშაბათს ნახოთ რა თქმა უნდა, ნახვა გრაფიკი. 255 00:10:03,020 --> 00:10:05,690 >> ასევე, ახლა იწყებს დღეს არის CS50 იმსჯელებს. 256 00:10:05,690 --> 00:10:09,230 ასე რომ, თუ და როდესაც თქვენ გაქვთ შეკითხვები ერთმანეთს და, რა თქმა უნდა ის თანამშრომლები, 257 00:10:09,230 --> 00:10:12,099 და ზოგადად სამუშაო ზოგიერთი პრობლემა კომპლექტი, 258 00:10:12,099 --> 00:10:15,015 ხვდები, რომ თქვენ არ ემთხვეოდეს უნდა მივმართოთ ადამიანის შემდეგი თქვენ. 259 00:10:15,015 --> 00:10:17,810 იმ შემთხვევაში, თუ არსებობს ერთი, თქვენ შეგიძლიათ დაგვიკავშირდნენ და თანაკლასელები 260 00:10:17,810 --> 00:10:19,890 ონლაინ მეშვეობით CS50 იმსჯელებს. 261 00:10:19,890 --> 00:10:22,600 ასე რომ, ეს არის დისკუსია საბჭოს, რა თქმა უნდა, 262 00:10:22,600 --> 00:10:24,550 და ხვდები, რომ ეს ალბათ საუკეთესო 263 00:10:24,550 --> 00:10:28,480 ადგილი უნდა დაიწყოს, როდესაც თქვენ გაქვთ კითხვები, როდესაც გარეთ საათებში 264 00:10:28,480 --> 00:10:29,470 კერძოდ. 265 00:10:29,470 --> 00:10:31,070 >> სადილების დაიწყება ამ კვირაში ძალიან. 266 00:10:31,070 --> 00:10:33,170 ცეცხლი და ყინული [INAUDIBLE] New Haven. 267 00:10:33,170 --> 00:10:35,379 შეხედეთ, რა თქმა უნდა ნახვა, რათა RSVP. 268 00:10:35,379 --> 00:10:36,753 პირველი მოდის, პირველი ემსახურება, რომ. 269 00:10:36,753 --> 00:10:39,380 თუ თქვენ არ გაქვთ ამ კვირაში ჩვენ ყველაფერს გავაკეთებთ, რომ ეს ყველაზე ყოველ პარასკევს 270 00:10:39,380 --> 00:10:40,400 ვადის განმავლობაში. 271 00:10:40,400 --> 00:10:41,830 >> OK, და ახლა სიტყვას შეფასების. 272 00:10:41,830 --> 00:10:44,690 კერძოდ, როგორც ჩვენ შევა პრობლემა დაყენებულია ერთი, რომელიც ამ კვირაში, 273 00:10:44,690 --> 00:10:46,670 და პრობლემა კომპლექტი ორი და მის შემდგომ. 274 00:10:46,670 --> 00:10:51,680 როგორ უნდა წავიდეს შესახებ შეფასებისას P კომპლექტი და ხარისხის შეფასებისას მათი? 275 00:10:51,680 --> 00:10:55,560 ასე რომ, ეს ოთხი ღერძი, რომ ჩვენ ვიყენებთ CS50, და ისინი ამ ოთხი აქ. 276 00:10:55,560 --> 00:10:59,200 >> სფერო, რომელიც იღებს on რიცხობრივი საფუძველზე, თუ რამდენად P კომპლექტი 277 00:10:59,200 --> 00:10:59,860 იცით თუ დაძლევის. 278 00:10:59,860 --> 00:11:02,890 ეს დაახლოებით შეესაბამება ძალისხმევა, და ეს არის ჩვენი გზა აღების 279 00:11:02,890 --> 00:11:05,190 ხომ არ ცდილობენ ნახევარი P მითითებული, ყველა P კომპლექტი. 280 00:11:05,190 --> 00:11:08,860 ეს არის ადვილი მიიღოთ სრულყოფილი ქულების თუ, რა თქმა უნდა, 281 00:11:08,860 --> 00:11:11,020 ცდილობენ ყველა ასპექტს P კომპლექტი. 282 00:11:11,020 --> 00:11:12,010 ასე რომ, რომ გონება. 283 00:11:12,010 --> 00:11:13,420 >> სისწორე არის ზუსტად რომ. 284 00:11:13,420 --> 00:11:17,760 თუ არა თქვენი კოდი მუშაობა, როგორც დაზუსტება და როგორც უფროსების "ნიმუში გადაწყვეტა 285 00:11:17,760 --> 00:11:19,730 ვარაუდობენ, რომ თქვენი კოდი უნდა, ფაქტობრივად, მუშაობა. 286 00:11:19,730 --> 00:11:23,260 შეამოწმეთ 50, თუ არ შეხვდა მას კიდევ, P კომპლექტი ერთი დაზუსტება 287 00:11:23,260 --> 00:11:25,060 და ზოგადად გაძლევთ კი / არა პასუხი 288 00:11:25,060 --> 00:11:26,518 თუ არა თქვენი კოდი არის სწორი. 289 00:11:26,518 --> 00:11:30,680 მინიმუმ იმდენად, რამდენადაც ჩვენ ვაპირებთ შეაფასოს იგი ეფუძნება ტესტები 290 00:11:30,680 --> 00:11:32,430 რომ ჩვენ აწარმოებს ფარგლებში, რომ პროგრამა. 291 00:11:32,430 --> 00:11:33,850 >> დიზაინი არის ბევრად უფრო სუბიექტური. 292 00:11:33,850 --> 00:11:35,994 ეს არის, თუ რამდენად კარგად დაწერილი თქვენი კოდი. 293 00:11:35,994 --> 00:11:38,410 და ეს არის ის, რომ თქვენ უკეთ დროთა განმავლობაში, 294 00:11:38,410 --> 00:11:41,201 და ეს არის ის, რაც ჩვენ გამოგიგზავნით გთავაზობთ უფრო ხარისხიანი კავშირი,. 295 00:11:41,201 --> 00:11:43,350 და დიზაინი მე შეიძლება ნიშნავს სანამ ხანგრძლივი 296 00:11:43,350 --> 00:11:47,650 შეიძლება ცდუნება ზოგიერთ P მითითებული, რომ რამე loopingly, 297 00:11:47,650 --> 00:11:51,590 მაგრამ აქვს იქნებ სამი, ან ოთხი, ან ხუთ წყობილი fore მარყუჟების ან წყობილი ხოლო 298 00:11:51,590 --> 00:11:52,090 მარყუჟების. 299 00:11:52,090 --> 00:11:54,130 ეს ზოგადად უნდა დაიწყოს, რათა თქვენ cringe 300 00:11:54,130 --> 00:11:56,070 და რომ, ზოგადად, ითვლება ცუდი დიზაინი. 301 00:11:56,070 --> 00:11:59,490 თქვენ დავიწყებთ კლასში და გარეთ კლასი კარგი გზები აკეთებს რამ, 302 00:11:59,490 --> 00:12:02,920 ცუდი გზები აკეთებს რამ, რომ შეიძლება ყველა იყოს სწორი, მაგრამ არა 303 00:12:02,920 --> 00:12:04,304 აუცილებლად მოფიქრებული. 304 00:12:04,304 --> 00:12:05,220 ისევე როგორც წერილობით ესსე. 305 00:12:05,220 --> 00:12:08,100 თქვენ შეიძლება დააყენოს სიტყვებს გვერდი, რომელიც გრამატიკულად სწორი, 306 00:12:08,100 --> 00:12:10,016 მაგრამ ესსე ან თეზისი ისინი მხოლოდ 307 00:12:10,016 --> 00:12:11,810 სრულიად არათანმიმდევრულია და არადამაჯერებელი. 308 00:12:11,810 --> 00:12:15,930 და ისე, რომ, შესაძლოა, ანალოგი წერილობითი სამყაროში ცუდი ან კარგი დიზაინი. 309 00:12:15,930 --> 00:12:18,490 >> და სტილი, ძალიან, არის საკმაოდ სუბიექტური. 310 00:12:18,490 --> 00:12:20,060 მაგრამ მაინც, ჩვენ ველით, თანმიმდევრულობა. 311 00:12:20,060 --> 00:12:21,480 ეს არის თუ როგორ საკმაოდ თქვენი კოდი. 312 00:12:21,480 --> 00:12:22,840 ხართ რამ ლამაზად დაზუსტებისათვის? 313 00:12:22,840 --> 00:12:26,600 არიან თქვენი ცვლადები ასევე დაასახელა / ხართ ყველა თქვენი ბრჭყალების და curly braces 314 00:12:26,600 --> 00:12:27,920 მიუერთდა, როგორც უნდა იყოს? 315 00:12:27,920 --> 00:12:31,490 ჩვენ გვაქვს CS50 სტილის სახელმძღვანელო, როგორც პრობლემა კომპლექტი იქნება აღვნიშნო თქვენ. 316 00:12:31,490 --> 00:12:33,730 ისინი უფრო კომფორტულად არიან მივესალმებით გადაუხვევს, რომ 317 00:12:33,730 --> 00:12:35,771 ასე რომ, სანამ თქვენ ხართ თვითმმართველობის თანმიმდევრული. 318 00:12:35,771 --> 00:12:38,020 ეს კი, ძალიან, არის გაკვეთილი ჩვენ გააძლიეროს ნაწილში. 319 00:12:38,020 --> 00:12:40,990 ასე რომ, თუ ყველა ეს იყო პატარა სწრაფი, გააცნობიეროს P კომპლექტი და სექციები 320 00:12:40,990 --> 00:12:42,900 წავა უფრო სიღრმისეული ადრე ხანგრძლივი. 321 00:12:42,900 --> 00:12:45,490 >> მაგრამ ზოგადად ჩვენ ძალიან ცოტა თაიგულების CS50. 322 00:12:45,490 --> 00:12:48,170 ქულა ზოგადად მასშტაბის ერთიდან სამ, ან ერთი ხუთ. 323 00:12:48,170 --> 00:12:50,836 ჩვენ ფაქტიურად და მე ვერ ვიტყვი, ეს საკმარისი პირველ კვირას. 324 00:12:50,836 --> 00:12:51,582 სამი არის კარგი. 325 00:12:51,582 --> 00:12:54,290 ასე რომ, მიუხედავად იმისა, რომ, დიახ, სამი ხუთ ჩვეულებრივ, მათემატიკურად, 326 00:12:54,290 --> 00:12:57,240 შეიძლება იყოს 60 პროცენტი ან მოსწონს D მინუსი. 327 00:12:57,240 --> 00:12:58,840 სამი არის, ფაქტობრივად, კარგი. 328 00:12:58,840 --> 00:13:01,050 და, ფაქტობრივად, ჩვენ ველით, ყველაზე სტუდენტები კლასში 329 00:13:01,050 --> 00:13:04,280 დაიწყოს off ვადის გარშემო twos და threes და ოთხზე. 330 00:13:04,280 --> 00:13:05,510 ალბათ არც ისე ბევრი ხუთიანი. 331 00:13:05,510 --> 00:13:06,661 არ არის ძალიან ბევრი პირობა. 332 00:13:06,661 --> 00:13:08,910 მაგრამ ზოგადად დაიწყება რომ ტკბილი ადგილზე მრუდი 333 00:13:08,910 --> 00:13:11,694 ასე რომ, როგორც დროის სვლასთან, იქ რეალურად ოთახი, 334 00:13:11,694 --> 00:13:13,360 და შესაძლებლობები ზედა პროგრესია. 335 00:13:13,360 --> 00:13:15,810 ასე რომ, გთხოვთ, არ ვაიგივებ სამ 60%. 336 00:13:15,810 --> 00:13:17,410 ეს გაცილებით უფრო აბსტრაქტული, ვიდრე. 337 00:13:17,410 --> 00:13:20,160 ფორმულა, რომელიც ჩვენ გამოვთვალოთ შეფასება შეწონილი ასეთია. 338 00:13:20,160 --> 00:13:21,610 სისწორე ღირს ყველაზე. 339 00:13:21,610 --> 00:13:23,010 დიზაინი ღირს ცოტა ნაკლები. 340 00:13:23,010 --> 00:13:24,490 სტილი ღირს ცოტა ნაკლები. 341 00:13:24,490 --> 00:13:26,950 და ეს ზოგადად იღებს დროის 342 00:13:26,950 --> 00:13:29,800 რომ გადადის მიღების თითოეულ ამ ცულები მხოლოდ უფლება. 343 00:13:29,800 --> 00:13:31,810 სტილი არის სუპერ მარტივია, უნდა იყოს სუპერ სწრაფი, 344 00:13:31,810 --> 00:13:33,657 მაგრამ ეს ადვილი ჩვევა მისაღებად ზარმაცი შესახებ. 345 00:13:33,657 --> 00:13:35,490 სისწორე შეიძლება მიიღოს თქვენ ყველაზე მეტი დრო. 346 00:13:35,490 --> 00:13:38,990 მისდევდნენ ქვემოთ ზოგიერთი ხარვეზის სიძლიერეზე მიიღოს, რომ ზედმეტი საათი ან მეტი, 347 00:13:38,990 --> 00:13:41,737 და ასე, გაიტანა საბოლოოდ იღებს, რომ. 348 00:13:41,737 --> 00:13:43,070 ასე რომ, ახლა უფრო სერიოზული სიტყვა. 349 00:13:43,070 --> 00:13:45,240 მას შემდეგ, რაც CS50 აქვს განსხვავება, უკეთესი 350 00:13:45,240 --> 00:13:47,440 ან უარესი, მიმდინარეობს ალბათ უკეთესი გაეცნო 351 00:13:47,440 --> 00:13:50,065 საკითხებთან ერთად, აკადემიური პატიოსნება, ვიდრე ყველაზე ნებისმიერი სხვა რა თქმა უნდა. 352 00:13:50,065 --> 00:13:53,720 და მართლაც, ის არის, რომ ჩემი ცოდნა, რომ ჩვენ გაგზავნის მეტი სტუდენტები, სამწუხაროდ, 353 00:13:53,720 --> 00:13:56,690 დისციპლინური მიზნით ყოველწლიურად შედეგად. ასე რომ, 354 00:13:56,690 --> 00:13:59,040 ინტერესი სრული გამჟღავნება, მოდით ვისაუბროთ მოკლედ 355 00:13:59,040 --> 00:14:02,820 იმაზე, თუ რა მიდის CS50, და რას შეგიძლიათ გააკეთოთ, და რა შეიძლება იყოს მავიწყდება. 356 00:14:02,820 --> 00:14:05,530 >> ასე რომ, აქ 2007 წლიდან, როდესაც მე მემკვიდრეობით, რა თქმა უნდა, 357 00:14:05,530 --> 00:14:07,870 არის რიგი Ad Board შემთხვევაში. 358 00:14:07,870 --> 00:14:10,690 Ad Board არის ჰარვარდის დისციპლინური ორგანოს, ან ახლა ღირსების ადვოკატი, 359 00:14:10,690 --> 00:14:13,790 რომლის შემთხვევები ნახსენები, როდესაც სტუდენტები რაღაც, რომ, რა თქმა უნდა 360 00:14:13,790 --> 00:14:15,470 სილაბუსი მიიჩნევს, უსაფუძვლოა. 361 00:14:15,470 --> 00:14:17,220 არ არსებობს რეალური ნიმუში აქ, მე ვიტყოდი. 362 00:14:17,220 --> 00:14:19,530 ეს მერყეობს მეტი წლის განმავლობაში, მაგრამ ზოგადად 363 00:14:19,530 --> 00:14:22,262 ეს არის ნომერი შემთხვევები, რომლებიც მოხსენიებული. 364 00:14:22,262 --> 00:14:23,970 სტუდენტთა რაოდენობა რომლებიც მონაწილეობენ? 365 00:14:23,970 --> 00:14:25,290 ეს ძალიან მერყეობს. 366 00:14:25,290 --> 00:14:27,930 როგორც წესი, გასულ წელს მაგალითად, 29 სტუდენტები ჰარვარდის 367 00:14:27,930 --> 00:14:29,740 იყო Ad ჩასხდნენ, ასე ვთქვათ. 368 00:14:29,740 --> 00:14:32,670 მათგან 29 მიმდინარე სტუდენტები, ორი მათგანი წინასწარი სტუდენტები, 369 00:14:32,670 --> 00:14:35,610 რომლებიც თანამშრომლობს ზოგიერთ მოულოდნელი გზა. 370 00:14:35,610 --> 00:14:38,400 და მაშინ, იმ თვალსაზრისით, პროცენტი, ეს, როგორც წესი, დაახლოებით 3% 371 00:14:38,400 --> 00:14:41,360 კლასის, რომელიც, სამწუხაროდ, რაც ამ სახის გადაწყვეტილებებს. 372 00:14:41,360 --> 00:14:44,470 >> ასე რომ, გასულ წელს იყო 3.5% CS50- ს სტუდენტი ორგანოს 373 00:14:44,470 --> 00:14:46,820 რომ იყო Ad ჩასხდნენ, ასე ვთქვათ. 374 00:14:46,820 --> 00:14:48,490 >> ასე რომ, რა ყველა ეს რას ნიშნავს? 375 00:14:48,490 --> 00:14:49,660 და რა ჩვენ რეალურად ამის გაკეთება? 376 00:14:49,660 --> 00:14:52,930 >> ასე რომ, სრული გამჟღავნება, ჩვენ რა თქმა უნდა, როგორც კომპიუტერული მეცნიერების, 377 00:14:52,930 --> 00:14:57,620 პროგრამული ინსტრუმენტები ჩვენს ხელთ და ეს ძალიან ადვილია ჩვენთვის, სამართლიანობა, 378 00:14:57,620 --> 00:15:00,980 რომ სხვა თანაკლასელები, რომლებიც არ არიან გადაკვეთის ამ ხაზების გადაკვეთის შედარება 379 00:15:00,980 --> 00:15:04,570 ყოველ წარდგენის წელს წინააღმდეგ ყველა წარდგენის ბოლო რვა წლის განმავლობაში. 380 00:15:04,570 --> 00:15:05,445 პროგრამული აკეთებს ამას. 381 00:15:05,445 --> 00:15:07,440 და საბოლოო ჯამში ეს ადამიანის თვალში, რომ 382 00:15:07,440 --> 00:15:11,410 თუ არ ეხება ზოგიერთი აქვს მნიშვნელობა, შემდგომი განხილვის, 383 00:15:11,410 --> 00:15:12,737 მაგრამ პროგრამული უზრუნველყოფა ნამდვილად ეხმარება. 384 00:15:12,737 --> 00:15:15,820 და ეს, სიმართლე გითხრათ, ამიტომ ვფიქრობ, რომ მე ჩვენ გვაქვს ასეთი დიდი რაოდენობით CS50. 385 00:15:15,820 --> 00:15:18,540 ეს არა იმიტომ, CS50 სტუდენტები და CS სტუდენტები უფრო 386 00:15:18,540 --> 00:15:20,840 ზოგადად ნაკლებად პატიოსანი ვიდრე ნებისმიერი სხვა სტუდენტები, 387 00:15:20,840 --> 00:15:22,340 ეს, უბრალოდ, ჩვენ გვაქვს ინსტრუმენტები და ტექნიკა 388 00:15:22,340 --> 00:15:24,095 რომლითაც უნდა მიიღოს ამ პირველ უღელტეხილზე. 389 00:15:24,095 --> 00:15:25,960 >> მაგრამ ჩვენ შენარჩუნება თვალი ყველა ამ საკითხზე 390 00:15:25,960 --> 00:15:30,340 ასევე, კიდევ ერთხელ, ინტერესების აღიარების მუშაობა, რომელიც მიმდინარეობს დააყენა 391 00:15:30,340 --> 00:15:32,397 ამ სუპერ უმრავლესობა კლასის. 392 00:15:32,397 --> 00:15:34,230 და რა თქმა უნდა, პოლიტიკა აკადემიური პატიოსნება, 393 00:15:34,230 --> 00:15:37,021 მიუხედავად იმისა, რომ ეს არის bunch of პუნქტები ხანგრძლივი ერთად bunch of ტყვიები 394 00:15:37,021 --> 00:15:40,490 რომ იმედია საკმაოდ იკითხება, ის ნამდვილად არ იმატებს ქვემოთ უნდა იყოს გონივრული. 395 00:15:40,490 --> 00:15:44,000 და საუკეთესო უზენაესობის ცერის, რომელიც ჩვენ ვთავაზობთ ფარგლებში სილაბუსი 396 00:15:44,000 --> 00:15:46,020 ეს არის არსი ყველა სამუშაო, რომ თქვენ 397 00:15:46,020 --> 00:15:47,850 წარუდგინოს ეს, რა თქმა უნდა საკუთარი. 398 00:15:47,850 --> 00:15:51,510 და მართლაც, თითქმის ყველა იმ საქმეებში დისციპლინარული ზომების 399 00:15:51,510 --> 00:15:55,640 ეს იმიტომ, რომ ზოგიერთი სტუდენტი გვიან ღამით, როგორც წესი, აღმოჩნდა მისი კოდი 400 00:15:55,640 --> 00:15:58,130 მეტი აშკარა, რომ კლასელი, რომელიც შემდეგ მიიღო 401 00:15:58,130 --> 00:16:00,840 მთლიანად ან მნიშვნელოვნად შესახებ. 402 00:16:00,840 --> 00:16:02,680 >> მაგრამ რეალურად, ეს არის OK. 403 00:16:02,680 --> 00:16:04,684 და მართლაც, ოფისში საათი, slips ქაღალდი 404 00:16:04,684 --> 00:16:07,850 თქვენ უკვე გადასცა თუ მოვიდა ოფისში საათი გასულ კვირას ხელს უწყობს იმდენი. 405 00:16:07,850 --> 00:16:09,710 თქვენ აბსოლუტურად მივესალმეთ და ბიძგი 406 00:16:09,710 --> 00:16:12,340 განიხილოს პრობლემა კომპლექტი თანაკლასელები. 407 00:16:12,340 --> 00:16:14,461 იმისათვის, რომ დავეხმაროთ ერთმანეთს, როდესაც დაბრკოლების. 408 00:16:14,461 --> 00:16:17,710 მაგრამ ზოგადად უზენაესობის ცერის უნდა იყოს ეს, "როდესაც თქვენ დახმარებას ითხოვენ, 409 00:16:17,710 --> 00:16:20,412 თქვენ შეგიძლიათ ნახოთ თქვენი კოდი სხვები, მაგრამ შეიძლება არ ნახოთ მათი. " 410 00:16:20,412 --> 00:16:22,620 ასე რომ, სხვა სიტყვებით, თუ მე ბრძოლა ზოგიერთი P კომპლექტი 411 00:16:22,620 --> 00:16:25,290 და მე იჯდა იქ სასადილოს, ან ბიბლიოთეკაში, 412 00:16:25,290 --> 00:16:28,470 ან საკლასო ცდილობს იპოვოს რაღაც ბრალია, 413 00:16:28,470 --> 00:16:30,340 მე რა თქმა უნდა ნახოთ ჩემი კოდი ჩემს ეკრანზე 414 00:16:30,340 --> 00:16:32,590 იმ პირს, სხდომაზე შემდეგი ჩემთვის, რა თქმა უნდა, პერსონალი, 415 00:16:32,590 --> 00:16:33,600 არამედ თანაკლასელი. 416 00:16:33,600 --> 00:16:36,580 მაგრამ თუ ეს გადაწყვეტილება, რომელიც ჩემი კლასელი სთავაზობს არის, oh, 417 00:16:36,580 --> 00:16:39,200 აქ მხოლოდ შევხედოთ რა მე, რომელიც კვეთს ონლაინ. 418 00:16:39,200 --> 00:16:43,120 >> და მე ვერ გაბედავს ამბობენ, რომ ზოგადად გონივრული რამ საუკეთესო ადამიანი 419 00:16:43,120 --> 00:16:45,030 ძალიან მარტივად რაშია ხაზი. 420 00:16:45,030 --> 00:16:47,195 ასე რომ, ვხედავ სილაბუსი უფრო დეტალურად. 421 00:16:47,195 --> 00:16:49,070 და ახლა ერთ-ერთი ყველაზე წინააღმდეგობრივი ასპექტები 422 00:16:49,070 --> 00:16:52,529 of CS50 სილაბუსი, რომ ვფიქრობდი საუბარი, რომ დასკვნა აქ 423 00:16:52,529 --> 00:16:53,820 არის ე.წ. სინანული სტატიაზე. 424 00:16:53,820 --> 00:16:55,340 ასე რომ, აქ ყველა ჯარიმა ბეჭდვითი. 425 00:16:55,340 --> 00:16:58,090 მაგრამ ზოგადად ჩვენ ვნახეთ გასული 8 წელზე მეტია 426 00:16:58,090 --> 00:17:01,510 რომ, მართლაც, თითქმის ყველა CS50 ს შემთხვევა აკადემიური უსინდისობა 427 00:17:01,510 --> 00:17:04,390 შედეგი ყოფილიყო მხოლოდ ცუდი გადაწყვეტილების მიღების გვიან ღამით. 428 00:17:04,390 --> 00:17:07,144 შედეგი სტრესი, შედეგი ნაკლებობა ჭამა, არასაკმარისი ძილი, 429 00:17:07,144 --> 00:17:09,560 ძალიან ბევრი P კომპლექტი, ძალიან ბევრი ვადები, ძალიან ბევრი ვალდებულებები. 430 00:17:09,560 --> 00:17:13,520 სტრესი მშენებლობის წელს 2:00 AM, 3:00 AM, 4:00 AM, ვადა მოსალოდნელი. 431 00:17:13,520 --> 00:17:17,020 ყველაზე სტუდენტები ამ შემთხვევაში უბრალოდ გააკეთა ცუდი გადაწყვეტილებები 432 00:17:17,020 --> 00:17:20,619 რომ, შესაძლოა, ძალიან კარგად ვნანობ დილით თუ არ წუთის შემდეგ, 433 00:17:20,619 --> 00:17:25,490 მაგრამ სანამ შარშან არ იყო რელიზი სარქველი, რომ ეს სტუდენტები შეეძლო 434 00:17:25,490 --> 00:17:29,140 რეალურად ქმნის რეალურად მიმართავს პრობლემას on შიშის გარეშე მიმდინარეობს 435 00:17:29,140 --> 00:17:30,850 ჩია კოლეჯი საერთოდ. 436 00:17:30,850 --> 00:17:33,260 >> და, მართლაც, ჩვენ გააცნო ეს სინანული პუნქტი გასულ წელს, 437 00:17:33,260 --> 00:17:35,970 რომელიც ამბობს, რომ იმ შემთხვევაში, თუ 72 საათის განმავლობაში, სამი დღის განმავლობაში, 438 00:17:35,970 --> 00:17:37,970 გადაკვეთის რამდენიმე ხაზი დადგენილი სილაბუსი 439 00:17:37,970 --> 00:17:41,178 თქვენ მოვიდა ველით ერთი რა თქმა უნდა, ხელმძღვანელები და ჩვენ გვექნება სტატისტიკა შესახებ. 440 00:17:41,178 --> 00:17:43,720 არსებობს კვლავ იყოს ზოგიერთი შედეგი, პირიქით, თუ რა არის 441 00:17:43,720 --> 00:17:44,990 ცნობილია, რომ პირიქით. 442 00:17:44,990 --> 00:17:49,190 ჯერ კიდევ არსებობს გარკვეული შედეგი, რომელიც არის პრაქტიკული მიერ, რა თქმა უნდა, 443 00:17:49,190 --> 00:17:51,611 ზოგადად zeroing ი კომპლექტი ან მიღების სხვა ქმედება, 444 00:17:51,611 --> 00:17:53,610 მაგრამ ჩვენ, რა თქმა უნდა, გაუმკლავდეს მას თავს და არ 445 00:17:53,610 --> 00:17:58,460 ეხება ეს უმაღლესი იყვნენ შედეგს შეიძლება იყოს ბევრად უფრო მძიმე. 446 00:17:58,460 --> 00:18:01,810 და, მართლაც, გაზიარება, რაც მოხდა გასულ წელს, რვა წლის განმავლობაში, და ახლა 447 00:18:01,810 --> 00:18:04,950 ცხრა წლის განმავლობაში, სწავლების ამ კურსის და შემდეგ tinkering სხვადასხვა knobs, 448 00:18:04,950 --> 00:18:07,866 გარდამტეხი სხვადასხვა აკრიფეთ გასული რამდენიმე წლის განმავლობაში, აკადემიური პატიოსნება, 449 00:18:07,866 --> 00:18:11,920 და ხედავს მონაცემებით არ ჩანს გავლენა, მაშინაც კი, გამოსვლები, როგორც ეს, 450 00:18:11,920 --> 00:18:15,490 ეს იყო ხელში ქვევით საუკეთესო რამ ჩვენ გააცნო pedagogically 451 00:18:15,490 --> 00:18:18,090 რვა წლის განმავლობაში ერთად ამ ხაზების CS50. 452 00:18:18,090 --> 00:18:21,010 >> 19 სტუდენტი გამოვიდა ამ მუხლით გასულ წელს. 453 00:18:21,010 --> 00:18:23,389 ჩვენ არ იღებდა აქცია შვიდი იმ სტუდენტები, 454 00:18:23,389 --> 00:18:25,430 განსაზღვრის, რომ ისინი ზედმეტად აწუხებს. 455 00:18:25,430 --> 00:18:27,304 მათ არ, ფაქტობრივად, გადაკვეთა ხაზი, მაგრამ ეს 456 00:18:27,304 --> 00:18:28,960 იყო კარგი სტატისტიკა აქვს მაინც. 457 00:18:28,960 --> 00:18:31,190 ჩვენ zeroed 11 ქულით რომ იყო წარდგენილი. 458 00:18:31,190 --> 00:18:33,840 და ერთ შემთხვევაში ჩვენ ვთხოვეთ სტუდენტს პრობლემა მითითებული. 459 00:18:33,840 --> 00:18:36,370 მაგრამ უფრო მყარი, პატიოსნად, ეს 19 ჩეთები, 460 00:18:36,370 --> 00:18:39,020 რომელიც იყო უფრო მეტი, ვიდრე მე მოსალოდნელია, რომ თითოეული მათგანი 461 00:18:39,020 --> 00:18:41,370 10 წუთი იქნებ საათიანი, ასევე მოიყვანეს 462 00:18:41,370 --> 00:18:44,920 სინათლე მთელი რიგი საკითხები დაკავშირებით ოჯახური საკითხები, მეგობარს საკითხები, 463 00:18:44,920 --> 00:18:46,940 ფსიქიკური ჯანმრთელობის საკითხები რომ ჩვენ მაშინ ჩართული, 464 00:18:46,940 --> 00:18:50,200 სტუდენტის კურთხევით, რეზიდენტი დეკანი, ან მეგობრები, ან ნებისმიერ სხვა რიგი 465 00:18:50,200 --> 00:18:51,450 მხარდაჭერა რესურსების. 466 00:18:51,450 --> 00:18:54,454 ასე რომ, ეს იყო ბევრად ერთი საუკეთესო მიზნებისათვის ჩვენი დროის 467 00:18:54,454 --> 00:18:55,870 და ერთ-ერთი საუკეთესო ჩარევა. 468 00:18:55,870 --> 00:18:58,870 >> რომ განაცხადა, მას არ ჰქონდა შეყვანის განაკვეთი გამოვლენის 469 00:18:58,870 --> 00:19:00,909 აკადემიური უსინდისობა ზოგადად. 470 00:19:00,909 --> 00:19:02,950 და მე ვერ გაბედავს ვთქვა, რომ ეს ქვეჯგუფი სტუდენტების გასულ წელს 471 00:19:02,950 --> 00:19:06,350 იყო დემოგრაფიული, რომ ჩვენ მანამდე არასოდეს განსაზღვრული წინაშე 472 00:19:06,350 --> 00:19:08,140 და არასდროს დაკავშირებულია ადრე. 473 00:19:08,140 --> 00:19:10,020 ასე რომ, ეს იყო მშვენიერი წარმატებები 474 00:19:10,020 --> 00:19:13,390 მიუხედავად იმისა, რომ მოიტანა სინათლე ნაკლებ ოპტიმალური გარემოებები. 475 00:19:13,390 --> 00:19:15,640 ასე რომ, შენარჩუნება ამის გათვალისწინებით როგორც თქვენ, ალბათ, 476 00:19:15,640 --> 00:19:17,390 ზოგიერთი ცუდი გადაწყვეტილება თავს გვიან ღამით, 477 00:19:17,390 --> 00:19:20,151 რომ არ რესურსი ისე დიდი ხნის როგორც სტუდენტი, რომ სიტუაცია 478 00:19:20,151 --> 00:19:23,400 ფლობდეს და მოვიდა ველით, რომ ჩვენ შეუძლია აქვს, რომ სახის სტატისტიკა და გაუმკლავდეთ მას 479 00:19:23,400 --> 00:19:27,310 ისე, რომ არის საგანმანათლებლო და შემდეგ ჩვენ შეგვიძლია ვთქვათ ჩვენს უკან მეორე დღეს. 480 00:19:27,310 --> 00:19:30,335 >> ასე გარეშე ado, მიიღოს პირას off ამ საუბრის, 481 00:19:30,335 --> 00:19:35,080 მიზეზი ლეკვები up არის უბრალოდ დაძვრა მომენტში. 482 00:19:35,080 --> 00:19:39,560 და სამწუხაროდ, ისინი ყველა ძილის, მაგრამ რა უნდა მოხდეს აქ 483 00:19:39,560 --> 00:19:41,760 იყო ყველას უნდა თაყვანისცემითა და სახის დაძაბულია 484 00:19:41,760 --> 00:19:43,910 მას შემდეგ, რაც ძალიან მძიმე საუბარი. 485 00:19:43,910 --> 00:19:46,930 მაგრამ როგორც ჩანს, მე დააყენა ლეკვები ძილის. 486 00:19:46,930 --> 00:19:50,070 მაგრამ თუ წასვლა CS50 ს ნახვა slash puppies, 487 00:19:50,070 --> 00:19:51,610 თქვენ შეგიძლიათ უყუროთ მათ მთელი დღის განმავლობაში. 488 00:19:51,610 --> 00:19:55,280 კერძოდ, შესაძლოა, 2:00, ან 3:00, და 4:00 AM ღამით 489 00:19:55,280 --> 00:19:57,480 რომ პატარა სტრესის რელიეფის არსებობს. 490 00:19:57,480 --> 00:19:58,805 ასე რომ, სლეში puppies. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 ყველა უფლება. 493 00:20:02,200 --> 00:20:03,020 არ იყო, რომ fun? 494 00:20:03,020 --> 00:20:04,200 OK. 495 00:20:04,200 --> 00:20:07,140 ასე რომ, უკან ზოგიერთი კომპიუტერული მეცნიერების, თუ შეიძლება. 496 00:20:07,140 --> 00:20:10,600 >> ასე რომ, გავიხსენოთ, რომ ბოლო დროს ჩვენ დავიწყეთ ეძებს და არა მხოლოდ მთავარი, რაც 497 00:20:10,600 --> 00:20:13,930 იყო ძირითადად ფუნქცია, როდესაც მწვანე დროშა დააწკაპებთ ექვივალენტს, 498 00:20:13,930 --> 00:20:16,999 მაგრამ ჩვენ ასევე დაიწყო მოკლედ წერა რამდენიმე ჩვენი საკუთარი ფუნქციები. 499 00:20:16,999 --> 00:20:20,040 და დღემდე არც ერთი ეს ფუნქციები განსაკუთრებით დიდი და ხორციანი. 500 00:20:20,040 --> 00:20:24,570 თქვენ მიიღებთ იმ დიდი ფუნქციები, ალბათ, P კომპლექტი 2, P მითითებული 3, 501 00:20:24,570 --> 00:20:26,410 ნამდვილად P კომპლექტი 4 მოყოლებული. 502 00:20:26,410 --> 00:20:29,340 ახლა ყველაზე თქვენი პროგრამების, თუ არა ყველა მათგანი, რა თქმა უნდა, P 503 00:20:29,340 --> 00:20:31,550 კომპლექტი 1 შეიძლება გაკეთდეს მთლიანად მთავარ. 504 00:20:31,550 --> 00:20:33,810 თუ თქვენი პროგრამა მხოლოდ ხუთ ხაზები, 10 ხაზი, 505 00:20:33,810 --> 00:20:37,070 თუნდაც 20 ხაზების ხანგრძლივი, მშვენივრად გონივრული დაწერა, 506 00:20:37,070 --> 00:20:40,930 ყველა მთავარი და არა ზედმეტად გართულებული თქვენი კოდი, მაგრამ, რასაც ჩვენ ვაკეთებთ დღეს 507 00:20:40,930 --> 00:20:44,360 და შემდგომი ცდილობს ასევე წარმოგიდგინოთ რამდენიმე კარგი დიზაინის ტექნიკა 508 00:20:44,360 --> 00:20:48,660 ასე რომ, როგორც თქვენი კოდი იღებს უფრო რთული და, როგორც პრობლემა 509 00:20:48,660 --> 00:20:51,690 გსურთ გადაწყვიტოს მიიღოს რთული და უფრო საინტერესო გაქვთ, ერთგვარი, 510 00:20:51,690 --> 00:20:55,850 ინსტრუმენტები თქვენს ყუთისთვის, რომელიც შეიმუშავებს კარგი გადაწყვეტილებები იმ. 511 00:20:55,850 --> 00:21:01,210 >> ასე რომ, მოდით მიიღოს სწრაფი შევხედოთ უკან ეს პროგრამა ჩემი გასულ კვირას, რომელიც 512 00:21:01,210 --> 00:21:06,550 იყო ფუნქციები ნულოვანი dot C. და შეამჩნია, რომ, უბრალოდ, 513 00:21:06,550 --> 00:21:10,310 როგორც ჩანს, ეს ორი ფუნქციები, ძირითადი და ბეჭდვითი სახელი. 514 00:21:10,310 --> 00:21:13,160 და ფიქრობს უკან და ალბათ საპირისპირო საინჟინრო, დღეს, 515 00:21:13,160 --> 00:21:16,880 რა იყო მოტივაცია შემოღების ფუნქცია ხაზი 28 მოუწოდა, 516 00:21:16,880 --> 00:21:18,180 ბეჭდვითი სახელი? 517 00:21:18,180 --> 00:21:21,745 ან რა იყო ეს, მაგალითად, წელს პირობები პრინციპი და takeaway, 518 00:21:21,745 --> 00:21:22,605 თუ თქვენ აკეთებთ. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 ზოგიერთი murmurs. 521 00:21:27,300 --> 00:21:28,830 რა არის ეს? 522 00:21:28,830 --> 00:21:32,210 >> ჰო, ასე ფუნქციური რღვევა არის ერთგვარი ლამაზი გზა ამბობდა, 523 00:21:32,210 --> 00:21:34,690 გახრწნის თქვენი პროგრამა მისი შემადგენელი ნაწილების 524 00:21:34,690 --> 00:21:37,530 და შემდეგ გამოიყენოს იმ ნაწილები შეიკრიბება მთელი. 525 00:21:37,530 --> 00:21:39,620 ასე რომ, ძალიან არის მხოლოდ სახის ერთი mouthful უკვე, 526 00:21:39,620 --> 00:21:42,050 მაგრამ ეს შესაძლოა უკეთესი მაგალითი, რომ რაღაც 527 00:21:42,050 --> 00:21:43,081 უბრალოდ მოუწოდა აბსტრაქცია. 528 00:21:43,081 --> 00:21:43,580 მარჯვენა? 529 00:21:43,580 --> 00:21:46,950 აბსტრაქცია იქნება ერთ-ერთი ერთი განმეორებადი თემები CS50 530 00:21:46,950 --> 00:21:49,085 და ასევე კომპიუტერული მეცნიერების უფრო ზოგადად, რადგან ეს 531 00:21:49,085 --> 00:21:53,060 ტექნიკა, რომელიც თქვენ გადაჭრით პრობლემები უფრო ეფექტურად, რადგან თქვენ 532 00:21:53,060 --> 00:21:56,807 შეგიძლიათ დაწეროთ გადაწყვეტილებები უფრო ინტუიციურად და ისე, რომ სასწორები 533 00:21:56,807 --> 00:21:58,390 და გასაგებია, სხვა ადამიანი. 534 00:21:58,390 --> 00:21:59,860 რას ვგულისხმობ, რომ? 535 00:21:59,860 --> 00:22:04,340 >> ასე რომ, ალბათ, ის არის ბევრად უფრო იკითხება შევხედოთ პროგრამა მოსწონს ეს, 536 00:22:04,340 --> 00:22:05,990 სუპერ მოკლე მიუხედავად იმისა, რომ ეს არის. 537 00:22:05,990 --> 00:22:10,050 როდესაც ხედავთ on line 22, რომ იქ ფუნქცია მოუწოდა, ბეჭდვითი სახელი. 538 00:22:10,050 --> 00:22:12,620 ეს სახელი მარტო ამბობს, თუ რას აკეთებს. 539 00:22:12,620 --> 00:22:15,780 ეს ფუნქცია აშკარად იღებს შეყვანის შორის ფრჩხილებში, 540 00:22:15,780 --> 00:22:18,600 და როგორც ჩანს, აკეთებს, სავარაუდოდ, ბეჭდავს სახელი. 541 00:22:18,600 --> 00:22:20,880 ასე რომ, მიუხედავად იმისა, რომ ჩვენ აბსოლუტურად შეეძლო 542 00:22:20,880 --> 00:22:25,280 გააკეთა ის, რაც ჩვენ გავაკეთეთ, ერთი კვირის წინ, რომელიც იყო უბრალოდ მიიღოს ამ ფაქტობრივი ხაზი კოდი, 543 00:22:25,280 --> 00:22:28,710 მოშორება ეს, და კიდევ მოშორება ეს ყველა ერთად, 544 00:22:28,710 --> 00:22:31,436 ჩვენ ერთგვარი რეფერირებადი მოშორებით ცნება ბეჭდვის სახელი. 545 00:22:31,436 --> 00:22:33,060 მე არ მაინტერესებს, თუ თქვენ იყენებთ ბეჭდვითი დაცვა. 546 00:22:33,060 --> 00:22:35,601 მე არ მაინტერესებს, თუ თქვენ გაქვთ პროცენტი S და წარმატებული ნ ეს 547 00:22:35,601 --> 00:22:37,270 წარმოუდგენლად arcane დეტალები. 548 00:22:37,270 --> 00:22:40,090 მე არ აინტერესებს, როგორც პროგრამისტი არის ბეჭდვის სახელი. 549 00:22:40,090 --> 00:22:43,414 ასე რომ, რა უკეთესი გზა უნდა გააკეთოს, რომ ვიდრე დარეკვით ფუნქცია, ბეჭდვითი სახელი? 550 00:22:43,414 --> 00:22:46,330 ასე რომ, ეს იყო ერთ-ერთი მოტივაცია აკეთებს რაღაც მსგავსი. 551 00:22:46,330 --> 00:22:50,370 მიღების კოდი უფრო იკითხება, უფრო მრავალჯერადი, და ასევე თვითმმართველობის აღწერითი. 552 00:22:50,370 --> 00:22:52,120 ახლა, მოდით შევხედოთ კიდევ ერთი მაგალითია, 553 00:22:52,120 --> 00:22:56,220 რომელიც ფუნქციები ერთი, რომელიც ჩვენ გვქონდა აქ. 554 00:22:56,220 --> 00:23:00,367 >> ასე რომ, ეს ერთი, ალბათ, კიდევ უფრო მყარი, რადგან, ამ შემთხვევაში, 555 00:23:00,367 --> 00:23:01,700 მე არ მინდა, რომ უბრალოდ int. 556 00:23:01,700 --> 00:23:03,320 მე მინდა, რომ მიიღოს პოზიტიური int. 557 00:23:03,320 --> 00:23:06,470 და აღმოჩნდება, რომ მიიღონ პოზიტიური int თქვენ უნდა გავაკეთოთ რამოდენიმე legwork. 558 00:23:06,470 --> 00:23:06,969 მარჯვენა? 559 00:23:06,969 --> 00:23:09,600 ეს არ არის მარტივი ერთი ხაზი მოვუწოდებთ როგორც ბეჭდვითი სახელი იყო, 560 00:23:09,600 --> 00:23:11,480 რომელიც მართლაც ნაკლებად დამაჯერებელი. 561 00:23:11,480 --> 00:23:16,000 >> იმისათვის, რომ მიიღოთ დადებითი int, logically-- ნება მომეცით გადახვევა უკან ქვემოთ დამალვა. 562 00:23:16,000 --> 00:23:18,887 რას უნდა გავაკეთოთ? 563 00:23:18,887 --> 00:23:20,720 ისევე, როგორც ყველა ინსტრუმენტი, ჩვენ აქვს მომენტში 564 00:23:20,720 --> 00:23:24,440 რამ, როგორიცაა ბეჭდური def საწყისი სტანდარტული ბიბლიოთეკა და ასევე CS50 ბიბლიოთეკა 565 00:23:24,440 --> 00:23:26,990 ჩვენ მიიღეთ Int და მიიღეთ Float, მიიღეთ დიდხანს დიდხანს, მიიღეთ სიმებიანი, 566 00:23:26,990 --> 00:23:29,260 მაგრამ მხოლოდ ერთი, გერმანე, ახლა არის ოჯახის Int. 567 00:23:29,260 --> 00:23:32,970 ასე რომ, თუ მხოლოდ ინსტრუმენტი გაქვთ თქვენს ინსტრუმენტი ყუთი ოჯახის Int, 568 00:23:32,970 --> 00:23:35,505 როგორ უნდა წავიდეს შესახებ ახორციელებს მას დადებითი int? 569 00:23:35,505 --> 00:23:35,929 >> აუდიტორია: შექმნა შესვლა და შემოწმება თუ არა შეყვანილი, რომ მისცა 570 00:23:35,929 --> 00:23:36,762 დადებითი იყო თუ არა. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> დინამიკები 1: Perfect. 573 00:23:40,640 --> 00:23:41,200 ზუსტად. 574 00:23:41,200 --> 00:23:43,950 სხვა ინსტრუმენტი გვაქვს ჩვენი გვერდები საწყისი ორი კვირის წინ 575 00:23:43,950 --> 00:23:45,419 მხოლოდ looping შენება. 576 00:23:45,419 --> 00:23:48,210 ასე რომ, yeah, თუ ჩვენ ვიყენებთ ხოლო მარყუჟის ან do ხოლო მარყუჟის, ან ფორი 577 00:23:48,210 --> 00:23:50,850 loop ჩვენ შეგვიძლია ალბათ მიიღოს away ერთი ის ზოგიერთი ფორმა. 578 00:23:50,850 --> 00:23:55,140 ჩვენ შეიძლება განახორციელოს ცნება მისაღებად დადებითი int მხოლოდ გამოყენებით მიიღეთ Int, 579 00:23:55,140 --> 00:23:57,830 და მაშინ უბრალოდ შეინახოს მოუწოდებდა მას ისევ და შენარჩუნება pestering შესახებ 580 00:23:57,830 --> 00:24:00,320 სანამ იგი რეალურად გვაძლევს, რაც ჩვენ გვინდა. 581 00:24:00,320 --> 00:24:03,260 >> და ახლა, ამ აბსტრაქცია პროცესი 582 00:24:03,260 --> 00:24:05,680 მიღების დადებითი int შევიდა ფუნქცია მოუწოდა 583 00:24:05,680 --> 00:24:08,930 დადებითი int არის ცოტა უფრო მყარი, რადგან შევხედოთ ამ. 584 00:24:08,930 --> 00:24:10,990 ეს არის, როგორც 10 plus ხაზი კოდი, 585 00:24:10,990 --> 00:24:15,090 ჩართული მიღების დადებითი int, და მე ნამდვილად არ მაინტერესებს, თუ როგორ გავაკეთოთ ეს. 586 00:24:15,090 --> 00:24:17,850 ყველა მე მაინტერესებს არის ის, რომ თქვენ შეგიძლიათ ამის გაკეთება, და ასე რომ მე 587 00:24:17,850 --> 00:24:21,660 ფარული ყველა ეს დეტალი უკან ფუნქცია მოუწოდა დადებითი int, რომ 588 00:24:21,660 --> 00:24:23,430 მართლაც, აქვს ამ do ხოლო loop. 589 00:24:23,430 --> 00:24:27,660 >> და ვხედავ გასულ კვირას სინტაქსი არსებობს, მაგრამ ეს მხოლოდ აცხადებს, N, 590 00:24:27,660 --> 00:24:29,800 და ეს ბეჭდავს ინსტრუქციის შესახებ. 591 00:24:29,800 --> 00:24:33,330 ის მოუწოდებს ოჯახის Int და მაშინ იგი ამოწმებს ეს მდგომარეობა ისევ და ისევ, 592 00:24:33,330 --> 00:24:35,230 და ისევ სანამ შესახებ თანამშრომლობს. 593 00:24:35,230 --> 00:24:38,000 >> ასე რომ, ახლა, რამდენიმე საღი აზრის ამოწმებს. 594 00:24:38,000 --> 00:24:40,370 მათთვის, ალბათ, ნაცნობია რამდენიმე პროგრამირების, 595 00:24:40,370 --> 00:24:46,410 რატომ არის N განცხადებით, რატომ შექმნა N გარეთ do ხოლო loop? 596 00:24:46,410 --> 00:24:50,370 რატომ არის ეს ხაზი 29 და არა მოსწონს 33, მაგალითად. 597 00:24:50,370 --> 00:24:53,529 >> აუდიტორია: იმიტომ, რომ როდესაც თქვენ გამოაცხადოს ის გარეთ, ეს სახის 598 00:24:53,529 --> 00:24:56,688 მეტი, უფრო ფარგლებს 599 00:24:56,688 --> 00:24:58,146 >> დინამიკები 1: კარგი. 600 00:24:58,146 --> 00:24:59,604 >> აუდიტორია: --and თუ განაცხადოს ის შიგნით მარყუჟის, [INAUDIBLE] 601 00:24:59,604 --> 00:25:00,979 იმიტომ, რომ არ იციან ამის შესახებ. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 დინამიკები 1: ზუსტად. 604 00:25:03,610 --> 00:25:06,330 თუ შემიძლია simplify-- ეს საკითხი ფარგლებს. 605 00:25:06,330 --> 00:25:11,530 და ფარგლებს ეხება, იმ კონტექსტში, რომელიც ცვლადი არსებობს, ან არის გამოსადეგი. 606 00:25:11,530 --> 00:25:15,050 და ლამაზი უზენაესობის ცერის აქ ის არის, რომ ზოგადად, როდესაც თქვენ გამოაცხადოს ან შექმნათ 607 00:25:15,050 --> 00:25:21,642 ცვლადი თქვენ შეგიძლიათ გამოიყენოთ იგი შიგნით უახლოესი მოიცავს Curly braces. 608 00:25:21,642 --> 00:25:22,600 ასე რომ, რას ნიშნავს ეს? 609 00:25:22,600 --> 00:25:26,551 თუ მე, ნაცვლად, გაუქმება და წავიდეთ ერთად რაღაც, რომ გრძნობს ცოტა მარტივი. 610 00:25:26,551 --> 00:25:27,050 მარჯვენა? 611 00:25:27,050 --> 00:25:29,360 >> Line 32 უბრალოდ გამოიყურება სუფთა ჩემთვის არის. 612 00:25:29,360 --> 00:25:31,500 მე ვაკეთებ როგორც რამ ერთხელ და შემდეგ იმის 613 00:25:31,500 --> 00:25:33,070 მარჯვენა მარცხენა. 614 00:25:33,070 --> 00:25:35,180 პრობლემა ახლა საფუძველზე რომ განმარტება საქართველოს ფარგლებს 615 00:25:35,180 --> 00:25:41,130 ის არის, რომ N შეიძლება იქნას გამოყენებული ხაზები 31 და 32 შიგნით ამ მარყუჟის, 616 00:25:41,130 --> 00:25:45,100 მაგრამ სადაც, რომ განმარტება შეიძლება ეს არ იყოს გამოყენებული? 617 00:25:45,100 --> 00:25:45,660 შეესაბამება თუ რა? 618 00:25:45,660 --> 00:25:46,160 ჰო. 619 00:25:46,160 --> 00:25:47,490 >> აუდიტორია: 35. 620 00:25:47,490 --> 00:25:49,180 >> დინამიკები 1: 35-ზე. 621 00:25:49,180 --> 00:25:50,480 ნამდვილად არა 35. 622 00:25:50,480 --> 00:25:52,349 ასევე სხვაგან სად? 623 00:25:52,349 --> 00:25:52,890 აუდიტორია: 34. 624 00:25:52,890 --> 00:25:55,040 დინამიკები 1: მაშინაც კი, 34 პრობლემატურია, რადგან ეს 625 00:25:55,040 --> 00:25:56,450 გარეთ Curly braces. 626 00:25:56,450 --> 00:25:58,200 ასე რომ, ფაქტობრივად, ვნახოთ, რა მოხდება. 627 00:25:58,200 --> 00:25:58,700 მარჯვენა? 628 00:25:58,700 --> 00:26:00,722 ეს შეიძლება, როგორც ჩანს ცოტა ინტუიციური და არ შეიძლება, 629 00:26:00,722 --> 00:26:02,680 მაგრამ ვნახოთ, თუ რა შემდგენელი უნდა ვთქვა, როცა 630 00:26:02,680 --> 00:26:04,730 ჩვენ წასვლას დღევანდელი წყარო დირექტორია. 631 00:26:04,730 --> 00:26:08,950 ჩადება ფუნქცია ერთი. 632 00:26:08,950 --> 00:26:11,231 ოჰ, ჩემი ღმერთი. 633 00:26:11,231 --> 00:26:12,980 ისე, მე საბოლოოდ დასრულდა რომ, სხვათა შორის. 634 00:26:12,980 --> 00:26:14,030 ყველა უფლება. 635 00:26:14,030 --> 00:26:15,510 და რა არის საკითხი აქ? 636 00:26:15,510 --> 00:26:17,430 ძალიან arcane შევხედოთ. 637 00:26:17,430 --> 00:26:19,570 მაგრამ აქ არის ის, რაც მე typed-- ფუნქციის ერთი. 638 00:26:19,570 --> 00:26:21,640 აი ის, რაც გამოწვეული, რომელიც რეალურად 639 00:26:21,640 --> 00:26:23,705 გამოყენებით შემდგენელი clang ზოგიერთი იმ დროშები 640 00:26:23,705 --> 00:26:25,080 რომ ჩვენ დავინახავთ, კიდევ დიდი ხნის განმავლობაში. 641 00:26:25,080 --> 00:26:26,829 ისევ და ისევ, ყოველთვის გამოიყურება პირველი შეცდომა, 642 00:26:26,829 --> 00:26:30,540 იმიტომ, რომ ეს შეიძლება უბრალოდ კასკადური უაზრო გავლენას სხვა ხაზები. 643 00:26:30,540 --> 00:26:34,410 >> რა ეს იმას ნიშნავს, რომ პრობლემა ის არის, ფუნქცია 1.გ. 644 00:26:34,410 --> 00:26:36,890 ეს არის on line 32. 645 00:26:36,890 --> 00:26:39,712 და ეს სვეტი, ან გმირი, 13. 646 00:26:39,712 --> 00:26:42,670 ასე რომ, როდესაც თქვენი ტექსტური რედაქტორი, რომელსაც შეუძლია დაგეხმარებათ იდენტიფიცირება, სადაც ეს საკითხი. 647 00:26:42,670 --> 00:26:47,079 ასე რომ, თუ მე გადახვევა, რა არის line 32? 648 00:26:47,079 --> 00:26:49,120 ეს მართლაც, ამ ერთი რომ უკვე მონიშნულია 649 00:26:49,120 --> 00:26:50,607 სწორედ აქ გამოუყენებელი ცვლადი ო. 650 00:26:50,607 --> 00:26:51,440 მაგრამ ეს არ არის გამოუყენებელი. 651 00:26:51,440 --> 00:26:52,320 მე გამოყენებით. 652 00:26:52,320 --> 00:26:56,110 მაგრამ შემდგენელი ის დაბნეული, რადგან ის მხოლოდ არსებობს შიგნით ამ ფარგლებს. 653 00:26:56,110 --> 00:26:57,727 ასე რომ, მე ვერ გამოიყენებს აქ. 654 00:26:57,727 --> 00:26:58,560 მე ვერ გამოიყენოს იგი აქ. 655 00:26:58,560 --> 00:27:01,320 და შემდგენელი, აქედან გამომდინარე, კი არ აინტერესებს, რომ ვცდილობ. 656 00:27:01,320 --> 00:27:03,940 როგორც ჩანს, გამოუყენებელი თავისი კომპეტენციის ფარგლებში ფაქტობრივი ფარგლებს. 657 00:27:03,940 --> 00:27:08,854 >> ასე რომ ჩვენ შეგვიძლია გაფართოების ფარგლებში ამით ზუსტად ის, რაც ჩვენ დავიწყეთ with-- int n. 658 00:27:08,854 --> 00:27:11,020 და მიუხედავად იმისა, რომ ეს არ არის ასე ელეგანტური, ალბათ, 659 00:27:11,020 --> 00:27:15,110 და ჩვენ აღების ზედმეტი ხაზი აქ, ახლა ეს არეალი ყველგან. 660 00:27:15,110 --> 00:27:15,970 მოდით ცდილობენ კიდევ ერთხელ. 661 00:27:15,970 --> 00:27:19,040 ასე რომ ფუნქცია ერთი. 662 00:27:19,040 --> 00:27:19,610 Nice. 663 00:27:19,610 --> 00:27:23,370 და ახლა თუ მე თუ მე აწარმოებს ფუნქცია ერთი, მოდით მივცეთ მას უარყოფითი 10, 664 00:27:23,370 --> 00:27:27,170 უარყოფითი 1, 0, 1, და ეს მართლაც მუშაობს. 665 00:27:27,170 --> 00:27:28,610 >> ასე რომ, არსებობს სხვა გამოსავალი აქ. 666 00:27:28,610 --> 00:27:29,280 იცით რა? 667 00:27:29,280 --> 00:27:31,230 რა მოხდება, თუ მე ნამდვილად ვარ ჭიდაობის ეს? 668 00:27:31,230 --> 00:27:33,140 მე არ ვიცი, სადაც n უნდა წავიდეს. 669 00:27:33,140 --> 00:27:33,723 იცით რა? 670 00:27:33,723 --> 00:27:39,220 მე უბრალოდ აპირებს იმისათვის, რომ ეს ყველა გზა ზედა ჩემი ფაილი აქ. 671 00:27:39,220 --> 00:27:42,835 რა ამ შემთხვევაში, თქვენ როგორ ფიქრობთ? 672 00:27:42,835 --> 00:27:43,335 ჰო? 673 00:27:43,335 --> 00:27:44,251 >> აუდიტორია: [INAUDIBLE]. 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 დინამიკები 1: ჰო. 676 00:27:48,630 --> 00:27:50,560 ასე რომ, მე გახადა გლობალური, ასე ვთქვათ. 677 00:27:50,560 --> 00:27:54,430 თუ თქვენ გაქვთ ცვლადი რომ გარეთ ყველა თქვენი ფუნქციები, რომელიც არის დაშვებული, 678 00:27:54,430 --> 00:27:58,780 და კოდი უნდა შეადგინოს და n იქნება ხელმისაწვდომი არა მხოლოდ მისაღებად 679 00:27:58,780 --> 00:28:02,490 დადებითი int, არამედ main-- რომელიც ცოტა შემაშფოთებელი იმიტომ, რომ იქ 680 00:28:02,490 --> 00:28:04,864 უკვე n მთავარ, ისე უფრო რომ რაღაც მომენტში 681 00:28:04,864 --> 00:28:06,530 მაგრამ ამ შემთხვევაში განიხილება ცუდი დიზაინი. 682 00:28:06,530 --> 00:28:06,910 ყველა უფლება. 683 00:28:06,910 --> 00:28:08,570 თუ თქვენ უნდა მიმართო რაღაც, oh, მე 684 00:28:08,570 --> 00:28:10,125 უბრალოდ ამას აქ იმიტომ, რომ კოდი ჩანს შედგენა 685 00:28:10,125 --> 00:28:12,180 საერთოდ არ არის საუკეთესო პრაქტიკა. 686 00:28:12,180 --> 00:28:14,590 იმის ნაცვლად, გსურთ აირჩიოთ ვიწრო შესაძლებელია ფარგლებში 687 00:28:14,590 --> 00:28:18,720 თქვენი ცვლადები, რაც იმას ნიშნავს, მიმდინარეობს ჩვენი თავდაპირველი დიზაინი, რომელიც 688 00:28:18,720 --> 00:28:19,920 სწორედ აქ. 689 00:28:19,920 --> 00:28:24,400 >> ახლა, როგორც განზე, თუ თქვენ არ აქვს იდენტურად დაასახელა ცვლადი აქ, 690 00:28:24,400 --> 00:28:27,750 გზა გ გაუმკლავდეს ამას მიუხედავად იმისა, რომ ეს არ მოხდება ძალიან often-- 691 00:28:27,750 --> 00:28:30,150 ის არის, რომ ეს არის კიდევ შესანიშნავად ჯარიმა აქ. 692 00:28:30,150 --> 00:28:35,000 მაგრამ ამ განმარტებას ო შეესაბამება 22 shadow გლობალური ერთი. 693 00:28:35,000 --> 00:28:38,190 ასე რომ, ეს ერთი იმუშავებს ძირითადი და გლობალური 694 00:28:38,190 --> 00:28:41,670 რეალურად გამოიყენოს, როდესაც თქვენ დადებითი int მაგრამ უფრო, რომ 695 00:28:41,670 --> 00:28:43,890 სხვა დროს, მაგრამ მხოლოდ მათთვის საინტერესო. 696 00:28:43,890 --> 00:28:45,970 >> მოკლედ, ჩვენ დაფიქსირება ამ აქ. 697 00:28:45,970 --> 00:28:49,220 ახლა მოდით აჯავრებენ გარდა სხვა ორი ცალი სანამ ჩვენ შევხედოთ ერთი ბოლო ხაზი კოდი 698 00:28:49,220 --> 00:28:50,170 ამ პროგრამაში. 699 00:28:50,170 --> 00:28:52,170 დადებითი int. 700 00:28:52,170 --> 00:28:54,450 მარცხენა მხარეს მისი სიტყვა სიტყვა int. 701 00:28:54,450 --> 00:28:56,860 რას ნიშნავს ეს ნიშნავდეს ფიქრობთ? 702 00:28:56,860 --> 00:28:58,900 ჯერჯერობით ჩვენ ძირითადად ჩანს ბათილად. 703 00:28:58,900 --> 00:28:59,400 ჰო? 704 00:28:59,400 --> 00:29:01,810 >> აუდიტორია: ეს არის იმ ტიპის ცვლადი, რომ თქვენ გეკითხებით. 705 00:29:01,810 --> 00:29:04,550 >> დინამიკები 1: ჰო ეს არის ტიპის, ნება მომეცით არ ვამბობ, ცვლადი, მაგრამ ტიპის მნიშვნელობა 706 00:29:04,550 --> 00:29:05,990 რომ მე ითხოვს უკან. 707 00:29:05,990 --> 00:29:08,070 და მართლაც, რომ ინტუიციური აქ, იმედია. 708 00:29:08,070 --> 00:29:08,200 მარჯვენა? 709 00:29:08,200 --> 00:29:10,250 თუ გსურთ მიიღოთ დადებითი int, რა არის ეს, 710 00:29:10,250 --> 00:29:12,920 მინდა, რომ ფუნქცია, როგორც ჩვენი მოხალისეები გასულ კვირას 711 00:29:12,920 --> 00:29:15,720 გადასცემს თქვენ უკან ნაჭერი ქაღალდი რომელზეც int ეს? 712 00:29:15,720 --> 00:29:19,190 ასე რომ, ჩვენ დააკონკრეტა, რომ ე.წ. დაბრუნების ტიპის ამ ფუნქციის 713 00:29:19,190 --> 00:29:20,450 არის დადებითი int. 714 00:29:20,450 --> 00:29:22,990 თუ ჩვენ არ გვინდა, რომ ეს დაბრუნდეს არაფერი, თქვენ ამბობთ, ბათილად. 715 00:29:22,990 --> 00:29:25,270 თუ გსურთ, რომ დაბრუნდება სიმებიანი, თქვენ ამბობთ, სიმებიანი. 716 00:29:25,270 --> 00:29:27,310 თუ გსურთ, რომ დაბრუნდება float, თქვენ ამბობთ, float. 717 00:29:27,310 --> 00:29:30,440 მაგრამ მხოლოდ ერთი, რომ ეხება აქ ლოგიკურად, რადგან მე გამოყენებით კიდევ int, 718 00:29:30,440 --> 00:29:34,130 მიუხედავად იმისა, რომ მე ზღუდავს მას დადებითი ღირებულებების, არის ის, რომ დაბრუნდეს int. 719 00:29:34,130 --> 00:29:38,380 >> ასე რომ, პირიქით, რას ნიშნავს ეს რომ არის ბათილად ფრჩხილებში? 720 00:29:38,380 --> 00:29:40,130 რა ფრჩხილებში ზოგადად განსაზღვრავს? 721 00:29:40,130 --> 00:29:40,588 ჰო? 722 00:29:40,588 --> 00:29:42,880 >> აუდიტორია: ეს იმას ნიშნავს, რომ ფუნქცია რეალურად არ მიღების იგი. 723 00:29:42,880 --> 00:29:44,650 >> დინამიკები 1: ეს ნიშნავს, რომ ფუნქცია რეალურად არ მიღების, რა? 724 00:29:44,650 --> 00:29:45,430 >> აუდიტორია: შესასვლელი. 725 00:29:45,430 --> 00:29:46,763 >> დინამიკები 1: input, განაწილებაზე. 726 00:29:46,763 --> 00:29:49,870 ასე რომ, მართლაც, თუ ფრჩხილებში აქ თქვენ დააკონკრეტა ბათილად, 727 00:29:49,870 --> 00:29:51,650 ეს მხოლოდ იმას ნიშნავს, რომ მე არ მინდა რაიმე შეყვანა. 728 00:29:51,650 --> 00:29:53,269 მე გაუმკლავდეთ პრობლემა თავს. 729 00:29:53,269 --> 00:29:55,810 და მართლაც, თქვენ არ უნდა ვუთხრა დადებითი int არაფერი. 730 00:29:55,810 --> 00:29:59,630 თქვენ უბრალოდ ამბობენ, დადებითი int, და რომ ფუნქცია მიდის და გააკეთებს რამ. 731 00:29:59,630 --> 00:30:02,970 >> მაგრამ არსებობს პატარა ხრიკი მე სათამაშო აქ მთელი ამ ხნის 732 00:30:02,970 --> 00:30:04,970 რათა ეს კოდი ადგენს. 733 00:30:04,970 --> 00:30:09,620 გაითვალისწინეთ, რომ საუბარია int დადებითი int void-- არის ხაზი 27. 734 00:30:09,620 --> 00:30:14,530 მაგრამ ერთი შეხედვით უცნაური მიზეზი ეს არის ასევე აქ on line 16. 735 00:30:14,530 --> 00:30:18,530 და მხოლოდ კარგი ღონისძიება მე ვიმეორებ ეს ისე, ეს შესანიშნავად იდენტურია. 736 00:30:18,530 --> 00:30:21,640 და მე განაცხადა პროტოტიპი ერთად პატარა ერთი ხაზის კომენტარი. 737 00:30:21,640 --> 00:30:28,850 რა მოხდება, თუ წაშლა, და ახლა გამეორება მიიღოს ფუნქცია 1 შევა. 738 00:30:28,850 --> 00:30:29,350 Whoops. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 ერთი წუთით. 741 00:30:33,110 --> 00:30:34,764 სად არის ჩემი tab? 742 00:30:34,764 --> 00:30:35,263 არა? 743 00:30:35,263 --> 00:30:37,969 744 00:30:37,969 --> 00:30:39,620 ლოდინის მაქსიმალური. 745 00:30:39,620 --> 00:30:41,570 ჩადება ფუნქცია 1. 746 00:30:41,570 --> 00:30:42,150 იქ ჩვენ წავიდეთ. 747 00:30:42,150 --> 00:30:42,310 OK. 748 00:30:42,310 --> 00:30:43,400 ჰქონდა შენახული სწორად. 749 00:30:43,400 --> 00:30:45,220 ასე რომ, მე ვფიქრობ, რომ ცოტა bug აქ, სადაც მე არ ვარ 750 00:30:45,220 --> 00:30:46,636 ხედავს tab სახელი მომენტში. 751 00:30:46,636 --> 00:30:47,940 ასე რომ, რა ხდება აქ? 752 00:30:47,940 --> 00:30:52,210 იმპლიციტური დეკლარაციის ფუნქციის დადებითი int არასწორი C99. 753 00:30:52,210 --> 00:30:53,940 ასე რომ გაუგებარია ერთხელ. 754 00:30:53,940 --> 00:30:55,200 რა არის ეს მიუთითებს? 755 00:30:55,200 --> 00:30:57,287 ისე, გამოდის, რომ C საკმაოდ სულელური. 756 00:30:57,287 --> 00:30:59,912 ისე, ეს პროგრამირების ენის, უფრო სწორად, შემდგენელი. 757 00:30:59,912 --> 00:31:02,940 ეს მხოლოდ იცის, რა გაქვთ ისწავლება, და ეს მხოლოდ 758 00:31:02,940 --> 00:31:05,640 უნდა იცოდეს, რომ რაღაც თუ ასწავლიდა, რომ ადრე. 759 00:31:05,640 --> 00:31:07,960 სხვა სიტყვებით რომ ვთქვათ, მთავარი მომენტში, მე 760 00:31:07,960 --> 00:31:10,900 ცდილობს მოვუწოდებთ ფუნქცია მოუწოდა დადებითი int. 761 00:31:10,900 --> 00:31:14,120 მაგრამ შემდგენელი არ აპირებს შეამჩნია, რომ დადებითი int 762 00:31:14,120 --> 00:31:16,500 არსებობს, სანამ ხაზი 26. 763 00:31:16,500 --> 00:31:21,360 ასე რომ, რა შემდგენელი არ არის მხოლოდ შეცდომები, როგორც კი იგი იღებს გამოდიან 17 764 00:31:21,360 --> 00:31:23,700 განაცხადა, დაფარული დეკლარაცია საქართველოს დადებითი int, რომელიც 765 00:31:23,700 --> 00:31:27,740 არის მხოლოდ ლამაზი გზა ამბობდა, მე არ იცით, რა დადებითი int არის. 766 00:31:27,740 --> 00:31:31,240 >> სხვა ენებზე, როგორიცაა Java და Python და Ruby შეიძლება მოველით. 767 00:31:31,240 --> 00:31:32,240 C არ არის. 768 00:31:32,240 --> 00:31:35,110 ასე რომ, გზა ჩვენ დაფიქსირება ეს არის ერთ ერთი ორი გზა. 769 00:31:35,110 --> 00:31:40,160 არც ერთი, თუ პრობლემა ის არის, რომ მიიღოს დადებითი int არ მინახავს ადრე, 770 00:31:40,160 --> 00:31:42,150 ასევე, ნება მომეცით გადაადგილება მას ზედა. 771 00:31:42,150 --> 00:31:43,650 ეს იქნებოდა დაფიქსირება ამ პრობლემას. 772 00:31:43,650 --> 00:31:46,790 მაგრამ ზოგადად, ითვლება უკეთესი ტექნიკა 773 00:31:46,790 --> 00:31:50,220 იმისათვის, რომ თქვენი ძირითადი ფუნქცია ძალიან დაბრუნება ისე, რომ ადამიანის კითხულობს თქვენი კოდი 774 00:31:50,220 --> 00:31:52,710 იცის, რა პროგრამა აკეთებს, იმიტომ, რომ მთავარი არ არის დაკრძალული ყველა 775 00:31:52,710 --> 00:31:53,960 გზა ბოლოში და შუაში. 776 00:31:53,960 --> 00:31:55,130 ეს არის ძალიან დაბრუნება. 777 00:31:55,130 --> 00:31:56,410 ასე რომ, არ გრძნობენ იდეალური. 778 00:31:56,410 --> 00:31:58,326 და თქვენ შეგიძლიათ რეალურად მიიღოს ისეთ სიტუაციებში, სადაც 779 00:31:58,326 --> 00:32:00,820 თუ ერთ-ერთი ფუნქცია მოუწოდებს კიდევ ერთი, რომელიც მოუწოდებს სხვა, 780 00:32:00,820 --> 00:32:04,630 თქვენ შეგიძლიათ მიიღოთ საკითხი, სადაც არც შეიძლება ზემოთ სხვა, ლოგიკურად. 781 00:32:04,630 --> 00:32:05,920 ეს უბრალოდ შეუძლებელია. 782 00:32:05,920 --> 00:32:09,290 >> ასე რომ გზაზე მუშაობა გარშემო არის მხოლოდ მიიღოს 783 00:32:09,290 --> 00:32:13,200 ფუნქცია ხელმოწერის, ასე ვთქვათ პირველი ხაზი, სადაც ეს declared-- 784 00:32:13,200 --> 00:32:16,850 და მხოლოდ ასლი, პასტა, იგი დაბრუნება, მაგრამ არა curly აფრთხილებს 785 00:32:16,850 --> 00:32:17,980 მხოლოდ მძიმით. 786 00:32:17,980 --> 00:32:20,840 ეს იგივეა, პატარა მინიშნება რა არის მოვა. 787 00:32:20,840 --> 00:32:26,630 და სინამდვილეში, მთელი ამ დროის განმავლობაში, როდესაც ჩვენ მინახავს რამ, როგორიცაა სტანდარტული io.h 788 00:32:26,630 --> 00:32:33,040 და cs50.h, ასევე, იმ dot თ ფაილები არსებობს სხვა პროტოტიპები. 789 00:32:33,040 --> 00:32:35,250 ჩვენ დავინახავთ, რომ ხანგრძლივი. 790 00:32:35,250 --> 00:32:39,340 >> მოკლედ, როდესაც თქვენ გაქვთ პროგრამა ფაილი ერთად მრავალი ფუნქციები 791 00:32:39,340 --> 00:32:42,300 გარდა ამისა, მთავარი, თქვენ თითქმის ყოველთვის გვინდა, რომ აცხადებენ, მათ 792 00:32:42,300 --> 00:32:45,360 უბრალოდ გზით მათი პირველი ხაზი, რასაც მოჰყვა მძიმით, 793 00:32:45,360 --> 00:32:48,410 ძალიან ზევით ფაილი. 794 00:32:48,410 --> 00:32:50,460 ეს იყო ბევრი ერთდროულად. 795 00:32:50,460 --> 00:32:53,130 ნებისმიერი კითხვები? 796 00:32:53,130 --> 00:32:53,920 ნებისმიერი კითხვები? 797 00:32:53,920 --> 00:32:54,530 ყველა უფლება. 798 00:32:54,530 --> 00:32:59,760 >> ასე რომ, მოდით გადაადგილება შემდეგ რაღაც ხველა. 799 00:32:59,760 --> 00:33:00,260 Oh. 800 00:33:00,260 --> 00:33:00,570 როგორ იარაღი. 801 00:33:00,570 --> 00:33:01,220 ყველა უფლება. 802 00:33:01,220 --> 00:33:02,260 ხველა. 803 00:33:02,260 --> 00:33:05,080 ასე რომ, აქ არის გ პროგრამას 804 00:33:05,080 --> 00:33:07,560 ჩვენ გავაკეთეთ მეორე დღეს Scratch, რომ ძალიან უბრალოდ 805 00:33:07,560 --> 00:33:08,691 ამბობს, ხველა, ხველა, ხველა. 806 00:33:08,691 --> 00:33:09,190 ყველა უფლება. 807 00:33:09,190 --> 00:33:11,136 და ვინმე ამბობს, რამდენიმე დღის წინ, რომ იქ 808 00:33:11,136 --> 00:33:12,760 გზა დასუფთავების ეს კოდი უკვე. 809 00:33:12,760 --> 00:33:12,880 ყველა უფლება? 810 00:33:12,880 --> 00:33:15,440 როგორც კი თქვენ გადაწერა და pasting ალბათ ცუდი დიზაინი. 811 00:33:15,440 --> 00:33:18,725 ერთხელ მაინც მივიღებთ, რომ ოთხი ან ხუთი ან 20 coughs, ის გრძნობს, ცუდი პრაქტიკა. 812 00:33:18,725 --> 00:33:19,850 ჩვენ უბრალოდ შეინახოს ასლი, pasting. 813 00:33:19,850 --> 00:33:22,213 რა არის აშკარა გადაწყვეტა დასუფთავების ამ პროგრამის up? 814 00:33:22,213 --> 00:33:23,120 >> აუდიტორია: Loop. 815 00:33:23,120 --> 00:33:23,350 >> დინამიკები 1: ჰო. 816 00:33:23,350 --> 00:33:24,070 ასე რომ, გამოიყენოთ loop. 817 00:33:24,070 --> 00:33:27,697 და ჩვენ შეგვიძლია გამოვიყენოთ ამისთვის მარყუჟის, ხოლო loop, ნებისმიერი რაოდენობის მიდგომები. 818 00:33:27,697 --> 00:33:29,780 და მართლაც, რომ ის, რაც ვაკეთებთ ვერსია აქ. 819 00:33:29,780 --> 00:33:32,250 მე ნაცვლად გადაწერილი ეს ვერსია ერთ cough.c 820 00:33:32,250 --> 00:33:35,170 უნდა იყოს მხოლოდ ხველა ფარგლებში for-loop. 821 00:33:35,170 --> 00:33:38,240 ყველა უფლება, მაგრამ არ არის შესაძლებლობა ახლა სახის დაწყება 822 00:33:38,240 --> 00:33:41,630 რათა შეიმუშავონ ამ ცოტა უფრო გაკვეთილი ჩვენ ისწავლება მომენტში წინ, 823 00:33:41,630 --> 00:33:46,190 რომელიც ამას ვარაუდობენ, რომ მინდოდა შევქმნათ ფუნქცია მოუწოდა ხველა, 824 00:33:46,190 --> 00:33:49,730 განვიხილოთ მხოლოდ ერთი წუთით რას აპირებს გამოიყურებოდეს. 825 00:33:49,730 --> 00:33:51,900 ასე რომ, თუ გვინდა, რომ რაღაც ხველა, მე უბრალოდ უნდა 826 00:33:51,900 --> 00:33:53,800 გამოიყენოთ ბეჭდვითი ვ შიგნით ფუნქცია. 827 00:33:53,800 --> 00:33:55,030 და მართლაც, მე ვარ. 828 00:33:55,030 --> 00:33:56,990 და სინამდვილეში, ეს ყველაფერი დროს, ნებისმიერ დროს თქვენ 829 00:33:56,990 --> 00:33:59,000 ბეჭდვის რაღაც ეკრანზე, პროგრამისტი 830 00:33:59,000 --> 00:34:00,610 მინდა მოვუწოდო, რომ გვერდითი ეფექტი. 831 00:34:00,610 --> 00:34:02,990 ეს არ არის ჩემთვის გადაცემის უკან ვინმე მნიშვნელობა. 832 00:34:02,990 --> 00:34:06,170 ეს ჩემთვის გარკვეული ქმედება რომ შეიძლება იყოს ვიზუალურად აშკარაა. 833 00:34:06,170 --> 00:34:10,672 მაგრამ ეს ფუნქცია ხველა, იგი დაბრუნდება არაფერი საფუძველზე მისი პირველი ხაზი? 834 00:34:10,672 --> 00:34:12,880 არა, რადგან მისი დაბრუნების ტიპის ბათილია, რომელიც მხოლოდ იმას ნიშნავს, 835 00:34:12,880 --> 00:34:14,250 ეს არ გადაცემის ჩემთან არაფერი უკან. 836 00:34:14,250 --> 00:34:16,791 ეს შეიძლება იყოს თავისსავე ვიზუალურად, მაგრამ ეს არ გადაცემის me 837 00:34:16,791 --> 00:34:18,639 უკან ნაჭერი ქაღალდი, როგორც გასულ კვირას. 838 00:34:18,639 --> 00:34:21,310 >> ნიშნავს თუ არა ეს გჭირდებათ რაიმე შეყვანის? 839 00:34:21,310 --> 00:34:21,810 No. 840 00:34:21,810 --> 00:34:23,134 ასე რომ, ეს ბათილად აქაც. 841 00:34:23,134 --> 00:34:25,600 ასე რომ, ეს ძალიან სახის მეტი საინჟინრო ეს პრობლემა. 842 00:34:25,600 --> 00:34:26,099 მარჯვენა? 843 00:34:26,099 --> 00:34:28,820 მე გადაცემას უფრო რთული, უფრო ხაზი კოდი, 844 00:34:28,820 --> 00:34:31,889 მე არ გახადა ნებისმიერი უფრო ფუნქციონალური, მაგრამ ეს 845 00:34:31,889 --> 00:34:34,210 იქნება სტეპინგზე ქვის, ალბათ, უფრო ფართო 846 00:34:34,210 --> 00:34:36,830 კონტექსტში უფრო რთული კოდი. 847 00:34:36,830 --> 00:34:38,150 მაგრამ რა ამის შესახებ? 848 00:34:38,150 --> 00:34:42,050 რა მაქვს done-- მხოლოდ glancing ზე ამ გარეშე ეძებს კომენტარის დამატება 849 00:34:42,050 --> 00:34:46,076 ძალიან ზევით ფაილი რა აქვს მე ფუნდამენტურად გაკეთდეს აქ ჩემი ხველა 850 00:34:46,076 --> 00:34:47,409 განხორციელება, რომელიც არის განსხვავებული? 851 00:34:47,409 --> 00:34:48,327 ჰო, უკან? 852 00:34:48,327 --> 00:34:51,384 >> აუდიტორია: გააკეთეთ ეს ისე, თქვენ შეგიძლიათ აქვს ხასიათი გამორთვა. 853 00:34:51,384 --> 00:34:52,050 დინამიკები 1: ჰო. 854 00:34:52,050 --> 00:34:53,270 ასე რომ, ეს გრძნობს სახის ლამაზი. 855 00:34:53,270 --> 00:34:53,389 მარჯვენა? 856 00:34:53,389 --> 00:34:56,600 ეს იგივეა, დასძინა ფუნქცია პროგრამა ან ფუნქცია, ამ შემთხვევაში. 857 00:34:56,600 --> 00:34:57,830 ეს ჯერ კიდევ ბრუნდება არაფერი. 858 00:34:57,830 --> 00:35:00,538 ალბათ, ვიზუალური მხარე ეფექტი, იმიტომ, რომ ის მოუწოდებდა ბეჭდვითი ვ. 859 00:35:00,538 --> 00:35:02,800 მაგრამ ახლა მე არ parametrized ფუნქცია, რომელიც 860 00:35:02,800 --> 00:35:06,470 ნიშნავს მე მითითებული მიღებული შეყვანის ტიპის int და ეძახით n, 861 00:35:06,470 --> 00:35:08,510 მაგრამ მე ვერ ვუწოდებ არაფერი მინდა. 862 00:35:08,510 --> 00:35:11,550 ფაქტობრივად, ეს შეიძლება იყოს მხოლოდ ჯერ უნდა იყოს კიდევ უფრო ცხადი. 863 00:35:11,550 --> 00:35:13,310 და მაშინ მე ვერ უბრალოდ შეცვალოს აქ. 864 00:35:13,310 --> 00:35:16,450 მაგრამ საქმე ისაა, რომ ეს არის, თუ მე შევქმნათ ფუნქცია, რომელიც იღებს შეყვანის. 865 00:35:16,450 --> 00:35:19,530 და თუ გავიხსენებთ, flipping მეშვეობით ალბათ ამჟამად ერთ 866 00:35:19,530 --> 00:35:23,000 საქართველოს მსვლელობა throughs, რომ მეოთხე და საბოლოო ხველა მაგალითად, 867 00:35:23,000 --> 00:35:27,150 თქვენ შეამჩნევთ აქ მე განზოგადებული ჩემი კოდი further-- სახის რეფერირებადი 868 00:35:27,150 --> 00:35:27,690 მის შემდგომ. 869 00:35:27,690 --> 00:35:31,390 ისევე როგორც ხველა და sneeze, ორივე შესახებ, თითქოს ამბობდა რაღაც ან მიღების 870 00:35:31,390 --> 00:35:32,330 გარკვეული სახის sound. 871 00:35:32,330 --> 00:35:34,725 Save იქნება შესაბამისი Scratch ბლოკი. 872 00:35:34,725 --> 00:35:37,350 ასე რომ, რა გავაკეთე ამ ვერსია, რომელიც ჩვენ შეგვიძლია მხოლოდ ერთი შეხედვით, 873 00:35:37,350 --> 00:35:43,170 არის ხველა, ისევე, როგორც ამბობდა, [ხველა], ხველა, და იმავდროულად, ცემინება არის 874 00:35:43,170 --> 00:35:44,570 როგორც ამბობდა, [Achoo]. 875 00:35:44,570 --> 00:35:46,900 ასე რომ, მე განზოგადებული განხორციელების იმ 876 00:35:46,900 --> 00:35:48,970 ახლა ახორციელებს ეს ზოგადი ფუნქცია, 877 00:35:48,970 --> 00:35:51,490 ამბობენ, რაც საინტერესოა დღევანდელი მიზნებისათვის 878 00:35:51,490 --> 00:35:54,300 მხოლოდ იმიტომ, რომ ჯერ კიდევ ამჯამად არ აქვს დაბრუნების ტიპის. 879 00:35:54,300 --> 00:35:56,398 მაგრამ რამდენი საშუალებებით აქვს მას? 880 00:35:56,398 --> 00:35:56,981 აუდიტორია: ორი. 881 00:35:56,981 --> 00:35:57,430 დინამიკები 1: ორი. 882 00:35:57,430 --> 00:35:59,263 ასე რომ, თუ გსურთ მიიღოს ორი არგუმენტი, 883 00:35:59,263 --> 00:36:00,710 ისევე გამოყოფა მათ მძიმით. 884 00:36:00,710 --> 00:36:03,110 და თუ გვინდა, რომ მერე მოვუწოდებთ, რომ ფუნქცია, 885 00:36:03,110 --> 00:36:05,800 შეამჩნია, რომ თქვენ მხოლოდ დარეკეთ ვთქვათ, ციტირებით unquote, 886 00:36:05,800 --> 00:36:09,090 პირველი არგუმენტი, საერთო n, მეორე არგუმენტი. 887 00:36:09,090 --> 00:36:12,130 ასე რომ კიდევ ერთხელ, ჩვენ უბრალოდ უნდა ახლა სამშენებლო ბლოკების ისე, რომ ჩვენ შეგვიძლია რეალურად 888 00:36:12,130 --> 00:36:15,686 განახორციელოს ზოგიერთი ჩვენი საკუთარი ფუნქციები. 889 00:36:15,686 --> 00:36:16,570 ყველა უფლება. 890 00:36:16,570 --> 00:36:19,690 ნებისმიერი კითხვები ამ? 891 00:36:19,690 --> 00:36:22,400 >> ასე რომ, ახლა მოდით კანი უკან ფენის თუ ასე. 892 00:36:22,400 --> 00:36:24,840 და მიზანი, საბოლოო ჯამში, მომავალ კვირას პრობლემა კომპლექტი 893 00:36:24,840 --> 00:36:27,710 აპირებს იყოს cryptogrophy-- ხელოვნების scrambling ინფორმაციას. 894 00:36:27,710 --> 00:36:30,640 კერძოდ, ინფორმაცია იქნება თქვენ encrypt ან decrypt 895 00:36:30,640 --> 00:36:31,605 იქნება ტექსტი. 896 00:36:31,605 --> 00:36:33,980 და ისე, რომ სახის იწვევს კითხვა დღეს, როგორც კარგად, 897 00:36:33,980 --> 00:36:38,480 რა ხდება ქვეშ hood ტექსტის მიღმა ASCII კვირაში ნულოვანი, 898 00:36:38,480 --> 00:36:40,730 და როგორ შეიძლება ჩვენ, ფაქტობრივად, დაიწყოს მანიპულირება? 899 00:36:40,730 --> 00:36:43,070 ასე რომ, აქ არის Zamyla სახელი. 900 00:36:43,070 --> 00:36:47,380 და ტექსტი, რომელიც შეიძლება inputted შევიდა, როგორც მიიღოს სიმებიანი ფუნქცია. 901 00:36:47,380 --> 00:36:52,540 და იწყება ახლა, როდესაც თქვენ ხედავთ სიმებიანი მოსწონს ეს Z-A-M-Y-L-A-- 902 00:36:52,540 --> 00:36:56,550 დაიწყოს ფიქრი, თითქოს ყოველ იმ პერსონაჟების ყუთში მისი 903 00:36:56,550 --> 00:36:57,050 საკუთარი. 904 00:36:57,050 --> 00:36:59,460 და მართლაც, ერთი კვირის ან ასე არის დროს, თითოეული ამ ყუთები 905 00:36:59,460 --> 00:37:04,280 აპირებს წარმოადგენს ძალიან კონკრეტულად ბლოკი memory-- bite, მეხსიერება. 906 00:37:04,280 --> 00:37:07,050 ასე რომ თითოეული ეს წერილები, საბოლოო ჯამში, წარმოადგენს 8 ბიტი. 907 00:37:07,050 --> 00:37:10,560 და ჩვენ რეალურად ვხედავთ, რა ხდება ქვეშ hood ჩემი კომპიუტერი. 908 00:37:10,560 --> 00:37:13,440 >> მაგრამ არა საკმარისია უბრალოდ შეხედეთ Zamyla 909 00:37:13,440 --> 00:37:17,520 ამ გზით ობიექტივი, რომლის დროსაც თითოეული ეს წერილები არის საკუთარი ყუთი. 910 00:37:17,520 --> 00:37:22,697 და ლამაზად საკმარისი C ჩვენ შეგვიძლია წვდომის ყოველი ამ ყუთები პირდაპირ. 911 00:37:22,697 --> 00:37:25,530 ასე რომ, თუ გსურთ მიიღოთ პირველი წერილში მისი სახელი, სუპერ მარტივი in C. 912 00:37:25,530 --> 00:37:28,410 თუ გსურთ მიიღოთ ბოლო წერილი, სუპერ მარტივია, ასევე 913 00:37:28,410 --> 00:37:30,240 ერთად ნაჭერი ახალი სინტაქსის. 914 00:37:30,240 --> 00:37:36,250 >> ამიტომ, მე ვაპირებ წავიდეთ წინ შევიდა CS50 IDE და გახსენით სიმებიანი ნულოვანი dot C. 915 00:37:36,250 --> 00:37:40,270 და ამ მაგალითად აქ, არსებობს რამდენიმე ახალი რამ ხდება. 916 00:37:40,270 --> 00:37:44,360 ასე რომ, პირველი ხაზი 19, ჩვენ მინახავს ეს ადრე მიიღოს სიმებიანი. 917 00:37:44,360 --> 00:37:49,840 ასე რომ, როგორც სწრაფი საღი აზრის შემოწმება, თუ ვინმე შეიძლება შესთავაზოს up სიტყვიერი 918 00:37:49,840 --> 00:37:52,662 ერისკაცად წარმოგვიდგება განმარტებით, რა ხდება ხაზი 19. 919 00:37:52,662 --> 00:37:55,370 ისევე როგორც უბრალოდ თარგმნოს ეს შევიდა ინგლისური, რომ roommate არ CS50 920 00:37:55,370 --> 00:37:56,416 ალბათ ესმით. 921 00:37:56,416 --> 00:37:56,916 ჰო. 922 00:37:56,916 --> 00:37:59,749 >> აუდიტორია: გაქვთ მომხმარებლის შეყვანის სიმებიანი და ჩაწეროთ იგი ცვლადი s. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 დინამიკები 1: კარგი. 925 00:38:02,600 --> 00:38:05,579 Have მომხმარებლის შეყვანის სიმებიანი და ჩაწეროთ იგი ცვლადი s. 926 00:38:05,579 --> 00:38:06,120 სწორედ დიდი. 927 00:38:06,120 --> 00:38:08,090 ასე რომ მარჯვენა მხარეს მოვუწოდებთ, მიიღოს სიმებიანი. 928 00:38:08,090 --> 00:38:10,340 რომ დააბრუნებს მნიშვნელობა რომ ვერ დანიშნული 929 00:38:10,340 --> 00:38:14,230 საწყისი მარჯვენა მხარეს მარცხენა მხარე ცვლადში s, რომ 930 00:38:14,230 --> 00:38:15,950 შექმნილია შესანახად სიმებიანი. 931 00:38:15,950 --> 00:38:16,800 ზუსტად. 932 00:38:16,800 --> 00:38:20,000 >> ასე რომ, ახლა ხაზი 22, თითო კომენტარი შეესაბამება 21, 933 00:38:20,000 --> 00:38:22,780 აშკარად ბეჭდავს რომ სიმებიანი ერთი ხასიათი თითო ხაზზე. 934 00:38:22,780 --> 00:38:23,740 მაგრამ როგორ? 935 00:38:23,740 --> 00:38:27,040 ასე რომ, პირველ რიგში, ჩვენ ინიციალიზაცია მე 0. 936 00:38:27,040 --> 00:38:31,061 და მაშინ, თუ მივიღებთ ბოლოს Zamyla სახელი? 937 00:38:31,061 --> 00:38:32,810 ისე, ბოლოს Zamyla სახელი, შემეძლო 938 00:38:32,810 --> 00:38:38,151 ხელით ჩაწერეთ ბოლო ხასიათი მისი სახელი რატომღაც, ან რაოდენობის იგი. 939 00:38:38,151 --> 00:38:38,650 მარჯვენა? 940 00:38:38,650 --> 00:38:43,500 თუ ჩვენ უკან აქ Z-A-M-L-- Y-L-A-- ასე რომ მე აკრიფოთ. 941 00:38:43,500 --> 00:38:47,340 რა არის ინდექსი Zamyla ბოლო წერილი? 942 00:38:47,340 --> 00:38:52,517 თუ ეს 0- საუბარი, როგორც programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 მე heard-- ასე ნამდვილად, ბოლო წერილი ამ Zamyla სახელი მეექვსე, 944 00:38:56,570 --> 00:38:58,890 მაგრამ თუ ჩვენ ითვლიან საწყისი 0, ეს იქნება 5 ნომერი. 945 00:38:58,890 --> 00:39:01,320 ასე რომ შევინარჩუნოთ ამის გათვალისწინებით, აქ. 946 00:39:01,320 --> 00:39:04,929 >> თურმე არსებობს ფუნქცია C მოუწოდა strlen, და უკან დღეში 947 00:39:04,929 --> 00:39:06,720 და ამ დღეს მაინც, ბევრი პროგრამისტები 948 00:39:06,720 --> 00:39:09,524 აირჩიეთ სინქრონიზაციის სახელები მათი ფუნქციები, რომელიც ჟღერს, როგორც სიტყვა 949 00:39:09,524 --> 00:39:10,440 ისინი ცდილობენ ვთქვა. 950 00:39:10,440 --> 00:39:12,590 ასე strlen არის string სიგრძე. 951 00:39:12,590 --> 00:39:18,168 ასე რომ, თუ რა სიმებიანი ხანგრძლივობა S დაბრუნებას, როდესაც Zamyla არის input? 952 00:39:18,168 --> 00:39:19,569 >> აუდიტორია: ხუთი. 953 00:39:19,569 --> 00:39:22,090 >> დინამიკები 1: Z-A-M-Y-L. ექვსი. 954 00:39:22,090 --> 00:39:22,590 მარჯვენა? 955 00:39:22,590 --> 00:39:23,940 რა არის სიგრძეზე Zamyla სახელი? 956 00:39:23,940 --> 00:39:24,440 მარჯვენა? 957 00:39:24,440 --> 00:39:26,240 და მხოლოდ რეალურად, ექვსი ასო. 958 00:39:26,240 --> 00:39:26,740 მარჯვენა? 959 00:39:26,740 --> 00:39:28,940 ასე რომ, რას ნიშნავს ჩვენი loop? 960 00:39:28,940 --> 00:39:32,130 ჩვენ ვაპირებთ, რომ წავიდეს 0 მდე ექვსი, რომელიც 961 00:39:32,130 --> 00:39:33,650 აპირებს მოგვცეს ხუთ გამეორების. 962 00:39:33,650 --> 00:39:34,890 რა ვქნათ, თითოეულ iteration? 963 00:39:34,890 --> 00:39:36,870 ისე, პროცენტი C, ვინმე მიხვდა, რომ მეორე დღეს, 964 00:39:36,870 --> 00:39:38,710 ნიშნავს ჩანაცვლების რა? 965 00:39:38,710 --> 00:39:39,335 >> აუდიტორია: ჩარ. 966 00:39:39,335 --> 00:39:40,293 დინამიკები 1: უბრალოდ char. 967 00:39:40,293 --> 00:39:42,877 ასე რომ, ერთი გმირი არ სხვადასხვა პერსონაჟების მსგავსად სიმებიანი. 968 00:39:42,877 --> 00:39:45,251 და მერე აქ ახალი ხაზი რომ ჩვენ მივიღეთ ბეჭდვა. 969 00:39:45,251 --> 00:39:46,580 და მერე აქ ახალი სინტაქსის. 970 00:39:46,580 --> 00:39:51,130 თუ გსურთ ამობეჭდოთ i-th პერსონაჟი სიმებიანი S, ასე ვთქვათ, 971 00:39:51,130 --> 00:39:54,060 შეგიძლიათ უბრალოდ აცხადებენ, ასახელებს სიმებიანი S, 972 00:39:54,060 --> 00:39:58,230 და შემდეგ გახსნა კვადრატული ფრჩხილი და შემდეგ დაიხურა კვადრატული ფრჩხილი, რომელზეც i 973 00:39:58,230 --> 00:39:58,780 შუა. 974 00:39:58,780 --> 00:40:01,430 და ეს არის სახის ლამაზი, რომ ეს ერთგვარი ჰგავს მოედანზე 975 00:40:01,430 --> 00:40:06,210 ისევე, როგორც სკვერების, რომელიც Zamyla ს გმირები არსებობს სურათზე. 976 00:40:06,210 --> 00:40:09,970 >> ასე რომ, თუ მე რეალურად აწარმოებს ამ ახლა, მოდით, ვნახოთ, რა მოხდება. 977 00:40:09,970 --> 00:40:15,190 ჩადება string 0 dot ხაზი სიმებიანი 0, და მაშინ მე 978 00:40:15,190 --> 00:40:16,720 ვაპირებ აკრიფოთ Zamyla სახელი. 979 00:40:16,720 --> 00:40:19,428 არ არის დროული, იმიტომ, რომ მე არ გამოყენება ბეჭდვითი ვ, მაგრამ ეს ჯარიმა. 980 00:40:19,428 --> 00:40:20,660 მე მხოლოდ ის ვიცი, რა უნდა გააკეთოს. 981 00:40:20,660 --> 00:40:23,240 და მართლაც, იგი ბეჭდავს out Zamyla სახელი, ერთ ხაზზე. 982 00:40:23,240 --> 00:40:25,760 >> ახლა მოდით იყოს ცოტა უგუნური. 983 00:40:25,760 --> 00:40:28,461 დავუშვათ, რომ მე არ ვიცი შესახებ strlen და I figured, 984 00:40:28,461 --> 00:40:31,460 ყველა უფლება, არავინ აპირებს ასახელებს დიდია, ვიდრე მოსწონს 50 სიმბოლო. 985 00:40:31,460 --> 00:40:36,360 მოდით წავიდეთ წინ და recompile ამ და გამეორება, და შემდეგ ჩაწერეთ Zamyla 986 00:40:36,360 --> 00:40:37,160 ერთხელ. 987 00:40:37,160 --> 00:40:40,850 ლოგიკურად, რა არის პროგრამა აპირებს ცდილობენ ბეჭდვა? 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-A მაშინ, როგორც 45 უცნობი ბაიტი მეხსიერება. 989 00:40:49,545 --> 00:40:51,670 და მართლაც, ჩვენ დავბრუნდებით ამ იდეას მეხსიერება. 990 00:40:51,670 --> 00:40:54,180 მაგრამ მხოლოდ ლოგიკურად, თუ Zamyla სახელი ამ ხნის განმავლობაში, 991 00:40:54,180 --> 00:40:56,450 როგორც ერთ სურათზე აქ, რასაც ჩვენ ვამბობთ, 992 00:40:56,450 --> 00:40:59,810 არის შენარჩუნება ბეჭდვა, შენარჩუნება ბეჭდვა, შენარჩუნება ბეჭდვა, შენარჩუნება ბეჭდვა, შენარჩუნება ბეჭდვა, 993 00:40:59,810 --> 00:41:03,781 ყველა გზა 50 ხასიათი, რომელიც ვინ იცის, რა მოხდება. 994 00:41:03,781 --> 00:41:05,030 მოდით რეალურად შევხედოთ. 995 00:41:05,030 --> 00:41:06,720 მოდით აკრიფოთ Zamyla. 996 00:41:06,720 --> 00:41:07,250 საინტერესოა. 997 00:41:07,250 --> 00:41:08,190 ჩვენ გაუმართლა. 998 00:41:08,190 --> 00:41:09,700 უბრალოდ მთელი bunch of თეთრი სივრცე. 999 00:41:09,700 --> 00:41:09,930 Oh. 1000 00:41:09,930 --> 00:41:11,120 არსებობს კიდევ ერთი ხმაურიანი ხასიათი. 1001 00:41:11,120 --> 00:41:14,577 ეს გამოიყურება სახის მოსწონს უცნაური კითხვა აღსანიშნავად არსებობს, მაგრამ არ არის Zamyla სახელი. 1002 00:41:14,577 --> 00:41:15,660 მოდით ნამდვილად უგუნური. 1003 00:41:15,660 --> 00:41:20,000 როგორ შესახებ ჩვენ ამობეჭდოთ 500 ბლოკები შევიდა უცნობი? 1004 00:41:20,000 --> 00:41:24,380 მოდით წავიდეთ წინ და ეს ისევე, და შემდეგ ხელახლა აწარმოებს. 1005 00:41:24,380 --> 00:41:27,980 და მოდით სრულ ეკრანზე, იმიტომ, რომ ჩვენ გვჭირდება უფრო მეტი სივრცე. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 მივიღე გაუმართლა ერთხელ. 1008 00:41:31,830 --> 00:41:33,070 >> Dare ჩვენ კიდევ უფრო უგუნური? 1009 00:41:33,070 --> 00:41:36,070 მოდით კიდევ უფრო უგუნური. 1010 00:41:36,070 --> 00:41:39,350 50,000 სიმბოლო. 1011 00:41:39,350 --> 00:41:41,390 ეს არის ყველაზე ნამდვილად არ არის კარგი იდეა. 1012 00:41:41,390 --> 00:41:41,890 ყველა უფლება. 1013 00:41:41,890 --> 00:41:42,990 ჩადება string 0. 1014 00:41:42,990 --> 00:41:44,720 ეს იქნება ჩვენი ბოლო დემო. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Ugh. 1017 00:41:48,632 --> 00:41:50,010 Ugh. 1018 00:41:50,010 --> 00:41:50,680 OK. 1019 00:41:50,680 --> 00:41:54,407 ასე რომ, ჩემი მეხსიერება მართლაც ცარიელი ახლა, რომელიც რეალურად სახის მოსახერხებელია. 1020 00:41:54,407 --> 00:41:55,990 რა ვცდილობ მისაღებად, რომელთა მიზანია ყველა უფლება. 1021 00:41:55,990 --> 00:41:57,614 და ახლა მე უბრალოდ აპირებს უგუნური. 1022 00:41:57,614 --> 00:41:58,570 500,000. 1023 00:41:58,570 --> 00:42:03,860 Make-- მოდით სრულ ეკრანზე იგი. 1024 00:42:03,860 --> 00:42:04,990 შეიტანეთ. 1025 00:42:04,990 --> 00:42:05,490 Zamyla. 1026 00:42:05,490 --> 00:42:12,050 1027 00:42:12,050 --> 00:42:13,390 იქ ჩვენ წავიდეთ. 1028 00:42:13,390 --> 00:42:15,610 წარმოდგენა არ მაქვს, რა, რომ არის, მაგრამ ეს ხმები ცუდი. 1029 00:42:15,610 --> 00:42:16,110 ყველა უფლება. 1030 00:42:16,110 --> 00:42:20,322 და სინამდვილეში, კი, თუ თქვენ შორის, ბედნიერი რამდენიმე საათებში 1031 00:42:20,322 --> 00:42:22,780 და ამ პრობლემის მითითებული ერთი, თქვენ შეიძლება ძალიან კარგად ექმნებათ ამ. 1032 00:42:22,780 --> 00:42:25,490 სეგმენტაცია ბრალია რეალურად აკეთებს აქვს კარგად განსაზღვრული მნიშვნელობა. 1033 00:42:25,490 --> 00:42:28,450 ეს იმას ნიშნავს, გარკვეული სახის შეცდომა დაკავშირებული სეგმენტი მეხსიერება. 1034 00:42:28,450 --> 00:42:30,490 და ერისკაცად წარმოგვიდგება თვალსაზრისით, ეს ნიშნავს, რომ ჩვენ შეეხო 1035 00:42:30,490 --> 00:42:34,780 memory-- ჩვენ გამოიყენება RAM ჩემი კომპიუტერი რომ მე არ უნდა ჰქონოდა წვდომა. 1036 00:42:34,780 --> 00:42:37,050 და რომ ის, რაც ორივე ძლიერი და საშიში 1037 00:42:37,050 --> 00:42:39,910 შესახებ C არის, რომ თქვენ რეალურად აქვს სამორინეში შესვლა 1038 00:42:39,910 --> 00:42:45,910 რომ მთლიანად თქვენი პროგრამის მეხსიერებაში ან ბაიტი ან RAM, უფრო კონკრეტულად. 1039 00:42:45,910 --> 00:42:49,510 >> ასე რომ, მიუხედავად იმისა, რომ Zamyla სახელი მხოლოდ ექვსი სიმბოლომდე 1040 00:42:49,510 --> 00:42:51,450 მე მაინც წავიდეთ სადმე მეხსიერების მინდა. 1041 00:42:51,450 --> 00:42:53,491 და როგორც განზე, თუ თქვენ ოდესმე წაიკითხა რამდენიმე სტატია 1042 00:42:53,491 --> 00:42:55,610 წლების განმავლობაში, ზოგიერთი სერვერზე, ან რამდენიმე პროგრამა 1043 00:42:55,610 --> 00:42:58,654 მიღების დაბზარული ან hacked, რომ მიღებული უპირატესობა რაღაც 1044 00:42:58,654 --> 00:43:00,820 ე.წ. ბუფერული overflow გამოყენებისათვის, რომ ჩვენ რეალურად 1045 00:43:00,820 --> 00:43:04,970 ვისაუბროთ რამდენიმე კვირის განმავლობაში, რომ ზოგადად გულისხმობდა რატომღაც tricking 1046 00:43:04,970 --> 00:43:09,090 კომპიუტერული შევიდა კარგად მიდის საზღვრებს მეხსიერება 1047 00:43:09,090 --> 00:43:11,410 ის, რომ უნდა ჰქონდეს, და მოძიებაში რაღაც წვნიანი 1048 00:43:11,410 --> 00:43:13,530 ამ memory-- დაგავიწყდათ, ალბათ, ისე, 1049 00:43:13,530 --> 00:43:16,990 ავლის სერიული ნომერი შეამოწმეთ, ან უბრალოდ ზოგადად შეუძლია 1050 00:43:16,990 --> 00:43:20,360 შეასრულა კომპიუტერი შესრულებაში კოდი, რომელიც არ იყო განკუთვნილი. 1051 00:43:20,360 --> 00:43:22,360 მაგრამ მოდით დაბრუნდება სინამდვილეში მხოლოდ ერთი წუთით 1052 00:43:22,360 --> 00:43:24,550 სადაც ეს პროგრამა განხორციელებული strlen, 1053 00:43:24,550 --> 00:43:26,110 და დანერგვა ერთი რამ აქ. 1054 00:43:26,110 --> 00:43:30,030 რა არის ახალი, მათ შორის ამ სამეულში ხაზები? 1055 00:43:30,030 --> 00:43:30,910 >> ასე რომ, სიმებიანი dot თ. 1056 00:43:30,910 --> 00:43:35,490 გამოდის, რომ ამ ბიბლიოთეკის მოუწოდა სიმებიანი Dot H, ან სიმებიანი ბიბლიოთეკა, 1057 00:43:35,490 --> 00:43:38,490 რომლის header ფაილი, ასე ვთქვათ, არის string dot h, რომელიც მაძლევს 1058 00:43:38,490 --> 00:43:40,860 ხელმისაწვდომობის ამ strlen ფუნქცია. 1059 00:43:40,860 --> 00:43:43,841 თუ მე გამომრჩეს, შემდგენელი არის აპირებს დაწეროთ ჩემთვის გარკვეული ფორმით. 1060 00:43:43,841 --> 00:43:44,590 მაგრამ იცით რა? 1061 00:43:44,590 --> 00:43:46,090 ახლა მოდით ნამდვილად რთული. 1062 00:43:46,090 --> 00:43:50,820 შესაბამისად 22, არსებობს რაღაც სახის საქართველოს inefficient-- ცუდად შექმნილია, 1063 00:43:50,820 --> 00:43:53,990 arguably-- ამ ხაზი კოდი. 1064 00:43:53,990 --> 00:43:56,280 გაიხსენეთ, თუ როგორ ამისთვის loop ხორციელდება 1065 00:43:56,280 --> 00:44:00,140 და რა ნაბიჯები განმეორდეს და ისევ და ისევ ინიციალიზაციისას, 1066 00:44:00,140 --> 00:44:04,110 მდგომარეობა, კოდი, რომელიც იღებს შესრულებული, მაშინ ნამატი 1067 00:44:04,110 --> 00:44:07,880 ან შეცვლას, მაშინ პირობა, მაშინ კოდი, შემდეგ ცვლილება, მაშინ 1068 00:44:07,880 --> 00:44:11,280 მდგომარეობა, მაშინ კოდი, შემდეგ ცვლილება და სხვ. 1069 00:44:11,280 --> 00:44:15,320 ასე რომ, რა შეიძლება იყოს პატარა შემაშფოთებელი და უხარისხოდ აქ? 1070 00:44:15,320 --> 00:44:16,387 ჰო, ლურჯი. 1071 00:44:16,387 --> 00:44:18,220 აუდიტორია: Strlen არის მოუწოდა ბევრჯერ. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 დინამიკები 1: ჰო. 1074 00:44:21,320 --> 00:44:23,700 ასე strlen ეწოდება ბევრჯერ, მაგრამ რა არის 1075 00:44:23,700 --> 00:44:27,113 ხანგრძლივობა Zamyla ის სახელი პირველად loop ახორციელებს? 1076 00:44:27,113 --> 00:44:27,860 >> აუდიტორია: ექვსი. 1077 00:44:27,860 --> 00:44:28,110 >> დინამიკები 1: ექვსი. 1078 00:44:28,110 --> 00:44:30,976 ისე, რა არის სიგრძეზე მისი სახელი მეორედ კოდი ახორციელებს? 1079 00:44:30,976 --> 00:44:31,432 >> აუდიტორია: ექვსი. 1080 00:44:31,432 --> 00:44:31,890 >> დინამიკები 1: ყველა უფლება. 1081 00:44:31,890 --> 00:44:32,720 ეს ჯერ კიდევ ექვსი. 1082 00:44:32,720 --> 00:44:33,220 მარჯვენა? 1083 00:44:33,220 --> 00:44:35,260 Zarla სახელი არ აქვს შეიცვალა, თუნდაც ვეძებ 1084 00:44:35,260 --> 00:44:38,240 მხოლოდ ნაწილი ასო მისი სახელი. 1085 00:44:38,240 --> 00:44:41,349 ასე რომ ის ფაქტი, რომ მე ვარ ეფექტურად სვამს ამ კითხვას, რა არის 1086 00:44:41,349 --> 00:44:44,640 ხანგრძლივობა Zamyla, რა სიგრძის საქართველოს Zamyla, რა სიგრძის Zamyla, 1087 00:44:44,640 --> 00:44:47,990 ექვსი ცალკე ჯერ, ან შვიდი კი, მხოლოდ სულელური, 1088 00:44:47,990 --> 00:44:50,390 იმიტომ, რომ ის უცვლელია, რომ პასუხი. 1089 00:44:50,390 --> 00:44:53,550 ასე რომ, რა შემეძლო რეალურად ამის არის ამ სიმების ერთი 1090 00:44:53,550 --> 00:44:55,680 მაქვს ოდნავ უკეთესი ვერსია აქ. 1091 00:44:55,680 --> 00:45:00,110 იქ whoops-- სიმებიანი ორი მაქვს ოდნავ უკეთესი ვერსია, სადაც 1092 00:45:00,110 --> 00:45:05,010 გავაკეთო ამას ნაცვლად მხოლოდ ინიციალიზაციისას I დან 0, მე ასევე მძიმით 1093 00:45:05,010 --> 00:45:07,990 აცხადებენ, მეორე ცვლადში N-- მე არ უნდა ვთქვა, int ერთხელ. 1094 00:45:07,990 --> 00:45:09,220 მე არ უნდა, ფაქტობრივად. 1095 00:45:09,220 --> 00:45:10,380 მაგრამ მე ვამბობ, n. 1096 00:45:10,380 --> 00:45:13,610 და მერე ინიციალიზაცია n to გამოყენება strlen ო, ისე, რომ ახლა 1097 00:45:13,610 --> 00:45:17,110 რამდენჯერ strlen შესრულებული საერთო ჯამში? 1098 00:45:17,110 --> 00:45:17,610 მხოლოდ ერთხელ. 1099 00:45:17,610 --> 00:45:20,257 ასე რომ, ეს არის ის, რაც ჩვენ ვგულისხმობთ ადრე უკეთესი დიზაინი. 1100 00:45:20,257 --> 00:45:23,090 სინამდვილეში ერთხელ თქვენი კოდი არის სწორი, ბრუნდება და აზროვნების მეშვეობით, 1101 00:45:23,090 --> 00:45:26,820 მე გამოყენებით, როგორც პატარა მეხსიერების ან რამდენიმე წამში 1102 00:45:26,820 --> 00:45:30,409 ან მილიწამებში კომპიუტერული დროს, როგორც შესაძლებელია განახორციელოს გარკვეული პრობლემა? 1103 00:45:30,409 --> 00:45:32,200 და მე ვაპირებ გადახვევა და უბრალოდ აღვნიშნო 1104 00:45:32,200 --> 00:45:34,283 რომ ამ ნახსენები null, ამ ვერსია, 1105 00:45:34,283 --> 00:45:36,390 მაგრამ ჩვენ დავბრუნდებით, რომ ხანგრძლივი. 1106 00:45:36,390 --> 00:45:41,010 იმის გამო, რომ ახლა, მოდით შევხედოთ , სადაც ეს აპირებს მიგვიყვანს. 1107 00:45:41,010 --> 00:45:44,110 ასე რომ, ერთი გამოდის, რომ ახლა, რომ ჩვენ გვაქვს შესაძლებლობა, 1108 00:45:44,110 --> 00:45:46,860 შევხედოთ ინდივიდუალური პერსონაჟი, ჩვენ შეგვიძლია ბერკეტები რაღაც 1109 00:45:46,860 --> 00:45:50,807 კვირაში 0, რომ იყო ძალიან arcane და ერთგვარი უინტერესო დროს. 1110 00:45:50,807 --> 00:45:53,390 მაგრამ ახლა, და განსაკუთრებით მაშინ, როდესაც ჩვენ მისაღებად კრიპტოგრაფიის ერთი კვირის 1111 00:45:53,390 --> 00:45:54,820 ეს იქნება საკმაოდ ძლიერი. 1112 00:45:54,820 --> 00:45:57,450 გამოდის, რომ ზოგიერთი მონაცემთა types-- ints და მოძრავი 1113 00:45:57,450 --> 00:46:00,300 და chars და სიმები და სხვა რამ ზოგიერთი მათგანი 1114 00:46:00,300 --> 00:46:02,800 შეიძლება ძალიან ადვილად გარდაიქმნება სხვა. 1115 00:46:02,800 --> 00:46:05,840 >> მაგალითად, როდესაც ჩვენ ვისაუბრეთ შესახებ ASCII გარკვეული დროის ago-- აქ 1116 00:46:05,840 --> 00:46:07,796 დედაქალაქში წერილები მეშვეობით M, dot, dot, 1117 00:46:07,796 --> 00:46:12,530 dot-- ჩვენ ვთქვით, რომ არსებობს რუკების შორის ამ ასოები და ციფრები. 1118 00:46:12,530 --> 00:46:14,970 და სინამდვილეში, ეს ეხება ამას წერილებს, ასევე. 1119 00:46:14,970 --> 00:46:17,470 ამას 97, დედაქალაქში არის 65. 1120 00:46:17,470 --> 00:46:20,860 და არსებობს მთელი რიგი ASCII, რომელიც მხოლოდ ამ რუკების 1121 00:46:20,860 --> 00:46:23,240 სისტემის ყველა იმ სხვა წერილები. 1122 00:46:23,240 --> 00:46:25,030 ასე რომ, რას ნიშნავს ეს? 1123 00:46:25,030 --> 00:46:28,390 ისე, მე ვაპირებ წავიდეთ წინ და გახსნა up რეალური სწრაფად რაღაც მოუწოდა 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, რომელთა არის კომენტარი. 1125 00:46:31,240 --> 00:46:33,860 ისევ და ისევ ონლაინ თქვენ ყოველთვის ერთი შეხედვით მეშვეობით კომენტარი. 1126 00:46:33,860 --> 00:46:36,180 >> და შევხედოთ რა ეს უნდა გააკეთოს. 1127 00:46:36,180 --> 00:46:38,410 ასე რომ, ის მივიღე მთავარი ფუნქცია. 1128 00:46:38,410 --> 00:46:41,490 მე მყარი კოდირებული ნომრები მხოლოდ ახლა, რადგან ვიცი, რასაც მე ვაკეთებ. 1129 00:46:41,490 --> 00:46:42,950 მე ვიცი, რა გვინდა, რომ აქ. 1130 00:46:42,950 --> 00:46:45,220 და მე ინიციალიზაცია მე 65. 1131 00:46:45,220 --> 00:46:48,490 და მე იმედი up მეშვეობით 26 ასო სულ. 1132 00:46:48,490 --> 00:46:52,990 და რა ვარ მე აპირებს ბეჭდვა ერთი ხაზის დროს 1133 00:46:52,990 --> 00:46:54,930 თუ შეიძლება ინტერპრეტაცია ამ ხაზი გაუსვა ხაზი? 1134 00:46:54,930 --> 00:46:55,970 რა ხდება დაბეჭდილი? 1135 00:46:55,970 --> 00:46:56,797 ჰო. 1136 00:46:56,797 --> 00:46:57,264 >> აუდიტორია: აპირებთ თუ არა ბეჭდვა წერილი, რომ 1137 00:46:57,264 --> 00:46:59,805 შეესაბამება რუკა წერილი ღირებულება და მთელი მნიშვნელობა? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 დინამიკები 1: ზუსტად. 1140 00:47:01,990 --> 00:47:04,740 მე ვაპირებ ბეჭდვა წერილი შესაბამისი მთელი ღირებულება, 1141 00:47:04,740 --> 00:47:06,131 და პირიქით, ასეთია. 1142 00:47:06,131 --> 00:47:08,880 ისე ეს, ვიღაცამ თქვა ადრე, მხოლოდ placeholder for char. 1143 00:47:08,880 --> 00:47:09,490 ეს ჯერ კიდევ არ არის. 1144 00:47:09,490 --> 00:47:12,280 ეს, რა თქმა უნდა, არის placeholder ამისთვის გაკეთება int არ არის ახალი ხაზი. 1145 00:47:12,280 --> 00:47:18,140 და ახლა შეამჩნია, ჩემი პირველი ღირებულება, რომელიც მე ჩართვის რომ placeholder 1146 00:47:18,140 --> 00:47:22,320 არ არის მხოლოდ I. მე ვამბობ, ფრჩხილებში, char I, 1147 00:47:22,320 --> 00:47:26,700 რომელიც ჩართული char არის ვეუბნებოდი შემდგენელი, მკურნალობა მე 1148 00:47:26,700 --> 00:47:28,490 არა, რაც ის არის, რაც არის. 1149 00:47:28,490 --> 00:47:30,490 მკურნალობა, როგორც ფაქტობრივი ხასიათი. 1150 00:47:30,490 --> 00:47:34,490 ხოლო მეორე მნიშვნელობა მე ჩართვის შიგნით არ მე უნდა იყოს მხოლოდ ნომერი. 1151 00:47:34,490 --> 00:47:38,140 >> ასე რომ, თუ მე კომპილაციის ამ პროგრამის ასე რომ ეს არის მიიღოს ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 dot slash ASCII 0- მე უბრალოდ ამ მოსახერხებელი პატარა სქემა, რომელიც 1153 00:47:41,720 --> 00:47:44,950 აჩვენებს ჩემთან ყველა შესაძლო mappings გარეშე, ვფიქრობ, რომ 1154 00:47:44,950 --> 00:47:46,450 მეშვეობით და გაერკვნენ ის ჩემს. 1155 00:47:46,450 --> 00:47:48,783 და მე ასევე ბეჭდვა, შეამჩნია ამას წერილები, 1156 00:47:48,783 --> 00:47:51,410 იმის გამო, რომ რამდენიმე ხაზები შემდეგ მე ასევე, ამობეჭდოთ ამ რუკების 1157 00:47:51,410 --> 00:47:53,737 ასევე, რაც არის მხოლოდ ამბობენ, რომ ერთხელ გესმით 1158 00:47:53,737 --> 00:47:55,570 რა ხდება ქვეშ Hood, შეგიძლიათ 1159 00:47:55,570 --> 00:47:57,111 ავტომატურად დააკონვერტიროთ და უკან. 1160 00:47:57,111 --> 00:48:00,160 და სინამდვილეში, თუ რომელიმე თქვენგანს ოდესმე გააკეთა ამ კლასის სკოლა 1161 00:48:00,160 --> 00:48:03,490 ან სმენია ვინმე mythically აღების შენიშვნა 1162 00:48:03,490 --> 00:48:05,620 და ჩაბარების იგი თავის ან მისი მეგობარი კლასში, 1163 00:48:05,620 --> 00:48:08,300 მაგრამ თქვენ scrambled წერილები, როგორც ხდება B, 1164 00:48:08,300 --> 00:48:11,240 და B ხდება C, ან რამე უფრო რთული, ვიდრე, რომ, ასევე, 1165 00:48:11,240 --> 00:48:13,410 როგორ წავიდეთ შესახებ ახორციელებს, რომ როგორც ბავშვი? 1166 00:48:13,410 --> 00:48:16,340 ისე, უბრალოდ სახის ვიცით ხდება B, B ხდება C, 1167 00:48:16,340 --> 00:48:19,700 მაგრამ მათემატიკურად, რა იყო, რომ ბავშვი აკეთებს? 1168 00:48:19,700 --> 00:48:22,050 რას და დასძინა, რომ თითოეული წერილი? 1169 00:48:22,050 --> 00:48:23,340 ეფექტურად, 1. 1170 00:48:23,340 --> 00:48:27,740 >> ასე რომ, როდესაც თქვენ შეცვალოს რომ B, რომ სახის მოსწონს იცვლება 65 66, 1171 00:48:27,740 --> 00:48:29,590 რომელიც მათემატიკურად ნიშნავს უბრალოდ დაამატოთ 1. 1172 00:48:29,590 --> 00:48:33,300 ასე რომ, თუ თქვენ უნდა განახორციელოს რომ ცოტა მატყუარა ტექნიკა 1173 00:48:33,300 --> 00:48:36,380 თქვენი მასწავლებელი კოდი, შეიძლება ზუსტად რომ მხოლოდ 1174 00:48:36,380 --> 00:48:38,552 დამატებით ერთი წერილი ერთად. 1175 00:48:38,552 --> 00:48:40,260 ასე რომ, სანამ ხანგრძლივი, ჩვენ აპირებს თუ რამდენად ჩვენ 1176 00:48:40,260 --> 00:48:43,300 შეგიძლიათ ისარგებლოს, რომელიც, ფაქტობრივად, ნამდვილად scramble და unscramble 1177 00:48:43,300 --> 00:48:43,991 ინფორმაცია. 1178 00:48:43,991 --> 00:48:47,240 ამასობაში, ვიცით, რომ ჩვენ დავიწყეთ დანერგვა რამდენიმე სხვა ბიბლიოთეკების 1179 00:48:47,240 --> 00:48:48,990 აქ სიმებიანი ერთ დღეს. 1180 00:48:48,990 --> 00:48:51,180 და ძალიან გამოსადეგი საიტი იმედია თქვენ იპოვით 1181 00:48:51,180 --> 00:48:55,010 ეწოდება reference.cs50.net, რომელიც აკადემიური პერსონალის არ ერთად, 1182 00:48:55,010 --> 00:48:57,510 ასე რომ, თუ გსურთ ეძებოთ როგორ strlen სამუშაოები, 1183 00:48:57,510 --> 00:48:59,300 თქვენ შეგიძლიათ დაიწყოს აკრეფით ფუნქციის სახელი, 1184 00:48:59,300 --> 00:49:02,890 დააწკაპუნეთ strlen იქ, და მაშინ ნაკლებად კომფორტული ახსნა 1185 00:49:02,890 --> 00:49:03,700 აპირებს გამოჩნდება. 1186 00:49:03,700 --> 00:49:06,880 ან თუ თქვენ გსურთ ოფიციალური Linux დაფუძნებული განმარტებით, 1187 00:49:06,880 --> 00:49:08,945 თქვენ შეგიძლიათ დააჭიროთ უფრო კომფორტული ზედა მარჯვენა, და ეს 1188 00:49:08,945 --> 00:49:12,070 წარმოდგენილი იქნება იგივე ინფორმაცია, მაგრამ უფრო რთული ტერმინოლოგიისათვის. 1189 00:49:12,070 --> 00:49:15,070 ეს არის სასარგებლო რესურსი რეალურად იცის, რა ყველაფერს აკეთებს. 1190 00:49:15,070 --> 00:49:17,320 >> შემდეგი დროს ჩვენ ვაპირებთ შევხედოთ Ovaltine 1191 00:49:17,320 --> 00:49:20,070 და უფრო, და გააცნობს საკუთარ თავს რომ სამყაროში კრიპტოგრაფიის. 1192 00:49:20,070 --> 00:49:21,930 მანამდე, ჩვენ დავინახავთ, თქვენ მოგვიანებით ამ კვირაში. 1193 00:49:21,930 --> 00:49:23,390 და ახლა, კოლტონი Ogden. 1194 00:49:23,390 --> 00:49:26,730 თქვენ ოთხშაბათს. 1195 00:49:26,730 --> 00:49:30,216 >> [მუსიკის დაკვრა] 1196 00:49:30,216 --> 00:49:33,702 >> [მუსიკის დაკვრა] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> დინამიკები 1: რა [Bleep] აკეთებ? 1199 00:49:42,200 --> 00:49:45,720 >> დინამიკები 1: მე ჭამა ჩემი დესერტი? 1200 00:49:45,720 --> 00:49:47,160 როგორ ჭამა ეს? 1201 00:49:47,160 --> 00:49:47,860 თქვენი ხელები? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [მუსიკის დაკვრა] 1204 00:49:57,940 --> 00:50:03,453