1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] დევიდ ჯ Malan: ყველა უფლება, ეს არის CS50, და ეს არის 2 00:00:11,630 --> 00:00:14,790 დაწყებას კვირაში ორი. 3 00:00:14,790 --> 00:00:16,300 დიდი მადლობა. 4 00:00:16,300 --> 00:00:19,000 მოდით დავიწყოთ აქ სატელეფონო ზარი. 5 00:00:19,000 --> 00:00:30,005 მე უნდა აკრიფოს 617-bug-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: ეს არის CS50. 7 00:00:31,230 --> 00:00:33,930 იყიდება Shuttle ბიჭი, დააჭირეთ 1. 8 00:00:33,930 --> 00:00:36,660 დაიწყონ ზე, დააჭირეთ 9. 9 00:00:36,660 --> 00:00:38,180 დევიდ ჯ Malan: მან განაცხადა, Shuttle ბიჭი, პრესის 1. 10 00:00:38,180 --> 00:00:41,560 ამიტომ, ჩვენ ვაპირებთ დააჭირეთ 1. 11 00:00:41,560 --> 00:00:43,230 CS50: როგორია თქვენი წარმოშობის? 12 00:00:43,230 --> 00:00:45,340 For Quad, პრესის 1. 13 00:00:45,340 --> 00:00:47,080 Mather, პრესა 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, პრესის 3. 15 00:00:49,240 --> 00:00:51,280 Lamont, პრესა 4. 16 00:00:51,280 --> 00:00:53,210 Mem დარბაზი, პრეს 5. 17 00:00:53,210 --> 00:00:55,660 დაიწყონ ზე, დააჭირეთ 0. 18 00:00:55,660 --> 00:00:59,590 დევიდ ჯ Malan: ჩვენ დააჭირეთ 1 ამისთვის Quad. 19 00:00:59,590 --> 00:01:03,610 CS50: შემდეგი Shuttle ტოვებს ამ ძალიან წუთით 1:10 PM, და 20 00:01:03,610 --> 00:01:09,820 შემდეგ 1:20 PM, 1:30 PM, 1:40 PM. 21 00:01:09,820 --> 00:01:12,030 ეს არის CS50. 22 00:01:12,030 --> 00:01:15,570 >> დევიდ ჯ Malan: ასე რომ, ეს CS50 ხმა. 23 00:01:15,570 --> 00:01:18,030 და ეს მაგალითი სახის საბოლოო პროექტების 24 00:01:18,030 --> 00:01:19,500 მაგალითად, შეგიძლიათ Bite off მიმართ 25 00:01:19,500 --> 00:01:20,600 ბოლოს სემესტრში. 26 00:01:20,600 --> 00:01:23,840 მაგალითად, რომ shuttleboy.cs50.net არსებობს - 27 00:01:23,840 --> 00:01:28,200 რეალურად პროექტი, რომელიც მე პირველად დაწერა მიღების შემდეგ CS51 28 00:01:28,200 --> 00:01:29,740 უკან, როდესაც მე ვიყავი ბაკალავრიატის. 29 00:01:29,740 --> 00:01:32,250 და შთაგონების აქ იყო მაშინ, ყველა მათ ჰქონდათ იყო 30 00:01:32,250 --> 00:01:34,320 ნაბეჭდი Shuttle ავტობუსი გრაფიკების, და არ არსებობს 31 00:01:34,320 --> 00:01:35,970 ცნება ეძებს რამ up ხაზზე. 32 00:01:35,970 --> 00:01:38,730 და მე სახის dove ერთ კვირას, გადაისხა მეშვეობით 33 00:01:38,730 --> 00:01:41,460 ნაბეჭდი გრაფიკი და ported მას კომპიუტერული პროგრამით. 34 00:01:41,460 --> 00:01:43,790 იმ დროს, კომპიუტერული პროგრამა მოხდა უნდა ჩაიწეროს 35 00:01:43,790 --> 00:01:47,110 in C. და თქვენ ნამდვილად გაიქცა ის აკრეფით Shuttle Boy ზე 36 00:01:47,110 --> 00:01:48,600 მოციმციმე შეეკითხება როგორც ჩვენ უკვე აკეთებს დღემდე. 37 00:01:48,600 --> 00:01:50,450 მაგრამ წლების განმავლობაში, ის განვითარდა შევიდა მყისიერი 38 00:01:50,450 --> 00:01:51,390 შეტყობინებათა Bot. 39 00:01:51,390 --> 00:01:53,970 ის განვითარდა მეტი ხნის წინ შევიდა ამ ნახვა, შევიდა 40 00:01:53,970 --> 00:01:57,720 SMS-ზე დაფუძნებული ინსტრუმენტი, ისევე როგორც ამ ხმა დაფუძნებული ინსტრუმენტი. 41 00:01:57,720 --> 00:02:00,170 და ეს არის მინიშნება იმ სახის რამ, რომ თქვენ შეგიძლიათ 42 00:02:00,170 --> 00:02:02,380 გააკეთოს თავის მიერ სემესტრის ბოლოს. 43 00:02:02,380 --> 00:02:05,490 >> მაგალითად, იქ, SMS ვერსია Shuttle ბიჭი ხდება 44 00:02:05,490 --> 00:02:06,510 მუშაობას შემდეგნაირად. 45 00:02:06,510 --> 00:02:10,880 თუ, თქვენს მობილურ ტელეფონზე, თქვენ გააგზავნით ტექსტი შეტყობინება 41411 და 46 00:02:10,880 --> 00:02:14,300 შემდეგ სპეციალური სიმბოლო sboy, ამისთვის Shuttle ბიჭი, 47 00:02:14,300 --> 00:02:18,350 მოჰყვა და B, სადაც არის წარმოშობის და B არის 48 00:02:18,350 --> 00:02:19,070 დანიშნულების - 49 00:02:19,070 --> 00:02:21,030 მაგალითად, Boylston ფართი Quad - 50 00:02:21,030 --> 00:02:23,330 რა უნდა დავუბრუნდეთ ფარგლებში რამოდენიმე წამში არის ტექსტი 51 00:02:23,330 --> 00:02:25,820 შეტყობინება Shuttle Boy გეუბნებოდით ზუსტად მაშინ, როდესაც 52 00:02:25,820 --> 00:02:28,990 მომდევნო რამდენიმე shuttles არიან, ამ კუთხით აპირებს, რომ 53 00:02:28,990 --> 00:02:29,640 ქულა ბ 54 00:02:29,640 --> 00:02:32,510 და ეს არის უფრო ზოგადი მაგალითი რა ცნობილია, როგორც 55 00:02:32,510 --> 00:02:33,920 გამოყენებით API. 56 00:02:33,920 --> 00:02:36,930 >> ასე მაგალითად, ეს აქ არის მხოლოდ shuttleboy.cs50.net, 57 00:02:36,930 --> 00:02:39,300 ფაქტობრივი ვებ დაფუძნებული განსახიერება ამ. 58 00:02:39,300 --> 00:02:42,480 მაგრამ მონაცემები, რომ ხაზს უსვამს ამ და სხვა apps რომ CS50 59 00:02:42,480 --> 00:02:45,560 შეიმუშავა ყველა დაუცველებს ყველას აქ ფორმა 60 00:02:45,560 --> 00:02:49,340 საქართველოს APIs, განაცხადის პროგრამირების ინტერფეისები. 61 00:02:49,340 --> 00:02:52,220 და ეს მხოლოდ ლამაზი გზა და განაცხადეს, რომ ადამიანი როგორც ჩვენ შესახებ 62 00:02:52,220 --> 00:02:56,010 ინტერნეტი და სხვები არ გაატარა გარკვეული დროის შექმნა 63 00:02:56,010 --> 00:02:59,970 პროგრამული უზრუნველყოფა, რომ თქვენ შეგიძლიათ გამოიყენოთ, რათა დაიბრუნოს მონაცემები ჩვენგან და 64 00:02:59,970 --> 00:03:02,510 შემდეგ ავაშენოთ თქვენი საკუთარი განაცხადების დაბრუნება 65 00:03:02,510 --> 00:03:03,840 ამ მონაცემების კომპლექტი. 66 00:03:03,840 --> 00:03:06,610 ასე მაგალითად, ამ Shuttle Boy API გვერდზე აქ, რომელიც 67 00:03:06,610 --> 00:03:09,390 ხდება იყოს CS50 მექანიკური, არსებითად დოკუმენტების 68 00:03:09,390 --> 00:03:13,080 როგორ შეგიძლიათ გადასვლა შესახებ ეკითხება CS50 სერვერებზე მონაცემები. 69 00:03:13,080 --> 00:03:16,240 მაგალითად, თუ თქვენ იცნობს CSV ფაილი მძიმით 70 00:03:16,240 --> 00:03:18,940 გამოყოფილი ღირებულებები, ეს არის უბრალოდ სახის სწრაფ და ბინძური 71 00:03:18,940 --> 00:03:20,310 Excel-ის მსგავსი ფაილი. 72 00:03:20,310 --> 00:03:23,110 ასე რომ თქვენ შეგიძლიათ ვთხოვო Shuttle Boy ყველა მონაცემები ყველა 73 00:03:23,110 --> 00:03:25,090 სახლები და მათი GPS კოორდინატები, და თქვენ მიიღებთ 74 00:03:25,090 --> 00:03:27,300 უკან, არსებითად, ცხრილების მსგავსად, რომ 75 00:03:27,300 --> 00:03:30,820 შეგიძლიათ შემდეგ წაიკითხა შევიდა პროგრამის საკუთარი და შემდეგ 76 00:03:30,820 --> 00:03:33,250 გენერირება შედეგი, როგორიც Shuttle ბიჭი თავად 77 00:03:33,250 --> 00:03:34,160 ხდება უნდა აკეთებს. 78 00:03:34,160 --> 00:03:37,030 მათთვის უფრო ნაცნობია, უფრო თანამედროვე მონაცემები წარმომადგენლობების 79 00:03:37,030 --> 00:03:39,420 მოიცავს JSON, JavaScript Object ნოტაცია. 80 00:03:39,420 --> 00:03:40,620 რაღაც დავბრუნდებით თქვენ მიმართ 81 00:03:40,620 --> 00:03:41,720 ბოლოს სემესტრში. 82 00:03:41,720 --> 00:03:45,440 >> თუმცა ისევ და ისევ, ეს მხოლოდ ერთი რამდენიმე CS50 საკუთარი APIs. 83 00:03:45,440 --> 00:03:48,320 და ამაღელვებელი რამ არის, ამ დღეებში, Facebook და 84 00:03:48,320 --> 00:03:51,110 Twitter და Google და საკმაოდ ბევრი ყველა პოპულარულ ვებ გარეთ 85 00:03:51,110 --> 00:03:54,130 იქ აქვს გარკვეული API, რაც იმას ნიშნავს, თუ წაიკითხავთ 86 00:03:54,130 --> 00:03:56,620 დოკუმენტაცია მათი ნახვა, თქვენ იწერთ 87 00:03:56,620 --> 00:03:59,980 ანგარიში, თქვენ შეგიძლიათ შემდეგ დაიწყოს წერა პროგრამული თავზე 88 00:03:59,980 --> 00:04:03,680 რასაც ინსტრუმენტები ან მონაცემები, რომ კომპანია უზრუნველყოფს არსებობს. 89 00:04:03,680 --> 00:04:06,210 და ა.შ. ერთი ჩვენი საკუთარი სწავლების პრაქტიკის რამდენიმე წლის უკან 90 00:04:06,210 --> 00:04:07,620 წერდა Mac ვერსია ამ. 91 00:04:07,620 --> 00:04:10,990 ამრიგად, ლინკები სახელწოდებით Mac აქ ზედა მარცხენა, შეგიძლიათ რეალურად 92 00:04:10,990 --> 00:04:13,940 ჩამოტვირთვა Mac OS ვიჯეტის, რომელიც ეშვება თქვენი Mac გავაკეთოთ 93 00:04:13,940 --> 00:04:15,040 იგივე სახის ნივთები. 94 00:04:15,040 --> 00:04:17,970 ასე რომ ეს ყველაფერი შენობის ზევით მონაცემები კომპლექტი მოსწონს ეს. 95 00:04:17,970 --> 00:04:21,839 მაგრამ უფრო რომ მიმართ ბოლომდე სემესტრში. 96 00:04:21,839 --> 00:04:25,780 >> მოდით ჩაყვინთვის რეალურ სწრაფად bug, მხოლოდ სახის მისაღებად 97 00:04:25,780 --> 00:04:27,990 რამ warmed დღემდე, და ვფიქრობ უკან ზოგიერთ 98 00:04:27,990 --> 00:04:29,660 რამ ჩვენ შევხედეთ გასულ კვირას. 99 00:04:29,660 --> 00:04:32,840 კერძოდ, მინდა წავიდეთ წინ და გაიყვანოს up, ამბობენ, 100 00:04:32,840 --> 00:04:34,080 ეს მაგალითი აქ. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, ეს არის შესაძლებელი რა თქმა უნდა ნახვა თუ მინდა 102 00:04:37,500 --> 00:04:40,250 მინდა მისი ჩამოტვირთვა და poke გარშემო თავს. 103 00:04:40,250 --> 00:04:43,520 მაგრამ მოდით მიუახლოვდით აქ ამ საკმაოდ მოკლე პროგრამა, და მხოლოდ 104 00:04:43,520 --> 00:04:46,550 სუპერ სწრაფი recap ზოგიერთი ძირითადი შენობა ბლოკების რომ 105 00:04:46,550 --> 00:04:48,880 ჩვენ ნამდვილად ვაპირებთ დავიწყო აღების თავისთავად. 106 00:04:48,880 --> 00:04:51,860 >> ასე ლურჯი პერსონალის, სტრიქონები 1 მეშვეობით 9, უბრალოდ 107 00:04:51,860 --> 00:04:53,670 softball კითხვები. 108 00:04:53,670 --> 00:04:54,590 ასე რომ ეს არის მხოლოდ კომენტარი. 109 00:04:54,590 --> 00:04:56,230 მათ არ აქვთ ფუნქციური მნიშვნელობა. 110 00:04:56,230 --> 00:04:58,460 მაგრამ ისინი კომენტარი იმ გაგებით, რომ ისინი აღნიშნავს, რომ 111 00:04:58,460 --> 00:05:02,010 მე, ადამიანის, გააკეთა, რომ პირადად ასე რომ ლექცია და შემდეგ 112 00:05:02,010 --> 00:05:04,340 ლექცია, შემიძლია რეალურად გახსოვთ რა ამ პროგრამის 113 00:05:04,340 --> 00:05:07,120 ს გარეშე წაკითხვის საშუალება ხაზს და 114 00:05:07,120 --> 00:05:08,990 recreating ისტორია ჩემი აზრით. 115 00:05:08,990 --> 00:05:11,000 უფრო მეტიც, თუ მე მხრივ, ეს პროგრამა, რათა ვინმე მოსწონს 116 00:05:11,000 --> 00:05:14,420 თქვენ, გაცილებით ნათელი თქვენ, რადგან კომენტარი მოსწონს, 117 00:05:14,420 --> 00:05:16,680 რა პროგრამის რეალურად აკეთებს, ან თუნდაც რა 118 00:05:16,680 --> 00:05:18,210 პროგრამის უნდა აკეთებს. 119 00:05:18,210 --> 00:05:20,760 თუ არა სწორი, ეს სხვა საკითხია საერთოდ. 120 00:05:20,760 --> 00:05:25,040 ახლა კი, C, მრავალწლიანი ხაზი კომენტარები, გავიხსენოთ, რომ ზემოთ 121 00:05:25,040 --> 00:05:27,880 აქ არის ჯადოსნური სიმბოლო, / *. 122 00:05:27,880 --> 00:05:30,380 ეს იმას ნიშნავს, აქ მოდის დაწყების კომენტარი. 123 00:05:30,380 --> 00:05:34,560 და სხვა არაფერი მნიშვნელოვანი, სანამ მიაღწევთ ბოლომდე Terminator, 124 00:05:34,560 --> 00:05:36,700 რაც * /, საპირისპირო. 125 00:05:36,700 --> 00:05:39,120 ასე რომ ის ფაქტი, რომ მე მაქვს 80-რამდენიმე უცნაური ვარსკვლავს აქ 126 00:05:39,120 --> 00:05:41,550 მარცხნიდან მართლაც მხოლოდ ესთეტიკურ დეტალურად. 127 00:05:41,550 --> 00:05:43,370 მას არ აქვს ფუნქციონალური მნიშვნელობა. 128 00:05:43,370 --> 00:05:44,490 >> ახლა როგორ შესახებ ხაზი 11? 129 00:05:44,490 --> 00:05:46,940 რას გავაკეთებთ ერისკაცად წარმოგვიდგება მისი თვალსაზრისით? 130 00:05:51,560 --> 00:05:52,540 რა არის ეს? 131 00:05:52,540 --> 00:05:54,280 აუდიტორია: გაერთიანებულია სტანდარტული. 132 00:05:54,280 --> 00:05:54,740 დევიდ ჯ Malan: OK, კარგი. 133 00:05:54,740 --> 00:05:57,500 ამიტომ იგი მოიცავს stdio.h ბიბლიოთეკაში. 134 00:05:57,500 --> 00:05:58,230 ასე რომ რას ნიშნავს ეს? 135 00:05:58,230 --> 00:06:01,570 ისე, შიგნით, რომ ფაილი, stdio.h, არის მთელი bunch of 136 00:06:01,570 --> 00:06:03,320 ფუნქციის დეკლარაციების - 137 00:06:03,320 --> 00:06:05,290 რომ არის, კოდი, რომელიც სხვისი დაწერა. 138 00:06:05,290 --> 00:06:08,160 და სრულყოფილი მაგალითი ფუნქცია რომ დეკლარირებული 139 00:06:08,160 --> 00:06:10,250 stdio.h არის - 140 00:06:10,250 --> 00:06:11,980 რაც საყვარელი მიერ არის? 141 00:06:11,980 --> 00:06:14,300 ამიტომ printf, ყველაზე საერთო პირობა გამოიყენოს, რა თქმა უნდა 142 00:06:14,300 --> 00:06:15,840 დილით, რომ ბიბლიოთეკაში არსებობს. 143 00:06:15,840 --> 00:06:19,290 თუ გამოვრიცხავ, რომ ხაზი კოდი, Clang აპირებს დაწეროთ 144 00:06:19,290 --> 00:06:22,550 at me რაღაც გამოყენების შესახებ გამოუცხადებელ სიმბოლო. 145 00:06:22,550 --> 00:06:24,930 რაღაც გამოუცხადებელ ალბათ სიტყვით, რადგან 146 00:06:24,930 --> 00:06:27,770 ჩვენ არ აცნობა შემდგენელი რა printf გამოიყურება 147 00:06:27,770 --> 00:06:29,230 მინდა თუ არ შედის, რომ ხაზი. 148 00:06:29,230 --> 00:06:31,830 და უფრო ქვემოთ დედამიწაზე, მართლაც, რა, რომ ხაზი ამბობს არის 149 00:06:31,830 --> 00:06:34,890 გახსენით, რომ ფაილი, stdio.h, სადაც არ არის სერვერის 150 00:06:34,890 --> 00:06:38,200 ხისტ დისკზე, ან ელექტრო მყარ დისკზე, და ასლი პასტა ეს 151 00:06:38,200 --> 00:06:40,240 უფლება არსებობს ჩემს ფაილის გარეშე ჩემი 152 00:06:40,240 --> 00:06:41,730 მქონე გავაკეთოთ, რომ ხელით. 153 00:06:41,730 --> 00:06:44,420 >> ახლა, როდესაც ჩვენ კიდევ ქვევით აქ მთავარი, სანამ ხანგრძლივი დავიწყებთ 154 00:06:44,420 --> 00:06:46,900 teasing გარდა რა int და რა ბათილად არის. 155 00:06:46,900 --> 00:06:48,430 მაგრამ ახლა, მოდით შევხედოთ სამი ხაზები 156 00:06:48,430 --> 00:06:50,350 ფარგლებში 15 გზით 17. 157 00:06:50,350 --> 00:06:52,250 ეს აქ აცხადებენ, როგორც buggy. 158 00:06:52,250 --> 00:06:54,900 Line 7 ჩემი კომენტარები ამბობს "ამობეჭდავ 10 159 00:06:54,900 --> 00:06:59,410 asterisks მაგრამ არ. "რატომ არა ბეჭდვა, ფაქტობრივად, 160 00:06:59,410 --> 00:07:01,097 10 ასეთი ვარსკვლავები? 161 00:07:01,097 --> 00:07:02,347 აუდიტორია: [INAUDIBLE]. 162 00:07:05,210 --> 00:07:05,800 დევიდ ჯ Malan: ზუსტად. 163 00:07:05,800 --> 00:07:08,720 ასე რომ ჩვენ ვიწყებთ ითვლიან საწყისი 0. 164 00:07:08,720 --> 00:07:10,780 და ეს არის რეალურად კონვენციის პროგრამირების და 165 00:07:10,780 --> 00:07:13,230 კომპიუტერულ მეცნიერებათა ზოგადად, დაწყებული დათვლა 166 00:07:13,230 --> 00:07:14,610 საწყისი 0 ნაცვლად 1. 167 00:07:14,610 --> 00:07:16,690 და ეს მართლაც მხოლოდ გამომდინარეობს ფაქტი, რომ 168 00:07:16,690 --> 00:07:18,940 მაგალითად, როდესაც ჩვენ გვქონდა რვა ადამიანი up სცენაზე, როდესაც 169 00:07:18,940 --> 00:07:20,680 არავინ ამაღლების მათი მხრივ, ისინი 170 00:07:20,680 --> 00:07:22,340 ყველა ეფექტურად zeros. 171 00:07:22,340 --> 00:07:24,260 და ა.შ. ეს მხოლოდ სახის კომპიუტერულ კონვენციის ისე, 172 00:07:24,260 --> 00:07:26,030 ამიტომ, უნდა დაიწყოს დათვლის საწყისი 0. 173 00:07:26,030 --> 00:07:29,130 თუ ეს ყველაზე დაბალი ნომერი შეგიძლიათ წარმოადგენენ ორობითი. 174 00:07:29,130 --> 00:07:32,270 >> ასე რომ აქ დავიწყეთ ინიციალიზაციისას I დან 0. 175 00:07:32,270 --> 00:07:34,230 ჩვენ მითითებული მე ტოლია 0. 176 00:07:34,230 --> 00:07:37,780 მაგრამ შემდეგ მე მივიღე ეს შეცდომა აქ და განაცხადა, რომ მე ნაკლებია ან 177 00:07:37,780 --> 00:07:38,820 ტოლია 10. 178 00:07:38,820 --> 00:07:41,700 მაგრამ თუ თქვენ ფიქრობთ, რომ მეშვეობით, თუ დაიწყება 0 და მერე წასვლა 179 00:07:41,700 --> 00:07:46,410 მდე 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, მე რეალურად აპირებს 180 00:07:46,410 --> 00:07:49,980 ამობეჭდოთ 11 ვარსკვლავს რომ ეკრანზე, რადგან მე გაიზარდა 181 00:07:49,980 --> 00:07:52,410 და ტოლია 10. 182 00:07:52,410 --> 00:07:55,090 ასე ადვილად სარემონტო აქ მაშინ არის, თუ რა? 183 00:07:55,090 --> 00:07:56,070 აუდიტორია: [INAUDIBLE]. 184 00:07:56,070 --> 00:07:57,350 დევიდ ჯ Malan: უბრალოდ შეცვალეთ მას ნაკლები. 185 00:07:57,350 --> 00:07:59,700 თუ თქვენ ნამდვილად გსურთ, თქვენ შეიძლება ამის გაკეთება. 186 00:07:59,700 --> 00:08:01,370 მაგრამ ზოგადად, რომ frowned საფუძველზე. 187 00:08:01,370 --> 00:08:04,020 და ასე იწყება ითვლიან საწყისი 0 მხოლოდ რაღაც თქვენ უნდა 188 00:08:04,020 --> 00:08:05,510 ჩვეულებრივ შეეგუება. 189 00:08:05,510 --> 00:08:07,810 ახლა, რაც შეეხება ამ მთელი შენება და თავისთავად? 190 00:08:07,810 --> 00:08:10,640 ეს ხაზი 15 demarks ამისთვის loop. 191 00:08:10,640 --> 00:08:12,510 ასე რომ არ არის ფუნქცია. 192 00:08:12,510 --> 00:08:13,640 უბრალოდ განცხადებაში. 193 00:08:13,640 --> 00:08:16,180 ეს looping შენება, როგორიც ვნახეთ Scratch. 194 00:08:16,180 --> 00:08:17,600 და მას სამ ნაწილად. 195 00:08:17,600 --> 00:08:19,740 შევნიშნოთ, რომ ეს არის პირველი ნაწილი 196 00:08:19,740 --> 00:08:21,350 მარცხენა მძიმით. 197 00:08:21,350 --> 00:08:24,200 აქ ახლო მონაწილეობა შორის ორი semicolons. 198 00:08:24,200 --> 00:08:26,250 და მერე იქ მარჯვენა ნაწილი მარჯვნივ 199 00:08:26,250 --> 00:08:27,640 მეორე მძიმით. 200 00:08:27,640 --> 00:08:31,822 ახლა, პირველი ასეთი ჯერ რა? 201 00:08:31,822 --> 00:08:33,679 აუდიტორია: [INAUDIBLE]. 202 00:08:33,679 --> 00:08:34,270 დევიდ ჯ Malan: თავში იქ? 203 00:08:34,270 --> 00:08:34,816 ჰო? 204 00:08:34,816 --> 00:08:35,980 აუდიტორია: ინიციალიზაციისას. 205 00:08:35,980 --> 00:08:36,850 >> დევიდ ჯ Malan: ინიციალიზაციისას. 206 00:08:36,850 --> 00:08:37,840 ასე რომ რას ნიშნავს ეს? 207 00:08:37,840 --> 00:08:40,690 ჩვენ გამოცხადებული ცვლადში მე. 208 00:08:40,690 --> 00:08:43,840 ეს ტიპის int, რადგან მე მითითებული int i. 209 00:08:43,840 --> 00:08:46,470 და მე ინიციალიზაციისას მე რომ მნიშვნელობა 0. 210 00:08:46,470 --> 00:08:47,730 ასე რომ რა არის ეს მართლაც ამბობდა? 211 00:08:47,730 --> 00:08:50,680 ის ეფექტურად ამბობდა კომპიუტერს hey, მომეცი საკმარისი 212 00:08:50,680 --> 00:08:53,660 მეხსიერება, საკმარისი RAM, რათა შეწყობოდა ნომერი, და შემდეგ დააყენოს 213 00:08:53,660 --> 00:08:56,130 ნომერი 0 ამ ბლოკი RAM. 214 00:08:56,130 --> 00:08:59,100 და როგორც განზე, რამდენად დიდი არის int როგორც წესი, მინიმუმ შიგნით 215 00:08:59,100 --> 00:09:00,280 მოწყობილობის? 216 00:09:00,280 --> 00:09:01,000 აუდიტორია: 32 bit. 217 00:09:01,000 --> 00:09:01,670 დევიდ ჯ Malan: 32 ბიტი. 218 00:09:01,670 --> 00:09:04,890 ასე რომ, რაც იმას ნიშნავს მომეცი 32 ​​ბიტი, სხვაგვარად ცნობილია როგორც 4 ბაიტი, 219 00:09:04,890 --> 00:09:07,250 და დააყენა ღირებულების 0 მასში, რომელიც საკმაოდ ადვილი, რადგან 220 00:09:07,250 --> 00:09:09,110 უბრალოდ ნიშნავს მითითებული ყველა ბიტი უნდა 0. 221 00:09:09,110 --> 00:09:11,690 >> ახლა, მეორე ნაწილი აქ არის მდგომარეობა. 222 00:09:11,690 --> 00:09:14,590 და მდგომარეობა, როგორც სახელი ვარაუდობს, არის ის, რაც შემოწმდება 223 00:09:14,590 --> 00:09:18,100 ისევ და ისევ და ისევ იმის შესახებ თუ რამდენად მართალია ან ცრუ. 224 00:09:18,100 --> 00:09:21,410 ასე რომ, ეს უბრალოდ ვამბობ, გავაკეთოთ შემდეგი ხაზი კოდი - 225 00:09:21,410 --> 00:09:23,950 კერძოდ ხაზი 16, რადგან ისინი მხოლოდ ერთი indented 226 00:09:23,950 --> 00:09:24,820 ქვევმოთ - 227 00:09:24,820 --> 00:09:26,980 ცოტა ხნის როგორც მე ნაკლებია 10. 228 00:09:26,980 --> 00:09:30,520 და ყოველი iteration მეშვეობით ამ მარყუჟის, გააკეთეთ 229 00:09:30,520 --> 00:09:33,840 incrementation, რომელიც ამ შემთხვევაში არის i + +. 230 00:09:33,840 --> 00:09:35,580 ახლა, ეს არ უნდა იყოს მე + +. 231 00:09:35,580 --> 00:09:37,610 ეს შეიძლება იყოს I -. 232 00:09:37,610 --> 00:09:39,860 მაგრამ მე რომ ამ, რა ქცევა აპირებს 233 00:09:39,860 --> 00:09:41,370 იყოს ამ პროგრამის? 234 00:09:41,370 --> 00:09:42,290 აუდიტორია: ეს იქნება უსასრულო ციკლი. 235 00:09:42,290 --> 00:09:44,060 დევიდ ჯ Malan: ეს იქნება ერთგვარი უსასრულო ციკლი, 236 00:09:44,060 --> 00:09:47,720 თუ არ მივიღებთ გაუმართლა შემდეგ უარყოფითი 2 მილიარდ ან იმდენად. 237 00:09:47,720 --> 00:09:51,320 იქნებ რამ გადაიტანოთ გარშემო, მხოლოდ ბუნების სასრულ 238 00:09:51,320 --> 00:09:53,930 პუნქტების ბიტი, რომ ჩვენ გამოყოფილი int. 239 00:09:53,930 --> 00:09:56,270 მაგრამ, რა თქმა უნდა აპირებს iterate ბევრად უფრო მეტია, ვიდრე 10 და 240 00:09:56,270 --> 00:09:58,630 რა თქმა უნდა, უფრო მეტი ვიდრე 11 ჯერ აქ. 241 00:09:58,630 --> 00:10:02,240 >> და ახლა, როგორც განზე, გააცნობიეროს, რომ მე + + და მე - 242 00:10:02,240 --> 00:10:04,420 მართლაც მხოლოდ სინტაქსური შაქარი. 243 00:10:04,420 --> 00:10:07,210 უბრალოდ სტენოგრამის ნოტაცია, რასაც ცოტა მეტი 244 00:10:07,210 --> 00:10:08,720 მკაფიოდ წერია შემდეგნაირად: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 რომ იდენტურია i + +. 247 00:10:13,460 --> 00:10:15,860 უბრალოდ სახის გამოიყურება გალამაზებაში ვთქვა მე + +. 248 00:10:15,860 --> 00:10:17,490 უფრო ლაკონური, უფრო იკითხება. 249 00:10:17,490 --> 00:10:19,030 და ა.შ. საუკეთესო ხალხი, რომ ნაცვლად. 250 00:10:19,030 --> 00:10:21,840 მაგრამ ეს არის იდენტური ფუნქციურად to 251 00:10:21,840 --> 00:10:22,900 რაც ჩვენ უბრალოდ დაინახა. 252 00:10:22,900 --> 00:10:27,770 ასე მოკლედ, გადავწყვიტოთ აქ მხოლოდ იმის თქმა iterate მე 253 00:10:27,770 --> 00:10:30,690 საწყისი 0 ყველა გზა მდე არანაკლებ 10. 254 00:10:30,690 --> 00:10:32,700 და მაშინ საბოლოოდ დავრწმუნდებით მართლაც კიდევ 10 ვარსკვლავს. 255 00:10:32,700 --> 00:10:33,430 >> მოდით ცდილობენ ამ. 256 00:10:33,430 --> 00:10:35,310 ნება მომეცით გახსენით ტერმინალი ბოლოში. 257 00:10:35,310 --> 00:10:37,420 ნება მომეცით წასვლას დირექტორია, რომ ეს არის შემოსული 258 00:10:37,420 --> 00:10:40,030 და მე ვაპირებ კომპილირება ხელით Clang ახლა. 259 00:10:40,030 --> 00:10:44,880 და მე ვაპირებ ამ კომპილაციის როგორც buggy1.c, შეიყვანეთ. 260 00:10:44,880 --> 00:10:50,280 და ახლა buggy1, რატომ არის იქ ასეთი ფაილი ან დირექტორია 261 00:10:50,280 --> 00:10:52,026 მოუწოდა buggy1? 262 00:10:52,026 --> 00:10:53,850 აუდიტორია: [INAUDIBLE]. 263 00:10:53,850 --> 00:10:54,240 დევიდ ჯ Malan: ჰო. 264 00:10:54,240 --> 00:10:55,420 ამიტომ რეალურად მოუწოდა a.out. 265 00:10:55,420 --> 00:10:57,480 ასე რომ გავიხსენოთ, თუ თქვენ მხოლოდ აწარმოებს Clang, სადაც Clang არის 266 00:10:57,480 --> 00:11:00,420 შემდგენელი, და თქვენ არ დააკონკრეტა სახელი გსურთ 267 00:11:00,420 --> 00:11:03,550 მისცეს თქვენი პროგრამა, იგი აპირებს ნაგულისხმევია რომ a.out. 268 00:11:03,550 --> 00:11:05,030 ასე რომ მართლაც თუ ls - 269 00:11:05,030 --> 00:11:05,510 oops. 270 00:11:05,510 --> 00:11:07,680 მე didn't - შავი და თეთრი საკითხი ზოგიერთი 271 00:11:07,680 --> 00:11:08,840 თქვენ წინაშე მდგარი დაფიქსირდა. 272 00:11:08,840 --> 00:11:10,670 მაგრამ ნება მიბოძეთ ამის გაკეთება. 273 00:11:10,670 --> 00:11:14,570 იქ ჩვენ გვყავს a.out წლის მარცხენა მხარეს. 274 00:11:14,570 --> 00:11:17,360 ამიტომ, ჩვენ უნდა აწარმოებს a.out ნაცვლად buggy1. 275 00:11:17,360 --> 00:11:19,140 >> ნება მომეცით, წავიდეთ წინ და ამის გაკეთება. 276 00:11:19,140 --> 00:11:22,840 . / A.out, შეიყვანეთ. 277 00:11:22,840 --> 00:11:26,160 მე აშკარად არ რა? 278 00:11:26,160 --> 00:11:26,620 აუდიტორია: შენახვა. 279 00:11:26,620 --> 00:11:27,390 დევიდ ჯ Malan: Save ჩემი ფაილი. 280 00:11:27,390 --> 00:11:31,520 ასე რომ ადვილად მოგვარდება მიერ hitting კონტროლის S, ან აპირებს 281 00:11:31,520 --> 00:11:33,450 ფაილი, შენახვა, ისევე როგორც საუკეთესო პროგრამები. 282 00:11:33,450 --> 00:11:36,360 ნება მომეცით დაცემას აქ, ნათელი ეკრანზე, გაუშვით ერთხელ. 283 00:11:36,360 --> 00:11:37,960 და იქ მაინც bug. 284 00:11:37,960 --> 00:11:41,618 ასე რომ, რა ხდება - 285 00:11:41,618 --> 00:11:42,980 აუდიტორია: თქვენ არ კომპილირდება. 286 00:11:42,980 --> 00:11:44,040 დევიდ ჯ Malan: Ah, კარგი. 287 00:11:44,040 --> 00:11:45,010 მე არ კომპილირება. 288 00:11:45,010 --> 00:11:47,250 მომწონს იდიოტი, მე ეძებს კოდი რა არასწორი. 289 00:11:47,250 --> 00:11:51,275 ამიტომ clang buggy1.c, ახლა a.out. 290 00:11:51,275 --> 00:11:52,640 და phew, გადაარჩინა. 291 00:11:52,640 --> 00:11:55,090 >> ასე გამოიყურება პატარა მახინჯი რადგან იქ არ არის ახალი ხაზი 292 00:11:55,090 --> 00:11:55,970 ნებისმიერ პროგრამას. 293 00:11:55,970 --> 00:11:57,390 თუმცა ისევ და ისევ, ეს მხოლოდ ესთეტიკური დეტალურად. 294 00:11:57,390 --> 00:11:59,430 და მინიმუმ თუ ჩვენ ითვლიან იმ გარეთ, ჩვენ უნდა 295 00:11:59,430 --> 00:12:01,160 ახლა ვხედავთ 10 ასეთი ვარსკვლავი. 296 00:12:01,160 --> 00:12:03,260 ისე, რაც შეეხება ამ მეორე გახურების მაგალითად? 297 00:12:03,260 --> 00:12:07,750 ასე რომ buggy2, მე აცხადებენ, რომ ეს ვერსია, ძალიან, იქნება ბეჭდვა 298 00:12:07,750 --> 00:12:10,110 10 ვარსკვლავი, ერთი თითო ხაზზე. 299 00:12:10,110 --> 00:12:12,340 ასე რომ, ეს დრო, მაქვს სტრიქონების გადატანით ხასიათი, უბრალოდ, რათა 300 00:12:12,340 --> 00:12:13,520 რამ პატარა გალამაზებაში. 301 00:12:13,520 --> 00:12:15,410 მაგრამ ნაცვლად რა მივიღო ეს. 302 00:12:15,410 --> 00:12:19,590 ნება მომეცით გავაკეთოთ clang buggy2.c, შეიყვანეთ. 303 00:12:19,590 --> 00:12:21,790 ახლა კი კიდევ ერთხელ მოუწოდა a.out. 304 00:12:21,790 --> 00:12:23,130 შეიყვანეთ. 305 00:12:23,130 --> 00:12:26,900 მე მხოლოდ ერთი ახალი ხაზი, მხოლოდ ძალიან ბოლო ახალი ხაზი, რომ 306 00:12:26,900 --> 00:12:29,370 მოძრაობს ჩემი სწრაფი მომდევნო ხაზი. 307 00:12:29,370 --> 00:12:32,660 და მაინც ნათლად მე დაბეჭდვის *, მაშინ ახალი ხაზი, 308 00:12:32,660 --> 00:12:33,990 *, მაშინ ახალი ხაზი. 309 00:12:33,990 --> 00:12:35,490 მაგრამ რა bug აქ? 310 00:12:35,490 --> 00:12:35,974 ჰო? 311 00:12:35,974 --> 00:12:37,224 აუდიტორია: [INAUDIBLE]. 312 00:12:39,850 --> 00:12:40,470 >> დევიდ ჯ Malan: ზუსტად. 313 00:12:40,470 --> 00:12:44,110 ასე რომ, განსხვავებით ზოგიერთი ენებზე, როგორიცაა Python, სადაც წანაცვლება 314 00:12:44,110 --> 00:12:46,030 რეალურად აქვს ფუნქციონალური მნიშვნელობა, წელს 315 00:12:46,030 --> 00:12:47,150 ენის მსგავსად C - 316 00:12:47,150 --> 00:12:49,140 როგორც ვნახავთ, PHP, JavaScript - 317 00:12:49,140 --> 00:12:51,940 წანაცვლება მართლაც მხოლოდ ადამიანის სასარგებლოდ. 318 00:12:51,940 --> 00:12:55,690 ასე რომ ის ფაქტი, რომ მე indented ხაზის 16 და 17 გამოიყურება დიდი, 319 00:12:55,690 --> 00:12:57,530 მაგრამ მას არ აქვს ფუნქციონალური მნიშვნელობა აქ. 320 00:12:57,530 --> 00:13:00,700 თუკი მინდა ორივე ხაზები შეასრულოს როგორც ნაწილი იმ 321 00:13:00,700 --> 00:13:05,140 მარყუჟის, მაშინ მე უნდა დაურთოს მათ Curly braces ამით. 322 00:13:05,140 --> 00:13:08,540 თქვენ შეგიძლიათ მხოლოდ გაჭრა კუთხეში და გამომრჩეს Curly braces თუ 323 00:13:08,540 --> 00:13:10,036 რა შემთხვევაში? 324 00:13:10,036 --> 00:13:10,410 აუდიტორია: Just ერთ ხაზს. 325 00:13:10,410 --> 00:13:11,130 დევიდ ჯ Malan: Just ერთ ხაზს. 326 00:13:11,130 --> 00:13:15,280 ასე რომ ეს მხოლოდ ერთგვარი ლამაზი სახის სინტაქსური დეტალურად ისე, რომ 327 00:13:15,280 --> 00:13:17,900 თქვენ არ დახარჯონ დრო წერილობით სამი ხაზი, რომელთაგან ორი არის 328 00:13:17,900 --> 00:13:20,040 Curly braces, უბრალოდ დაწერა ერთი ხაზი კოდი. 329 00:13:20,040 --> 00:13:21,650 მაგრამ თუ თქვენ გაქვთ ორი ან მეტი ხაზი, ჩვენ 330 00:13:21,650 --> 00:13:22,860 მართლაც უნდა გავაკეთოთ ეს. 331 00:13:22,860 --> 00:13:24,210 >> ახლა ნება მომეცით გადარჩენა ამ. 332 00:13:24,210 --> 00:13:27,140 ნება მომეცით წავიდეთ წინ და ხელახლა აწარმოებს Clang. 333 00:13:27,140 --> 00:13:31,375 მაშინ ნება მომეცით გამეორება a.out, და ახლა კიდევ ერთი თითო ხაზზე. 334 00:13:31,375 --> 00:13:33,670 ახლა, a.out ერთხელ არის სახის dumb სახელი პროგრამა. 335 00:13:33,670 --> 00:13:37,500 როგორ შემიძლია გითხრათ Clang რეალურად მომეცი ფაილის სახელი 336 00:13:37,500 --> 00:13:39,820 რომ უფრო მოსახერხებელი, როგორიცაა buggy2 თავად? 337 00:13:43,200 --> 00:13:44,466 ცოტა უფრო ნათლად? 338 00:13:44,466 --> 00:13:45,220 აუდიტორია: [INAUDIBLE]. 339 00:13:45,220 --> 00:13:47,810 დევიდ ჯ Malan: OK, ასე, რომ შეიძლება პრაქტიკულად ძალიან 340 00:13:47,810 --> 00:13:51,000 მოსახერხებელი კომბინაცია და მხოლოდ წერენ მიიღოს buggy2. 341 00:13:51,000 --> 00:13:53,840 მე არ დააკონკრეტა. გ ამ შემთხვევაში, და დააჭიროთ. 342 00:13:53,840 --> 00:13:58,530 და რა გააკეთოს არ არის ის ადგენს buggy2.c ჩემთვის მიერ 343 00:13:58,530 --> 00:14:00,260 გეკითხებით Clang ამის გაკეთება. 344 00:14:00,260 --> 00:14:05,100 კერძოდ, ის მოუწოდებს Clang, ის მუშაობს Clang გამოყენებით გზა მეტი 345 00:14:05,100 --> 00:14:08,540 ბრძანება ხაზი არგუმენტები ან კონცენტრატორები ვიდრე რეალურად სჭირდება. 346 00:14:08,540 --> 00:14:11,270 დროულად, ჩვენ დავბრუნდებით, თუ რა ყველა ამ სხვადასხვა 347 00:14:11,270 --> 00:14:13,810 cryptic hyphenated გამონათქვამები ნიშნავს. 348 00:14:13,810 --> 00:14:16,910 მაგრამ ახლა, ეს მხოლოდ გადარჩენის ჩემთვის trouble of 349 00:14:16,910 --> 00:14:19,600 მქონე მახსოვს და რომელმაც უნდა აკრიფოთ ყველა იმ 350 00:14:19,600 --> 00:14:21,150 სხვადასხვა hyphenated გამონათქვამები. 351 00:14:21,150 --> 00:14:23,240 და Upside ის საბოლოოდ არის 352 00:14:23,240 --> 00:14:25,900 რომ ახლა მაქვს buggy2. 353 00:14:25,900 --> 00:14:27,480 თუ მინდა ამის გაკეთება ხელით, თუმცა, მე 354 00:14:27,480 --> 00:14:28,775 შეიძლება ნაცვლად ამის გაკეთება - 355 00:14:28,775 --> 00:14:34,110 clang-o buggy2 და შემდეგ buggy2.c. 356 00:14:34,110 --> 00:14:37,980 და რომელიც ერთნაირად მომეცი ფაილი სახელად buggy2. 357 00:14:37,980 --> 00:14:39,710 >> ასე მოკლედ, Clang არის შემდგენელი. 358 00:14:39,710 --> 00:14:43,080 ჩადება მხოლოდ მოსახერხებელი ინსტრუმენტი, რომელიც ჩვენ უნდა გამოყენებით მეტი 359 00:14:43,080 --> 00:14:44,420 და მეტი, რადგან ის მხოლოდ იწყებს 360 00:14:44,420 --> 00:14:47,330 გაამარტივებს რამ ჩვენთვის. 361 00:14:47,330 --> 00:14:49,430 და ვბრუნდებით 0, ბოლოს. 362 00:14:49,430 --> 00:14:51,890 ახლა მხოლოდ იმიტომ, მაგრამ ჩვენ დავიწყებთ teasing რომ ნაწილი 363 00:14:51,890 --> 00:14:52,930 დღეს და ოთხშაბათს. 364 00:14:52,930 --> 00:14:55,560 ნებისმიერი კითხვები ნებისმიერ ამ? 365 00:14:55,560 --> 00:14:56,450 ჰო? 366 00:14:56,450 --> 00:14:58,234 აუდიტორია: [INAUDIBLE] 367 00:14:58,234 --> 00:15:00,020 LS წელს შეთავაზებები იქ? 368 00:15:00,020 --> 00:15:01,710 დევიდ ჯ Malan: OK. 369 00:15:01,710 --> 00:15:05,880 როდესაც მე აკრეფილი ls წელს შეთავაზებები, რომელიც ჩემთვის აკეთებს ზოგიერთი Magic 370 00:15:05,880 --> 00:15:07,160 კულუარებში დაფიქსირება bug. 371 00:15:07,160 --> 00:15:09,370 დამავიწყდა, ისევე როგორც ჩვენ ვეუბნებით ბევრ თქვენგანს შესახებ 372 00:15:09,370 --> 00:15:11,600 ფორუმი, ჩეთი, გავაკეთოთ - 373 00:15:11,600 --> 00:15:17,220 ჩვენ ეს ახლა - sudo yum-y განახლება appliance50. 374 00:15:17,220 --> 00:15:19,790 Whoops, რომ ეს ჩაწერეთ უფლება. 375 00:15:19,790 --> 00:15:23,240 ასე რომ ელექტრო მოწყობილობების ჰგავს ოპერაციული სისტემა. 376 00:15:23,240 --> 00:15:25,650 იგი კანდიდატად ამ ოპერაციული სისტემის მოუწოდა Fedora. 377 00:15:25,650 --> 00:15:27,450 და ახლა გამო ჩემი ნელი ინტერნეტის, მე 378 00:15:27,450 --> 00:15:28,260 მართლაც hosed იგი. 379 00:15:28,260 --> 00:15:31,620 ასე გაშვებული sudo yum update, როგორც ჩვენ გეტყვით, რომ გავაკეთოთ 380 00:15:31,620 --> 00:15:34,080 პრობლემა კომპლექტი, არსებითად like გაშვებული ავტომატური განახლება 381 00:15:34,080 --> 00:15:35,420 in Mac OS ან Windows. 382 00:15:35,420 --> 00:15:37,280 და მიზეზი გაშვებული ამ დროს ძალიან დაწყების 383 00:15:37,280 --> 00:15:39,640 პრობლემა კომპლექტი არის, რადგან, როდესაც ჩვენ შევქმენით ელექტრო მოწყობილობების, მე 384 00:15:39,640 --> 00:15:42,480 არევა, და მე შემთხვევით გააკეთა ყველა თქვენი პროგრამების გამოიყურებოდეს 385 00:15:42,480 --> 00:15:45,210 შავი შავი ეკრანზე, რის გამოც თქვენ არ ხედავს მათ 386 00:15:45,210 --> 00:15:45,860 იყოს. 387 00:15:45,860 --> 00:15:48,020 მაგრამ უახლესი ვერსია ელექტრო აფიქსირებს ამ. 388 00:15:48,020 --> 00:15:50,500 მე კი დაფიქსირება, რომ შესვენების ერთხელ მაქვს ინტერნეტ 389 00:15:50,500 --> 00:15:51,280 დაკავშირებადობა. 390 00:15:51,280 --> 00:15:54,630 >> ამიტომ შეთავაზებები უბრალოდ მალავს ჩემი შეცდომა, ძალიან discreetly, 391 00:15:54,630 --> 00:15:55,730 როგორც ჩანს. 392 00:15:55,730 --> 00:15:56,980 გაქვთ სხვა კითხვები? 393 00:15:59,750 --> 00:16:00,668 დიახ? 394 00:16:00,668 --> 00:16:02,012 აუდიტორია: სად მიიღოს მოდის? 395 00:16:02,012 --> 00:16:03,810 [INAUDIBLE] 396 00:16:03,810 --> 00:16:04,280 დევიდ ჯ Malan: კარგი კითხვაა. 397 00:16:04,280 --> 00:16:05,460 სად მიიღოს მოდის? 398 00:16:05,460 --> 00:16:09,390 ეს არის ლინუქსის პროგრამა, რომელიც არსებობს მრავალი წლის განმავლობაში, ხანგრძლივი 399 00:16:09,390 --> 00:16:10,570 ადრე CS50. 400 00:16:10,570 --> 00:16:12,930 და მას გააჩნია ოპერაციული სისტემის მსგავსად Fedora. 401 00:16:12,930 --> 00:16:14,830 იგი არ მოდის CS50 ბიბლიოთეკაში. 402 00:16:14,830 --> 00:16:17,560 ფაქტობრივად, მხოლოდ რამ მოდის CS50 ბიბლიოთეკა 403 00:16:17,560 --> 00:16:20,470 ჯერჯერობით, რომ ჩვენ ვხედავთ, არის GetString, GetInt, ყველა 404 00:16:20,470 --> 00:16:25,550 იმ Get ფუნქციები, და სიტყვა სიმებიანი და ზოგიერთ 405 00:16:25,550 --> 00:16:26,575 იმდენად, რამდენადაც, სიტყვა bool. 406 00:16:26,575 --> 00:16:29,180 მაგრამ ამას აჯავრებენ, რომ გარდა, როდესაც ჩვენ ჩაყვინთვის შევიდა CS50 407 00:16:29,180 --> 00:16:30,580 ელექტრო თვით. 408 00:16:30,580 --> 00:16:32,820 >> ასე რომ დიახ, კიდევ ერთი შეკითხვა აქ. 409 00:16:32,820 --> 00:16:36,636 აუდიტორია: როცა განაცხადა მიიღოს და შემდეგ buggy, რამდენად შეესაბამება 410 00:16:36,636 --> 00:16:39,980 კომპიუტერი ვიცი [INAUDIBLE]? 411 00:16:39,980 --> 00:16:40,520 დევიდ ჯ Malan: კარგი კითხვაა. 412 00:16:40,520 --> 00:16:43,830 ასე რომ, როდესაც თქვენ უბრალოდ აწარმოებს მიიღოს buggy1 ან buggy2, თუ როგორ 413 00:16:43,830 --> 00:16:45,220 ამჯამად მიიღოს ვიცი? 414 00:16:45,220 --> 00:16:49,900 ასე რომ იყოს, თუ აკრიფოთ მიიღოს buggy1, მიიღოს ეძებს 415 00:16:49,900 --> 00:16:52,330 ფაილი სახელად buggy1.c. 416 00:16:52,330 --> 00:16:55,570 და მერე ახორციელებს შესაბამისი Clang ბრძანებები, 417 00:16:55,570 --> 00:17:00,380 ამით მნიშვნელოვანი ნაგულისხმევი გამომავალი ფაილი სახელად a.out. 418 00:17:00,380 --> 00:17:03,670 რეალურად, თუ დავაკვირდებით, რა გააკეთოს, რა - 419 00:17:03,670 --> 00:17:04,839 მოდით დატოვა ამ. 420 00:17:04,839 --> 00:17:09,530 თუ დავაკვირდებით, რა გააკეთოს სინამდვილეში აკეთებს, გააკეთოს buggy2, 421 00:17:09,530 --> 00:17:10,470 უკვე დღემდე. 422 00:17:10,470 --> 00:17:13,020 ნება მომეცით, ამოიღონ rm ბრძანება, 423 00:17:13,020 --> 00:17:14,319 პროგრამა დავწერე ადრე. 424 00:17:14,319 --> 00:17:17,319 Typing Y-E-S დავადასტურო, რომ მე მინდა ამოიღონ იგი. 425 00:17:17,319 --> 00:17:20,480 თუ მე ახლა გააკეთოს, რომ ამ ძალიან დიდი ხაზი, 426 00:17:20,480 --> 00:17:22,980 არსებობს ამ ბოლო რამ აქ,-o buggy2. 427 00:17:22,980 --> 00:17:26,959 ყველა მარკა აკეთებს არის ავლით, რომ არგუმენტი, ასე ვთქვათ, რომ 428 00:17:26,959 --> 00:17:29,665 Clang, ისე, რომ მე არ უნდა აკრიფოთ იგი თავს. 429 00:17:29,665 --> 00:17:32,660 >> ყველა უფლება, ასე სწრაფი რამდენიმე ადმინისტრაციული 430 00:17:32,660 --> 00:17:33,470 განცხადებები. 431 00:17:33,470 --> 00:17:36,940 ასე რომ სექციები, რომელიც ოფიციალურად დაიწყო ამ მოდის 432 00:17:36,940 --> 00:17:38,970 კვირა, თქვენ ყოველთვის გვინდა, რათა, თუ 433 00:17:38,970 --> 00:17:40,120 თქვენ გაქვთ ერთი, ლეპტოპი. 434 00:17:40,120 --> 00:17:42,570 თუ არ აქვს ლეპტოპი, ნუ დავკავშირებოდით ჩემს მიერ 435 00:17:42,570 --> 00:17:43,580 ჩაშვების me ელ. 436 00:17:43,580 --> 00:17:44,810 და ჩვენ გაერკვნენ workflow. 437 00:17:44,810 --> 00:17:47,100 რა ზოგადად თქვენ იპოვით ნაწილში ის არის, რომ ისინი ნაწილი 438 00:17:47,100 --> 00:17:48,770 კონცეპტუალური, ნაწილი პრაქტიკული. 439 00:17:48,770 --> 00:17:52,190 ჩვენ კონკრეტულად გამოიყენოთ მონაკვეთზე კითხვები, ნაწილი 440 00:17:52,190 --> 00:17:54,110 კვირის პრობლემა კომპლექტი, ფეხით მეშვეობით ზოგიერთი 441 00:17:54,110 --> 00:17:55,820 კონცეპტუალური მასალა ლექცია. 442 00:17:55,820 --> 00:17:57,480 და ეს ყველაფერი აქტუალური პრობლემა კომპლექტი. 443 00:17:57,480 --> 00:18:00,010 და ჩვენ ასევე ჩაყვინთვის შევიდა ზოგიერთი პრაქტიკული საქმიანობა, ზოგჯერ 444 00:18:00,010 --> 00:18:02,190 რომლის საჭირო იქნება წარსადგენი, ზოგჯერ of 445 00:18:02,190 --> 00:18:02,830 რომელიც არ. 446 00:18:02,830 --> 00:18:04,630 მაგალითად, ამ პირველ კვირას, ისინი ნიშნავდა, ისევე როგორც 447 00:18:04,630 --> 00:18:05,780 გახურების exercise. 448 00:18:05,780 --> 00:18:07,800 და თქვენ ნახავთ, რომ ის პრობლემები მართლაც მხოლოდ, რომ. 449 00:18:07,800 --> 00:18:10,220 ისინი ნიშნავს, რომ საკმაოდ პატარა, მაგრამ არა აუცილებლად 450 00:18:10,220 --> 00:18:13,100 ტრივიალური პროგრამების დაწერა, რომ არ ემთხვეოდეს 451 00:18:13,100 --> 00:18:16,230 ამაღელვებელი და თავს მაგრამ კარგი შანსი 452 00:18:16,230 --> 00:18:19,620 პრაქტიკის სინტაქსი, ახალი ფუნქციები, წელს კომფორტი 453 00:18:19,620 --> 00:18:21,900 სექცია, სადაც თქვენ რამდენიმე თქვენს თანაკლასელებს წარმოადგინოს როგორც 454 00:18:21,900 --> 00:18:22,870 ისევე როგორც თქვენი TF. 455 00:18:22,870 --> 00:18:26,210 >> და ჩვენ ყველაფერს გავაკეთებთ, დროთა განმავლობაში არის გამოიყენოს ინსტრუმენტი მოუწოდა CS50 სივრცეები, 456 00:18:26,210 --> 00:18:28,940 რის ნაცვლად მხოლოდ გამოყენებით CS50 ელექტრო მოწყობილობების, თქვენ 457 00:18:28,940 --> 00:18:32,450 ნაცვლად წასვლა ვებ გვერდი ბრაუზერის, სადაც თქვენ გექნებათ 458 00:18:32,450 --> 00:18:35,610 დაწერა კოდი ბრაუზერის ფანჯარაში დროს მონაკვეთზე. 459 00:18:35,610 --> 00:18:38,240 ხოლო შემდეგ, თუ თქვენ აირჩიონ წელს, თქვენი სწავლების თანამემამულე შეიძლება მაშინ ნახოთ 460 00:18:38,240 --> 00:18:40,980 რაც არ არის თქვენ აკრეფით თქვენს ეკრანზე თქვენი ბრაუზერის 461 00:18:40,980 --> 00:18:43,930 ფანჯრის up at წინაშე კლასის, თუ არა ანონიმურად ან 462 00:18:43,930 --> 00:18:47,250 საჯაროდ, ისე, რომ მას შეუძლია შემდეგ გავლა ერთად 463 00:18:47,250 --> 00:18:50,080 თქვენი თანაკლასელები თუ რა გააკეთეთ თქვენ კარგად, რაც თქვენ არ კარგად. 464 00:18:50,080 --> 00:18:52,750 ისევ და ისევ, დანარჩენი დავრწმუნდი, რომ ყველაფერი ეს შეიძლება ლამაზად anonymized. 465 00:18:52,750 --> 00:18:54,410 მაგრამ ეს იქნება ლამაზი შესაძლებლობა გაცილებით უფრო 466 00:18:54,410 --> 00:18:56,810 interactivity ვიდრე რაღაც ლექცია საშუალებას აძლევს. 467 00:18:56,810 --> 00:18:58,910 >> იმავდროულად, ჩვენ გვექნება ეს ყველაფერი მოუწოდა super 468 00:18:58,910 --> 00:19:01,610 სექციები, რომლებიც სურვილისამებრ, მაგრამ ღიაა ყველასთვის 469 00:19:01,610 --> 00:19:04,030 კლასი, ასე რომ თქვენ შეგიძლიათ ამის გაკეთება უფრო კოლექტიურად ამისთვის 470 00:19:04,030 --> 00:19:05,190 პრობლემა მითითებული ერთი. 471 00:19:05,190 --> 00:19:06,010 აქ გრაფიკი. 472 00:19:06,010 --> 00:19:08,870 ეს ასევე გამოქვეყნდება მთავარი საათზე cs50.net. 473 00:19:08,870 --> 00:19:10,850 გაითვალისწინეთ, რომ იქ იყოს ჰაკერი სპეციფიკური 474 00:19:10,850 --> 00:19:12,430 ერთი ხვალ შუადღისას. 475 00:19:12,430 --> 00:19:15,460 და ჩვენ გადაღება ერთ დღეს და ერთი ხვალ და გამოაქვეყნოთ იმ 476 00:19:15,460 --> 00:19:16,720 ონლაინ 24 საათის განმავლობაში. 477 00:19:16,720 --> 00:19:19,370 ასე რომ, თუ თქვენ ვერ ამ ჯერ, არ ინერვიულოთ. 478 00:19:19,370 --> 00:19:22,720 ისევ და ისევ, გრაფიკი არაა ახლა cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> თვალსაზრისით sectioning თავად, თქვენ უნდა მიღებული 480 00:19:25,350 --> 00:19:28,520 ელ ავალებს თქვენ წასვლა რა თქმა უნდა ვებგვერდი იპოვოს 481 00:19:28,520 --> 00:19:29,610 თქვენი მონაკვეთზე. 482 00:19:29,610 --> 00:19:32,890 თუ ცხოვრების შეიცვალა და თქვენ უნდა შეცვალოთ თქვენი მონაკვეთზე, 483 00:19:32,890 --> 00:19:33,560 პრობლემას არ წარმოადგენს. 484 00:19:33,560 --> 00:19:37,900 დაბრუნება იმავე URL, cs50.net/section, სინგულარული, 485 00:19:37,900 --> 00:19:40,090 და თქვენ შეავსოთ მსგავსი ფორმით ასე რომ თქვენ შეგიძლიათ 486 00:19:40,090 --> 00:19:41,260 მაშინ მოგვცეს თქვენი პრეფერენციები. 487 00:19:41,260 --> 00:19:43,360 და ჩვენ მოჰყვება მიერ კვირის ბოლოს, თუ რა შეგვიძლია 488 00:19:43,360 --> 00:19:44,240 განსახლება. 489 00:19:44,240 --> 00:19:49,530 გასულ კვირას, გავიხსენოთ, რომ ჩვენ შეთავაზებული გამოყენებით CS50 საუბარი, 490 00:19:49,530 --> 00:19:51,370 კურსის დისკუსია ინსტრუმენტი, ლექციების. 491 00:19:51,370 --> 00:19:53,680 ამიტომ ჩვენ გვქონდა 40 კითხვა, რომელიც დაისვა და 492 00:19:53,680 --> 00:19:54,720 უპასუხა დროს ლექციას. 493 00:19:54,720 --> 00:19:56,280 ასე რომ, როგორც ჩანს, კარგად მუშაობს, ამიტომ ჩვენ გავაგრძელებთ 494 00:19:56,280 --> 00:19:57,180 ცდილობს ამის გაკეთება. 495 00:19:57,180 --> 00:19:59,600 თუ დროს ლექცია, თქვენ არა მარტო კომფორტისთვის ამაღლება 496 00:19:59,600 --> 00:20:00,780 თქვენი მხრივ, პრობლემას არ წარმოადგენს. 497 00:20:00,780 --> 00:20:04,640 გადავიდეთ cs50.net/discuss, პოსტ არსებობს, და ჩვენი ერთი სწავლების 498 00:20:04,640 --> 00:20:07,270 პროგრამის ყველა მონაწილე არც პასუხის გაცემა ელექტრონულად ან აიმაღლონ 499 00:20:07,270 --> 00:20:10,620 მხრივ თქვენი სახელით ანონიმურად ვთხოვო, რაც დამოკიდებულია 500 00:20:10,620 --> 00:20:12,470 on ბუნების საკითხია. 501 00:20:12,470 --> 00:20:15,000 და კუთხით კავშირი, ზოგადად psets იქნება 502 00:20:15,000 --> 00:20:16,760 დაბრუნდა ერთი კვირის ვადაში. 503 00:20:16,760 --> 00:20:19,080 იმის გამო, რომ იგი იღებს პატარა ხოლო სექციები, რათა მივაღწიოთ 504 00:20:19,080 --> 00:20:22,430 წონასწორობა, პირველი pset, 0 და 1, იქნება ცოტა 505 00:20:22,430 --> 00:20:24,130 შეფერხდა როგორც რამ დასახლდნენ. 506 00:20:24,130 --> 00:20:27,130 მაგრამ ადევნეთ თვალყური, რომ კვირის მოსვლა. 507 00:20:27,130 --> 00:20:29,750 >> ყველა უფლება, ამიტომ ნება მიბოძეთ, ჩემი სერიოზული 508 00:20:29,750 --> 00:20:31,040 ხმა მხოლოდ მომენტში. 509 00:20:31,040 --> 00:20:32,690 ასე რომ, ეს არის რეალურად საინტერესო კლიმატის იქნება 510 00:20:32,690 --> 00:20:35,210 მქონე ამ დისკუსიის, რა ყველა სხვა რამ 511 00:20:35,210 --> 00:20:37,310 მიმდინარეობს წლის კამპუსში მასთან დაკავშირებული. 512 00:20:37,310 --> 00:20:40,220 მაგრამ CS50 აქვს, რა თქმა უნდა თავისი ისტორიის ამ კონკრეტულ 513 00:20:40,220 --> 00:20:43,360 თემის წელს, ისევე როგორც ყოველ წელს, ამ თქმა უნდა, მრავალი 514 00:20:43,360 --> 00:20:46,910 წლის, Ad-დაფა უხეშად 3% კლასი. 515 00:20:46,910 --> 00:20:51,620 ეს უახლესი წელი, 2011, CS50 Ad-Boarded 35 სტუდენტი. 516 00:20:51,620 --> 00:20:54,120 ეს არ არის, ვფიქრობ, იმის გამო, არსაკმარისად ნათელი. 517 00:20:54,120 --> 00:20:56,760 გააცნობიეროს, რომ საგნის სილაბუსში, არსებობს გვერდზე 518 00:20:56,760 --> 00:20:59,020 განაცხადი ხსნიდა სადაც ხაზები. 519 00:20:59,020 --> 00:21:01,350 იმავე განაცხადი მეორდება ყოველ ერთ 520 00:21:01,350 --> 00:21:03,070 პრობლემა ადგენს გვერდზე ერთი. 521 00:21:03,070 --> 00:21:05,760 >> ასე, რომ აღარაფერი ვთქვათ ამ დღეს მართლაც მხოლოდ რათა 522 00:21:05,760 --> 00:21:07,030 FOLKS მავიწყდება ამ. 523 00:21:07,030 --> 00:21:08,080 და ჩვენ შევეცადეთ სხვადასხვა რამ. 524 00:21:08,080 --> 00:21:10,630 და რა ვიფიქრე ჩვენ ყველაფერს გააკეთებს დღეს მხოლოდ მიიღოს მომენტში 525 00:21:10,630 --> 00:21:13,830 რეალურად შევხედოთ ზოგიერთი წარსული შემთხვევები, რომ არ ამუშავება. 526 00:21:13,830 --> 00:21:16,160 იმის ნაცვლად, რომ შევინარჩუნოთ ეს როგორც ბინძური პატარა საიდუმლოებას, რეალურად 527 00:21:16,160 --> 00:21:19,170 აღნიშნავენ რა სტუდენტები გავაკეთეთ და როგორ არ გამოვლინდა 528 00:21:19,170 --> 00:21:21,630 და მართლაც, რა ყოვლისმომცველი მოტივაცია არის 529 00:21:21,630 --> 00:21:23,950 თუნდაც მქონე ამ საუბრის. 530 00:21:23,950 --> 00:21:27,060 ამრიგად, რომ განაცხადა, ხაზის არსებითად არის ამ - 531 00:21:27,060 --> 00:21:29,200 პოსტი სილაბუსი, მობრძანდით, თქვენ წახალისება, რათა 532 00:21:29,200 --> 00:21:30,210 ესაუბროს თანაკლასელები. 533 00:21:30,210 --> 00:21:31,910 სწორედ მთელი მიზნით მქონე ამ ერთობლივი 534 00:21:31,910 --> 00:21:34,470 ოფისში საათი Annenberg და წამახალისებელი ხალხს 535 00:21:34,470 --> 00:21:35,755 საბოლოო პროექტი დავიწყეთ მუშაობა. 536 00:21:35,755 --> 00:21:38,590 მაგრამ ხაზი დგება, როდესაც საქმე დროის რეალურად წერენ 537 00:21:38,590 --> 00:21:39,790 თქვენი საბოლოო გადაწყვეტა. 538 00:21:39,790 --> 00:21:42,590 ვსაუბრობ ინგლისურ, მთლიანად ჯარიმა, საუბრისას ფსევდო კოდი, 539 00:21:42,590 --> 00:21:43,400 მთლიანად ჯარიმა. 540 00:21:43,400 --> 00:21:46,340 Emailing თანაკლასელი თქვენი pset, გაქირავების მათ გამოიყურებოდეს მეტი 541 00:21:46,340 --> 00:21:48,610 ეკრანზე როგორც ხელში აგრძელებენ აკრეფით, 542 00:21:48,610 --> 00:21:50,110 მეტი ხაზი ასევე. 543 00:21:50,110 --> 00:21:52,250 ნუ ვუყურებთ სილაბუსები კერძოდ ხაზები. 544 00:21:52,250 --> 00:21:55,850 >> მაგრამ ხატვა სურათს როგორ ეს სამწუხაროდ 545 00:21:55,850 --> 00:21:58,370 სინამდვილეში, გააცნობიეროს, რომ არსებობს საიტებზე არსებობს, რომ 546 00:21:58,370 --> 00:22:01,490 აქვს გადაწყვეტილებების ამ კლასში და მრავალი სხვა კლასებს. 547 00:22:01,490 --> 00:22:04,940 ის ფაქტი, რომ თქვენ ან 3% თქვენ იცით, რომ ეს არსებობს 548 00:22:04,940 --> 00:22:07,240 იმას ნიშნავს, რომ ჩვენ ვიცით, რომ ეს არსებობს. 549 00:22:07,240 --> 00:22:09,340 იმისა, რომ არსებობს საიტების მოსწონს ეს სადაც თქვენ 550 00:22:09,340 --> 00:22:11,540 შეგიძლიათ გადაიხადოთ ვინმე მართლაც თქვენი პრობლემა კომპლექტი - ეს იყო 551 00:22:11,540 --> 00:22:13,450 ფაქტობრივი შემთხვევაში გამოვიდა შარშან. 552 00:22:13,450 --> 00:22:15,790 ეს არის ნახვა მოუწოდა odesk.com. 553 00:22:15,790 --> 00:22:20,090 და ტიმ იყო სახელით პირი აქ რომელიც გასაკრავი შესახებ 554 00:22:20,090 --> 00:22:24,580 ამ ნახვა და სთხოვა ვინმე გააკეთებს pset 7 ში 555 00:22:24,580 --> 00:22:25,570 ამ კონკრეტულ შემთხვევაში. 556 00:22:25,570 --> 00:22:28,350 ისე, odesk.com ძალიან Google-შეეძლოს, და ჩვენც ვართ 557 00:22:28,350 --> 00:22:30,310 ძალიან კარგად Googling. 558 00:22:30,310 --> 00:22:32,360 აქაც არსებობს საიტები - და ეს ერთი საკმაოდ 559 00:22:32,360 --> 00:22:34,234 ბარბაროსულ, გულწრფელად. 560 00:22:34,234 --> 00:22:38,050 [სიცილი] 561 00:22:38,050 --> 00:22:39,610 დევიდ ჯ Malan: სასაცილო რამ შესახებ ეს საიტი არის თუ 562 00:22:39,610 --> 00:22:41,970 წაიკითხოთ შესახებ გვერდზე, ისინი საუბრობენ თავიანთი კორპორატიული 563 00:22:41,970 --> 00:22:44,390 კულტურისა და როგორ სამსახური მათი ნომერ 564 00:22:44,390 --> 00:22:46,190 პრიორიტეტი, რომ დავრწმუნდეთ, რომ თქვენი დავალებები მისაღებად 565 00:22:46,190 --> 00:22:47,890 ქცეული დროულად. 566 00:22:47,890 --> 00:22:50,580 >> მაგრამ ყველა სერიოზულობა, კიდევ ერთხელ, იმ ფაქტს, რომ ამ საიტებზე 567 00:22:50,580 --> 00:22:52,910 არსებობს, გააცნობიეროს ჩვენ, ძალიან, are cognizant of 568 00:22:52,910 --> 00:22:53,730 ასეთი საიტები. 569 00:22:53,730 --> 00:22:55,890 და გადმოგცეთ გრძნობა რა ქმნის ამ ზოგადად 570 00:22:55,890 --> 00:22:58,570 იღებს, ჩვენ ზოგადად არ გვაქვს დიდი სკანდალები, სადაც ადამიანებს 571 00:22:58,570 --> 00:23:01,080 მათ თანამშრომლობს ნებისმიერ სახის მასიურ, არამედ 572 00:23:01,080 --> 00:23:04,540 ეს ამ ღამით მომენტები სისუსტე, სადაც თქვენ ასე 573 00:23:04,540 --> 00:23:07,550 გასაკეთებელი, ეს 4:00 AM, თქვენ ამოწურა, და თქვენ 574 00:23:07,550 --> 00:23:09,770 ვფიქრობ საკუთარ თავს, ისე, ნება მომეცით უბრალოდ შეხედეთ ჩემი 575 00:23:09,770 --> 00:23:11,770 roommate ან ჩემი მეგობრის კოდი ან მოსწონს. 576 00:23:11,770 --> 00:23:14,800 და მანიფესტაციების ამ სამწუხაროდ ჩართვა სტუდენტური 577 00:23:14,800 --> 00:23:17,640 წარდგენის მსგავსი რამ და სტუდენტური B წარდგენის 578 00:23:17,640 --> 00:23:20,370 მსგავსი რამ, რაც, რა თქმა უნდა, ამ კომპიუტერში 579 00:23:20,370 --> 00:23:23,830 მეცნიერების კლასის, არის საოცრად მარტივი კომპიუტერული მეცნიერები 580 00:23:23,830 --> 00:23:25,690 შესამჩნევია, პროგრამული. 581 00:23:25,690 --> 00:23:28,410 ეს არის კიდევ ერთი საერთო პარადიგმა, სადაც თქვენ სახის 582 00:23:28,410 --> 00:23:31,010 მუშაობს ერთად ვინმე, იქნებ საუბარს წელს 583 00:23:31,010 --> 00:23:32,360 ინგლისური, მხოლოდ ჯარიმა, pseudocode. 584 00:23:32,360 --> 00:23:35,080 მაგრამ შემდეგ საქმე ახლა რეალურად წარმოადგინოს და psets 585 00:23:35,080 --> 00:23:37,910 უბრალოდ გაცვალეს ფოსტით, ან Dropbox ან მოსწონს. 586 00:23:37,910 --> 00:23:41,120 მაგრამ მცდელობა, რათა ის ნაკლებად აშკარა, რომ ეს არის 587 00:23:41,120 --> 00:23:44,830 რა მოხდა, მაშინ ეს არის რა წარმოდგენილი. 588 00:23:44,830 --> 00:23:47,880 ეს, ძალიან, არ მოგზაურობის up კარგად წერილობითი ცალი 589 00:23:47,880 --> 00:23:50,360 პროგრამული უზრუნველყოფა როგორც ჩვენ რეალურად აღმოაჩინოს 590 00:23:50,360 --> 00:23:51,280 ასეთი რამ. 591 00:23:51,280 --> 00:23:53,760 და მართლაც, რას ვაკეთებთ არის პერსპექტივაში პროგრამული უზრუნველყოფა, რომ ადარებს ყველა 592 00:23:53,760 --> 00:23:55,540 წლევანდელი წარდგინება წინააღმდეგ ყველა წარსული წლის 593 00:23:55,540 --> 00:23:57,380 წარდგინება, წინააღმდეგ ყველაფერი ჩვენ ნაპოვნი 594 00:23:57,380 --> 00:24:00,060 ინტერნეტი, წინააღმდეგ თითოეული ვაკანსიისთვის ნახვა out არსებობს. 595 00:24:00,060 --> 00:24:01,710 ეს ყველაფერი ძალიან ავტომატური. 596 00:24:01,710 --> 00:24:05,665 ასე რომ, ჩვენ ამის გაკეთება ნამდვილად დიდი სამართლიანობისა to 97%, რომლებიც 597 00:24:05,665 --> 00:24:07,760 ნამდვილად მუშაობს მათი ვირები off ამ და სხვა 598 00:24:07,760 --> 00:24:11,530 კლასები და აყენებს ყველა იმ ძალისხმევას, რათა მუშაობა 599 00:24:11,530 --> 00:24:13,030 ისინი საბოლოოდ წარუდგინოს არის საკუთარი. 600 00:24:13,030 --> 00:24:14,220 მე შეიძლება ადამიანმა საუკუნოვანი. 601 00:24:14,220 --> 00:24:16,030 >> ეს არის მხოლოდ ერთი მუჭა შარშანდელი შემთხვევა. 602 00:24:16,030 --> 00:24:19,350 რამდენიმე სტუდენტი წარმოდგენილი ამ ფაილების იდენტურად ამისთვის pset 2, 603 00:24:19,350 --> 00:24:22,460 pset 3, 4 pset, pset 5, 6 pset, pset 9. 604 00:24:22,460 --> 00:24:26,360 ამ შემთხვევაში, ეს იყო ინტელექტუალური 0 და გასულ წელს, სადაც ორი 605 00:24:26,360 --> 00:24:29,570 სტუდენტები წარმოდგენილი იდენტურად წაიკითხავს შორის ბევრი 606 00:24:29,570 --> 00:24:32,210 სხვები, "მოთხოვნით ტიპის -" dot, dot, dot. 607 00:24:32,210 --> 00:24:34,530 ასე კი კლასი 600 საერთოდ ამოვიცნობთ ამ 608 00:24:34,530 --> 00:24:36,310 on წარმოდგენილი ვიქტორინებში. 609 00:24:36,310 --> 00:24:39,080 ასე მოკლედ, ამ - გულწრფელად, I Hate მქონე ამ სახის 610 00:24:39,080 --> 00:24:41,300 საუბარი - მაგრამ ეს მართლაც მიზანმიმართული ძალისხმევით 611 00:24:41,300 --> 00:24:43,540 ამ წელიწადში ცდილობენ შეწყობას ქვემოთ რომ ნომერი. 612 00:24:43,540 --> 00:24:45,650 იმის გამო, რომ მიუხედავად იმისა, რომ ჩვენ ვამბობთ, ასეთი რამ ყველა 613 00:24:45,650 --> 00:24:48,100 წელს, ვფიქრობ, რეალობა, რომელმაც სახლობდნენ მასზე რამდენიმე 614 00:24:48,100 --> 00:24:50,800 მეტი წამი ვიდრე ჩვეულებრივი და რეალურად მხოლოდ მიუთითებს 615 00:24:50,800 --> 00:24:53,600 რომ ის, რაც ალბათ მოსწონს, eh, არ ასეთი დიდი გარიგება, მინიმუმ 616 00:24:53,600 --> 00:24:56,390 ვფიქრობ თავში ამ კონკრეტულ მომენტში, როგორც სამართლიანობისა to 617 00:24:56,390 --> 00:25:00,100 თავის და თქვენი თანაკლასელები აქ. 618 00:25:00,100 --> 00:25:02,480 ასე რომ, თუ ოდესმე აქვს რაიმე შეკითხვები, სადაც ხაზი 619 00:25:02,480 --> 00:25:04,290 არის, გთხოვთ მხოლოდ მივაწვდინოთ პირადად ჩემთვის. 620 00:25:04,290 --> 00:25:07,190 მაგრამ პასუხი ყოველთვის, სრულიად ხაზგასმით ზე 621 00:25:07,190 --> 00:25:09,090 ბოლო წუთს, ნაღდი ფულის გვიან დღეში. 622 00:25:09,090 --> 00:25:11,080 ან თუ ეს საკითხი არ მქონე ნებისმიერი გვიან დღით, 623 00:25:11,080 --> 00:25:12,900 პატიოსნად, ელ პირადად ჩემთვის. 624 00:25:12,900 --> 00:25:14,110 ჩვენ გაერკვნენ რაღაც გარეთ. 625 00:25:14,110 --> 00:25:17,480 გთხოვთ არ დააყენოს თქვენი დრო აქ ჰარვარდის რისკის ქვეშ. 626 00:25:17,480 --> 00:25:18,570 >> ახლა ვფიქრობდი, ჩვენ უნდა lighten განწყობა, ამიტომ 627 00:25:18,570 --> 00:25:20,264 შედის ამ როგორც შემდეგი slide. 628 00:25:20,264 --> 00:25:22,770 [სიცილი] 629 00:25:22,770 --> 00:25:23,630 დევიდ ჯ Malan: ვებგვერდი დიდი. 630 00:25:23,630 --> 00:25:24,820 მე რეალურად მიიღო პატარა სცილდება. 631 00:25:24,820 --> 00:25:26,330 არსებობს ეს ერთი. 632 00:25:26,330 --> 00:25:29,590 და მაშინ ეს იყო საოცარი. 633 00:25:29,590 --> 00:25:35,190 Okay, ასე ვფიქრობ, რომ kitten გვიან ღამით მიღებისას 634 00:25:35,190 --> 00:25:36,040 იმ გადაწყვეტილებებს. 635 00:25:36,040 --> 00:25:40,110 ყველა უფლება, ასე რომ თავში მეტი გართობა და ნაკლებად მძიმე პერსონალის, ისევე როგორც 636 00:25:40,110 --> 00:25:40,780 პირობები. 637 00:25:40,780 --> 00:25:43,900 >> ყველა უფლება, ასე რომ ჩვენ ვისაუბრეთ მოკლედ ამ. 638 00:25:43,900 --> 00:25:46,080 ეს არის ის, რასაც ალბათ საკმაოდ ნაცნობი საწყისი 639 00:25:46,080 --> 00:25:47,260 სამყაროში Scratch. 640 00:25:47,260 --> 00:25:49,860 და სამყაროში Scratch, ჩვენ გვაქვს ამ საჭიროებას ხან 641 00:25:49,860 --> 00:25:51,110 წასვლა მიიღოს ჩანგლები საგზაო. 642 00:25:51,110 --> 00:25:54,840 ან გავაკეთოთ ამა თუ იმ ან ამ სხვა რამ აქ. 643 00:25:54,840 --> 00:25:58,990 და როდესაც ჩვენ გვინდა ამის გაკეთება, ჩვენ შეგვიძლია გამოვიყენოთ, დო ახლა, ამ შემთხვევაში 644 00:25:58,990 --> 00:26:00,860 სხვაგან აშენება. 645 00:26:00,860 --> 00:26:06,420 და მერე აქ გვაქვს ლოგიკური გამონათქვამები. 646 00:26:06,420 --> 00:26:09,260 მაგალითად, ლოგიკური გამონათქვამები, ჩვენ შეუძლია 647 00:26:09,260 --> 00:26:12,260 მათ ერთად, იმ გაგებით, რომ ჩვენ გვაქვს ეს მდგომარეობა ან 648 00:26:12,260 --> 00:26:13,200 რომ მდგომარეობა. 649 00:26:13,200 --> 00:26:15,100 ჩვენ შეგვიძლია და მათი ერთად, იმ გაგებით, რომ ჩვენ გვინდა 650 00:26:15,100 --> 00:26:17,710 შეამოწმოს ამ მდგომარეობაში და რომ მდგომარეობა. 651 00:26:17,710 --> 00:26:22,440 და აქ ჩვენ გვაქვს შეცვლა განაცხადი არის, რაც ასე არ არის 652 00:26:22,440 --> 00:26:26,040 მსგავსი syntactically იმ სახის პირობები, მაგრამ ეს 653 00:26:26,040 --> 00:26:30,160 საშუალებას გვაძლევს გავაკეთოთ ეკვივალენტს, თუ სხვაგან, თუ სხვაგან, თუ სხვაგან 654 00:26:30,160 --> 00:26:34,990 თუ, და მოსწონს უბრალოდ enumerating მათ კონკრეტულ შემთხვევაში 655 00:26:34,990 --> 00:26:36,670 მიერ კონკრეტულ შემთხვევაში. 656 00:26:36,670 --> 00:26:38,370 ამიტომ, ჩვენ ვნახეთ იმ ბოლო დროს. 657 00:26:38,370 --> 00:26:40,430 და შემდეგ ჩვენ დავიწყეთ ეხება რამ, როგორიცაა მარყუჟების. 658 00:26:40,430 --> 00:26:42,070 ჩვენ ვნახეთ ერთი ასეთი მხოლოდ მომენტში წინ. 659 00:26:42,070 --> 00:26:44,180 მაგრამ არსებობს ამ სხვა looping აშენებს. 660 00:26:44,180 --> 00:26:46,370 >> მაგალითად, ამ ერთი აქ. 661 00:26:46,370 --> 00:26:50,140 ასე რომ სანამ (მდგომარეობა), ამის გაკეთება რამ ისევ და ისევ. 662 00:26:50,140 --> 00:26:53,070 ასე რომ ფუნდამენტურად, რა ჩანს სხვადასხვა შორის ამ 663 00:26:53,070 --> 00:26:55,760 ამისთვის მარყუჟის და ამ ხოლო loop აქ? 664 00:27:00,810 --> 00:27:05,045 ამ მარყუჟის და ამ ხოლო loop. 665 00:27:05,045 --> 00:27:07,840 ჰო? 666 00:27:07,840 --> 00:27:08,800 რა არის ეს? 667 00:27:08,800 --> 00:27:10,050 აუდიტორია: [INAUDIBLE]. 668 00:27:14,632 --> 00:27:15,120 დევიდ ჯ Malan: კარგი. 669 00:27:15,120 --> 00:27:17,130 ასე ხოლო ამისთვის loop მდგომარეობა, არსებობს ნათლად 670 00:27:17,130 --> 00:27:17,940 უფრო სინტაქსს. 671 00:27:17,940 --> 00:27:20,560 არსებობს ამ ინიციალიზაციისას, არსებობს ამ განახლება. 672 00:27:20,560 --> 00:27:23,820 In ხოლო მარყუჟის, არსებობს მხოლოდ ამ მდგომარეობაში. 673 00:27:23,820 --> 00:27:26,630 ასე რომ, როგორც ჩანს, ეს პატარა pared ქვემოთ წინააღმდეგ ამისთვის 674 00:27:26,630 --> 00:27:28,770 მარყუჟის, რაც იმას ნიშნავს, თუ ჩვენ გვინდა ცვლადები და გვინდა 675 00:27:28,770 --> 00:27:30,800 ჰქონდეს incrementation, ჩვენ რეალურად უნდა 676 00:27:30,800 --> 00:27:32,500 ამის გაკეთება რამ საკუთარ თავს. 677 00:27:32,500 --> 00:27:34,420 >> ნება მომეცით, წავიდეთ წინ და ქმნის gedit. 678 00:27:34,420 --> 00:27:36,320 ნება მომეცით გადართოთ მეტი ელექტრო მოწყობილობების. 679 00:27:36,320 --> 00:27:38,110 და მოდით უბრალოდ სწრაფი პატარა მაგალითი, რომ 680 00:27:38,110 --> 00:27:40,550 განასხვავებს ერთი ამ მეორე. 681 00:27:40,550 --> 00:27:42,490 და უკან ჩემი აზრით აქ, რაც მინდა აღვნიშნო ერთი რამ. 682 00:27:42,490 --> 00:27:44,120 მე კონკრეტულად აღნიშნულ სახელი ტიმ. 683 00:27:44,120 --> 00:27:47,740 ტიმ იყო რეალურად ვინმე რომ სტუდენტი შეეცადა გავაკეთოთ 684 00:27:47,740 --> 00:27:48,680 მათი საშინაო დავალება მათთვის. 685 00:27:48,680 --> 00:27:51,280 ჩვენ არ გვქონდა ტიმ ამ კონკრეტულ მონაკვეთზე. 686 00:27:51,280 --> 00:27:53,690 ასე რომ გააცნობიეროს, მცირეოდენ მე გამხელა სტუდენტი, ეს არ იყო სტუდენტი. 687 00:27:53,690 --> 00:27:55,720 ეს იყო შემთხვევითი პირი ინტერნეტში საქმეს აკეთებენ 688 00:27:55,720 --> 00:27:57,180 მარიონეტული შარშან. 689 00:27:57,180 --> 00:27:58,670 ამიტომ ჩვენ, რომ, ძალიან. 690 00:27:58,670 --> 00:28:00,630 ასე რომ, ამ შემთხვევაში აქ, ნება მომეცით წავიდეთ წინ და 691 00:28:00,630 --> 00:28:02,810 გახსენით ახალი ფაილი. 692 00:28:02,810 --> 00:28:04,800 ფაილი, ახალი. 693 00:28:04,800 --> 00:28:06,050 ეს მაძლევს tab აქ. 694 00:28:06,050 --> 00:28:09,940 ნება მომეცით წავიდეთ წინ და შეინახეთ loop.c. 695 00:28:09,940 --> 00:28:11,810 ნება მომეცით წასვლა და დააჭირეთ Save. 696 00:28:11,810 --> 00:28:15,340 და შემდეგ ქვევით აქ, მოდით წავიდეთ წინ და დავიწყოთ წერა 697 00:28:15,340 --> 00:28:16,605 # Include . 698 00:28:19,116 --> 00:28:20,520 ნება მომეცით zoom სისტემაში 699 00:28:20,520 --> 00:28:23,410 ახლა ჩვენ გავაკეთებთ int ძირითადი (void). 700 00:28:23,410 --> 00:28:30,020 ახლა ნება მომეცით წავიდეთ წინ და გააკეთოს (int i = 0; i < 701 00:28:30,020 --> 00:28:33,480 OH, 10; i + +). 702 00:28:33,480 --> 00:28:36,620 და ახლა მე ვაპირებ წავიდეთ წინ და ბეჭდვა ვარსკვლავი, რომ მე 703 00:28:36,620 --> 00:28:37,890 გააკეთეთ ადრე. 704 00:28:37,890 --> 00:28:39,390 და შემდეგ დასასრულს ამ პროგრამის ჩვენ უბრალოდ აპირებს 705 00:28:39,390 --> 00:28:41,130 ბეჭდვა ახალი ხაზი, უბრალოდ, ისე, რომ ჩემი სწრაფი 706 00:28:41,130 --> 00:28:42,470 არ გამოიყურება ყველა ბინძურ. 707 00:28:42,470 --> 00:28:45,170 დაბრუნებას 0. 708 00:28:45,170 --> 00:28:47,610 როგორც ჩანს syntactically სწორი? 709 00:28:47,610 --> 00:28:48,040 ჯერჯერობით. 710 00:28:48,040 --> 00:28:48,560 ასე რომ ვნახოთ. 711 00:28:48,560 --> 00:28:51,290 >> ნება მომეცით, zoom out, წასვლას ჩემი ტერმინალის ფანჯარაში. 712 00:28:51,290 --> 00:28:54,570 და ნება მომეცით წავიდეთ წინ და აწარმოებს მარყუჟის, რადგან მე უწოდა 713 00:28:54,570 --> 00:28:55,690 რამ loop.c. 714 00:28:55,690 --> 00:28:56,780 ასე რომ მარყუჟი. 715 00:28:56,780 --> 00:28:57,840 როგორც ჩანს, კომპილაციის OK. 716 00:28:57,840 --> 00:29:00,210 ნება მომეცით აწარმოებს მარყუჟის და ახლა შეიყვანეთ. 717 00:29:00,210 --> 00:29:01,820 და როგორც ჩანს, არ დაბეჭდილი 10 ვარსკვლავს. 718 00:29:01,820 --> 00:29:03,780 მოდით უბრალოდ კონვერტირება ეს ხოლო მარყუჟი და ვნახოთ რა 719 00:29:03,780 --> 00:29:05,220 სახის საკითხებზე ჩვენ მოგზაურობა დასრულდა. 720 00:29:05,220 --> 00:29:11,290 ასე რომ ნაცვლად ამისა, ნება მომეცით წავიდეს აქ და ამბობენ, ხოლო მე არის 721 00:29:11,290 --> 00:29:12,760 არანაკლებ 10 - 722 00:29:12,760 --> 00:29:14,910 ნება მომეცით დავაღწიოთ ამისთვის loop. 723 00:29:14,910 --> 00:29:17,170 OK, ასე რომ ჩვენ გვაქვს რამდენიმე პრობლემები უკვე. 724 00:29:17,170 --> 00:29:21,110 ასე რომ მდგომარეობა იგივეა, მაგრამ მე აშკარად აკლია 725 00:29:21,110 --> 00:29:21,680 ინიციალიზაციისას. 726 00:29:21,680 --> 00:29:23,840 მე დაკარგული incrementation. 727 00:29:23,840 --> 00:29:28,020 მერე რა უნდა შემდგენელი სავარაუდოდ მითხრათ როცა ცდილობენ 728 00:29:28,020 --> 00:29:29,170 შეადგინონ ამ პროგრამის? 729 00:29:29,170 --> 00:29:29,666 ჰო? 730 00:29:29,666 --> 00:29:31,154 აუდიტორია: [INAUDIBLE]. 731 00:29:31,154 --> 00:29:31,650 >> დევიდ ჯ Malan: კარგი. 732 00:29:31,650 --> 00:29:34,180 ამიტომ აპირებს ამბობენ რაღაც გამოუცხადებელ - ამ 733 00:29:34,180 --> 00:29:35,280 შემთხვევაში, ცვლადი მე. 734 00:29:35,280 --> 00:29:37,980 მართლაც, გამოიყენოთ გამოუცხადებელი იდენტიფიკატორი მე. 735 00:29:37,980 --> 00:29:40,960 და ა.შ. ეს არის განსხვავებით ენებს, როგორიცაა PHP და 736 00:29:40,960 --> 00:29:43,120 Python და Ruby, რომელთანაც ზოგიერთ თქვენგანს შეიძლება იყოს ნაცნობი, 737 00:29:43,120 --> 00:29:44,820 სადაც შეგიძლიათ მხოლოდ სახის დაწყება გამოყენებით ცვლადები 738 00:29:44,820 --> 00:29:47,420 willy-nilly და არ ინერვიულოთ შესახებ გამოცხადების მათ 739 00:29:47,420 --> 00:29:48,560 ცალსახად ყოველთვის. 740 00:29:48,560 --> 00:29:51,770 In C და ენებს, როგორიცაა Java და C + +, თქვენ უნდა იყოს 741 00:29:51,770 --> 00:29:53,020 სუპერ სიცოცხლისუნარიანობა. 742 00:29:53,020 --> 00:29:55,760 და თუ გინდათ ცვლადში i, თქვენ უნდა მითხრათ 743 00:29:55,760 --> 00:29:57,360 რა სახის ცვლადი ეს. 744 00:29:57,360 --> 00:29:59,360 ამიტომ, ჩვენ ვაპირებთ აქვს დაფიქსირება ამ შემდეგნაირად. 745 00:29:59,360 --> 00:30:05,510 მე ვაპირებ უნდა ახვიდეთ აქ და ტიპი int i; ამიტომ, 746 00:30:05,510 --> 00:30:07,860 მე განაცხადა ცვლადში მე. 747 00:30:07,860 --> 00:30:09,180 ახლა, მე გამოტოვებენ ერთი ნაბიჯია. 748 00:30:09,180 --> 00:30:11,340 მე აშკარად არ ინიციალიზდება, მაგრამ ვნახოთ, თუ რომ 749 00:30:11,340 --> 00:30:13,650 მაინც მარკისა Clang გაჩერება პრეტენზიებს. 750 00:30:13,650 --> 00:30:15,770 ნება მომეცით, რიმეიკი ამ პროგრამის. 751 00:30:15,770 --> 00:30:16,770 >> ყველა უფლება, ახლა კი მხოლოდ უკმაყოფილო 752 00:30:16,770 --> 00:30:17,870 სხვა მიზეზით. 753 00:30:17,870 --> 00:30:21,130 "Variable" მე ", რომელიც uninitialized როდესაც გამოიყენება აქ." ყველა უფლება, ისე 754 00:30:21,130 --> 00:30:22,340 რომ საკმაოდ ცხადი. 755 00:30:22,340 --> 00:30:25,510 ინიციალიზაცია მხოლოდ იმას ნიშნავს, თუ მითითებული ტოლი ღირებულების. 756 00:30:25,510 --> 00:30:30,820 და ჩვენ არ კეთდება, რომ, ნება მომეცით, ვცდილობთ შეადგენს 0. 757 00:30:30,820 --> 00:30:35,030 ახლა მოდით ვეცადოთ ეს კიდევ ერთხელ და ხელახლა აწარმოებს Clang. 758 00:30:35,030 --> 00:30:36,140 შედგენილი ამ დროს. 759 00:30:36,140 --> 00:30:37,210 და მე უნდა გაუშვათ. 760 00:30:37,210 --> 00:30:43,120 მაგრამ დიდი წლის უსასრულო ციკლი, რადგან მე ვაკეთებ 761 00:30:43,120 --> 00:30:45,530 ინიციალიზაციისას, მე ვაკეთებ მდგომარეობა, მაგრამ მე არასოდეს კეთდება 762 00:30:45,530 --> 00:30:47,030 ნებისმიერი სახის incrementation. 763 00:30:47,030 --> 00:30:48,780 ასე როგორ გავაკეთო incrementation? 764 00:30:48,780 --> 00:30:51,170 ისე, წელს, ხოლო მარყუჟის, ეს იგრძნობა მე ვაპირებ აქვს 765 00:30:51,170 --> 00:30:54,180 ამის შიგნით მარყუჟის, რადგან ჰგავს პირველი 766 00:30:54,180 --> 00:30:56,570 კვირის მაგალითები კეთების looping აშენებს, ისევე, როგორც 767 00:30:56,570 --> 00:30:59,040 წინდები და თვითმმართველობის დათვლა, ჩვენ უნდა გაეკეთებინათ 768 00:30:59,040 --> 00:31:01,550 რაღაც ეტაპზე ბოლომდე, ისევე როგორც დაბრუნდეს შემდეგი ხაზი. 769 00:31:01,550 --> 00:31:05,040 რა მოხდება, თუ წავიდეთ წინ და ამისათვის მე + + აქ? 770 00:31:05,040 --> 00:31:06,030 მოდით კი არ კომპილირდება ამ. 771 00:31:06,030 --> 00:31:06,890 Catch me უკვე. 772 00:31:06,890 --> 00:31:09,704 რა არის არასწორი აქ? 773 00:31:09,704 --> 00:31:10,690 აუდიტორია: [INAUDIBLE]. 774 00:31:10,690 --> 00:31:11,770 >> დევიდ ჯ Malan: ასე რომ ნამდვილად არ int. 775 00:31:11,770 --> 00:31:13,080 ეს მე. 776 00:31:13,080 --> 00:31:15,110 და curly braces, ისევე როგორც ადრე, 777 00:31:15,110 --> 00:31:16,800 წანაცვლება არ არის საკმარისი. 778 00:31:16,800 --> 00:31:18,410 ახლა მე ამ მშენებლობას. 779 00:31:18,410 --> 00:31:21,780 რადგან მე ნაკლებია 10, ბეჭდვა ვარსკვლავი, 780 00:31:21,780 --> 00:31:23,220 მაშინ ნამატი მე. 781 00:31:23,220 --> 00:31:25,680 და გზა ხოლო loop იმაშიც მდგომარეობს, რომ, როგორც კი თქვენ მოხვდა 782 00:31:25,680 --> 00:31:29,630 ბოლოში loop, რომელიც ამ შემთხვევაში ჰგავს ხაზი 10, 783 00:31:29,630 --> 00:31:32,880 იგი აპირებს დაბრუნდეს ხაზის 6, სადაც წერტილი 784 00:31:32,880 --> 00:31:34,400 მდგომარეობა მოწმდება ერთხელ. 785 00:31:34,400 --> 00:31:37,500 და თუ ჯერ კიდევ არანაკლებ 10, ჩვენ ყველაფერს გავაკეთებთ ხაზები 8 და 786 00:31:37,500 --> 00:31:41,250 შემდეგ 9, შემდეგ ჩვენ მოხვდა 10 და დაბრუნდეს 6, ერთხელ და 787 00:31:41,250 --> 00:31:45,580 ისევ და ისევ და ისევ, ასე რომ სანამ მე ნაკლებია 10. 788 00:31:45,580 --> 00:31:47,860 მოდით ხელახლა აწარმოებს გააკეთოს აქ. 789 00:31:47,860 --> 00:31:48,940 >> Okay, ჩვენ შედგენილი okay. 790 00:31:48,940 --> 00:31:50,300 ნება მომეცით ხელახლა პერსპექტივაში loop. 791 00:31:50,300 --> 00:31:52,620 ახლა უკვე რეალურად ჩანს მუშაობა. 792 00:31:52,620 --> 00:31:55,100 ამიტომ pluses და minuses აქ? 793 00:31:55,100 --> 00:31:58,910 ისე, ჯერჯერობით იქ რეალურად არ მთელი plo - 794 00:31:58,910 --> 00:31:59,420 ასე cute. 795 00:31:59,420 --> 00:32:01,870 ყველა უფლება, რომ იყო - ah, რომ იყო უბედური შემთხვევა. 796 00:32:01,870 --> 00:32:05,200 ყველა უფლება, მოდით დავუბრუნდეთ ამისთვის loop. 797 00:32:05,200 --> 00:32:07,530 ასე რომ მარყუჟების კი კარგია რადგან ისინი super სიცოცხლისუნარიანობა. 798 00:32:07,530 --> 00:32:09,720 და მიუხედავად იმისა, ისინი პატარა clunky დაწერა, ეს 799 00:32:09,720 --> 00:32:11,500 ძალიან ძლიერი და ის საშუალებას გაძლევთ ამის გაკეთება 800 00:32:11,500 --> 00:32:12,980 მრავალჯერადი რამ ერთბაშად. 801 00:32:12,980 --> 00:32:16,240 მიუხედავად იმისა, მარყუჟების ვერ ვიტყვით აქვს უზარმაზარი ღირებულების მხოლოდ 802 00:32:16,240 --> 00:32:18,500 ჯერჯერობით, რადგან ეს იგრძნობა ჩვენ უბრალოდ უნდა გავაკეთოთ უფრო მეტი მუშაობა. 803 00:32:18,500 --> 00:32:20,670 ჩვენ უნდა დააყენოს ინიციალიზაციისას აქ, 804 00:32:20,670 --> 00:32:23,480 განაახლოთ ქვემოთ აქ, და ჩვენ უნდა გვახსოვდეს, რომ ყველაფერი, რომ. 805 00:32:23,480 --> 00:32:26,260 ამიტომ, ჩვენ დავინახავთ, დროულად რომ სანამ მარყუჟების რეალურად lend 806 00:32:26,260 --> 00:32:29,380 საკუთარ თავს მხოლოდ სხვადასხვა კონტექსტში, სხვადასხვა მონაცემები 807 00:32:29,380 --> 00:32:33,900 სტრუქტურები, როგორიცაა სიები და hash მაგიდები, რამ ჩვენ მისაღებად 808 00:32:33,900 --> 00:32:34,970 შუა რიცხვებში სემესტრში. 809 00:32:34,970 --> 00:32:37,900 მაგრამ ახლა, ვიცით, რომ არსებობს ამ მესამე ტიპის ცნობილია, როგორც do- 810 00:32:37,900 --> 00:32:38,480 ხოლო loop. 811 00:32:38,480 --> 00:32:39,540 ჩვენ ვხედავთ ამ მოკლედ. 812 00:32:39,540 --> 00:32:41,830 და ეს შეიძლება იყოს სუპერ გამოსადეგი ერთად pset 1. 813 00:32:41,830 --> 00:32:45,570 ნებისმიერ დროს გსურთ რაღაც და შემდეგ შეამოწმეთ თუ 814 00:32:45,570 --> 00:32:48,940 მომხმარებლის თანამშრომლობდა, და თუ არ, ამას კიდევ ერთხელ, do- 815 00:32:48,940 --> 00:32:51,460 ხოლო loop lends თავად ისეთი ლოგიკა. 816 00:32:51,460 --> 00:32:55,640 რადგან შეკვეთით ზემოდან ქვედა აქ ვარაუდობს, 817 00:32:55,640 --> 00:32:57,750 არ სიტყვასიტყვით ნიშნავს ამის გაკეთება. 818 00:32:57,750 --> 00:32:59,830 და ეს კიდევ ერთხელ და ისევ, თუ რა შეიძლება, რომ იყოს? 819 00:32:59,830 --> 00:33:03,000 შესაძლოა ეს იმას ნიშნავს მოუწოდებდა GetInt ან GetString და შემდეგ 820 00:33:03,000 --> 00:33:05,830 შემოწმების ღირებულება GetInt ან GetString და შემდეგ yelling 821 00:33:05,830 --> 00:33:08,260 ზე მომხმარებლის თუ ისინი არ თანამშრომლობდა მიერ სთხოვს 822 00:33:08,260 --> 00:33:10,100 ისევ და ისევ და ისევ. 823 00:33:10,100 --> 00:33:11,730 სადაც გსურთ რაიმეს ერთხელ, 824 00:33:11,730 --> 00:33:13,210 შემდეგ შეამოწმეთ ზოგიერთი მდგომარეობა. 825 00:33:13,210 --> 00:33:14,110 >> მოდით ცდილობენ ამ. 826 00:33:14,110 --> 00:33:17,130 ნება მომეცით რეალურად შეცვალოს ეს ახლა do-ხოლო loop. 827 00:33:17,130 --> 00:33:18,830 და მე ვაპირებ წავიდეთ წინ და ნუ შემდეგ. 828 00:33:18,830 --> 00:33:21,830 ასე რომ შემდეგ. 829 00:33:21,830 --> 00:33:26,870 მოდით int i = GetInt (), მაგრამ მოდით პირველ გითხრათ მომხმარებლის 830 00:33:26,870 --> 00:33:27,410 რა უნდა გააკეთოს. 831 00:33:27,410 --> 00:33:29,050 ასე რომ ცოტა განსხვავებული ამ დროს. 832 00:33:29,050 --> 00:33:31,270 "მომეცი int". 833 00:33:31,270 --> 00:33:32,910 ამიტომ მე გამოიყენოთ printf რომ. 834 00:33:32,910 --> 00:33:35,740 და ახლა მე ვაპირებ დაცემას აქ, და მე ვაპირებ ამის გაკეთებას 835 00:33:35,740 --> 00:33:41,520 ხოლო მე არის, ასე ვთქვათ, მეტი - 836 00:33:41,520 --> 00:33:47,540 ვნახოთ, მე არის, ვთქვათ, ნაკლები 0, ან მე არის 837 00:33:47,540 --> 00:33:48,730 მეტი 10. 838 00:33:48,730 --> 00:33:51,810 სხვა სიტყვებით, მინდა ნომერი 1 დან 9, უბრალოდ 839 00:33:51,810 --> 00:33:52,720 თვითნებურად. 840 00:33:52,720 --> 00:33:55,290 ამიტომ მე გამოყენებით კომბინირებული ლოგიკური გამოხატვის აქ 841 00:33:55,290 --> 00:33:59,930 დარწმუნდით, რომ მე ნაკლებია, ვიდრე 0 ან მეტი 10, რომელშიც 842 00:33:59,930 --> 00:34:02,530 შემთხვევაში გავაკეთებ ამ loop აქ ერთხელ. 843 00:34:02,530 --> 00:34:04,400 ასე რომ კიდევ ერთხელ, ამის გაკეთება - 844 00:34:04,400 --> 00:34:08,480 ხოლო მე ნაკლებია, ვიდრე 0 ან მე მეტია 10. 845 00:34:08,480 --> 00:34:11,440 >> ახლა მოდით წავიდეთ წინ და ამისათვის კიდევ ერთხელ ჩვენ გავაკეთეთ, რომ. 846 00:34:11,440 --> 00:34:13,270 მოდით უბრალოდ სწრაფი საღი აზრის ქვითარი. 847 00:34:13,270 --> 00:34:18,929 printf ("მადლობა, მე% d", მე). 848 00:34:18,929 --> 00:34:21,350 ასე რომ, ეს მარტივი პროგრამა სთხოვს მომხმარებლის ამისთვის int, 849 00:34:21,350 --> 00:34:24,000 ხდის დარწმუნებული ის ფარგლებში გარკვეული სპექტრი, 1 დან 9 ინკლუზიური, 850 00:34:24,000 --> 00:34:26,280 და მაშინ მადლობას უხდის მომხმარებლის მიერ ახსენებს მათ, რაც მათ მხოლოდ 851 00:34:26,280 --> 00:34:27,940 აკრეფილი, ისევე როგორც პატარა საღი აზრის ქვითარი. 852 00:34:27,940 --> 00:34:30,659 მაგრამ ვნახოთ, თუ ამ მუშაობს განკუთვნილი. 853 00:34:30,659 --> 00:34:34,533 ნება მომეცით წასვლა ხელმძღვანელი ქვემოთ აქ და ხელახლა აწარმოებს გააკეთოს მარყუჟი. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "გამოიყენე გამოუცხადებელი იდენტიფიკატორი 'i'". რომ უცნაურია. 856 00:34:38,600 --> 00:34:41,509 ვფიქრობდი, ჩვენ გადაწყდეს, რომ. 857 00:34:45,489 --> 00:34:47,560 იგივე სიმპტომი არამედ სხვადასხვა კოდი. 858 00:34:47,560 --> 00:34:47,899 ჰო? 859 00:34:47,899 --> 00:34:50,191 აუდიტორია: [INAUDIBLE] შიგნით ორი, ჩვენ უნდა 860 00:34:50,191 --> 00:34:52,639 [INAUDIBLE]. 861 00:34:52,639 --> 00:34:53,260 >> დევიდ ჯ Malan: ზუსტად. 862 00:34:53,260 --> 00:34:55,989 ასე რომ, ეს ფაქტობრივად მივყავართ თემის ცნობილია როგორც ფარგლებს. 863 00:34:55,989 --> 00:34:59,350 თურმე C, კიდევ ერთხელ, მართლაც მოგაწვდით სიტყვასიტყვით. 864 00:34:59,350 --> 00:35:02,970 და თუ მსგავსი რამ სადაც თქვენ განაცხადოს int 865 00:35:02,970 --> 00:35:06,120 და შემდეგ მივანიჭოთ მას გარკვეული მნიშვნელობა, მაგრამ თქვენ რომ შიგნით 866 00:35:06,120 --> 00:35:09,840 წყვილი Curly braces, რა C არ არის ის ვარაუდობს, რომ თქვენ 867 00:35:09,840 --> 00:35:14,800 მხოლოდ სურვილია, 32 ბიტი ცნობილია როგორც მე არსებობა ფარგლებში 868 00:35:14,800 --> 00:35:18,200 კონტექსტში იმ Curly braces, ფარგლებში ხაზები 869 00:35:18,200 --> 00:35:22,420 6 გავლით 9. ასე რომ ცხადდება და მას ენიჭება 870 00:35:22,420 --> 00:35:26,530 ღირებულების ხაზი 8, მაგრამ, როგორც კი თქვენ მიიღოს გარეთ 871 00:35:26,530 --> 00:35:30,270 ხაზის ქვემოთ 9 Curly გაუწიოს, მე აღარ 872 00:35:30,270 --> 00:35:31,910 ფარგლებს, ასე ვთქვათ. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. ეს აღარ სწორ კონტექსტში. 874 00:35:35,030 --> 00:35:37,940 ახლა არ არსებობს მე, ამიტომ, თითქოს ჩვენ არც კი 875 00:35:37,940 --> 00:35:38,770 განაცხადა საერთოდ. 876 00:35:38,770 --> 00:35:41,520 >> რა არის სარემონტო მაშინ მსგავსი რამ, თუ 877 00:35:41,520 --> 00:35:44,300 მიზეზი ის არის, რომ მე ცხადდება ფარგლებში Curly braces, რომელიც 878 00:35:44,300 --> 00:35:45,120 აშკარად ცუდი? 879 00:35:45,120 --> 00:35:45,410 აქ? 880 00:35:45,410 --> 00:35:46,820 აუდიტორია: [INAUDIBLE]. 881 00:35:46,820 --> 00:35:47,150 დევიდ ჯ Malan: ჰო. 882 00:35:47,150 --> 00:35:48,710 ასე რომ ჩვენ შეგვიძლია ინიციალიზაცია მას გარეთ. 883 00:35:48,710 --> 00:35:53,530 ნება მომეცით, წავიდეთ წინ და წაშლა დეკლარაციის ნაწილები რის 884 00:35:53,530 --> 00:35:55,820 მე მიუთითებს, და ნება მომეცით ამის გაკეთება აქ. 885 00:35:55,820 --> 00:36:00,220 ასე რომ ხაზი 5, ეს არის ამბობს "მომეცი int." ზარის ეს მე. 886 00:36:00,220 --> 00:36:03,400 ცნობა, ხაზის 9, მე არ მინდა ამის გაკეთება, რადგან მე 887 00:36:03,400 --> 00:36:04,830 უკვე გვაქვს 32 ბიტი. 888 00:36:04,830 --> 00:36:06,140 მე არ მინდა ვთხოვო კომპიუტერში 889 00:36:06,140 --> 00:36:07,630 სხვადასხვა 32 ბიტი. 890 00:36:07,630 --> 00:36:09,850 მინდა იმ იმავე 32 ბიტი. 891 00:36:09,850 --> 00:36:13,190 და ახლა რადგან მე ცხადდება შეესაბამება 5, მაინც legit 892 00:36:13,190 --> 00:36:16,550 გამოიყენოს იგი ხაზის 11 და ხაზი 12. 893 00:36:16,550 --> 00:36:19,310 >> ნება მომეცით, ცდილობენ recompile ამ და ვხედავ 894 00:36:19,310 --> 00:36:20,490 თუ Clang აჩერებს yelling. 895 00:36:20,490 --> 00:36:22,380 გააკეთეთ მარყუჟი. 896 00:36:22,380 --> 00:36:25,470 ასე რომ ახლა ეს "დაფარული დეკლარაცია ფუნქცია 897 00:36:25,470 --> 00:36:29,880 'GetInt "არასწორია წელს c99." რა არის ეს? 898 00:36:29,880 --> 00:36:30,400 ჰო? 899 00:36:30,400 --> 00:36:32,330 აუდიტორია: [INAUDIBLE]. 900 00:36:32,330 --> 00:36:32,690 დევიდ ჯ Malan: ჰო. 901 00:36:32,690 --> 00:36:35,520 ახლა რომ მე რეალურად გამოყენებით GetInt, ეს არ არის რაღაც 902 00:36:35,520 --> 00:36:38,190 რომ მხოლოდ მოდის C. ეს მოდის CS50. 903 00:36:38,190 --> 00:36:39,890 ამიტომ, ჩვენ გვჭირდება ეს აქ. 904 00:36:39,890 --> 00:36:41,450 და ნება მომეცით დაბრუნდეს სწრაფი ქვემოთ 905 00:36:41,450 --> 00:36:43,500 აქ და ხელახლა აწარმოებს მიიღოს. 906 00:36:43,500 --> 00:36:44,160 Okay, საბოლოოდ. 907 00:36:44,160 --> 00:36:46,270 ახლა ჩვენ გადაწყდეს, რომ და სხვა შეცდომა. 908 00:36:46,270 --> 00:36:48,930 ნება მიბოძეთ ახლა აწარმოებს მარყუჟი და ვნახოთ, რა მოხდება. 909 00:36:48,930 --> 00:36:51,740 "მომეცი int." მე მივცემ მას 11. 910 00:36:51,740 --> 00:36:53,100 მე მივცემ მას -1. 911 00:36:53,100 --> 00:36:54,470 მე მივცემ მას foo. 912 00:36:54,470 --> 00:36:56,080 მე მივცემ მას 5. 913 00:36:56,080 --> 00:36:57,450 და ახლა მართლაც მუშაობს. 914 00:36:57,450 --> 00:36:59,410 მაგრამ სწრაფი შეიცვალა მიზეზი აქ. 915 00:36:59,410 --> 00:37:02,800 რატომ ამბობენ გაიმეორეთ ერთი ამ ჯერ მაგრამ მომეცი 916 00:37:02,800 --> 00:37:03,920 int სხვა სამჯერ? 917 00:37:03,920 --> 00:37:05,500 რატომ არის, რომ ქცევის განსხვავებული? 918 00:37:05,500 --> 00:37:06,980 აუდიტორია: მისცა სიმებიანი. 919 00:37:06,980 --> 00:37:07,830 დევიდ ჯ Malan: უკაცრავად? 920 00:37:07,830 --> 00:37:08,570 აუდიტორია: თქვენ მისცა სიმებიანი. 921 00:37:08,570 --> 00:37:08,990 დევიდ ჯ Malan: ჰო. 922 00:37:08,990 --> 00:37:11,450 ამიტომ, ჩვენ მივეცით მას სიმებიანი ამ მესამე მცდელობა, 923 00:37:11,450 --> 00:37:12,490 როდესაც მე აკრეფილი foo. 924 00:37:12,490 --> 00:37:13,200 Foo არის სიმებიანი. 925 00:37:13,200 --> 00:37:14,340 ეს აშკარად არ int. 926 00:37:14,340 --> 00:37:17,500 და ისე, რომ CS50 განახორციელა GetInt არის, რომ ჩვენ 927 00:37:17,500 --> 00:37:20,330 არ შეამოწმოთ თუ რაღაც არის ნაკლები ვიდრე 0 ან მეტი 10 928 00:37:20,330 --> 00:37:22,260 თქვენთვის, რადგან როგორ უნდა იცოდეს წინასწარ, თუ რა სახის 929 00:37:22,260 --> 00:37:23,130 int გსურთ? 930 00:37:23,130 --> 00:37:25,880 მაგრამ ჩვენ შეგვიძლია მინიმალურად შევამოწმოთ თქვენ, საერთოდ მომხმარებლის მინიმუმ 931 00:37:25,880 --> 00:37:26,730 აკრიფოთ რიცხვი? 932 00:37:26,730 --> 00:37:30,500 და თუ არ, ჩვენ დაწეროთ ზე მომხმარებლის აკრეფით "გაიმეორეთ" შესახებ 933 00:37:30,500 --> 00:37:31,440 ეკრანზე. 934 00:37:31,440 --> 00:37:34,210 >> ახლა ჩვენ გვაქვს პროგრამა, რომელიც looping. Okay. 935 00:37:34,210 --> 00:37:37,070 ახლა, რაც ამ არის ერთგვარი უკეთ შენება? 936 00:37:37,070 --> 00:37:39,060 ასე რომ, ეს, რა დაიწყება მიიღოს პატარა ბინძურ, 937 00:37:39,060 --> 00:37:42,360 ის ფაქტი, რომ თქვენ უნდა გვახსოვდეს, განაცხადოს ცვლადი აქ 938 00:37:42,360 --> 00:37:44,630 თუ გსურთ გამოიყენოთ იგი შიგნით ზოგიერთი 939 00:37:44,630 --> 00:37:46,460 Curly braces და გარეთ. 940 00:37:46,460 --> 00:37:48,490 მაგრამ მაშინაც კი, თუ ეს გამოიყურება პატარა cryptic თავდაპირველად 941 00:37:48,490 --> 00:37:50,750 ერთი შეხედვით, მხოლოდ ერთხელ, მახსოვს მარტივი ლოგიკაა. 942 00:37:50,750 --> 00:37:54,630 რათა არაფერი C, თუ არა ეს ფუნქცია ან 943 00:37:54,630 --> 00:37:57,680 ეს ცვლადი, თქვენ უნდა შეიცავდეს იგი, თუ ის ფუნქცია 944 00:37:57,680 --> 00:37:59,770 ზოგიერთ ბიბლიოთეკაში, ან თქვენ უნდა გამოაცხადოს ის. 945 00:37:59,770 --> 00:38:02,405 მაგრამ ახლა თქვენ უნდა ზედმეტი მავიწყდება იმ ფაქტს, რომ 946 00:38:02,405 --> 00:38:04,940 თქვენ გამოცხადების მას უფლება ფარგლებს. 947 00:38:04,940 --> 00:38:08,150 თქვენ არ აყენებს ეს ძალიან მჭიდროდ შიგნით ფრჩხილებში. 948 00:38:08,150 --> 00:38:09,410 >> ნება მომეცით, ფაქტობრივად გააფართოვოს უკან. 949 00:38:09,410 --> 00:38:12,660 თუ ჩვენ დავუბრუნდებით ჩვენი მაგალითად საწყისი ადრე, და მე 950 00:38:12,660 --> 00:38:19,245 თავში ამისთვის int, int i = 0; i <10; მე + +, და მე 951 00:38:19,245 --> 00:38:26,370 გავაკეთოთ printf ვარსკვლავი, ასე, შემდეგ კი ახლო PAREN და ახლა 952 00:38:26,370 --> 00:38:30,410 printf მე არის - 953 00:38:30,410 --> 00:38:33,500 ამავე ლოგიკით, თუ რა მოხდება მაშინ, როდესაც მე ვცდილობ 954 00:38:33,500 --> 00:38:35,500 შეადგინონ ამ პროგრამის? 955 00:38:35,500 --> 00:38:36,790 აუდიტორია: არასწორი იდენტიფიკატორი. 956 00:38:36,790 --> 00:38:38,560 დევიდ ჯ Malan: ასე რომ კიდევ ერთი არასწორი იდენტიფიკატორი, 957 00:38:38,560 --> 00:38:39,470 გამოუცხადებელ იდენტიფიკატორი. 958 00:38:39,470 --> 00:38:41,810 ახლა, მიზეზი არის პატარა სხვადასხვა. 959 00:38:41,810 --> 00:38:44,370 აქ აშკარად არ Curly braces აქ, მაგრამ იგივე 960 00:38:44,370 --> 00:38:46,790 იდეა, იგივე ამბავი ფარგლებს ვრცელდება. 961 00:38:46,790 --> 00:38:50,340 თუ თქვენ არ განაცხადა ცვლადი როგორიც მე შიგნით 962 00:38:50,340 --> 00:38:53,960 ამისთვის მარყუჟის, მაშინაც კი თუ თქვენ არ არის მკაფიოდ წერილობითი Curly 963 00:38:53,960 --> 00:38:56,980 braces, ვფიქრობ მათგანი გონებრივად როგორც ჯერ კიდევ არსებობს, რომელშიც 964 00:38:56,980 --> 00:39:00,310 შემთხვევაში მე ძალაშია მხოლოდ შიგნით ამისთვის loop. 965 00:39:00,310 --> 00:39:03,080 ეს არ არის სწორი ერთხელ თქვენ მიიღებთ შემდეგი ხაზი, რომელიც 966 00:39:03,080 --> 00:39:05,090 ამ შემთხვევაში არის 10. 967 00:39:05,090 --> 00:39:09,060 ასე რომ მხოლოდ რამდენიმე საკითხები ფარგლებს და მოსწონს. 968 00:39:09,060 --> 00:39:12,620 ყველა უფლება, რაიმე კითხვა? 969 00:39:12,620 --> 00:39:15,310 >> ყველა უფლება, ასე რომ, ეს სახის ტრივიალური პატარა პროგრამა, 970 00:39:15,310 --> 00:39:17,450 ბეჭდვა მხოლოდ პატარა ვარსკვლავები. 971 00:39:17,450 --> 00:39:20,400 მაგრამ ვნახოთ, თუ გახსოვთ ეს სიმღერა აქ. 972 00:39:20,400 --> 00:39:22,530 ეს არის წარმოუდგენლად შემაშფოთებელი სიმღერა ბავშვები რომ მღერიან შესახებ 973 00:39:22,530 --> 00:39:23,550 სასკოლო ავტობუსი და მოსწონს. 974 00:39:23,550 --> 00:39:25,990 მაგრამ რა ლამაზი ამის შესახებ არის, რომ მას ამ cyclicity, 975 00:39:25,990 --> 00:39:27,910 რომლითაც ეს "99 ბოთლი ლუდი კედელზე, 976 00:39:27,910 --> 00:39:28,520 99 ბოთლი ლუდი. 977 00:39:28,520 --> 00:39:31,030 მიიღეთ ერთი ქვემოთ, გაივლის ირგვლივ, 98 ბოთლი ლუდი შესახებ 978 00:39:31,030 --> 00:39:34,330 კედელი. "და შემდეგ სიმღერა იმეორებს 97, შემდეგ 96, მაშინ 979 00:39:34,330 --> 00:39:38,040 95, შემდეგ 94, ყველა გზა ქვემოთ 0 თუ თქვენ ნამდვილად გაქვთ, რომ 980 00:39:38,040 --> 00:39:38,920 შორს ავტობუსი. 981 00:39:38,920 --> 00:39:41,960 ასე რომ, ეს არის კარგი პროგრამა დასალაგებლად of განახორციელოს, რადგან ჩემი 982 00:39:41,960 --> 00:39:43,650 ღმერთი, თუ შეიძლება მხოლოდ განახორციელონ ამ რამდენიმე 983 00:39:43,650 --> 00:39:46,660 ხაზების კოდი, შეგიძლიათ Spit out მთელი სიმღერები ამ 984 00:39:46,660 --> 00:39:48,240 სიმღერა საკმაოდ სწრაფად. 985 00:39:48,240 --> 00:39:50,420 მაგრამ გზაზე, ჩვენ შეგვიძლია დავიწყოთ ახლა აჯავრებენ გარდა ზოგიერთი 986 00:39:50,420 --> 00:39:52,460 ამ საბაზისო looping აშენებს და ახლა მას 987 00:39:52,460 --> 00:39:55,830 შემოიღონ ფუნქციებს, რომ ჩვენ წერენ თავს, დაბრუნდნენ ღირებულებები 988 00:39:55,830 --> 00:39:57,020 რომ ჩვენ გაიაროს გარშემო. 989 00:39:57,020 --> 00:39:58,910 მაგრამ პირველი, რატომ არ ვართ წავიდეთ წინ და მიიღოს ჩვენი ხუთი წუთი 990 00:39:58,910 --> 00:39:59,320 შესვენება აქ? 991 00:39:59,320 --> 00:40:01,480 და როდესაც ჩვენ დავუბრუნდეთ, ჩვენ იმღერებს ამ სიმღერას. 992 00:40:05,680 --> 00:40:08,760 >> ყველა უფლება, ასე რომ, ჩვენ უკან. 993 00:40:08,760 --> 00:40:11,850 და როდესაც ვამბობ, რომ ჩვენ ახლა მღერიან ამ სიმღერას, ვგულისხმობ 994 00:40:11,850 --> 00:40:13,250 პროგრამულად, არ სიტყვიერი შეურაცხყოფა მიაყენეს. 995 00:40:13,250 --> 00:40:19,370 ასე რომ აქ გვაქვს beer1.c, რომელიც ერთ განხორციელების 996 00:40:19,370 --> 00:40:20,580 კერძოდ სიმღერა. 997 00:40:20,580 --> 00:40:23,110 და უბრალოდ უნდა იყოს მკაფიო, მათთვის, იციან რა 998 00:40:23,110 --> 00:40:24,460 ეს საგანი ჰგავს, ნება მომეცით წავიდეთ წინ 999 00:40:24,460 --> 00:40:27,070 და მიიღოს beer1, შეიყვანეთ. 1000 00:40:27,070 --> 00:40:30,400 ახლა ნება მომეცით აწარმოებს beer1, და რასაც ჩვენ დავინახავთ - რამდენი ბოთლი 1001 00:40:30,400 --> 00:40:31,140 ლუდის იქნება? 1002 00:40:31,140 --> 00:40:33,240 მე აკრიფოთ 99, როგორიცაა სიმღერა ამბობს. 1003 00:40:33,240 --> 00:40:34,040 შეიყვანეთ. 1004 00:40:34,040 --> 00:40:35,650 და ახლა თუ ჩვენ გადახვევა მეშვეობით - 1005 00:40:35,650 --> 00:40:38,280 oops - თუ ჩვენ გადახვევა მეშვეობით ყველა ამ, ჩვენ დავინახავთ, რომ 1006 00:40:38,280 --> 00:40:41,350 ამ მართლაც მღერიან მთელი სიმღერა. 1007 00:40:44,050 --> 00:40:44,540 დაელოდეთ წუთი. 1008 00:40:44,540 --> 00:40:46,240 ჩემი გადახვევა ბარი ცოტა არევა. 1009 00:40:46,240 --> 00:40:47,940 მოდით გამოიყენოთ უფრო დიდი ფანჯარა. 1010 00:40:47,940 --> 00:40:53,500 ამიტომ beer1, 99, იქ წასვლა. 1011 00:40:53,500 --> 00:40:56,420 ასე რომ აქ გვაქვს მთელი სიმღერა, სენი უფრო სწრაფად მიერ 1012 00:40:56,420 --> 00:40:58,450 კომპიუტერი, ვიდრე ეს იქნებოდა ჩვენს მიერ. 1013 00:40:58,450 --> 00:41:00,340 ასე რომ შეამჩნია, თუმცა, ციკლური ბუნება აქ. 1014 00:41:00,340 --> 00:41:03,380 განცხადებაში ნათქვამია, 99, 99 შემდეგ, მაშინ "ერთ down, მსგავ 1015 00:41:03,380 --> 00:41:04,740 გარშემო ", მაშინ 98. 1016 00:41:04,740 --> 00:41:06,640 და ახლა იგი იმეორებს ისევ და ისევ. 1017 00:41:06,640 --> 00:41:08,840 >> ასე რომ, ეს არის რეალურად შესანიშნავი შესაძლებლობა, გარკვეული სახის 1018 00:41:08,840 --> 00:41:10,400 looping მშენებლობა. 1019 00:41:10,400 --> 00:41:12,950 გაითვალისწინეთ, რომ მე სახის ჭრის კუთხეში აქ. 1020 00:41:12,950 --> 00:41:15,960 გაითვალისწინეთ, რომ მე რომ "98 ბოთლი ლუდი კედელზე, 1021 00:41:15,960 --> 00:41:19,010 97 ბოთლი ლუდი კედელზე, "და რომ მხოლოდ ასე 1022 00:41:19,010 --> 00:41:21,640 რომ როდესაც მივიღებთ ერთ ბოთლი ლუდი, მე არ მაქვს 1023 00:41:21,640 --> 00:41:23,300 ფიქრი English გრამატიკა. 1024 00:41:23,300 --> 00:41:25,790 თუმცა ისიც დაფიქსირება ამ ცოტა თუ 1025 00:41:25,790 --> 00:41:26,910 მდგომარეობა, ალბათ. 1026 00:41:26,910 --> 00:41:30,110 თუ ეს რიცხვი არის სინგულარული, წავიდეთ წინ და ვთქვათ "ბოთლი", 1027 00:41:30,110 --> 00:41:31,840 სხვაგვარად, თუ ის მრავლობითი, რომ "ბოთლი". 1028 00:41:31,840 --> 00:41:34,150 მაგრამ ახლა, მე მთლიანად მოჭრა რომ კუთხეში. 1029 00:41:34,150 --> 00:41:35,520 მოდით ვნახოთ, რა გვაქვს აქ. 1030 00:41:35,520 --> 00:41:37,150 ამიტომ, ჩვენ მივიღეთ რამდენიმე კომენტარი ზედა. 1031 00:41:37,150 --> 00:41:39,450 მე მათ შორის, ამ ორ ბიბლიოთეკა, როგორც 1032 00:41:39,450 --> 00:41:41,140 ჩვენ ხშირად ყოფილა. 1033 00:41:41,140 --> 00:41:43,610 და ახლა ნება მომეცით გადახვევა ქვემოთ პირველი 1034 00:41:43,610 --> 00:41:44,990 ფაქტობრივი ხაზების კოდი. 1035 00:41:44,990 --> 00:41:47,020 Line 17 ჩათვლით ძირითადი. 1036 00:41:47,020 --> 00:41:50,610 Line 21 და 20 აქვს რამდენი ბოთლი ლუდი იქნება? 1037 00:41:50,610 --> 00:41:52,060 და მაშინ მე მოვუწოდებ GetInt. 1038 00:41:52,060 --> 00:41:53,800 და ახლა აქვს ცოტა საღი აზრის ქვითარი. 1039 00:41:53,800 --> 00:41:57,030 >> ასე რომ, ეს კონვენცია, რომ ჩვენ ახლა დავიწყოთ მიღებით, რათა 1040 00:41:57,030 --> 00:41:59,620 უფრო მკაცრად ამოწმებენ მომხმარებლის შეყვანის. 1041 00:41:59,620 --> 00:42:01,710 ზოგჯერ უბრალოდ არ მინდა უბიძგონ მათ ხელახლა 1042 00:42:01,710 --> 00:42:02,630 და ისევ და ისევ. 1043 00:42:02,630 --> 00:42:05,620 თუ მომხმარებლის ხრახნები მდე და არ ითანამშრომლებს, ჯარიმა. 1044 00:42:05,620 --> 00:42:07,430 Quit და უბრალოდ არ გაუმკლავდეთ მათ. 1045 00:42:07,430 --> 00:42:08,990 და ისე, რომ ის, რასაც მე ვაკეთებ აქ. 1046 00:42:08,990 --> 00:42:12,520 თუ n ნაკლებია, ვიდრე 1, მე უბრალოდ აპირებს დაწეროთ დროს მომხმარებელი, 1047 00:42:12,520 --> 00:42:14,330 "ბოდიში, რომ აზრი არა აქვს." და შემდეგ მე ვაპირებ 1048 00:42:14,330 --> 00:42:16,650 თვითნებურად დაბრუნების 1. 1049 00:42:16,650 --> 00:42:18,550 ასე რომ კიდევ ერთხელ, ეს მხოლოდ კონვენციის მისაღებად გამოიყენება. 1050 00:42:18,550 --> 00:42:19,850 ახლა მიიღოს ეს რწმენა. 1051 00:42:19,850 --> 00:42:22,700 მაგრამ დღემდე, ჩვენ ყოველთვის ბრუნდებიან 0, რადგან 1052 00:42:22,700 --> 00:42:25,204 ჩვენ განაცხადა დაბრუნების 0 აღნიშნავს რა? 1053 00:42:25,204 --> 00:42:26,000 აუდიტორია: წარმატება. 1054 00:42:26,000 --> 00:42:27,320 დევიდ ჯ Malan: წარმატება, ეს იყო. 1055 00:42:27,320 --> 00:42:29,740 ახლა, რომ ჩვენ საბოლოოდ დაწყებული ფიქრი 1056 00:42:29,740 --> 00:42:31,330 არასამთავრობო წარმატებები - 1057 00:42:31,330 --> 00:42:33,760 სხვა სიტყვებით, კუთხეში შემთხვევაში, შეცდომა პირობები - 1058 00:42:33,760 --> 00:42:37,520 ახლა კი ისეთი უსასრულო მიწოდება, ან თუნდაც ოთხი მილიარდი 1059 00:42:37,520 --> 00:42:39,790 შესაძლებელია რამ, რაც შეიძლება წავიდეთ არასწორი ჩემი პროგრამები. 1060 00:42:39,790 --> 00:42:42,300 და შემიძლია დაიწყოს მინიჭება მათ ინდივიდუალური ნომრები. 1061 00:42:42,300 --> 00:42:44,340 ახლა, ზოგადად suffices უბრალოდ დააბრუნოს 1062 00:42:44,340 --> 00:42:45,730 რაღაც სხვა ვიდრე 0. 1063 00:42:45,730 --> 00:42:48,040 ამიტომ, ჩვენ ვაპირებთ, უბრალოდ დააბრუნოს 1 ახლა. 1064 00:42:48,040 --> 00:42:51,440 მაგრამ მიზეზი დაბრუნების 1 ის არის, რომ როგორც კი დაბრუნდებიან 1065 00:42:51,440 --> 00:42:55,110 1, გამოიცანით რა ხდება დანარჩენ პროგრამაში? 1066 00:42:55,110 --> 00:42:55,720 იგი აჩერებს. 1067 00:42:55,720 --> 00:42:56,560 ეს არის ის. 1068 00:42:56,560 --> 00:42:59,150 ასე რომ ის ფაქტი, რომ მე დაბრუნების 1 არის ეფექტურად 1069 00:42:59,150 --> 00:43:02,950 მოკლე circuiting ამ პროგრამის შესრულების ისე, რომ 1070 00:43:02,950 --> 00:43:06,780 არაფერი ქვემოთ ხაზის 27 გაგრძელდება შესრულებაში. 1071 00:43:06,780 --> 00:43:09,210 როგორც კი მთავარ ანაზღაურება, რომელიც მას. 1072 00:43:09,210 --> 00:43:13,160 >> ყველა უფლება ასე რომ, თუ მომხმარებელს არ ითანამშრომლონ და მივაღწევთ ხაზი 30 1073 00:43:13,160 --> 00:43:15,680 იმიტომ, რომ ისინი აკრეფილი ლეგიტიმური ნომერი, აქ არის ჩემი 1074 00:43:15,680 --> 00:43:16,990 განხორციელების ეს სიმღერა. 1075 00:43:16,990 --> 00:43:19,050 ასე რომ პირველი ამობეჭდოთ სტრიქონების გადატანით ხასიათი, მხოლოდ 1076 00:43:19,050 --> 00:43:19,880 ესთეტიკას. 1077 00:43:19,880 --> 00:43:21,500 მე ახლა ამისთვის loop. 1078 00:43:21,500 --> 00:43:22,930 და შენიშნავს, მე ვაკეთებ რამ bit 1079 00:43:22,930 --> 00:43:23,880 საქართველოს სხვადასხვა მიმართულებით. 1080 00:43:23,880 --> 00:43:26,210 მე არ უნდა გავაკეთოთ ნაკლები, მე არ უნდა გავაკეთოთ + +. 1081 00:43:26,210 --> 00:43:30,660 მე შემიძლია ვთქვა, ნაცვლად ინიციალიზაცია ცვლადი i, ვაყენებთ მას ტოლი 1082 00:43:30,660 --> 00:43:35,080 N, ხმების მომხმარებლის აკრეფილი, მაშინ ნუ შემდეგ, ისე 1083 00:43:35,080 --> 00:43:39,590 სანამ მე მეტია 0, მაშინ მე - 1084 00:43:39,590 --> 00:43:42,070 ერთხელ თქვენ დასრულდა ერთი iteration ამ loop. 1085 00:43:42,070 --> 00:43:44,310 ასე რომ ჩვენ შეგვიძლია ითვლიან ქვემოთ გამოყენებით ამისთვის loop ისევე. 1086 00:43:44,310 --> 00:43:47,520 ახლა, ეს არის საკმაოდ ბევრი კვირაში ერთი პერსონალის ახლა, printf. 1087 00:43:47,520 --> 00:43:51,770 ამიტომ ბეჭდვითი "% d ბოთლი ლუდი კედელზე." ბეჭდვის "% d 1088 00:43:51,770 --> 00:43:54,990 ბოთლი ლუდი. "" Take ერთი ქვემოთ, გაივლის ირგვლივ. "ბეჭდვის 1089 00:43:54,990 --> 00:43:58,880 "% D ბოთლი ლუდი კედელზე." ასე რომ ჯერ კიდევ% d, მაგრამ 1090 00:43:58,880 --> 00:44:02,770 შეამჩნევთ, რომ არგუმენტი printf იცვლება. 1091 00:44:02,770 --> 00:44:05,840 შემდეგ მძიმე, მაქვს მე, რადგან მე მინდა ვთქვა, 99. 1092 00:44:05,840 --> 00:44:08,590 ამის შემდეგ მძიმე, მაქვს მე, რადგან მე მინდა ვთქვა, 99. 1093 00:44:08,590 --> 00:44:14,030 ამის შემდეგ მძიმე, მაქვს მე - 1, რადგან მე მინდა ვთქვა, 98 ში 1094 00:44:14,030 --> 00:44:16,260 ამ პირველი iteration და სხვ. 1095 00:44:16,260 --> 00:44:18,520 და ახლა ქვემოთ აქ, უბრალოდ გარკვეული სულელური პატარა შენიშვნა. 1096 00:44:18,520 --> 00:44:22,270 და შემდეგ ხაზი 42, მე დაბრუნებას 0 მიერ კონვენციის signifying რომ 1097 00:44:22,270 --> 00:44:23,650 ყველაფერი okay. 1098 00:44:23,650 --> 00:44:24,490 >> მერე რა რომ goofed? 1099 00:44:24,490 --> 00:44:26,350 რა შეიძლება ჩვეულებრივი შეცდომა აქ იყოს? 1100 00:44:26,350 --> 00:44:29,200 ისე, მე ვფიქრობ შემთხვევით განაცხადა კარგად, მეც მინდა დათვლა 1101 00:44:29,200 --> 00:44:31,640 ქვემოთ 0, მინდა 0 ბოთლი ლუდი კედელზე? 1102 00:44:31,640 --> 00:44:34,620 ასე რომ ვთქვა, მე მეტია ან ტოლია 0. 1103 00:44:34,620 --> 00:44:38,920 რა იქნება სიმპტომია, რომ მე ახლა ვხედავ, თუ recompile 1104 00:44:38,920 --> 00:44:41,173 beer1 და გაუშვით? 1105 00:44:41,173 --> 00:44:42,120 აუდიტორია: უარყოფითი. 1106 00:44:42,120 --> 00:44:43,590 დევიდ ჯ Malan: ჰო gonna go უარყოფითი. 1107 00:44:43,590 --> 00:44:45,950 ეს არის Off-by-ერთი შეცდომა, წარმოუდგენლად 1108 00:44:45,950 --> 00:44:47,270 ჩვეულებრივი შეცდომა, რათა. 1109 00:44:47,270 --> 00:44:48,960 მოდით რეალურად დავუბრუნდეთ ტერმინალის ფანჯარაში და გავაკეთებთ 1110 00:44:48,960 --> 00:44:50,620 აქ, ასე ვხედავთ მეტი დროს. 1111 00:44:50,620 --> 00:44:53,280 შეიყვანეთ, 99 ბოთლი ლუდი. 1112 00:44:53,280 --> 00:44:56,580 დახურვა, მაგრამ წავედით ოდესმე ისე ოდნავ შორს. 1113 00:44:56,580 --> 00:45:00,500 ჩვენ იმღერა სიმღერა ძალიან შორს ქვემოთ, ასეთი, რომ ჩვენ ახლა მოხვდა 1114 00:45:00,500 --> 00:45:01,510 უარყოფითი რიცხვი. 1115 00:45:01,510 --> 00:45:03,680 ასე რომ ეს არ საკმაოდ მუშაობა. 1116 00:45:03,680 --> 00:45:06,450 >> ყველა უფლება, ასე რომ ჩვენ შეგვიძლია ადვილად დაფიქსირება, რომ ბრუნდება 1117 00:45:06,450 --> 00:45:07,650 გზა, როგორიც ადრე იყო. 1118 00:45:07,650 --> 00:45:10,360 მაგრამ რა შესაძლებლობები ახლავე 1119 00:45:10,360 --> 00:45:11,190 გაუმჯობესება? 1120 00:45:11,190 --> 00:45:17,200 ისე, ნება მომეცით გახსნა beer2.c და გადახვევა ქვემოთ აქ და მიიღოს 1121 00:45:17,200 --> 00:45:19,310 შეხედეთ ამ ვერსიას. 1122 00:45:19,310 --> 00:45:21,370 რა არის პირველი რაც jumps out at თქვენ, როგორც სხვადასხვა 1123 00:45:21,370 --> 00:45:23,715 ამ ვერსიაში აქ? 1124 00:45:23,715 --> 00:45:24,190 აუდიტორია: [INAUDIBLE]. 1125 00:45:24,190 --> 00:45:26,510 დევიდ ჯ Malan: ჰო, ასე აღარ ვარ, რადგან ეს მოხდა, რათა 1126 00:45:26,510 --> 00:45:29,350 ჩემთვის იცით, რა, მე გეკითხებით მომხმარებლის ამისთვის N, და შემდეგ მე 1127 00:45:29,350 --> 00:45:33,580 შექმნის მე ტოლია n, და შემდეგ მე იცვლება მე, მაგრამ მე არასოდეს 1128 00:45:33,580 --> 00:45:34,590 ეხება n ერთხელ. 1129 00:45:34,590 --> 00:45:37,390 მერე რა heck იყო წერტილი თქვენ გამოყოფის სხვა 32 1130 00:45:37,390 --> 00:45:45,210 ბიტი მოუწოდა მე მხოლოდ ისე, რომ შემიძლია აქვს სხვადასხვა ცვლადი? 1131 00:45:45,210 --> 00:45:47,960 ასე რომ, ამ შემთხვევაში, მე სახის აღიარა, რომ ზედმეტი 1132 00:45:47,960 --> 00:45:49,190 დიზაინის ფუნქცია. 1133 00:45:49,190 --> 00:45:52,730 და მე ახლა მიმდინარეობს იმის თქმა ხოლო n მეტია 0, წასვლა 1134 00:45:52,730 --> 00:45:56,180 წინ და ბეჭდვა იგივე სიმღერა, ჩაბარების n to printf როგორც 1135 00:45:56,180 --> 00:46:00,210 მეორე არგუმენტი, და N - 1 როგორც მეორე არგუმენტი ქვემოთ აქ. 1136 00:46:00,210 --> 00:46:02,930 და შემდეგ თითოეულ iteration ამ მარყუჟის, წავიდეთ წინ და მხოლოდ 1137 00:46:02,930 --> 00:46:05,080 decrement n თავად. 1138 00:46:05,080 --> 00:46:06,960 ახლა, ფუნქციურად, ამ პროგრამის 1139 00:46:06,960 --> 00:46:08,010 იქნება იდენტურია. 1140 00:46:08,010 --> 00:46:10,730 თუ მე აკრიფოთ 99, N იწყება 99. 1141 00:46:10,730 --> 00:46:12,890 მე decrement, decrement, decrement, decrement. 1142 00:46:12,890 --> 00:46:15,875 მე ვაპირებ მისაღებად ყველა გზა ქვემოთ "ერთი ბოთლი ლუდის შესახებ 1143 00:46:15,875 --> 00:46:16,740 კედელი, ერთი ბოთლი ლუდი. 1144 00:46:16,740 --> 00:46:18,020 მიიღეთ ერთი ქვემოთ, გაივლის ირგვლივ. 1145 00:46:18,020 --> 00:46:21,480 0 ბოთლი ლუდი კედელზე. "ბოლომდე, რადგან მე 1146 00:46:21,480 --> 00:46:23,200 მიიღეთ მდგომარეობა სწორი. 1147 00:46:23,200 --> 00:46:24,280 ეს მეტია 0. 1148 00:46:24,280 --> 00:46:26,220 მე არ მიიღოს ეს შეცდომა. 1149 00:46:26,220 --> 00:46:28,470 >> ასე რომ რაც უკეთესი, ვერსია ერთი ან ორი ვერსია? 1150 00:46:31,380 --> 00:46:33,480 ასე გავიგე bunch of murmurings ორი. 1151 00:46:33,480 --> 00:46:34,730 რატომ ორი? 1152 00:46:37,210 --> 00:46:38,225 რა არის ეს? 1153 00:46:38,225 --> 00:46:39,215 აუდიტორია: [INAUDIBLE]. 1154 00:46:39,215 --> 00:46:40,070 დევიდ ჯ Malan: Oh, okay. 1155 00:46:40,070 --> 00:46:42,870 ასე რომ, ეს არ გამოვა ქვემოთ 0, მაგრამ გვახსოვდეს, რომ ერთი ვერსია, 1156 00:46:42,870 --> 00:46:45,870 ორიგინალური სწორი ვერსია არ წასვლა ქვემოთ 0 ან. 1157 00:46:45,870 --> 00:46:48,340 ასე რომ გვახსოვდეს, რომ ეს არის სწორი ვერსია. 1158 00:46:48,340 --> 00:46:51,630 მოდით მინიმუმ შეადაროთ ორი სწორ ვარიანტებს. 1159 00:46:51,630 --> 00:46:53,300 რა არგუმენტს ვერსია 1160 00:46:53,300 --> 00:46:55,146 ორი მყოფი, Mmm, უკეთესი? 1161 00:46:55,146 --> 00:46:55,642 ჰო? 1162 00:46:55,642 --> 00:46:57,630 აუდიტორია: იგი იყენებს ნაკლებად სივრცეში. 1163 00:46:57,630 --> 00:46:59,530 დევიდ ჯ Malan: Okay, ასე რომ იყენებს ნაკლებად სივრცეში, არა? 1164 00:46:59,530 --> 00:47:02,900 ვინაიდან ვერსია ერთ გამოიყენება 32 ბიტი for N, და შემდეგ სხვა 1165 00:47:02,900 --> 00:47:07,680 32 ბიტი მე. 1166 00:47:07,680 --> 00:47:10,060 ვერსია ორი მხოლოდ იყენებს 32 ბიტს ამისთვის N, ისე, რომ 1167 00:47:10,060 --> 00:47:11,700 როგორც ჩანს, პლუს. 1168 00:47:11,700 --> 00:47:12,950 სხვა აზრები? 1169 00:47:18,070 --> 00:47:21,520 ვინმეს მინდა მოგიწოდოთ სასარგებლოდ ერთი? 1170 00:47:21,520 --> 00:47:22,070 ჰო? 1171 00:47:22,070 --> 00:47:25,240 აუდიტორია: თქვენ უნდა გამოიყენოთ დამატებითი ხაზი კოდი N -. 1172 00:47:25,240 --> 00:47:26,090 >> დევიდ ჯ Malan: Okay, დარწმუნებული. 1173 00:47:26,090 --> 00:47:26,960 ასე რომ სამართლიანი. 1174 00:47:26,960 --> 00:47:29,040 ასე რომ, ეს უბრალოდ, სულ მცირე ჩემთვის - 1175 00:47:29,040 --> 00:47:31,940 მე ვგულისხმობ, ამ რეალურად გრძნობს პატარა messier, ის ფაქტი, რომ 1176 00:47:31,940 --> 00:47:35,120 მე ვერ სახის encapsulate ყველა ჩემი ლოგიკით ერთ 1177 00:47:35,120 --> 00:47:38,030 ლამაზი ხაზი, ამისთვის მარყუჟის, როგორც ამისთვის loop შეგიძლიათ. 1178 00:47:38,030 --> 00:47:40,240 აქ, მე სახის უნდა Tack ამ N - 1179 00:47:40,240 --> 00:47:41,120 დასასრულს მარყუჟის, რადგან 1180 00:47:41,120 --> 00:47:42,550 ეს ლოგიკურად საჭირო. 1181 00:47:42,550 --> 00:47:45,190 მაგრამ ეს სახის rubs ჩემთვის არასწორი გზა, მხოლოდ იმიტომ, რომ იგი 1182 00:47:45,190 --> 00:47:48,260 როგორც ჩანს ცალკე საწყისი ლოგიკა აქ, მიუხედავად იმისა, 1183 00:47:48,260 --> 00:47:49,430 ერთხელ, აუცილებელია. 1184 00:47:49,430 --> 00:47:50,990 სხვა აზრები? 1185 00:47:50,990 --> 00:47:51,490 ჰო? 1186 00:47:51,490 --> 00:47:52,740 აუდიტორია: [INAUDIBLE]. 1187 00:47:57,990 --> 00:47:58,350 >> დევიდ ჯ Malan: ჰო. 1188 00:47:58,350 --> 00:48:00,730 მერე რა, რომ თქვენ მაგივრად, დასასრულს სიმღერა, სურდა 1189 00:48:00,730 --> 00:48:02,950 ამობეჭდოთ ისევ სახელით სიმღერა? 1190 00:48:02,950 --> 00:48:05,660 როგორც "წყალობით სათამაშოდ 99 ბოთლი ლუდი", ან რაღაც 1191 00:48:05,660 --> 00:48:06,690 სულელური ასე? 1192 00:48:06,690 --> 00:48:09,750 მაგრამ საქმე იმაშია,, თქვენ სურდა ხელმისაწვდომობის ორიგინალური ღირებულება. 1193 00:48:09,750 --> 00:48:13,180 ის ფაქტი, რომ თქვენ mutated ან იცვლება N ყოველ 1194 00:48:13,180 --> 00:48:16,330 iteration და ამიტომ არ გაანადგურეს პირვანდელი ღირებულება 1195 00:48:16,330 --> 00:48:18,650 იმას ნიშნავს, თქვენ უბრალოდ ვერ გავაკეთოთ, რომ დასასრულს. 1196 00:48:18,650 --> 00:48:20,660 ახლა, სავარაუდოდ, ჩვენ ნათლად არ სურს 1197 00:48:20,660 --> 00:48:21,450 რომ ამ პროგრამაში. 1198 00:48:21,450 --> 00:48:22,350 ასე რომ, ვინც ზრუნავს? 1199 00:48:22,350 --> 00:48:23,630 მაგრამ ეს ძალიან მოქმედებს წერტილი. 1200 00:48:23,630 --> 00:48:25,520 და იყოს პატიოსანი, იქ ნამდვილად არავინ 1201 00:48:25,520 --> 00:48:26,630 სწორად უნდა უპასუხოს აქ. 1202 00:48:26,630 --> 00:48:28,740 ისინი ორივე ერთნაირად სწორი. 1203 00:48:28,740 --> 00:48:30,210 მე შეიძლება დაარწმუნა არც გზა. 1204 00:48:30,210 --> 00:48:33,310 მინდა ვთქვა, რომ, ზოგადად, ეს კარგი პრინციპი თუ 1205 00:48:33,310 --> 00:48:36,030 სთხოვა მომხმარებლის გარკვეული ღირებულება და შენახული ცვლადი 1206 00:48:36,030 --> 00:48:38,730 მოსწონს N, უბრალოდ სახის პრინციპულად, ეს ალბათ კარგი 1207 00:48:38,730 --> 00:48:40,160 შენარჩუნება, რომ გარშემო. 1208 00:48:40,160 --> 00:48:43,400 და ნებისმიერი მონაცემების გსურთ mutate ისევ და ისევ, მხოლოდ 1209 00:48:43,400 --> 00:48:46,030 მისცეს თავის ასლი, რომ ცვლადი, მხოლოდ ისე, რომ თქვენ 1210 00:48:46,030 --> 00:48:47,830 ხელი მიუწვდება ორიგინალური. 1211 00:48:47,830 --> 00:48:51,040 თქვენ ხარჯავს 32 მეტი ბიტი, მაგრამ რეალობა ის არის, ამ 1212 00:48:51,040 --> 00:48:53,490 კომპიუტერი, ისევე როგორც, ორი გიგაბაიტი ოპერატიული მეხსიერება ამ დღეებში, 1213 00:48:53,490 --> 00:48:55,310 და ჩვენ quibbling ზე 32 ბიტი? 1214 00:48:55,310 --> 00:48:56,320 ნამდვილად არ ასეთი დიდი გარიგება. 1215 00:48:56,320 --> 00:48:58,550 და თუნდაც ამ მოწყობილობის აქ, ერთად ნახევარი GIG ან 1216 00:48:58,550 --> 00:49:01,700 Gigabyte of RAM, 32 ბიტი წინააღმდეგ 64 ბიტი, 1217 00:49:01,700 --> 00:49:02,920 არა ეს დიდი გარიგება. 1218 00:49:02,920 --> 00:49:05,890 რა თქმა უნდა დღეს, ეს იქნება გზა გადაატვირთული მიერ ზომა 1219 00:49:05,890 --> 00:49:08,400 პროგრამის თავად, რომელიც იქნება რამდენიმე ასეული 1220 00:49:08,400 --> 00:49:10,890 kilobytes, თუ არა რამდენიმე მბ, ამ დღეებში. 1221 00:49:10,890 --> 00:49:13,550 >> ამიტომ გონივრული შეშფოთება, არავის უფლება პასუხი. 1222 00:49:13,550 --> 00:49:15,490 მაგრამ მაინც ეს ის აზრები რომ უნდა დაიწყოს 1223 00:49:15,490 --> 00:49:16,790 გავლა თქვენი აზრით? 1224 00:49:16,790 --> 00:49:19,600 რადგან pset 0, მიუხედავად იმისა, რომ ჩვენ ნამდვილად მხოლოდ მოსალოდნელია 1225 00:49:19,600 --> 00:49:22,340 სისწორე, ან თუნდაც უარყოფდა სხვადასხვა შეცდომები, რომ 1226 00:49:22,340 --> 00:49:25,440 თქვენ შეიძლება არ შეექმნა, მივიწევთ, დიზაინი 1227 00:49:25,440 --> 00:49:27,910 იქნება კიდევ ერთი გასაღები ასპექტი, როგორც წერის კოდი 1228 00:49:27,910 --> 00:49:29,770 და ასევე ჩვენი შეფასებისას კოდი. 1229 00:49:29,770 --> 00:49:32,310 და ასე მინიმუმ მისცეს აზრის რამ მოსწონს ეს. 1230 00:49:32,310 --> 00:49:35,590 და მხოლოდ იმიტომ, რომ რაღაც სამუშაოები არ ნიშნავს კარგია, 1231 00:49:35,590 --> 00:49:37,130 არ ნიშნავს, რომ ის კარგად დაპროექტებული. 1232 00:49:37,130 --> 00:49:38,820 და ეს ერთი რამ სწავლების პრაქტიკის და 1233 00:49:38,820 --> 00:49:41,990 პრობლემა კომპლექტი დაგვეხმარება აჯავრებენ ნაწილი დროთა განმავლობაში. 1234 00:49:41,990 --> 00:49:45,020 >> ისე, რაც შეეხება, ვთქვათ, ეს ვერსია აქ? 1235 00:49:45,020 --> 00:49:49,090 ნება მომეცით რაღაც პატარა sexy აქ მომენტი. 1236 00:49:49,090 --> 00:49:50,740 პირველი ნება მომეცით დავაღწიოთ ამ. 1237 00:49:50,740 --> 00:49:54,120 და ახლა მოდით დაფიქსირება ამ გრამატიკული საკითხი. 1238 00:49:54,120 --> 00:49:58,780 ასე რომ, ეს ვერსია, მინდა დაფიქსირება გრამატიკა ასე რომ, 1239 00:49:58,780 --> 00:50:02,460 ვიდრე უბრალოდ, ვამბობთ ჩართული s, როგორიცაა "ბოთლი" 1240 00:50:02,460 --> 00:50:03,360 ან "ბოთლი" - 1241 00:50:03,360 --> 00:50:04,900 მე არ მინდა, რომ გაჭრა კუთხეში - 1242 00:50:04,900 --> 00:50:08,350 მინდა ასევე დინამიურად ამობეჭდოთ სიტყვა "ბოთლი" 1243 00:50:08,350 --> 00:50:12,820 ან "ბოთლი", რითაც გამოყენებით ამ% s placeholders დღეს. 1244 00:50:12,820 --> 00:50:16,550 ასე რომ მე უნდა პირობითად შეამოწმოთ რა არის ღირებულება მე. 1245 00:50:16,550 --> 00:50:19,590 და თუ ის 1, მინდა ვთქვა, "ბოთლი", და თუ ეს არაფერი 1246 00:50:19,590 --> 00:50:23,115 სხვაგან, მინდა ვთქვა, "ბოთლი". მოდით ცდილობენ ამის გაკეთებას. 1247 00:50:23,115 --> 00:50:31,340 ასე რომ, თუ მე == 1, მაშინ ნება მომეცით წავიდეთ წინ და აცხადებენ - 1248 00:50:31,340 --> 00:50:34,080 მჭირდება სიმებიანი, ნება მომეცით, გავაკეთოთ სიმებიანი S1, რადგან ეს 1249 00:50:34,080 --> 00:50:36,070 პირველი სტრიქონი მე აინტერესებს ახლავე. 1250 00:50:36,070 --> 00:50:40,980 მე ვაპირებ ვთქვა "ბოთლი". და შემდეგ, ვნახოთ, string 1251 00:50:40,980 --> 00:50:43,110 S2 - მე კი განმარტავენ, სადაც მე ვაპირებ წელს მომენტში - 1252 00:50:43,110 --> 00:50:47,650 "ბოთლი". ასე რომ გავიხსენოთ, რომ ეს სიმღერა, ჩვენ უნდა შევძლოთ 1253 00:50:47,650 --> 00:50:50,580 ბეჭდვა რამ, ორი სხვადასხვა სიტყვა პოტენციურად. 1254 00:50:50,580 --> 00:50:53,590 ასე რომ, თუ ჩვენ ვიხსენებთ აქ შეამჩნევთ, რომ როდესაც ჩვენ მისაღებად 1255 00:50:53,590 --> 00:50:56,440 ეს მაგალითი აქ, "ორი ბოთლი ლუდი კედელზე, 1256 00:50:56,440 --> 00:50:59,490 ორი ბოთლი ლუდი, მიიღოს ერთი ქვემოთ, გაივლის ირგვლივ ", მინდა 1257 00:50:59,490 --> 00:51:02,380 ამ მეოთხე ხაზი ახლა ამბობენ "ერთი ბოთლი ლუდის შესახებ 1258 00:51:02,380 --> 00:51:04,900 კედლის ". ამიტომ მე უნდა გადაწყვიტოს, რა მინდა ვთქვა" ბოთლი "ან 1259 00:51:04,900 --> 00:51:07,780 "ბოთლი"? ამიტომ მე ვაპირებ თვითნებურად ამბობენ, ყველა უფლება, 1260 00:51:07,780 --> 00:51:10,530 მე ვაპირებ ახლა განაცხადოს ცვლადში S1, string 1261 00:51:10,530 --> 00:51:13,830 ერთი, რომ აპირებს კიდევ plugged აქ და ასევე აქ, 1262 00:51:13,830 --> 00:51:16,070 რადგან ეს სიტყვები ყოველთვის იდენტურია, მხოლოდ იმიტომ, რომ 1263 00:51:16,070 --> 00:51:17,290 ბუნების სიმღერა. 1264 00:51:17,290 --> 00:51:20,100 მე ვაპირებ მოვუწოდო s2 რასაც სიტყვა მინდა 1265 00:51:20,100 --> 00:51:21,560 საბოლოოდ გამოჩნდება ქვემოთ აქ. 1266 00:51:21,560 --> 00:51:25,530 ახლა, სიტყვასიტყვით, 99 ჯერ აქედან 100, ეს იქნება 1267 00:51:25,530 --> 00:51:28,820 იგივე ორივე შემთხვევაში, რადგან 3 არის მრავლობითი, 2 არის 1268 00:51:28,820 --> 00:51:30,200 მრავლობითი, 4 პლურალურია. 1269 00:51:30,200 --> 00:51:34,640 მაგრამ ამ შემთხვევაში კუთხეში, სადაც მივიღებთ დან 2 და შემდეგ 1, ან 1270 00:51:34,640 --> 00:51:37,250 კიდევ 1 და შემდეგ 0, მჭირდება ამ ლოგიკით. 1271 00:51:37,250 --> 00:51:41,020 ასე რომ უნდა გარკვეული დრო გაატაროს ჩემი კოდი მიღების უფლება, რომ. 1272 00:51:41,020 --> 00:51:47,530 ასე რომ, თუ ამ, თუ == 1, მაშინ მითითებული S1 ტოლია "ბოთლი" 1273 00:51:47,530 --> 00:51:52,010 და s2 ტოლია "ბოთლი", რადგან ეს იქნება 1 1274 00:51:52,010 --> 00:51:56,340 ბოთლი, და ეს იქნება ამისთვის 0 ბოთლებში. 1275 00:51:56,340 --> 00:51:58,250 და ეს აქ, რას წარმოადგენს? 1276 00:51:58,250 --> 00:51:59,780 უბრალოდ უნდა იყოს წმინდა. 1277 00:51:59,780 --> 00:52:00,620 ეს არის მხოლოდ კომენტარი. 1278 00:52:00,620 --> 00:52:03,730 ასე რომ ის ფაქტი, რომ თქვენ შეგიძლიათ ერთხაზიანი კომენტარი იმას ნიშნავს, თქვენ 1279 00:52:03,730 --> 00:52:06,110 შეიძლება კომენტარი თქვენი კოდი მოსწონს, მაგრამ კიდევ ერთი საერთო 1280 00:52:06,110 --> 00:52:09,050 პარადიგმა, ძალიან, არის, რომ, თუ თქვენ გაქვთ სუპერ მოკლე ფრაზა, რომ 1281 00:52:09,050 --> 00:52:11,410 გსურთ დააყენა თავის და უბრალოდ მეტი იკითხება დააყენოს 1282 00:52:11,410 --> 00:52:13,270 ეს უფლება დასასრულს ხაზი კოდი, თქვენ შეგიძლიათ 1283 00:52:13,270 --> 00:52:15,230 აბსოლუტურად რაღაც მოსწონს ეს. 1284 00:52:15,230 --> 00:52:20,150 >> ახლა მე ვფიქრობ ამის გაკეთება? Else თუ არ არის ტოლი 1. 1285 00:52:20,150 --> 00:52:21,620 ამიტომ bang შეადგენს - 1286 00:52:21,620 --> 00:52:23,150 ძახილის წერტილი ცნობილია როგორც "bang". 1287 00:52:23,150 --> 00:52:25,080 ამიტომ bang = 1. 1288 00:52:25,080 --> 00:52:28,530 ასე რომ, თუ მე არ ტოლია 1, რა ნაცვლად გსურთ? 1289 00:52:28,530 --> 00:52:31,700 ისე, პირველი სიტყვა მინდა იყოს რა? 1290 00:52:34,620 --> 00:52:40,030 ამიტომ string 1 უნდა იყოს "ბოთლი" ამისთვის მრავლობითი ბოთლები, 1291 00:52:40,030 --> 00:52:42,440 და მაშინ ეს იქნება მრავლობითი "ბოთლი", ისევე, ახლა. 1292 00:52:42,440 --> 00:52:43,800 და ვნახავთ, თუ ეს რეალურად იღებს გვაძლევს 1293 00:52:43,800 --> 00:52:44,870 სად გვინდა წასვლა. 1294 00:52:44,870 --> 00:52:47,680 ახლა თუ გადახვევა ქვემოთ აქ, რომ მე ჩართვის 1295 00:52:47,680 --> 00:52:50,170 არა მარტო მე, არამედ S1. 1296 00:52:50,170 --> 00:52:51,860 მე ჩართვის მე და S1. 1297 00:52:51,860 --> 00:52:54,440 და შემდეგ ქვევით აქ, მე მინუს 1, რომელიც იგივეა, რაც 1298 00:52:54,440 --> 00:52:55,920 ადრე, მაგრამ S2. 1299 00:52:55,920 --> 00:52:58,730 სხვა სიტყვებით, მინდა ინგლისური სიტყვა შეცვალოს საფუძველზე 1300 00:52:58,730 --> 00:52:59,930 ამ ლოგიკით. 1301 00:52:59,930 --> 00:53:03,310 ახლა უკვე გარკვეული პრობლემები ამ კოდექსში. 1302 00:53:03,310 --> 00:53:08,460 რა ბრალია უკვე გარეთ კარიბჭე აქ? 1303 00:53:08,460 --> 00:53:10,796 ჰო? 1304 00:53:10,796 --> 00:53:13,210 აუდიტორია: [INAUDIBLE]. 1305 00:53:13,210 --> 00:53:13,800 >> დევიდ ჯ Malan: ზუსტად. 1306 00:53:13,800 --> 00:53:16,030 ასე რომ მე უკვე დაარღვია გაკვეთილი ფარგლებს. 1307 00:53:16,030 --> 00:53:19,610 ამიტომ მე განაცხადა S1 და S2, მაგრამ მე ვაკეთებ ამას შიგნით 1308 00:53:19,610 --> 00:53:22,980 Curly braces, რაც იმას ნიშნავს, yeah, ამ კოდექსით იმუშავებს up 1309 00:53:22,980 --> 00:53:27,430 სანამ ხაზი 42, მაგრამ როგორც კი მოხვდა ხაზი 43, გამოიცანით რა არ 1310 00:53:27,430 --> 00:53:28,900 აღარ არსებობს? 1311 00:53:28,900 --> 00:53:32,600 ისე, მიხვდები რა აღარ ფარგლებს - არც S1 ან S2. 1312 00:53:32,600 --> 00:53:33,780 ამიტომ, ჩვენ უნდა დაფიქსირება ამ. 1313 00:53:33,780 --> 00:53:36,180 ნება მომეცით წაშლა დეკლარაციების. 1314 00:53:36,180 --> 00:53:39,320 მე დავტოვებთ ცვლადი სახელები და წაშლა ამ აქ 1315 00:53:39,320 --> 00:53:40,120 და წაშლა ამ აქ. 1316 00:53:40,120 --> 00:53:43,557 და რა ხაზები უნდა ნამდვილად განაცხადოს ეს ყველაფერი? 1317 00:53:43,557 --> 00:53:44,960 აუდიტორია: [INAUDIBLE]. 1318 00:53:44,960 --> 00:53:45,410 დევიდ ჯ Malan: ჰო, ასე ალბათ 1319 00:53:45,410 --> 00:53:46,850 უფლება აქ, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 ამიტომ სიმებიანი S1 და შემდეგ სიმებიანი S2. 1321 00:53:50,670 --> 00:53:51,950 და თურმე, შემიძლია ამის გაკეთება. 1322 00:53:51,950 --> 00:53:54,260 თუ თქვენ გამოცხადების ორი ცვლადი იგივე ტიპის, 1323 00:53:54,260 --> 00:53:57,420 შეგიძლიათ რეალურად მხოლოდ გამოიყენოთ მძიმით და გავაკეთოთ, რომ C. ყველა 1324 00:53:57,420 --> 00:53:58,970 უფლება, ამიტომ ახლა მე ორი ცვლადის - 1325 00:53:58,970 --> 00:53:59,860 S1 და S2. 1326 00:53:59,860 --> 00:54:02,000 მე მინიჭება მათ ღირებულებებს ამ 1327 00:54:02,000 --> 00:54:04,210 პირობები აქ, ან აქ. 1328 00:54:04,210 --> 00:54:06,690 და მაშინ მე გამოყენებით მათ ქვემოთ ქვემოთ. 1329 00:54:06,690 --> 00:54:10,960 რამდენად კარგად არის ეს ახლა იმუშავებს? 1330 00:54:10,960 --> 00:54:12,740 >> ისე, ეს მაინც ცოტა buggy, მაგრამ მოდით მინიმუმ ვხედავ 1331 00:54:12,740 --> 00:54:13,730 რამდენად შორს ჩვენ მიღებული. 1332 00:54:13,730 --> 00:54:16,500 ნება მომეცით, წავიდეთ წინ და მიიღოს beer3. 1333 00:54:16,500 --> 00:54:17,695 ეს beer3? 1334 00:54:17,695 --> 00:54:19,410 Yep, ეს არის beer3. 1335 00:54:19,410 --> 00:54:21,510 და ახლა ნება მომეცით წავიდეთ წინ და აწარმოებს beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 ჩვენ შეგვიძლია ალბათ გამოტოვოთ მათი უმრავლესობა. 1338 00:54:25,840 --> 00:54:29,100 და ქვემოთ აქ, შევხედოთ, რომ. 1339 00:54:29,100 --> 00:54:31,110 "ერთი ბოთლი ლუდი კედელზე, ერთი ბოთლი ლუდი, მიიღოს 1340 00:54:31,110 --> 00:54:34,306 ერთი ქვევით, გაიაროს ეს გარშემო, 0 ბოთლი ლუდი კედელზე. " 1341 00:54:34,306 --> 00:54:37,570 მაგრამ მე ხატვის თქვენს ყურადღებას მხოლოდ ნახევარი გადაწყვეტა. 1342 00:54:37,570 --> 00:54:39,620 სახის ბრალია აქ. 1343 00:54:39,620 --> 00:54:43,030 ასე რომ, როგორც ჩანს, კუთხეში შემთხვევებში წარმოიქმნება როცა შეადგენს რა 1344 00:54:43,030 --> 00:54:44,030 ორი ღირებულებები? 1345 00:54:44,030 --> 00:54:45,020 აუდიტორია: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 დევიდ ჯ Malan: 2 და 1. 1347 00:54:46,190 --> 00:54:48,180 ეს არ არის 1 და არა 1. 1348 00:54:48,180 --> 00:54:51,890 ეს მართლაც მხოლოდ ამ ბოლო ორი stanzas ამ სიმღერას. 1349 00:54:51,890 --> 00:54:53,890 რა შემიძლია ნაცვლად გსურთ? 1350 00:54:53,890 --> 00:54:58,890 ასე რომ, როგორც ჩანს, არ დაიჭირეს შემთხვევაში თუ არის == 1, 1351 00:54:58,890 --> 00:55:02,240 მაშინ პირველი სიტყვა არის "ბოთლი", მაგრამ მეორე სიტყვა 1352 00:55:02,240 --> 00:55:07,230 არის "ბოთლი". მაგრამ აქ, მინდა, რომ შეიცვალოს ეს უნდა იყოს == 2. 1353 00:55:07,230 --> 00:55:08,570 და თუ ეს საქმე, რა უნდათ 1354 00:55:08,570 --> 00:55:09,620 პირველი სიტყვა უნდა იყოს? 1355 00:55:09,620 --> 00:55:10,430 აუდიტორია: "ბოთლები". 1356 00:55:10,430 --> 00:55:12,890 დევიდ ჯ Malan: "ბოთლები", ასე რომ ორი ბოთლი. 1357 00:55:12,890 --> 00:55:14,690 და შემდეგ ეს სიტყვა აქ უნდა იყოს - 1358 00:55:14,690 --> 00:55:15,340 აუდიტორია: "ბოთლი". 1359 00:55:15,340 --> 00:55:17,316 დევიდ ჯ Malan: "ბოთლი", სინგულარული. 1360 00:55:20,430 --> 00:55:25,160 >> ყველა უფლება, მოდით დააშორებს, დაბრუნდეს აქ, ხელახლა აწარმოებს გააკეთოს, 1361 00:55:25,160 --> 00:55:28,590 ხელახალი პერსპექტივაში beer3, ტიპის 99 ერთხელ. 1362 00:55:28,590 --> 00:55:30,710 Okay, "სეგმენტაციის ბრალია (ბირთვი dumped)." 1363 00:55:30,710 --> 00:55:32,780 რა არ მე დავაშავეთ? 1364 00:55:36,050 --> 00:55:38,722 აუდიტორია: თქვენ არ ღირებულება [INAUDIBLE]. 1365 00:55:38,722 --> 00:55:40,480 დევიდ ჯ Malan: Ah, კარგი წერტილი. 1366 00:55:40,480 --> 00:55:43,310 ყველა უფლება, ასე რომ არასწორი აქ? 1367 00:55:43,310 --> 00:55:45,450 ასე რომ სეგმენტაციის ბრალია, და ჩვენ რეალურად აპირებს ვხედავ 1368 00:55:45,450 --> 00:55:49,020 ამ საკმაოდ რამდენჯერმე მომავალში, შეგნებულად. 1369 00:55:49,020 --> 00:55:51,030 მაგრამ ახლა, რას ნიშნავს რეალურად? 1370 00:55:51,030 --> 00:55:53,620 სეგმენტაცია ბრალია თითქმის ყოველთვის ნიშნავს, რომ თქვენ გაქვთ 1371 00:55:53,620 --> 00:55:56,760 როგორღაც ცდილობდა წვდომისათვის მეხსიერება, RAM თქვენს კომპიუტერში, 1372 00:55:56,760 --> 00:56:00,600 რომ არა ხართ საკუთარი, რომ თქვენ რეალურად არ სთხოვა 1373 00:56:00,600 --> 00:56:02,050 ოპერაციული სისტემა. 1374 00:56:02,050 --> 00:56:04,440 ასე რომ, ამ შემთხვევაში, შეამჩნია რა მე ვაკეთებ, რაც 1375 00:56:04,440 --> 00:56:05,870 გაყალბდა ჩემი ლოგიკა. 1376 00:56:05,870 --> 00:56:09,500 მე არ ენიჭება S1 და S2 ღირებულება თუ უდრის 1. 1377 00:56:09,500 --> 00:56:11,590 მე ასევე კეთდება, რომ თუ შეადგენს 2. 1378 00:56:11,590 --> 00:56:13,710 მაგრამ მე არ გაკეთდეს ეს უსასრულო რიგი სხვა 1379 00:56:13,710 --> 00:56:14,690 შესაძლებლობები - 1380 00:56:14,690 --> 00:56:17,940 კერძოდ, 3 ან 4 ან dot, dot, dot, 99. 1381 00:56:17,940 --> 00:56:20,100 ასე რომ ერთი სარემონტო ამ შეეძლო მხოლოდ მოდით 1382 00:56:20,100 --> 00:56:22,190 აქვს სხვაგან მდგომარეობა. 1383 00:56:22,190 --> 00:56:26,780 და ნება მომეცით წავიდეს აქ და ვთქვათ S1 შეადგენს - 1384 00:56:26,780 --> 00:56:28,180 რა უნდა იყოს აქ? 1385 00:56:28,180 --> 00:56:28,750 აუდიტორია: [INAUDIBLE]. 1386 00:56:28,750 --> 00:56:30,460 >> დევიდ ჯ Malan: "ბოთლები", რადგან საერთო შემთხვევაში, 1387 00:56:30,460 --> 00:56:32,020 უბრალოდ იგივე. 1388 00:56:32,020 --> 00:56:35,580 ამიტომ შეადგენს ციტირებით, unquote, "ბოთლი". ასე რომ მრავლობითი 1389 00:56:35,580 --> 00:56:41,010 ბოთლები, და შემდეგ აქ, ამისთვის მრავლობითი ბოთლებში. 1390 00:56:41,010 --> 00:56:44,580 Okay, ახლა ნება მომეცით დაბრუნდეს ჩემი ტერმინალის ფანჯარა, 1391 00:56:44,580 --> 00:56:47,200 recompile, ხელახლა გაუშვით. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Whew. 1394 00:56:49,150 --> 00:56:50,610 და მოდით სწრაფი საღი აზრის ქვითარი. 1395 00:56:50,610 --> 00:56:52,400 ტექნიკურად ჩვენ ავღნიშნო მინდა წაიკითხონ ყველა ამ დარწმუნდეთ 1396 00:56:52,400 --> 00:56:53,370 ისინი ზუსტი, მაგრამ მოდით შევხედოთ 1397 00:56:53,370 --> 00:56:54,640 მაინც ცნობილი დამნაშავეები. 1398 00:56:54,640 --> 00:56:57,370 3 ბოთლი, 2 ბოთლი, 2 ბოთლი, 1 1399 00:56:57,370 --> 00:57:00,380 ბოთლი, 1 ბოთლი, 0 ბოთლებში. 1400 00:57:00,380 --> 00:57:03,080 ჩვენ, როგორც ჩანს, მაინც დაფიქსირდა ის არის. 1401 00:57:03,080 --> 00:57:06,010 მაგრამ დაჭერა აქ არის ის, რომ რა ღმერთი საშინელი ხმაური ეს 1402 00:57:06,010 --> 00:57:07,470 უბრალოდ გადაჭრის სულელური 1403 00:57:07,470 --> 00:57:09,540 ერთი ხასიათი გრამატიკული დეტალურად. 1404 00:57:09,540 --> 00:57:11,150 ასე რომ არსებობს სახის მიზეზის გამო, რომ მე გაჭრა ამ კუთხეში 1405 00:57:11,150 --> 00:57:14,090 ადრე, რადგან ის უბრალოდ სრულიად შემაშფოთებელი უნდა უნდა 1406 00:57:14,090 --> 00:57:15,020 წერენ ამ ბევრად კოდი. 1407 00:57:15,020 --> 00:57:17,530 მაგრამ აღმოჩნდება, რომ იქ ოდნავ უფრო ელეგანტური გზები 1408 00:57:17,530 --> 00:57:20,110 გამოხატავს ზუსტად იგივე რამ. 1409 00:57:20,110 --> 00:57:22,040 და ჩვენ შეგვიძლია გავაკეთოთ ეს შემდეგნაირად. 1410 00:57:22,040 --> 00:57:23,890 >> ნება მომეცით დატოვეთ ეკრანზე ერთი მომენტი და 1411 00:57:23,890 --> 00:57:27,320 შემოიღონ რაღაც ცნობილი როგორც ternary ოპერატორს. 1412 00:57:27,320 --> 00:57:29,600 ეს არის სახის ერთი ლაინერი ეს მხოლოდ იმას ნიშნავდა, რომ ჩვენი 1413 00:57:29,600 --> 00:57:31,880 ცხოვრობს პატარა sexier, როგორც დაჰპირდა. 1414 00:57:31,880 --> 00:57:33,130 და მე ვაპირებ ამის გაკეთება შემდეგნაირად. 1415 00:57:33,130 --> 00:57:35,810 მომეცი სიმებიანი მოუწოდა S1, და ნება მომეცით 1416 00:57:35,810 --> 00:57:37,200 მივანიჭოთ შემდეგი რედაქციით. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "ბოთლი", წინააღმდეგ შემთხვევაში "ბოთლი". სიმებიანი s2 იღებს (მე == 2)? 1419 00:57:47,820 --> 00:57:52,670 "ბოთლი", წინააღმდეგ შემთხვევაში "ბოთლი". 1420 00:57:52,670 --> 00:57:57,050 მერე რა მაშინ არის განსხვავება აქ? 1421 00:57:57,050 --> 00:57:59,370 ეს ორი ხაზი კოდი, მე ამტკიცებენ, შეიძლება 1422 00:57:59,370 --> 00:58:02,200 შეცვალეთ ეს მთელი სასადილო. 1423 00:58:02,200 --> 00:58:04,280 ასე რომ ეძახით სასადილო, მხოლოდ იმიტომ, რომ იგი სახის rubs me 1424 00:58:04,280 --> 00:58:05,940 არასწორი გზა, რომ ამდენი ხაზები კოდი. 1425 00:58:05,940 --> 00:58:06,650 არ არასწორია. 1426 00:58:06,650 --> 00:58:07,700 ეს არ არის ცუდი დიზაინი. 1427 00:58:07,700 --> 00:58:10,140 ისევე, ეს შესანიშნავად სწორი და შესანიშნავად ჯარიმა. 1428 00:58:10,140 --> 00:58:12,970 მაგრამ კოდირების იღებს რუტინული თუ თქვენ უნდა გამოხატოს თავის ასე 1429 00:58:12,970 --> 00:58:15,530 Damn კონკრეტულად ისევ და ისევ და ისევ და ისევ მარტივი 1430 00:58:15,530 --> 00:58:16,620 სცენარი მოსწონს ეს. 1431 00:58:16,620 --> 00:58:19,470 ამიტომ C აქვს გარკვეული კომბინაციები, მოსწონს ეს. 1432 00:58:19,470 --> 00:58:24,270 ასე რომ, ეს არსებითად ამბობს, განაცხადოს სიმებიანი მოუწოდა S1 და 1433 00:58:24,270 --> 00:58:32,610 მივანიჭოთ მას არც ამ მნიშვნელობის ან ამ მნიშვნელობის თუ არის == - 1434 00:58:32,610 --> 00:58:35,290 უკაცრავად, მინდა გითხრათ, ამ უფრო ნათლად. 1435 00:58:35,290 --> 00:58:41,680 განაცხადოს ცვლადი S1, მივანიჭოთ ის მნიშვნელობა, თუ ეს მართლაც ასეა. 1436 00:58:41,680 --> 00:58:44,280 წინააღმდეგ შემთხვევაში, დაავალოს ეს მნიშვნელობა. 1437 00:58:44,280 --> 00:58:47,220 ასე რომ, სხვა სიტყვებით, ეს არის ერთგვარი ერთი ხაზის გზა 1438 00:58:47,220 --> 00:58:51,490 ამბობდნენ, თუ სხვაგან მაგრამ ამით დავალება გასწვრივ გზა. 1439 00:58:51,490 --> 00:58:55,540 ასე რომ, თუ მე არის 1, მაშინ წავიდეთ წინ და დაარქვით "ბოთლი". და 1440 00:58:55,540 --> 00:58:59,830 მაშინ ეს სხვას, მას "ბოთლი". იმავდროულად, S2, 1441 00:58:59,830 --> 00:59:04,060 მეორე სიტყვა, რომელიც ჩვენ გვჭირდება, რომ განსაზღვროს, თუ უდრის 2, ჩვენ 1442 00:59:04,060 --> 00:59:08,350 მითითებული s2 რომ "ბოთლი". წინააღმდეგ შემთხვევაში, ვაყენებთ მას "ბოთლი". და რა 1443 00:59:08,350 --> 00:59:11,460 ეს იმას ნიშნავს, ახლა შემიძლია გავლა ამ და წაშლა ყველა 1444 00:59:11,460 --> 00:59:12,860 იმ ხაზების კოდი. 1445 00:59:12,860 --> 00:59:17,220 და როდესაც ვამბობ, რომ, გარკვეულწილად ridiculously, რომ ეს არის 1446 00:59:17,220 --> 00:59:20,060 sexier, ეს sexier წელს სახის სტილისტური გრძნობა. 1447 00:59:20,060 --> 00:59:22,660 იმისა, რომ ფუნქციურად კოდი რეალურად აპირებს 1448 00:59:22,660 --> 00:59:24,610 გააკეთოს ზუსტად იგივე რამ. 1449 00:59:24,610 --> 00:59:26,890 და მიუხედავად იმისა, რომ შეიძლება პატარა cryptic თავდაპირველად 1450 00:59:26,890 --> 00:59:29,250 ერთი შეხედვით, რადგან ჩვენ არ უნახავს ამ შენება ადრე, მინდა 1451 00:59:29,250 --> 00:59:31,850 ამტკიცებენ, რომ ის საბოლოოდ იქნება ასე უფრო მეტი 1452 00:59:31,850 --> 00:59:34,820 იკითხება და იმდენად ადვილი ჩვენ ადამიანები, რათა სახის 1453 00:59:34,820 --> 00:59:36,830 მესმის, რადგან ახლა თქვენ შეგიძლიათ უბრალოდ წაიკითხა 1454 00:59:36,830 --> 00:59:38,830 კოდი ყველა ერთ ხაზს. 1455 00:59:38,830 --> 00:59:41,550 ეს ჯერ კიდევ მსგავსი სულისკვეთებით უნდა თუ, სადაც ეს არის 1456 00:59:41,550 --> 00:59:44,920 მდგომარეობა და შემდეგ ეს რა შიგნით თუ და ამ 1457 00:59:44,920 --> 00:59:46,480 არის რა შიგნით სხვას. 1458 00:59:46,480 --> 00:59:49,450 მაგრამ ჩვენ შეგვიძლია გავაკეთოთ ეს უბრალოდ ბევრად უფრო ელეგანტურად. 1459 00:59:49,450 --> 00:59:52,650 >> და თუ ახლა დავუბრუნდეთ ჩემი ტერმინალი, რომელმაც წაიშალოს ყველა 1460 00:59:52,650 --> 00:59:55,530 იმ ხაზები და შეცვალა მათ მხოლოდ ამ ორ, 1461 00:59:55,530 --> 01:00:00,150 recompile, ხელახლა პერსპექტივაში ბოთლი ლუდის 99 შეამჩნევთ, რომ ჩემი 1462 01:00:00,150 --> 01:00:03,350 გრამატიკა არის, ფაქტობრივად, დღემდე სწორი. 1463 01:00:03,350 --> 01:00:06,160 ასე რომ კიდევ ერთხელ, რაღაც უნდა დაწყებულიყო. 1464 01:00:06,160 --> 01:00:08,840 2 ბოთლი ლუდი, 1 ბოთლი ლუდი. 1465 01:00:08,840 --> 01:00:09,370 გამოიყურება უფლება. 1466 01:00:09,370 --> 01:00:10,100 Yeah. 1467 01:00:10,100 --> 01:00:13,900 ასე რომ გვაქვს ბევრად უფრო ლაკონური გადაწყვეტა. 1468 01:00:13,900 --> 01:00:16,020 ასე რომ, ეს, ძალიან, როგორც თქვენ მიიღებთ უფრო კომფორტულად C, არ 1469 01:00:16,020 --> 01:00:18,630 ემთხვეოდეს პირველი pset ან თუნდაც მეორე, მაგრამ 1470 01:00:18,630 --> 01:00:21,170 გააცნობიეროს, რომ ეს აშენებს შეგიძლიათ საშუალებას მოგვცემს გავაკეთოთ რამ ოდესმე 1471 01:00:21,170 --> 01:00:22,810 უფრო ელეგანტურად. 1472 01:00:22,810 --> 01:00:25,200 ახლა მოდით ერთი სხვა რამ აქ. 1473 01:00:25,200 --> 01:00:31,460 ნება მომეცით წავიდეთ წინ და ქმნის return1.c. 1474 01:00:31,460 --> 01:00:34,340 ახლა დავიწყოთ გადაჭრას ერთი პრობლემა ისე, რომ 1475 01:00:34,340 --> 01:00:37,140 საშუალებას გვაძლევს დავწეროთ უფრო დახვეწილი კოდი. 1476 01:00:37,140 --> 01:00:39,960 >> ასე რომ აქ მარტივი პატარა პროგრამა, რომლის მიზანი ცხოვრებაში 1477 01:00:39,960 --> 01:00:41,870 არის ნამატი ღირებულებებს. 1478 01:00:41,870 --> 01:00:43,100 და ფაქტობრივად, ავიღოთ უკან გადადგმული ნაბიჯია. 1479 01:00:43,100 --> 01:00:44,400 ნება მომეცით ამის გაკეთება ხელით. 1480 01:00:44,400 --> 01:00:52,200 ნება მომეცით გავაკეთოთ მოიცავს და int ძირითადი (void). 1481 01:00:52,200 --> 01:00:53,450 და ნება მომეცით დაარქვით increment.c. 1482 01:00:57,150 --> 01:00:58,570 და რა გსურთ? 1483 01:00:58,570 --> 01:01:02,240 მე ვაპირებ წავიდეთ წინ და ვთქვათ რაღაც - 1484 01:01:02,240 --> 01:01:04,280 ჩვენ მოვუწოდებთ ნომრები იგივე - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 ასე int x იღებს 2; printf x არის% d, ახალი ხაზი, x. 1487 01:01:13,670 --> 01:01:16,780 ამიტომ მე აკრეფით სწრაფად, მაგრამ სახის ნაცნობი პერსონალის არის. 1488 01:01:16,780 --> 01:01:18,830 მაშინ მე აპირებს x + +. 1489 01:01:18,830 --> 01:01:21,710 მაშინ მე ვაპირებ ბეჭდვა იმავე სასჯელს კვლავ. 1490 01:01:21,710 --> 01:01:24,550 და შემდეგ მე ვაპირებ დაბრუნებას 0 მხოლოდ დატოვა პროგრამა. 1491 01:01:24,550 --> 01:01:25,960 ყველა უფლება, ასე რომ ეს არის პროგრამა, რომელიც 1492 01:01:25,960 --> 01:01:26,960 increments ნომერი. 1493 01:01:26,960 --> 01:01:29,830 ეს პირველი აპირებს ინიციალიზაცია რაღაც 2, და შემდეგ ეს 1494 01:01:29,830 --> 01:01:33,470 აპირებს ნამატი იგი და დაბეჭდეთ ერთხელ. 1495 01:01:33,470 --> 01:01:36,930 >> მოდით აწარმოებს წუთობრივი, წარმოუდგენლად მარტივი პროგრამა. 1496 01:01:36,930 --> 01:01:40,940 მაგრამ ვარაუდობენ, რომ მინდა კუბი ღირებულება, ასე რომ 1497 01:01:40,940 --> 01:01:42,490 რაღაც გარკვეულწილად თვითნებური. 1498 01:01:42,490 --> 01:01:45,140 მე რეალურად გსურთ x იღებს კუბი იგი. 1499 01:01:45,140 --> 01:01:47,570 ასე რომ მე ვერ გამოიყენებს რასაც POW ფუნქცია, მაგრამ არ 1500 01:01:47,570 --> 01:01:48,650 ნამდვილად ვიცი, სად, რომ ჯერ კიდევ არ არის. 1501 01:01:48,650 --> 01:01:50,580 ამიტომ მე ვაპირებ ამის გაკეთებას მოძველებული გზა. 1502 01:01:50,580 --> 01:01:54,550 x ჯერ ამ უდრის x ჯერ x ჯერ x. 1503 01:01:54,550 --> 01:01:56,880 ამიტომ მე cubing ღირებულება, გამრავლებით ეს თავისთავად ერთხელ 1504 01:01:56,880 --> 01:02:00,440 და ისევ და ისევ, ისე, რომ არ მივიღებთ ძალა 1505 01:02:00,440 --> 01:02:02,050 3 ამ შემთხვევაში. 1506 01:02:02,050 --> 01:02:06,000 ახლა ციფრები უნდა ბეჭდვა უნდა იყოს, როგორც ჩვენ დავინახავთ 1507 01:02:06,000 --> 01:02:08,450 აქ - გაამწვანე წუთობრივი, ამიტომ რეალურად ნამდვილად არ იყოს 1508 01:02:08,450 --> 01:02:10,260 აღარ, მაგრამ ჩვენ დავტოვებთ სახელი მარტო - 1509 01:02:10,260 --> 01:02:11,590 2 და შემდეგ 8. 1510 01:02:11,590 --> 01:02:17,670 ახლა ჩვენ გვყავს დასაწყისი შესაძლებლობა დახვეწას 1511 01:02:17,670 --> 01:02:21,570 აქ, სადაც ამ cubing რამ საქართველოს გამრავლებით ნომერი 1512 01:02:21,570 --> 01:02:24,680 თავისთავად თავისთავად თავისთავად იგრძნობა ეს შეიძლება იყოს მხოლოდ 1513 01:02:24,680 --> 01:02:27,920 სასარგებლო ჰქონდეს როგორც ფუნქცია, ჰგავს ვინმე გადაწყვიტა 1514 01:02:27,920 --> 01:02:30,430 წლის წინ - იცით, როგორი სასარგებლო თუ რომელიმე ჩვენგანი ზის ქვემოთ 1515 01:02:30,430 --> 01:02:33,120 და წერს printf ისე, რომ დანარჩენ მსოფლიოსთან შეგიძლიათ მისი გამოყენება, 1516 01:02:33,120 --> 01:02:36,160 რატომ არ გვაქვს დასხდნენ და დაწეროთ ფუნქცია მოუწოდა კუბი 1517 01:02:36,160 --> 01:02:39,250 რომ აკეთებს ამას cubing ჩვენთვის, ამიტომ ჩვენ არ გვაქვს ხელით 1518 01:02:39,250 --> 01:02:41,500 განახორციელოს ცნება cubing ღირებულებების აქ? 1519 01:02:41,500 --> 01:02:44,040 >> ასე მარტივი მაგალითი, მაგრამ მოდით წავიდეთ წინ და გამოიყენოთ ეს არის როგორც 1520 01:02:44,040 --> 01:02:46,280 შესაძლებლობა დავწეროთ ჩვენი საკუთარი ფუნქცია. 1521 01:02:46,280 --> 01:02:49,110 ასე რომ ჯერჯერობით ჩვენ მხოლოდ გამოყენებული ძირითადი და ჩვენ გამოყენებული სხვა 1522 01:02:49,110 --> 01:02:51,780 სახალხო ფუნქციებს, მაგრამ ჩვენ არ წერია ჩვენი საკუთარი. 1523 01:02:51,780 --> 01:02:52,650 ასე რომ აქ ჩვენ მივდივართ. 1524 01:02:52,650 --> 01:02:56,330 მე ვაპირებ წავიდეთ წინ და დაწეროთ ფუნქცია მოუწოდა კუბი. 1525 01:02:56,330 --> 01:02:58,490 და მე ვაპირებ აქვს მიიღოს შეყვანის. 1526 01:02:58,490 --> 01:03:02,070 ამიტომ მისი შეყვანის იქნება მთელი რიცხვი. 1527 01:03:02,070 --> 01:03:03,570 და რა არის ეს გაკეთებას აპირებს? 1528 01:03:03,570 --> 01:03:08,500 ის აპირებს გამოაცხადოს int გამომავალი = შეყვანის ჯერ შეყვანის 1529 01:03:08,500 --> 01:03:09,880 ჯერ შეყვანის. 1530 01:03:09,880 --> 01:03:12,190 და მაშინ ის დაბრუნებას აპირებს, რომ გამომუშავება. 1531 01:03:12,190 --> 01:03:14,500 და მერე უნდა იყოს კონკრეტული ახლა. 1532 01:03:14,500 --> 01:03:16,820 ეს ფუნქცია დაბრუნებას აპირებს int. 1533 01:03:16,820 --> 01:03:19,130 ასე რომ აქ მაშინ ასე მინდა დაწეროთ ფუნქციები. 1534 01:03:19,130 --> 01:03:20,850 თქვენ პირველი გადაწყვიტოს რა სახელი თქვენი 1535 01:03:20,850 --> 01:03:21,720 ფუნქცია იქნება. 1536 01:03:21,720 --> 01:03:23,964 და საერთოდ, რაღაც განმარტებითი კარგია, ასე რომ მე 1537 01:03:23,964 --> 01:03:25,060 ეძახით კუბი. 1538 01:03:25,060 --> 01:03:27,180 მაშინ თქვენ უნდა მიუთითოთ ის დაბრუნებას აპირებს, რა 1539 01:03:27,180 --> 01:03:28,240 მისი გამომავალი იქნება. 1540 01:03:28,240 --> 01:03:29,595 და ჩვენ არ გვაქვს, რომ ბევრი პარამეტრით ამჟამად. 1541 01:03:29,595 --> 01:03:32,260 Int, char, ათწილადი, bool, სიმებიანი. 1542 01:03:32,260 --> 01:03:34,260 ახლა მე ვაპირებ გამყარებაში int, რადგან მინდა ეს 1543 01:03:34,260 --> 01:03:35,880 დაბრუნების რიცხვი. 1544 01:03:35,880 --> 01:03:38,770 მაშინ თქვენ უნდა მიუთითოთ მისი საშუალებებით, მათი არსებობის შემთხვევაში, რომლებიც. 1545 01:03:38,770 --> 01:03:41,570 და თუ კუბი იღებს არგუმენტი, იღებს რაღაც შორის 1546 01:03:41,570 --> 01:03:44,970 ფრჩხილებში, თქვენ უნდა მივცეთ, რომ არგუმენტად სახელი ისე, რომ 1547 01:03:44,970 --> 01:03:47,860 შეგიძლიათ ეძახით რაღაც როგორც თქვენ განხორციელების ან წერილობით 1548 01:03:47,860 --> 01:03:50,550 ამ ფუნქციის, და თქვენ უნდა მისცეს მას ტიპი, რომელიც ამ 1549 01:03:50,550 --> 01:03:51,810 შემთხვევაში იქნება int. 1550 01:03:51,810 --> 01:03:54,690 ასე მოკლედ, კუბი არის ფუნქცია, რომელიც იღებს მთელ რიცხვს 1551 01:03:54,690 --> 01:03:57,560 როგორც შეყვანის და ანაზღაურება რიცხვი როგორც გამომუშავება. 1552 01:03:57,560 --> 01:03:59,240 >> ასე რომ რას ვუყოთ, რომ შეყვანის? 1553 01:03:59,240 --> 01:04:03,710 კარგად, შეესაბამება 14, ვაცხადებ ცვლადში გამომუშავება, და მე 1554 01:04:03,710 --> 01:04:07,410 დაავალოს ეს ღირებულება, შეყვანის ჯერ შეყვანის ჯერ შეყვანის. 1555 01:04:07,410 --> 01:04:11,490 და მერე დაბრუნდნენ გამომუშავება. 1556 01:04:11,490 --> 01:04:14,890 ასე როგორ უნდა გამოვიყენო ეს მაშინ? 1557 01:04:14,890 --> 01:04:19,210 რა შევცვალო ეს ხაზგასმით გმირები on line 1558 01:04:19,210 --> 01:04:21,006 7 უნდა, როგორ ფიქრობთ? 1559 01:04:21,006 --> 01:04:21,800 აუდიტორია: [INAUDIBLE]. 1560 01:04:21,800 --> 01:04:25,570 დევიდ ჯ Malan: ჰო, ასე Cube of x. 1561 01:04:25,570 --> 01:04:28,290 ასე რომ X არის ცვლადი, რაც იმას ნიშნავს, იგი აჩერებს გარკვეული მნიშვნელობა. 1562 01:04:28,290 --> 01:04:30,190 საბედნიეროდ, ეს ტიპის რიცხვი. 1563 01:04:30,190 --> 01:04:34,280 და რადგან x არის int, რაც იმას ნიშნავს, მე ვერ გაივლის მას კუბი. 1564 01:04:34,280 --> 01:04:39,500 და მიუხედავად იმისა, მე უმთავრესი ღირებულება x ღირებულების 1565 01:04:39,500 --> 01:04:42,780 საქართველოს Cube x, როგორც უკვე შემთხვევაში ჯერჯერობით ნებისმიერ დროს 1566 01:04:42,780 --> 01:04:46,150 თანაბარი ნიშანი და ხაზი კოდი, პერსონალის მარჯვენა 1567 01:04:46,150 --> 01:04:49,090 იღებს შესრულებული და შემდეგ იღებს ენიჭება 1568 01:04:49,090 --> 01:04:50,150 ღირებულება მარცხენა. 1569 01:04:50,150 --> 01:04:52,950 ასე რომ ბრძანებით ოპერაციების არის როგორც ჩვენ ვიმედოვნებთ. 1570 01:04:52,950 --> 01:04:56,620 ასე რომ ჯერ ეს სამუშაო? 1571 01:04:56,620 --> 01:04:58,410 ისე, ნება მომეცით დაცემას აქ. 1572 01:04:58,410 --> 01:04:59,970 ნება მომეცით გახსენით ჩემი ტერმინალის ფანჯარაში. 1573 01:04:59,970 --> 01:05:03,610 ნება მომეცით არ მიიღოს წუთობრივი, შეიყვანეთ. 1574 01:05:03,610 --> 01:05:07,140 "იმპლიციტური დეკლარაცია ფუნქცია" კუბი "არასწორია წელს 1575 01:05:07,140 --> 01:05:13,700 C99. "როგორც განზე, c99 ეხება ენა C, როგორიც იყო 1576 01:05:13,700 --> 01:05:16,790 განისაზღვრა 1999 წელს, რომელიც იყო update ზე მეტი ვერსია საწყისი 1577 01:05:16,790 --> 01:05:19,360 1989, რომელიც განახლების მეტი ორიგინალური. 1578 01:05:19,360 --> 01:05:21,740 ასე რომ ყველა უნდა ნიშნავდეს ეს. 1579 01:05:21,740 --> 01:05:24,250 >> ასე რომ რას ნიშნავს, რომ "დაფარული დეკლარაცია 1580 01:05:24,250 --> 01:05:26,790 ფუნქცია "კუბი" არასწორია? "ეს უფლება აქ. 1581 01:05:26,790 --> 01:05:28,430 ეს უფლება იქ ხაზი 12. 1582 01:05:28,430 --> 01:05:30,460 აუდიტორია: [INAUDIBLE]. 1583 01:05:30,460 --> 01:05:30,730 დევიდ ჯ Malan: რა არის ეს? 1584 01:05:30,730 --> 01:05:32,470 აუდიტორია: ეს არ იყო მანამდე. 1585 01:05:32,470 --> 01:05:33,540 დევიდ ჯ Malan: ეს არ იყო მანამდე. 1586 01:05:33,540 --> 01:05:34,740 ასე რომ, ეს რამ. 1587 01:05:34,740 --> 01:05:38,190 C არის სახის სულელური, ან C compilers არიან სახის სულელური. 1588 01:05:38,190 --> 01:05:41,060 ისინი მართლაც მხოლოდ რა თქვენ ვუთხრა უნდა გააკეთოს. 1589 01:05:41,060 --> 01:05:44,770 და ისინი, კერძოდ, მხოლოდ წაიკითხა თქვენი კოდი ყველაზე ქვედა, 1590 01:05:44,770 --> 01:05:45,620 მარცხნიდან მარჯვნივ. 1591 01:05:45,620 --> 01:05:49,140 ასე რომ, თუ შემდგენელი, Clang, კითხულობს თქვენი კოდი, ხაზი 1: იგი 1592 01:05:49,140 --> 01:05:50,120 გათვლით თუ როგორ გააკეთოთ ეს. 1593 01:05:50,120 --> 01:05:50,940 ოჰ, აქ მოდის მთავარი. 1594 01:05:50,940 --> 01:05:53,000 Okay, ნება მომეცით წავიდეთ წინ და აცხადებენ ცვლადი x. 1595 01:05:53,000 --> 01:05:54,160 ნება მომეცით ბეჭდვა რაღაც. 1596 01:05:54,160 --> 01:05:55,890 Line 7, რა heck არის კუბი? 1597 01:05:55,890 --> 01:05:58,230 ეს არ გამოცხადდა stdio.h. 1598 01:05:58,230 --> 01:06:00,950 იგი არ მოდის ერთად C. არ ვიცი რა უნდა გააკეთოს. 1599 01:06:00,950 --> 01:06:03,960 და ასე Clang მხოლოდ bails და ტოვებს, რომ შეცდომა. 1600 01:06:03,960 --> 01:06:05,850 ასე რომ ჩვენ შეგვიძლია დაფიქსირება ამ რამდენიმე გზები. 1601 01:06:05,850 --> 01:06:10,530 ჩვენ შეგვიძლია ვასწავლოთ Clang რა კუბი არის მხოლოდ მოძრავი სადაც 1602 01:06:10,530 --> 01:06:11,820 დეკლარაცია არის. 1603 01:06:11,820 --> 01:06:14,640 ასე რომ გაჭრა და pasted ეს atop ძირითადი. 1604 01:06:14,640 --> 01:06:17,770 ახლა ვაცნობიერებთ, რომ მხოლოდ იმიტომ, რომ ძირითად აღარ არის პირველი, ეს 1605 01:06:17,770 --> 01:06:19,150 დღემდე შესრულებული იყოს. 1606 01:06:19,150 --> 01:06:20,060 მთავარი არის მთავარი. 1607 01:06:20,060 --> 01:06:21,022 ეს რა ფუნქცია სახელი. 1608 01:06:21,022 --> 01:06:22,930 არ აქვს მნიშვნელობა, სადაც ეს არის ფაილი. 1609 01:06:22,930 --> 01:06:26,910 მაგრამ მაინც არის Clang უნახავს კუბი ადრე მე გამოიყენოს იგი. 1610 01:06:26,910 --> 01:06:28,500 მოდით ვნახოთ, თუ Clang არის ბედნიერი არის. 1611 01:06:28,500 --> 01:06:31,410 ჩადება ნამატი, ეს ასე კომპილირდება ამ დროს. 1612 01:06:31,410 --> 01:06:33,060 >> ნება მომეცით აწარმოებს იყოს. 1613 01:06:33,060 --> 01:06:34,810 მართლაც, აშკარად ჩანს, რომ სამუშაო. 1614 01:06:34,810 --> 01:06:36,810 ახლა თქვენ შეგიძლიათ ამუშავება სცენარი საბოლოოდ აქ 1615 01:06:36,810 --> 01:06:38,650 ეს არ არის მიზანშეწონილი დააყენოს ყველა ფუნქცია 1616 01:06:38,650 --> 01:06:39,740 ზემოთ ყველა სხვა ფუნქცია. 1617 01:06:39,740 --> 01:06:42,140 თქვენ მიიღებთ დავრჩებოდით ამ უსასრულო ციკლი რეალურად, 1618 01:06:42,140 --> 01:06:43,480 აქ ამ ბიჭს სურს იყოს აქ, მაგრამ ამ 1619 01:06:43,480 --> 01:06:44,390 ბიჭი უნდა იყოს იქ. 1620 01:06:44,390 --> 01:06:45,830 ასე რომ ყოველთვის არ იმუშაოს. 1621 01:06:45,830 --> 01:06:49,020 ასე რომ საბედნიეროდ, C უფრო ელეგანტური გამოსავალი. 1622 01:06:49,020 --> 01:06:50,790 მე ვაპირებ დააყენა ამ თავში, სადაც იგი იყო, მხოლოდ იმიტომ, რომ მე 1623 01:06:50,790 --> 01:06:53,390 ურჩევნია, როგორც პრინციპული საკითხია, რომ ძირითადი ყოველთვის 1624 01:06:53,390 --> 01:06:55,550 ზედა, რადგან ეს მხოლოდ ლამაზი, რომ ნახოთ თუ რა ამ პროგრამის 1625 01:06:55,550 --> 01:06:56,920 არ იყოს. 1626 01:06:56,920 --> 01:06:58,950 და რა მე ვაპირებ ამის გაკეთებას აქ არის განაცხადოს, რასაც 1627 01:06:58,950 --> 01:07:00,250 პროტოტიპი. 1628 01:07:00,250 --> 01:07:05,730 მე ვაპირებ ხელახლა განაცხადოს ჩემი კუბი ფუნქციის მიერ სიტყვასიტყვით 1629 01:07:05,730 --> 01:07:07,180 გადაწერა და pasting. 1630 01:07:07,180 --> 01:07:08,290 სინამდვილეში, ეს ასე არ არის სიტყვასიტყვით. 1631 01:07:08,290 --> 01:07:13,060 ასე სიტყვასიტყვით გადაწერა და pasting ხაზი 15 1632 01:07:13,060 --> 01:07:15,160 up ზემოთ ხაზი 6. 1633 01:07:15,160 --> 01:07:17,010 არ აქვს მნიშვნელობა, რა ხაზის ამ მთავრდება შესახებ. 1634 01:07:17,010 --> 01:07:18,380 ეს ხდება, რომ იყოს on line 4. 1635 01:07:18,380 --> 01:07:19,950 მაგრამ ეს იმას უნდა იყოს ადრე ძირითადი. 1636 01:07:19,950 --> 01:07:21,150 მაგრამ შეამჩნია განსხვავება. 1637 01:07:21,150 --> 01:07:24,100 Line 4 სრულდება მძიმით, რაც იმას ნიშნავს, Hey, 1638 01:07:24,100 --> 01:07:27,510 Clang, მიიღოს ჩემი სიტყვა, რომ არსებობს ფუნქცია 1639 01:07:27,510 --> 01:07:31,350 მოუწოდა კუბი რომ იღებს int და დააბრუნებს int. 1640 01:07:31,350 --> 01:07:33,020 მაგრამ მე არ gonna გითხრათ რა არის ამჟამად. 1641 01:07:33,020 --> 01:07:35,180 უბრალოდ ვიცი, რომ მე გპირდებით გითხრათ საბოლოოდ. 1642 01:07:35,180 --> 01:07:38,490 მართლაც, ახლა okay, რომ ეს არის ქვემოთ ქვემოთ. 1643 01:07:38,490 --> 01:07:41,275 >> ასე რომ, ეს არის ზოგადად უკეთესი, რადგან მაშინ ზედა 1644 01:07:41,275 --> 01:07:44,240 თქვენი ფაილი, თქვენ შეგიძლიათ მისი rattle off, სწრაფი ცეცხლი, ერთი ხაზი 1645 01:07:44,240 --> 01:07:46,470 ყოველი, რა სახელები თქვენი ფუნქციები, რაც მათი 1646 01:07:46,470 --> 01:07:49,120 საშუალებებით არიან, როგორია მათი შედეგები არიან. 1647 01:07:49,120 --> 01:07:52,210 და იყოს უფრო მკაფიო, შეყვანის ზოგადად ნიშნავს არგუმენტი ან 1648 01:07:52,210 --> 01:07:54,110 პარამეტრი, სინონიმებია. 1649 01:07:54,110 --> 01:07:56,890 გამოყვანის დაბრუნებას ნიშნავს ღირებულებით, რას 1650 01:07:56,890 --> 01:07:58,700 მხრივ უკან ჩემთვის. 1651 01:07:58,700 --> 01:08:03,420 ასე რომ, ამ შემთხვევაში აქ, Cube გამოცხადდა ზედა, მაგრამ 1652 01:08:03,420 --> 01:08:06,940 განსაზღვრული, სხვაგვარად ცნობილია როგორც განხორციელდა, ბოლოში. 1653 01:08:06,940 --> 01:08:09,620 ახლა მოდით დავუბრუნდეთ აქ და ხელახლა აწარმოებს ამ. 1654 01:08:09,620 --> 01:08:13,430 ახლა ნება მომეცით წავიდეთ წინ და ხელახლა აწარმოებს გააკეთოს, ხელახლა აწარმოებს იყოს. 1655 01:08:13,430 --> 01:08:16,500 და ეს არის როგორც ჩანს, სამუშაო მხოლოდ ჯარიმა. 1656 01:08:16,500 --> 01:08:19,450 ახლა ჩვენ შეგვიძლია წავიდეთ წინ და ფაქტორი გარეთ რაღაც 1657 01:08:19,450 --> 01:08:23,720 ლუდი მაგალითად ამ მეოთხე ვერსია. 1658 01:08:23,720 --> 01:08:25,590 ნება მომეცით, გადახვევა ქვემოთ აქ. 1659 01:08:25,590 --> 01:08:28,149 და შენიშნავს, რომ I ტიპის აიღო ამ გაკვეთილში გული ახლა. 1660 01:08:28,149 --> 01:08:31,140 ის ფაქტი, რომ მე სიმღერა იგივე stanza ერთხელ და 1661 01:08:31,140 --> 01:08:34,130 ისევ და ისევ, იგივე გუნდი ხაზს სიმღერა, ვიგრძენი 1662 01:08:34,130 --> 01:08:36,439 like რატომ არ მე ფაქტორი რომ შევიდა ფუნქცია? 1663 01:08:36,439 --> 01:08:38,470 მართლაც, ეს უნდა იყოს ერთი მოტივაცია. 1664 01:08:38,470 --> 01:08:40,960 გარდა იმისა, რომ ვინმე მსოფლიოში დაგვჭირდება 1665 01:08:40,960 --> 01:08:42,390 გამოიყენოს კუბი ფუნქცია - 1666 01:08:42,390 --> 01:08:44,560 რომ კარგ საფუძველს აძლევს ფაქტორი რაღაც გარეთ და დაწეროთ თქვენი 1667 01:08:44,560 --> 01:08:45,720 საკუთარი ფუნქციის - 1668 01:08:45,720 --> 01:08:48,720 თუ არსებობს ბლოკი კოდი თქვენს პროგრამა, რომელიც მხოლოდ ხდის 1669 01:08:48,720 --> 01:08:51,370 კონცეპტუალური თვალსაზრისით, რომ თქვენ ტიპის მინდა ეს 1670 01:08:51,370 --> 01:08:53,740 სახელი - როგორც ამ შემთხვევაში, გუნდი - 1671 01:08:53,740 --> 01:08:57,380 მაშინ ანალოგიურად წერენ რომ როგორც ცალკეული ფუნქცია. 1672 01:08:57,380 --> 01:08:59,560 თქვენ არ დაწერა ყველაფერი მთავარი თუ უბრალოდ 1673 01:08:59,560 --> 01:09:02,609 გრძნობს სუფთა გამიჯვნას ის და მისთვის სახელი. 1674 01:09:02,609 --> 01:09:05,529 >> ასე რომ, ამ შემთხვევაში აქ, რომ მე კომენტარის atop 1675 01:09:05,529 --> 01:09:06,859 ამ ფუნქციის რომ მღერის შესახებ 1676 01:09:06,859 --> 01:09:08,630 მითითებული ნომრები ბოთლებში. 1677 01:09:08,630 --> 01:09:10,609 გაითვალისწინეთ, რომ მე არ უნდა დარეკონ ამ 1678 01:09:10,609 --> 01:09:12,520 რამ და ჩასათვლელი. 1679 01:09:12,520 --> 01:09:16,090 ფაქტობრივად, ეს დრო უბრალოდ მოუწოდა ჩემი შეყვანის ბ ამისთვის ბოთლი. 1680 01:09:16,090 --> 01:09:19,960 და შენიშნავს, აქ, ბათილად ვარაუდობს რა? 1681 01:09:19,960 --> 01:09:21,309 რომ გუნდი - 1682 01:09:21,309 --> 01:09:22,660 აუდიტორია: არ დააბრუნებს მას. 1683 01:09:22,660 --> 01:09:23,870 დევიდ ჯ Malan: არ დააბრუნებს მნიშვნელობას. 1684 01:09:23,870 --> 01:09:26,800 მართლაც, ფუნქციები არ გვაქვს დასაბრუნებელი ღირებულებებს. 1685 01:09:26,800 --> 01:09:28,060 მათ შეუძლიათ მხოლოდ რაღაც. 1686 01:09:28,060 --> 01:09:30,270 მათ შეუძლიათ, თუ რა ეწოდება გვერდითი მოვლენები, რომელიც ამ 1687 01:09:30,270 --> 01:09:33,109 საქმე ის არის, უბრალოდ მთელი bunch დაბეჭდვის ეკრანზე. 1688 01:09:33,109 --> 01:09:36,580 ასე რომ ეს კოდი აქ, მე უბრალოდ სიტყვასიტყვით მოიპარეს საწყისი 1689 01:09:36,580 --> 01:09:37,680 წინა მაგალითი. 1690 01:09:37,680 --> 01:09:39,930 ერთადერთი განსხვავება არის ის ნაცვლად გამოყენებით მე როგორც ჩემი 1691 01:09:39,930 --> 01:09:42,890 ცვლადი, მე ახლა გამოყენებით B როგორც ჩემი ცვლადი. 1692 01:09:42,890 --> 01:09:45,880 ასე მაქვს B ქვემოთ აქ, მაქვს B ქვემოთ აქ, მაქვს B 1693 01:09:45,880 --> 01:09:47,109 მინუს 1 down აქ. 1694 01:09:47,109 --> 01:09:49,279 მაგრამ კოდი არის ზუსტად იგივე. 1695 01:09:49,279 --> 01:09:52,529 მაგრამ მხოლოდ იმიტომ, რომ გაჩვენოთ ეხლა როგორ შეგვიძლია გამოვიყენოთ ეს, მინდა წასვლა 1696 01:09:52,529 --> 01:09:56,780 წინ და პრაქტიკულად შეცვლის ეს უნდა იყოს ამისთვის loop. 1697 01:09:56,780 --> 01:10:03,850 ამისთვის (int i = n; i> n; მე -). 1698 01:10:03,850 --> 01:10:06,230 >> ამიტომ მე მოპარული, რომ ჩვენი წინა მაგალითი. 1699 01:10:06,230 --> 01:10:08,970 მანამდე, ეს შეესაბამება 37 რომ მე არ დაიწყო 1700 01:10:08,970 --> 01:10:10,640 მღერის ამ შემაშფოთებელი სიმღერა. 1701 01:10:10,640 --> 01:10:15,810 მაგრამ ამის ნაცვლად, მე უბრალოდ აპირებს ახლა მოვუწოდებთ გუნდი მე. 1702 01:10:15,810 --> 01:10:16,870 შესრულებულია. 1703 01:10:16,870 --> 01:10:20,260 ახლა ყოველ iteration ამ მარყუჟის, მოვუწოდებ ამ სხვა 1704 01:10:20,260 --> 01:10:22,220 ფუნქცია, გუნდი, რომ მე მოხდა დაწერა. 1705 01:10:22,220 --> 01:10:24,110 იგი დაწერილი არ არის ვიღაცის წლის წინ. 1706 01:10:24,110 --> 01:10:27,930 მაგრამ გუნდი, იმავდროულად, იყენებს printf ბეჭდვა 1707 01:10:27,930 --> 01:10:29,840 აღნიშნული ოთხი ხაზები. 1708 01:10:29,840 --> 01:10:32,720 მაგრამ ის ფაქტი, რომ მე მოუწოდებდა გუნდი ისევ და ისევ 1709 01:10:32,720 --> 01:10:35,900 loop იმას ნიშნავს, რომ მე ვაპირებ კიდევ, ზუსტად იმ მიზნით, 1710 01:10:35,900 --> 01:10:39,310 ზუსტად იგივე სიმღერა მაქვს ჯერჯერობით. 1711 01:10:39,310 --> 01:10:42,130 ასე მოკლედ, ახლა თუ ვიხსენებთ ჩემს კოდი, მიუხედავად იმისა, 1712 01:10:42,130 --> 01:10:44,240 ფუნქციურად ეს ექვივალენტი შეამჩნევთ, რომ ეს 1713 01:10:44,240 --> 01:10:46,020 ვიწყებთ უფრო იკითხება. 1714 01:10:46,020 --> 01:10:48,410 მე ზუსტად არ ვიცი როგორ GetInt 1715 01:10:48,410 --> 01:10:49,250 ხორციელდება. 1716 01:10:49,250 --> 01:10:52,050 გულწრფელად ვამბობ, არ ვიცი როგორ გუნდისათვის ხორციელდება. 1717 01:10:52,050 --> 01:10:52,970 მაგრამ მნიშვნელობა არ აქვს ჩემთვის. 1718 01:10:52,970 --> 01:10:55,620 არ მაინტერესებს, რადგან ახლა მე შემიძლია სახის, როგორც ადამიანის, წაიკითხოთ 1719 01:10:55,620 --> 01:10:57,050 ამ ზემოდან უნდა ბოლოში. 1720 01:10:57,050 --> 01:10:59,950 და რადგან ფუნქციები დაასახელა მიხედვით, რაც მათ 1721 01:10:59,950 --> 01:11:02,910 გავაკეთოთ, ჩემი კოდი უფრო იკითხება. 1722 01:11:02,910 --> 01:11:05,190 და როგორც ჩვენი პროგრამების კიდევ უფრო უფრო რთული - 1723 01:11:05,190 --> 01:11:07,220 მიერ სემესტრის ბოლოს, თქვენ უნდა წერა ასობით ხაზები 1724 01:11:07,220 --> 01:11:10,970 კოდის ენაზე, როგორიცაა PHP და JavaScript და მოსწონს - 1725 01:11:10,970 --> 01:11:13,550 თქვენ იპოვით რომ ასე ბევრად უფრო ადვილია, ვიდრე ტრეკზე 1726 01:11:13,550 --> 01:11:14,080 რა თქვენ გაკეთდეს. 1727 01:11:14,080 --> 01:11:15,810 და როდის დაიწყება თანამშრომლობს მეგობრები ან 1728 01:11:15,810 --> 01:11:19,010 პარტნიორები ან კოლეგებს, თქვენ გექნებათ დაწერა ბევრად უფრო 1729 01:11:19,010 --> 01:11:22,910 მასიური პროგრამების მიერ დაწყებული განახორციელოს ამ ძირითადი 1730 01:11:22,910 --> 01:11:23,990 შენობა ბლოკები. 1731 01:11:23,990 --> 01:11:25,550 >> ამრიგად, რომ განაცხადა, რატომ არ მოვუწოდებთ ეს დღე? 1732 01:11:25,550 --> 01:11:27,190 და ვნახავთ თქვენ ოთხშაბათს. 1733 01:11:27,190 --> 01:11:33,611 [ტაში]