1 00:00:00,000 --> 00:00:03,353 >> [მუსიკის დაკვრა] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 დავით Malan: Hello, ყველას. 4 00:00:06,050 --> 00:00:07,777 ეს არის CS50 ის supersection. 5 00:00:07,777 --> 00:00:09,860 მინიჭებული სექციები არ დაიწყოს კიდევ ერთი კვირის. 6 00:00:09,860 --> 00:00:11,580 ასე რომ, დღეს, მე აქ with-- 7 00:00:11,580 --> 00:00:12,122 >> MARIA: მარია. 8 00:00:12,122 --> 00:00:14,163 დავით Malan: --to რეალურად შევხედოთ პრობლემას 9 00:00:14,163 --> 00:00:16,110 დაყენებულია ერთი, რა თქმა უნდა, პირველი კვირის მასალა, 10 00:00:16,110 --> 00:00:19,780 მისაღებად თქვენ ორიენტირებული CS50 IDE, ცოტა Linux, ოპერაციული სისტემა, რომელიც 11 00:00:19,780 --> 00:00:22,290 გაშვებული IDE, ისევე როგორც შევხედოთ ზოგიერთი გარდამავალი 12 00:00:22,290 --> 00:00:25,730 ნულიდან to C წამყვანი მდე პრობლემა მითითებული ერთი. 13 00:00:25,730 --> 00:00:28,340 >> ასე გარეშე ado, ამ პრობლემის მითითებული ერთი, 14 00:00:28,340 --> 00:00:30,520 თქვენ იქნება გააცნო CS50 IDE, რომელიც 15 00:00:30,520 --> 00:00:33,230 ეს არის ვებ დაფუძნებული პროგრამირების გარემოს, რომ ჩვენ გამოვიყენოთ იმისათვის, 16 00:00:33,230 --> 00:00:34,280 წერენ პროგრამებს. 17 00:00:34,280 --> 00:00:37,280 ის შემუშავებულია ძალიან თქვენში ტიპიური კომპიუტერი 18 00:00:37,280 --> 00:00:39,430 სისტემაში გაშვებული ოპერაციული სისტემა სახელწოდებით Linux. 19 00:00:39,430 --> 00:00:42,440 მაგრამ ეს არის ე.წ. ღრუბელი, რაც იმას ნიშნავს, მთელ კლასს 20 00:00:42,440 --> 00:00:45,100 შეიძლება რეალურად აქვს მისი საკუთარი ანგარიში და გამოიყენოთ იგი, ისევე. 21 00:00:45,100 --> 00:00:48,950 >> ასე რომ ყველაზე მეტად თქვენ ალბათ არასდროს გამოყენებული ლინუქსის გარემოს წინაშე და ალბათ, 22 00:00:48,950 --> 00:00:50,447 კიდევ ბრძანების გარემო. 23 00:00:50,447 --> 00:00:52,280 და ბრძანების გარემო განსხვავებულია. 24 00:00:52,280 --> 00:00:53,200 ეს არის ყველა ტექსტური. 25 00:00:53,200 --> 00:00:54,730 ეს ყველაფერი კლავიატურის ბრძანებები. 26 00:00:54,730 --> 00:00:59,480 და ეს არ არის mousing, არსებობს ხატები, არსებობს დიალოგის ფანჯარა, არ მენიუები. 27 00:00:59,480 --> 00:01:00,212 ეს არის წმინდა ტექსტი. 28 00:01:00,212 --> 00:01:01,920 ასე რომ, პირველ რიგში, ის ტიპის იგრძნობა ნაბიჯი 29 00:01:01,920 --> 00:01:04,434 უკან თვალსაზრისით დახვეწილობის. 30 00:01:04,434 --> 00:01:06,600 მაგრამ ეს მთავრდება, რომ ბევრი უფრო ძლიერი, რა თქმა უნდა, 31 00:01:06,600 --> 00:01:08,510 კომპიუტერული მეცნიერი, საბოლოოდ. 32 00:01:08,510 --> 00:01:09,540 >> მოდით შევხედოთ. 33 00:01:09,540 --> 00:01:13,850 აქ ვარ CS50.io, რომლის მეშვეობით შეგიძლიათ შეხვიდეთ CS50 IDE. 34 00:01:13,850 --> 00:01:17,414 და ჰგავს Scratch, იქ სამი ძირითადი სფეროები ამ ეკრანზე. 35 00:01:17,414 --> 00:01:20,080 ასე რომ, მარცხენა მხარეს, ჩვენ გვაქვს რა იქნება ფაილი ბრაუზერში. 36 00:01:20,080 --> 00:01:22,413 და არსებობს ამ საქაღალდეში ზედა, რომელიც ახლა ცარიელი 37 00:01:22,413 --> 00:01:24,690 მას შემდეგ, რაც მე მოიშორეს ყველა ჩემი ფაილი supersection. 38 00:01:24,690 --> 00:01:27,599 და რომ სადაც ჩვენ გამოგიგზავნით გადარჩენა C ფაილი, რომ ჩვენ წერენ. 39 00:01:27,599 --> 00:01:30,890 ზედა მარჯვენა, ჩვენ გვაქვს ადგილი, სადაც ყველა ჩვენი კოდი აპირებს მიიღოს დაწერილი. 40 00:01:30,890 --> 00:01:34,610 და მართლაც, თუ მე დააჭირეთ ამ პლუს, ამ აპირებს ნება მომეცით აირჩიოს ახალი ფაილი. 41 00:01:34,610 --> 00:01:38,310 და აქ მე შემიძლია წერა C კოდი ან, მართლაც, ნებისმიერი რაოდენობის სხვა ენებზე. 42 00:01:38,310 --> 00:01:42,670 >> და მერე ბოლოში, სადაც იგი ამბობს jharvard @ ide50-- და თქვენი ნება 43 00:01:42,670 --> 00:01:45,080 ვთქვათ რაღაც პატარა different-- რა იყო ამ ე.წ.? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 ტერმინალის ფანჯარაში. 46 00:01:49,310 --> 00:01:49,570 ჰო. 47 00:01:49,570 --> 00:01:51,810 ასე რომ, ტერმინალის ფანჯარა ე.წ. ბრძანების ხაზი 48 00:01:51,810 --> 00:01:55,540 ინტერფეისის მეშვეობით, რომელიც შეგიძლიათ ურთიერთქმედება ფუძემდებლური ოპერაციული სისტემა. 49 00:01:55,540 --> 00:01:58,220 და ახლა, ჩვენ ვაპირებთ ძალიან ცოტა გამოყენების ამას 50 00:01:58,220 --> 00:02:01,170 უბრალოდ შედგენა, შევხედოთ შეცდომის შეტყობინებები, რომ ჩვენ ვხედავთ, 51 00:02:01,170 --> 00:02:02,347 და აწარმოებს ჩვენი პროგრამები. 52 00:02:02,347 --> 00:02:04,680 მაგრამ, საბოლოო ჯამში, ჩვენ ვაპირებთ ამის გაკეთება გაცილებით მეტი, ისევე. 53 00:02:04,680 --> 00:02:07,490 და თქვენ კი დააყენოთ პროგრამული უზრუნველყოფა და ადმინისტრირება თქვენი სამუშაო გარემოს 54 00:02:07,490 --> 00:02:09,066 ფარგლებში CS50 IDE, ისევე. 55 00:02:09,066 --> 00:02:10,440 მაგრამ უფრო, რომ სხვა დროს. 56 00:02:10,440 --> 00:02:12,689 >> მოდით წავიდეთ წინ და დაწეროთ ძალიან მარტივი პროგრამა უბრალოდ 57 00:02:12,689 --> 00:02:15,064 გავლა თბილი მდე hello.c, რომელიც შესაძლოა 58 00:02:15,064 --> 00:02:16,480 მარტივი პროგრამა, შეგვიძლია დავწეროთ. 59 00:02:16,480 --> 00:02:18,330 მე უკვე გაიხსნა ახალი tab. 60 00:02:18,330 --> 00:02:24,310 მე ვაპირებ წავიდეთ წინ და ამბობენ მოიცავს სტანდარტული io.h. 61 00:02:24,310 --> 00:02:25,325 მაშინ int ძირითადი (void). 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 და მაშინ printf ("Hello, world" წარმატებული ო, ახლო გაცემა, 64 00:02:35,200 --> 00:02:39,480 ახლო ფრჩხილებში, და მძიმით. 65 00:02:39,480 --> 00:02:39,990 >> კარგი. 66 00:02:39,990 --> 00:02:41,700 ასე რომ, ახლა შეამჩნია ჩემი ფანჯარა untitled. 67 00:02:41,700 --> 00:02:44,840 ასე რომ, მე ძალიან სწრაფად აპირებს ახვიდეთ ფაილი, შენახვა. 68 00:02:44,840 --> 00:02:46,910 და ეს მნიშვნელოვანია, რომ მოვუწოდებ ამ არა "Hello". 69 00:02:46,910 --> 00:02:49,243 ასე რომ, ძალიან ჩვეულებრივი შეცდომა, განსაკუთრებით პრობლემა მითითებული ერთი, 70 00:02:49,243 --> 00:02:52,530 არის შემთხვევით უბრალოდ მოვუწოდებთ თქვენი პროგრამა "წყალი" და "ხარბ" ან "მარიო" 71 00:02:52,530 --> 00:02:53,890 ან "კრედიტი" და სხვა. 72 00:02:53,890 --> 00:02:55,970 მაგრამ თქვენ ნამდვილად გინდათ გამოიმუშაოთ დარწმუნდით, რომ თქვენ გაქვთ ფაილის გაფართოება 73 00:02:55,970 --> 00:02:58,928 იმიტომ, რომ ეს არის ერთადერთი გზა, რომ შემდგენელი და კოდი რედაქტორი 74 00:02:58,928 --> 00:03:00,710 იცის, რომ თქვენ რეალურად წერა C კოდი. 75 00:03:00,710 --> 00:03:02,280 ნება მომეცით წავიდეთ წინ და დააჭირეთ Save. 76 00:03:02,280 --> 00:03:05,710 >> და ახლა, ძალიან, რა CS50 IDE ჩვენთვის გააკეთა არის ის, ასევე 77 00:03:05,710 --> 00:03:07,120 სინტაქსი ხაზგასმით ყველაფერი. 78 00:03:07,120 --> 00:03:08,822 ასე რომ, ეს ყველაფერი გააკეთა, ძალიან ფერადი. 79 00:03:08,822 --> 00:03:10,780 და მთელი მიზნით რომ არ ფუნქციონირებს. 80 00:03:10,780 --> 00:03:14,290 ეს მხოლოდ გავამახვილო ჩემი თვალები კონცეპტუალურად განსხვავებული ცალი 81 00:03:14,290 --> 00:03:15,310 ამ პროგრამის. 82 00:03:15,310 --> 00:03:17,570 მოდით წავიდეთ წინ და შეადგინონ ამ. 83 00:03:17,570 --> 00:03:19,490 და შემიძლია შეადგინონ ამ რამდენიმე გზა. 84 00:03:19,490 --> 00:03:22,010 და კვირაში ერთი, ძველი სკოლა გზა გავაკეთეთ 85 00:03:22,010 --> 00:03:26,250 ეს იყო ფაქტიურად ბრძანება ხაზი "clang hello.c." 86 00:03:26,250 --> 00:03:27,596 და მერე დააჭიროთ. 87 00:03:27,596 --> 00:03:29,720 და არაფერი ჩანს, უნდა მოხდეს ტერმინალის ფანჯარაში. 88 00:03:29,720 --> 00:03:32,654 მაგრამ რა გააკეთა ცვლილება IDE? 89 00:03:32,654 --> 00:03:35,320 სად, კიდევ ერთხელ, IDE მხოლოდ იმას ნიშნავს, ინტეგრირებული განვითარება გარემოს. 90 00:03:35,320 --> 00:03:38,360 ეს არის ლამაზი გზა ამბობდა ეს ინტეგრირებული განვითარება 91 00:03:38,360 --> 00:03:40,620 გარემოს განვითარების უზრუნველყოფა. 92 00:03:40,620 --> 00:03:42,477 ასე რომ, რა შეიცვლება UI? 93 00:03:42,477 --> 00:03:44,310 რას შეამჩნევთ რომ სხვადასხვა, მარია? 94 00:03:44,310 --> 00:03:47,100 >> MARIA: შევნიშნე რაღაც ქვეშ IDE50 საქაღალდე აქ. 95 00:03:47,100 --> 00:03:47,850 >> დავით Malan: ჰო. 96 00:03:47,850 --> 00:03:50,230 ასე რომ, აქ, არა მხოლოდ გვაქვს "hello.c." 97 00:03:50,230 --> 00:03:53,120 ჩვენ ასევე გვაქვს "a.out", რომელიც სახის dumb სახელი პროგრამა. 98 00:03:53,120 --> 00:03:56,430 მაგრამ მართლაც, ეს არის ძირითადად სახელი პროგრამა როდესაც თქვენ მხოლოდ კომპილაციის თქვენი კოდი 99 00:03:56,430 --> 00:03:59,110 და არ გითხრათ შემდგენელი რა ფაილი გამომავალი. 100 00:03:59,110 --> 00:04:01,790 ასე რომ, თუ მინდა აწარმოებს, მე უნდა გითხრათ შემდგენელი 101 00:04:01,790 --> 00:04:05,340 უფრო სწორად, მე უნდა ვუთხრა სამუშაო გარემოს, რომ მე 102 00:04:05,340 --> 00:04:09,780 გსურთ გაუშვით პროგრამა მოუწოდა "a.out". 103 00:04:09,780 --> 00:04:10,550 შეიტანეთ. 104 00:04:10,550 --> 00:04:12,474 და იქ "hello, მსოფლიოში. "ახლა" ./ ". 105 00:04:12,474 --> 00:04:13,390 რეალურად მნიშვნელოვანია. 106 00:04:13,390 --> 00:04:16,050 მიუხედავად იმისა, რომ, როგორც წესი, ჩვენ მხოლოდ წერენ სახელები ბრძანებები, 107 00:04:16,050 --> 00:04:19,060 როდესაც ეს პროგრამა თქვენ წერილობითი, თქვენ მინდა ვთქვა, "./" 108 00:04:19,060 --> 00:04:22,460 იმიტომ, რომ პირდაპირ ეუბნება, Linux რომ გსურთ გაუშვით პროგრამა მოუწოდა 109 00:04:22,460 --> 00:04:26,930 "a.out", რომ ამ, სადაც dot ეს ნიშნავს, რომ დირექტორია, რომ მე გაკეთებული 110 00:04:26,930 --> 00:04:31,600 წელს, რაც ხდება, რომ მოუწოდა გარემოს, "a.out. 111 00:04:31,600 --> 00:04:35,410 იმიტომ, რომ თუ მე უბრალოდ თქვა "a.out" Enter, მე ვაპირებ, რომ მიიღოთ "a.out ბრძანება არ 112 00:04:35,410 --> 00:04:38,035 ი "იმის გამო, რომ კომპიუტერი იმიტომ, რომ მე გამოიგონა "a.out"; 113 00:04:38,035 --> 00:04:40,910 ის არ მოდის ერთად კომპიუტერი არ ვიცი სად უნდა ვეძებოთ ის, 114 00:04:40,910 --> 00:04:43,590 მიუხედავად იმისა, რომ ეს უფლება ჩემი ცხვირი, ასე ვთქვათ. 115 00:04:43,590 --> 00:04:44,090 კარგი. 116 00:04:44,090 --> 00:04:49,910 ასე რომ, ჩვენ ვერ შეცვლის ეს უნდა იყოს "clang-o მიესალმები hello.c." 117 00:04:49,910 --> 00:04:53,030 და თუ მე დააჭიროთ, რა პროგრამა არის ეს აპირებს გამომავალი ჩემთვის? 118 00:04:53,030 --> 00:04:55,710 რა სახელით ფაილი? 119 00:04:55,710 --> 00:04:57,500 ჰო, წელს დაბრუნდა. 120 00:04:57,500 --> 00:04:58,479 სწორია. "Hello". 121 00:04:58,479 --> 00:05:00,520 ასე რომ, "Hello" იქნება სახელი პროგრამა 122 00:05:00,520 --> 00:05:04,610 იმიტომ, რომ ჩვენ გამოიყენება ე.წ. ბრძანების არგუმენტი, რომელიც მხოლოდ 123 00:05:04,610 --> 00:05:08,120 გზა ქცევის შეცვლა შემდგენელი რეალურად გამომავალი 124 00:05:08,120 --> 00:05:09,450 კონკრეტული ფაილის სახელი. 125 00:05:09,450 --> 00:05:12,400 და მართლაც, თუ ზომით და ვეძებთ აქ, 126 00:05:12,400 --> 00:05:17,430 ახლა მე მაქვს არა მხოლოდ "a.out" და "hello.c", არამედ "Hello", ისევე. 127 00:05:17,430 --> 00:05:22,410 ასე რომ, ახლა შემიძლია "Hello," Enter. 128 00:05:22,410 --> 00:05:23,640 და იქ "hello, world." 129 00:05:23,640 --> 00:05:25,640 მაგრამ lastly-- და ეს იქნება კონვენციის 130 00:05:25,640 --> 00:05:27,590 ჩვენ ვიყენებთ მთელი სემესტრის typically-- 131 00:05:27,590 --> 00:05:30,070 არის ასევე შეგიძლიათ უბრალოდ, ვამბობთ "მიიღოს hello." 132 00:05:30,070 --> 00:05:33,370 და მართლაც, ის ამბობდა, რომ ეს მდე დღემდე იგი უკვე არსებობს. 133 00:05:33,370 --> 00:05:37,860 ნება მომეცით წავიდეთ წინ და ამოიღონ ერთად RM გადის ბრძანება, როგორც "a.out" - 134 00:05:37,860 --> 00:05:39,644 და აცხადებენ, რომ "ამოიღონ რეგულარული ფაილი a.out?" 135 00:05:39,644 --> 00:05:41,810 ეს მხოლოდ იმას ნიშნავს, თქვენ ნამდვილად გსურთ მისი წაშლა? 136 00:05:41,810 --> 00:05:42,880 მე ვაპირებ ვთქვა, დიახ. 137 00:05:42,880 --> 00:05:46,690 და მაშინ მე ვაპირებ ამოიღონ "Hello", მაგრამ არა "hello.c." 138 00:05:46,690 --> 00:05:49,920 მე ვაპირებ ვთქვა "დიახ" მკაფიოდ, მაგრამ "y" არის საკმარისი, ისევე. 139 00:05:49,920 --> 00:05:52,140 >> და ახლა შეამჩნია, თუ მე ტიპი ls-- რაც იხსენებენ, 140 00:05:52,140 --> 00:05:55,540 ნიშნავს list-- ეს ჩამოთვლილია ყველა ფაილი ჩემს საქაღალდეში. 141 00:05:55,540 --> 00:05:57,850 და მართლაც, თუ ზომით და შევხედოთ ზედა მარცხენა, 142 00:05:57,850 --> 00:05:59,730 იგი ადასტურებს, რომ ის, რაც ამ საქაღალდეში კი 143 00:05:59,730 --> 00:06:04,990 მიუხედავად იმისა, რომ ეს შეაფასა, როგორც IDE50 აქ და არა სამუშაო გარემოს, ეს მხოლოდ "hello.c." 144 00:06:04,990 --> 00:06:09,152 ახლა ქვემოთ აქ, თუ მე არ "მიიღოს hello," Enter, 145 00:06:09,152 --> 00:06:12,360 ახლა მე ვხედავ ბევრად უფრო ბრძანება, მაგრამ უფრო დახვეწილი ბრძანება, რომ ის აპირებს 146 00:06:12,360 --> 00:06:13,940 იყოს სასარგებლო კვირის მოსვლა. 147 00:06:13,940 --> 00:06:16,720 და ახლა შემიძლია ვთქვა, "მიზნით." 148 00:06:16,720 --> 00:06:19,257 >> მოდით მიიღოს სწრაფი ტური ზოგიერთი სხვა Linux ბრძანებები. 149 00:06:19,257 --> 00:06:21,840 მაშინ რატომ არ ავიღებთ ნაბიჯი უკან და რეალურად შევხედოთ C მეტი 150 00:06:21,840 --> 00:06:25,020 ზოგადად, გადასვლის Scratch C, და შემდეგ დადოს სახე 151 00:06:25,020 --> 00:06:27,305 პირველ პრობლემა მითითებული C. ყველა უფლება. 152 00:06:27,305 --> 00:06:30,430 ამიტომ, მე ვაპირებ წავიდეთ წინ და მხოლოდ სუფთა ჩემი სამუშაო გარემოს კონტროლის L მხოლოდ 153 00:06:30,430 --> 00:06:31,429 შენარჩუნება ეკრანზე სისუფთავე. 154 00:06:31,429 --> 00:06:33,520 მაგრამ, რომ არ აქვს ფუნქციური გავლენა სხვაგვარად. 155 00:06:33,520 --> 00:06:35,820 >> შეგახსენებთ, რომ ჩვენ ვნახეთ რამდენიმე ბრძანებები ახლა. 156 00:06:35,820 --> 00:06:39,900 ასე რომ, ჩვენ ვნახეთ clang, რომელიც ზოგადად არ უნდა შეასრულოს ხელით აღარ. 157 00:06:39,900 --> 00:06:41,650 ჩვენ ნაცვლად გამოიყენოთ მიიღოს. 158 00:06:41,650 --> 00:06:45,290 მაგრამ ჩვენ ასევე ვნახეთ ls, რომელიც გვიჩვენებს ჩამონათვალი ფაილი ჩემს დირექტორია. 159 00:06:45,290 --> 00:06:48,750 და ახლა რატომ არის იქ არსებობს ორი ფაილების ახლა, "Hello" და "hello.c." 160 00:06:48,750 --> 00:06:52,240 რატომ არის ვარსკვლავი ან ვარსკვლავით შემდეგ "Hello"? 161 00:06:52,240 --> 00:06:54,900 რა უნდოდა, რომ ნიშნავდეს, დაფუძნებული ის, რაც ჩვენ ვნახეთ, კვირაში ერთი? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 რას ფიქრობ? 164 00:07:00,400 --> 00:07:02,742 რას ვარსკვლავი ნიშნავდეს? 165 00:07:02,742 --> 00:07:04,614 >> MARIA: For-- პროგრამა "Hello"? 166 00:07:04,614 --> 00:07:05,530 დავით Malan: "Hello *". 167 00:07:05,530 --> 00:07:06,330 ჰო. 168 00:07:06,330 --> 00:07:07,760 ოჰ, არა? 169 00:07:07,760 --> 00:07:08,639 ოჰ, გაშვება. 170 00:07:08,639 --> 00:07:09,180 სწორია. 171 00:07:09,180 --> 00:07:10,890 ეს ნიშნავს, რომ "Hello" არის გაშვება. 172 00:07:10,890 --> 00:07:13,430 ასე რომ, მართლაც, ამიტომ მე შემიძლია ამის გაკეთება "მიზნით." 173 00:07:13,430 --> 00:07:13,930 კარგი. 174 00:07:13,930 --> 00:07:15,179 ასე რომ, რა გავაკეთო აქ? 175 00:07:15,179 --> 00:07:17,290 ისე, გამოდის, მე არ შემიძლია ასევე შექმნათ საიტები. 176 00:07:17,290 --> 00:07:20,924 ნება მომეცით წავიდეთ წინ და შევქმნათ, მაგალითად, "pset1" დირექტორია. 177 00:07:20,924 --> 00:07:23,590 და პრობლემა კომპლექტი სპეციფიკაცია იქნება თქვენ ზუსტად ამ, 178 00:07:23,590 --> 00:07:25,260 ასე რომ თქვენ არ უნდა გვახსოვდეს, დღეს. 179 00:07:25,260 --> 00:07:27,340 მაგრამ "mkdir pset1" როგორც ჩანს, რომ არ გავლენა. 180 00:07:27,340 --> 00:07:30,540 თუმცა ისევ და ისევ, არ შეცდომა ზოგადად კარგია. 181 00:07:30,540 --> 00:07:34,060 ასე რომ, თუ მე აკრიფოთ "LS", ახლა ah, ახლა მაქვს შესრულებადი ფაილი მოუწოდა 182 00:07:34,060 --> 00:07:36,570 "Hello", C ფაილი სახელწოდებით "hello.c." 183 00:07:36,570 --> 00:07:40,860 და მაშინ გადმოკიდული slash, ასე საუბარი, იმას ნიშნავს, რომ ეს არის დირექტორია. 184 00:07:40,860 --> 00:07:42,510 >> ასე რომ, მართლაც, ახლა მინდა გახსნან. 185 00:07:42,510 --> 00:07:45,730 და მე არ ორმაგად დაწკაპეთ იგი, როგორც ამ GUI, გრაფიკული გარემო. 186 00:07:45,730 --> 00:07:48,550 ნაცვლად ამბობენ, "cd pset1." 187 00:07:48,550 --> 00:07:49,640 შეიტანეთ. 188 00:07:49,640 --> 00:07:53,100 არაფერი საინტერესო, როგორც ჩანს, მოხდა გარდა ჩემი პატარა ზოლზე 189 00:07:53,100 --> 00:07:57,300 აქ ეს არის Linux გზა ახსენებს სადაც მე ვარ, ასე რომ ფოლდერი არის ღია. 190 00:07:57,300 --> 00:08:00,080 უბრალოდ მეუბნებოდა პირდაპირ როგორც ეწინააღმდეგებოდა გრაფიკულად. 191 00:08:00,080 --> 00:08:05,100 და თუ აკრიფოთ "ls," რატომ მე ვერ ვხედავ სხვა შეგახსენებთ, დაუყოვნებლივ, როგორ ფიქრობთ, 192 00:08:05,100 --> 00:08:07,269 როდესაც მე სიაში შინაარსი pset1? 193 00:08:07,269 --> 00:08:09,310 MARIA თქვენ ალბათ არ აქვს არაფერი არსებობს. 194 00:08:09,310 --> 00:08:09,630 დავით Malan: ჰო. 195 00:08:09,630 --> 00:08:11,510 ასე რომ, ჩვენ არ გვაქვს აშკარად ის არაფერი არ 196 00:08:11,510 --> 00:08:13,150 იმიტომ, რომ მე მხოლოდ ის დირექტორია. 197 00:08:13,150 --> 00:08:17,690 ახლა, თუ მინდოდა, რომ შევქმნათ ფაილი for მაგალითად, მე ვერ შექმნა ახალი ფაილი. 198 00:08:17,690 --> 00:08:20,190 და მერე შეიძლება წავიდეს შენახვა და გადარჩენა, როგორც, 199 00:08:20,190 --> 00:08:23,090 როგორიცაა, "mario.c", თუ რას აკეთებს სტანდარტული გამოცემა pset ერთი. 200 00:08:23,090 --> 00:08:27,610 და შემდეგ, ისევე როგორც ნებისმიერი Mac ან PC, უბრალოდ აირჩიეთ ფოლდერი "pset1, შენახვა. 201 00:08:27,610 --> 00:08:28,740 და ახლა ფაილი ცარიელია. 202 00:08:28,740 --> 00:08:31,160 მაგრამ მოდით მიუახლოვდით კვლავ მეორე. 203 00:08:31,160 --> 00:08:32,470 მოდით ls აქ. 204 00:08:32,470 --> 00:08:34,470 ახლა ჩვენ ვხედავთ "mario.c". 205 00:08:34,470 --> 00:08:37,850 >> ასე რომ, არსებობს რამდენიმე სხვა ბრძანებები, ღირს შენახვა გათვალისწინებით მეტი time-- 206 00:08:37,850 --> 00:08:41,200 ნათელია, ან საკონტროლო-L არის ის, რაც მე იყო დარტყმის; mkdir ჩვენ ვნახეთ; 207 00:08:41,200 --> 00:08:45,240 rm ჩვენ ვნახეთ, ისევე, რომელიც მოხსნის ან წაშლის ფაილი. 208 00:08:45,240 --> 00:08:49,310 ვუფრთხილდეთ შეგიძლიათ also-- და თუ გადავხედავთ განთავსებულია ონლაინ გაკვეთილები, თქვენ RM -rf 209 00:08:49,310 --> 00:08:52,630 არის ძალიან გავრცელებული გზა ამბობდა წაშლა საქაღალდე პერსონალის იგი. 210 00:08:52,630 --> 00:08:54,280 უბრალოდ იყოს სუპერ, სუპერ ფრთხილად. 211 00:08:54,280 --> 00:08:58,780 -rf ნიშნავს რეკურსიული წაშლა, რაც არ არის 212 00:08:58,780 --> 00:09:01,150 თქვენ ცდილობთ წაშლა და იძულებით წაშლა. 213 00:09:01,150 --> 00:09:04,630 ასე რომ, რეკურსიული საშუალებით, თუ ეს ფოლდერი საქაღალდე საქაღალდე საქაღალდე, 214 00:09:04,630 --> 00:09:05,690 წაშლა ყველა მათგანი. 215 00:09:05,690 --> 00:09:08,680 და იძულებით ნიშნავს კი არ მკითხავთ დიახ ან არა, არ ვარ დარწმუნებული? 216 00:09:08,680 --> 00:09:11,960 ასე რომ, ეს სუპერ სახიფათო გზა წაშლის უამრავი პერსონალი სწრაფად. 217 00:09:11,960 --> 00:09:17,210 მაგრამ beware-- ძალიან ხშირად აკეთებს კომპეტენტურობისა სტუდენტი შემთხვევით წაშლა, ვთქვათ, pset 218 00:09:17,210 --> 00:09:18,000 ერთ-ერთი, მაგალითად. 219 00:09:18,000 --> 00:09:19,833 >> MARIA: და თუ ისინი მხოლოდ ამის -r, ისინი აპირებენ 220 00:09:19,833 --> 00:09:21,870 ჰკითხა თითოეული ფაილი. 221 00:09:21,870 --> 00:09:22,790 >> დავით Malan: რომელი ზომიერად შემაშფოთებელი. 222 00:09:22,790 --> 00:09:23,480 >> MARIA: ჰო. 223 00:09:23,480 --> 00:09:25,813 >> დავით Malan: ასე რომ, რატომ ამდენი ჩვენგანი, თვითმმართველობის შედის, 224 00:09:25,813 --> 00:09:27,070 ვარ ჩვევა გამოყენებით -rf. 225 00:09:27,070 --> 00:09:27,861 მაგრამ ეს სახიფათოა. 226 00:09:27,861 --> 00:09:29,010 ასე რომ, მყიდველის სიფრთხილით მოვეკიდოთ. 227 00:09:29,010 --> 00:09:31,050 და მაშინ mv სახის საინტერესოა დაასახელა. 228 00:09:31,050 --> 00:09:33,600 ასე რომ, ეს ნაბიჯი ბრძანება, რომელიც გრძნობს ცოტა უცნაური 229 00:09:33,600 --> 00:09:37,260 იმიტომ, რომ თქვენ შეიძლება მართლაც გამოიყენოთ იგი გადაადგილება ფაილი ერთი ადგილიდან მეორეზე. 230 00:09:37,260 --> 00:09:39,970 დავუშვათ, რომ მე არევა. 231 00:09:39,970 --> 00:09:43,660 ვარაუდობენ, რომ ის ახალი ფაილი pset. 232 00:09:43,660 --> 00:09:46,320 და მე გადაარჩინა, როგორც "greedy.c". 233 00:09:46,320 --> 00:09:49,970 მაგრამ დავუშვათ, მე შემთხვევით გადარჩენა მას ამ IDE50-- ისე ჩემი სამუშაო თავად 234 00:09:49,970 --> 00:09:51,580 და არა pset1. 235 00:09:51,580 --> 00:09:53,960 >> თქვენ შეგიძლიათ ნახოთ იმდენი ზედა მარცხენა. 236 00:09:53,960 --> 00:09:55,284 არსებობს "greedy.c". 237 00:09:55,284 --> 00:09:56,450 და იქ რამდენიმე გადაწყვეტილებები. 238 00:09:56,450 --> 00:09:58,324 ასე რომ, ერთი შემიძლია სუპერ მოსახერხებელი გზა 239 00:09:58,324 --> 00:09:59,740 უბრალოდ გადმოიყვანა და ჩაშვების იგი. 240 00:09:59,740 --> 00:10:01,910 და რომ რეალურად დაფიქსირება ამ პრობლემას. 241 00:10:01,910 --> 00:10:04,967 მაგრამ დღეს, ჩვენ ვცდილობთ, რომ შევხედოთ უფრო მეტი arcane მაგრამ ძლიერი გზა 242 00:10:04,967 --> 00:10:05,550 ამით. 243 00:10:05,550 --> 00:10:07,880 ნება მომეცით მიიღოს "LS" Pset1. 244 00:10:07,880 --> 00:10:09,690 და მე მხოლოდ "mario.c." 245 00:10:09,690 --> 00:10:13,450 ნება მომეცით წავიდეთ წინ და ნუ "cd ..". 246 00:10:13,450 --> 00:10:15,320 ასე რომ, CD ერთხელ ცვლილება დირექტორია. 247 00:10:15,320 --> 00:10:18,130 ".." რას ნიშნავს, თუმცა? 248 00:10:18,130 --> 00:10:21,100 ბოლო დროს, მე ვთქვი "cd pset1 "წასვლას pset1. 249 00:10:21,100 --> 00:10:24,360 ასე რომ, როდესაც ვამბობ, რომ "cd ..", რა ვარ მე? 250 00:10:24,360 --> 00:10:24,910 უკან. 251 00:10:24,910 --> 00:10:25,150 ჰო. 252 00:10:25,150 --> 00:10:26,750 >> ასე რომ, ის აპირებს ე.წ. მშობელი. 253 00:10:26,750 --> 00:10:29,730 ტურიზმი ერთი დონის მდე, როგორიცაა არსებული გარეთ საქაღალდეში. 254 00:10:29,730 --> 00:10:30,500 ასე რომ, შეიტანეთ. 255 00:10:30,500 --> 00:10:31,900 და მართლაც, შევხედოთ რა გააკეთა. 256 00:10:31,900 --> 00:10:37,070 იგი გადავიდა ჩემთვის მხოლოდ თარგმნეს სამუშაო გარემოს ნაცვლად საქართველოს შევიდა pset1, რომელიც სამუშაო გარემოს. 257 00:10:37,070 --> 00:10:39,710 და ახლა თუ მე აკრიფოთ "LS", არსებობს მთელი bunch of პერსონალი. 258 00:10:39,710 --> 00:10:41,650 იქ არის "greedy.c". 259 00:10:41,650 --> 00:10:48,720 ასე რომ, ახლა ნება მომეცით გამოიყენოთ mv ფაქტიურად გადაადგილება "greedy.c" შევიდა pset1. 260 00:10:48,720 --> 00:10:51,120 ასე რომ, ბევრი Linux ბრძანებები მუშაობა ზუსტად მოსწონს ეს. 261 00:10:51,120 --> 00:10:54,470 ისინი ყურად არ არგუმენტები ან ისინი მიიღოს ერთი არგუმენტი ან მათ მიიღონ ორი ბრძანება ხაზი 262 00:10:54,470 --> 00:10:55,449 არგუმენტები და სხვ. 263 00:10:55,449 --> 00:10:57,240 და ამ შემთხვევაში, ეს ფაქტიურად აკეთებს რა 264 00:10:57,240 --> 00:11:01,670 იგი აცხადებს, რომ, მიუხედავად იმისა, succinctly-- გადაადგილება greedy.c შევიდა pset1. 265 00:11:01,670 --> 00:11:02,310 შეიტანეთ. 266 00:11:02,310 --> 00:11:03,310 არაფერი არ მოხდება. 267 00:11:03,310 --> 00:11:06,180 მაგრამ თუ მე გავაკეთოთ ls ერთხელ, ხარბ გაქრა. 268 00:11:06,180 --> 00:11:12,437 და თუ მე "cd pset1", შეიყვანეთ და მაშინ ls ერთხელ, ახლა ეს უფლება ადგილი. 269 00:11:12,437 --> 00:11:14,270 როგორც განზე, თუ ზოგიერთი reason-- განსაკუთრებით 270 00:11:14,270 --> 00:11:16,194 თუ თქვენ გაქვთ წყვეტილი ქსელის კავშირი 271 00:11:16,194 --> 00:11:18,360 ან თქვენ ფეხით გარშემო კამპუსში თქვენი ლეპტოპი სახურავს 272 00:11:18,360 --> 00:11:20,180 დაიხურა და შემდეგ გახსნა ეს ისევ და თქვენი სამუშაო გარემოს 273 00:11:20,180 --> 00:11:21,730 როგორც ჩანს, გარკვეულწილად გარეთ sync, არ არის დიდი გარიგება. 274 00:11:21,730 --> 00:11:23,646 უბრალოდ განაახლეთ თქვენი ბრაუზერის ფანჯარა, და ეს უნდა 275 00:11:23,646 --> 00:11:26,339 resync ისე, რომ მარცხენა ფაილი ბრაუზერში გამოიყურება ზუსტად 276 00:11:26,339 --> 00:11:27,380 როგორც ტერმინალის ფანჯარაში. 277 00:11:27,380 --> 00:11:27,921 არ უნდა ფიქრი. 278 00:11:27,921 --> 00:11:31,460 როდესაც ეჭვი, განაახლეთ გვერდი, ასე რომ სანამ თქვენ გადაარჩინა ფაილი უკვე. 279 00:11:31,460 --> 00:11:31,960 კარგი. 280 00:11:31,960 --> 00:11:34,710 ასე რომ, mv ასევე შეიძლება გამოყენებული იქნას გადარქმევა ფაილი. 281 00:11:34,710 --> 00:11:36,760 და მოდით შევხედოთ ამ საბოლოო ბრძანების აქ. 282 00:11:36,760 --> 00:11:39,950 ასე რომ, suppose-- და ეს არის super საერთო, ძალიან, დასაწყისში. 283 00:11:39,950 --> 00:11:46,400 ზოგიერთი სტუდენტები ზოგჯერ შევქმნათ ფაილი მოუწოდა, ვთქვათ, რა არის ერთი? 284 00:11:46,400 --> 00:11:47,730 როგორც "WATER.C". 285 00:11:47,730 --> 00:11:51,080 ასე რომ მე უბრალოდ დაწეროთ, რადგან უმიზეზოდ, ყველა Caps. 286 00:11:51,080 --> 00:11:53,190 მაგრამ ეს არ არის სწორი სახელი ფაილი 287 00:11:53,190 --> 00:11:56,660 თუ მხოლოდ იმიტომ, რომ ჩვენი პრობლემა კომპლექტი დაზუსტება არ გეტყვით 288 00:11:56,660 --> 00:11:59,430 ფაილის შენახვა როგორც ყველა caps "WATER.C". 289 00:11:59,430 --> 00:12:01,320 ამის ნაცვლად, ჩვენ ველით, "water.c" ამას. 290 00:12:01,320 --> 00:12:03,140 და, ფაქტობრივად, ეს არის პრობლემატურია, რადგან check50, 291 00:12:03,140 --> 00:12:04,370 პროგრამა თქვენ აპირებს შეხვდება პრობლემა 292 00:12:04,370 --> 00:12:07,350 მითითებული ერთი, რომელიც ავტომატურად ამოწმებს სისწორეში თქვენი კოდი 293 00:12:07,350 --> 00:12:11,615 აპირებს დაწეროთ თქვენ თუ მას არ შეუძლია მოვძებნოთ "water.c" ყველა ამას. 294 00:12:11,615 --> 00:12:12,712 >> ასე რომ, მე და ეს უნდა გამოვასწოროთ. 295 00:12:12,712 --> 00:12:14,920 ასე რომ, ბევრი სხვადასხვა გზა ამისათვის, რომელთაგან პირველი 296 00:12:14,920 --> 00:12:18,330 იქნება კონტროლის დააწკაპუნეთ ან მარჯვენა click ფაილის სახელი და უბრალოდ შეცვალოს სახელის შეცვლა. 297 00:12:18,330 --> 00:12:19,740 სრულიად ჯარიმა ამის გაკეთება. 298 00:12:19,740 --> 00:12:21,820 მაგრამ ერთხელ, დღეს, მოდით ამას ცოტა fancier. 299 00:12:21,820 --> 00:12:26,680 მოდით გამოვიყენოთ mv შეცვალოს "WATER.C", რათა "water.c". 300 00:12:26,680 --> 00:12:30,690 ასე, რომ თქვენ ასევე შეგიძლიათ გამოიყენოთ პირველი არგუმენტი გადარქმევა მას მეორე არგუმენტი 301 00:12:30,690 --> 00:12:34,455 თუ მეორე არგუმენტი არ არის, ფაქტობრივად, საქაღალდე ან დირექტორია სახელი. 302 00:12:34,455 --> 00:12:35,120 >> კარგი. 303 00:12:35,120 --> 00:12:39,560 და ბოლოს, პატარა ხრიკი ასე რომ მე ვარ ჩემი სამუშაო დირექტორია მომენტში. 304 00:12:39,560 --> 00:12:43,660 თუ მინდა შეღწევას pset ერთი, მე რა თქმა უნდა აკრიფოთ "cd pset1." 305 00:12:43,660 --> 00:12:47,260 მაგრამ ეს ასე tedious აკრიფოთ "pset1" ან აღარ ფაილის სახელები ან დირექტორია სახელები 306 00:12:47,260 --> 00:12:47,980 მაინც. 307 00:12:47,980 --> 00:12:51,960 ასე რომ, ძალიან ხშირად Linux, თუ რა შეგიძლიათ გააკეთოთ დაიწყოს აკრეფით "pse" 308 00:12:51,960 --> 00:12:56,100 და მხოლოდ მოგწყინდება, მოხვდა Tab, და ნება კომპიუტერული ფიგურა ის თქვენთვის. 309 00:12:56,100 --> 00:12:58,190 Super სასარგებლო შეღწევას, რომ ჩვევა. 310 00:12:58,190 --> 00:13:01,079 მხოლოდ დაჭერა არის, თუ თქვენ გაქვთ რამოდენიმე ფაილი ან ფოლდერები დაწყებული 311 00:13:01,079 --> 00:13:02,870 ასო "P" ან "ps", ალბათ 312 00:13:02,870 --> 00:13:05,525 აკრიფეთ რამდენიმე უფრო ადრე კომპიუტერი იცის, რა უნდა გააკეთოს. 313 00:13:05,525 --> 00:13:06,820 >> MARIA: ჩვენ გვსურს კომბინაციები. 314 00:13:06,820 --> 00:13:08,695 >> დავით Malan: ეს ნება გადარჩენა თქვენ ამდენი დრო. 315 00:13:08,695 --> 00:13:11,930 ასევე, როგორც ვთქვით, ლექცია, თქვენ შეგიძლიათ გადახვევა მდე ისტორიაში, და ქვემოთ, 316 00:13:11,930 --> 00:13:15,461 იპოვოს ცოტა ხნის წინ შესრულებული ბრძანებები, ასევე. 317 00:13:15,461 --> 00:13:15,960 კარგი. 318 00:13:15,960 --> 00:13:20,904 ახლა, მოდით იქცეს ჩვენი ყურადღება უკან მარტივი პროგრამა, hello მსოფლიოში. 319 00:13:20,904 --> 00:13:22,195 ასე რომ, ჩვენ შედგენილი ეს ზუსტად. 320 00:13:22,195 --> 00:13:24,050 და ახლა, რატომ არ ვიღებთ შევხედოთ მონაცემთა ტიპები 321 00:13:24,050 --> 00:13:26,776 და შემდეგ გადასვლას რამდენიმე შესაბამისი Scratch ბლოკები C. 322 00:13:26,776 --> 00:13:27,400 MARIA: გასაოცარია. 323 00:13:27,400 --> 00:13:30,031 ასე რომ, ახლა, რომ თქვენ დაიწყო წერილობით პროგრამების C, 324 00:13:30,031 --> 00:13:32,530 ჩვენ ვაპირებთ, რომ დაიწყოს საუბარი მონაცემთა ტიპები და ცვლადი. 325 00:13:32,530 --> 00:13:37,570 ასე რომ ზოგიერთი მონაცემთა ტიპები, რომ სურს იცოდეს დაწყებული ახლა 326 00:13:37,570 --> 00:13:39,400 არიან, რომ მონიშნულია ლურჯი. 327 00:13:39,400 --> 00:13:42,420 ასე რომ, ჩვენ გვაქვს int, პირველ რიგში, რომელიც დგას მთელი რიცხვი. 328 00:13:42,420 --> 00:13:46,075 და რომელიც ფლობს რიცხვებით, როგორც თქვენ შეიძლება ჰქონდეს guessed-- ასე 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 და ნებისმიერი სხვა რიცხვებით რომ თქვენ შეგიძლიათ წარმოიდგინოთ. 330 00:13:47,950 --> 00:13:48,730 >> დავით Malan: ასევე უარყოფითი. 331 00:13:48,730 --> 00:13:50,220 >> MARIA: ასევე ნეგატიური, yep. 332 00:13:50,220 --> 00:13:51,450 და 0. 333 00:13:51,450 --> 00:13:54,250 მაშინ ჩვენ გვაქვს მოძრავი, რომელიც მცურავი პუნქტიანი ნომრები. 334 00:13:54,250 --> 00:13:58,360 ასე რომ, ყველა რეალური ციფრები რომ აქვს ათობითი რაოდენობა. 335 00:13:58,360 --> 00:14:03,960 ასე რომ, 5.0, 5.2, და კიდევ უფრო მეტი ციფრები შემდეგ ათობითი წერტილი, 336 00:14:03,960 --> 00:14:05,620 ისევე, და ასევე ნეგატიური პირობა. 337 00:14:05,620 --> 00:14:07,530 მაშინ ჩვენ გვაქვს char რომელიც ხასიათი. 338 00:14:07,530 --> 00:14:10,240 ასე რომ, მე ვფიქრობ, რომ ჩვენ ვისაუბრეთ ეს ლექცია დღეს. 339 00:14:10,240 --> 00:14:15,682 მაგრამ ჩვენ გვაქვს წერილები, მაგალითად A, B,, C, რომელიც შეიძლება შენახული, როგორც char. 340 00:14:15,682 --> 00:14:18,390 მაგრამ მაშინ ჩვენ გვაქვს ბევრი სხვა სიმბოლოები რომელიც შეიძლება შენახული, როგორც char. 341 00:14:18,390 --> 00:14:22,380 და იმ ინახება ASCII. 342 00:14:22,380 --> 00:14:25,280 >> და მაშინ ჩვენ გვაქვს bool, რომლებიც Booleans. 343 00:14:25,280 --> 00:14:29,067 და იმ შეაფასოს ჭეშმარიტი ან ყალბი ან 1 და 0, შესაბამისად. 344 00:14:29,067 --> 00:14:31,650 დავით Malan: შეგახსენებთ, რომ bool მოდის CS50 ბიბლიოთეკა. 345 00:14:31,650 --> 00:14:33,300 ასე რომ, ეს არ არის ჩაშენებული C, მაგრამ სუპერ სასარგებლო 346 00:14:33,300 --> 00:14:34,850 აქვს ცნება ჭეშმარიტი და ყალბი. 347 00:14:34,850 --> 00:14:36,990 და მიუხედავად იმისა, შეიძლება აზრით გართობა ფაქტი. 348 00:14:36,990 --> 00:14:43,700 Bool, ტექნიკურად საჭიროებს რამდენი ბიტი, მართლაც, წარმოადგენს True წინააღმდეგ ყალბი? 349 00:14:43,700 --> 00:14:47,910 რამდენი ბიტი ფიქრობთ, თქვენ უნდა, მაქსიმალურად? 350 00:14:47,910 --> 00:14:48,790 ჰო, მხოლოდ ერთი. 351 00:14:48,790 --> 00:14:52,077 გამოდის, რომ C ვერ მოგცემთ მხოლოდ ერთი bit. 352 00:14:52,077 --> 00:14:54,160 უმცირესი ერთეული ზომის შეგიძლიათ მიიღოთ რვა. 353 00:14:54,160 --> 00:14:57,090 ასე რომ, ეს ცოტა არარაციონალური ისინი თქვენ გამოყენებით მთელი byte, რვა ბიტი, 354 00:14:57,090 --> 00:14:58,340 წარმოადგენს ჭეშმარიტი ან ცრუ. 355 00:14:58,340 --> 00:15:01,807 მაგრამ ეს მხოლოდ ისე, როგორც არის განხორციელებული C by CS50 ბიბლიოთეკა. 356 00:15:01,807 --> 00:15:04,890 MARIA: და მერე პირობა, რომ ჩვენ არ ვაპირებ ვისაუბრო როგორც ინტენსიურად 357 00:15:04,890 --> 00:15:08,060 უფლება, ახლა ორმაგი, რომ არის უფრო დიდი მოძრავი. 358 00:15:08,060 --> 00:15:09,811 დიდხანს გრძელი და მოკლე ასევე მთელი რიცხვები. 359 00:15:09,811 --> 00:15:10,643 დავით Malan: მართლაც. 360 00:15:10,643 --> 00:15:13,190 In Hacker გამოცემა pset ერთი, რეალურად გამოვიყენოთ ხანგრძლივი ხანგრძლივი. 361 00:15:13,190 --> 00:15:15,801 მაგრამ სტანდარტული გამოცემა, ეს არ უნდა იყოს საჭირო. 362 00:15:15,801 --> 00:15:16,300 MARIA ზემოთ. 363 00:15:16,300 --> 00:15:17,361 კარგი. 364 00:15:17,361 --> 00:15:20,110 ასე რომ, operators-- თქვენ უნდა ალბათ იცნობს უმეტესობა ამ. 365 00:15:20,110 --> 00:15:22,620 გარდა ამისა, +; გამოკლება, -. 366 00:15:22,620 --> 00:15:24,070 გამრავლება, ჩვენ გვაქვს *. 367 00:15:24,070 --> 00:15:25,900 ასე რომ, არ არის X, რომ ჩვენ, როგორც წესი, იყენებენ. 368 00:15:25,900 --> 00:15:27,840 სამმართველოს, ჩვენ გვაქვს წარმატებული. 369 00:15:27,840 --> 00:15:31,380 და modulo არის ჩვენი ბოლო ოპერატორი, რომელიც ჩვენ ვაპირებთ ვისაუბროთ ახლა. 370 00:15:31,380 --> 00:15:35,610 ის ოპერატორი, რომელიც საშუალებას გვაძლევს მიიღოს დარჩენილი სამმართველოს. 371 00:15:35,610 --> 00:15:40,630 ასე რომ, თუ ჩვენ გვაქვს 4% 2, 4 დაყოფილი 2 2 ერთად დარჩენილი 0. 372 00:15:40,630 --> 00:15:41,740 ასე რომ 4% 2 0. 373 00:15:41,740 --> 00:15:42,950 4% 3 1. 374 00:15:42,950 --> 00:15:44,870 4% 5 4, როგორც თქვენ ვერ მიხვდა. 375 00:15:44,870 --> 00:15:48,860 და მახსოვს, როდესაც გამოყენებით ყველა ამ ოპერატორები გამოიყენოს PEMDAS წესები. 376 00:15:48,860 --> 00:15:54,060 >> დავით Malan: ასე უნდა იყოს მკაფიო, თუ ამის 4% 2, რატომ არის, რომ 0, ზუსტად? 377 00:15:54,060 --> 00:15:57,480 >> MARIA: იმის გამო, 4 იყოფა 2 2 ერთად დარჩენილი 0. 378 00:15:57,480 --> 00:16:00,752 ასე რომ, modulo გვაძლევს, რომ დარჩენილი, როგორც განსხვავებით შედეგი გაყოფა. 379 00:16:00,752 --> 00:16:02,960 დავით Malan: მართლაც, ის, რაც ჩვენ იპოვით ეს სასარგებლო 380 00:16:02,960 --> 00:16:05,640 არის, რომ გარკვეული პრობლემები რომ არ არის აუცილებელი ერთი, 381 00:16:05,640 --> 00:16:08,040 თუ გვინდა, რომ აქვს ეფექტი ზღუდავს თავს 382 00:16:08,040 --> 00:16:10,720 სპექტრი ნომრები მოსწონს 0 მეშვეობით რაღაც, 383 00:16:10,720 --> 00:16:13,904 თქვენ შეგიძლიათ გამოიყენოთ modulo გადაიტანოთ გარშემო უფრო ადრე, ვიდრე, როგორც 2 მილიარდი 384 00:16:13,904 --> 00:16:16,320 ან 4 მილიარდი ღირებულება, რომელიც ჩვენ ვისაუბრეთ ლექცია. 385 00:16:16,320 --> 00:16:16,870 >> MARIA: ჰო. 386 00:16:16,870 --> 00:16:19,429 და კიდევ "ხარბ" ჩვენ შეიძლება. 387 00:16:19,429 --> 00:16:21,345 დავით Malan: დიახ, პრობლემა მითითებული ერთი, ისევე. 388 00:16:21,345 --> 00:16:22,520 MARIA: ჰო, ლამაზი. 389 00:16:22,520 --> 00:16:24,340 დავით Malan: კარგი მინიშნება. 390 00:16:24,340 --> 00:16:25,750 MARIA: უკაცრავად. 391 00:16:25,750 --> 00:16:28,590 ლოგიკური expressions-- ასე ლოგიკური ოპერატორები, 392 00:16:28,590 --> 00:16:31,770 ჩვენ ვაპირებთ ვისაუბროთ ყველა ეს რომ ხედავთ აქ. 393 00:16:31,770 --> 00:16:35,310 ასე რომ, ახლა, ჩვენ გვაქვს ორი თანაბარი ნიშნები ჩამოთვლილი შეადგენს. 394 00:16:35,310 --> 00:16:38,650 ასე რომ, ეს შედარებით. 395 00:16:38,650 --> 00:16:40,830 ჯერჯერობით, ჩვენ მხოლოდ მინახავს ერთი ტოლობის ნიშანი. 396 00:16:40,830 --> 00:16:44,870 ეს მაშინ, როდესაც ჩვენ დაავალოს მნიშვნელობა ცვლადი. 397 00:16:44,870 --> 00:16:50,160 ასე რომ, თუ ჩვენ ვნახეთ int n = 5, მაშინ ჩვენ დანიშნული 5 ცვლადი n. 398 00:16:50,160 --> 00:16:55,600 მაგრამ თუ ჩვენ გვინდა გამოვიყენოთ == for შედარებით, ჩვენ შეგიძლიათ შეამოწმოთ თუ n == 5. 399 00:16:55,600 --> 00:16:58,310 და თუ n == 5, მაშინ, რომ მართალია. 400 00:16:58,310 --> 00:17:01,950 >> ასე რომ, ლოგიკური ოპერატორები საშუალებას გვაძლევს, ძირითადად, 401 00:17:01,950 --> 00:17:04,670 შეაფასოს ლოგიკური გამონათქვამები ჭეშმარიტი ან ცრუ. 402 00:17:04,670 --> 00:17:07,819 ასე რომ, არა equals-- ჩვენ გვაქვს ძახილის ნიშნის და შეადგენს. 403 00:17:07,819 --> 00:17:14,240 ასე რომ, ჩვენ შეიძლება ასევე შემოწმება, თუ n არ უდრის -5 ბლოკის ისე n! = 5. 404 00:17:14,240 --> 00:17:17,640 ნაკლებია, ნაკლებია ან ტოლია, უფრო მეტი, ვიდრე მეტია ან ტოლია 405 00:17:17,640 --> 00:17:20,720 და მაშინ ჩვენ გვაქვს ლოგიკური და და ლოგიკური ან. 406 00:17:20,720 --> 00:17:24,060 და იმ საშუალებას გვაძლევს შევაფასოთ სხვადასხვა ლოგიკური გამონათქვამები ერთად 407 00:17:24,060 --> 00:17:27,930 ძირითადად გავერთიანდეთ, როგორც ერთი მთელი ლოგიკური გამოხატულებაა. 408 00:17:27,930 --> 00:17:34,970 ასე რომ, თუ ჩვენ გვინდა, რომ იპოვოთ ნომერი, ვთქვათ, რომ არის უფრო მეტი, ვიდრე 5 მაგრამ არანაკლებ 15 409 00:17:34,970 --> 00:17:39,810 ამავე დროს, ჩვენ უნდა გამოიყენოთ ლოგიკური და ოპერატორს, რომ ნახოთ, თუ n 410 00:17:39,810 --> 00:17:42,937 მეტი 5 && n არანაკლებ 15. 411 00:17:42,937 --> 00:17:44,770 დავით Malan: აქ, ძალიან, რომ ეს მართლაც ადვილია 412 00:17:44,770 --> 00:17:47,290 დილით შემთხვევით გამოყენება მხოლოდ ერთი ampersand 413 00:17:47,290 --> 00:17:48,572 ან ერთი ვერტიკალური ბარი. 414 00:17:48,572 --> 00:17:51,280 და იმედია შემდგენელი დაწეროთ თქვენ იმიტომ, რომ ისინი რეალურად 415 00:17:51,280 --> 00:17:52,530 აქვს ძალიან განსხვავებული მნიშვნელობა აქვს. 416 00:17:52,530 --> 00:17:55,660 მათთვის საინტერესო, ისინი გამოიყენება bitwise ოპერაციები, 417 00:17:55,660 --> 00:17:57,197 მოქმედი ინდივიდუალური ბიტი. 418 00:17:57,197 --> 00:17:58,780 მაგრამ თქვენ გსურთ წყვილი მათ აქ. 419 00:17:58,780 --> 00:18:01,560 და სუპერ მნიშვნელოვანია, რომ პირველი, თანაბარი ნიშანი, 420 00:18:01,560 --> 00:18:05,270 რაც თანასწორობის ოპერატორს როგორც განსხვავებით დავალება ოპერატორი. 421 00:18:05,270 --> 00:18:08,552 >> MARIA: და ვერტიკალური ბარი შორის მდებარე წაშლა და დაბრუნება. 422 00:18:08,552 --> 00:18:09,260 დავით Malan: დიახ. 423 00:18:09,260 --> 00:18:11,420 ტიპიური აშშ კლავიატურაზე. 424 00:18:11,420 --> 00:18:13,190 >> MARIA: Yep. 425 00:18:13,190 --> 00:18:15,890 მოდით ხტომა მარჯვენა პირობითი განცხადებები. 426 00:18:15,890 --> 00:18:18,300 In Scratch, თქვენ უკვე ჩანს, ალბათ, 427 00:18:18,300 --> 00:18:22,730 თუ განცხადებებს, რომელიც საშუალებას გაძლევთ თუ რაღაც მართალია, მაშინ 428 00:18:22,730 --> 00:18:23,660 რამე სხვას. 429 00:18:23,660 --> 00:18:28,410 ასე, რომ თქვენ შეიძლება არ სურდა შეამოწმეთ თქვენი Sprite არის 430 00:18:28,410 --> 00:18:31,410 ეხება ზოგიერთი სხვა Sprite, და სასაზღვრო თქვენს ეკრანზე. 431 00:18:31,410 --> 00:18:35,520 და მაშინ შეიძლება არ სურდა დასრულდება თამაში ან რამე სხვას. 432 00:18:35,520 --> 00:18:40,000 ასე რომ, სინტაქსი, რომ არის "თუ (მდგომარეობა)." 433 00:18:40,000 --> 00:18:46,820 ასე რომ, თუ თქვენი Sprite, რომელიც ეხება რაღაც, მაშინ არის შიგნით Curly braces. 434 00:18:46,820 --> 00:18:48,980 >> მაშინ ჩვენ გვაქვს თუ-სხვაგან განცხადებებს. 435 00:18:48,980 --> 00:18:54,080 Else საშუალებას გვაძლევს, რომ რამე თუ პირობით, რომ ჩვენ 436 00:18:54,080 --> 00:18:55,870 შემოწმება დასაწყისში არ არის ჭეშმარიტი. 437 00:18:55,870 --> 00:19:01,530 ასე რომ, თუ Sprite ეხება საზღვრის ამისათვის, სხვა რამე სხვას. 438 00:19:01,530 --> 00:19:04,030 ასე რომ, წინააღმდეგ შემთხვევაში, რამე სხვას. 439 00:19:04,030 --> 00:19:07,530 მაშინ ჩვენ გვაქვს მოკლე მაგალითია. 440 00:19:07,530 --> 00:19:11,551 ასე რომ, თუ (military_time <12), ჩვენ გვინდა printf "დილა მშვიდობისა!" 441 00:19:11,551 --> 00:19:13,300 Else ჩვენ ვაპირებთ printf "საღამო მშვიდობისა!" 442 00:19:13,300 --> 00:19:14,860 ძირითადი მაგალითად. 443 00:19:14,860 --> 00:19:15,680 >> დავით Malan: კარგი. 444 00:19:15,680 --> 00:19:16,760 >> MARIA ზემოთ. 445 00:19:16,760 --> 00:19:18,560 ახლა ჩვენ გვაქვს შეცვლა განცხადებები. 446 00:19:18,560 --> 00:19:21,960 გადასვლა განცხადებები ზოგადად can საშუალებას გვაძლევს, რომ ბევრი იგივე 447 00:19:21,960 --> 00:19:25,070 რომ ჩვენ უბრალოდ ვისაუბრეთ შესახებ თუ განცხადებებს. 448 00:19:25,070 --> 00:19:29,440 მაგალითად, ახლა ჩვენ გვაქვს ზოგადი სახით შეცვლა განცხადება 449 00:19:29,440 --> 00:19:33,870 რომელიც საშუალებას გვაძლევს მიიღოს ცვლადში n 450 00:19:33,870 --> 00:19:37,670 და შეადაროთ იგი ბევრი განსხვავებული ღირებულებები, რომელიც აქ 451 00:19:37,670 --> 00:19:40,010 მოუწოდა constant1, constant2. 452 00:19:40,010 --> 00:19:41,150 ჩვენ შეიძლება კიდევ ბევრი გვაქვს. 453 00:19:41,150 --> 00:19:42,930 და იმ უწოდებენ შემთხვევაში. 454 00:19:42,930 --> 00:19:46,280 >> ასე რომ, თუ ჩვენ გვაქვს შეცვლა statement-- და ეს სამუშაოები 455 00:19:46,280 --> 00:19:50,580 მხოლოდ integers-- გვაქვს ცვლადი ამ შემთხვევაში, რომ n. 456 00:19:50,580 --> 00:19:53,840 იმ შემთხვევაში, თუ ცვლადი n არის ტოლი constant1, ჩვენ 457 00:19:53,840 --> 00:19:59,720 შეასრულოს გარკვეული მონაკვეთში კოდი ან რაღაც, რომელიც ჩვენ გვინდა გავაკეთოთ. 458 00:19:59,720 --> 00:20:01,280 და მაშინ ჩვენ შესვენება. 459 00:20:01,280 --> 00:20:04,820 ასე რომ, შესვენების იმას ნიშნავს, რომ შეცვლა განცხადება 460 00:20:04,820 --> 00:20:08,120 შეწყდება შესრულებაში, თუ n უდრის constant1, 461 00:20:08,120 --> 00:20:09,752 და შემდეგ თქვენი პროგრამა გაგრძელდება. 462 00:20:09,752 --> 00:20:11,835 ეს იქნება გასასვლელად გარეთ გადახვიდეთ განაცხადი და იგი ყველაფერს 463 00:20:11,835 --> 00:20:13,520 კვლავაც გააკეთოს რაღაც. 464 00:20:13,520 --> 00:20:17,204 >> თუმცა, თუ n არ უდრის constant1, მაშინ საქმე constant2 465 00:20:17,204 --> 00:20:17,870 მოწმდება. 466 00:20:17,870 --> 00:20:21,750 ასე რომ, თუ n უდრის constant2, რომ სხვა snippet კოდი შესრულდება. 467 00:20:21,750 --> 00:20:23,850 და მაშინ ყველაფერს შესვენება თუ რომ უდრის იგი. 468 00:20:23,850 --> 00:20:27,580 და მაშინ ჩვენ შეიძლება ჰქონდეს also-- არა აუცილებლად, though-- რა შემთხვევაში, 469 00:20:27,580 --> 00:20:32,290 რომელიც მოხდება თუ n არ უდრის ნებისმიერ შემთხვევაში, რომ თქვენ არ ჩამოთვლილი. 470 00:20:32,290 --> 00:20:35,400 და რა შემთხვევაში, ჩვენ ასევე არ უნდა შესვენების აუცილებლად 471 00:20:35,400 --> 00:20:39,271 იმის გამო, რომ შეცვლა განცხადება ეცოდინებათ ის, რომ უნდა დასრულდეს დეფოლტის შემდეგ 472 00:20:39,271 --> 00:20:40,270 იმ შემთხვევაში, თუ ეს საქმე. 473 00:20:40,270 --> 00:20:42,140 >> დავით Malan: მაგრამ სტილისტურად, ჩვენ ყოველთვის დააყენა იგი არსებობს. 474 00:20:42,140 --> 00:20:42,540 >> MARIA: ჰო. 475 00:20:42,540 --> 00:20:42,710 >> დავით Malan: ჰო. 476 00:20:42,710 --> 00:20:44,750 ასე რომ, განსაკუთრებით მაშინ, როდესაც დაწყებული გარეთ, მით უმეტეს, თუ მათ შორის, ნაკლებად 477 00:20:44,750 --> 00:20:47,458 კომფორტული, მე პირადად უბრალოდ რეკომენდაცია გამყარებაში ifs 478 00:20:47,458 --> 00:20:51,564 და ifs-elses და თუ-სხვაგან თუ-elses და ა.შ. თუ მხოლოდ 479 00:20:51,564 --> 00:20:53,480 იმიტომ, რომ ისინი პატარა უფრო მარტივია. 480 00:20:53,480 --> 00:20:56,142 ეს არის ლამაზი ოპტიმიზაცია, ან ზოგჯერ ესთეტიურად ის 481 00:20:56,142 --> 00:20:57,350 ხდის კოდი უფრო იკითხება. 482 00:20:57,350 --> 00:20:59,599 და სინამდვილეში, ალბათ, შუა რიცხვებში სემესტრის ჩვენ დავინახავთ პრობლემა 483 00:20:59,599 --> 00:21:02,504 მითითებული, სადაც იგი უბრალოდ გამოიყურება უკეთესი და ადვილი წასაკითხი, რომ ადამიანები 484 00:21:02,504 --> 00:21:03,670 გამოყენებით შეცვლა განცხადებაში. 485 00:21:03,670 --> 00:21:05,460 მაგრამ არ ინერვიულოთ შესახებ შენარჩუნებისათვის ამ ნაადრევია. 486 00:21:05,460 --> 00:21:05,680 >> MARIA: ჰო. 487 00:21:05,680 --> 00:21:08,840 თუ თქვენ გაქვთ ბევრი თუ განცხადებებს, ეს შეიძლება არ იყოს ძალიან იკითხება. 488 00:21:08,840 --> 00:21:10,965 ეს არ უნდა იყოს ძალიან სწრაფი თქვენ უნდა გაიაროს ეს. 489 00:21:10,965 --> 00:21:13,230 ასე რომ გადახვიდეთ განცხადებები ძალიან სასარგებლო იქნება, ისევე. 490 00:21:13,230 --> 00:21:17,900 ასევე, არ გვახსოვდეს, არ დაგავიწყდეთ დააყენოს შესვენებები არსებობს. 491 00:21:17,900 --> 00:21:20,330 >> დავით Malan: არ გახსოვთ ეს. 492 00:21:20,330 --> 00:21:24,890 >> MARIA: იმის გამო, რომ მაშინ შეიძლება დაეცემა მეშვეობით ერთ შემთხვევაში სხვა. 493 00:21:24,890 --> 00:21:27,930 ასე ვთქვათ, ამ შემთხვევაში constant1 არ აქვს შესვენების განცხადება მას. 494 00:21:27,930 --> 00:21:31,920 მაშინ ჩვენ შეიძლება დაეცემა შიგნით შემთხვევაში constant2. 495 00:21:31,920 --> 00:21:35,070 და ჩვენ არ გვინდა გავაკეთოთ, რომ თუ ჩვენ უკვე მიაღწია შემთხვევაში constant1 496 00:21:35,070 --> 00:21:37,830 და ის ტოლია n. 497 00:21:37,830 --> 00:21:45,100 >> ასე, მაგალითად, თუ ჩვენ გვაქვს ცვლადი n, რომელიც შეიცავს კლასის ნომერი, 498 00:21:45,100 --> 00:21:48,990 და ჩვენ გვინდა, რომ რა, რომ კლასის is-- თუ n უდრის 50, 499 00:21:48,990 --> 00:21:51,957 ჩვენ ვაპირებთ, რომ ბეჭდვა "CS50 არის კომპიუტერული მეცნიერების შესავალი I. " 500 00:21:51,957 --> 00:21:53,040 მაშინ ჩვენ ვაპირებთ, რომ შესვენება. 501 00:21:53,040 --> 00:21:53,920 და ეს არის ის. 502 00:21:53,920 --> 00:21:55,950 თუმცა, თუ n უდრის 51, ჩვენ ვაპირებთ 503 00:21:55,950 --> 00:21:58,494 ბეჭდვა "CS51 არის შესავალი კომპიუტერული მეცნიერების II. " 504 00:21:58,494 --> 00:21:59,910 ამის შემდეგ, კიდევ ერთხელ, ჩვენ ვაპირებთ, რომ დაარღვიოს. 505 00:21:59,910 --> 00:22:05,080 თუმცა, თუ შემდეგ ჩვენ დააყენა 124, 61, ნებისმიერ სხვა ნომერი, რომელიც თქვენ ალბათ ფიქრობთ, 506 00:22:05,080 --> 00:22:06,890 ან პროგრამა არ აპირებს იმის აღიარება, რომ. 507 00:22:06,890 --> 00:22:09,010 ასე რომ, ის აპირებს ამბობენ, "ბოდიში, მე ვარ არ იცნობს, რომ კლასი. " 508 00:22:09,010 --> 00:22:10,009 და ის აპირებს დაარღვიოს. 509 00:22:10,009 --> 00:22:12,847 დავით Malan: ასე რომ თქვენ ვხედავ თუ სხვაგან, თუ სხვაგან, იდეა აქ. 510 00:22:12,847 --> 00:22:15,430 ეს უბრალოდ სხვადასხვა syntax გამოხატავს ზუსტად იგივე იდეა. 511 00:22:15,430 --> 00:22:17,690 >> MARIA: ზუსტად. 512 00:22:17,690 --> 00:22:19,480 ახლა ჩვენ გვაქვს ჩვენი ternary ოპერატორები. 513 00:22:19,480 --> 00:22:24,900 ასე რომ ternary ოპერატორები სამი parts-- მდგომარეობაში, 514 00:22:24,900 --> 00:22:27,220 რაღაც უნდა გააკეთოს, თუ რომ მდგომარეობა არის ჭეშმარიტი, 515 00:22:27,220 --> 00:22:29,730 და მერე რაღაც უნდა გააკეთოს თუ ეს პირობა არის ყალბი. 516 00:22:29,730 --> 00:22:33,400 ასე რომ, ხედავთ, ძირითადად, სინტაქსი, რომ აქ. 517 00:22:33,400 --> 00:22:37,792 ჩვენ გვყავს კითხვის ნიშნის, და მაშინ the--, ჩვენ მოვუწოდებთ ეს? 518 00:22:37,792 --> 00:22:38,750 დავით Malan: მსხვილი ნაწლავის. 519 00:22:38,750 --> 00:22:39,100 MARIA: Colon. 520 00:22:39,100 --> 00:22:39,599 გმადლობთ. 521 00:22:39,599 --> 00:22:41,880 ბოდიში. 522 00:22:41,880 --> 00:22:45,800 მოდით შევხედოთ ჩვენი მაგალითი თუ ჩვენ არ შეგვიძლია, რომ გაგებით ამას 523 00:22:45,800 --> 00:22:47,840 class_num == 50. 524 00:22:47,840 --> 00:22:52,580 ასე რომ, აქ ჩვენ ვხედავთ ჩვენი ლოგიკური ოპერატორი == რომ ადარებს ცვლადი class_num 525 00:22:52,580 --> 00:22:53,100 50. 526 00:22:53,100 --> 00:22:55,150 ასე რომ, class_num მაღაზიები რიცხვი. 527 00:22:55,150 --> 00:22:58,180 და თუ ეს რიცხვი უდრის 50, მაშინ ჩვენ 528 00:22:58,180 --> 00:23:02,810 აპირებს შესანახად "დავით Malan" დაწვრილებით სიმებიანი პროფესორი. 529 00:23:02,810 --> 00:23:05,912 თუ კლასში ნომერი არ გაუტოლდება 50, "არა დავით Malan" 530 00:23:05,912 --> 00:23:07,120 იქნება პროფესორი. 531 00:23:07,120 --> 00:23:08,630 >> დავით Malan: დიდი მადლობა. 532 00:23:08,630 --> 00:23:12,110 ასე რომ, ეს, როგორც ჩანს, ექვივალენტურია რა, იტყვით, ერთი შეხედვით? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> MARIA: იმისათვის, რომ ჩემთვის, როგორც ჩანს მოსწონს თუ-სხვაგან განცხადებებს. 535 00:23:19,960 --> 00:23:20,709 >> დავით Malan: ჰო. 536 00:23:20,709 --> 00:23:24,020 და სინამდვილეში, ეს არის ერთგვარი საკმაოდ ერთი ლაინერი, 537 00:23:24,020 --> 00:23:27,520 ასე ვთქვათ, განხორციელების ზუსტად ლოგიკა თუ-სხვაგან 538 00:23:27,520 --> 00:23:29,010 მაგრამ ყველაფერს აკეთებს ერთი ნაბიჯია. 539 00:23:29,010 --> 00:23:29,860 >> MARIA: ზუსტად. 540 00:23:29,860 --> 00:23:30,360 ჰო. 541 00:23:30,360 --> 00:23:33,520 ასე რომ, თუ-სხვაგან განცხადებებმა, შესაძლოა, დასჭირდეს ბევრი სივრცეში. 542 00:23:33,520 --> 00:23:36,283 ისინი შეიძლება იყოს ძალიან დიდი ხნის რაღაც მარტივია, როგორც ეს. 543 00:23:36,283 --> 00:23:38,350 ასე რომ, ეს შეიძლება იყოს ძალიან ლაკონური და ძალიან ლამაზი. 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 ასე რომ, ახლა ჩვენ ვაპირებთ შევიდა ეძებს შესრულებაში რაღაც ისევ და ისევ, 546 00:23:46,820 --> 00:23:50,060 ისე შემოწმების დიდი მდგომარეობა რამდენჯერმე 547 00:23:50,060 --> 00:23:53,510 და შემდეგ გრძელდება, რომ რამე მიუხედავად იმისა, რომ მდგომარეობა მართლაც ასეა. 548 00:23:53,510 --> 00:23:56,740 ასე რომ, ეს მოაქვს ლამაზად ხოლო მარყუჟების. 549 00:23:56,740 --> 00:23:59,270 >> მარცხნივ, ჩვენ გვაქვს ჩვენი პირველი ხოლო loop. 550 00:23:59,270 --> 00:24:03,840 ასე რომ, როდესაც რაღაც არის ჭეშმარიტი, რომ რამე ისევ და ისევ. 551 00:24:03,840 --> 00:24:08,850 ასე რომ დარწმუნდით, შეამჩნევთ, რომ ჩვენი მდგომარეობა აქ დამტკიცდა ზედა. 552 00:24:08,850 --> 00:24:14,150 ვინაიდან ჩვენი მეორე მარყუჟის ჩვენ მოვუწოდებთ რომ do- ხოლო loop ჩვენ რაღაც, 553 00:24:14,150 --> 00:24:15,890 მაშინ ჩვენ შეამოწმოთ მდგომარეობა. 554 00:24:15,890 --> 00:24:17,980 და თუ ეს მდგომარეობა კვლავ მართალია, 555 00:24:17,980 --> 00:24:20,150 ჩვენ დავბრუნდებით და გავაკეთოთ, რაც კიდევ ერთხელ. 556 00:24:20,150 --> 00:24:23,360 ასე რომ, ძირითადი განსხვავება არის, სადაც მდგომარეობა შემოწმდება. 557 00:24:23,360 --> 00:24:29,260 და კოდი შეიძლება არასოდეს არ იქნება შესრულებული, თუ მდგომარეობა არ არის 558 00:24:29,260 --> 00:24:30,430 მართალია ხოლო loop. 559 00:24:30,430 --> 00:24:33,050 ვინაიდან ერთად do- ხოლო loop, ჩვენ გვაქვს კოდი 560 00:24:33,050 --> 00:24:35,380 რომელიც ყოველთვის შესრულდება ერთხელ მაინც. 561 00:24:35,380 --> 00:24:37,470 და შემდეგ, ხოლო იმ პირობით, კვლავ მართალია, 562 00:24:37,470 --> 00:24:39,960 ჩვენ შეგვიძლია დავუბრუნდეთ და iterate ერთხელ შიგნით. 563 00:24:39,960 --> 00:24:43,625 ასე რომ, რატომ ფიქრობთ, რომ ჩვენ გამოვიყენოთ do- ხოლო loop მეტი ხოლო loop? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 უფლება. 566 00:24:48,720 --> 00:24:52,600 ასე რომ, თუ ჩვენ გვინდა, რომ შეეკითხება შესახებ გარკვეული input, 567 00:24:52,600 --> 00:24:55,400 თუ გვინდა, რომ მათ ვთხოვთ, შესვლის მათი სახელი, 568 00:24:55,400 --> 00:24:57,342 ჩვენ გვინდა, რომ მინიმუმ ვთხოვთ მათ კიდევ ერთხელ. 569 00:24:57,342 --> 00:24:59,050 და თუ ისინი შევა ეს სახელი, რომ ჩვენ არ ვართ 570 00:24:59,050 --> 00:25:00,740 ვაპირებ ვკითხო მათ კიდევ ერთხელ იმიტომ, რომ ჩვენ უკვე ვიცით. 571 00:25:00,740 --> 00:25:02,656 მაგრამ თუ მათ არ შევა მათი სახელი, ან თუ ისინი 572 00:25:02,656 --> 00:25:05,787 მიუთითეთ, რომ რაღაც არის აშკარად არ არის სახელი, 573 00:25:05,787 --> 00:25:08,120 ჩვენ მაინც გსურთ გაგრძელება ეკითხება მათ თავიანთი სახელწოდება. 574 00:25:08,120 --> 00:25:10,710 >> დავით Malan: ლექცია გვქონდა მოსწონს ეს ერთად დადებითი int 575 00:25:10,710 --> 00:25:13,550 მაგალითად, იქ, სადაც არაფერი შეამოწმეთ პირველ რიგში იმიტომ, რომ თქვენ ჯერ კიდევ არ 576 00:25:13,550 --> 00:25:14,190 მიღებული int. 577 00:25:14,190 --> 00:25:16,680 ასე რომ, ჩვენ გვინდა, რომ ამას კიდევ int საწყისი user-- 578 00:25:16,680 --> 00:25:18,860 შემდეგ შეამოწმეთ იგი, ალბათ, ისევ და ისევ და ისევ. 579 00:25:18,860 --> 00:25:21,030 >> MARIA: ზუსტად. 580 00:25:21,030 --> 00:25:22,060 იყიდება მარყუჟების OK. 581 00:25:22,060 --> 00:25:25,842 ამისთვის მარყუჟების შეიძლება გვაძლევდეს ამის თითქმის ზუსტად იგივე რამ, ისევე. 582 00:25:25,842 --> 00:25:27,300 ეს, ფაქტობრივად, ზუსტად იგივე რამ. 583 00:25:27,300 --> 00:25:30,190 ასე რომ, არაფერია, რომ შეგიძლიათ გააკეთოთ ამისთვის მარყუჟების 584 00:25:30,190 --> 00:25:32,840 რომ თქვენ ვერ შეძლებენ უნდა გავაკეთოთ, ხოლო მარყუჟების. 585 00:25:32,840 --> 00:25:36,900 მაგრამ ამისთვის მარყუჟების ჩანდეს ცოტა ცოტა უფრო რთული სინტაქსურად 586 00:25:36,900 --> 00:25:39,730 იმიტომ, რომ მათ აქვთ სამ ნაწილად შიგნით რა 587 00:25:39,730 --> 00:25:42,990 ადრე იყო მხოლოდ მდგომარეობა ხოლო მარყუჟების. 588 00:25:42,990 --> 00:25:48,260 ასე რომ, პირველი ნაწილი, რომ თქვენ ზღვა, მარცხენა საუკეთესო, ჩვენ გვაქვს "int dwarves = 0." 589 00:25:48,260 --> 00:25:51,490 ასე რომ, ეს არის, სადაც ჩვენ ინიციალიზაცია ჩვენი ცვლადი. 590 00:25:51,490 --> 00:25:55,210 >> მაშინ ჩვენ გვაქვს მძიმით და "dwarves <7." 591 00:25:55,210 --> 00:25:57,100 ასე რომ, ეს არის, სადაც out მდგომარეობა რეალურად არის. 592 00:25:57,100 --> 00:26:00,170 ასე რომ, არის ის, რაც ჩვენ არ გვაქვს ბოლო მხოლოდ ხოლო მარყუჟის 593 00:26:00,170 --> 00:26:01,880 "ხოლო dwarves <7." 594 00:26:01,880 --> 00:26:05,380 აქ, რომ მიდის შუა ჩვენი ამისთვის loop. 595 00:26:05,380 --> 00:26:07,190 ასე რომ, "dwaves <7." 596 00:26:07,190 --> 00:26:11,350 და მაშინ ჩვენი ბოლო ნაწილი არის "dwarves ++" სადაც ჩვენ განაახლოს ჩვენი ცვლადი. 597 00:26:11,350 --> 00:26:15,470 ასე რომ, მთავარია, აცნობიერებენ, რომ ამ 598 00:26:15,470 --> 00:26:22,010 აპირებს გაიაროს ამ loop შვიდჯერ და შეასრულოს შვიდჯერ. 599 00:26:22,010 --> 00:26:24,020 ასე რომ, ჩვენ გვაქვს შვიდი Dwarves, და ისინი ყველა 600 00:26:24,020 --> 00:26:26,020 აპირებს ამბობენ, "მე აქ დაგეხმაროთ, ფიფქია " 601 00:26:26,020 --> 00:26:28,860 იმიტომ, რომ ისინი მზად არიან დაეხმაროს თოვლი თეთრი. 602 00:26:28,860 --> 00:26:33,600 >> ერთად ხოლო მარყუჟების, ჩვენ გავაკეთეთ ინიციალიზაციისას და განახლება 603 00:26:33,600 --> 00:26:37,490 არა შიგნით მდგომარეობაში, კიდევ ერთხელ, მაგრამ ან წინ ან შიგნით ხოლო loop 604 00:26:37,490 --> 00:26:40,210 დარწმუნდით, რომ we-- რადგან ჩვენ ყოველთვის უნდა იმ ნაწილებს. 605 00:26:40,210 --> 00:26:42,835 ასე რომ, უნდა დავრწმუნდეთ, რომ ჩვენ გვაქვს მათ, რომ ჩვენ გვაქვს კიდევ დასძინა, რომ ისინი 606 00:26:42,835 --> 00:26:44,580 , უბრალოდ არ შიგნით ფრჩხილებში. 607 00:26:44,580 --> 00:26:47,288 >> დავით Malan: ასე გამოიყურება მოსწონს ლექცია, მაგალითად, 608 00:26:47,288 --> 00:26:50,250 მე თითქმის ყოველთვის იყენებენ, ისევე, როგორც მე და n და საკმაოდ მოსაწყენი ცვლადები. 609 00:26:50,250 --> 00:26:53,050 როგორც ჩანს, შეგიძლიათ გამოიყენოთ უფრო გონივრულად დაასახელა ცვლადები, ძალიან. 610 00:26:53,050 --> 00:26:56,300 >> MARIA: ჰო, ეს ძალიან კარგია გამოიყენოს ცოტა უფრო აღწერითი ცვლადები 611 00:26:56,300 --> 00:26:59,400 იმიტომ, მით უმეტეს, თუ ვინმე არის კითხულობს თქვენი კოდი იქნებ თქვენ კლასელი 612 00:26:59,400 --> 00:27:00,940 ან თუ თქვენ თანამშრომლობს ერთად somebody-- 613 00:27:00,940 --> 00:27:03,481 თქვენ გვინდა დავრწმუნდეთ, რომ ისინი მესმის, რას ვაკეთებთ. 614 00:27:03,481 --> 00:27:05,750 615 00:27:05,750 --> 00:27:06,400 >> კარგი. 616 00:27:06,400 --> 00:27:11,435 ასე რომ, ეს არის ძალიან funky-- ამისთვის loop შიგნით ამისთვის loop. 617 00:27:11,435 --> 00:27:13,060 მე არ ვიცი, თუ ჩვენ ვნახეთ ადრე. 618 00:27:13,060 --> 00:27:13,830 ალბათ არა. 619 00:27:13,830 --> 00:27:17,750 მაგრამ ჩვენ შეგვიძლია რეალურად ამას ასე რომ, მარყუჟების ნაცვლად მარყუჟების. 620 00:27:17,750 --> 00:27:25,130 ასე რომ, ჯერ არავის მინდა იქნებ ფეხით ჩემთვის მეშვეობით, თუ რა ხდება აქ? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 დავით Malan: მე მიიღოს stab. 623 00:27:29,490 --> 00:27:29,970 MARIA ზემოთ. 624 00:27:29,970 --> 00:27:30,636 დავით Malan: OK. 625 00:27:30,636 --> 00:27:34,690 ასე რომ, spoiler-- ჩვენ გვინდა ბეჭდვა პერსონალი ეს არის ის, ქვედა მარჯვენა კუთხეში 626 00:27:34,690 --> 00:27:35,190 არსებობს. 627 00:27:35,190 --> 00:27:35,450 >> MARIA: მარჯვენა. 628 00:27:35,450 --> 00:27:35,710 დიახ დიახ. 629 00:27:35,710 --> 00:27:38,043 >> დავით Malan: ასე, რომ ჩვენ მხოლოდ იმისათვის, რომ ნიმუში გამომავალი არსებობს. 630 00:27:38,043 --> 00:27:42,590 ასე, რომ შეიძლება ითქვას საწყისი უმაღლეს loop, რომ თქვენ 631 00:27:42,590 --> 00:27:45,680 iterating მეტი რიგები outermost მარყუჟის, ასე ვთქვათ. 632 00:27:45,680 --> 00:27:48,107 და თქვენ iterating მეტი სვეტების შიდა loop. 633 00:27:48,107 --> 00:27:50,190 და ინტუიციურად, ამ უნდა იმედია აზრი 634 00:27:50,190 --> 00:27:52,070 რადგან ის მიერ ბუნების ყველა პროგრამა ჩვენ ვნახეთ 635 00:27:52,070 --> 00:27:55,570 ადრე, printf, რომელიც არის ფუნქცია ჩვენ გამოყენებით, საბოლოო ჯამში, 636 00:27:55,570 --> 00:27:58,190 აქვს უნარი ბეჭდვა პერსონალის out არსებითად ხაზს. 637 00:27:58,190 --> 00:27:59,960 მომწონს, ერთხელ თქვენ outputted ახალი ხაზი, არსებობს 638 00:27:59,960 --> 00:28:02,876 არ გაორმაგდა უკან და ბეჭდვა რაღაც უმაღლესი ეკრანზე, მინიმუმ 639 00:28:02,876 --> 00:28:04,530 არ იყენებთ printf მოსწონს ეს. 640 00:28:04,530 --> 00:28:07,750 >> ასე რომ, ამ მხრივ, ეს ქმნის განცდა, რომ outermost მარყუჟი 641 00:28:07,750 --> 00:28:10,930 უნდა გულისხმობდა რიგები რადგან თითოეული მოცემულ გრაფაში, 642 00:28:10,930 --> 00:28:13,650 თქვენ აპირებს გვინდა ბეჭდვა XXXXX და შემდეგ 643 00:28:13,650 --> 00:28:15,520 გადაადგილება, რათა მომდევნო გრაფაში, XXXXX. 644 00:28:15,520 --> 00:28:17,317 ასე რომ, რიგები მოდის პირველი. 645 00:28:17,317 --> 00:28:19,150 და მაშინ თითოეულ ზედიზედ, თქვენ ბეჭდვა სვეტები. 646 00:28:19,150 --> 00:28:21,160 თუ თქვენ სცადა ამის გაკეთება პირიქით, ეს, ალბათ, არ 647 00:28:21,160 --> 00:28:21,690 გამოვა, როგორც თქვენ აპირებენ. 648 00:28:21,690 --> 00:28:22,190 >> MARIA: ჰო. 649 00:28:22,190 --> 00:28:24,950 ჩვენ უბრალოდ ვერ დაბრუნდეს წინა ზედიზედ printf. 650 00:28:24,950 --> 00:28:27,658 >> დავით Malan: რა საინტერესოა ერთ დღეს სტატისტიკა ფარგლებს, 651 00:28:27,658 --> 00:28:31,600 ფაქტობრივად, ის არის, რომ ზედიზედ არის int რომ ის დეკლარირებული უმაღლეს loop. 652 00:28:31,600 --> 00:28:34,030 მაგრამ შეამჩნია, რომ ეს არის კიდევ შიგნით, ასე ვთქვათ, 653 00:28:34,030 --> 00:28:35,982 curly აფრთხილებს, რომ დაუყოვნებლივ მოჰყვება, 654 00:28:35,982 --> 00:28:38,440 მიუხედავად იმისა, რომ ეს არ არის ტექნიკურად ფარგლებში იმ Curly braces. 655 00:28:38,440 --> 00:28:41,750 ასე რომ ზედიზედ არის ფარგლებს მთლიანად snippet კოდი, 656 00:28:41,750 --> 00:28:44,690 როგორც ქვეყნის შიგნით, გარე for loop და შიგნით შიდა ამისთვის loop. 657 00:28:44,690 --> 00:28:48,050 მაგრამ განსხვავებით, სადაც არის სვეტი არეალი? 658 00:28:48,050 --> 00:28:49,810 ცვლადი სვეტი? 659 00:28:49,810 --> 00:28:51,310 ჰო, მხოლოდ შიგნით loop. 660 00:28:51,310 --> 00:28:54,280 და რომ კარგადაა, რადგან ჩვენ არ თქვათ გარეთ მისი Curly braces. 661 00:28:54,280 --> 00:28:57,280 ყველა ჩვენ გავაკეთოთ არის ბეჭდვის ახალი ხაზის ბოლომდე იქ. 662 00:28:57,280 --> 00:28:58,670 ასე რომ, ფაქტობრივად, OK. 663 00:28:58,670 --> 00:29:03,740 >> ასე რომ, ეს ეფექტი, როგორც ჩანს, აკეთებს სამი რიგები და ოთხ სვეტს. 664 00:29:03,740 --> 00:29:04,370 >> MARIA: მარჯვენა. 665 00:29:04,370 --> 00:29:06,270 ასე რომ, პირველი ჩვენ გაიაროს ჩვენი პირველი რიგის. 666 00:29:06,270 --> 00:29:10,520 და მხოლოდ ჩვენი პირველი რიგის, ვაკეთებთ ოთხ სვეტს შიგნით პირველ რიგში. 667 00:29:10,520 --> 00:29:11,980 ასე რომ, ჩვენ ამობეჭდოთ ოთხი X ს. 668 00:29:11,980 --> 00:29:15,800 და მაშინ ჩვენ შეგვიძლია გასვლა ამისთვის მარყუჟის, მას შემდეგ, რაც ჩვენ უკვე დაბეჭდილი ოთხი X ს. 669 00:29:15,800 --> 00:29:17,100 ჩვენ ბეჭდვა ახალი ხაზი. 670 00:29:17,100 --> 00:29:19,920 და მაშინ ჩვენ გავლა იგივე პროცესი კიდევ ორი ​​რიგები 671 00:29:19,920 --> 00:29:21,170 იმისათვის, რომ სულ სამი. 672 00:29:21,170 --> 00:29:23,530 >> დავით Malan: აღსანიშნავია, რომ ეს მხოლოდ artifact შრიფტის, ის ფაქტი, 673 00:29:23,530 --> 00:29:25,680 რომ ნიმუში გამომავალი როგორც ჩანს, იმდენად გრძელია, 674 00:29:25,680 --> 00:29:27,520 როგორც იმისა, რომ იქ მეტი რიგები, ვიდრე სვეტები. 675 00:29:27,520 --> 00:29:29,824 მაგრამ ეს მხოლოდ იმიტომ, რომ X გრძელია, ვიდრე ეს არის ფართო. 676 00:29:29,824 --> 00:29:32,740 ეს არის ის, რაც ხდება იქ, პლუს თეთრი სტრიქონებს შორის. 677 00:29:32,740 --> 00:29:33,281 >> MARIA: მარჯვენა. 678 00:29:33,281 --> 00:29:34,792 ზემოთ. 679 00:29:34,792 --> 00:29:35,750 DAVID Malan ყველა უფლება. 680 00:29:35,750 --> 00:29:39,830 ასე რომ, სწრაფი შევხედოთ პრობლემა მითითებული ერთი, მიიღოს რაიმე შეკითხვები, და შემდეგ გადადოს? 681 00:29:39,830 --> 00:29:40,330 კარგი. 682 00:29:40,330 --> 00:29:43,164 ასე რომ პრობლემა კომპლექტი ერთი, არსებობს სამი პირველადი გამოწვევები, საბოლოოდ. 683 00:29:43,164 --> 00:29:44,955 მაგრამ პირველი, თქვენ იპოვით რომ პრობლემა შეიქმნა 684 00:29:44,955 --> 00:29:47,900 დაზუსტება, როგორც ბევრი psets ამ შემოდგომაზე, აპირებს ფეხით თქვენ 685 00:29:47,900 --> 00:29:50,691 მეშვეობით რამდენიმე გახურების წვრთნები, აღვნიშნო თქვენ რამდენიმე რესურსების 686 00:29:50,691 --> 00:29:52,440 რომ თქვენ შეიძლება იყოს ან არ ჩანს უკვე. 687 00:29:52,440 --> 00:29:54,440 მაგალითად, CS50 აქვს კომპლექტს shorts, 688 00:29:54,440 --> 00:29:56,481 რომლებიც მოკლე ვიდეო, არ განსხვავებით, მაგრამ ეს 689 00:29:56,481 --> 00:29:58,460 ძალიან თემის specific-- შესაძლოა, ხუთ წუთში, 690 00:29:58,460 --> 00:30:02,360 10-ე წუთზე სიგრძე მარყუჟების ან პირობების შესახებ და ალგორითმები 691 00:30:02,360 --> 00:30:04,125 ან მოგვიანებით უფრო მოწინავე თემებზე, ისევე. 692 00:30:04,125 --> 00:30:06,000 და ჩვენ, როგორც წესი, ხმა იმ პრობლემას 693 00:30:06,000 --> 00:30:07,950 კომპლექტი ისე, რომ სტუდენტები აქვს რესურსი, რომელიც 694 00:30:07,950 --> 00:30:10,840 გადახედოს მასალა, რომელიც შეიძლება ჰქონდეს უკვე ამუშავება ლექცია ან სექცია. 695 00:30:10,840 --> 00:30:13,220 მაგრამ ეს გზა, რომ ეს უფრო მიზანმიმართული და მეტი მათ ხელთაა. 696 00:30:13,220 --> 00:30:15,928 >> ჩვენ ასევე, როგორც წესი, ხმა პრობლემა ადგენს რამ მოუწოდა walkthroughs. 697 00:30:15,928 --> 00:30:20,790 ასე რომ, თითქმის ყველა მაგალითები გავაკეთო ლექცია, სცენაზე აქ, ჩვენ ასევე 698 00:30:20,790 --> 00:30:24,565 გადაღებული on კამერა წინსვლის უფრო ნელა, 699 00:30:24,565 --> 00:30:28,760 უფრო ინტიმური walkthrough ჩემს მიერ ჩემი ლეპტოპი რომ კოდი, ხაზს 700 00:30:28,760 --> 00:30:31,427 ასე რომ, კლასის, ჩვენ ხშირად skim მეშვეობით რაიმე ან ვინმე 701 00:30:31,427 --> 00:30:33,260 იქნება interject ერთად პასუხს კითხვას. 702 00:30:33,260 --> 00:30:35,820 მაგრამ ეს სულაც არ ჩაიძიროს ამისთვის ყველას აუდიტორია. 703 00:30:35,820 --> 00:30:38,230 ასე, რომ თქვენ იპოვით კოდი walkthroughs უმეტესი მაგალითები 704 00:30:38,230 --> 00:30:40,950 რომ ჩვენ აქ ლექცია ასე რომ თქვენ შეგიძლიათ გავლა საკუთარი ტემპით 705 00:30:40,950 --> 00:30:43,580 და უკან გადახვევა და სწრაფი წინ და გაფართოებული საერთოდ, თუ გსურთ. 706 00:30:43,580 --> 00:30:45,356 >> იქ ხშირად რამდენიმე გახურების კითხვებით, რომ 707 00:30:45,356 --> 00:30:47,105 გთხოვთ, დაალაგოთ გააძლიეროს ეს მასალა 708 00:30:47,105 --> 00:30:50,250 და დარწმუნდით, რომ თქვენ კომფორტულად წინაშე გააგრძელოს დანარჩენი pset. 709 00:30:50,250 --> 00:30:51,700 და მაშინ, რა თქმა უნდა, იქ pset თავად. 710 00:30:51,700 --> 00:30:53,450 და ერთი რამ ჩვენ სრულიად შეგნებულად 711 00:30:53,450 --> 00:30:57,202 ნუ CS50 თითქმის ყველა უინტერესო ან ინტელექტუალურად უინტერესო 712 00:30:57,202 --> 00:30:58,910 მექანიკური ნაბიჯი, რომელიც თქვენ უნდა გავაკეთოთ 713 00:30:58,910 --> 00:31:00,519 თითქმის ყოველთვის ძალიან კარგად არის დოკუმენტირებული. 714 00:31:00,519 --> 00:31:03,560 მეტი რა თქმა უნდა ტერმინი, ჩვენ დაიწყოს ვთხოვო მეტი რიტორიკული შეკითხვები 715 00:31:03,560 --> 00:31:06,187 ისევე როგორც მახსოვს, როგორ უნდა გააკეთოს ეს და ეს? 716 00:31:06,187 --> 00:31:08,520 მაგრამ ზოგადად, თქვენ იპოვით რომ პრობლემა კომპლექტი მისაღებად თქვენ 717 00:31:08,520 --> 00:31:10,269 მეშვეობით მექანიკის რაღაც ისე, რომ 718 00:31:10,269 --> 00:31:14,160 საინტერესო, ინტელექტუალური გამოწვევები საბოლოოდ დარჩა თქვენ სტუდენტი. 719 00:31:14,160 --> 00:31:17,390 >> რომ განაცხადა, Zamyla, რომელსაც ჩვენ ინახება გულისხმობდა დღეს ლექცია, 720 00:31:17,390 --> 00:31:20,190 ჩვენი ერთ-ერთი დიდი ხნის პერსონალი წევრი, რომელიც ასევე ფლობს walkthroughs 721 00:31:20,190 --> 00:31:24,520 კონკრეტული pset პრობლემები, როგორიცაა mario და ხარბ, თუმცა არ არის წყალი ამ წელიწადში. 722 00:31:24,520 --> 00:31:26,540 და ეს იმ walkthroughs, რომ იგი ხშირად 723 00:31:26,540 --> 00:31:29,450 გვთავაზობს რჩევები და ხრიკები როგორ უნდა გააგრძელონ, არასდროს არ გეუბნებოდით 724 00:31:29,450 --> 00:31:31,810 ზუსტად რა უნდა გააკეთოს, მაგრამ rather--, როგორც მდგომარეობა, 725 00:31:31,810 --> 00:31:35,200 თუ will-- გაძლევთ მინიმუმ რამდენიმე იდეები ისე, რომ თქვენ, 726 00:31:35,200 --> 00:31:37,830 საბოლოო ჯამში, უნდა გადაწყვიტოს როგორ მივუდგეთ მათ. 727 00:31:37,830 --> 00:31:41,200 >> MARIA: სახის მოსწონს მაღალი დონის გაგება ლოგიკა რა 728 00:31:41,200 --> 00:31:42,220 ჩვენ ვთხოვთ თქვენ უნდა გააკეთოს. 729 00:31:42,220 --> 00:31:42,485 >> დავით Malan: ზუსტად. 730 00:31:42,485 --> 00:31:44,190 და, ფაქტობრივად, Zamyla ს walkthroughs ნიშნავდა, 731 00:31:44,190 --> 00:31:46,190 პასუხის გაცემა ხშირად კითხვაზე, თუ სად 732 00:31:46,190 --> 00:31:48,610 მე დაიწყო, განსაკუთრებით მაშინ, როდესაც ამ ხნის სპეციფიკაციები 733 00:31:48,610 --> 00:31:51,960 ცოტა daunting მოცემული ყველა ტექსტი და გამოსახულება, რომ მათ აქვთ მათ. 734 00:31:51,960 --> 00:31:54,890 >> ასე რომ, water.c, თქვენ ნახავთ, მას შემდეგ, რაც თქვენ დასრულდა იგი, 735 00:31:54,890 --> 00:31:56,920 რეალურად შედარებით მარტივია. 736 00:31:56,920 --> 00:31:58,882 აბსოლუტურად რამოდენიმე თქვენ აპირებს bang 737 00:31:58,882 --> 00:32:01,840 თქვენი ხელმძღვანელები კედელს ცდილობს გაერკვნენ, თუ რატომ ეს არ არის შედგენა 738 00:32:01,840 --> 00:32:03,450 ან რატომ არ გამართულად. 739 00:32:03,450 --> 00:32:05,040 მაგრამ ერთხელ თქვენ კეთდება მას და ერთხელ თქვენ 740 00:32:05,040 --> 00:32:07,620 გარკვეული დროის ჭიდაობის ნებისმიერი შეცდომები, რომ თქვენ შეიძლება ჰქონდეს, 741 00:32:07,620 --> 00:32:09,490 თქვენ ნახავთ, რომ ეს ძალიან მოკლე პროგრამა. 742 00:32:09,490 --> 00:32:11,770 ეს შეიძლება გაკეთდეს რამდენიმე ხაზი კოდი, რომელთა 743 00:32:11,770 --> 00:32:15,030 ჩვენ ვნახეთ აქ ლექციების უკვე, თუ თქვენ შეიკრიბება უფლება შენობა ბლოკად. 744 00:32:15,030 --> 00:32:16,810 >> და როგორც ჩვენ ვივარაუდოთ, აქ, ის სთხოვს 745 00:32:16,810 --> 00:32:22,250 თქვენ უნდა მიუთითოთ რამდენი წუთი ვინმე აღების საშხაპე კამპუსში. 746 00:32:22,250 --> 00:32:24,779 ჩვენ დააკონკრეტა პრობლემა მითითებული განაკვეთი ნაკადის წყალი 747 00:32:24,779 --> 00:32:27,320 , როგორიცაა, დაბალი დინების საშხაპე ხელმძღვანელი, ისევე როგორც Seinfeld clip 748 00:32:27,320 --> 00:32:29,180 ჩვენ ვიხილეთ, ან საპირისპირო შესახებ. 749 00:32:29,180 --> 00:32:30,971 და მაშინ უბრალოდ უნდა გავაკეთოთ ცოტა მათემატიკის, 750 00:32:30,971 --> 00:32:34,710 ნამდვილად არითმეტიკული გამოყენებით C ვუთხრა ჩვენს რამდენი, უხეშად, ბოთლი წყალი 751 00:32:34,710 --> 00:32:37,720 ის არის, რომ ეკვივალენტი თუ ჩვენ აღების n-წუთიანი შხაპი. 752 00:32:37,720 --> 00:32:41,389 >> ახლა კი, mario.c, ამ აპირებს უნდა იყოს ოდნავ აღარ პროგრამა. 753 00:32:41,389 --> 00:32:42,930 ეს ჯერ კიდევ არ იქნება ამ ხნის მანძილზე. 754 00:32:42,930 --> 00:32:45,130 რამდენიმე ხაზები უმეტეს water.c. 755 00:32:45,130 --> 00:32:48,230 მაგრამ ეს იქნება შესაძლებლობა ხელახლა ძველი სკოლა Mario 756 00:32:48,230 --> 00:32:50,670 პირამიდის Super Mario Brothers და ზოგიერთი შემდგომი. 757 00:32:50,670 --> 00:32:53,510 ის არ აპირებს გამოიყურებოდეს როგორც გალამაზებაში ან როგორც ფერადი, როგორც რომ ერთი არსებობს. 758 00:32:53,510 --> 00:32:56,468 ჩვენ უბრალოდ აპირებს გამოიყენოს ცოტა hashtags როგორც ჩვენ გვაქვს აქ ეკრანზე 759 00:32:56,468 --> 00:32:58,120 გამოყენებით ASCII ტექსტი. 760 00:32:58,120 --> 00:33:00,362 მაგრამ ეს იქნება სავარაუდო იმავე იდეას. 761 00:33:00,362 --> 00:33:02,570 და ეს იქნება განახორციელოს, რომ ერთი შეხედვით 762 00:33:02,570 --> 00:33:04,720 როგორც ჩანს, საკმაოდ simple-- მხოლოდ ბეჭდვა მარტივი პირამიდის. 763 00:33:04,720 --> 00:33:07,345 მაგრამ არსებობს რამდენიმე მახასიათებლები აქ საინტერესოა. 764 00:33:07,345 --> 00:33:12,400 გაითვალისწინეთ, რომ rightmost ზღვარზე პირამიდის რეალურად აქვს სიგანე ორი. 765 00:33:12,400 --> 00:33:14,570 ასე რომ, ორი თანაბარი სიმაღლე მწკრივი, რომელიც 766 00:33:14,570 --> 00:33:16,804 ხდის მოითხოვს ცოტა ცოტა აზრის, რათა 767 00:33:16,804 --> 00:33:19,720 დარწმუნებული ვარ, თქვენ რომ სწორედ, როგორც ეწინააღმდეგებოდა უბრალოდ შესანიშნავად დახრილი 768 00:33:19,720 --> 00:33:20,220 ონლაინ. 769 00:33:20,220 --> 00:33:23,340 ასე რომ, ცოტა კუთხეში შემთხვევაში მაგრამ შეესაბამება რეალურ თამაშში. 770 00:33:23,340 --> 00:33:27,610 >> და ეს ასევე არასამთავრობო აშკარა პირველი ერთი შეხედვით როგორ ბეჭდვა თეთრ სივრცეში. 771 00:33:27,610 --> 00:33:29,430 ასე რომ, როდესაც ვუყურებ ნიმუში გამომავალი აქ 772 00:33:29,430 --> 00:33:32,440 და ეს ასევე სპეც ეს ერთგვარი ჰგავს მართკუთხედი, 773 00:33:32,440 --> 00:33:35,120 მაგრამ დიაგონალი მართკუთხედი უკვე დაჭრილი off, 774 00:33:35,120 --> 00:33:37,320 და ეს მხოლოდ თეთრი ფართები, ასე ვთქვათ. 775 00:33:37,320 --> 00:33:40,100 ასე რომ, ხშირად დასმული კითხვა აქ ყოველთვის არის, ასევე, 776 00:33:40,100 --> 00:33:43,302 როგორ შემიძლია გადაადგილება hashtags მეტი არა? 777 00:33:43,302 --> 00:33:44,760 ან როგორ შემიძლია ბეჭდვა ცარიელი ფართები? 778 00:33:44,760 --> 00:33:46,860 და ეს არის, ფაქტობრივად, ადვილია ვიდრე ყველაზე სტუდენტები ვფიქრობ. 779 00:33:46,860 --> 00:33:47,360 მარჯვენა? 780 00:33:47,360 --> 00:33:51,620 თქვენ შეგიძლიათ მიახლოებით ეს ვიზუალურად მხოლოდ დარტყმის სივრცეში ბარი ერთხელ ან ორჯერ 781 00:33:51,620 --> 00:33:52,700 ან სამჯერ. 782 00:33:52,700 --> 00:33:56,260 >> ასე რომ, მიუხედავად იმისა, რომ ერთად printf ჩვენ თითქმის ყოველთვის ამობეჭდოთ სიმებიანი ან int 783 00:33:56,260 --> 00:33:59,950 ან სიტყვა "hello, მსოფლიოში "ან სერია სიტყვა, 784 00:33:59,950 --> 00:34:03,560 ასევე, შეგიძლიათ უბრალოდ ამობეჭდოთ პასუხის, სივრცე, unquote. 785 00:34:03,560 --> 00:34:06,320 და რომელიც რეალურად მისცეს თქვენ თეთრ სივრცეში არსებობს. 786 00:34:06,320 --> 00:34:08,330 გააგრძელეთ, რომ გონება და არ overthink ეს. 787 00:34:08,330 --> 00:34:10,570 თქვენ ნამდვილად უნდა გადაწყვიტოს ზედიზედ ზედიზედ ზედიზედ, 788 00:34:10,570 --> 00:34:14,280 არ არის განსხვავებით თქვენი მაგალითად მომენტში წინ, რამდენი იმ 789 00:34:14,280 --> 00:34:18,420 სვეტები უნდა იყოს თეთრი ფართები და რამდენი მათგანი უნდა იყოს hashtags. 790 00:34:18,420 --> 00:34:21,560 დასჭირდება ცოტა დრო, მაგრამ ეს საბოლოო ჯამში, ლოგიკა თავსატეხი ჯიშები. 791 00:34:21,560 --> 00:34:22,060 >> MARIA: ჰო. 792 00:34:22,060 --> 00:34:25,060 მაგრამ ლოგიკა აპირებს ზედიზედ მიერ ზედიზედ იქნება ძალიან სასარგებლოა. 793 00:34:25,060 --> 00:34:25,810 დავით Malan: ჰო. 794 00:34:25,810 --> 00:34:28,976 მე ვფიქრობ, რომ ნიმუში კოდი თქვენ gave-- კი მიუხედავად იმისა, რომ ეს არ იყო სრული პროგრამა. 795 00:34:28,976 --> 00:34:34,247 თქვენ კვლავ უნდა int და მთავარი და ბათილად და # include stdio.h 796 00:34:34,247 --> 00:34:35,580 ბევრი პერსონალის ლექცია. 797 00:34:35,580 --> 00:34:37,629 მაგრამ შენობა ბლოკები როგორც ჩანს, არ არსებობს. 798 00:34:37,629 --> 00:34:39,920 და მერე ბოლოს რაღაც ცოტა მეტი ალგორითმული. 799 00:34:39,920 --> 00:34:43,210 გამოდის, რომ ნებისმიერ დროს წასვლას CVS ან მაღაზიაში 800 00:34:43,210 --> 00:34:47,810 და ვინმე ხელში თქვენ ზე მოლარე გადასახადები და მონეტები, ცვლილება, 801 00:34:47,810 --> 00:34:50,620 გამოდის, რომ ისინი, ადამიანები, თუ არ იციან, თუ არა, 802 00:34:50,620 --> 00:34:53,300 ალბათ გამოყენებით რა არის ეწოდება ხარბ ალგორითმი, 803 00:34:53,300 --> 00:34:58,170 რომლის მიხედვითაც, თუ თქვენ კუთვნილს, ვთქვათ, $ 21 ცვლილება, რადგან რატომღაც 804 00:34:58,170 --> 00:35:01,580 თქვენ შეიძინა რაღაც ძალიან იაფია ძალიან დიდი კანონპროექტი CVS, 805 00:35:01,580 --> 00:35:05,910 ეს იქნება მართლაც შემაშფოთებელი, თუ მოლარე მისცა თქვენ 21 სინგლი ან, უფრო უარესი 806 00:35:05,910 --> 00:35:07,629 ამჟამად, მთელი ბევრი მონეტები. 807 00:35:07,629 --> 00:35:10,670 პირიქით, რაც გონივრული პირი ალბათ აპირებს არის, რომ ისინი აპირებენ 808 00:35:10,670 --> 00:35:14,224 დაიბრუნოს $ 20 და შემდეგ $ 1-კანონპროექტი, და გადასცემს თქვენ მხოლოდ ორ კანონპროექტს, ამ შემთხვევაში. 809 00:35:14,224 --> 00:35:17,390 MARIA: ასე რომ, ისინი ცდილობს მინიმუმამდე ცვლილება, რომ ისინი უკან თქვენ. 810 00:35:17,390 --> 00:35:17,850 დავით Malan: ზუსტად. 811 00:35:17,850 --> 00:35:19,540 და იგივე გარიგება მონეტები, ისევე. 812 00:35:19,540 --> 00:35:23,040 თუ თქვენ კუთვნილს, ვთქვათ, $ 0.50, იმედია თქვენ არ გსურთ 50 pennies. 813 00:35:23,040 --> 00:35:25,500 თქვენ ნაცვლად მინდა ორი კვარტლები, მაგალითად. 814 00:35:25,500 --> 00:35:27,540 ახლა, ეს არ ვივარაუდოთ, რომ მოლარეს 815 00:35:27,540 --> 00:35:29,940 საკმარისი ყველა დასახელების, რომ იგი შეიძლება მინდა გადმოგცეთ. 816 00:35:29,940 --> 00:35:32,148 მაგრამ ჩვენ არ გაძლევთ საშუალებას ვივარაუდოთ, იმდენი პრობლემა. 817 00:35:32,148 --> 00:35:35,590 და მიზანი, საბოლოო ჯამში, არის განახორციელოს C კოდი ხარბ ალგორითმი. 818 00:35:35,590 --> 00:35:37,344 ასე რომ, მომხმარებლის დასაშვებია ჩაწერეთ, თუ რამდენად 819 00:35:37,344 --> 00:35:40,510 შეცვალოს იგი კუთვნილს დოლარი და ცენტი, გარკვეული სახის მცურავი წერტილი 820 00:35:40,510 --> 00:35:41,590 მნიშვნელობა ალბათ. 821 00:35:41,590 --> 00:35:45,530 და მაშინ უნდა გავაკეთოთ მათემატიკის და გაერკვნენ ალგორითმულად, ასევე, 822 00:35:45,530 --> 00:35:49,020 რამდენი მონეტები შეიძლება მე ვაძლევ თქვენ მინიმალურად გადმოგცეთ 823 00:35:49,020 --> 00:35:50,270 ზუსტად, რომ თანხის ცვლილებას. 824 00:35:50,270 --> 00:35:53,470 მაგრამ იქ უნდა იყოს რამდენიმე სახიფათო ნაწილების აქ, არა? 825 00:35:53,470 --> 00:35:56,236 როგორც არის მთელი ორაზროვნება საკითხი. 826 00:35:56,236 --> 00:35:56,860 MARIA: ზუსტად. 827 00:35:56,860 --> 00:35:59,114 ასე რომ, მცურავი წერტილი ღირებულებები ორაზროვნება. 828 00:35:59,114 --> 00:36:00,780 ხომ არ ვსაუბრობთ ეს ლექცია დღეს? 829 00:36:00,780 --> 00:36:02,340 >> დავით Malan: ჩვენ გავაკეთეთ ბოლო დროს ლექცია. 830 00:36:02,340 --> 00:36:03,506 ჩვენ ვისაუბრეთ ორაზროვნება. 831 00:36:03,506 --> 00:36:08,840 და თუ თქვენ არ გსურთ მოტყუებას შესახებ თუ რამდენად შეცვლის მას აღუდგებათ. 832 00:36:08,840 --> 00:36:11,290 ასე რომ, walkthrough, in პრობლემა კომპლექტი სპეციფიკაცია, 833 00:36:11,290 --> 00:36:15,990 მისცეს გარკვეული აზრის, საბოლოო ჯამში, როგორც როგორ შეიძლება შეამსუბუქოს იმ ორაზროვნება 834 00:36:15,990 --> 00:36:17,280 შეცდომები, პოტენციურად. 835 00:36:17,280 --> 00:36:21,050 ეს არის თავიდან აცილება, რა თქმა უნდა, ამისთვის საშუალებებით ჩვენ ვსაუბრობთ. 836 00:36:21,050 --> 00:36:23,590 და, ფაქტობრივად, pennies-- იქნებ ჩვენ დაელოდება Zamyla, 837 00:36:23,590 --> 00:36:25,136 მე ვფიქრობ, ხრიკები არსებობს. 838 00:36:25,136 --> 00:36:27,760 ასე რომ, საბოლოო ჯამში, თქვენ იპოვით პროგრესირებას პრობლემა, რომელიც ამ კვირაში 839 00:36:27,760 --> 00:36:30,700 პირველი, რომელიც არის საკმაოდ პატარა, მაშინ საშუალო, მაშინ პატარა დიდი. 840 00:36:30,700 --> 00:36:33,200 მაგრამ ყველა მათგანი გამოიყენოთ შენობა ბლოკები გასულ კვირას, 841 00:36:33,200 --> 00:36:35,280 ამ supersection, პრობლემა კომპლექტი სპეციფიკაცია 842 00:36:35,280 --> 00:36:36,710 აყენებს თქვენ უამრავი რესურსი. 843 00:36:36,710 --> 00:36:41,000 მაგრამ მაინც, თუ ყველა იბრძოდა, განსაკუთრებით იმ ნაკლებად კომფორტული 844 00:36:41,000 --> 00:36:42,917 ყოველგვარი წინასწარი ფონზე, მოდის საათებში 845 00:36:42,917 --> 00:36:44,958 ორშაბათს და სამშაბათს და ოთხშაბათს და ხუთშაბათს. 846 00:36:44,958 --> 00:36:46,950 გადავიდეთ CS50 იმსჯელებს მეშვეობით რა თქმა უნდა ნახვა, 847 00:36:46,950 --> 00:36:49,080 მეშვეობით, რომელიც შეგიძლიათ სტატისტიკა თანამშრომლებთან და თანაკლასელები. 848 00:36:49,080 --> 00:36:51,670 >> მაგრამ, საბოლოო ჯამში, ვფიქრობ, საუკეთესო რჩევა მხოლოდ იწყება დასაწყისში. 849 00:36:51,670 --> 00:36:54,711 ეს არ არის სახის კლასის, რომ თქვენ უნდა დაწყებული psets ოთხშაბათს 850 00:36:54,711 --> 00:36:56,640 ღამით, ან უარესი, ხუთშაბათს ღამით. 851 00:36:56,640 --> 00:36:59,067 >> MARIA: ჩემი საუკეთესო რჩევა დაიწყო ორშაბათს. 852 00:36:59,067 --> 00:36:59,900 დავით Malan: ორშაბათს. 853 00:36:59,900 --> 00:37:02,490 ასე რომ, თუ თქვენ არ დაიწყო already-- არსებობს. 854 00:37:02,490 --> 00:37:04,732 მაგრამ მაშინაც კი თუ არა ორშაბათს, მაშინ სამშაბათს. 855 00:37:04,732 --> 00:37:05,690 ადრე უკეთესი. 856 00:37:05,690 --> 00:37:08,605 და ეს არის მიზეზი რა თქმა უნდა, აქვს ამდენი ბოლოს დღეებში 857 00:37:08,605 --> 00:37:10,535 გადმოგცეთ ცოტა ფსიქოლოგიური ზეწოლა 858 00:37:10,535 --> 00:37:13,684 უნდა დაიწყოს ადრე, მაგრამ მაინც მიადევნე რამ ხელიდან, როდესაც რამ დასჭირდეს 859 00:37:13,684 --> 00:37:14,350 ვიდრე თქვენ მოველით. 860 00:37:14,350 --> 00:37:17,950 >> MARIA: და გსურთ გამოიყენოს სამუშაო საათებში, როგორც თქვენ შეგიძლიათ, ძალიან. 861 00:37:17,950 --> 00:37:20,291 >> დავით Malan: ნებისმიერი კითხვები? 862 00:37:20,291 --> 00:37:20,790 კარგი. 863 00:37:20,790 --> 00:37:22,930 ისე, რატომ არ გვაქვს გადადოს აქ? 864 00:37:22,930 --> 00:37:23,487