1 00:00:00,000 --> 00:00:00,980 2 00:00:00,980 --> 00:00:04,410 >> [მუსიკის დაკვრა] 3 00:00:04,410 --> 00:00:11,147 4 00:00:11,147 --> 00:00:12,230 დევიდ ჯ Malan: ყველა უფლება. 5 00:00:12,230 --> 00:00:16,440 ეს არის CS50, და ეს არის ბოლომდე კვირა 2. 6 00:00:16,440 --> 00:00:18,480 ამიტომ დღეს, ჩვენ ვაპირებთ გავაგრძელოთ ჩვენი სახე 7 00:00:18,480 --> 00:00:21,150 როგორ ჩვენ წარმოადგინოს რამ ქვეშ hood-- მოძრავი დაშორებით 8 00:00:21,150 --> 00:00:23,520 საწყისი რიცხვები როგორც რიცხვებით და მცურავი პუნქტიანი ღირებულებებს 9 00:00:23,520 --> 00:00:26,810 და აქცენტი და სიმები საბოლოო ჯამში უფრო საინტერესო პროგრამები. 10 00:00:26,810 --> 00:00:30,140 მაგრამ ჩვენ ასევე შევხედოთ რამდენიმე დომენური სპეციფიკური პრობლემები 11 00:00:30,140 --> 00:00:33,620 პირველი რომელიც შეიძლება, მათ შორის კრიპტოგრაფიის, 12 00:00:33,620 --> 00:00:36,570 ხელოვნების scrambling ინფორმაცია, რომელშიც ხედავთ ზემოთ აქ 13 00:00:36,570 --> 00:00:41,480 სურათს რადიო ობოლი Annie საიდუმლო დეკოდერი ბეჭედი yesteryear. 14 00:00:41,480 --> 00:00:46,490 >> ეს არის ძალიან პრიმიტიული ფორმით და ბავშვთა მეგობრული სახით cryptopgraphy 15 00:00:46,490 --> 00:00:50,590 რომლის დროსაც ეს ბეჭედი აქვს ორი disks-- ერთი შიგნით და ერთი გარეთ. 16 00:00:50,590 --> 00:00:54,740 და მოძრავი ერთი იმ, თქვენ შეგიძლიათ არსებითად გამოდიან წერილები, როგორიცაა 17 00:00:54,740 --> 00:00:59,520 მეშვეობით Z სხვა წერილებს ისევე როგორც B მეშვეობით A. სხვა სიტყვებით, 18 00:00:59,520 --> 00:01:03,730 თქვენ შეგიძლიათ სიტყვასიტყვით როტაცია ანბანი, ამით მალე ერთად რუკების საწყისი 19 00:01:03,730 --> 00:01:07,820 წერილები წერილებს ასე რომ, თუ თქვენ სურდა გაგზავნას საიდუმლო გაგზავნა 20 00:01:07,820 --> 00:01:11,820 ვინმე მოსწონს Annie, შეგიძლიათ დაწეროთ ქვემოთ გაგზავნა და შემდეგ როტაცია 21 00:01:11,820 --> 00:01:15,370 წერილები, რომლის დროსაც, თუ თქვენ გულისხმობთ ვთქვა "," ნაცვლად ამბობენ, "B", 22 00:01:15,370 --> 00:01:17,280 თქვენ ნიშნავს, რომ ვთქვათ "B" თქვენ ნაცვლად ამბობენ, "C" - 23 00:01:17,280 --> 00:01:20,240 ან რამე ცოტა უფრო ჭკვიანი ვიდრე that-- და შემდეგ, საბოლოო ჯამში, 24 00:01:20,240 --> 00:01:24,630 ასე რომ, სანამ Annie აქვს ამ დეკოდერი ბეჭედი, მას შეუძლია decode გაგზავნა. 25 00:01:24,630 --> 00:01:28,540 ახლა, თქვენ შეიძლება გავიხსენოთ, რომ ის ფაქტი, რომ ამ გამოყენებულ იქნა ძალიან ცნობილი ფილმი, რომელიც 26 00:01:28,540 --> 00:01:31,140 უკრავს რეკლამა nauseum დროს საშობაო სეზონი. 27 00:01:31,140 --> 00:01:32,650 მოდით შევხედოთ აქ. 28 00:01:32,650 --> 00:01:35,294 29 00:01:35,294 --> 00:01:37,210 Ralphie PARKER: "იყავით ის ცნობილია, რომ ყველა შემაჯამებელ 30 00:01:37,210 --> 00:01:41,000 რომ რალფ პარკერი წინამდებარე დაინიშნა წევრის პატარა ობოლი Annie საიდუმლო 31 00:01:41,000 --> 00:01:44,860 წრე და მას უფლება აქვს ყველა წარჩინებით და სარგებელი ხდება მასთან. " 32 00:01:44,860 --> 00:01:47,410 >> Ralphie PARKER (თხრობის): ხელმოწერილი პატარა ობოლი Annie. 33 00:01:47,410 --> 00:01:50,070 კონტრასიგნაციას, Pierre Andre! 34 00:01:50,070 --> 00:01:51,490 მელნის. 35 00:01:51,490 --> 00:01:55,494 პატივით და სარგებელს, უკვე ასაკში ცხრა. 36 00:01:55,494 --> 00:01:57,402 >> [მუსიკის დაკვრა] 37 00:01:57,402 --> 00:02:00,470 >> [RADIO არქივი] 38 00:02:00,470 --> 00:02:01,470 Ralphie PARKER: კარგით. 39 00:02:01,470 --> 00:02:02,344 მოდით კიდევ იგი. 40 00:02:02,344 --> 00:02:06,029 მე არ გვჭირდება ყველა რომ ჯაზის შესახებ კონტრაბანდისტები და მეკობრეები. 41 00:02:06,029 --> 00:02:08,820 RADIO დიქტორი: მოუსმინეთ ხვალ ღამის დადების თავგადასავალი 42 00:02:08,820 --> 00:02:11,060 შავი Pirate გემი. 43 00:02:11,060 --> 00:02:14,740 ახლა, დროა, ენი საიდუმლო გაგზავნა თქვენთვის წევრები 44 00:02:14,740 --> 00:02:17,110 საიდუმლო წრე. 45 00:02:17,110 --> 00:02:20,700 დამახსოვრება ბავშვები, მხოლოდ წევრების ენი საიდუმლო წრე 46 00:02:20,700 --> 00:02:23,270 შეიძლება decode Annie საიდუმლო გაგზავნა. 47 00:02:23,270 --> 00:02:27,270 >> გახსოვდეთ, Annie დამოკიდებულია თქვენ. 48 00:02:27,270 --> 00:02:30,060 უცნობია თქვენი ქინძისთავები B-2. 49 00:02:30,060 --> 00:02:34,004 აქ არის message-- 12, 11, მე -2 ბლოკის 50 00:02:34,004 --> 00:02:36,503 Ralphie PARKER (თხრობის): I ვარ ჩემი პირველი საიდუმლო შეხვედრა. 51 00:02:36,503 --> 00:02:40,041 RADIO დიქტორი: --25, 14, 11, 18, 16 52 00:02:40,041 --> 00:02:42,790 Ralphie PARKER (თხრობის): Oh, Pierre იყო დიდი ხმა შეძლებენ. 53 00:02:42,790 --> 00:02:46,110 მე ვერ გეტყვით, რომ დღეს ის გზავნილი იყო მართლაც მნიშვნელოვანია. 54 00:02:46,110 --> 00:02:47,930 >> RADIO დიქტორი: --3, 25. 55 00:02:47,930 --> 00:02:49,940 სწორედ შეტყობინება Annie თავად. 56 00:02:49,940 --> 00:02:52,182 გახსოვდეთ, რომ არ ვუთხრა ვინმეს. 57 00:02:52,182 --> 00:02:55,077 >> [Panting] 58 00:02:55,077 --> 00:02:57,285 Ralphie PARKER (თხრობის): ოთხმოცდაათი წამი შემდეგ, მე 59 00:02:57,285 --> 00:03:00,090 ერთადერთი ოთახი სახლში, სადაც ბიჭი ცხრა 60 00:03:00,090 --> 00:03:04,380 შეიძლება იჯდეს კონფიდენციალურობა და decode. 61 00:03:04,380 --> 00:03:04,990 Ah. 62 00:03:04,990 --> 00:03:05,680 "ბ" 63 00:03:05,680 --> 00:03:06,524 >> [Chuckles] 64 00:03:06,524 --> 00:03:08,684 >> Ralphie PARKER (თხრობის): მივედი შემდეგ. 65 00:03:08,684 --> 00:03:09,610 "E." 66 00:03:09,610 --> 00:03:11,641 პირველი სიტყვა არის "იქნება." 67 00:03:11,641 --> 00:03:12,140 დიახ! 68 00:03:12,140 --> 00:03:14,293 ის მოდიოდა ადვილი არის. 69 00:03:14,293 --> 00:03:15,259 "U." 70 00:03:15,259 --> 00:03:16,225 >> [Chuckles] 71 00:03:16,225 --> 00:03:18,157 >> RANDY PARKER: Aw, მოდის, Ralphie. 72 00:03:18,157 --> 00:03:19,606 I Gotta გადასვლა! 73 00:03:19,606 --> 00:03:21,538 >> Ralphie PARKER: მე ვიქნები უფლება ქვემოთ, Ma. 74 00:03:21,538 --> 00:03:22,504 Gee პროგრამირებაში. 75 00:03:22,504 --> 00:03:25,402 76 00:03:25,402 --> 00:03:31,220 "თ" "ო" "დარწმუნებული იყავით, to "." დარწმუნდით, რომ "რა? 77 00:03:31,220 --> 00:03:33,981 რა იყო პატარა ობოლი Annie ცდილობს ამბობენ? "რა თქმა უნდა" რა? 78 00:03:33,981 --> 00:03:35,522 MOTHER: Ralphie, რენდი აქვს გასავლელი. 79 00:03:35,522 --> 00:03:36,735 თქვენ გთხოვთ, გამოვა? 80 00:03:36,735 --> 00:03:38,190 >> Ralphie PARKER: ყველა უფლება, Mom! 81 00:03:38,190 --> 00:03:39,787 მე ვიქნები უფლება out! 82 00:03:39,787 --> 00:03:41,995 Ralphie PARKER (თხრობის): მე დღითიდღე უფრო ახლა. 83 00:03:41,995 --> 00:03:43,370 დაძაბულობა იყო საშინელი. 84 00:03:43,370 --> 00:03:44,794 რა იყო ეს? 85 00:03:44,794 --> 00:03:47,656 ბედი პლანეტა შეიძლება სასწორზე დევს. 86 00:03:47,656 --> 00:03:50,518 >> MOTHER: Ralphie, რენდი ის უნდა წავიდეს! 87 00:03:50,518 --> 00:03:53,635 >> Ralphie PARKER: მე ვიქნები უფლება გარეთ, ღაღადებდეს ხმამაღლა! 88 00:03:53,635 --> 00:03:55,343 Ralphie PARKER (თხრობის) თითქმის არ არსებობს! 89 00:03:55,343 --> 00:03:56,520 ჩემი თითების გაფრინდა! 90 00:03:56,520 --> 00:03:58,500 ჩემი აზრით ფოლადის ხაფანგში. 91 00:03:58,500 --> 00:03:59,850 ყველა ფორე წვას. 92 00:03:59,850 --> 00:04:01,806 ეს იყო თითქმის ნათელია, 93 00:04:01,806 --> 00:04:02,773 დიახ! 94 00:04:02,773 --> 00:04:03,273 დიახ! 95 00:04:03,273 --> 00:04:03,773 დიახ! 96 00:04:03,773 --> 00:04:04,740 დიახ! 97 00:04:04,740 --> 00:04:10,250 >> Ralphie PARKER: "დარწმუნებული იყავით, დალევა თქვენი Ovaltine. " 98 00:04:10,250 --> 00:04:10,750 Ovaltine? 99 00:04:10,750 --> 00:04:14,864 100 00:04:14,864 --> 00:04:17,539 Crummy კომერციული? 101 00:04:17,539 --> 00:04:19,439 >> [მუსიკის დაკვრა] 102 00:04:19,439 --> 00:04:21,724 >> Ralphie PARKER: Son of a bitch. 103 00:04:21,724 --> 00:04:23,460 >> [იცინის] 104 00:04:23,460 --> 00:04:27,070 >> დევიდ ჯ Malan: ასე რომ, ამის შემდეგ არის glimpse რა კრიპტოგრაფიის 105 00:04:27,070 --> 00:04:29,880 შეიძლება იყოს ამას დალევა yesteryear. 106 00:04:29,880 --> 00:04:30,900 ასე სწრაფად განცხადება. 107 00:04:30,900 --> 00:04:33,410 თუ თქვენ უფასოდ ამ პარასკევს 1:15 PM და რომ 108 00:04:33,410 --> 00:04:36,610 მინდა შემოგვიერთდნენ for CS50 ლანჩი, უხელმძღვანელებს ამ URL აქ. 109 00:04:36,610 --> 00:04:38,080 პირველი მოდის, პირველი ემსახურება როგორც ყოველთვის. 110 00:04:38,080 --> 00:04:41,840 მაგრამ დროთა განმავლობაში, ჩვენ დავრწმუნდეთ, რომ ყველაზე, ყველას, ვინც მინდა მონაწილეობა 111 00:04:41,840 --> 00:04:43,640 შეიძლება დანიშნოს ბრძენი. 112 00:04:43,640 --> 00:04:45,170 >> ასე სტრიქონები. 113 00:04:45,170 --> 00:04:47,940 ჩვენ გვაქვს Zamyla-- ვის თქვენ ახლა შეხვდა სავარაუდოდ 114 00:04:47,940 --> 00:04:50,750 პრობლემა Set 1-- რომლის სახელი ჩაწერეთ ამით. 115 00:04:50,750 --> 00:04:53,570 და ვფიქრობ, თქვენ აკრეფილი მისი სახელი კომპიუტერული პროგრამა, რომელიც არის 116 00:04:53,570 --> 00:04:55,710 გამოყენებით რაღაც getString. 117 00:04:55,710 --> 00:04:57,890 რათა ახლიდან იმ keystrokes, თუ როგორ 118 00:04:57,890 --> 00:05:01,620 უნდა წავიდეს შესახებ წარმოადგენს ტექსტი, სიტყვა, პირველი პუნქტის, 119 00:05:01,620 --> 00:05:03,960 ან მრავალჯერადი წერილები როგორც ეს აქ? 120 00:05:03,960 --> 00:05:06,790 >> ჩვენ ვისაუბრეთ ბოლო დროს შესახებ რიცხვები და პრობლემები 121 00:05:06,790 --> 00:05:09,960 რომლებიც წარმოიქმნება მთელი overflow და მცურავი პუნქტიანი ღირებულებებს 122 00:05:09,960 --> 00:05:12,190 და პრობლემები, რომელიც წარმოიქმნება ფარგლებში სიზუსტით. 123 00:05:12,190 --> 00:05:16,080 სიმები, ჩვენ მინიმუმ აქვს უფრო მეტი მოქნილობა, 124 00:05:16,080 --> 00:05:17,970 რადგან strings-- მხოლოდ რეალურ world-- 125 00:05:17,970 --> 00:05:19,790 შეიძლება იყოს საკმაოდ თვითნებური სიგრძე. 126 00:05:19,790 --> 00:05:21,055 საკმაოდ მოკლე, საკმაოდ ხანგრძლივი. 127 00:05:21,055 --> 00:05:23,680 მაგრამ მაშინ, ჩვენ ვაპირებთ იპოვოს, რომ კომპიუტერი შეიძლება ზოგჯერ 128 00:05:23,680 --> 00:05:27,200 ამოიწურა მეხსიერება და არც კი შესანახად დიდი საკმარისი სიმებიანი. 129 00:05:27,200 --> 00:05:30,840 >> მაგრამ ახლა, მოდით დავიწყოთ ვიზუალურად სიმებიანი, როგორც რაღაც ეს ყუთები 130 00:05:30,840 --> 00:05:31,340 აქ. 131 00:05:31,340 --> 00:05:36,410 ასე ექვსი ასეთი ყუთები, რომელთაგან თითოეული წარმოადგენს ხასიათი ან "char." 132 00:05:36,410 --> 00:05:40,646 ასე რომ გავიხსენოთ, "char" - c-h-a-r-- არის ერთი ჩაშენებული მონაცემთა ტიპები C. 133 00:05:40,646 --> 00:05:43,520 და რა ლამაზი არის, რომ თქვენ შეგიძლიათ გამოიყენოთ რომ სახის როგორც შენობა ბლოკი, 134 00:05:43,520 --> 00:05:47,880 თავსატეხი ცალი, თუ იქნება, შექმნან დიდი ტიპის მონაცემები, რომ ჩვენ გავაგრძელებთ 135 00:05:47,880 --> 00:05:49,410 მოვუწოდებთ "string." 136 00:05:49,410 --> 00:05:53,650 >> ახლა, რა არის სასარგებლო შესახებ ფიქრი რამ, როგორიცაა strings ამ გზით? 137 00:05:53,650 --> 00:05:57,720 ისე, გამოდის, რომ ჩვენ შეგვიძლია რეალურად ბერკეტები ამ სტრუქტურის 138 00:05:57,720 --> 00:06:01,420 რეალურად შედიხართ ინდივიდუალური გმირები საკმაოდ მარტივია. 139 00:06:01,420 --> 00:06:04,099 მე ვაპირებ წავიდეთ წინ და შევქმნათ ფაილი სახელად "stringzero.c" 140 00:06:04,099 --> 00:06:05,765 მაგრამ შეგიძლიათ ეძახით რასაც გსურთ. 141 00:06:05,765 --> 00:06:08,500 და რა თქმა უნდა ნახვა არის უკვე ამ მაგალითს, წინასწარ, 142 00:06:08,500 --> 00:06:10,430 ასე რომ თქვენ არ უნდა ჩაწერეთ ყველაფერს. 143 00:06:10,430 --> 00:06:13,820 >> და მე ვაპირებ წავიდეთ წინ და პირველი int ძირითადი ბათილად. 144 00:06:13,820 --> 00:06:15,980 და რამდენიმე დღის განმავლობაში, ჩვენ დავიწყებთ აჯავრებენ გარდა 145 00:06:15,980 --> 00:06:19,070 რა ბათილად არის აქ, ამიტომ ეს int შემდეგი მთავარ და სხვ. 146 00:06:19,070 --> 00:06:21,180 მაგრამ ახლა, მოდით, გავაგრძელოთ კოპირება ჩასვით რომ. 147 00:06:21,180 --> 00:06:23,455 >> მე ვაპირებ განაცხადოს სიმებიანი მოუწოდა s. 148 00:06:23,455 --> 00:06:26,920 და მე ვაპირებ დაბრუნებას GetString რასაც მომხმარებლის ტიპის. 149 00:06:26,920 --> 00:06:29,170 ეს იქნება მარტივი პროგრამა, ინსტრუქციები, 150 00:06:29,170 --> 00:06:31,336 მე უბრალოდ აპირებს ბრმად ველით, რომ მომხმარებლის იცის, 151 00:06:31,336 --> 00:06:32,600 რა უნდა გავაკეთოთ, რომ შევინარჩუნოთ ის მარტივი. 152 00:06:32,600 --> 00:06:34,220 >> და ახლა მე ვაპირებ ამისთვის loop. 153 00:06:34,220 --> 00:06:37,450 და შიგნით ჩემი ამისთვის loop მე ვაპირებთ აქვს int i იღებს ნულოვანი. 154 00:06:37,450 --> 00:06:40,660 და მე, კიდევ ერთხელ, მხოლოდ კონვენციის, ინდექსი ცვლადი დათვლის, 155 00:06:40,660 --> 00:06:42,350 მაგრამ მე ვერ ვუწოდებთ ამ რასაც მინდა. 156 00:06:42,350 --> 00:06:46,275 მე ვაპირებ, რომ მე ნაკლებია than-- კარგად Zamyla სახელის ექვსი წერილებს ხანგრძლივი. 157 00:06:46,275 --> 00:06:48,150 ამიტომ, მე ვაპირებ, რომ მძიმე კოდი, რომელიც იქ არის. 158 00:06:48,150 --> 00:06:49,730 >> და მერე ++. 159 00:06:49,730 --> 00:06:53,190 და ახლა შიგნით ამ Curly braces მე ვაპირებ, რომ printf, 160 00:06:53,190 --> 00:06:55,460 და მინდა ამობეჭდოთ ერთი ხასიათი დროს. 161 00:06:55,460 --> 00:06:58,227 ამიტომ, მე ვაპირებ გამოიყენოთ% გ ალბათ პირველად. 162 00:06:58,227 --> 00:07:00,560 და მერე მინდა ამობეჭდოთ ყოველ ხასიათი საკუთარი ხაზი. 163 00:07:00,560 --> 00:07:02,550 ამიტომ მე ვაპირებ დააყენა პატარა წარმატებული n არსებობს. 164 00:07:02,550 --> 00:07:03,640 ახლო გაცემა. 165 00:07:03,640 --> 00:07:06,250 >> და ახლა მინდა, რომ რამე აქ. 166 00:07:06,250 --> 00:07:10,610 მინდა ამობეჭდოთ კონკრეტული წერილი სიმებიანი, 167 00:07:10,610 --> 00:07:13,670 s, რადგან მე iterating ნულიდან მდე ექვსი. 168 00:07:13,670 --> 00:07:17,150 სხვა სიტყვებით, მინდა ბეჭდვა i'th ხასიათი s. 169 00:07:17,150 --> 00:07:18,420 ახლა როგორ შემიძლია ამის გაკეთება? 170 00:07:18,420 --> 00:07:21,550 >> ასევე ჰგავს ყუთები ამ წარმომადგენლობის აქ, 171 00:07:21,550 --> 00:07:25,560 სახის, conjure up ცნება კრივი წერილები, ანალოგიურად გააკეთებს, რომ 172 00:07:25,560 --> 00:07:32,630 სინტაქსურად in C უბრალოდ აკონკრეტებს, მინდა ამობეჭდოთ ის i'th ხასიათი. 173 00:07:32,630 --> 00:07:35,640 გამოყენებით კვადრატულ ფრჩხილებში თქვენი კომპიუტერის კლავიატურაზე 174 00:07:35,640 --> 00:07:38,910 რომ აშშ კლავიატურის ზოგადად ზემოთ თქვენი დაბრუნების გასაღები. 175 00:07:38,910 --> 00:07:42,630 >> ასე რომ, ეს არ არის საკმაოდ უფლება მაგრამ, როგორც თქვენ შეიძლება არ შეამჩნია. 176 00:07:42,630 --> 00:07:44,780 მაგრამ მე ვაპირებ სახის ბრმად გაყალბებას ელის აქ. 177 00:07:44,780 --> 00:07:47,020 და მე ვაპირებ ამის გაკეთება string 0. 178 00:07:47,020 --> 00:07:50,860 მაგრამ სანამ მე ამის გაკეთება, ვნახოთ, თუ ჩვენ არ გეგმავს ზოგიერთი გავრცელებული შეცდომები. 179 00:07:50,860 --> 00:07:52,844 არის ეს აპირებს ადგენენ? 180 00:07:52,844 --> 00:07:54,510 არა, მე დაკარგული მთელი bunch რამ. 181 00:07:54,510 --> 00:07:55,280 ბიბლიოთეკების გავიგე. 182 00:07:55,280 --> 00:07:58,480 >> ასე რომ, რაც header ფაილი შეიძლება მინდა დავამატო აქ? 183 00:07:58,480 --> 00:07:59,205 Yeah. 184 00:07:59,205 --> 00:08:01,580 >> აუდიტორია: თქვენ უნდა სტანდარტული I / O [INAUDIBLE] 185 00:08:01,580 --> 00:08:02,663 >> დევიდ ჯ Malan: შესანიშნავი. 186 00:08:02,663 --> 00:08:06,060 ამიტომ საჭიროა სტანდარტული I / O. რა მიზანი არ მინდა სტანდარტული I / O? 187 00:08:06,060 --> 00:08:06,670 იყიდება printf. 188 00:08:06,670 --> 00:08:09,220 ასე რომ მოიცავს stdio.h. 189 00:08:09,220 --> 00:08:13,490 და ასევე, გთავაზობთ, რომ მე მათ CS50 ბიბლიოთეკაში რატომ? 190 00:08:13,490 --> 00:08:14,650 აქვს strings. 191 00:08:14,650 --> 00:08:17,780 ასე რომ, ჩვენ ვხედავთ, თუ რა CS50 ბიბლიოთეკაში აკეთებს 192 00:08:17,780 --> 00:08:19,260 შექმნა ეს ცნება სიმებიანი. 193 00:08:19,260 --> 00:08:21,930 მაგრამ ახლა, შეგიძლიათ უბრალოდ ვფიქრობ მას, როგორც ფაქტობრივი მონაცემების ტიპის. 194 00:08:21,930 --> 00:08:23,596 >> ასე რომ, როგორც ჩანს, ცოტა დაასუფთავეს. 195 00:08:23,596 --> 00:08:27,060 და ახლა მე ვაპირებ წავიდეთ წინ და მართლაც გააკეთოს string 0. 196 00:08:27,060 --> 00:08:27,700 შედგენილი. 197 00:08:27,700 --> 00:08:28,370 ასე რომ კარგია. 198 00:08:28,370 --> 00:08:32,799 ასე ./string0 ნება მომეცით დიდი ზომით, ასე რომ ჩვენ შეგვიძლია უფრო მეტი მჭიდროდ რა ხდება. 199 00:08:32,799 --> 00:08:33,850 შევა. 200 00:08:33,850 --> 00:08:37,789 Z-A-M-Y-L-შევა. 201 00:08:37,789 --> 00:08:39,440 და ჩვენ დაბეჭდილი out to Zamyla სახელი. 202 00:08:39,440 --> 00:08:40,409 >> ასე რომ, საკმაოდ კარგი. 203 00:08:40,409 --> 00:08:43,220 ახლა მოდით წავიდეთ წინ და გაუშვით ეს პროგრამა კიდევ ერთხელ, 204 00:08:43,220 --> 00:08:45,659 და ტიპის გარეთ Daven სრული სახელი. 205 00:08:45,659 --> 00:08:46,450 სიურპრიზი, სიურპრიზი. 206 00:08:46,450 --> 00:08:48,021 შევა. 207 00:08:48,021 --> 00:08:48,520 Hmm. 208 00:08:48,520 --> 00:08:51,750 ჩვენ არ დაბეჭდილი Daven მიერ სრული სახელი სწორად. 209 00:08:51,750 --> 00:08:54,250 ახლა ეს უნდა იყოს აშკარა retrospect იმის გამო, რაც, 210 00:08:54,250 --> 00:08:57,010 სახის სულელური დიზაინის გადაწყვეტილება? 211 00:08:57,010 --> 00:08:59,590 >> ჰო, მე რთული კოდირებული ექვსი შიგნით ჩემი ამისთვის loop. 212 00:08:59,590 --> 00:09:01,610 ახლა მე რომ მხოლოდ იმიტომ, ვიცოდი, Zamyla სახელი 213 00:09:01,610 --> 00:09:02,776 ის იქნება ექვსი ასო. 214 00:09:02,776 --> 00:09:04,720 მაგრამ ნამდვილად ეს არ არის ზოგადი გადაწყვეტა. 215 00:09:04,720 --> 00:09:07,720 გამოდის, რომ ჩვენ შეგვიძლია დინამიურად გაერკვნენ სიგრძეზე სიმებიანი 216 00:09:07,720 --> 00:09:10,440 დარეკვით ფუნქცია მოუწოდა strlen. 217 00:09:10,440 --> 00:09:12,840 >> ერთხელ, შეგნებულად მოკლედ დაასახელა მხოლოდ 218 00:09:12,840 --> 00:09:14,450 რათა ის უფრო მოსახერხებელი უნდა აკრიფოთ. 219 00:09:14,450 --> 00:09:17,170 მაგრამ ეს სინონიმი მიღების სიგრძეზე სიმებიანი. 220 00:09:17,170 --> 00:09:23,190 მე ვაპირებ დავუბრუნდე ჩემს ტერმინალის ფანჯარა და ხელახალი შემდგენელი. 221 00:09:23,190 --> 00:09:24,170 მაგრამ ეს ყვირილი at me. 222 00:09:24,170 --> 00:09:29,130 მინიშნებით გამოცხადების ბიბლიოთეკის ფუნქცია strlen ტიპის ხელმოუწერელი int const-- 223 00:09:29,130 --> 00:09:29,780 მე დაკარგული. 224 00:09:29,780 --> 00:09:30,590 მთლიანად. 225 00:09:30,590 --> 00:09:32,940 >> ასე რომ, განსაკუთრებით, როგორც თქვენი თვალები დაიწყებს გლაზურით მეტი 226 00:09:32,940 --> 00:09:36,000 შეცდომის შეტყობინებები, როგორც ეს, აქცენტი გულახდილად პირველი რამდენიმე სიტყვა. 227 00:09:36,000 --> 00:09:38,590 ჩვენ ვიცით, რომ პრობლემა არის line 8, როგორც მითითებულია აქ. 228 00:09:38,590 --> 00:09:40,500 და ეს სიმებიანი 0.c. 229 00:09:40,500 --> 00:09:43,580 მინიშნებით გამოცხადების ბიბლიოთეკის ფუნქცია strlen. 230 00:09:43,580 --> 00:09:47,000 ასე რომ, ზოგადად აპირებს ტენდენციად შეცდომა შეტყობინებები. 231 00:09:47,000 --> 00:09:49,190 მინიშნებით გამოცხადების რაღაც. 232 00:09:49,190 --> 00:09:53,250 >> ასე რომ, მოკლედ, რა, როგორც ჩანს, არ კეთდება დაკავშირებით ხაზი 8, აქ. 233 00:09:53,250 --> 00:09:56,880 რა შეიძლება იყოს გამოსავალი იყოს კიდევ თუ თქვენ არ გამოიყენება strlen საკუთარ თავს? 234 00:09:56,880 --> 00:09:58,907 >> აუდიტორია: ნაწილი სხვადასხვა ბიბლიოთეკაში? 235 00:09:58,907 --> 00:10:00,740 დევიდ ჯ Malan: Part საქართველოს სხვადასხვა ბიბლიოთეკაში. 236 00:10:00,740 --> 00:10:02,400 ასე რომ, ეს არის გამოცხადებული, ასე ვთქვათ. 237 00:10:02,400 --> 00:10:07,510 ამის შესახებ საუბარია რამდენიმე ფაილი გარდა stdio.h და cs50.h. 238 00:10:07,510 --> 00:10:09,179 ახლა სად არის ის განსაზღვრული? 239 00:10:09,179 --> 00:10:12,220 უნდა იყოს პატიოსანი, თქვენ არც უნდა უბრალოდ ვიცი, რომ ეს off ზედა თქვენი უფროსი, 240 00:10:12,220 --> 00:10:13,640 ან Google და გასარკვევად. 241 00:10:13,640 --> 00:10:18,150 ან ვიცი, მე გახსნეს წელს CS50 ელექტრო მოწყობილობების ტერმინალის პროგრამა, რომელიც 242 00:10:18,150 --> 00:10:22,200 მხოლოდ დიდი, სრულ ეკრანზე მობილური რა არის ბოლოში gedit ფანჯარაში. 243 00:10:22,200 --> 00:10:24,970 >> და აღმოჩნდება, რომ არსებობს ასეთივე ლაკონური ბრძანება, რომელსაც ეწოდება 244 00:10:24,970 --> 00:10:29,280 კაცი მექანიკური, სადაც თუ აკრიფოთ სახელი ფუნქცია და დააჭიროთ, 245 00:10:29,280 --> 00:10:32,240 თქვენ დავუბრუნდეთ საკმაოდ arcane დოკუმენტაცია. 246 00:10:32,240 --> 00:10:35,299 ეს უბრალოდ ტექსტი, რომელიც, როგორც წესი, გამოიყურება პატარა რაღაც მსგავსი. 247 00:10:35,299 --> 00:10:37,090 ეს პატარა დიდი ერთი შეხედვით. 248 00:10:37,090 --> 00:10:39,048 მაგრამ, გულწრფელად რომ მე ვაპირებ ნება ჩემი თვალით გლაზურით მეტი 249 00:10:39,048 --> 00:10:41,930 და მხოლოდ ფოკუსირება ნაწილი მე აინტერესებს მომენტი. 250 00:10:41,930 --> 00:10:42,780 >> რომელიც ამ. 251 00:10:42,780 --> 00:10:45,470 რომელიც გამოიყურება სტრუქტურულად, როგორიცაა რაღაც მე კარგად იცნობს. 252 00:10:45,470 --> 00:10:48,080 მართლაც კაცი გვერდზე, ასე რომ საუბარი, გეტყვით 253 00:10:48,080 --> 00:10:51,590 რა header ფაილი ფუნქცია როგორიცაა strlen არ არის დადგენილი. 254 00:10:51,590 --> 00:10:54,170 ამიტომ, მე ვაპირებ, რომ დავუბრუნდეთ ახლა gedit. 255 00:10:54,170 --> 00:10:59,070 და მე ვაპირებ წავიდეთ წინ და რჩეულებში აქ მოიცავს 256 00:10:59,070 --> 00:11:00,480 და ფაილის შენახვა. 257 00:11:00,480 --> 00:11:04,300 >> მე ვაპირებ გარკვევას ეკრანზე კონტროლის L თუ თქვენ უკვე გაინტერესებთ. 258 00:11:04,300 --> 00:11:08,210 და მე ვაპირებ ხელახლა აწარმოებს გააკეთოს string.0, ადგენს ამ დროს. 259 00:11:08,210 --> 00:11:11,790 ./string.0 Zamyla. 260 00:11:11,790 --> 00:11:15,020 რომ თითქოს მუშაობა ნება მომეცით წავიდეთ წინ და გამეორება და დავენპორტი. 261 00:11:15,020 --> 00:11:15,860 შევა. 262 00:11:15,860 --> 00:11:17,730 და, რომ ძალიან, თითქოს მუშაობა. 263 00:11:17,730 --> 00:11:21,220 >> ასე რომ ჩვენ შეგვიძლია ამის გაკეთება ცოტა უკეთესი, ვიდრე ეს, თუმცა, ჩვენ შეგვიძლია დავიწყოთ tidy რამ 264 00:11:21,220 --> 00:11:23,257 up უბრალოდ ცოტა. 265 00:11:23,257 --> 00:11:25,590 და მე ვაპირებ რეალურად წარმოგიდგინოთ ერთი სხვა რამ არის. 266 00:11:25,590 --> 00:11:28,930 მე ვაპირებ წავიდეთ წინ და გადარჩენა ეს სხვა ფაილი. 267 00:11:28,930 --> 00:11:31,770 და მე ვაპირებ მოვუწოდო ეს ფაილი string1.c მხოლოდ 268 00:11:31,770 --> 00:11:34,620 შეესაბამება კოდი თქვენ შეძლებთ იპოვოთ ონლაინ რეჟიმში. 269 00:11:34,620 --> 00:11:37,050 >> და მოდით ფოკუსირება წელს ზუსტად იგივე კოდი. 270 00:11:37,050 --> 00:11:39,000 გამოდის, რომ მე უკვე სახის აყვანა 271 00:11:39,000 --> 00:11:42,600 თავისთავად ის ფაქტი, რომ ჩემი ლეპტოპი, და თავის მხრივ, CS50 ელექტრო მოწყობილობების 272 00:11:42,600 --> 00:11:47,450 აქვს უამრავი მეხსიერება, ბევრი RAM, ბევრი bytes სივრცის 273 00:11:47,450 --> 00:11:48,920 შემიძლია შესანახად strings. 274 00:11:48,920 --> 00:11:53,560 >> მაგრამ რეალობა თუ არა მე აკრეფილი ხანგრძლივი საკმარისი, და საკმარისი keystrokes, 275 00:11:53,560 --> 00:11:56,170 შემეძლო თეორია ტიპი უფრო გმირები 276 00:11:56,170 --> 00:11:58,830 ვიდრე ჩემი კომპიუტერი ფიზიკური აქვს მეხსიერების. 277 00:11:58,830 --> 00:11:59,830 და ეს პრობლემატურია. 278 00:11:59,830 --> 00:12:03,050 ისევე, როგორც int შეგიძლიათ მხოლოდ იმედი იმდენად მაღალია, თეორიულად, 279 00:12:03,050 --> 00:12:06,600 თქვენ შეგიძლიათ მხოლოდ cram ამდენი გმირები თქვენი კომპიუტერის RAM და შემთხვევითი 280 00:12:06,600 --> 00:12:07,920 მეხსიერება. 281 00:12:07,920 --> 00:12:11,140 >> ასე რომ, მე უკეთ მოსალოდნელია ეს პრობლემა, მიუხედავად იმისა, 282 00:12:11,140 --> 00:12:13,660 თუმცა ეს შეიძლება იყოს იშვიათი კუთხეში შემთხვევაში, ასე ვთქვათ. 283 00:12:13,660 --> 00:12:15,670 არ ხდება, რომ ხშირად, შეიძლება მოხდეს. 284 00:12:15,670 --> 00:12:18,815 და თუ ეს მოხდება და მე არ გეგმავს და პროგრამა მას, 285 00:12:18,815 --> 00:12:20,300 ჩემი პროგრამა ვერ გააკეთებს, ვინ იცის, რა. 286 00:12:20,300 --> 00:12:22,220 გაყინვას, გათიშეთ, გადატვირთვისას, რაც არ უნდა. 287 00:12:22,220 --> 00:12:24,490 რაღაც მოსალოდნელი შეიძლება მოხდეს. 288 00:12:24,490 --> 00:12:27,120 >> მერე რა მე ვაპირებ ამის გაკეთებას ახლა, ამიერიდან მართლაც, 289 00:12:27,120 --> 00:12:31,630 არის ადრე მე ოდესმე ბრმად გამოყენება ცვლადი, როგორიცაა ის, რომ 290 00:12:31,630 --> 00:12:36,790 უკვე დაავალა დაბრუნების ღირებულება სხვა ფუნქცია, როგორიცაა GetString, 291 00:12:36,790 --> 00:12:40,200 მე ვაპირებ, რათა დავრწმუნდეთ, რომ მისი არც მოქმედებს. 292 00:12:40,200 --> 00:12:44,280 მე ვიცი, მხოლოდ რომელმაც წაიკითხა CS50 დოკუმენტაცია GetString, 293 00:12:44,280 --> 00:12:49,020 რაც საბოლოო ჯამში, ჩვენ აღვნიშნო თქვენ დროს, რომ GetString დააბრუნებს სპეციალური სიმბოლო 294 00:12:49,020 --> 00:12:53,610 მოუწოდა NULL, N-U-L-L ყველა ქუდები, თუ რაღაც მიდის არასწორი. 295 00:12:53,610 --> 00:12:55,650 >> ასე რომ, ჩვეულებრივ, ის დააბრუნებს string. 296 00:12:55,650 --> 00:12:59,700 მაგრამ სხვაგვარად, თუ ის დააბრუნებს N-U-L-L-- ჩვენ საბოლოოდ ვხედავთ რა, რომ ნამდვილად 297 00:12:59,700 --> 00:13:01,790 means-- ეს უბრალოდ ნიშნავს, რაღაც ცუდი მოხდა. 298 00:13:01,790 --> 00:13:05,560 ახლა, ეს იმას ნიშნავს, ჰგავს Scratch, შემიძლია შეამოწმოს მდგომარეობა აქ C, 299 00:13:05,560 --> 00:13:08,830 თუ არ თანაბარი NULL. 300 00:13:08,830 --> 00:13:11,930 ასე რომ, თუ თქვენ არ მინახავს ეს ადრე, ეს მხოლოდ იმას ნიშნავს არ უდრის. 301 00:13:11,930 --> 00:13:15,290 >> ასე რომ საპირისპირო თანაბარი შეადგენს, რაც, გავიხსენოთ, 302 00:13:15,290 --> 00:13:18,940 განსხვავდება ერთი შეადგენს, რაც დავალება. 303 00:13:18,940 --> 00:13:23,030 ასე რომ, თუ არ უდრის NULL, მხოლოდ ამის შემდეგ 304 00:13:23,030 --> 00:13:25,980 მინდა შეასრულოს ამ ხაზების კოდი. 305 00:13:25,980 --> 00:13:28,080 ასე რომ, სხვა სიტყვებით, სანამ მე ჩაყვინთვის ბრმად 306 00:13:28,080 --> 00:13:30,919 და დაიწყოს iterating მეტი, და მკურნალობის 307 00:13:30,919 --> 00:13:33,710 თითქოს ეს არის თანმიმდევრობა პერსონაჟი, მე ვაპირებ პირველი ჩეკი, 308 00:13:33,710 --> 00:13:37,900 დაველოდოთ წუთში, არის ნამდვილად არ არის უდრის ამ განსაკუთრებული ღირებულება, NULL? 309 00:13:37,900 --> 00:13:40,030 >> იმიტომ, რომ თუ ეს, ცუდი რამ შეიძლება მოხდეს. 310 00:13:40,030 --> 00:13:43,080 და ახლა, ვივარაუდოთ, რომ ცუდი რამ ხდება იმას ნიშნავს, თქვენი პროგრამის დამსხვრევაზე, 311 00:13:43,080 --> 00:13:45,070 და ვერ აუცილებლად ფეხზე. 312 00:13:45,070 --> 00:13:46,800 გულწრფელად რომ ვთქვა, ეს გამოიყურება მახინჯი. 313 00:13:46,800 --> 00:13:48,660 ეს სახის დამაბნეველი ახლა, რომ ერთი შეხედვით. 314 00:13:48,660 --> 00:13:50,780 მაგრამ ეს კიდევ უფრო ნაცნობი ადრე ხანგრძლივი. 315 00:13:50,780 --> 00:13:52,920 >> მაგრამ მე ვაპირებ შესთავაზოს ახლა ერთი სხვა გაუმჯობესება. 316 00:13:52,920 --> 00:13:54,660 სწორედ გაუმჯობესება სისწორე. 317 00:13:54,660 --> 00:13:58,800 ჩემი პროგრამა არის უფრო სწორი, იმიტომ, იშვიათი შემთხვევაა, რომ არ არის საკმარისი მეხსიერება 318 00:13:58,800 --> 00:14:01,180 არსებობს, მე გაუმკლავდეს მას, და მე უბრალოდ არაფერი. 319 00:14:01,180 --> 00:14:02,680 მე მინიმუმ არ მისაწოდებლად. 320 00:14:02,680 --> 00:14:05,000 >> მაგრამ მოდით საბოლოო ვერსია აქ. 321 00:14:05,000 --> 00:14:07,690 და ფაილი სახელად string2.c. 322 00:14:07,690 --> 00:14:10,190 მე ვაპირებ ჩასვით რომ იგივე კოდი, რაღაც მომენტში, 323 00:14:10,190 --> 00:14:14,210 და მე ვაპირებ, რათა ხაზი გავუსვა ამ ხაზი, 11, აქ, რაღაც მომენტში. 324 00:14:14,210 --> 00:14:18,179 ახლა რეალობა ის არის, რომ ჭკვიანი compilers მოსწონს Clang შეიძლება გაასწორონ ეს ჩვენთვის 325 00:14:18,179 --> 00:14:19,970 კულუარებში გარეშე ოდესმე იცოდა. 326 00:14:19,970 --> 00:14:24,670 მაგრამ მოდით ვიფიქროთ ამ ფუნდამენტურად პრობლემატურ დიზაინი. 327 00:14:24,670 --> 00:14:29,010 >> ამ ხაზი კოდი, რა თქმა უნდა, განაცხადა, რომ ვრთავ ზოგიერთი ცვლადი i 0. 328 00:14:29,010 --> 00:14:30,260 ეს არის საკმაოდ მარტივია. 329 00:14:30,260 --> 00:14:34,691 და რა კიდევ ერთხელ არის ამ განცხადებაში, აქ, მე ++, აკეთებს? 330 00:14:34,691 --> 00:14:37,066 ჩვენ ვნახეთ ეს, მაგრამ ჩვენ ნამდვილად არ არის ამაზე. 331 00:14:37,066 --> 00:14:37,900 >> აუდიტორია: დამატება i. 332 00:14:37,900 --> 00:14:39,191 >> დევიდ ჯ Malan: დამატება i. 333 00:14:39,191 --> 00:14:41,890 ასე რომ, ყოველ iteration მეშვეობით ამ მარყუჟის, ყველა ციკლი, 334 00:14:41,890 --> 00:14:43,570 თქვენ დამატება i ერთი. 335 00:14:43,570 --> 00:14:45,740 ამიტომ იგი იღებს უფრო დიდი და უფრო დიდი და დიდი სანამ loop წყვეტს. 336 00:14:45,740 --> 00:14:46,810 რამდენად შეესაბამება ეს შეწყვიტოს? 337 00:14:46,810 --> 00:14:49,430 ასევე არსებობს ამ შუა პირობა, რომელიც ჩვენ გამოყენებული ადრე. 338 00:14:49,430 --> 00:14:52,500 თქვენ მინახავს და walkthroughs წელს P კომპლექტი. 339 00:14:52,500 --> 00:14:53,880 >> მაგრამ რა არის ეს გამონათქვამი? 340 00:14:53,880 --> 00:14:58,352 გავაკეთოთ შემდეგი მარყუჟი იმდენად სანამ i ნაკლებია, ვიდრე რა? 341 00:14:58,352 --> 00:14:59,810 აუდიტორია: სიგრძეზე სიმებიანი. 342 00:14:59,810 --> 00:15:01,518 დევიდ ჯ Malan: სიგრძეზე სიმებიანი. 343 00:15:01,518 --> 00:15:04,300 ასე რომ, ეს ითარგმნება საკმაოდ სუფთად ინგლისური რომ გრძნობა. 344 00:15:04,300 --> 00:15:08,810 ახლა პრობლემა ის არის, რომ ყოველ ჯერზე მე iterate მეშვეობით ამ მარყუჟის თეორიულად, 345 00:15:08,810 --> 00:15:10,000 მე ვსვამ კითხვას. 346 00:15:10,000 --> 00:15:12,250 არის მე ნაკლები სიმებიანი ხანგრძლივობა s? 347 00:15:12,250 --> 00:15:14,500 არის მე ნაკლები სიმებიანი ხანგრძლივობა s? 348 00:15:14,500 --> 00:15:18,380 >> ახლა i იცვლება ყოველ iteration? 349 00:15:18,380 --> 00:15:18,880 ეს არის. 350 00:15:18,880 --> 00:15:19,629 იმის გამო, რომ ++. 351 00:15:19,629 --> 00:15:21,700 ასე რომ, ყოველ iteration i დღითიდღე უფრო. 352 00:15:21,700 --> 00:15:25,411 მაგრამ არის ის მიღების უფრო დიდი, ან პატარა, ან იცვლება? 353 00:15:25,411 --> 00:15:25,910 პოსტები 354 00:15:25,910 --> 00:15:30,240 ამიტომ თვალსაზრისით დიზაინი, ერთი ღერძი ერთად, რომელიც ჩვენ ვცდილობთ შევაფასოთ კოდი 355 00:15:30,240 --> 00:15:32,610 კლასი, ამ გრძნობს სახის სულელური. 356 00:15:32,610 --> 00:15:34,690 >> ისევე, როგორც თქვენ, ფაქტიურად, ყოველ iteration 357 00:15:34,690 --> 00:15:37,110 ამ მარყუჟის ითხოვს იგივე Damn კითხვას ისევ, 358 00:15:37,110 --> 00:15:40,770 და ისევ და ისევ, და სიტყვასიტყვით ის არასოდეს შეიცვლება. 359 00:15:40,770 --> 00:15:44,220 ყოველ შემთხვევაში, თუ მე არ ეხება და ცდილობს შეცვალოს შინაარსი s. 360 00:15:44,220 --> 00:15:46,610 ასე, რომ შეიძლება ცოტა უკეთესი, ვიდრე ეს. 361 00:15:46,610 --> 00:15:49,530 >> და რა მე ვაპირებ ამის გაკეთებას არ განაცხადოს მხოლოდ ერთი ცვლადი i, 362 00:15:49,530 --> 00:15:53,330 მაგრამ მეორე ცვლადი მე თვითნებურად, მაგრამ პირობითად, მას n. 363 00:15:53,330 --> 00:15:55,940 მივანიჭოთ n ტოლია string სიგრძე s. 364 00:15:55,940 --> 00:15:59,090 და მერე აქ, მე ვაპირებ ამის გაკეთება ჭკვიანი პატარა ოპტიმიზაციის, ისე 365 00:15:59,090 --> 00:16:03,460 ვთქვათ, რომ იმ დღის ბოლოს, აღარ არის სწორი ან არანაკლებ სწორი 366 00:16:03,460 --> 00:16:04,260 ვიდრე ადრე. 367 00:16:04,260 --> 00:16:05,500 მაგრამ ეს უკეთესი დიზაინი. 368 00:16:05,500 --> 00:16:09,480 ის ფაქტი, რომ მე გამოყენებით ნაკლები დრო, ნაკლები CPU ციკლები, ასე 369 00:16:09,480 --> 00:16:14,040 ვთქვათ, უნდა უპასუხოს იმავე კითხვა, მაგრამ მხოლოდ ერთხელ. 370 00:16:14,040 --> 00:16:17,870 >> ნებისმიერი შეკითხვა, რომ ზოგადად პრინციპი გაუმჯობესების, 371 00:16:17,870 --> 00:16:21,294 ამბობენ, პროგრამის ეფექტურობა? 372 00:16:21,294 --> 00:16:21,991 ჰო? 373 00:16:21,991 --> 00:16:23,699 აუდიტორია: რატომ გამოყენება [INAUDIBLE]? 374 00:16:23,699 --> 00:16:25,760 375 00:16:25,760 --> 00:16:27,010 დევიდ ჯ Malan: კარგი კითხვაა. 376 00:16:27,010 --> 00:16:30,690 ასე რომ, რატომ დააყენა ++ წლის ბოლომდე i ნაცვლად დასაწყისში i? 377 00:16:30,690 --> 00:16:33,070 ამ შემთხვევაში, მას, ფუნქციონალური გავლენა. 378 00:16:33,070 --> 00:16:36,670 და საერთოდ, მე, როგორც წესი, გამოიყენოთ postfix ოპერატორი 379 00:16:36,670 --> 00:16:41,750 ასე, რომ ეს ცოტა უფრო ნათელი, მაშინ, როდესაც ოპერაცია ხდება. 380 00:16:41,750 --> 00:16:46,670 >> იმ უცნობ, არსებობს კიდევ ერთი განცხადებები, რომლითაც თქვენ შეიძლება არ ++ i. 381 00:16:46,670 --> 00:16:48,747 ეს არის ფუნქციურად ექვივალენტი ამ შემთხვევაში 382 00:16:48,747 --> 00:16:51,080 იმიტომ, რომ იქ სხვა არაფერი გარშემო, რომ incrementation. 383 00:16:51,080 --> 00:16:54,435 მაგრამ თქვენ შეგიძლიათ ამუშავება შემთხვევებში და ხაზების კოდი 384 00:16:54,435 --> 00:16:55,810 , რომელშიც, რაც ცვლის. 385 00:16:55,810 --> 00:16:57,810 ასე რომ ზოგადად, ჩვენ არ ლაპარაკი ეს ერთი. 386 00:16:57,810 --> 00:17:00,690 გულწრფელად რომ ვთქვა, ეს ქმნის თქვენი კოდი sexier და ერთგვარი slicker, 387 00:17:00,690 --> 00:17:01,776 და ნაკლები სიმბოლო. 388 00:17:01,776 --> 00:17:04,859 მაგრამ რეალობა ის არის, რომ ეს ბევრად უფრო რთული, მე ვფიქრობ, რომ ჩემთვისაც კი გადაიტანოთ ჩემი აზრით 389 00:17:04,859 --> 00:17:07,319 გარშემო ზოგჯერ, ბრძანებით ოპერაციებში. 390 00:17:07,319 --> 00:17:09,750 ასე რომ, როგორც განზე, თუ თქვენ ნამდვილად არ მომწონს ეს, 391 00:17:09,750 --> 00:17:14,650 მიუხედავად იმისა, რომ ეს არის ერთგვარი sexy ეძებს, ასევე შეგიძლიათ ამის i + = 1, 392 00:17:14,650 --> 00:17:18,880 რომელიც არის მახინჯი ვერსია იგივე იდეა postfix incrementation. 393 00:17:18,880 --> 00:17:22,250 >> მე ამას ვამბობ და თქვენ უნდა მიიღოს გართობა, 394 00:17:22,250 --> 00:17:25,140 მაგრამ თქვენ მოვა, რომ კოდი, რაც რაღაც ლამაზი ხანგრძლივი. 395 00:17:25,140 --> 00:17:27,160 >> [სიცილი] 396 00:17:27,160 --> 00:17:28,410 >> დევიდ ჯ Malan: მარჯვენა? 397 00:17:28,410 --> 00:17:29,360 Yeah. 398 00:17:29,360 --> 00:17:30,480 კითხვა ცენტრიდან. 399 00:17:30,480 --> 00:17:32,146 >> აუდიტორია: თქვენ უნდა ვთქვა, int n? 400 00:17:32,146 --> 00:17:34,020 დევიდ ჯ Malan: თქვენ არ უნდა ვთქვათ, int n. 401 00:17:34,020 --> 00:17:37,670 ასე რომ, რადგან ჩვენ უკვე განაცხადა, int, თქვენ არ უნდა ვთქვა, რომ ეს კიდევ ერთხელ. 402 00:17:37,670 --> 00:17:41,820 დაჭერა, რომ n აქვს იქნება იგივე ტიპის მონაცემის როგორც მე. 403 00:17:41,820 --> 00:17:43,310 ასე რომ, ეს მხოლოდ მოხერხებულობისთვის აქ. 404 00:17:43,310 --> 00:17:44,058 Yeah. 405 00:17:44,058 --> 00:17:47,806 >> აუდიტორია: შეგიძლიათ წასვლა მეტი ბეჭდვითი ხასიათის s bracket i კიდევ ერთხელ? 406 00:17:47,806 --> 00:17:48,930 დევიდ ჯ Malan: რა თქმა უნდა. 407 00:17:48,930 --> 00:17:52,110 ასე% C, გავიხსენოთ ბოლო დრო, მხოლოდ placeholder. 408 00:17:52,110 --> 00:17:53,930 ეს იმას ნიშნავს, დააყენა char აქ. 409 00:17:53,930 --> 00:17:56,780 წარმატებული ო, რა თქმა უნდა, მხოლოდ საშუალება დააყენა ხაზის შესვენების აქ. 410 00:17:56,780 --> 00:17:59,540 ასე რომ ტოვებს, ახლა, ეს ნაჭერი ახალი სინტაქსის. 411 00:17:59,540 --> 00:18:03,730 და ეს სიტყვასიტყვით ამბობს, დაიბრუნოს სიმებიანი მოუწოდა და წავიდეთ მიიღოს მისი 412 00:18:03,730 --> 00:18:06,050 i'th ხასიათი, ასე ვთქვათ. 413 00:18:06,050 --> 00:18:10,590 >> და მე შენარჩუნება ამბობდა i'th ხასიათი რადგან თითოეულ iteration ამ მარყუჟის 414 00:18:10,590 --> 00:18:14,540 ეს თითქოს ჩვენ დაბეჭდვის გარეთ, პირველი s bracket 0, 415 00:18:14,540 --> 00:18:15,780 როგორც პროგრამისტი შეიძლება ითქვას. 416 00:18:15,780 --> 00:18:18,680 მერე bracket 1, მაშინ s bracket 2, 3, მაშინ 4. 417 00:18:18,680 --> 00:18:21,610 მაგრამ რა თქმა უნდა ეს ცვლადი, ასე რომ მე უბრალოდ გამოხატვა i. 418 00:18:21,610 --> 00:18:23,900 >> გასაღები, თუმცა, გააცნობიეროს, განსაკუთრებით, თუ თქვენ არ 419 00:18:23,900 --> 00:18:26,358 უკვე acclimating ამ სამყაროში პროგრამირების, სადაც ჩვენ ყველა 420 00:18:26,358 --> 00:18:28,950 როგორც ჩანს, ითვლიან ნულიდან, gotta დაიწყება დათვლის ნულიდან არის. 421 00:18:28,950 --> 00:18:35,130 რადგან სიმები, პირველი ხასიათი, z in Zamyla არის უკეთესი ან უარესი 422 00:18:35,130 --> 00:18:40,490 აპირებს ცხოვრობს ადგილმდებარეობა ხმების ნულოვანი. 423 00:18:40,490 --> 00:18:48,210 >> ყველა უფლება, მოდით მოუტანს us უკან აქ Zamyla 424 00:18:48,210 --> 00:18:50,746 და ვნახოთ, რა ხდება სინამდვილეში ქვევმოთ hood. 425 00:18:50,746 --> 00:18:52,370 ასე რომ არსებობს ამ ცნება ტიპის გააპროტესტეს. 426 00:18:52,370 --> 00:18:53,800 თქვენ შეიძლება რეალურად ითამაშა, რომელზეც ეს, უკვე, 427 00:18:53,800 --> 00:18:55,970 იქნებ ჰაკერი გამოცემა P მითითებული ერთი. 428 00:18:55,970 --> 00:19:00,320 მაგრამ type casting უბრალოდ ეხება უნარი C და სხვა ენებზე 429 00:19:00,320 --> 00:19:03,170 კონვერტირება ერთი ტიპის მონაცემის სხვა. 430 00:19:03,170 --> 00:19:05,450 >> ახლა როგორ შეიძლება ჩვენ ვხედავთ საკმაოდ მარტივად? 431 00:19:05,450 --> 00:19:08,530 ასე რომ, ეს, გავიხსენოთ, არის დასაწყისში ინგლისური ანბანი. 432 00:19:08,530 --> 00:19:11,265 და კონტექსტში, გავიხსენოთ, საწყისი ისევე როგორც ერთი კვირის წინ არის ASCII. 433 00:19:11,265 --> 00:19:13,790 ამერიკული სტანდარტული კოდი ინფორმაციის ცვლა. 434 00:19:13,790 --> 00:19:17,080 რომელიც მხოლოდ მართლაც დიდი გზა ამბობდა რუკების წერილები 435 00:19:17,080 --> 00:19:19,370 ნომრები, და რიცხვს წერილები. 436 00:19:19,370 --> 00:19:22,940 >> ასე მეშვეობით M აქ, dot, dot dot, ხაზები, გავიხსენოთ, 437 00:19:22,940 --> 00:19:25,582 ათობითი რიცხვი 65 მდე. 438 00:19:25,582 --> 00:19:27,290 და ჩვენ ვერ გაიგო ამ პირდაპირ, 439 00:19:27,290 --> 00:19:29,850 მაგრამ ნამდვილად არსებობს მსგავსი ნომრები ამას წერილებს. 440 00:19:29,850 --> 00:19:30,820 და მართლაც, არსებობს. 441 00:19:30,820 --> 00:19:33,730 მსოფლიოს გადაწყდა, რამდენიმე წლის წინ, რომ პატარა, ამას, 442 00:19:33,730 --> 00:19:35,020 იქნება 97. 443 00:19:35,020 --> 00:19:38,010 და პატარა ბ აპირებს იყოს 98, და სხვ. 444 00:19:38,010 --> 00:19:40,200 >> და ნებისმიერი სხვა გასაღები თქვენს კლავიატურაზე, იქ 445 00:19:40,200 --> 00:19:42,190 იქნება მსგავსი ნიმუში ბიტი. 446 00:19:42,190 --> 00:19:44,540 ან ექვივალენტურად, ათობითი რიცხვი. 447 00:19:44,540 --> 00:19:47,110 ასე რომ, კითხვა მხრივ, მაშინ, როგორ შეგვიძლია 448 00:19:47,110 --> 00:19:49,400 რეალურად ვხედავ ამ ქვევმოთ hood? 449 00:19:49,400 --> 00:19:51,539 ამიტომ, მე ვაპირებ წასვლა მეტი gedit ერთხელ. 450 00:19:51,539 --> 00:19:53,330 და ვიდრე ტიპის ეს ერთი ნულიდან, 451 00:19:53,330 --> 00:19:55,330 მე ვაპირებ წავიდეთ წინ და უბრალოდ გახსენით რაღაც 452 00:19:55,330 --> 00:19:58,350 დღევანდელი კოდი მოუწოდა ASCII ნულოვანი. 453 00:19:58,350 --> 00:20:01,210 >> და ASCII ნულოვანი ასე გამოიყურება. 454 00:20:01,210 --> 00:20:02,710 ასე რომ, მოდით გადაიტანოთ ჩვენი გონება გარშემო. 455 00:20:02,710 --> 00:20:04,969 ასე რომ, პირველი, მე კომენტარი კოდი, რომელიც არის ლამაზი. 456 00:20:04,969 --> 00:20:07,010 რადგან ეს სიტყვა მეუბნებოდა, თუ რას უნდა ველოდოთ, 457 00:20:07,010 --> 00:20:08,950 არიან რუკების ზედა წერილები. 458 00:20:08,950 --> 00:20:13,690 ახლა მე არ საკმაოდ ვიცი რა ნიშნავს, რომ, მოდით ითქვას. 459 00:20:13,690 --> 00:20:16,870 >> ინგლისური, შესაძლოა, გარკვეულწილად techie English, 460 00:20:16,870 --> 00:20:20,660 რა ხაზის 18 როგორც ჩანს, უნდა აკეთებს ჩვენთვის? 461 00:20:20,660 --> 00:20:21,500 უბრალოდ ხაზი 18. 462 00:20:21,500 --> 00:20:22,430 რას იწვევს? 463 00:20:22,430 --> 00:20:25,192 რა არის ის აპირებს გამოაგდონ off აქ? 464 00:20:25,192 --> 00:20:26,100 >> აუდიტორია: A loop. 465 00:20:26,100 --> 00:20:26,630 >> დევიდ ჯ Malan: A loop. 466 00:20:26,630 --> 00:20:28,463 და რამდენჯერ რომ აპირებს iterate? 467 00:20:28,463 --> 00:20:31,562 468 00:20:31,562 --> 00:20:33,270 აუდიტორია: [INTERPOSING ხმები] ექვსჯერ. 469 00:20:33,270 --> 00:20:34,830 დევიდ ჯ Malan: არ ექვსჯერ. 470 00:20:34,830 --> 00:20:35,840 აუდიტორია: 26 ჯერ. 471 00:20:35,840 --> 00:20:36,560 დევიდ ჯ Malan: 26 ჯერ. 472 00:20:36,560 --> 00:20:37,060 ჰო, ბოდიში. 473 00:20:37,060 --> 00:20:37,960 26 ჯერ. 474 00:20:37,960 --> 00:20:38,460 რატომ? 475 00:20:38,460 --> 00:20:41,590 ისე, ეს პატარა უცნაური, მაგრამ მე ათვლა დაიწყო 65. 476 00:20:41,590 --> 00:20:43,300 რომელიც უცნაური, მაგრამ არასწორი. 477 00:20:43,300 --> 00:20:44,610 ეს არ არის ცუდი პოსტი say. 478 00:20:44,610 --> 00:20:46,980 და მე ამით, რომ მხოლოდ იმიტომ, რომ ეს მაგალითი, 479 00:20:46,980 --> 00:20:50,455 მე სახის anticipating რომ დედაქალაქში 65. 480 00:20:50,455 --> 00:20:53,330 ახლა ეს არ არის ყველაზე ელეგანტური გზა ამის გაკეთება, ასეთი მძიმე კოდი 481 00:20:53,330 --> 00:20:56,130 ეზოთერულ ღირებულებები, რომ არავინ ოდესმე მოსალოდნელია, რომ გახსოვთ. 482 00:20:56,130 --> 00:21:00,155 >> მაგრამ ახლა შეამჩნია, რომ მე ვარ ამით საშუალებით 65 Plus 26. 483 00:21:00,155 --> 00:21:03,030 იმის გამო, რომ, როგორც ჩანს, მე კი არ მინდა, გავაკეთოთ არითმეტიკული ჩემი უფროსი. 484 00:21:03,030 --> 00:21:04,440 ასე რომ მე ნება შემდგენელი გაკეთება. 485 00:21:04,440 --> 00:21:08,600 მაგრამ შემდეგ თითოეულ loop, თითოეულ iteration ციკლი, მე დამატება i. 486 00:21:08,600 --> 00:21:10,196 >> ასე რომ, ახლა ეს გამოიყურება პატარა cryptic. 487 00:21:10,196 --> 00:21:13,320 მაგრამ ჩვენ უნდა ჰქონდეს ძირითადი შენობა ბლოკები, რომელიც ხვდება. 488 00:21:13,320 --> 00:21:15,510 % C მხოლოდ placeholder for char. 489 00:21:15,510 --> 00:21:19,010 % I არის placeholder int. 490 00:21:19,010 --> 00:21:23,310 და აღმოჩნდება, რომ გამოყენებით ამ ახალი სინტაქსი, ამ ჩართული, ასე რომ 491 00:21:23,310 --> 00:21:26,100 საუბარი, ასე რომ მონაცემები ტიპის შიგნით ფრჩხილებში, 492 00:21:26,100 --> 00:21:32,270 მე შეიძლება აიძულოს შემდგენელი მკურნალობა i არ არის მთელი რიცხვი, მაგრამ, როგორც char. 493 00:21:32,270 --> 00:21:35,520 >> რითაც გვიჩვენებს ჩემთვის ხასიათი ეკვივალენტს, რომ ნომერი. 494 00:21:35,520 --> 00:21:37,986 ახლა ქვემოთ აქ, ეს კოდი არის საკმაოდ ბევრი იდენტურია. 495 00:21:37,986 --> 00:21:39,860 მე უბრალოდ მინდოდა სუპერ გამოკვეთილ ფაქტი 496 00:21:39,860 --> 00:21:42,095 რომ მე დაწყებული 97, რომელიც ამას. 497 00:21:42,095 --> 00:21:44,080 მდე მეშვეობით 26 უფრო წერილებს. 498 00:21:44,080 --> 00:21:46,970 და მე აკეთებს, კიდევ ერთხელ, კასტინგი i, ასე ვთქვათ. 499 00:21:46,970 --> 00:21:49,160 ან ტიპის ჩამოსხმის i, ასე ვთქვათ. 500 00:21:49,160 --> 00:21:51,420 >> საწყისი int to char. 501 00:21:51,420 --> 00:21:55,760 ასე რომ საბოლოო ჯამში იქნება, გულწრფელად ვამბობ, ინფორმაცია ჩვენ უკვე ვიცით. 502 00:21:55,760 --> 00:21:59,411 მე ვაპირებ ascii-0 dot-- არ dot გ. 503 00:21:59,411 --> 00:22:02,160 განაცხადის, თქვენ ალბათ გააკეთა, რომ შეცდომა მე უბრალოდ შემთხვევით. 504 00:22:02,160 --> 00:22:03,820 მიიღოს ASCII-0. 505 00:22:03,820 --> 00:22:06,090 ახლა მე ვაპირებ ამის გაკეთებას ./ascii-0. 506 00:22:06,090 --> 00:22:09,050 მე მიუახლოვდით, და სამწუხაროდ, ის აპირებს გადახვევა off ეკრანზე. 507 00:22:09,050 --> 00:22:15,060 მაგრამ ჩვენ ვხედავთ მთელი სქემა, სადაც რუკები 97, ბ რუკები 98, 508 00:22:15,060 --> 00:22:18,931 და თუ ჩვენ გადახვევა შემდგომი რა თქმა უნდა, რუკები 65. 509 00:22:18,931 --> 00:22:21,180 ასე რომ, ეს მხოლოდ იმის თქმა, რაც ჩვენ უკვე ქადაგებდა, 510 00:22:21,180 --> 00:22:25,310 არსებობს ამ ეკვივალენტობის არის სინამდვილეში საქმე რეალურად. 511 00:22:25,310 --> 00:22:28,000 ასე სწრაფი ცვლილების ამ. 512 00:22:28,000 --> 00:22:31,220 ნება მომეცით გახსნა ascii-1.c. 513 00:22:31,220 --> 00:22:38,070 და შეამჩნია ეს ჭკვიანი, ერთგვარი საქართველოს, ნათელი მოჰფინოს ამ. 514 00:22:38,070 --> 00:22:41,770 ეს არის ASCII-1.c და შეამჩნია ეს გიჟები რამ. 515 00:22:41,770 --> 00:22:45,120 >> და ეს ნამდვილად ხვდება გულში რა კომპიუტერი აკეთებს. 516 00:22:45,120 --> 00:22:48,150 მიუხედავად იმისა, რომ ჩვენ ადამიანები რომ არ ითვლიან თვალსაზრისით letters-- 517 00:22:48,150 --> 00:22:50,380 მე არ დაიწყოს ფიქრი, ყველა უფლება შემდეგ ბ, 518 00:22:50,380 --> 00:22:52,590 და გამოიყენოთ ის ითვლიან ფიზიკური ობიექტები. 519 00:22:52,590 --> 00:22:58,680 თქვენ რა თქმა უნდა ვთქვა, რომ მინდა ვრთავ ზოგიერთი ცვლადში, C 520 00:22:58,680 --> 00:23:03,220 მაგრამ მე შეეძლო უწოდა არაფერი ასე c ინიციალიზაცია რომ დედაქალაქში ა 521 00:23:03,220 --> 00:23:07,560 >> იმის გამო, რომ დღის ბოლოს, კომპიუტერული არ აინტერესებს, რა თქვენ შენახვა, 522 00:23:07,560 --> 00:23:10,170 ის მხოლოდ ზრუნავს, თუ როგორ გსურთ წარმოადგინოს ინფორმაციას. 523 00:23:10,170 --> 00:23:13,560 როგორ გნებავთ კომპიუტერული ინტერპრეტაცია, რომ ნიმუში ბიტი? 524 00:23:13,560 --> 00:23:16,320 ასე რომ, ეს არ არის რამე საერთოდ, გირჩევთ აკეთებს. 525 00:23:16,320 --> 00:23:19,500 ეს მართლაც მხოლოდ მაგალითია გადმოცემა, რომ თქვენ შეგიძლიათ სრულიად 526 00:23:19,500 --> 00:23:22,049 ინიციალიზაცია მთელი char. 527 00:23:22,049 --> 00:23:24,090 იმიტომ, რომ ქვეშ hood of char, რა თქმა უნდა, 528 00:23:24,090 --> 00:23:26,170 არის მხოლოდ ნომერი 0 255. 529 00:23:26,170 --> 00:23:28,540 >> ასე რომ თქვენ შეგიძლიათ, რა თქმა უნდა ამას შიგნით int. 530 00:23:28,540 --> 00:23:30,890 და რა ეს ასევე მეტყველებს, რომ ჩვენ 531 00:23:30,890 --> 00:23:34,040 შეუძლია კონვერტირება ერთი ტიპის სხვა, აქ, 532 00:23:34,040 --> 00:23:36,780 საბოლოოდ ბეჭდვის იგივე. 533 00:23:36,780 --> 00:23:44,760 და ფაქტობრივად, ეს მე დაფიქსირება online-- კი იმას ნიშნავდა, ამბობენ, რომ ეს, კიდევ ერთხელ, აქ. 534 00:23:44,760 --> 00:23:48,610 მიადევნე თვალი გაწმენდა ამ up ონლაინ, და ჩვენ ვხედავთ ონლაინ walkthrough, როგორც საჭიროა, 535 00:23:48,610 --> 00:23:50,280 რა იყო განკუთვნილი არსებობს. 536 00:23:50,280 --> 00:23:50,960 >> OK. 537 00:23:50,960 --> 00:23:53,892 ასე რომ, ბოლო მაგალითი ახლა ჩართვის და B და მაშინ ჩვენ გამოგიგზავნით 538 00:23:53,892 --> 00:23:54,850 რამ up მაღალი დონის. 539 00:23:54,850 --> 00:23:58,330 ასე და B და c წელს კაპიტალიზაციის 540 00:23:58,330 --> 00:24:01,560 და ეკვივალენტობის მისი, მოდით შევხედოთ ამ მაგალითად, აქ. 541 00:24:01,560 --> 00:24:02,752 სხვა კოდი მაგალითია. 542 00:24:02,752 --> 00:24:04,460 ჩვენ გახსნა ერთი, რომ უკვე გააკეთა, ასე რომ 543 00:24:04,460 --> 00:24:06,440 არ უნდა აკრიფოთ ყველა out ნულიდან. 544 00:24:06,440 --> 00:24:09,420 >> და შეამჩნია მოლოდინში ჩვენ გამოყენებით მრავალჯერადი header 545 00:24:09,420 --> 00:24:13,240 ფაილი, მათ შორის, ჩვენი ახალი მეგობარი, string.h. 546 00:24:13,240 --> 00:24:15,597 ახლა ეს გამოიყურება, პირველ რიგში, ერთი შეხედვით, პატარა cryptic. 547 00:24:15,597 --> 00:24:18,180 მაგრამ ვნახოთ, თუ ჩვენ ვერ მიზეზი მეშვეობით, თუ რა ხდება აქ. 548 00:24:18,180 --> 00:24:21,150 პირველი მივიღებ string საწყისი მომხმარებელს, მე და ის, რომ სიმებიანი ცვლადი 549 00:24:21,150 --> 00:24:22,286 მოუწოდა. 550 00:24:22,286 --> 00:24:24,090 ასლი პასტა წლამდე. 551 00:24:24,090 --> 00:24:27,250 სტრიქონში 22, მე აშკარად აკეთებს ზუსტად რა 552 00:24:27,250 --> 00:24:30,760 მე მომენტში წინ, მე iterating მეტი სიმბოლოების s. 553 00:24:30,760 --> 00:24:34,780 >> და ახალი ხრიკები აქ იყენებთ სიმებიანი სიგრძე, უმნიშვნელო ოპტიმიზაცია 554 00:24:34,780 --> 00:24:37,930 შენახვის სიმებიანი სიგრძე n, ვიდრე მოუწოდებდა strlen ისევ, 555 00:24:37,930 --> 00:24:38,850 და ისევ და ისევ. 556 00:24:38,850 --> 00:24:41,120 და მხოლოდ შემოწმების, რომ მე ნაკლებია n. 557 00:24:41,120 --> 00:24:43,330 ახლა აქ, რამ ცოტა საინტერესო. 558 00:24:43,330 --> 00:24:45,980 მაგრამ ეს მხოლოდ განცხადება ამ იგივე ახალი იდეა. 559 00:24:45,980 --> 00:24:48,470 რა ინგლისურ აკეთებს s bracket i წარმოადგენს? 560 00:24:48,470 --> 00:24:51,772 561 00:24:51,772 --> 00:24:54,260 >> აუდიტორია: დათვლა თითოეულ ხასიათი [INAUDIBLE]. 562 00:24:54,260 --> 00:24:55,926 >> დევიდ ჯ Malan: დათვლა თითოეული ხასიათი. 563 00:24:55,926 --> 00:24:58,680 და კიდევ უფრო მოკლედ, s bracket i წარმოადგენს რა? 564 00:24:58,680 --> 00:25:00,950 რომ ამბობთ. 565 00:25:00,950 --> 00:25:04,084 არ დააყენა თქვენ ადგილზე აქ. 566 00:25:04,084 --> 00:25:06,375 >> აუდიტორია: Well-- 567 00:25:06,375 --> 00:25:09,500 დევიდ ჯ Malan: ასე რომ, თუ სიტყვა is-- თუ სიმებიანი Zamyla, რომელიც starts-- 568 00:25:09,500 --> 00:25:12,380 აუდიტორია: --you გაუმკლავდეთ გმირები separately-- 569 00:25:12,380 --> 00:25:13,690 დევიდ ჯ Malan: კარგი. 570 00:25:13,690 --> 00:25:14,190 ზუსტად. 571 00:25:14,190 --> 00:25:17,940 კვადრატული ფრჩხილი ნოტაცია საშუალებას გაძლევთ წვდომის ყოველი ხასიათი ინდივიდუალურად, 572 00:25:17,940 --> 00:25:21,120 ასე რომ, ის bracket 0 იქნება პირველი პერსონაჟი სიმებიანი. 573 00:25:21,120 --> 00:25:24,110 s bracket 1 იქნება მეორე, და სხვ. 574 00:25:24,110 --> 00:25:28,050 ასე რომ, კითხვა, მე გეკითხებით, აქ, ამ მდგომარეობაში არის რა? 575 00:25:28,050 --> 00:25:33,984 არის i'th ხასიათი s უფრო მეტი ან ტოლი ამას? 576 00:25:33,984 --> 00:25:36,400 და რას ნიშნავს ეს, აქ, ორმაგი ampersands? 577 00:25:36,400 --> 00:25:36,800 აუდიტორია (ერთად): და. 578 00:25:36,800 --> 00:25:37,210 დევიდ ჯ Malan: And. 579 00:25:37,210 --> 00:25:38,418 ეს მხოლოდ ეკვივალენტი ამ. 580 00:25:38,418 --> 00:25:42,310 და არ არის სიტყვით C, თქვენ უნდა გამოყენება, annoyingly, ampersand ampersand. 581 00:25:42,310 --> 00:25:47,520 და ეს, პირიქით, ითხოვს არის ის i'th ხასიათი ნაკლებია ან ტოლი 582 00:25:47,520 --> 00:25:49,030 ამას z? 583 00:25:49,030 --> 00:25:52,440 და კიდევ ერთხელ, აქ, სადაც გაგება ძირითადი 584 00:25:52,440 --> 00:25:54,550 განხორციელება კომპიუტერული აზრი. 585 00:25:54,550 --> 00:25:57,330 გაითვალისწინეთ, რომ მიუხედავად იმისა, რომ აქვს dot dot dot იქ, 586 00:25:57,330 --> 00:26:04,410 ჰგავს მეშვეობით z ამას ეძებს ყველა მომიჯნავე ღირებულებების მდე 97 მდე. 587 00:26:04,410 --> 00:26:07,820 >> და იგივე ზედა დაწყებული 65. 588 00:26:07,820 --> 00:26:10,410 ამიტომ takeaway, მაშინ, ის არის, რომ ინგლისურ, 589 00:26:10,410 --> 00:26:12,760 როგორ დაახასიათებდით რა ხაზი 24 აკეთებს? 590 00:26:12,760 --> 00:26:15,736 591 00:26:15,736 --> 00:26:16,728 ჰო? 592 00:26:16,728 --> 00:26:21,575 >> აუდიტორია: 24 ის შემოწმების არა თითოეული ხასიათი არის ამას. 593 00:26:21,575 --> 00:26:24,700 დევიდ ჯ Malan: ეს შემოწმების თუ არა თითოეული ხასიათი არის ამას წერილში. 594 00:26:24,700 --> 00:26:28,590 ასე რომ კიდევ უფრო მოკლედ, არის i'th ხასიათი s ამას? 595 00:26:28,590 --> 00:26:30,690 ეს ჩვენ ვართ გამოხატავს აქ ლოგიკურად, 596 00:26:30,690 --> 00:26:33,750 პატარა cryptically, მაგრამ საბოლოო ჯამში, საკმაოდ მარტივად. 597 00:26:33,750 --> 00:26:36,480 არის ის i'th ხასიათი ამას? 598 00:26:36,480 --> 00:26:40,130 >> თუ ეს ასეა, და აქ, სადაც რამ კიდევ ცოტა გონება bending 599 00:26:40,130 --> 00:26:44,760 მხოლოდ ერთი წუთით, თუ ასეა, წავიდეთ წინ და ამობეჭდოთ ხასიათი. 600 00:26:44,760 --> 00:26:47,360 ასე რომ, ეს მხოლოდ placeholder, მაგრამ რა ხასიათი? 601 00:26:47,360 --> 00:26:53,710 რატომ ვაკეთებ s bracket i მინუს ეს გამოთქმა აქ? 602 00:26:53,710 --> 00:26:55,110 >> ასევე შეამჩნია ნიმუში აქ. 603 00:26:55,110 --> 00:26:57,380 სინამდვილეში ეს რიცხვები არ აქვს მნიშვნელობა, იმდენად. 604 00:26:57,380 --> 00:27:02,700 მაგრამ შეამჩნია, რომ 97 არის რამდენად შორს 65? 605 00:27:02,700 --> 00:27:03,560 >> აუდიტორია: 32. 606 00:27:03,560 --> 00:27:04,480 >> დევიდ ჯ Malan: 32. 607 00:27:04,480 --> 00:27:06,890 რამდენად შორს არის 98 66? 608 00:27:06,890 --> 00:27:07,740 >> აუდიტორია: 32. 609 00:27:07,740 --> 00:27:09,890 >> დევიდ ჯ Malan: Little c დიდი C? 610 00:27:09,890 --> 00:27:10,420 32. 611 00:27:10,420 --> 00:27:14,550 ასე რომ, არსებობს 32 hops საწყისი ერთი წერილი სხვა. 612 00:27:14,550 --> 00:27:17,790 გულწრფელად რომ ვთქვა, მე, შეიძლება, გავამარტივოთ რომ. 613 00:27:17,790 --> 00:27:20,400 მაგრამ შემდეგ მე ასეთი მძიმე კოდირების დაბალი დონის გაგება 614 00:27:20,400 --> 00:27:21,740 რომ მკითხველს ოდესმე აპირებს მესმის. 615 00:27:21,740 --> 00:27:25,080 ამიტომ, მე ვაპირებ, რომ განზოგადება, როგორც მე ვიცი, რომ ამას წერილები დიდია. 616 00:27:25,080 --> 00:27:28,400 მე ვიცი, რომ დიდი ასოებით არის მცირე მნიშვნელობები, ირონიულად. 617 00:27:28,400 --> 00:27:33,216 >> მაგრამ ეს ეფექტურად ექვივალენტი განაცხადა, რომ სხვაობა 32 s bracket i. 618 00:27:33,216 --> 00:27:35,430 კონტექსტში ამ წერილებს, თუ წერილი 619 00:27:35,430 --> 00:27:38,950 მოხდება უნდა იყოს, ამას a, და ვაკლებ 32, 620 00:27:38,950 --> 00:27:43,442 რა გავლენას ახდენს, რომლებიც, მათემატიკურად, on ამას? 621 00:27:43,442 --> 00:27:44,400 აუდიტორია: Capitalizes-- 622 00:27:44,400 --> 00:27:45,691 დევიდ ჯ Malan: კაპიტალიზაციას იგი. 623 00:27:45,691 --> 00:27:48,440 და მართლაც, ამიტომ ჩვენი პროგრამა ეწოდება ესარგებლა ნულოვანი. 624 00:27:48,440 --> 00:27:51,590 ეს პროგრამა ან კაპიტალიზაციას, წერილი, 625 00:27:51,590 --> 00:27:54,580 შემოწმების შემდეგ, თუ ეს მართლაც ამას წერილში. 626 00:27:54,580 --> 00:27:59,810 წინააღმდეგ შემთხვევაში, ხაზი 30, რა გავაკეთო, თუ ეს არ არის ამას წერილში, რომ მე ვარ 627 00:27:59,810 --> 00:28:02,852 ეძებს კონკრეტული iteration loop. 628 00:28:02,852 --> 00:28:03,890 უბრალოდ ამობეჭდოთ. 629 00:28:03,890 --> 00:28:07,010 >> ასე რომ არ შეცვალოს პერსონალი ეს არ არის კიდევ ამას. 630 00:28:07,010 --> 00:28:10,790 ზღუდავს საკუთარ თავს, პატარა მეშვეობით პატარა z. 631 00:28:10,790 --> 00:28:12,730 ახლა ეს არის საკმაოდ arcane. 632 00:28:12,730 --> 00:28:15,230 მაგრამ, დღის ბოლოს, ამ არის, თუ როგორ, ერთხელ, 633 00:28:15,230 --> 00:28:16,460 ჰქონდა განახორციელოს რამ. 634 00:28:16,460 --> 00:28:19,780 თუ მე ნაცვლად გახსნა ესარგებლა ერთი, რა მადლობა ღმერთს. 635 00:28:19,780 --> 00:28:22,320 არსებობს ფუნქცია ე.წ. ზედა რომ შეგიძლიათ 636 00:28:22,320 --> 00:28:25,410 ყველაფერს გააკეთებს, რომ ჩვენ უბრალოდ საკმაოდ დაბალი დონე. 637 00:28:25,410 --> 00:28:28,752 >> ახლა ზედა არის საინტერესო იმიტომ, რომ ეს არის დეკლარირებული ფაილი, 638 00:28:28,752 --> 00:28:31,210 და თქვენ მხოლოდ ვიცი, რომ ეს შემოწმების დოკუმენტაცია, 639 00:28:31,210 --> 00:28:35,730 ან ეუბნებიან, ვთქვათ, კლასი, სადაც ის არსებობს, ფაილი სახელად ctype.h. 640 00:28:35,730 --> 00:28:37,630 ასე რომ, ეს არის კიდევ ერთი ახალი მეგობარი ჩვენი. 641 00:28:37,630 --> 00:28:40,750 და ზემო ზუსტად რა მისი სახელი ვარაუდობს. 642 00:28:40,750 --> 00:28:44,860 >> თქვენ შეგიძლიათ გადასცეთ, როგორც არგუმენტი, შორის ამ ფრჩხილებში, გარკვეული ხასიათი. 643 00:28:44,860 --> 00:28:48,390 მე ვაპირებ კორიდორი i'th ხასიათი საქართველოს გამოყენებით ჩვენი ლამაზი ახალი notation 644 00:28:48,390 --> 00:28:49,870 ჩართვის კვადრატულ ფრჩხილებში. 645 00:28:49,870 --> 00:28:53,391 და მიხვდები, რა არის დაბრუნების ღირებულება ზემო სავარაუდოდ აპირებს 646 00:28:53,391 --> 00:28:53,890 უნდა იყოს? 647 00:28:53,890 --> 00:28:56,460 648 00:28:56,460 --> 00:28:57,770 კაპიტალის წერილში. 649 00:28:57,770 --> 00:28:58,620 კაპიტალის წერილში. 650 00:28:58,620 --> 00:29:02,330 >> ასე რომ, თუ მე გაივლის ამას, იმედია, ზოგადად ზედა, 651 00:29:02,330 --> 00:29:05,600 ის დაბრუნებას აპირებს ზედა A. წინააღმდეგ შემთხვევაში, 652 00:29:05,600 --> 00:29:08,590 თუ ეს არ არის ამას წერილი პირველ რიგში, მე უბრალოდ ამობეჭდოთ. 653 00:29:08,590 --> 00:29:10,800 და მართლაც, შეამჩნია მეორე მეგობარი აქ. 654 00:29:10,800 --> 00:29:13,840 არა მხოლოდ ზედა არსებობს, მაგრამ უფრო დაბალია, რაც 655 00:29:13,840 --> 00:29:16,200 რეალურად პასუხობს ამ კითხვაზე ჩემთვის. 656 00:29:16,200 --> 00:29:19,730 >> ახლა ვინც დაწერა ეს ყველაფერი, 10s წლის წინ, იცით, რა? 657 00:29:19,730 --> 00:29:23,840 განხორციელებული ზემო და ქვედა გამოყენებით კოდი მოსწონს ეს. 658 00:29:23,840 --> 00:29:27,270 თუმცა ისევ და ისევ, შეესაბამება ეს იდეა abstracting მოშორებით, 659 00:29:27,270 --> 00:29:29,190 სახის, ქვედა დონეზე განხორციელების დეტალები. 660 00:29:29,190 --> 00:29:32,600 და იდგა მხრებზე ადამიანი ვინც მოვიდა ჩვენს წინაშე, გამოყენებით ფუნქციებს 661 00:29:32,600 --> 00:29:36,300 ისევე როგორც ზემო და ქვემო, რომელიც შესანიშნავად საკმარისი ლამაზად 662 00:29:36,300 --> 00:29:40,190 დასახელდა ვთქვა, რას გააკეთებს, შესანიშნავი პარადიგმა უნდა მიიღონ. 663 00:29:40,190 --> 00:29:44,040 >> ახლა, გამოდის, რომ თუ წავიკითხე კაცი გვერდზე, ვთქვათ, ზედა, 664 00:29:44,040 --> 00:29:45,010 მე ისწავლოს რაღაც. 665 00:29:45,010 --> 00:29:46,890 ასე რომ, ადამიანი toupper. 666 00:29:46,890 --> 00:29:48,050 ეს ცოტა გადაჭარბებული. 667 00:29:48,050 --> 00:29:51,110 მაგრამ შეამჩნია, აქ რომ ნახსენები header ფაილი რომ მე უნდა გამოიყენოს. 668 00:29:51,110 --> 00:29:54,460 როგორც განზე, რადგან ამ შეცდომაში ფუნქცია 669 00:29:54,460 --> 00:29:59,070 იყენებს ints ნაცვლად chars იმის გამო, შეცდომა შემოწმებისას. 670 00:29:59,070 --> 00:30:01,260 მაგრამ ჩვენ ალბათ მოვა უკან, რომ მომავალში. 671 00:30:01,260 --> 00:30:05,910 >> მაგრამ შეამჩნია, აქ, ზემო გარდაქმნის წერილი გ ზედა თუ ეს შესაძლებელია. 672 00:30:05,910 --> 00:30:07,674 ასე რომ, ეს საკმაოდ მარტივია. 673 00:30:07,674 --> 00:30:09,340 და ახლა მოდით ცოტა უფრო კონკრეტული. 674 00:30:09,340 --> 00:30:12,750 მოდით შევხედოთ იმ ნაწილს, კაცი გვერდზე ქვეშ დაბრუნებული მნიშვნელობა. 675 00:30:12,750 --> 00:30:15,420 ღირებულება დაბრუნდა ის არის, რომ მოაქცია წერილი. 676 00:30:15,420 --> 00:30:18,690 ან c, თუ კონვერტაციის არ იყო შესაძლებელი, 677 00:30:18,690 --> 00:30:20,250 სადაც c არის ორიგინალური შეყვანა. 678 00:30:20,250 --> 00:30:24,140 რაც მე ვიცი, აქედან, არგუმენტი ზედა. 679 00:30:24,140 --> 00:30:25,780 >> რა არის takeaway ამ? 680 00:30:25,780 --> 00:30:28,060 ღირებულება დაბრუნდა ის არის, რომ მოაქცია წერილი, 681 00:30:28,060 --> 00:30:32,110 ან გ, ორიგინალური წერილი, თუ კონვერტაციის არ იყო შესაძლებელი. 682 00:30:32,110 --> 00:30:36,460 რა გაუმჯობესება ამიტომ მიიღოს ჩემი კოდი დიზაინი? 683 00:30:36,460 --> 00:30:37,146 ჰო? 684 00:30:37,146 --> 00:30:38,810 >> აუდიტორია: თქვენ შეგიძლიათ ამოიღოთ სხვა. 685 00:30:38,810 --> 00:30:40,810 დევიდ ჯ Malan: შემიძლია ამოიღონ სხვაგან განაცხადი, 686 00:30:40,810 --> 00:30:42,510 და არა მხოლოდ სხვაგან განცხადებაში. 687 00:30:42,510 --> 00:30:44,150 >> აუდიტორია: შეგიძლიათ ამოიღონ [INAUDIBLE]. 688 00:30:44,150 --> 00:30:46,310 >> დევიდ ჯ Malan: შემიძლია ამოიღონ მთელი ჩანგალი 689 00:30:46,310 --> 00:30:48,209 გზა, თუ სხვაგან საერთოდ. 690 00:30:48,209 --> 00:30:50,250 ასე რომ, რა თქმა უნდა, ნება მომეცით გახსნა საბოლოო ვერსია ამ 691 00:30:50,250 --> 00:30:55,540 ესარგებლა-2 და შეამჩნევს, თუ რამდენად, თუ თქვენ, sexy, კოდი, რაც ახლა მიღების, 692 00:30:55,540 --> 00:31:00,040 რომ მე შემცირდა ზოგიერთი შვიდი ან ხაზებს მხოლოდ ოთხი, 693 00:31:00,040 --> 00:31:03,850 ფუნქციონალური, რომ ვაპირებდი უბრალოდ მოუწოდებდა ზედა, 694 00:31:03,850 --> 00:31:09,410 გავლის s bracket i, და ბეჭდვა გარეთ, ერთად placeholder% c, 695 00:31:09,410 --> 00:31:11,090 რომ კონკრეტული ხასიათი. 696 00:31:11,090 --> 00:31:14,560 >> ახლა, ალბათ, არ არის შეცდომა, ან თუნდაც რისკის შეცდომა, 697 00:31:14,560 --> 00:31:15,350 ამ პროგრამაში. 698 00:31:15,350 --> 00:31:18,200 ასე რომ მხოლოდ დავბრუნდებით ადრე takeaway, 699 00:31:18,200 --> 00:31:21,820 რა უნდა, ალბათ, ასევე გავაკეთებ ეს პროგრამა, რათა ის უფრო ძლიერი, 700 00:31:21,820 --> 00:31:24,974 ასე რომ არ არსებობს გზა, მას შეუძლია ავარიის, მაშინაც კი, იშვიათ შემთხვევებში? 701 00:31:24,974 --> 00:31:26,390 აუდიტორია: დარწმუნდით, რომ იგი არ არის NULL. 702 00:31:26,390 --> 00:31:28,056 დევიდ ჯ Malan: დარწმუნდით, რომ იგი არ არის NULL. 703 00:31:28,056 --> 00:31:31,030 ასე რომ, რეალურად, რათა ამ სუპერ სწორი, მე უნდა გავაკეთოთ რაღაც, 704 00:31:31,030 --> 00:31:35,300 თუ არ არის NULL, მაშინ წავიდეთ წინ და შეასრულოს 705 00:31:35,300 --> 00:31:38,470 ამ ხაზების კოდი, რომელიც მე მაშინ მიზანი, როგორც, რომ, 706 00:31:38,470 --> 00:31:39,870 და მერე ჩემი ახლო გაუწიოს. 707 00:31:39,870 --> 00:31:41,550 იმდენად კარგი ჩვევების ერთად ორი იდეები. 708 00:31:41,550 --> 00:31:42,429 ჰო? 709 00:31:42,429 --> 00:31:44,470 აუდიტორია: იქნებ გამოიყენოთ ნუ ხოლო მარყუჟის, ნაცვლად? 710 00:31:44,470 --> 00:31:47,270 დევიდ ჯ Malan: Could მე do ხოლო loop? 711 00:31:47,270 --> 00:31:50,020 აუდიტორია: --you გვინდა დავრწმუნდეთ რომ თქვენ რეალურად [INAUDIBLE]. 712 00:31:50,020 --> 00:31:51,728 დევიდ ჯ Malan: Could თქვენ იყენებთ do ხოლო? 713 00:31:51,728 --> 00:31:52,450 მოკლე პასუხი, არა. 714 00:31:52,450 --> 00:31:54,700 იმიტომ, რომ თქვენ შესახებ დანერგვა კიდევ ერთი კუთხეში შემთხვევაში. 715 00:31:54,700 --> 00:31:56,660 იმ შემთხვევაში, თუ string არის ნულოვანი სიგრძე. 716 00:31:56,660 --> 00:31:59,600 თუ მაგალითად, მე უბრალოდ მოხვდა შევა, გარეშე ოდესმე აკრეფით Zamyla. 717 00:31:59,600 --> 00:32:02,490 მე ვაპირებ გადმოგცეთ უკან ფაქტობრივი ტექსტი, როგორც ჩვენ საბოლოოდ ვხედავთ, 718 00:32:02,490 --> 00:32:03,780 რომ ნულოვანი სიმბოლო. 719 00:32:03,780 --> 00:32:05,630 ეს ჯერ კიდევ სიმებიანი, უბრალოდ სუპერ მოკლე. 720 00:32:05,630 --> 00:32:07,960 მაგრამ თუ თქვენ იყენებთ გააკეთებს ხოლო, თქვენ აპირებს ბრმად 721 00:32:07,960 --> 00:32:10,050 ცდილობენ, რომ რამე პატივი სცეს, რომ ტექსტი, 722 00:32:10,050 --> 00:32:12,537 და არაფერი იქნება იქ. 723 00:32:12,537 --> 00:32:18,607 >> აუდიტორია: ისე, თუ თქვენ არ რომ [INAUDIBLE] ხოლო s-- 724 00:32:18,607 --> 00:32:21,190 დევიდ ჯ Malan: Oh მე ვხედავ, შეინახოს მიღების string საწყისი მომხმარებელს. 725 00:32:21,190 --> 00:32:23,525 ასე რომ, მოკლე პასუხი, თქვენ შეიძლება, და შეინახოს pestering 726 00:32:23,525 --> 00:32:26,150 მათ მოგცემთ სიმებიანი რომ ის მოკლე საკმარისი ჯდება მეხსიერებაში. 727 00:32:26,150 --> 00:32:26,700 აბსოლუტურად. 728 00:32:26,700 --> 00:32:27,630 უბრალოდ აირჩია არ. 729 00:32:27,630 --> 00:32:30,505 თუ ისინი არ მომეცი სიმებიანი მინდა, მე, მე ვწყვეტ, მე უარს. 730 00:32:30,505 --> 00:32:33,260 მაგრამ აბსოლუტურად, ამ მიზნით, თქვენ შეიძლება აბსოლუტურად გავაკეთოთ, რომ. 731 00:32:33,260 --> 00:32:37,500 >> ასე რომ, ბიბლიოთეკის header ფაილი, რომელიც ჩვენ ახლა იცნობს ამ, აქ. 732 00:32:37,500 --> 00:32:41,550 სტანდარტული I / O, CS50.h, string.h, ctype.h, და არსებობს, რა თქმა უნდა, სხვები. 733 00:32:41,550 --> 00:32:44,460 ზოგიერთი აღმოაჩინეს მათემატიკის ბიბლიოთეკა math.h. 734 00:32:44,460 --> 00:32:48,200 მაგრამ ნება მომეცით წარმოგიდგინოთ, ახლა, ეს რესურსი, რომ CS50 პერსონალი, Davin, 735 00:32:48,200 --> 00:32:50,630 და რობ, და Gabe კერძოდ ერთად. 736 00:32:50,630 --> 00:32:52,630 რომ მალე ბმული on რა თქმა უნდა ნახვა. 737 00:32:52,630 --> 00:32:54,870 ეს ე.წ. CS50 მითითება. 738 00:32:54,870 --> 00:32:58,230 >> რომელიც მხოლოდ გადმოგცეთ სწრაფი გემოს იგი, მუშაობს შემდეგნაირად. 739 00:32:58,230 --> 00:33:00,740 ნება მომეცით წასვლა reference.cs50.net. 740 00:33:00,740 --> 00:33:02,990 დაინახავთ მარცხენა მხარეს აბსოლუტური სია 741 00:33:02,990 --> 00:33:04,595 ფუნქციების, რომ მოდის გ. 742 00:33:04,595 --> 00:33:07,790 მაგრამ თუ მე მაინტერესებს, ამ ეტაპზე, დაახლოებით, strlen, 743 00:33:07,790 --> 00:33:08,746 შემიძლია აკრიფოთ იგი. 744 00:33:08,746 --> 00:33:10,870 ეს ფილტრები ქვემოთ სიაში მხოლოდ ის, რაც მე აინტერესებს. 745 00:33:10,870 --> 00:33:11,940 მე ვაპირებ დააჭირეთ მას. 746 00:33:11,940 --> 00:33:14,740 და ახლა მარცხენა, დაინახავთ, თუ რა იმედი გვაქვს, 747 00:33:14,740 --> 00:33:18,290 უფრო მარტივია, ადამიანის მეგობრული ახსნა, თუ როგორ 748 00:33:18,290 --> 00:33:19,170 ეს ფუნქცია მუშაობს. 749 00:33:19,170 --> 00:33:20,600 >> დააბრუნებს სიგრძეზე სიმებიანი. 750 00:33:20,600 --> 00:33:24,060 აი მოკლე შინაარსი, აქ, როგორ უნდა გამოყენება თვალსაზრისით header ფაილი, 751 00:33:24,060 --> 00:33:27,430 თვალსაზრისით და რა ფუნქცია ჰგავს თვალსაზრისით მისი არგუმენტები. 752 00:33:27,430 --> 00:33:30,250 და შემდეგ აქ, ბრუნდება სიგრძეზე სიმებიანი. 753 00:33:30,250 --> 00:33:34,280 მაგრამ იმ თქვენ უფრო კომფორტული, თქვენ შეგიძლიათ რეალურად დააწკაპუნეთ მეტი comfy, 754 00:33:34,280 --> 00:33:37,070 და შინაარსი გვერდი, ახლა, შეიცვლება 755 00:33:37,070 --> 00:33:41,660 იყოს default ღირებულებები, რაც მიიღებთ გამოყენებით კაცი გვერდზე. 756 00:33:41,660 --> 00:33:44,100 >> სხვა სიტყვებით, CS50 მითითება გამარტივებას 757 00:33:44,100 --> 00:33:46,220 კაცი გვერდებზე თანამშრომლების მიერ, სტუდენტები. 758 00:33:46,220 --> 00:33:49,320 კერძოდ, იმ ნაკლებად კომფორტული და მათ შორის, ასე რომ თქვენ 759 00:33:49,320 --> 00:33:51,660 არ უნდა ვეცადოთ, რომ გადაიტანოთ თქვენი აზრით გარშემო, სიმართლე გითხრათ, 760 00:33:51,660 --> 00:33:55,030 ზოგიერთი საკმაოდ cryptic სინტაქსი და დოკუმენტაცია შუალედში. 761 00:33:55,030 --> 00:33:57,650 >> ასე რომ შევინარჩუნოთ ამის გათვალისწინებით, ამ დღეებში. 762 00:33:57,650 --> 00:33:59,560 ასე რომ აქ, ერთხელ, არის Zamyla. 763 00:33:59,560 --> 00:34:03,255 ახლა კითხვა, რომელიც არის ცოტა მეტი ადამიანის ხელმისაწვდომი. 764 00:34:03,255 --> 00:34:05,380 მადლობა Chang, რომელიც უკვე დაბეჭდვის მეტი სპილოები 765 00:34:05,380 --> 00:34:07,090 უწყვეტი ბოლო რამდენიმე დღის განმავლობაში. 766 00:34:07,090 --> 00:34:09,730 ჩვენ გვაქვს შესაძლებლობა მისცეს მინიმუმ ერთი მიმართულებით წაიყვანეს. 767 00:34:09,730 --> 00:34:13,239 თუ ჩვენ ვერ მხოლოდ ერთი მოხალისე მოვა მიაპყროს ეკრანზე. 768 00:34:13,239 --> 00:34:14,530 როგორ აქ? 769 00:34:14,530 --> 00:34:15,340 >> მოდის up. 770 00:34:15,340 --> 00:34:16,720 რა არის თქვენი სახელი? 771 00:34:16,720 --> 00:34:17,219 ALEX: Alex. 772 00:34:17,219 --> 00:34:17,760 დევიდ ჯ Malan: Alex. 773 00:34:17,760 --> 00:34:18,259 ყველა უფლება. 774 00:34:18,259 --> 00:34:19,388 Alex, მოდის up. 775 00:34:19,388 --> 00:34:21,679 ჩვენ შესახებ, რომ თქვენი ხელწერა ეკრანზე აქ. 776 00:34:21,679 --> 00:34:24,325 777 00:34:24,325 --> 00:34:25,570 ყველა უფლება, კარგია თქვენთან შეხვედრა. 778 00:34:25,570 --> 00:34:26,429 >> ALEX: Nice თქვენ შეგხვდებით. 779 00:34:26,429 --> 00:34:27,512 >> დევიდ ჯ Malan: ყველა უფლება. 780 00:34:27,512 --> 00:34:28,969 ასე რომ, სუპერ მარტივი განხორციელება. 781 00:34:28,969 --> 00:34:31,440 ბარი არ არის მაღალი, მიიღეთ elephant დღეს. 782 00:34:31,440 --> 00:34:33,439 თქვენ თამაშობენ როლს GetString. 783 00:34:33,439 --> 00:34:35,980 და მე ვაპირებ გითხრათ, სიმებიანი რომ თქვენ მიღებული. 784 00:34:35,980 --> 00:34:38,080 და ვარაუდობენ, რომ თქვენ, GetString, უკვე მოუწოდა. 785 00:34:38,080 --> 00:34:42,480 და ადამიანის, როგორც ჩემთვის, აკრეფილი Zamyla, Z-A-M-Y-L-A. 786 00:34:42,480 --> 00:34:45,650 უბრალოდ წავიდეთ წინ და დაწეროთ Zamyla შესახებ ეკრანზე, როგორც იმისა, რომ თქვენ მიღებული ეს 787 00:34:45,650 --> 00:34:47,250 და ინახება ეს სადღაც მეხსიერებაში. 788 00:34:47,250 --> 00:34:52,370 789 00:34:52,370 --> 00:34:55,570 >> ტოვებს ოთახი, რა იქნება რამდენიმე სხვა words-- რომ კარგადაა, შენარჩუნებას აპირებს. 790 00:34:55,570 --> 00:34:59,620 >> [სიცილი] 791 00:34:59,620 --> 00:35:00,800 >> ასე Zamyla, შესანიშნავი. 792 00:35:00,800 --> 00:35:04,880 ასე რომ, ახლა ვარაუდობენ, რომ თქვენ, GetString, რომლებიც ერთხელ მოუწოდა. 793 00:35:04,880 --> 00:35:09,350 და ამიტომ გთავაზობთ თქვენ, კლავიატურის, სხვა სახელი, Belinda. 794 00:35:09,350 --> 00:35:17,560 795 00:35:17,560 --> 00:35:18,060 ყველა უფლება. 796 00:35:18,060 --> 00:35:22,380 და ახლა დრო GetString არის ეწოდოს, მე აკრიფოთ რაღაც Gabe, 797 00:35:22,380 --> 00:35:27,560 G-A-B-E. თქვენ ნამდვილად აღების რომ გულში წვდომის მეხსიერება. 798 00:35:27,560 --> 00:35:29,631 რომელიც ხატვის ყველაფერი სრულიად შემთხვევით. 799 00:35:29,631 --> 00:35:30,130 OK. 800 00:35:30,130 --> 00:35:31,104 >> [სიცილი] 801 00:35:31,104 --> 00:35:32,520 ALEX: უკაცრავად ჩემი ხელწერა არის ცუდი. 802 00:35:32,520 --> 00:35:33,770 დევიდ ჯ Malan: არა, OK. 803 00:35:33,770 --> 00:35:40,480 და რა რობ, R-O-B. OK. 804 00:35:40,480 --> 00:35:41,020 კარგი. 805 00:35:41,020 --> 00:35:43,853 ასე რომ, მე არ გავუსწრო, რომ თქვენ სახის საერო ნივთების ამ გზით. 806 00:35:43,853 --> 00:35:45,020 მაგრამ ჩვენ შეგვიძლია ამ სამუშაოს. 807 00:35:45,020 --> 00:35:48,810 ასე რომ, როგორ წავიდეთ შესახებ იმასთან აღნიშნული სიმბოლო მეხსიერება? 808 00:35:48,810 --> 00:35:51,310 სხვა სიტყვებით, თუ ჩვენ ვფიქრობთ, ამ მართკუთხა შავი ეკრანი 809 00:35:51,310 --> 00:35:53,550 როგორც წარმოადგენენ კომპიუტერის RAM, ან მეხსიერებაში. 810 00:35:53,550 --> 00:35:55,850 >> და გავიხსენოთ, რომ RAM მხოლოდ მთელი bunch of ბაიტი, 811 00:35:55,850 --> 00:35:57,480 და ბაიტი მთელი bunch of ბიტი. 812 00:35:57,480 --> 00:35:59,350 და ბიტი როგორღაც განხორციელდა, ზოგადად 813 00:35:59,350 --> 00:36:01,119 გარკვეული ფორმის ელექტროენერგიის აპარატურა. 814 00:36:01,119 --> 00:36:03,160 ასე რომ, ერთგვარი layering ჩვენ ვისაუბრეთ 815 00:36:03,160 --> 00:36:04,510 და ახლა თავისთავად. 816 00:36:04,510 --> 00:36:07,020 როგორ წავიდეთ შესახებ გადამწყვეტი დაწერა 817 00:36:07,020 --> 00:36:11,634 Rob წინააღმდეგ Gabe წინააღმდეგ Belinda წინააღმდეგ Zamyla? 818 00:36:11,634 --> 00:36:14,020 >> ALEX: მე უბრალოდ ის იმისათვის, რომ მითხარით. 819 00:36:14,020 --> 00:36:15,650 >> დევიდ ჯ Malan: და ეს მართლაც ასეა. 820 00:36:15,650 --> 00:36:20,100 მაგრამ რა მართავს, სადაც თქვენ დააყენა Belinda სახელი და Gabe სახელი? 821 00:36:20,100 --> 00:36:20,764 >> ALEX არაფერი? 822 00:36:20,764 --> 00:36:22,930 დევიდ ჯ Malan: [იცინის] ასე რომ მუშაობს, რომ ჯარიმა. 823 00:36:22,930 --> 00:36:25,290 ისე კომპიუტერები არის პატარა უფრო მოწესრიგებული, ვიდრე. 824 00:36:25,290 --> 00:36:29,000 ამიტომ, როდესაც ჩვენ implement-- იქ დარჩენა მხოლოდ მომენტში, როდესაც ჩვენ რეალურად 825 00:36:29,000 --> 00:36:31,470 განახორციელოს რაღაც GetString კომპიუტერი, 826 00:36:31,470 --> 00:36:34,480 Zamyla შეიძლება ასახული, საკმაოდ ბევრი როგორც თქვენ გააკეთა ეკრანზე, არსებობს. 827 00:36:34,480 --> 00:36:36,660 >> და რა არის გასაღები შეამჩნია აქ, რა Alex გააკეთა, 828 00:36:36,660 --> 00:36:40,260 არსებობს ერთგვარი დემარკაციის მათ შორის, თითოეული ეს სიტყვა, არა? 829 00:36:40,260 --> 00:36:46,580 თქვენ არ წერენ Z-A-M-Y-L-A-B-E-L-I-N-D-A-G-A-B-- 830 00:36:46,580 --> 00:36:49,740 სხვა სიტყვებით, არსებობს გარკვეული სახის გამყოფი რომელიც, როგორც ჩანს, 831 00:36:49,740 --> 00:36:52,370 სახის, შემთხვევითი ინტერვალი შორის ამ სხვადასხვა სიტყვა. 832 00:36:52,370 --> 00:36:54,120 მაგრამ ეს კარგია, რადგან ჩვენ, ადამიანები, ახლა 833 00:36:54,120 --> 00:36:56,470 ვიზუალურად, რომ ეს არის ოთხი სხვადასხვა strings. 834 00:36:56,470 --> 00:36:59,540 ეს არ არის მხოლოდ ერთი თანმიმდევრობა უამრავი სიმბოლო. 835 00:36:59,540 --> 00:37:04,190 ასე რომ, კომპიუტერი, მაშინ, იმავდროულად, შესაძლოა სიმებიანი მოსწონს Zamyla, 836 00:37:04,190 --> 00:37:07,220 ბოლო თითოეული იმ წერილების შიგნით ბაიტი მეხსიერების. 837 00:37:07,220 --> 00:37:10,400 მაგრამ ეს რაოდენობა გაცილებით მეტია, რა თქმა უნდა, ვიდრე ექვსი სიმბოლო. 838 00:37:10,400 --> 00:37:11,690 >> არსებობს მთელი bunch of RAM. 839 00:37:11,690 --> 00:37:15,330 და ასე ამიერიდან, ამ ქსელის ყუთები აპირებს 840 00:37:15,330 --> 00:37:17,560 წარმოაჩენს Alex მხოლოდ როგორც აქ ეკრანზე. 841 00:37:17,560 --> 00:37:20,937 და ახლა, ალექსი, ჩვენ შეგვიძლია შემოგთავაზოთ ლურჯი ან ფორთოხალი elephant საწყისი Chang. 842 00:37:20,937 --> 00:37:22,270 ALEX: მე მიიღოს ლურჯი სპილო. 843 00:37:22,270 --> 00:37:23,120 დევიდ ჯ Malan: ლურჯი სპილო. 844 00:37:23,120 --> 00:37:25,580 ასე დიდი რაუნდი ტაში, თუ ჩვენ შეგვიძლია, ალექს აქ. 845 00:37:25,580 --> 00:37:26,100 >> [ტაში] 846 00:37:26,100 --> 00:37:26,766 >> ALEX: დიდი მადლობა. 847 00:37:26,766 --> 00:37:28,820 დევიდ ჯ Malan: დიდი მადლობა. 848 00:37:28,820 --> 00:37:36,230 ამიტომ takeaway არის, რომ, მიუხედავად იმისა, ნიმუში სახის შეიცვალა დროთა განმავლობაში, აქ 849 00:37:36,230 --> 00:37:40,430 ფორუმში იყო ეს დემარკაციის შორის სხვადასხვა strings 850 00:37:40,430 --> 00:37:42,610 რომ ალექს მიიღო ჩვენთვის. 851 00:37:42,610 --> 00:37:45,230 ახლა კომპიუტერები, სიმართლე გითხრათ, შეიძლება გავაკეთოთ იგივე. 852 00:37:45,230 --> 00:37:48,210 ისინი შეიძლება სახის plop strings ნებისმიერ RAM. 853 00:37:48,210 --> 00:37:50,710 აქ, სწორედ აქ, აქ, ქვემოთ აქ. 854 00:37:50,710 --> 00:37:52,020 >> მათ შეეძლოთ ზუსტად რომ. 855 00:37:52,020 --> 00:37:54,280 მაგრამ, რა თქმა უნდა, არის ის, ალბათ არ არის საუკეთესო დაგეგმვა. 856 00:37:54,280 --> 00:37:54,780 არა? 857 00:37:54,780 --> 00:37:57,340 თუ მე კი ვეკითხებოდი, ალექს მიიღეთ სახელები, ალბათ, ის მინდა 858 00:37:57,340 --> 00:38:01,370 დააყენა რამდენიმე მეტ ქვემოთ აქ, იქნებ up აქ, სწორედ აქ, სწორედ აქ, საბოლოოდ 859 00:38:01,370 --> 00:38:02,211 მეტი აქ. 860 00:38:02,211 --> 00:38:05,460 მაგრამ უფრო მეტი დაგეგმვის, რა თქმა უნდა, ჩვენ ვერ ქმნის რამ out მეტი cleanly. 861 00:38:05,460 --> 00:38:07,350 და მართლაც, ის, რასაც კომპიუტერში აკეთებს. 862 00:38:07,350 --> 00:38:10,720 >> მაგრამ დაჭერა არის, რომ თუ მომდევნო string მივიღებ 863 00:38:10,720 --> 00:38:14,050 მას შემდეგ, რაც Zamyla რაღაც როგორიცაა Belinda, 864 00:38:14,050 --> 00:38:17,929 ვთავაზობ, სადაც ჩვენ შეიძლება დაწეროს ბ მიმართ ამ ქსელის? 865 00:38:17,929 --> 00:38:18,720 სად წავიდეთ? 866 00:38:18,720 --> 00:38:21,480 მარჯვნივ, ქვემოთ z, ქვემოთ? 867 00:38:21,480 --> 00:38:23,204 რა იქნებოდა თქვენი პირველი ინსტინქტები იყოს? 868 00:38:23,204 --> 00:38:24,120 აუდიტორია: ქვემოთ z. 869 00:38:24,120 --> 00:38:25,100 დევიდ ჯ Malan: ასე რომ, ქვემოთ z. 870 00:38:25,100 --> 00:38:26,530 და ეს საკმაოდ მარტივია, არა? 871 00:38:26,530 --> 00:38:29,321 ეს ერთგვარი გარღვევა, ეს რას ვაკეთებთ on კლავიატურის, როდესაც ჩვენ Enter, 872 00:38:29,321 --> 00:38:31,770 ან ელექტრონული ფოსტის მიღებისას bulleted სიაში რამ. 873 00:38:31,770 --> 00:38:34,310 მაგრამ რეალობა ის არის, რომ კომპიუტერი ვცდილობთ, რომ იყოს უფრო ეფექტური, 874 00:38:34,310 --> 00:38:37,170 და cram, რა თქმა უნდა, ისევე, მონაცემები შევიდა RAM, რაც შეიძლება, 875 00:38:37,170 --> 00:38:38,890 ისე, რომ თქვენ არ დაგვრჩა ნებისმიერ bytes. 876 00:38:38,890 --> 00:38:41,545 ისე, რომ თქვენ არ დაგვრჩა ეკრანზე უძრავი ქონების. 877 00:38:41,545 --> 00:38:44,170 და პრობლემა, თუმცა, ის არის, რომ თუ ჩვენ ფაქტიურად დააყენა წერილი 878 00:38:44,170 --> 00:38:49,940 b შემდეგ, როგორ აპირებს ვიცი სად Zamyla სახელი დამთავრდა 879 00:38:49,940 --> 00:38:51,840 და Belinda სახელი იწყება? 880 00:38:51,840 --> 00:38:55,270 ასე რომ თქვენ ადამიანებზე მხოლოდ შემოთავაზებული, ასევე, დააჭირეთ გასაღები, არსებითად. 881 00:38:55,270 --> 00:38:56,410 ამას ქვემოთ ქვემოთ. 882 00:38:56,410 --> 00:38:59,750 ან თუნდაც, როგორც Alex გააკეთა, უბრალოდ წერა შემდეგი სახელით წინა, 883 00:38:59,750 --> 00:39:01,583 და ქვემოთ რომ ერთი და შემდეგ ქვემოთ, რომ ერთი. 884 00:39:01,583 --> 00:39:02,510 სწორედ ვიზუალური cue. 885 00:39:02,510 --> 00:39:05,960 >> კომპიუტერები სხვა ვიზუალური cue, მაგრამ ეს ცოტა უფრო ლაკონური. 886 00:39:05,960 --> 00:39:07,840 ეს არის ამ ხმაურიანი ხასიათი. 887 00:39:07,840 --> 00:39:11,890 წარმატებული 0, რაც, ალბათ, თქვენში წარმატებული ო, 888 00:39:11,890 --> 00:39:12,640 და ა.შ., ახლა. 889 00:39:12,640 --> 00:39:14,120 სპეციალური გაქცევის sequences. 890 00:39:14,120 --> 00:39:19,120 წარმატებული 0 არის გზა წარმოადგენს რვა ნულოვანი ბიტი in a row. 891 00:39:19,120 --> 00:39:22,000 0000 0000. 892 00:39:22,000 --> 00:39:26,130 >> გზა თქვენ გამოხატოს, რომ არ არის მოხვდა ნულს თქვენს კლავიატურაზე, 893 00:39:26,130 --> 00:39:28,140 იმის გამო, რომ ის ფაქტი, რომ არის ASCII char. 894 00:39:28,140 --> 00:39:30,990 ეს ჰგავს, მაგრამ, ფაქტიურად ათობითი ნომერი 895 00:39:30,990 --> 00:39:35,910 რომელიც წარმოადგენს წრიული glyph, წრიული შრიფტი. 896 00:39:35,910 --> 00:39:38,410 ამავდროულად, წარმატებული ნულოვანი ნიშნავს, ფაქტიურად 897 00:39:38,410 --> 00:39:40,700 ბოლო რვა ნულოვანი ბაიტი აქ ჩემთვის. 898 00:39:40,700 --> 00:39:42,136 >> ასე რომ, ეს გარკვეულწილად თვითნებური. 899 00:39:42,136 --> 00:39:44,260 ჩვენ ვერ მოვისმინეთ გამოიყენება ნებისმიერი ნიმუში ბიტი, მაგრამ მსოფლიოში 900 00:39:44,260 --> 00:39:46,610 გადაწყვიტა რამდენიმე წლის წინ, რომ წარმოადგენს 901 00:39:46,610 --> 00:39:49,710 ბოლოს სიმებიანი მეხსიერებაში, უბრალოდ დააყენა მთელი bunch of zeros. 902 00:39:49,710 --> 00:39:51,000 იმიტომ, რომ ჩვენ შეუძლია აღმოაჩინოს, რომ. 903 00:39:51,000 --> 00:39:54,790 ახლა, რაც იმას ნიშნავს, რომ არ წერილი, ანბანი შეიძლება წარმოდგენილი zeros. 904 00:39:54,790 --> 00:39:58,480 >> მაგრამ ეს კარგია, ჩვენ უკვე დავინახეთ რომ ჩვენ გამოყენებით 65 წლის მდე 97 მდე. 905 00:39:58,480 --> 00:40:00,290 ჩვენ არ მიიღოს სადმე დახურვა ყველა zeros. 906 00:40:00,290 --> 00:40:03,040 907 00:40:03,040 --> 00:40:06,540 ასე რომ, Belinda კომპიუტერის მეხსიერება რეალურად აპირებს წავიდეს აქ. 908 00:40:06,540 --> 00:40:09,764 მე შედგენილი ყვითელი მხოლოდ მიაპყროს ჩვენი ყურადღება. 909 00:40:09,764 --> 00:40:11,680 და გაფრთხილების, ძალიან, ამ არის სრულიად უკანონო. 910 00:40:11,680 --> 00:40:12,680 მე შედგენილი, როგორც ბადე. 911 00:40:12,680 --> 00:40:14,460 როგორიცაა, RAM არის რამოდენიმე ფიზიკური ობიექტი. 912 00:40:14,460 --> 00:40:17,300 ეს სულაც არ რიგები და სვეტები, თავისთავად. 913 00:40:17,300 --> 00:40:20,490 უბრალოდ მიიღო მთელი bunch of bytes განხორციელებული ტექნიკის რატომღაც. 914 00:40:20,490 --> 00:40:22,817 მაგრამ თუ მას შემდეგ, Belinda I აკრეფილი Gabe სახელი, 915 00:40:22,817 --> 00:40:25,650 ის აპირებს დასრულდება მდე აქ მეხსიერება, და თუ არა მე აკრეფილი Daven სახელი, 916 00:40:25,650 --> 00:40:27,316 მაგალითად, ის აპირებს დასრულდება მდე აქ. 917 00:40:27,316 --> 00:40:29,310 და შემიძლია ვაგრძელებთ წერენ კიდევ უფრო სახელები. 918 00:40:29,310 --> 00:40:32,100 >> სამწუხაროდ, თუ ვცდილობ დაწერა სუპერ გრძელი სახელი, 919 00:40:32,100 --> 00:40:33,730 მე შეიძლება საბოლოოდ ამოიწურა მეხსიერება. 920 00:40:33,730 --> 00:40:37,810 ამ შემთხვევაში, GetString არის დაბრუნებას აპირებს NULL, როგორც ჩვენ განაცხადა. 921 00:40:37,810 --> 00:40:41,720 მაგრამ საბედნიეროდ, მინიმუმ, ამ ვიზუალური აქ, ჩვენ ვერ საკმაოდ რომ შორს. 922 00:40:41,720 --> 00:40:45,860 >> ახლა რა ლამაზი ის არის, რომ ამ იდეა სამკურნალოდ რამ 923 00:40:45,860 --> 00:40:49,720 როგორც ყუთები არის წარმომადგენელი თვისება C 924 00:40:49,720 --> 00:40:52,690 და ბევრი ენების, ცნობილი როგორც მასივი. 925 00:40:52,690 --> 00:40:55,490 მასივი არის სხვა ტიპის მონაცემები. 926 00:40:55,490 --> 00:40:57,380 ეს მონაცემები სტრუქტურა, თუ გნებავთ. 927 00:40:57,380 --> 00:41:01,160 სტრუქტურა გრძნობა მართლაც, სახის, ეძებს როგორც ყუთი, მინიმუმ 928 00:41:01,160 --> 00:41:02,320 გონების თვალი. 929 00:41:02,320 --> 00:41:09,680 მასივი არის მომიჯნავე თანმიმდევრობა ერთნაირი მონაცემების ტიპები, 930 00:41:09,680 --> 00:41:11,330 თავში დაბრუნება თავში დაბრუნება. 931 00:41:11,330 --> 00:41:14,720 >> ასე რომ, ტექსტი, სხვა სიტყვა, არის მასივი სიმბოლო. 932 00:41:14,720 --> 00:41:16,120 მასივი სიმბოლო. 933 00:41:16,120 --> 00:41:19,070 მაგრამ აღმოჩნდება, რომ თქვენ შეგიძლიათ აქვს მასივების bunches რამ. 934 00:41:19,070 --> 00:41:21,870 ფაქტობრივად, ჩვენ შეგვიძლია ვთქვათ, თუნდაც ნომრები მასივი. 935 00:41:21,870 --> 00:41:23,920 ასე რომ, იმ ფორმით, რომელიც ჩვენ ვაპირებთ დავიწყოთ 936 00:41:23,920 --> 00:41:26,590 გამოცხადების ეს მონაცემები სტრუქტურა ცნობილია, როგორც მასივი 937 00:41:26,590 --> 00:41:28,250 ასევე აპირებს გამოიყენოს კვადრატულ ფრჩხილებში. 938 00:41:28,250 --> 00:41:31,500 მაგრამ ამ კვადრატულ ფრჩხილებში ვაპირებთ აქვს სხვადასხვა მნიშვნელობა მოცემულ კონტექსტში. 939 00:41:31,500 --> 00:41:33,450 >> და ვნახოთ რედაქციით. 940 00:41:33,450 --> 00:41:36,780 ვარაუდობენ, რომ გახსნა ახალი ფაილი აქ. 941 00:41:36,780 --> 00:41:38,535 მე და გადავარჩინოთ ეს ages.c. 942 00:41:38,535 --> 00:41:41,280 943 00:41:41,280 --> 00:41:43,470 და მე გადარჩენა ეს ჩემი ფოლდერი აქ. 944 00:41:43,470 --> 00:41:46,130 და ახლა მე ვაპირებ წავიდეთ წინ და დაიწყოს აკრეფით რაღაც 945 00:41:46,130 --> 00:41:53,940 ისევე როგორც შედის CS50.h, მოიცავს stdio.h, int ძირითადი ბათილად. 946 00:41:53,940 --> 00:41:57,370 და შემდეგ შიგნით, მინდა პირველი გვაქვს int მოუწოდა ასაკში. 947 00:41:57,370 --> 00:42:01,371 >> და მე ვაპირებ, რომ მიიღოს int საწყისი მომხმარებლის მისი ასაკი. 948 00:42:01,371 --> 00:42:04,620 მაგრამ ეს პროგრამა განკუთვნილია გამოყენებული იქნას მრავალი ადამიანი, სხვადსხვა კონტექსტში. 949 00:42:04,620 --> 00:42:05,490 მაქვს ხაზი ადამიანი. 950 00:42:05,490 --> 00:42:08,281 ყველა მათგანი უნდა აკრიფოთ მათი ასაკი, შესაძლოა, ზოგიერთი, მე არ ვიცი, 951 00:42:08,281 --> 00:42:10,530 კონკურენცია, ან მოვლენის რომ ისინი ჩამოვიდნენ. 952 00:42:10,530 --> 00:42:13,030 ასე რომ, მომავალი ადამიანი, მე უნდა სხვა ცვლადი. 953 00:42:13,030 --> 00:42:15,790 >> იმის გამო, თუ უბრალოდ ასაკის იღებს getInt, რომ ის, 954 00:42:15,790 --> 00:42:18,500 აპირებს clobber, ან გადაწერის წინა პირის ასაკის. 955 00:42:18,500 --> 00:42:19,760 ასე რომ, ეს არ არის კარგი. 956 00:42:19,760 --> 00:42:21,790 ასე რომ, ჩემი პირველი ინსტინქტი შესაძლოა, oh, ყველა უფლება, 957 00:42:21,790 --> 00:42:26,260 თუ მინდა კიდევ მრავალი ხალხის ages-- მოდით მოვუწოდებთ ამ age1, 958 00:42:26,260 --> 00:42:31,280 int age2 იღებს int, int age3 იღებს getInt. 959 00:42:31,280 --> 00:42:35,340 და ახლა მე ვაპირებ ზოგიერთი pseudocode კოდი აქ. 960 00:42:35,340 --> 00:42:37,679 >> რამე ერთად იმ ნომრები. 961 00:42:37,679 --> 00:42:40,470 ჩვენ დავტოვებთ მეორე დღეს, თუ რა ვაკეთებთ, რადგან ჩვენ მხოლოდ 962 00:42:40,470 --> 00:42:44,200 ზრუნვა მომენტში შესახებ age1, age2, age3. 963 00:42:44,200 --> 00:42:46,450 სამწუხაროდ, კიდევ ერთხელ შეადგინონ ამ პროგრამის 964 00:42:46,450 --> 00:42:51,140 და ამას წინ ფაქტობრივი წევრებს, რა ფუნდამენტურად ცუდი დიზაინი 965 00:42:51,140 --> 00:42:53,890 გადაწყვეტილება, როგორც ჩანს, არ გააკეთა? 966 00:42:53,890 --> 00:42:54,624 ჰო? 967 00:42:54,624 --> 00:42:55,499 აუდიტორია: [INAUDIBLE] 968 00:42:55,499 --> 00:42:58,071 969 00:42:58,071 --> 00:42:59,820 დევიდ ჯ Malan: ჰო, მე კი არ ცდილობდა 970 00:42:59,820 --> 00:43:02,028 გაერკვნენ, თუ როგორ მრავალი წლის შემიძლია რეალურად აინტერესებს? 971 00:43:02,028 --> 00:43:05,380 თუ მაქვს არანაკლებ სამი ადამიანი აქ, და, შესაბამისად, არანაკლებ სამ ასაკის, 972 00:43:05,380 --> 00:43:07,260 მე მაინც ბრმად ველოდებით სამ. 973 00:43:07,260 --> 00:43:08,720 ღმერთმა ნუ ქნას, ოთხი ადამიანი გამოჩნდება. 974 00:43:08,720 --> 00:43:10,990 ჩემი პროგრამა უბრალოდ კი არ დაუჭირონ მათ. 975 00:43:10,990 --> 00:43:13,280 >> ასე რომ, ეს, გრძელი ამბავი მოკლედ, არ არის კარგი ჩვევა. 976 00:43:13,280 --> 00:43:13,780 არა? 977 00:43:13,780 --> 00:43:16,530 მე არსებითად კოპირება და pasting კოდი და მხოლოდ tweaking 978 00:43:16,530 --> 00:43:17,430 ცვლადი სახელები. 979 00:43:17,430 --> 00:43:22,410 და ღმერთი ჩემი, თუ თქვენ არ ჰქონდა და არა სამი ასაკის, მაგრამ 10 ან 100, ან თუნდაც 6,500 980 00:43:22,410 --> 00:43:23,820 მაგისტრანტს, მაგალითად. 981 00:43:23,820 --> 00:43:26,950 ეს არ იქნება განსაკუთრებით ელეგანტური კოდი, ან მდგრადი. 982 00:43:26,950 --> 00:43:29,200 თქვენ აპირებს უნდა გადაწერა პროგრამა ყოველ ჯერზე 983 00:43:29,200 --> 00:43:30,760 თქვენი რაოდენობის ხალხი ცვლილებები. 984 00:43:30,760 --> 00:43:35,090 >> ასე რომ საბედნიეროდ, ჩვენს რეალურ ages.c ფაილის დღეს, 985 00:43:35,090 --> 00:43:36,970 ჩვენ უფრო ჭკვიანი გადაწყვეტა. 986 00:43:36,970 --> 00:43:39,800 პირველი, მე ვაპირებ სესხის მშენებლობა ჩვენ გამოყენებული რამდენჯერმე, 987 00:43:39,800 --> 00:43:43,744 ამ გააკეთოს ხოლო loop, იმისათვის, რომ იმ ადამიანთა რიცხვი, ოთახში. 988 00:43:43,744 --> 00:43:46,910 მე უბრალოდ აპირებს pester შესახებ, კიდევ ერთხელ და ისევ, სანამ იგი მაძლევს 989 00:43:46,910 --> 00:43:49,260 ღირებულება ო, რომ არის დადებითი მთელი რიცხვი. 990 00:43:49,260 --> 00:43:51,590 >> მე ვერ გამოიყენეს ბოლო დროის დადებითი int. 991 00:43:51,590 --> 00:43:53,720 მაგრამ ჩვენ არ გვაქვს, რომ უძრავი, ისე წავედი წინ 992 00:43:53,720 --> 00:43:55,660 და ხელახლა განხორციელდება ეს იდეა. 993 00:43:55,660 --> 00:43:58,410 ახლა ქვემოთ აქ, ეს არის ახალი ხრიკი. 994 00:43:58,410 --> 00:44:02,260 ხაზი 27, როგორც კომენტარები შეესაბამება 26 ვარაუდობს, 995 00:44:02,260 --> 00:44:05,180 განაცხადოს მასივი, რომელიც შესანახად ყველას ასაკის. 996 00:44:05,180 --> 00:44:09,320 >> ასე რომ, თუ გვინდა, რომ არა ერთი int, არ ორი ints, მაგრამ მთელი bunch of ints. 997 00:44:09,320 --> 00:44:13,800 კონკრეტულად n რიცხვებით, იყო n შეიძლება სამი, შეიძლება 100, შეიძლება იყოს 1000. 998 00:44:13,800 --> 00:44:17,570 სინტაქსი, უბრალოდ, ის არის, რომ ვთქვათ, რა ტიპის მონაცემის გინდათ? 999 00:44:17,570 --> 00:44:19,620 რას მინდა მოვუწოდო რომ ბლოკი მეხსიერება? 1000 00:44:19,620 --> 00:44:23,530 რას მინდა მოვუწოდო ქსელის რომელიც ასე გამოიყურება ხატოვნად? 1001 00:44:23,530 --> 00:44:27,700 >> და ფრჩხილებში აქ, თქვენ ამბობთ, რამდენად დიდი გსურთ მასივი იყოს. 1002 00:44:27,700 --> 00:44:30,450 და ასე ადრე, როცა ვამბობდი, სინტაქსი არის პატარა სხვადასხვა აქ, 1003 00:44:30,450 --> 00:44:33,614 ჩვენ ჯერ კიდევ გამოყენებით კვადრატულ ფრჩხილებში, მაგრამ როდესაც მე გამოცხადების მასივი, 1004 00:44:33,614 --> 00:44:35,530 ხმების შიგნით კვადრატულ ფრჩხილებში ნიშნავს 1005 00:44:35,530 --> 00:44:37,610 რამდენად დიდი გინდათ მასივი იყოს. 1006 00:44:37,610 --> 00:44:42,490 >> ამის საპირისპიროდ, როდესაც ჩვენ გამოყენებით s bracket i მომენტში წინ, ის, string, 1007 00:44:42,490 --> 00:44:46,820 მართლაც მასივი სიმბოლო, მაგრამ როდესაც თქვენ არ გამოცხადების ცვლადი, 1008 00:44:46,820 --> 00:44:49,760 როგორც ამ სიტყვით აქ, თქვენ უბრალოდ მისაღებად 1009 00:44:49,760 --> 00:44:54,280 კონკრეტული მაჩვენებელი, კონკრეტული ელემენტს რომ მასივი. 1010 00:44:54,280 --> 00:44:57,090 მას შემდეგ, რაც ჩვენ ვიცით, რომ, დანარჩენი ეს არის პირდაპირი. 1011 00:44:57,090 --> 00:45:00,765 თუ ახალი მე პირველი აპირებს ამობეჭდოთ რა ასაკის პირი ნომერი i. 1012 00:45:00,765 --> 00:45:03,890 სადაც მე, უბრალოდ, ვამბობთ პირი ნომერ, პირი ნომერი ორი პირი ნომერი სამი. 1013 00:45:03,890 --> 00:45:06,306 >> და მე უბრალოდ აკეთებს არითმეტიკული, ასე რომ, როგორც ჩვეულებრივი ადამიანი, 1014 00:45:06,306 --> 00:45:09,030 ჩვენ ითვლიან ერთი ამ პროგრამა, და არა ნულიდან. 1015 00:45:09,030 --> 00:45:13,620 მაშინ მე მოვუწოდებ GetInt, მაგრამ მე შესანახად პასუხი ასაკის bracket i. 1016 00:45:13,620 --> 00:45:16,610 რომელიც არის i'th ასაკი მასივი. 1017 00:45:16,610 --> 00:45:21,640 ასე რომ, ხოლო ბოლო დროს ჩვენ ექცეოდნენ ეს ყუთები, როგორც სიმბოლო for Zamyla სახელი, 1018 00:45:21,640 --> 00:45:22,490 და სხვები. 1019 00:45:22,490 --> 00:45:26,530 ახლა, ეს ყუთები წარმოადგენს 32 ბიტს, ან ოთხი ბაიტი 1020 00:45:26,530 --> 00:45:29,510 რომელშიც ჩვენ შეგვიძლია შესანახად int, int, int. 1021 00:45:29,510 --> 00:45:31,890 რაც, კიდევ ერთხელ, არის იგივე მონაცემები ტიპის. 1022 00:45:31,890 --> 00:45:33,890 >> ახლა მე რაღაც სულელური, ისევე როგორც დრო გადის, მხოლოდ 1023 00:45:33,890 --> 00:45:35,510 იმისათვის, რომ გაამართლოს წერილობით ამ პროგრამაში. 1024 00:45:35,510 --> 00:45:40,050 და შემდეგ ქვევით აქ, მე კიდევ ერთხელ iterate მეტი მასივი ამბობდა წელიწადში, 1025 00:45:40,050 --> 00:45:43,090 პირი ნომერ ნების იყოს რაღაც წლის. 1026 00:45:43,090 --> 00:45:45,010 და გაერკვნენ, რომ math-- მე ვგულისხმობ, ამ 1027 00:45:45,010 --> 00:45:49,260 არ არის ძალიან რთული არითმეტიკა უბრალოდ დაამატოთ ერთი მათი ასაკი. 1028 00:45:49,260 --> 00:45:51,240 მხოლოდ იმის დემონსტრირება, კიდევ ერთხელ, ამ. 1029 00:45:51,240 --> 00:45:57,910 >> როგორც მე ინდექსი ტექსტი, s, ასე შემიძლია ინდექსი შევიდა მასივი ასაკის, 1030 00:45:57,910 --> 00:45:59,950 რომ არსებობს. 1031 00:45:59,950 --> 00:46:03,340 ასე რომ, სად არის ეს იქნება აღების us? 1032 00:46:03,340 --> 00:46:07,070 ასე რომ, ჩვენ ვხედავთ, საბოლოო ჯამში, რამდენიმე რამ, ამ დღეებში. 1033 00:46:07,070 --> 00:46:09,510 ერთი, მთელი ამ დროის განმავლობაში, როდესაც წერილობით საკუთარი პროგრამების, 1034 00:46:09,510 --> 00:46:11,239 როგორიცაა Mario, ხარბ საკრედიტო. 1035 00:46:11,239 --> 00:46:13,780 თქვენ უკვე აკრეფის სახელი პროგრამა და hitting შეიყვანეთ. 1036 00:46:13,780 --> 00:46:15,610 და მერე მიღების მომხმარებლის შეყვანის. 1037 00:46:15,610 --> 00:46:18,137 >> With getString, getInt, GetLongLong, ან მოსწონს. 1038 00:46:18,137 --> 00:46:20,720 მაგრამ აღმოჩნდება, რომ C მხარს უჭერს რაღაც მოუწოდა command line 1039 00:46:20,720 --> 00:46:25,740 არგუმენტები, რომელიც აპირებს მოდით რეალურად მიიღოთ სიტყვა, რომ თქვენ, 1040 00:46:25,740 --> 00:46:28,570 იმ მოციმციმე სწრაფი, მას შემდეგ, რაც თქვენი პროგრამის სახელი. 1041 00:46:28,570 --> 00:46:31,430 >> ასე რომ, ამ დღეებში, თქვენ შეიძლება აკრიფოთ რაღაც Caesar, 1042 00:46:31,430 --> 00:46:34,950 ან კეისარი ნომერი 13, შემდეგაც. 1043 00:46:34,950 --> 00:46:36,070 ჩვენ დავინახავთ, როგორ მუშაობს. 1044 00:46:36,070 --> 00:46:37,550 იმის გამო, მართლაც, პრობლემა კომპლექტი ორი, ჩვენ 1045 00:46:37,550 --> 00:46:39,383 აპირებს წარმოგიდგინოთ პატარა რაღაც 1046 00:46:39,383 --> 00:46:42,360 თქვენში Ralphie მიერ გამოწვევას ადრე კარტოგრაფიის. 1047 00:46:42,360 --> 00:46:43,970 ხელოვნების scrambling ინფორმაციას. 1048 00:46:43,970 --> 00:46:46,660 ეს, ფაქტობრივად, არის ძალიან თქვენში რა Ralphie გააკეთა. 1049 00:46:46,660 --> 00:46:51,380 >> ეს არის მაგალითი იმისა, კოდირების ალგორითმი მოუწოდა ROT13, R-O-T 13. 1050 00:46:51,380 --> 00:46:54,910 რომელიც უბრალოდ ნიშნავს, რომ როტაცია წერილები ანბანი 13 ადგილებში. 1051 00:46:54,910 --> 00:46:58,309 და თუ თქვენ, რომ თქვენ, ახლა რა არის, ალბათ, ნაცნობი ფრაზა. 1052 00:46:58,309 --> 00:47:01,100 მაგრამ გზა ჩვენ ვაპირებთ გამოვიყენოთ ეს, საბოლოო ჯამში, უფრო ზოგადად. 1053 00:47:01,100 --> 00:47:04,390 >> In P ნაკრები ორი, სტანდარტული გამოცემა, თქვენ განახორციელოს რამდენიმე ciphers, 1054 00:47:04,390 --> 00:47:06,720 ერთი ე.წ. Caesar, ერთი მოუწოდა Vigenere. 1055 00:47:06,720 --> 00:47:10,090 ორივე მათგანი ბრუნვის ciphers, რომ რატომღაც თქვენ, 1056 00:47:10,090 --> 00:47:11,826 გახდეს ერთი წერილი შევიდა სხვადასხვა წერილში. 1057 00:47:11,826 --> 00:47:12,950 და ცეზარ არის სუპერ მარტივი. 1058 00:47:12,950 --> 00:47:16,220 თქვენ დაამატოთ ერთი, თქვენ 13, ან გარკვეული რაოდენობის დაახლოებით 26. 1059 00:47:16,220 --> 00:47:19,570 Vigenere აკეთებს, რომ თითო წერილი საფუძველზე. 1060 00:47:19,570 --> 00:47:22,140 ასე Vigenere, როგორც თქვენ Spec, უფრო უსაფრთხო. 1061 00:47:22,140 --> 00:47:24,973 >> მაგრამ, დღის ბოლოს რა თქვენ უნდა განხორციელებისა და P ნაკრები ორი, 1062 00:47:24,973 --> 00:47:29,050 ის არის, რომ ძირითადი, რომ თქვენ გამოიყენოთ როგორც დაშიფვრის და დეშიფრაციის. 1063 00:47:29,050 --> 00:47:32,160 მხედველობაში პროცესში გარდამტეხი ძირითადი ტექსტი, ზოგიერთი ორიგინალური გაგზავნა, 1064 00:47:32,160 --> 00:47:34,490 შევიდა cypher ტექსტი, რომელიც რაღაც დაშიფრული. 1065 00:47:34,490 --> 00:47:36,220 და შემდეგ ამოცნობის კიდევ ერთხელ. 1066 00:47:36,220 --> 00:47:38,119 >> In Hacker გამოცემა, ამავდროულად, თქვენ გექნებათ 1067 00:47:38,119 --> 00:47:40,660 დაევალა რაღაც მსგავსი სული, სადაც ჩვენ მოგცემთ 1068 00:47:40,660 --> 00:47:44,610 ფაილი, ტიპიური Linux, ან Mac, ან Unix კომპიუტერი მოუწოდა etsy 1069 00:47:44,610 --> 00:47:47,800 პაროლი, რომელიც შეიცავს მთელ bunch of სახელისა და პაროლის. 1070 00:47:47,800 --> 00:47:50,932 და იმ პაროლები აქვს ყველა გაიშიფრა, ან hashed, 1071 00:47:50,932 --> 00:47:53,140 ასე ვთქვათ, უფრო სწორად როგორც დაინახავთ სპეც. 1072 00:47:53,140 --> 00:47:57,090 >> და ჰაკერული გამოცემა იქნება გამოწვევას თქვენ აღების შეყვანის როგორიცაა ამ, 1073 00:47:57,090 --> 00:47:58,800 და cracking პაროლი. 1074 00:47:58,800 --> 00:48:02,590 რომ არის, მჭიდროდაა რა ადამიანის დაგავიწყდათ რეალურად იყო. 1075 00:48:02,590 --> 00:48:05,570 რადგან, მართლაც, პაროლები ზოგადად არ ინახება ნათელი, 1076 00:48:05,570 --> 00:48:08,260 და ზოგადად პაროლები უნდა იყოს ძნელი მისახვედრია. 1077 00:48:08,260 --> 00:48:09,610 ეს არ არის ხშირად შემთხვევაში. 1078 00:48:09,610 --> 00:48:12,110 >> და რა ვიფიქრე ჩვენ გვინდა გავაკეთოთ არის დადოს რამდენიმე წუთის 1079 00:48:12,110 --> 00:48:15,160 ერთი შეხედვით განსაკუთრებით ცუდი არჩევანი პაროლები 1080 00:48:15,160 --> 00:48:17,260 ფილმი შეიძლება გავიხსენოთ დიდი სიყვარულით. 1081 00:48:17,260 --> 00:48:18,915 და თუ არა, უნდა ვაქირავებ. 1082 00:48:18,915 --> 00:48:20,070 >> [ვიდეო აღწარმოების] 1083 00:48:20,070 --> 00:48:22,320 >> -მუზარადი, თქვენ ჯოჯოხეთის განსახიერება, რა ხდება? 1084 00:48:22,320 --> 00:48:24,240 რას აკეთებთ რომ ჩემი ქალიშვილი? 1085 00:48:24,240 --> 00:48:28,010 >> -ნებართვა ჩემთვის წარმოგიდგინოთ ბრწყინვალე ახალგაზრდა პლასტიკური ქირურგი, 1086 00:48:28,010 --> 00:48:30,010 ექიმი Phillip Schlotkin. 1087 00:48:30,010 --> 00:48:35,020 ყველაზე დიდი ცხვირი სამუშაო ადამიანი მთელი სამყაროს და Beverly Hills. 1088 00:48:35,020 --> 00:48:36,140 >> -Your Highness. 1089 00:48:36,140 --> 00:48:36,820 >> -Nose სამუშაო? 1090 00:48:36,820 --> 00:48:37,700 მე არ მესმის. 1091 00:48:37,700 --> 00:48:39,070 მას უკვე ჰქონდა ცხვირი სამუშაო. 1092 00:48:39,070 --> 00:48:40,800 ეს იყო მისი Sweet 16 დღემდე. 1093 00:48:40,800 --> 00:48:42,590 >> არა, ეს არ არის, რასაც თქვენ ფიქრობთ. 1094 00:48:42,590 --> 00:48:44,490 ეს ბევრად, ბევრად უარესი. 1095 00:48:44,490 --> 00:48:48,160 თუ არ მომეცი კომბინაცია საჰაერო ფარი, 1096 00:48:48,160 --> 00:48:52,748 ექიმი Schlotkin მისცემს ქალიშვილი უკან თავის ძველ ცხვირი. 1097 00:48:52,748 --> 00:48:53,748 - [Gasps] Nooooooooooooo. 1098 00:48:53,748 --> 00:48:57,684 1099 00:48:57,684 --> 00:48:59,652 სად თქვენ, რომ? 1100 00:48:59,652 --> 00:49:00,640 >> -All უფლება. 1101 00:49:00,640 --> 00:49:02,506 მე გეტყვით, მე გეტყვით. 1102 00:49:02,506 --> 00:49:03,498 >> არა, მამა, არა. 1103 00:49:03,498 --> 00:49:04,490 თქვენ უნდა არა. 1104 00:49:04,490 --> 00:49:06,090 >> -You're უფლება ჩემო. 1105 00:49:06,090 --> 00:49:07,390 მე მენატრება შენი ახალი ცხვირი. 1106 00:49:07,390 --> 00:49:10,990 მაგრამ მე არ ვუთხრა კომბინაცია არ აქვს მნიშვნელობა რა. 1107 00:49:10,990 --> 00:49:12,450 >> -ძალიან კარგად. 1108 00:49:12,450 --> 00:49:14,830 ექიმი Schlotkin, თქვენი ყველაზე ცუდი. 1109 00:49:14,830 --> 00:49:15,744 >> -ჩემი სიამოვნება. 1110 00:49:15,744 --> 00:49:19,860 1111 00:49:19,860 --> 00:49:20,800 >> არა! 1112 00:49:20,800 --> 00:49:22,780 დაველოდოთ, დაველოდოთ. 1113 00:49:22,780 --> 00:49:24,000 მე გეტყვით. 1114 00:49:24,000 --> 00:49:25,830 მე გეტყვით. 1115 00:49:25,830 --> 00:49:28,270 >> მე ვიცოდი, რომ ის იმუშავებს. 1116 00:49:28,270 --> 00:49:31,390 ყველა უფლება, მომეცი. 1117 00:49:31,390 --> 00:49:36,220 >> -კომბინაციის ერთი. 1118 00:49:36,220 --> 00:49:36,740 >> დაზიანებულია ერთი. 1119 00:49:36,740 --> 00:49:37,473 >> დაზიანებულია ერთი. 1120 00:49:37,473 --> 00:49:37,972 დაზიანებულია. 1121 00:49:37,972 --> 00:49:38,471 დაზიანებულია. 1122 00:49:38,471 --> 00:49:39,800 დაზიანებულია. 1123 00:49:39,800 --> 00:49:40,300 სამი. 1124 00:49:40,300 --> 00:49:40,800 სამი. 1125 00:49:40,800 --> 00:49:41,800 სამი. 1126 00:49:41,800 --> 00:49:42,300 ოთხი. 1127 00:49:42,300 --> 00:49:42,800 ოთხი. 1128 00:49:42,800 --> 00:49:44,707 ოთხი. 1129 00:49:44,707 --> 00:49:45,521 -Five. 1130 00:49:45,521 --> 00:49:46,430 -Five. 1131 00:49:46,430 --> 00:49:47,930 -Five. 1132 00:49:47,930 --> 00:49:53,480 ანუ კომბინაცია არის ერთი, ორი, სამი, ოთხი, ხუთი. 1133 00:49:53,480 --> 00:49:56,140 რომ stupidest კომბინაცია მე ოდესმე მოვისმინოთ ჩემს ცხოვრებაში. 1134 00:49:56,140 --> 00:49:58,640 სწორედ ასეთი რამ იდიოტი იქნებოდა მისი ბარგის. 1135 00:49:58,640 --> 00:50:00,000 >> დიდება თქვენ, თქვენი სიმაღლე. 1136 00:50:00,000 --> 00:50:01,340 >> [REMOTE დაწკაპუნებით] 1137 00:50:01,340 --> 00:50:02,450 >> რა გავაკეთო? 1138 00:50:02,450 --> 00:50:03,800 >> მე გამორთულია კედელი. 1139 00:50:03,800 --> 00:50:05,010 >> არა, თქვენ არ იცით, თქვენ გამორთულია მთელი ფილმი. 1140 00:50:05,010 --> 00:50:06,220 >> მე must've დაპრესილი არასწორი ღილაკს. 1141 00:50:06,220 --> 00:50:07,064 >> -Well, დაუსვან მას უკან! 1142 00:50:07,064 --> 00:50:07,910 განათავსეთ ფილმის უკან! 1143 00:50:07,910 --> 00:50:08,300 >> დიახ, სერ! 1144 00:50:08,300 --> 00:50:08,799 დიახ, სერ. 1145 00:50:08,799 --> 00:50:09,660 -Let წავიდეთ, Arnold. 1146 00:50:09,660 --> 00:50:10,450 მოდი, Gretchen. 1147 00:50:10,450 --> 00:50:12,533 რა თქმა უნდა, თქვენ იცით, მე აქვს, რომ ანგარიშსწორება თქვენ ამ. 1148 00:50:12,533 --> 00:50:16,720 1149 00:50:16,720 --> 00:50:17,220 -Well? 1150 00:50:17,220 --> 00:50:17,802 მუშაობს იგი? 1151 00:50:17,802 --> 00:50:18,510 სად არის მეფე? 1152 00:50:18,510 --> 00:50:20,218 >> ხომ მუშაობდა, სერ, ჩვენ აქვს მოედანზე. 1153 00:50:20,218 --> 00:50:20,740 -Great. 1154 00:50:20,740 --> 00:50:24,810 ახლა ჩვენ შეუძლია მიიღოს ყველა ბოლო სუნთქვას სუფთა ჰაერი საწყისი პლანეტის Druidia. 1155 00:50:24,810 --> 00:50:25,890 რა არის კომბინაცია? 1156 00:50:25,890 --> 00:50:28,155 >> ერთ ერთი, ორი, სამი, ოთხი, ხუთი. 1157 00:50:28,155 --> 00:50:29,890 >> ერთ ერთი, ორი, სამი, ოთხი, ხუთი? 1158 00:50:29,890 --> 00:50:30,390 დიახ. 1159 00:50:30,390 --> 00:50:31,110 ისეთი საოცარი. 1160 00:50:31,110 --> 00:50:34,550 მაქვს იგივე ერთობლიობა ჩემი ბარგი. 1161 00:50:34,550 --> 00:50:37,160 მომზადება Spaceball 1 დაუყოვნებლივ გამგზავრების. 1162 00:50:37,160 --> 00:50:38,160 >> დიახ, სერ. 1163 00:50:38,160 --> 00:50:40,745 >> თუკი შეცვლა ერთობლიობა ჩემი ბარგი. 1164 00:50:40,745 --> 00:50:41,578 [კარის დახურვის ხმა] 1165 00:50:41,578 --> 00:50:42,064 [ციხეში კარები დარტყმის ჩაფხუტი] 1166 00:50:42,064 --> 00:50:42,550 -Ahh. 1167 00:50:42,550 --> 00:50:43,383 [END ვიდეო აღწარმოების] 1168 00:50:43,383 --> 00:50:46,700 დევიდ ჯ Malan: ეს არის ის, CS50, ჩვენ დავინახავთ, თქვენ მომავალ კვირას. 1169 00:50:46,700 --> 00:50:49,883 მთხრობელი: და ახლა, Deep აზრები, მიერ Daven Farnham. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> DAVEN FARNHAM: კოდირების დო არის იმდენად რთული, ვიდრე Scratch. 1172 00:50:55,860 --> 00:50:57,320 printf, Scratch ტყუილი იყო. 1173 00:50:57,320 --> 00:50:59,930 1174 00:50:59,930 --> 00:51:01,430 >> [სიცილი soundbite] 1175 00:51:01,430 --> 00:51:02,486