პროფესორი: ასე რომ, დღის წესრიგში ამ კვირაში, არ არის, რომ ბევრი პერსონალი. მაგრამ იმედია, ძალიან სასარგებლოა და შესაბამისი თქვენთვის ბიჭები ამ კვირაში. მაგრამ ჩვენ ვაპირებთ დახარჯვა იქნებ 15, 20-ე წუთზე უბრალოდ სწრაფად საუბარი შესახებ ბმული სიაში. ლინკები სიები ვაპირებთ დაიფარება ვიქტორინა. ასე რომ, ალბათ, რომ ეს იქნება ძალიან სასარგებლო უნდა ვისწავლოთ ცოტა რა, რომ არის. ჩვენ ვაპირებთ, რომ დახარჯოს დიდი უმრავლესობა დღევანდელ მონაკვეთზე აპირებს ვიქტორინა ნულოვანი პრაქტიკის პრობლემები. და მაშინ ჩვენ გადარჩენა იქნებ 20, 30-ე წუთზე ბოლოს ნებისმიერი კითხვების ვინმეს აქვს. და მაშინ, ბოლო ხუთ წუთში, მე ვაპირებ მისცეს სატუმბი სიტყვის ვიქტორინა. თქვენ ბიჭები ყველას გვინდა, რომ აქ, რომ. იმიტომ, რომ ეს იქნება კარგი დრო. ყველა უფლება, ასე რომ ზოგიერთი მასალა ლინკები სიაში. როგორ ისინი, როგორც წესი, სტრუქტურა არის თქვენ გაქვთ რასაც კვანძის, არა? თქვენ გაქვთ ეს ყველაფერი მოუწოდა კვანძების, რომლებიც structs. მე წასვლა თუ როგორ უნდა შექმნათ კვანძის მომდევნო slide. მაგრამ არსებითად ყველა უკავშირდება სიები არის მონაცემები, რომ უკვე strung ერთად მეშვეობით პოინტერები. ასე რომ, უპირატესობა ჩვენ გვაქვს გამოყენების უკავშირდება სიაში ზე, ალბათ, როგორც მასივი, ის ფაქტი, რომ მასივი თქვენ უნდა ერთი მომიჯნავე ბლოკი მეხსიერება ყველა ერთსა და იმავე ადგილზე, ერთი მიყოლებით, შეძლებს აქვს, რომ. ვინაიდან უკავშირდება სიაში, თქვენ შეიძლება შემთხვევითი პატარა ბიტი მეხსიერების მთელი თქვენი კომპიუტერი strung ერთად მითითებას. და ამ გზით თქვენ შეუძლია ინფორმაციის რომ მოდის ერთ შემდეგ სხვა, მას შემდეგ, რაც სხვა გარეშე, მხოლოდ უზარმაზარი ბლოკი მეხსიერების თქვენს კომპიუტერში სადღაც. ასე რომ, ეს არის ერთ-ერთი მთავარი მიზეზი, რის გამოც ჩვენ ვიყენებთ ლინკები სიაში. მეორე, ეს არის ძალიან მარტივი დინამიურად ზომის შეცვლა ბმული სიაში იმიტომ მასივი, როდესაც თქვენ გამოაცხადოს მასივი, თქვენ გაქვთ გარკვეული მნიშვნელობა. ვთქვათ, მე მინდოდა, რომ შეიქმნას მასივი 10 რიცხვებით. შევქმნა მასივი 10 რიცხვებით და ეს არის. ეს არის 10. მე არ ვიცი, რა უნდა გააკეთოს ამის შემდეგ. თუ მინდოდა, რომ ეს 11 არ შეუძლია ამის გაკეთება. თუ მინდა, რომ ეს 9, ამის გაკეთება არ შეუძლიათ. არადა ბმული სია, შეგიძლიათ დაამატოთ და წაშლა და ჩადეთ სადაც გსურთ. თქვენ შეგიძლიათ დინამიურად შეცვლის თქვენი სტრუქტურა აქ, თქვენი მონაცემები სტრუქტურა. და რომ გვაძლევს ბევრი უფრო დასძინა მოქნილობა რომ ჩვენ არ, როგორც წესი, აქვს მასივები. ყველას დაბნეული ძირითადი სტრუქტურა როგორ ლინკი სიაში ან რატომ უნდა გამოვიყენოთ ერთი მასივი? ჰო, ჩვენ წავიდეთ მეტი დეტალურად როგორ რეალურად შევქმნათ ერთი. მაგრამ ეს მხოლოდ სახის ზოგადი გაგებით ახლავე. ზემოთ. ასე რომ, კოლექტორები strung ერთად ამ ლამაზი პატარა რამ მოუწოდა კვანძების. ყველა კვანძის ტიპის struct. გახსოვდეთ, struct არის თუ უნდოდა შექმნას გარკვეული ტიპის ცვლადი C რომ არ უკვე არსებობს, თქვენ, როგორც პროგრამისტი, ნამდვილად შეგვიძლია, რომ თავს. ასე რომ, ამ ტიპის მონაცემები სტრუქტურა ეწოდება კვანძის, ფაქტობრივად უკვე ჩვენს მიერ, რომელიც არ არსებობს ფარგლებში C საკუთარი. და ისე, რომ თქვენ შევქმნათ ერთი თქვენ უნდა სათაურის typedef struct, რომელიც ეუბნება შემდგენელი ვარ შესახებ, რათა შეიქმნას struct. ჩვენ ვაპირებთ, სახელად "კვანძის". და შიგნით ჩვენ ვაპირებთ განაცხადოს ცვლადი, რომელიც აპირებს შესანახად ღირებულება. და მაშინ ჩვენ ასევე ვაპირებთ არ მაჩვენებელი მოუწოდა "შემდეგი" რომ მიუთითებს შემდეგი კვანძის ბმული სია. და მაშინ დასრულდება, რომ off მხოლოდ იმეორებს კვანძის ისევ ისე შემდგენელი იცის, OK რომ ბოლოს ჩემი struct. ასე რომ, ამ გზით, ჩვენ სახის შექმნის cute პატარა მასივი ასეთი რამ ერთად ღირებულება და მომცეთ. და თქვენ შეგიძლიათ უკავშირებენ მათ ყველა ერთად იმ მითითებას. ასე რომ შეიძლება ყველა სახის იყოს strung ერთად ჯაჭვი. ზემოთ. გესმით, რომ ცოტა უკეთესი? აუდიტორია: Yeah. პროფესორი: ყველა უფლება. ასე რომ, ისე, რომ, როგორც თქვენ ბიჭები ვხედავთ, ტიპიური ბმული სია სტრუქტურა თქვენ უნდა ხელმძღვანელი. თქვენ გაქვთ ხელმძღვანელი ღირებულება, რომელიც არ არის მიმდინარეობს აღნიშნა, ნებისმიერი სხვა მაჩვენებელი. მაგრამ ის აპირებს აღვნიშნო, ან მითითება, ერთი კვანძის. კვანძის შემდეგ აპირებს მითითებას კვანძის ამის შემდეგ, და ასე შემდეგ და ასე შემდეგ სანამ თქვენ საბოლოოდ მოხვდა ბოლოს თქვენი ლინკი სიაში. თქვენ უბრალოდ არ უნდა მომცეთ არსებობს. ასე რომ, ვფიქრობ, როგორც, ჯაჭვი, ან თუნდაც თუ რომელიმე თქვენგანი ბიჭები გააკეთა, მე არ ვიცი, ისევე როგორც ხილის Loops როდესაც თქვენ პატარა. თქვენ რომ სიმებიანი მათ ერთად და აცვიათ მათ გარშემო კისრის. ვფიქრობ, რომ ეს ზუსტად იგივე რამ. თქვენ ამ პატარა რამ, რომ თქვენ შეუძლია სიმებიანი ერთად რომ წერტილი ერთი მას შემდეგ, რაც ის, რომ ერთ-ერთ შემდეგ და ასე შემდეგ და ასე შემდეგ სანამ თქვენ გაქვთ ჯაჭვი მონაცემთა სტრუქტურის რომელიც შეგიძლიათ გამოიყენოთ თუმცა გსურთ. ასე რომ, ისე, რომ ეს ჩვენ გვინდა როგორც წესი, ჩადეთ ან წაშლა ნებისმიერი კვანძის ლინკები სიაში არის ძალიან განსხვავებული დამოკიდებულია სადაც ეს კვანძი. ასე, მაგალითად, იმიტომ, რომ მითითებები ყოველთვის მიუთითებს კონკრეტული ღირებულება, როცა წაშლა და ჩადეთ კვანძის, თქვენ გვინდა დავრწმუნდეთ, რომ მომცეთ ყველაფერი მიუთითებს უფლება რამ. ასე რომ, თუ თქვენ სურდა პოტენციურად ჩადეთ ახალი კვანძის ერთად ღირებულება ერთი დაწვრილებით დახარისხებული ლინკი სია, ჩვენ ყველამ ვიცით აქ სურათზე, რომელიც აპირებს წავიდეს შორის ხელმძღვანელი და ორი, არა? იმის გამო, რომ ერთ-ერთი შეესაბამება უფლება არსებობს. მაგრამ გზა, რომელიც ჩვენ ყველაფერს გააკეთებს, რომ არის პირველი dereferencing მაჩვენებელი ხელმძღვანელი და გაგზავნის, რომ ერთი. მაგრამ ჩვენ მოვალთ პრობლემა აქ. შეუძლია ვინმეს რა პრობლემა არის, თუ ჩვენ პირველი dereference მომცეთ ხელმძღვანელი ერთი? რა პრობლემა შეიძლება ჩვენ გადაეყარონ თუ ჩვენ ვცდილობთ რომ დაამატოთ ეს წინ ჩვენი მასივი? აუდიტორია: [INAUDIBLE] პროფესორი: ზუსტად. ასე რომ, აქ ჩვენ გვაქვს მაჩვენებელი, რომელიც იყო ერთხელ მიუთითებს უფროსი ორი. მაგრამ თუ თავი დაეღწია, რომ მაჩვენებელი, თქვენ აღვნიშნო, რომ ეს ერთ-ერთი, ჩვენ ახლა არ ვიცი სად უნდა წავიდეს, რათა იპოვოს ორი. იმის გამო, რომ, როგორც ვთქვი, თქვენ მოხვდით გიგანტური ბლოკი მეხსიერება თქვენს კომპიუტერში. ყველა ამ კვანძების იქნებოდა შემთხვევით interspersed ნებისმიერ ადგილას თქვენს კომპიუტერში. და თქვენ არ იცით, თუ როგორ წავიდეთ შესახებ მოძიებაში, რომ. ასე რომ, თქვენ უნდა პოინტერები მიუთითებს ყველა კვანძების დასასრულს. ანდა თუ შემთხვევით dereference ერთი გარეშე მინიჭება მნიშვნელობა პირველი, თქვენ უბრალოდ აპირებს დაკარგავს ყველაფერი შემდეგ. ასე რომ, რასაც ჩვენ ვაპირებთ, რომ არ არის, თქვენ პირველი გსურთ შექმნათ კურსორი კვანძის გსურთ ჩადეთ. წერტილამდე, სადაც თქვენ გსურთ ჩადეთ მას, და ამის შემდეგ თქვენ შესაძლოა, უფროსი უკან ერთი. არა, რომ აზრი, რომ ყველას აქ? შესანიშნავი. ვფიქრობ, რომ ეს, ისევე, როგორც ჯაჭვი. თუ თქვენ დაამატოთ ჯაჭვი, ეს ერთგვარი ინტუიციური როგორ მინდა წავიდეთ შესახებ ჩასმა რომ. OK, ასე რომ რეალურად ბევრად უფრო მოკლეა, ვიდრე მეგონა, რომ ეს უნდა იყოს, ხუთი წუთის spiel on ბმული სიები. უბრალოდ, ასე რომ თქვენ ბიჭებს აქვთ ძირითადი იდეა რა, რომ არის. აქ ჩვენ გვაქვს დღის წესრიგში ვიქტორინა ნულოვანი. ნუ ეს დაშინების თქვენ. მე ვიცი, რომ ბევრი ინფორმაცია. ეს ძალიან საშიშია. ეს არის ასევე ბევრი, მე ვფიქრობ, CSC სახის თვალსაზრისით. რამ, როგორიცაა თექვსმეტობითი სიმები, მითითებას, დინამიური მეხსიერების გამოყოფის ძალიან საშინელი sounding თვალსაზრისით. მაგრამ ჩვენ ვაპირებთ, რომ დაარღვიოს მათ ქვემოთ, ამის გარკვეული პრაქტიკის პრობლემები ასე რომ თქვენ ბიჭები ყველა მზად ვართ ამ გამოცდას. რამდენი თქვენგანი აქვს უკვე დაიწყო სწავლა? OK, თქვენ ბიჭები ალბათ მინდა დაიწყოს ნაცნობობა ამას, რადგან ვიქტორინა ხვალ. ან ხუთშაბათს ზოგიერთ თქვენგანს. ჰო, ამიტომ ჩვენ ვაპირებთ წავიდეთ მეტი გარკვეული პრაქტიკის პრობლემები. თუ ბიჭები ყველა სურს მიიღოს გარეთ ფურცელი ქაღალდი, ფანქარი. ჩვენ ვაპირებთ, რომ უბრალოდ ატარებენ უმრავლესობის დღევანდელ მონაკვეთზე აპირებს ზოგიერთი, რომ ასე თუ არა ბიჭები იდეა რა ელის ვიქტორინა. OK. რამდენიმე ლოგისტიკური ვრცლად ასევე, არავისთვის რომელიც არ ყოფილა, რომ ბმული არსებობს, თუ მიდიხარ cs50.yale.edu, წინა ამ გვერდზე არის ბმული რომელიც ამბობს, "მომხმარებლის Quiz Zero". ლინკები მოგაწვდით იქ. თუ თქვენ არ წაიკითხავს, ​​გთხოვთ წაიკითხოთ იგი. იმის გამო, რომ ის გიჩვენებთ მართლაც მნიშვნელოვანია ინფორმაცია იმის შესახებ, ვიქტორინა. მე ვაპირებ გაიყვანოს ამ out from რომ მხოლოდ იმიტომ, ფიზიკურად, თუ ბიჭები არ ვიცი სად წასვლა, ჩვენ გვაქვს პრობლემები. ასე რომ, თუ თქვენი ბოლო თვალსაზრისით ერთად to N, წასვლა სამართლის სკოლა აუდიტორიაში. და თუ თქვენი ბოლო იწყება P to Z, წასვლა Davies აუდიტორიაში. და ეს მხოლოდ ვრცელდება ხალხი ოთხშაბათი განყოფილებაში. თუ თქვენ აღების ვიქტორინა ხუთშაბათი, მიდიხარ SSS 114 სადაც თქვენი ლექცია, როგორც წესი, არის. აუდიტორია: [INAUDIBLE] პროფესორი: O to Z, თქვენ აპირებს წასვლა Davies აუდიტორიაში. მე ვაპირებ, რომ შეიცვალოს, არა? Oh, yeah, უბრალოდ ვერ ავტომატურად. ჰო, რომ თქვენ კრისტა. ჰო, ჩემი ცუდი. Yep, O to Z, თქვენ აპირებს წასვლა Davies Auditorim. მე ვაპირებ დაფიქსირება ამ ერთხელ მე ატვირთეთ. ჰო. და მაშინ რაღაც მნიშვნელოვანია, რომ გონება ის არის, რომ ოთხშაბათს, თუ ოფიციალურად ჩაირიცხა ოთხშაბათი განყოფილებიანი, თქვენ უნდა მიიღოს თქვენი ვიქტორინა ოთხშაბათს. და თუ თქვენ ჩარიცხულ ხუთშაბათი, თქვენ უნდა მიიღოს თქვენი ვიქტორინა ხუთშაბათი. და ეს დროს კლასი დროს. იმ შემთხვევაში, მე ვფიქრობ, რომ ეს იგივეა, 1:00 to 2:15 ოთხშაბათს და 2:30 to 3:45 ხუთშაბათს. თუ თქვენ გაქვთ შეურიგებელი კონფლიქტები, დეკანის excuses არის ერთადერთი რამ, სამწუხაროდ, ჩვენ შეუძლია. იმის გამო, რომ ჩვენ გვქონდა უმრავლესობის ითხოვს გადახვიდეთ ოთხშაბათს, ხუთშაბათს. რაც ჩვენ არ შეგვიძლია პატივი სცეს, თუ ჩვენ გვაქვს დეკანის თხოვნით. OK. ასე რომ, სანამ ჩვენ უნდა დავიწყოთ შესახებ რამდენიმე პრაქტიკის პრობლემები, მე უბრალოდ აპირებს წასვლა მეტი ენდი სასარგებლო რჩევები წარმატება. თქვენ ბიჭები, როდესაც თქვენ შესწავლა, თქვენ ნამდვილად გვინდა, რომ პრაქტიკაში წერა კოდი ხელით. პირველად ოდესმე აიღო CS ვიქტორინა, არ მქონდა პრაქტიკა წერა კოდი ხელით ადრე და ეს იყო ძალიან შოკისმომგვრელი რამდენად რთული იყო. როცა ბიჭები არ მოხვდება ჩვევა აკრეფით გარეთ ყველაფერი, საქმე ძალიან ბუნებრივად მიმდინარეობს შეუძლია არ autocompleted ფრჩხილებში და semicolons არსებობს. როდესაც ვწერთ ის ხელით, ზოგჯერ ძალიან, ძალიან ადვილია იმის დავიწყება, მძიმით, ან დაგავიწყდებათ დახურვა bracket, ან დაგავიწყდებათ დახუროს მსხვილი ნაწლავის, ან რამე მაგდაგვარს. ასე რომ, როდესაც ჩვენ ვწერთ კოდს ხელით, ეს არის ძალიან განსხვავებული შეგრძნებას. ასე, რომ თქვენ ბიჭები, როდესაც თქვენ სამუშაო მეშვეობით ზოგიერთი პრაქტიკის პრობლემები, ეს იქნებოდა კარგი იმას დღეს. ან ხვალ, მე ვფიქრობ, თუ თქვენ აღების ვიქტორინა ხუთშაბათს. მეორე, ჩვენ უნდა ბოლო, ისევე, რვა წლის ღირებულების პრაქტიკა ტესტები ონლაინ რეჟიმში. წლევანდელი ვიქტორინა სავარაუდოდ ძალიან, ძალიან ჰგავს ყველა მათგანი. ისინი ყველა ძალიან ჰგავს. თქვენ სახის შეღწევას სტილი ტიპის კითხვებზე რომ ჩვენ ვთხოვთ, ტიპის ფუნქციებს, რომ ჩვენ წერენ ეს, et cetera, და სხვა. ასე რომ მიიღოს პრაქტიკა ტესტებში, განსაკუთრებით დროის მცირე მონაკვეთში. 75-ე წუთზე გავაკეთოთ ვიქტორინა არის არ არის ბევრი დროის. ეს არის ძალიან, ძალიან დიდი ხნის განმავლობაში. ასე რომ, თქვენ ბიჭები ნამდვილად გსურთ დარწმუნდით, რომ თქვენ ბიჭები არიან ჩვევა წერის კოდი ხელით სწრაფად. იმის გამო, რომ თქვენ არ გსურთ პირველი დრო, რომ ნახოთ ვიქტორინა რომ სიგრძე იყოს თქვენი ვიქტორინა. თქვენ ბიჭები ნამდვილად გვინდა დავრწმუნდეთ, რომ თქვენ პრაქტიკაში წინასწარ. მეოთხე, გსურთ განიხილავს ლექცია და განყოფილებიანი სლაიდები. თქვენ არ გვემახსოვრება რამ. რეალურად, ყველას ეძლევა ერთი ფურცელი თეთრი ქაღალდი აღნიშნავს, წინა და უკანა. შენ შეიძლება შეიტანოთ და წერა. თუ თქვენ აღმოჩნდეთ სჭირდება გვემახსოვრება არაფერი, ამას ქვემოთ რომ ფურცელი. მე გაძლევთ გარანტიას, რომ თქვენ არ გსურთ, დავრჩებოდით შუა, რომ ვიქტორინა დაემსგავსო, oh yeah, რა არის runtime ამ სახის წინააღმდეგ, რომ ერთგვარი. უბრალოდ დააყენა მას და კოპირება სწორი თქვენი შენიშვნა ფურცელი. მაშინ თქვენ შეგიძლიათ რეალურად უბრალოდ გამოიყენოთ თქვენი ტვინის ვფიქრობ პრობლემების შესახებ ვიდრე მქონე გავიხსენოთ ფაქტები. ასე რომ, ნამდვილად ისარგებლოს ნებისმიერი ნიშა დეტალები რომ ფიქრობთ უნდა გვემახსოვრება, plop ის ქვემოთ მიმოხილვა ფურცელი. OK, რაიმე შეკითხვები ლოჯისტიკური დაკავშირებით ვიქტორინა დაწყებამდე რამდენიმე ინტელექტუალური პრობლემები პრაქტიკაში? ჰო? აუდიტორია: მე არ მქონდა შანსი შევხედოთ ვიქტორინა [INAUDIBLE] მაგრამ ეს იქნება განაცხადის ძირითადად, ან არსებობს ასევე იქნება, როგორიცაა, ცოდნა კითხვები? პროფესორი: ეს არის ბევრი. ასე რომ, ისე, რომ მე გვინდა აღწერილი ვიქტორინა is-- მე ერთად გარკვეული პრაქტიკის პრობლემები რომ მე გამოყვანილია ყველა ტესტებში. მაგრამ დაინახავთ, რომ არსებობს ორი მთავარი სახის კითხვებით ჩვენ გკითხოთ. ერთი არის ძალიან დაბალ დონეზე დეტალურად პერსონალი. ჩვენ მოგცემთ მცირე ბლოკი კოდი და აცხადებენ, რომ იქ არის შეცდომა აქ? რა იქნება ბეჭდვის აქ? რა იქნება ეს კოდი აწარმოოს, et cetera. ასე რომ, ძალიან დაბალი დონე ინფორმაცია დეტალები. და Flip მხარის, ჩვენ გვექნება ძალიან მაღალი დონის ცოდნა დაფუძნებული კითხვები. ახსნით, თუ რა განსხვავება ორობითი ძებნა და ხაზოვანი ძებნა? რატომ გვინდა გამოყენება ერთი მეტი სხვა? ალბათ, რა არის GDB? რატომ ჩვენ გვინდა გამოვიყენოთ GDB? უმაღლესი დონის, უფრო ფუნდამენტური გაგება კითხვებს. ასე რომ, თქვენ ნახავთ ნარევი ორი მათგანი თქვენს ვიქტორინა. არაფერი სანამ ჩვენ უხელმძღვანელებს სწორი შევიდა? OK. აუდიტორია: კიდევ ერთი. პროფესორი: ოჰ, კიდევ ერთი. ბოდიში. აუდიტორია: ჰო, ეს ყველა უფლება. ასე რომ თქვენ განაცხადა 75-ე წუთზე არის ძალიან მოკლე, როგორც ეს ნაკლებად სავარაუდოა, რომ ჩვენ დასრულდება? ან, როგორც, 75-ე წუთზე არის ზუსტად იმდენი დრო როგორც ჩვენ უნდა, თუ ჩვენ სათანადოდ მომზადებული? პროფესორი: OK, ასე რომ, ვიქტორინა არის რთული. ეს არის ნამდვილად რთული. თქვენ აღმოჩნდეთ მოკლე დროში. თქვენ ალბათ აპირებს მოხვდა, როგორც 10, 15 წუთის წასვლა, და რომ ისევე, როგორც, shit. მე იმდენად დარჩა გასაკეთებელი. და ეს სრულიად ჯარიმა. ყველას აპირებს ვგრძნობ იგივე გზით. უბრალოდ ძალიან იცის რამდენი დრო თქვენ გაქვთ. და ამიტომაც გეუბნებით თქვენ: ბიჭები ამის პრაქტიკა ტესტებში. იმიტომ, რომ ეს ნამდვილად იძლევა დიდი გრძნობა რა ვიქტორინა აპირებს იყოს. ასე რომ, თუ თქვენ აღმოჩნდეთ მიმდინარეობს შეუძლია დასრულდა პრაქტიკა ტესტებში კარგი თანხა დრო, შეგიძლიათ ჰგავდა თავს კარგად, მაშინ არ აქვს პრობლემა ოთხშაბათს ან ხუთშაბათს. ზემოთ. ასე რომ, თუ ყველას wants-- ვფიქრობ, ყველაზე მეტი ადამიანი ფურცლებზე გარეთ უკვე. მე ვაპირებ არსებითად მხოლოდ გაძლევთ ნიმუში კითხვებს, გაძლევთ ბიჭები, ისევე, რამდენიმე წუთში მათ. და ჩვენ წავიდეთ მეტი, როგორც კლასი რა პასუხები მათგანი. ასე რომ, ეს არის ძალიან ტიპიური ადრეული კითხვაზე ჩვენ გამოგიგზავნით გთხოვოთ, მხოლოდ კონვერტაცია ციფრები შორის სხვადასხვა ბაზები. ორობითი, როგორც თქვენ ბიჭები შეუძლია გავიხსენოთ, ბაზაზე ორი. Decimal არის ბაზა 10, ან ის, რაც ჩვენ როგორც ადამიანებს, როგორც წესი, ინტერპრეტაცია. თექვსმეტობითი არის ბაზა 16, რომელიც არის ნულოვანი ცხრა ისევე, როგორც მეშვეობით F. ასე რომ, არსებობს ოთხი ნომრები ვარ გეკითხებით ბიჭები გარდაქმნას აქ. მე მივცემ თქვენ გსურთ, სამი ოთხ წუთში ვფიქრობ მეშვეობით, თუ როგორ ჩვენ წავიდეთ შესახებ გადაჭრის ამ. აუდიტორია: არის ჩვენ დაშვებული კალკულატორები? პროფესორი: თქვენ არ უნდა კალკულატორები, yeah. მე ვფიქრობ, რომ ძირითად ამისა, ვფიქრობ, ყველა ბიჭები იქნება სთხოვა. და მხოლოდ ამიტომ ასეთი აქვს გრძნობა როდესაც ყველას კეთდება, ეძებოთ, ტალღა, მე არ ვიცი, ღიმილი, ბედნიერი თუ თქვენ კეთდება. ჰო. იქნებ რამდენიმე წუთის განმავლობაში. OK, მოდით ამას. მე შეგნებულად აპირებს მოგცემთ ბიჭებს ნაკლები დრო ვიდრე თქვენ ალბათ უნდა გავაკეთოთ ზოგიერთი პრობლემა, უბრალოდ იმიტომ, რომ მე მინდა, რომ დავრწმუნდეთ, რომ მივიღებთ მეშვეობით bunch of პრობლემები. ასე რომ, არ აწუხებს, თუ თქვენ არ გაქვთ შანსი დასრულდება. სრულიად ნორმალურია, რადგან თქვენ გაქვთ იდეა, თუ როგორ უნდა წავიდეს ამის შესახებ. მოდით წავიდეთ წინ და ამის პირველი. ასე რომ, პირველი, ჯერ არავის გინდათ მითხრათ, ორობითი, რა თითოეული ეს ციფრები წარმოადგენს თვალსაზრისით მათი ღირებულებები? ჰო? აუდიტორია: ორი რომ ელექტრო ნულოვანი, ორი ერთ. პროფესორი: ზუსტად. ასე რომ. უფლება, ასე რომ, როგორც წესი, როდესაც ჩვენ ამ ბაზაზე 10 ეს ყველაფერი, ისევე როგორც, 10 ბაზაზე ნულოვანი, არა? ეს არის თქვენი ერთი ადგილი. ყველა თქვენი 10 ადგილი არის არის 10 ძალა ერთი. 100 ადგილი 10 ძალა ორი. როგორიც არ უნდა იყოს ბაზის თქვენ აპირებს უნდა გააკეთოს ზუსტად იგივე, უბრალოდ სხვადასხვა ბაზა. ასე რომ ორობითი, რომ არის ბაზის ორი. თქვენ აპირებს დააკონვერტიროთ ყველა ციფრები ორ, რაც არ უნდა ძალა რომ ციფრი. ასე რომ, ამ თვალსაზრისით, ჩვენ შეიძლება ჰქონდეს უფრო ადვილი გზა მიმდინარეობს შეუძლია დაამატოთ ან მთლიანობაში ყველა ნომრები, რათა დააკონვერტიროთ შევიდა ბაზა 10. ასე რომ, ჯერ არავის მინდა მითხრათ რა პასუხი პირველ ერთი არის ბაზა ათი? აუდიტორია: ორი, [INAUDIBLE] პროფესორი: ჰო. აუდიტორია: 42. პროფესორი: 42, იქ წასვლა. ასე რომ გზა მივიღეთ ეს პასუხი იყო აკეთებს ორი პირველი, რომელიც ორი. პლუს ორი მესამე, რომელიც რვა. პლუს ორი მეხუთე, რომელიც არის ის რაც დარჩა დასრულდა. თქვენ შევაჯამებ და ეს 42. არის ვინმე დაბნეული, როგორ მივიღეთ ეს? ასე რომ, ძირითადი ამისა, როგორც მე ვუთხარი, რომ თქვენ უნდა იყოს OK. თუ არა, ასევე, შეგვიძლია პრაქტიკაში, რომ ძალიან. მაგრამ ეს ყველა უფლება. ზემოთ. ვინმეს სურს, რომ მომეცი პასუხი მეორე ისევე? 50? კარგი. ყველას დაბნეული, თუ როგორ მივიღეთ, რომ ან? ზემოთ, მე არ პასუხი მომდევნო slide. ასე რომ, არ აწუხებს, თუ თქვენ უნდა კოპირება მას. OK, ასე რომ თექვსმეტობითი არის ცოტა რთული სიტუაციაა. მაგრამ მე ვაპირებ გაჩვენოთ ბიჭები კომბინაცია როგორ უნდა გავაკეთოთ ეს. ასე რომ, თექვსმეტობითი, როგორც თქვენ მახსოვს, ის არის, რომ იყოს 16. და იმიტომ, რომ ჩვენ, როგორც ადამიანებს არ რეალურად 16 ნომრები წარმოადგენს, რომ ჩვენ წავიდეთ ნულიდან ცხრა, რომელიც ჩვენი პირველი 10 ფასეულობები, და მაშინ ჩვენ გავაკეთოთ მეშვეობით F, რომლებიც მომდევნო ექვსი ღირებულებებს. ასე რომ, იოლი გზა გადასვლა ნებისმიერი ბინარული ნომერი თექვსმეტობითი შესვენება მათ up შევიდა halves. და ასე რომ ნებისმიერი ორობითი რიცხვი ჩვენ მივცემ თქვენ ალბათ რვა ციფრები. შეგიძლიათ უბრალოდ შესვენება მათ შუა. ასე რომ, პირველი one-- ერთ ერთი, ერთ ერთი, ერთი, ერთი, ერთი ერთი. სახის ვფიქრობ ეს, თქვენ იცით, მიაპყროს ირიბის ან მძიმით მათ შორის. და თქვენ შეგიძლიათ დააკონვერტიროთ პირდაპირ რასაც ეს არის პირველი ნომერი თექვსმეტობითი, და რაც აქ არის მეორე თექვსმეტობითი. ასე მახსოვს საერთო notation, რა თექვსმეტობითი ღირებულებებს დაიწყოს? აუდიტორია: Zero. პროფესორი: 0X. ჩვენ ვიცით, რომ ნებისმიერ დროს, ჩვენ ვთხოვთ თქვენ დააკონვერტიროთ ნებისმიერი ნომერი თექვსმეტობითი, ან ნებისმიერ დროს ხედავთ რაიმე ნომერი, რომელიც იწყება 0X, თქვენ იცით, რომ ეს არის თექვსმეტობითი მნიშვნელობა. და მაშინ ვაპირებთ მოგეთხოვებათ განსაზღვროს, თუ რა ამ ორი ციფრი არის. და ისე გავაკეთოთ, რომ ითვლიან up რომ ნახევარი და ითვლიან up, რომ ნახევარი. ასე რომ, ამ მაგალითად, რა ერთ, ერთი, ერთი, ერთი იყოს? რა მნიშვნელობა რომ იყოს? ეს მინდა იყოს F, არა? ეს მინდა იყოს 15. ასე რომ, ეს იქნება F. ერთი, ერთი, ერთი, ერთი აქ არის ასევე F. ასე რომ, ერთი, ერთი, ერთი, ერთი, ერთი, ერთი, ერთი, ერთი თექვსმეტობითი, ის არის, რომ არის 0XFF. იმის გამო, რომ ამ ტაიმში, წარმოდგენილია F ღირებულება 15 და ამ ტაიმში, წარმოდგენილია F ღირებულება 15. იმიტომ, რომ მახსოვს, ჩვენ დათვლის ნულიდან ცხრა. A არის, როგორიც 10, B არის როგორც 11, F 15. აკეთებს, რომ აზრი, რომ ყველას, თუ როგორ მივიღეთ ორობითი to თექვსმეტობითი? აუდიტორია: ასე რომ, თუ არ მივიღებთ 15 ერთი, ერთი, ერთი, ერთი? პროფესორი: ჰო, ეს არის ორობითი, არა? წარმოიდგინეთ, რომ ეს არის მხოლოდ ორობითი რიცხვი. ასე, რომ თქვენ ორი, zeroth, რომელიც ერთი. აუდიტორია: Oh, OK. ასე რომ, უბრალოდ, სულ ის. პროფესორი: ჰო, და შემდეგ უბრალოდ, სულ რომ გარეთ. ეს არის ის, რაც არის. აუდიტორია: OK. პროფესორი: OK. აუდიტორია: ასე რომ თქვენ გადასვლა ორობითი ათობითზე თექვსმეტობითი? პროფესორი: ეს არის იოლი გზა ამის გაკეთება, yeah. თქვენ არ აპირებს ათობითზე რადგან ათობითი მხოლოდ ნულოვანი ცხრა. ჩვენ უბრალოდ სახის გაყოფა ამ დაყოფილია ორ. აუდიტორია: [INAUDIBLE] გამოყენების ათობითი იპოვოს ის, რაც მატჩების მდე თექვსმეტობითი. პროფესორი: მე ვგულისხმობ, თქვენ ითვლიან up გამოყენებით მათემატიკის ძირითადი. აუდიტორია: Yeah. პროფესორი: ჰო, საკმაოდ ბევრი. ეს ცოტა გაუგებარია. მაგრამ ვიცი, რომ თქვენ შეიძლება გაყოფა რასაც ეს მნიშვნელობა შევიდა მხოლოდ halves. შეხედეთ, რა არის ეს ორობითი? რა ნომერი არის, რომ? ეს იქნება რაღაც ნულიდან F. აქ არის აგრეთვე იქნება რაღაც ნულიდან F. და მაშინ შეგიძლიათ უბრალოდ დააყენა იმ ორ უფლება არსებობს. აუდიტორია: OK. პროფესორი: Yep. OK. ასე, რომ თქვენ ბიჭები მინდა ცდილობენ მომდევნო ერთი მაშინ? ნულოვანი, ერთი, ნულოვანი ერთი, ერთი, ნულოვანი, ერთი ნულოვანი. მე მივცემ თქვენ ბიჭები მოსწონს 30 წამში, მას შემდეგ, რაც თქვენ, ალბათ, არ ვიცი შეასრულა თუ როგორ უნდა გავაკეთოთ ეს ადრე. OK, არავის სურს მიიღოს ერთი გასროლა? 0X5A. პროფესორი: 0X5A. 5 ა. კარგი. ასე რომ, ეს აქ, რომ be-- გსურთ გვეუბნებიან, თუ როგორ მიიღო, რომ? პირველ რიგში, როგორ მიიღეთ ხუთ? აუდიტორია: იმიტომ, ნულოვანი, ერთ-ერთი, ნულოვანი, ერთი ხუთ. პროფესორი: ამჯამად ყველას გვესმის რატომ ნულოვანი, ერთი, ნულოვანი, ერთი ხუთი? თქვენ მოხვდით აქ. თქვენ არაფერი აქვს ორი პირველი. ორი მეორე, თქვენ ერთ-ერთი, რომელიც არის ოთხი. ასე, რომ თქვენ დაამატოთ ოთხი პლუს ერთი, თქვენ გაქვთ ხუთი. ყველას კარგი? OK. და მერე რა ეს იყოს და რატომ? რა რაოდენობის ამჯამად შეესაბამება? აუდიტორია: 10. პროფესორი: რა ამ ბაზაზე ორი? აუდიტორია: [INAUDIBLE] პროფესორი: ზუსტად. ასე რომ, ეს მეორე მნიშვნელობა აქ იქნება 0X5A. ყველას კარგი როგორ უნდა გარდაქმნას? ეს არის ბევრი ადვილია, ვიდრე ფიქრობთ, რომ ეს არის. მე უბრალოდ გვინდა დავრწმუნდეთ, თქვენ იცით, სასარგებლო რჩევები და ხრიკები, თუ როგორ უნდა გავაკეთოთ, რომ. აუდიტორია: რატომ შეგიძლია მხოლოდ გაყოფილი ის შუა, რომ? უბრალოდ იყოს, OK, მე მხოლოდ აპირებს აინტერესებს ეს პირველი [INAUDIBLE]? პროფესორი: იმის გამო, რომ რეალურად გზა თექვსმეტობითი ღირებულებებს წარმოდგენილი. 0X, რომ რეალურად ნიშნავს სხვა არაფერია, გეუბნებოდით ის, რომ ეს რიცხვი. და ეს ყოველთვის წარმოადგენს პირველი ოთხი ციფრი. და ეს ყოველთვის წარმოადგენს ბოლო ოთხი ციფრი. ასე რომ, ამ ორი ციფრი მხოლოდ შეესაბამება სხვადასხვა ბიტი. აუდიტორია: ასე რომ, ჩვენ always-- პროფესორი: თქვენ ყოველთვის აპირებს მიიღოს რვა მნიშვნელობა ბიტი. აუდიტორია: არის, რომ ისევე, როგორც რამ აქ, ან რამ მთელი? პროფესორი: ეს მხოლოდ რამ კომპიუტერები, yep. აუდიტორია: OK. გასაოცარია. პროფესორი: გარდა ამისა, ასე რომ ამ მაგალითში ჩვენ მოაქცია ორობითი ათობითზე, და ორობითი თექვსმეტობითი. თქვენ ბიჭები გვინდა დავრწმუნდეთ, თქვენ ასევე პრაქტიკაში ხდება პირიქით. ასე რომ, თუ მივეცი თქვენ 0XFF, თქვენ შეიძლება მიაპყროს, რომ ორობითი, არა? თქვენ დააკონვერტიროთ F შევიდა ორობითი, რომელიც ერთ-ერთი, ერთი, ერთი, ერთი, გარდაქმნას F ორობითი, რომელიც ერთ-ერთი, ერთი, ერთი, ერთი. ასე რომ, ჩვენ შეიძლება გთხოვოთ, რომ ამის გაკეთება სხვა გზა გარშემო. ასე რომ, ათობითზე ორობითი, ან თექვსმეტობითი ორობითი. ასე რომ, თუ გინდათ დარწმუნებული ვარ, რომ თქვენ იცით, ორივე გზით. ჩვენ, ალბათ, გთხოვოთ კომბინაცია ორი. ჰო, თქვენ გაქვთ შეკითხვა? შემიძლია see-- თქვენ კარგი? აუდიტორია: Yeah. პროფესორი: OK. ვარ კარგი წაშლას ეს? შესანიშნავი. ყველა უფლება, პასუხი აქ თუ ვინმეს საინტერესოა მოგვიანებით და დაბნეული. OK. აუდიტორია: არა აქვს მნიშვნელობა, თუ ჩვენ დააყენა ჩვენი წერილები capitol ან ამას? პროფესორი: ეს ასეა, იმიტომ, რომ თექვსმეტობითი მიერ კონვენციის, ყველა პერსონაჟი ზედა. ასე რომ მეშვეობით F არიან იქნება ზედა. თუ თქვენ დააყენა ამას, მე არ ვიცი, თუ ჩვენ აუცილებლად აღსანიშნავად ეს არასწორია. მაგრამ თეორიულად, ეს არ არის ტექნიკურად თუ როგორ უნდა ყოფილიყო იგი. ასე რომ, ისინი უნდა იყოს ზედა. ჰო, კარგი კითხვა. OK. მეორე კითხვა. განვიხილოთ ეს მშვენიერი პროგრამა აქ. მე ვთხოვ კითხვა, მე დავბრუნდები ეს. ასე რომ, პირველ რიგში, რა არის შიგნით სტანდარტული io.h, რომ ინტერესთა პროგრამაში? მეორე, რა ბათილად ნიშნავდეს ხაზი სამი? და მესამე, რას დაბრუნების ნულოვანი მთავარი, როგორც ხაზი ექვსი, ზოგადად ნიშნავდეს? თუ ბიჭები მინდა დაწერა იმ ქვემოთ, მას შემდეგ, რაც მე უნდა გადახვიდეთ უკან რომ slide უბრალოდ ასე რომ თქვენ ხედავთ კოდი. ეს არის მაგალითი, ისევე, იქნებ მაღალ დონეზე კითხვა, სადაც ჩვენ ვთხოვთ თქვენ რა რამ ნიშნავს პროგრამა. ყველას კარგი ჩემთვის დაბრუნდეს slide? OK, მაგარი. ასე რომ, მე მივცემ თქვენ ბიჭები მოსწონს, შესაძლოა, სამი წუთში შევხედოთ ამ ერთი რეალური სწრაფი. OK, ასე რომ, ეს ერთ-ერთი ის მსგავსად საკმაოდ მარტივია, კონცეპტუალურად. ვინმეს გინდათ მითხრათ, რა არის პირველი შიგნით hash, მათ შორის ჩვენი სტანდარტული io.h ბიბლიოთეკა ფაილი? რატომ გვჭირდება, რომ ბიბლიოთეკა შედის ამ პროგრამაში? რა აქ გვჭირდება ეს? ჰო? აუდიტორია: ის არის, რომ როდესაც თქვენ დააყენა, რომ printf? პროფესორი: ზუსტად. ასე რომ, printf, ნებისმიერ დროს მიიღოს შეყვანის შესახებ და ბეჭდვითი რაღაც ეკრანზე, რომ სტანდარტული შემავალი, გამომავალი ბიბლიოთეკა. წარმოიდგინეთ, რომ way-- შემავალი, გამომავალი. არ მაქვს გამომავალი? დიახ, მე. ასე რომ, მე ვიცი, რომ მე ყოველთვის აპირებს უნდა სტანდარტიზაცია i.o ბიბლიოთეკა. ასე რომ, printf ფუნქცია რომლითაც ჩვენ უნდა შეამოწმონ და hashtag მოიცავს სტანდარტული i.o ბიბლიოთეკა. OK. მეორე, ეს რას ბათილად ნიშნავდეს? ჩვენ გვაქვს int ძირითადი (void), რას ბათილად აქ ნიშნავს აქ ხაზი სამი? ჰო, წელს დაბრუნდა. აუდიტორია: [INAUDIBLE] პროფესორი: ზუსტად. ასე მახსოვს, ჩვენ ვისწავლეთ დაწყებული ჩვენი pset რომ თქვენ შეგიძლიათ რეალურად დააკონკრეტა command line არგუმენტები, რომ თქვენი პროგრამა, რომ თქვენ მთავარი ფუნქცია, იღებს, როგორც თქვენ, შესახებ, ეძახით. თუ ჩვენ ბათილად, რაც იმას ნიშნავს, რომ თქვენ შეიძლება მხოლოდ პროგრამის გაშვება პირდაპირ ყოველგვარი ბრძანების არგუმენტები. ყველას ნათელი, რომ? OK. და ბოლოს რატომ ვახვევთ აკეთებს ამ დაბრუნების ნულოვანი რამ აქ? რატომ ჩვენ კი აქვს int ძირითადი? რატომ არ შეიძლება ჩვენ უბრალოდ უნდა ბათილად მთავარი ბათილად? ჰო? აუდიტორია: უბრალოდ, ასე, რომ ჩვენ შეგვიძლია რა თქმა უნდა, რომ პროგრამა არის არსებული წარმატებით, რადგან განსხვავებით, თუ იგი დათვლილია. და ჩვენ ვიცით, რომ ეს სხვადასხვა სახის შეცდომა. პროფესორი: ჰო, ზუსტად. ეს არის უბრალოდ ძალიან ჩვეულებრივი რამ, რასაც ჩვენ ვაკეთებთ, არის, რომ მხოლოდ ბოლოს თქვენს პროგრამაში, უბრალოდ დარწმუნდით რომ თქვენი ძირითადი ფუნქცია გაშვებული სწორად, ჩვენ ყოველთვის გვინდა ამის სანაცვლოდ ნულოვანი. მიუხედავად იმისა, რომ ჩვენ შეიძლება აუცილებელი ვერ ვხედავ, რომ დაბეჭდილი ნებისმიერ წერტილში. იმის გამო, რომ, როგორც პროგრამისტები, თქვენ იცით, თუ თქვენ ბევრი სხვადასხვა ხაზების კოდი და თქვენ არ ვიცი სად ამ ვაპირებთ არასწორი, და თუ შეცდომა ხდება გსურთ დარწმუნდით, რომ თქვენ, რომ შეცდომა. ასე რომ, როგორც წესი, თუ რამე მიდის არასწორი გვექნება დაბრუნების ერთი მხოლოდ დარწმუნდით, რომ ჩვენ ვიცით, რომ ეს არის. ასე რომ, თუ ვხედავ დაბრუნების ნულოვანი, რომ, როგორც წესი, ნიშნავს, რომ თქვენი პროგრამა შესრულებული წარმატებით. კარგი? ზემოთ. OK, მეორე პროგრამა აქ. მიგვაჩნია, რომ. და თუ ბიჭები ვხედავ float, თქვენ ბიჭები ალბათ შეუძლია აქვს კარგი იდეა რა მე უნდა გკითხოთ. ასე რომ, როდესაც ეს პროგრამა ახორციელებს, როგორც ხედავთ, მე ვაცხადებ float შიგნით ჩემი მთავარი ფუნქცია. მე დასახელებისგან იგი "უპასუხებს", და მე შექმნის რომ თანაბარი ერთი იყოფა 10. მე დაბეჭდვისას, ერთი ათობითი ადგილი, რომ float. და მაშინ მე დაბრუნების ნულოვანი. ასე რომ, როდესაც შესრულებაში პროგრამა, ვფიქრობ, უკან ხარბ ახლა, ეს პროგრამა ბეჭდავს 0.0. როგორც ყველამ ვიცით, იმედია, ჩვენ ყველა ვიცი, ერთი იყოფა 10 არ არის, 0.00, ეს 0.1. მაგრამ რატომ ამ პროგრამის ფიქრობს, რომ 1 იყოფა 10 ნამუშევარი 0.1 სხვა 0.1? მე მივცემ თქვენ ბიჭები შესაძლოა, 30 წამი უბრალოდ სწრაფად ვიფიქროთ, რომ და მე დაბრუნდეს პროგრამა. OK. არავის სურს, რათა ეს კადრი? სამ სასჯელს ან ნაკლები, იმიტომ, რომ, როგორც წესი, ჩვენ აპირებს შეზღუდოს ყველა პასუხი სამ სასჯელს ან ნაკლები ასე რომ თქვენ არ უბრალოდ regurgitate შემთხვევითი რამ თქვენს ვიქტორინა. ჰო, მიიღოს გასროლა. აუდიტორია: ასე რომ მე ვფიქრობ, რომ ეს რამ მოუწოდა, ისევე, [INAUDIBLE] ასე რომ, არ შეიძლება იყოს, მაგალითად, არ შეიძლება იყოს, როგორიცაა, 0.09, რომ სადაც ბეჭდვა პირველი ციფრი, ეს იქნება 0.0? პროფესორი: Close, არ საკმაოდ. Christabell? აუდიტორია: თქვენ გამყოფი ერთი და 10, და ისინი ორივე რიცხვებით. ასე რომ, ისე, რომ ის აპირებს შესანახად იგი არის როგორც მთელი რიცხვი. ასე რომ, უახლოესი რიცხვი იქნება 0.0. და ისე, რომ 0.1. პროფესორი: ჰო, ძალიან კარგი. ეს არის სწორი პასუხი. ასე რომ, ეს არის ძალიან დამაბნეველი კონცეფცია ბევრი ბავშვები. და მე მინდა, რომ დავრწმუნდეთ, რომ ეს განამტკიცა ყველას თავი. ასე რომ, რაც ჩვენ მოვუწოდებთ მცურავი პუნქტიანი ორაზროვნება, სადაც ამიტომ ბევრი თქვენი პროგრამების ხარბ არ მუშაობს თავდაპირველად იყო, რადგან თქვენ დაავიწყდა მიცემული ცვლადი. ასე რომ, რა Christabell განაცხადა მთლიანად სწორი. Float არის არსებითად არაზუსტი. იმის გამო, რომ კომპიუტერული, უფლება, ჩვენ სასრული რაოდენობით ბიტი მეხსიერების ჩვენ შეგვიძლია გამოვიყენოთ წარმოადგენს ნომრები. ასე, მაგალითად, ამ CS50 ID is-- მე ვფიქრობ, რომ ეს არის 64-bit კომპიუტერი. Float შეიძლება მხოლოდ იყოს წარმოდგენილი მიერ სასრული რაოდენობით იმ ბიტი. ასე რომ, 0.1 უსასრულო zeros, რომ ის იყო 0.1, არა? მაგრამ ჩვენ არ შეგვიძლია რეალურად შესანახად რომ ნომერი, ჩვენი კომპიუტერი. ჩვენ უბრალოდ არ აქვს საკმარისი მეხსიერება ამის გაკეთება. ასე რომ, უახლოეს დაახლოებას რა ინახება მეხსიერებაში რეალურად რაღაც 0.000 რაღაც, რაღაც, რაღაც, რაღაც. რომელიც, ერთხელ თქვენ შეკვეცავს ის, რაუნდები ქვემოთ 0.0. ასე რომ, ეს, მაგალითად, არის მხოლოდ ერთი იმაზე, თუ უამრავი საკითხები ჩვენ როდესაც ჩვენ ცდილობს არასწორად გააკეთოს მათემატიკის ოღონდ ისე, როგორც სხვადასხვა რიცხვი. ასე რომ იყოს ფრთხილი ხდება. On ტესტებში, თუ ჩვენ მოგცემთ ბლოკი კოდი და ეს იგივეა, რა ბეჭდავს out ბოლოს? და თუ ეს შემთხვევითი მნიშვნელობა თქვენ ბიჭები უნდა იცოდეს, თუ რატომ, რომ ხდება. ჰო? აუდიტორია: Truncate არის მოშორება ყველაფერი მას შემდეგ, გარკვეული თვალსაზრისით? [INAUDIBLE] პროფესორი: ჰო, ასე რომ, რეალურად ეს არის ძალიან ცუდი მაგალითი, იმიტომ 0,100 რასაც რეალურად რომ შეკვეცავს ქვემოთ 0.1. მაგრამ თუ თქვენ აწარმოებს it-- მე არ მახსოვს, იმიტომ, რომ გასულ წელს გაიქცა ის სხვადასხვა პროგრამა. ისინი გაიქცა ის რაღაც მოუწოდა CS50 ელექტრო მოწყობილობების, რომელიც განსხვავდება ID. ეს იყო 32-bit, ჩემი აზრით. და ასე იყო სხვადასხვა ნომრები. მაგრამ არსებითად, უბრალოდ ვიცი, რომ მთელი კონცეფცია truncation და როგორ უბრალოდ წყვეტს რამ off. ასე რომ, თუ ის rounds-- აუდიტორია: დამრგვალების გარეშე. პროფესორი: ზუსტად. ჰო. ზემოთ. Hi, უკან. ჩვენ უბრალოდ აპირებს მეტი რამდენიმე ინტელექტუალური მიმოხილვა შეკითხვებს. ყველა უფლება. ამიტომ მიგვაჩნია, რომ სხვადასხვა პროგრამა აქ. მე ვაპირებ გაძლევთ ბიჭები რამდენიმე წუთის წაკითხვის მეტი ამ. ეს არის ის, რომ იყო ძალიან ცოტა ხნის წინ, მე ვფიქრობ, რომ ააფეთქეს ბევრი თქვენგანი ბიჭები გონებაში. მაგრამ ჩვენ ვაპირებთ, რომ გაიგო ამ გზით კვლავ მხოლოდ დარწმუნდით, რომ თქვენ მესმის, რომ ეს მთლიანად. OK. OK. ყველას უფრო მეტი დრო უნდა წაკითხვის მეშვეობით ეს კოდი? OK. ასე რომ, ეს მეჩვენება, რომ ამ პროგრამის მე შექმნა ორი strings გამოყენებით GetString. ერთი მოუწოდა და ერთი მოუწოდა ტ. და თუ ისინი თანასწორი უდრის ერთმანეთს, ეს უნდა ბეჭდვა "თქვენ ჩაწერეთ იგივე ". მაგრამ elsewise, ეს იქნებოდა ბეჭდვა "თქვენ აკრეფილი სხვადასხვა რამ, "უფლება? როგორც ჩანს, ძალიან, ძალიან მარტივია. მაგრამ, მიუხედავად ამისა, თუ რეალურად ცდილობენ წერენ ამ პროგრამის, როგორც ჩანს, მაშინაც კი, როცა შეყვანის ზუსტად იგივე სიმები, ის კვლავ ბეჭდავს out, "თქვენ აკრეფილი სხვადასხვა რამ! " ვინმეს სურს მიიღოს ესროლეს, რის გამოც ეს პროგრამა ყოველთვის პასუხობს, რომ საშუალებებით სხვადასხვა, თუნდაც როდესაც სიტყვა თავად არის იგივე? ასე რომ, თუ მე უნდა შეყვანის დავით სიყვარული გამოვიყენოთ მაგალითად, ისევე როგორც დედა, არა? მხედრულ M-O-M for S, T უდრის ამას M-O-M. თუ მე გაიქცა ამ გზით რომ კოდი, რატომ ეს ამობეჭდოთ "თქვენ აკრეფილი სხვადასხვა რამ?" ვინმეს უნდა მეტი დრო, რომ ვიფიქროთ ეს? OK, მე ვფიქრობ, რომ ჩვენ კარგი. ჰო? აუდიტორია: OK, ასე რომ, რაღაც შესახებ სადაც ის ინახება მეხსიერებაში, არა? პროფესორი: Yep. აუდიტორია: სად ეს იგივეა, თუ ეს სიმებიანი ინახება მეხსიერების spot-- მე გამოგონება ამას არის ნულოვანი. პროფესორი: რა თქმა უნდა. აუდიტორია: სიმებიანი ტ ინახება მეხსიერების ადგილზე, მოსწონს, 167, და მაშინ ნულოვანი არ უდრის 167. პროფესორი: ზუსტად. OK, ასე მახსოვს, ეს წარმოუდგენელი გამოცხადება ავუხსენით, რომ თქვენ ბიჭები გასულ კვირას, რომ strings ნამდვილად არ არსებობს? როდესაც ჩვენ შევქმნათ რაღაც მოუწოდა სიმებიანი ჩვენ, რეალურად, შექმნა რაღაც მოუწოდა char ვარსკვლავი. რომელი ყოვლისა, ეს არის მომცეთ სიმებიანი ან მასივი სიმბოლო. ასე რომ, ამ მაგალითად, თუ მე იყო შეტანის M-O-M გზა რომ ჩემი კომპიუტერი შესანახად ეს არის ფარგლებში მეხსიერება წარმატებული ნულოვანი, არა? იმ ოთხი სიმბოლო, სიმბოლო, იქნება შენახული სადღაც. და მაშინ, ამ ოთხი გმირები, წარმატებული ნულოვანი, ინახება სადმე სხვაგან, არა? მე არ ვიცი, სადაც მისამართები , ისინი სადღაც ჩემს კომპიუტერში. მაგრამ მე ზუსტად არ ვიცი სად არიან. როცა შექმნა string s, ყველა რომ ნამდვილად არის არის მომცეთ დაიწყოს ეს კონტექსტი. და როდესაც მე შექმნა ამ t ღირებულება, ყველა რომ მომცეთ აქ. ასე რომ, როდესაც თქვენ ცდილობთ გაუტოლოს და შემოწმება იმისათვის, რომ ნახოთ, თუ არის ტოლობის უდრის t, კომპიუტერი მართლაც უბრუნდება თქვენ მისამართის ამ მ და მისამართი, რომელიც მ. და იმიტომ, რომ ისინი ორი ცალკე ცალი მონაცემები რომელიც ინახება ორი სხვადასხვა მისამართები თქვენს კომპიუტერში, თქვენს კომპიუტერში არასდროს აპირებს აღიარებს მათ, როგორც იგივე. ვინმეს სურს იძლევა ესროლეს, რაც ჩვენ უნდა გავაკეთოთ, თუ გვინდოდა გამოსწორების ამ და აქვს სწორი გაშვებული პროგრამა ნაცვლად? ვიფიქროთ, რომ რამდენიმე წამში. რა უნდა გავაკეთოთ, უნდა შეიცვალოს ამ პროგრამის ფუნქციონირებას სხვათა შორის, ჩვენ გვინდა, რომ ეს ფუნქცია? ჰო, მინდა მიიღოს stab მას? აუდიტორია: ვცდილობთ dereference მაჩვენებელი და ნახოთ მეშვეობით მასივი? პროფესორი: ეს არის ერთ-ერთი გზა ამის გაკეთება. ასე რომ, რა არის შენი სახელი ისევ? მე ვწუხვარ, მაგონებს. Zee: Zee. პროფესორი: ჰო, რა Zee ვარაუდით აბსოლუტურად მუშაობა. მარჯვენა? ჩვენ შეგვეძლო dereference მაჩვენებელი და რეალურად წასვლა და ხელმისაწვდომობის ფიზიკური მონაცემები შიგნით აქ. და ჩვენ შეგვიძლია მხოლოდ შედარება მთელ ეკრანზე. ჩვენ შეგვიძლია ვთქვათ, OK, მაჩვენებელი, მომეცი რა არის შიგნით აქ. ეს იქნებოდა დაბრუნდება მ. და მე ვიტყოდი, მაჩვენებელი, მომეცი რა არის შიგნით აქ. დაბრუნების მ. ნუ იმ მატჩში? დიახ. მაშინ ჩვენ გადაადგილება. ჩვენ მუდმივად შემოწმების მთელი ორი strings ყველა გზა ბოლომდე და თუ იმ თანაბარია, თუ ყველა ღირებულებები თანაბარი. და თუ ყველა ღირებულებები თანაბარი, მაშინ ჩვენ ვიცით, სიმები არიან ნამდვილი. რა თქმა უნდა, ეს არის ის, როგორ უნდა გავაკეთოთ ეს? ვინმეს დაბნეული ნებისმიერ ეს? მთელი კონცეფცია, თუ როგორ სიმები მართლაც მხოლოდ მითითებას, და როგორ ისინი ნამდვილად არ არსებობს? და რატომ არ მივიღებთ შეცდომები ისე როგორც ჩვენ ეს? იმის გამო, რომ მე გაძლევთ გარანტიას, ბიჭები, მითითებას და სიმებიანი გამოყოფა და მეხსიერება ვაპირებთ, რომ ამუშავება. ჰო? აუდიტორია: [INAUDIBLE] dereference ეს, უბრალოდ დააყენა ვარსკვლავი [INAUDIBLE] პროფესორი: მართალია. ასე რომ, derererence მომცეთ საშუალება წასვლა რომ მისამართი მაჩვენებელი და მიიღოს მონაცემები, ღირებულება არსებობს. და გზა უნდა გავაკეთოთ, რომ ვარსკვლავი მაჩვენებელი. არ აღრეული, რომ. აუდიტორია: [INAUDIBLE]. პროფესორი: ჰო. აუდიტორია: ასე რომ შეგიძლიათ უბრალოდ დაწერეთ თუ ვარსკვლავი s თანაბარი შეადგენს ვარსკვლავი ტ. პროფესორი: ისე, არა. No. აუდიტორია: ეს არ არის საკმარისი, არა? პროფესორი: ეს არ არის, იმიტომ, რომ თქვენ მხოლოდ შემოწმების პირველი წერილი. თქვენ ალბათ აპირებს გვჭირდება გარკვეული ციკლი, iterates მეშვეობით თითოეული ხასიათი, როგორც სიმები. ჰო. ასე რომ, თუ თქვენ სურდა მხოლოდ შეამოწმეთ იმ შემთხვევაში, თუ მათ დაიწყეს იგივე, შეგიძლიათ გააკეთოთ, თუ, ვარსკვლავი s უდრის ვარსკვლავი ტ. მაშინ თქვენ იცით, რომ მაინც დაიწყო იმავე ხასიათი. ჰო? აუდიტორია: ასე რომ გზა თქვენ, რომ იქნება როგორც ჩანერგილი მარყუჟის ან მაჩვენებელი? პროფესორი: ჰო. საკმაოდ ბევრი უბრალოდ ამისთვის loop. გახსოვდეთ, დავით კლასში აღნიშნული უფასო სინტაქსური შაქარი? და მან ეს ძალიან გაუგებარია, რამ ვარსკვლავი t პლუს ერთი, სადაც იგი ინტეგრაცია მეშვეობით და იგი გადავიდეს მაჩვენებელი? ადვილია გზა აკეთებს ეს არის მხოლოდ ტ i. ასე რომ, ეს მხოლოდ მასივი. გზა, რომ თქვენ უნდა loop რომ გაიქცა ნულიდან i, სადაც მე სიგრძე სიმებიანი, თქვენ შეიძლება მხოლოდ წერენ, რომ ნაცვლად აკეთებს მთელი მაჩვენებელი, მინიშნება რამ. ასე რომ, ეს ყველაფერი ზუსტად ექვივალენტი თქვენს კომპიუტერში. თქვენ ბიჭები ალბათ არ უნდა ვიცოდეთ, რომ, მაგრამ კარგია, რომ უბრალოდ სახის აქვს უკან თქვენი გონება. უბრალოდ ვიცი, რომ კომპიუტერი ცნობს სხვადასხვა ბლოკები კოდი იგივე რამ. იმიტომ, რომ ეს არის მხოლოდ ბევრად უფრო შესახებ მეგობრული ჩვენთვის წარმოადგინოს, როგორც ეს მასივი. ეს უბრალოდ ადვილია. აუდიტორია: ასე რომ გამოვიყენოთ strlen მინდა, მივიღო პროფესორი: ჰო. აუდიტორია: OK. პროფესორი: თქვენ შეიძლება გამოყენება strlen ან, თუ არ აქვს strlen შეგიძლიათ უბრალოდ up სანამ არ მოხვდა წარმატებული ნულოვანი ორივე. ან იმუშავებს. ჰო. აუდიტორია: ასე რომ, ეს dereference ყველა ერთჯერადი ხასიათი თუ ჩვენ რეალურად წერის ეს კოდი, ჩვენ შეიძლება უბრალოდ t ფრჩხილებში i გსურთ ვარსკვლავი წინაშე იგი? პროფესორი: ჰო, შეადგენს შეადგენს s bracket i, და შემდეგ შენარჩუნება მოძრავი i ქვემოთ მანამ, სანამ არ მოხვდა ბოლოს. ჰო, რას გააკეთებდა. და მე რეალურად აქვს შემდეგი მაგალითად, როდესაც ჩვენ რეალურად წერენ strlen ასე რომ თქვენ ბიჭები იქნება სახის მისაღებად უნდა ითამაშოს გარშემო ცოტა. ასე რომ ყველას ნათელი მხოლოდ მეხსიერება, სიმები, მითითებას, ხარისხის მისამართები? რამდენიმე უმაღლესი დონის ცნებები, რომ თქვენ აუცილებლად უნდა იცოდეს ვიქტორინა ხვალ. ყველა უფლება. კარგი. Yep. OK, ასე რომ ერთი რამ, რომ ჩვენ ასევე ითხოვენ თქვენ, როგორც ჩვენ ვაკეთებთ ყოველ წელს ვიქტორინა არის, ვარაუდობენ, რომ თქვენ მივიწყებული (რომელიც ჩვენ, როგორც ჩანს უნდა დაგვავიწყდეს, ყოველწლიურად) რომელშიც header ფაილი strlen განისაზღვრება. ასე რომ, ჩვენ უნდა გადაწეროთ იგი საკუთარ თავს. აქ არის ჩამონათვალი გაიდლაინები რომ ჩვენ შეგვიძლია წარმოგიდგენთ ბიჭები, სადაც თქვენ უნდა ვივარაუდოთ, რომ ეს სიმებიანი არ იქნება null. შეიძლება ვივარაუდოთ, რომ ის იქნება წყდება წარმატებული ნულოვანი. ასე, რომ თქვენ იცით, რომ ის, რაც ის აპირებს დასრულდება. და, მაგალითად, რომ ხანგრძლივობა მიესალმები იქნება ხუთ. ასე რომ, შეიძლება ვივარაუდოთ, რომ მიესალმები იქნება ხუთი, H-E-L-L-ო. თქვენ არ უნდა ვივარაუდოთ, რომ უკანა ნულოვანი ანგარიშები სიგრძეზე. ეს ბოლო რამ აქ, არ ფიქრი რიცხვი overflow. ვინმეს გახსოვთ რა რიცხვი overflow არის? აუდიტორია: სცილდება ხანგრძლივობა [INAUDIBLE]. პროფესორი: ჰო, ახსნით ცოტა, რას ნიშნავს ეს? აუდიტორია: ასე რომ, ვფიქრობ, ეს მიდის უკან რომ truncating მაგალითად ადრე. მაგრამ თუ თქვენ გაქვთ მხოლოდ ამდენი ნომრები რომ სცილდება რაოდენობის ბიტი რომ თქვენ შეგიძლიათ რეალურად მივანიჭოთ მას რომ ეს უბრალოდ სახის შეწყვიტა. პროფესორი: ჰო, ტიპიური კომპიუტერული, რამდენი ბიტი გვაქვს? აუდიტორია: 32? პროფესორი: ჰო, 32, მარჯვნივ. და ისე, რომ ის, რაც, ოთხი მილიარდი, ორი მილიარდი? ოთხი მილიარდი, მდე ოთხი მილიარდი დადებითი რიცხვებით, არა? ორი მილიარდი უარყოფითი, ორი მილიარდი დადებითი, დამოკიდებული, თუ როგორ სურს ამის გაკეთება. ასე რომ, ძირითადად, ჩვენ შეგვიძლია აქვს საკმარისი რიცხვებით, რომელიც შეიძლება ახვიდეთ ორი 31-ე მინუს 1, უფლება? იმის გამო, რომ ერთხელ ჩვენ მოხვდა ორი რომ 32-ე, ჩვენ არ აქვს, რომ ბევრი მეხსიერების ჩვენი კომპიუტერი. ასე რომ, თეორიულად, მე შეიძლება ამუშავება ნომერი რომ არის, ისევე, ორი 46-ე. ეს არის დიდი-ass ნომერი, მაგრამ თეორიულად შეიძლება. ასე რომ, მთელი overflow არის, თუ თქვენ ცდილობენ შექმნა მთელი რიცხვი, რომელიც სცილდება რა თქვენს კომპიუტერში შეუძლია შენახვა. და ასე რომ თქვენ ბიჭები ამ მაგალითში არ აქვს ფიქრი ჩვენს გაძლევთ გიგანტური სიმებიანი რომ არის ორი, 32 სიმბოლო ხანგრძლივი. ეს იქნება ნამდვილად ნიშნავს. ყველა უფლება, ამიტომ მე მხოლოდ აპირებს თქვენ ბიჭები ბაზის სტრუქტურა. თქვენ აპირებს შექმნას ფუნქცია მოუწოდა int strlen, სადაც უღელტეხილზე წელს, char ვარსკვლავი, ან ტექსტი, მომცეთ სიმებიანი მოუწოდა. ყველა უფლება, ყველას ასლი ქვემოთ. ზემოთ. Oops-- სხვა გზით. ასე რომ, ეს არის ერთგვარი მოსწონს რთული ნაჭერი პრობლემა, ასე რომ, მე მივცემ თქვენ ბიჭები შესაძლოა ხუთ ექვსი წუთი სახის გონებრივი იერიში და დაწეროთ ამ ფუნქციის გარეთ. აუდიტორია: ჩვენ არ ანგარიშის [INAUDIBLE], ჩვენ არ უნდა გამოიყენოთ რიცხვი? პროფესორი: არა, არა. მე მივცემ თქვენ ბიჭები მინიშნება. ხოლო loop შეიძლება იყოს ძალიან სასარგებლოა. ჰო. აი candy. Candy ასევე ხელმისაწვდომი იქნება ვიქტორინა, მე ვფიქრობ. ასე, რომ თქვენ ბიჭები იქნება ყველა დაშაქრული ხვალ. ვერ შევიდე თქვენ მიიღო იგი. აუდიტორია: OK. პროფესორი: ჰო. იქნებ კიდევ 30 წამი ან იმდენად. ყველა უფლება, თუ თქვენ არ კეთდება, არ აწუხებს. ჩვენ გადაადგილება მეშვეობით ერთად. OK. ამიტომ, მე ვაპირებ, რომ მხოლოდ განლაგება ძირითადი სტრუქტურა ამ ფუნქციას აქ. Int strlen. პირველი, ჯერ არავის მინდა ვუთხრა მე რა, რომ int ნიშნავს? ჩვენ უნდა გვქონდეს ამ ფუნქციას. აუდიტორია: Strlen [INAUDIBLE]. პროფესორი: ზუსტად. ასე რომ, რაც არ უნდა მოხდეს აქ, ჩვენ უნდა დაბრუნდეს რიცხვი. და, როგორც ეს მითითებულია სპეც, ჩვენ გვინდა, რომ დაბრუნდება წავალ ეს ბიჭები, მხოლოდ შენარჩუნებას აპირებს. ეს ყველაფერი კარგი. ჭამა ეს ყველაფერი ასე რომ არ აქვს მას უკან, რეალურად. Int, უბრალოდ ნიშნავს, რომ თქვენ უნდა დაბრუნების რიცხვი. რა არის ეს char ვარსკვლავი s? რას ნიშნავს ეს? აუდიტორია: მსგავსად, რა ხდება შეყვანის. პროფესორი: ზუსტად. და რა არის თითქმის იგივე, როგორც char ვარსკვლავი? აუდიტორია: სიმებიანი? პროფესორი: ზუსტად. ასე რომ, ყველა ვაკეთებთ მიცემა ამ მომცეთ სიმებიანი. OK. ზემოთ. გარდა ამისა, არ უნდა დაგვავიწყდეს, თუ დავივიწყებთ, გადმოგცეთ ეს ფრჩხილებში, არ უნდა დაგვავიწყდეს, დაწერა მათ თავს. იმის გამო, რომ თეორიულად, თქვენი კოდი არასწორი თუ თქვენ დაგავიწყდებათ წერენ ისინი. უბრალოდ ყოველთვის ყურადღება მიაქციოს. მსგავსად, ცოტა რამ რომ თქვენ არ შეამჩნია როდესაც თქვენ პროგრამირების თქვენი ლეპტოპი, რადგან თქვენი ლეპტოპი აკეთებს იგი თქვენთვის? ნუ დაგავიწყდებათ, როდესაც თქვენ წერა ხელით. ჰო? აუდიტორია: მაგრამ როგორ არასწორი? ისევე, მივიღებთ, რომ მთელი პრობლემა არასწორი? პროფესორი: არა, არა. არ ინერვიულოთ. ეს, ფაქტობრივად, თეორიულად შესაძლებელია მიიღოთ სრული რაოდენობა კითხვაზე მაშინაც კი, თუ თქვენი კოდი იქნება არასოდეს აწარმოებს რეალურ ცხოვრებაში. მე გთავაზობთ თქვენ არ ცდილობენ რომ მოხდეს. მაგალითად, როგორიცაა, თუ ყველაფერი რომ აქ არის სწორი, მაგრამ თქვენ დაგავიწყდებათ მსხვილი ნაწლავის ან bracket, თქვენი კოდი არ რეალურად აწარმოებს. მაგრამ ჩვენ შეიძლება იყოს მოწყალე. ჰო? აუდიტორია: თქვენ უნდა კომენტარს ჩვენი ხელწერა? პროფესორი: არა, არა, არ შეშფოთება, რომ. არარის კომენტირებისას. სტილი უნდა იყოს კარგი. ისევე როგორც, არ smush ყველაფერი ერთ ხაზს. ჩვენ არ იქნება ბედნიერი თქვენ თუ ამის გაკეთება. ვინმეს სურს მომეცი პირველი ხაზი? მინიშნება, რომ ეს ძალიან ადვილია. ჰო? აუდიტორია: Int, n ნულის ტოლია. უბრალოდ დააყენეთ counter. პროფესორი: ასე რომ, ჩვენ გვინდა რაღაც ერთგვარი counter, არა? მე უბრალოდ აპირებს დაარქვით "იმედი" გულისთვის readability. რა გვინდა მითითებული ეს უდრის? აუდიტორია: Zero. პროფესორი: Yep. მძიმით. ეს არის ასევე ძალიან უცნაური ნახაზი semicolons. უბრალოდ პრაქტიკაში აკეთებს, რომ. ასე რომ, ჩვენ გვინდა, რომ პირველი უნდა კონტრ ტიპის int. იმის გამო, რომ ჩვენ გვინდა, რომ ითვლიან, თუ როგორ ბევრი ასო არის ამ სიმებიანი, არა? ძალიან მარტივია პირველი ნაბიჯი. OK, იქნებ ცოტა უფრო რთული ახლა, როგორ ვაპირებთ ამის გაკეთება? ვინმეს სურს მომეცი ხაზი კოდი რომ შეუძლია დაეხმაროს loop მეშვეობით, რაც არის? ჰო, მამაცი უკან? აუდიტორია: OK, ასე რომ, ხოლო წერტილი asterisks, რომ ჰო, ვარსკვლავი s, არ არის ნულის ტოლია, მაშინ რაღაც? პროფესორი: ეს არის მართლაც, მართლაც ახლოს. მართლაც ახლოს. ამიტომ, მე ვაპირებ მივმართო ორი რამ, რომ. პირველ რიგში, ეს არ არის ზუსტად ნულოვანი. რა არის ეს? ეს არის null terminator, რომელიც წარმატებული ნულოვანი. ასე რომ, ისინი სხვადასხვა თვალსაზრისით, თუ როგორ ისინი ინახება. ასე რომ თქვენ ძალიან ახლოს. და მეორეც, ჩვენ არ გვინდა, უბრალოდ გადაადგილება მაჩვენებელი. ჩვენ გვინდა, რომ რეალურად შეამოწმონ ღირებულებების, არა? ასე რომ, როგორ გავაკეთოთ ეს? ძალიან მარტივია. არ ვფიქრობ, მითითებას, არ ვფიქრობ, მოგონებები. დაბრუნება კვირაში ორი კურსი. აუდიტორია: [INAUDIBLE]. პროფესორი: როგორც, გახსოვთ? რა შეგვიძლია? როგორ არიან ისინი ინახება მეხსიერებაში? აუდიტორია: ისინი დააყენა. პროფესორი: ისინი დააყენა. ასე რომ, ჩვენ შედიხართ თითოეული ხასიათი შიგნით? აუდიტორია: [INAUDIBLE]. პროფესორი: ზუსტად. ასე რომ, while-- რა მიდის შიგნით აქ? S of - აუდიტორია: I. პროფესორი: Oh, მე არ არსებობს, აკეთებს? აუდიტორია: Oh, იმედი? პროფესორი: ჩვენ შეგვიძლია მხოლოდ გამოყენება რაოდენობა, ხომ ასეა? აუდიტორია: უკაცრავად, მე მას i. პროფესორი: ჰო, ეს ყველაფერი კარგი. ჩვენ გვყავს ცვლადი აქ, რომ უკვე გამოცხადდა, როგორც ჩვენი მთვლელი. რატომ არ გამოვიყენებთ, რომ გადატანა მეშვეობით ხოლო loop? ამას რამე აზრი აქვს? ასე რომ, როდესაც ის საქართველოს ითვლიან ჯერ არავის მინდა მომეცი რა ხდება მას შემდეგ, რაც აქ? აუდიტორია: ეს არ უდრის. პროფესორი: არ უდრის, არა? ეს bang შეადგენს, ძახილის წერტილი უდრის, რასაც თქვენ ბიჭები მინდა ეძახით არ გაუტოლდება აუდიტორია: [INAUDIBLE]. პროფესორი: ჰო. დამახსოვრება ერთჯერადი ციტირებით არის char, ორმაგი შეთავაზებები სიმებიანი. ფრთხილად, როდესაც გამოყენებით მათ. ასე რომ, როდესაც ჩვენ ვეძებთ მეშვეობით მასივი, ბოლო ხასიათი, ჩვენ ვიცით, ჩვენ არ გვინდა, ეს უნდა იყოს წარმატებული ნულოვანი. ასე რომ, ხოლო. ჩვენ არ ვართ ბოლოს სიმებიანი. რა გვინდა ჩვენ უნდა გავაკეთოთ შიგნით? აუდიტორია: ჩვენ გვინდა, რომ დაამატოთ counter ასე რომ ითვლის plus plus? პროფესორი: ზუსტად. ასე რომ აქ ჩვენ ვაპირებთ, რომ იმედი, იმედი plus plus. დაკარგული კიდევ ერთი ხაზი. ჩვენ თითქმის არ არსებობს. რა ჩვენ დავიწყება უნდა გავაკეთოთ? აუდიტორია: დავბრუნდეთ ნულოვანი? პროფესორი: გსურთ დაბრუნების ნულოვანი? აუდიტორია: არა, დაბრუნების strlen. დაელოდეთ. პროფესორი: რა ინახება? აუდიტორია: იმედი. იმედი. პროფესორი: ზუსტად. ასე რომ აქ ჩვენ ვაპირებთ დაბრუნებას რაოდენობა. იმის გამო, რომ ის, რაც ჩვენ აქ აკეთებენ ultimately-- ჩვენ გვაქვს counter ცვლადი რომ ვაპირებთ, რომ იყოს მეშვეობით ჩვენი სიმებიანი. ჩვენ ვაპირებთ, რომ შევინარჩუნოთ აპირებს, შეინახოს აპირებს, ირგვლივ და გარშემო ამ loop. და მიუხედავად იმისა, რომ ჩვენ არ ვართ ბოლომდე ამ ტექსტი, რომელიც არის null terminator. და ყოველ ჯერზე ჩვენ გაიაროს ის, რომ ჩვენ ვამატებთ, რომ ჩვენი მთვლელი. და ჩვენ ვაპირებთ, შემდგომი გასწვრივ ამ მასივი. და ბოლოს, კიდევ ერთხელ მოხვდა null terminator, ჩვენ ვიცით, რა შეგვიძლია შესვენება, დაბრუნდნენ რაოდენობა. ჩვენ გვაქვს ჩვენი strlen. ამჯამად ყველას, თუ როგორ ეს განხორციელდა? ხოლო მარყუჟების მე ვიცი, ჩვენ არ გვაქვს ძალიან ბევრი გააკეთა მათთან, მაგრამ ისინი, როგორც წესი, ძალიან, ძალიან სასარგებლოა, თუ თქვენ არ ვიცი, რა თქვენ შეჩერების მდგომარეობა აუცილებლად უნდა იყოს. კითხვა? აუდიტორია: შეგვიძლია დავწეროთ null on ხოლო მდგომარეობა? პროფესორი: მიუხედავად იმისა, რომ? ჰო, ასე რომ ამ პრობლემა მქონდა თუ არა ბიჭები ვივარაუდოთ, რომ ის არ იქნება null. იმიტომ, რომ მახსოვს, თეორიულად, თუ მივეცი მაჩვენებელი, რომელიც იყო ძალიან დიდი მეხსიერება, ეს მოგცემთ null, არა? ეს არის ის რაც ოპერაციული სისტემა იქნებოდა. ასე რომ, თუ მე არ გეტყვით, უნდა ვივარაუდოთ, s იქნება null, თქვენ უნდა შეამოწმოთ. ასე რომ, აქ, თქვენ ყველაფერს გააკეთებს, თუ უდრის უდრის null, დაბრუნდნენ ერთი. ასე რომ. აუდიტორია: [INAUDIBLE] ნულოვანი. პროფესორი: OK, მე გეტყვით, თქვენ რატომ არ შეგვიძლია ამის გაკეთება. იმიტომ, რომ მახსოვს მეხსიერება, უფლება, აქ. ჩვენ წავიდეთ აქ. თქვენ მოხვდით გიგანტური ბლოკები მეხსიერების ყველა ბადეები რომ მაღაზიაში განსხვავებული ღირებულებები, უფლება? ასე რომ, ყველა სიმებიანი is-- for მაგალითად, თუ ჩვენ ვართ შეყვანის hello, ეს იქნება H-E-L-L-O წარმატებული ნულოვანი, არა? და მერე ვინ იცის, როგორიცაა შემთხვევითი რამ, რომ აქ მას შემდეგ. ჩვენ რეალურად არ ვიცი რა არის. ასე რომ, თუ თქვენ უნდა გავაკეთოთ ნაცვლად წარმატებული ნულოვანი, null, ეს არ შეიძლება იყოს null. იმის გამო, რომ ეს მხოლოდ შეიძლება ნიშნავს, შემთხვევითი სხვა რამ რომ არ ეკუთვნის თქვენს სიმებიანი. ასე რომ, ისე, რომ ჩვენ ყოველთვის ვიცით, რომ სიმებიანი დამთავრდა არის წარმატებული ნულოვანი. და ისე, რომ ყოველთვის, თუ როგორ ჩვენ შეამოწმეთ ბოლოს სიმებიანი. Null, რომ ყველა საშუალებით, თუ თქვენ გაქვთ არარსებული მაჩვენებელი, პირველ რიგში, თუ თქვენი მეხსიერების მხოლოდ იმდენად დიდი, რომ თქვენ არ შეუძლია დაბრუნება, მაშინ ეს უნდა იყოს null. ასე რომ იყოს ძალიან ფრთხილად, როდესაც გამიჯვნის შორის სხვაობა null და წარმატებული ნულოვანი. ჰო. ყველას OK ეს? OK. ასე რომ, მე თქვენ ბიჭები წერენ გარეთ strlen. Feasibly ჩვენ შეგვიძლია ასევე გთხოვოთ დაწერა გარეთ რომ მე, გვახსოვდეს, რომ "Atwoa" ან რასაც თქვენ ბიჭები მინდა ეძახით? ეს ფუნქცია Vigenere და ცეზარ, რომელიც აკონვერტებს ASCII ღირებულება რიცხვი? ეს ასევე ამუშავება წარსულში ტესტებში ფუნქციები ჩვენ გთხოვეთ დაწერა. საკმაოდ ბევრი ნებისმიერი ფუნქცია რომ თქვენ გამოიყენება და ძალიან ადვილია დაწერა საკუთარ თავს, სენსორები მინდა დაბალია, არის ზედა, ქვედა, ზედა. ფუნქციები, რომელიც გარდაქმნას სიმებიანი ამას რომ ზედა. ჩვენ ყველამ ვიცით, თუ როგორ უნდა გავაკეთოთ, არა? ეს არის საკმაოდ მარტივია. უბრალოდ გვინდა დავრწმუნდეთ, რომ თქვენ can-- ეს არის იგივე აზროვნების პროცესი. თქვენ უბრალოდ iterate მეშვეობით და ჩართოთ რამ. თქვენ არც იმედი და როდესაც თქვენ ჩართოთ რამ სხვაგვარად. მე suggest-- მე არ ვიცი, თუ ჩვენ ვაპირებთ გთხოვოთ, რომ გვემახსოვრება რა კაპიტალი ან კაპიტალის Z, ან ამას ან ამას z არიან ASCII, მაგრამ მე გთავაზობთ ალბათ წერდა, რომ ქვემოთ შემთხვევაში ჩვენ ვაკეთებთ. უბრალოდ, ასე რომ თქვენ ბიჭები გვყავს მითითება. ისევე როგორც ზედა არის, რა, 197? და შემდეგ ამას იგივეა 50 რაღაც. 65, yeah, რომ თქვენ გადასვლა. ასე რომ, უბრალოდ საკმაოდ ბევრი ვიცი განსხვავება მათ შორის არის 32. ეს არის საკმაოდ მნიშვნელოვანი. ჰო. ვარ კარგი ეს? OK. აუდიტორია: ჩვენ შეგვეძლო თეორიულად დაწერა რამდენიმე ამ დროს, აგრეთვე ჩვენს little-- პროფესორი თქვენ თეორიულად ვერ გადააკოპირეთ ფუნქცია ქვემოთ. მართალია. აუდიტორია: არ [INAUDIBLE]. პროფესორი: შენ უნდა ფურცელი. თქვენ ბიჭები გაქვთ შენიშვნა ფურცელი. თქვენ შეგიძლიათ აკრიფოთ იგი. თქვენ შეგიძლიათ დაწეროთ ის. ამის გაკეთება შეგიძლიათ რაც გინდათ ის. ჰო. თეორიულად, თუ გსურთ, წავიდეთ. აუდიტორია: [INAUDIBLE] მაგრამ ჩვენ ნამდვილად არ აუცილებლად უნდა გვახსოვდეს, ღირებულება, ჩვენ შეგვიძლია მხოლოდ გამოყენება ზედა ან ქვედა ფუნქცია, არა? პროფესორი: ჰო. მაგრამ თუ ჩვენ მივეცით თქვენ კითხვა რომელიც ამბობს, რომ წერენ ზედა, მაშინ თქვენ უნდა დაწერა. ასე რომ, შენ შეიძლება ვივარაუდოთ, რომ თქვენ ბიჭები ჰქონდეს ყველა ფუნქციები, მაგრამ თუ გსურთ გამოიყენოთ ზედა ან ქვედა, რას უნდა გავაკეთოთ? აუდიტორია: [INAUDIBLE] გამოიყენოს CS50 [INAUDIBLE] პროფესორი: ეს CS50.h? ფრთხილად არ არსებობს. ასე რომ, ზედა, ქვედა, არის ზედა, ქვედა, ფუნქციები, რომელიც გულისხმობს სიმებიანი მანიპულირება არის ყველა ფარგლებში ან ASCII ან ფარგლებში მათემატიკის ბიბლიოთეკა ან ფარგლებში სიმებიანი ბიბლიოთეკა. ასე რომ, თუ თქვენ ბიჭები გამოიყენოთ იმ ფუნქციები, ფრთხილად უნდა გვახსოვდეს მოიცავს, რომ header. ასე რომ, ალბათ ასევე რაღაც გსურთ მოიცავს თქვენს ფურცელი, რა არის თავით? რა არის ბიბლიოთეკები თქვენ უკვე იყენებთ? რა ფუნქციები შიგნით იმ ბიბლიოთეკების? ეს მნიშვნელოვანია. ჰო? აუდიტორია: ვერ ჩვენ, უბრალოდ, cop out და hashtag მეშვეობით აბსოლუტურად ყველა წერილი, რომ ჩვენ ოდესმე ჩანს, ისევე როგორც ყველა კითხვას? პროფესორი: თქვენ შეიძლება. მე არ ვიცი, რა ბედნიერი ჩვენ ვაპირებთ, რომ იყოს grade რომ ინტელექტუალური, როდესაც ყველა ნაჭერი კოდი ორჯერ, რადგან ეს უნდა იყოს. მე არ ვიცი, ჩვენ შეგვიძლია გამეხადა წერტილი სტილი. მაგრამ თეორიულად თქვენი კოდი იქნება სწორი. თქვენ ბიჭები cop out და უბრალოდ მოიცავს ყველაფერს. ეს ჯარიმა ძალიან, yeah. აუდიტორია: [INAUDIBLE]. პროფესორი: ჰო. მინდა ვარაუდობენ არ აკეთებს, რომ მიუხედავად იმისა, რომ. ჰო. აუდიტორია: ზემოთ. პროფესორი: კარგი კითხვაა. აუდიტორია: ასე რომ, უარეს შემთხვევაში. პროფესორი: უარეს შემთხვევაში. თუ თქვენ მთლიანად უნდა დაგვავიწყდეს, თქვენ შეიძლება ამის გაკეთება. ჰო. Yep, კოდი არის სწორი იქ. მე n ნაცვლად რაოდენობა, მაგრამ, თქვენ ვიცი, რასაც მოძრავი თქვენი ნავი. აუდიტორია: მოითმინეთ, ამიტომ ჩვენ არ უნდა ჰეშტეგი მოიცავს იმიტომ, რომ ჩვენ დაწყებული int? პროფესორი: ჰო, მე მხოლოდ ვივარაუდოთ, რომ ჩვენ დაისვა დაწერა ფუნქცია. თუ უნდოდა იყოს უსაფრთხო, თქვენ შეიძლება ალბათ, რომ ეს არ არსებობს. მაგრამ მე უბრალოდ არ გადაიტვირთოთ, yeah. მე კი არ ვიცი, თუ უნდა ნებისმიერ ბიბლიოთეკაში ამ. იმის გამო, რომ თქვენ ნამდვილად არ ბეჭდვის არაფერი ან არაფერი, არა? ჰო, მე არ ვიცი, თუ თქვენ გჭირდებათ ბიბლიოთეკა. OK. ეს არის ასევე ცოტა მეტი გასწვრივ ხაზები მეხსიერების მანიპულირება. ამ სახის ცოტა სახიფათო. ვფიქრობ, რომ ამ. თქვენ გაქვთ ფუნქცია მოუწოდა func. მე ვერ დაასახელა ის რასაც, მაგრამ აირჩიოს დაარქვით func. მე მაქვს ეს ზემოთ ჩემი მთავარი. გახსოვდეთ, თქვენ გსურთ აქვს ფუნქცია მას შემდეგ, რაც თქვენი მთავარი, თქვენ გვინდა დავრწმუნდეთ, რომ თქვენ მოიცავს პროტოტიპი დაბრუნება. მაგრამ ამ შემთხვევაში ეს იმდენად მოკლე რომ ვიგრძენი, რომ მე მხოლოდ მოიცავს ეს atop ძირითადი. მე არ უნდა პროტოტიპი, იმიტომ, რომ ის უკვე დაწერილი ზემოთ. ასე რომ, ყველა მე ვაკეთებ ჩემი მთავარი ფუნქცია ქმნის რიცხვი x უდრის 10-ს. მე ვურეკავდი ჩემს func ფუნქცია, და მაშინ დაბეჭდვის რაღაც. და მაშინ, რომ, ფაქტობრივად, რა func აკეთებს. თქვენ ბიჭები გვინდა ვიფიქროთ მეშვეობით. იმიტომ, რომ ეს ცოტა სახიფათო. ეს არის ძალიან, ძალიან სახიფათო, რეალურად. ვფიქრობ მეშვეობით, რაც ამ პროგრამა იქნება outputting. მე მივცემ თქვენ ბიჭები ორი წუთის განმავლობაში. დისკუსია? აუდიტორია: Yeah. პროფესორი: ჰო. ყველა უფლება, ასე რომ ეს არის სახიფათო მიზეზი. და სწორედ ამიტომ მინდოდა, რათა ეს ყველას ყურადღებას. ვინმეს სურს, რომ მომეცი წინადადება, მცდელობა? რა ამ ამობეჭდოთ? სრულიად ჯარიმა თუ ვცდებოდით. ჰო? აუდიტორია: მე ვფიქრობ, რომ ეს 100 და მაშინ 10 წლის ორ ცალკე ხაზები. პროფესორი: და 10? ვინმეს აქვს რაიმე სხვა მიხვდება? ჰო? აუდიტორია: იქნებ მხოლოდ 10 რადგან func არ დაბრუნების არაფერი? პროფესორი: OK, ასე რომ, ჩვენ აქვს გამოიცანით ნომერ ის არის, რომ ვხვდები ნომერი ორი არის უბრალოდ აპირებს ბეჭდვა 10. ვინმეს აქვს რაიმე სხვა მიხვდება? OK. მოდით გავლა ამ, არა? როდესაც თქვენ მიიღებთ ნაჭერი კოდი, არ შევჩერდეთ და იყოს, ah, რომ იმდენად პერსონალი! მე ასე დაბნეული! მსგავსად, დასამშვიდებლად თავს ქვემოთ. უბრალოდ ვიცი, რომ თქვენ შეიძლება მხოლოდ გაეცნონ კოდი ხაზს. ეს არის ის, რაც არის. ეს იგივეა, კითხულობს წიგნს. ასე რომ, ნებისმიერი ფუნქცია, ჩვენ ყოველთვის იწყება მთავარი. ასე რომ, ჩვენ ვაპირებთ იწყება int მთავარი ბათილად, მაშინაც კი, პროგრამის უკვე აწარმოებს ქვემოთ, არა? დაწყება მთავარ ბათილად. Int x უდრის 10-ს. ამიტომ, მე ვაპირებ, რომ წაშალოს ეს. მე ვაპირებ შევაჩერო მეხსიერების უბრალოდ, ასე რომ თქვენ ბიჭები შეგიძლიათ სახის ვხედავთ, რა ხდება. დამახსოვრება ქვემოთ აქ ჩვენ გვაქვს ჩვენი დასტის? აქ ჩვენ გვაქვს ჩვენი ბევრი სადღაც აქ. დასტის იზრდება, არა? და ფარგლებში დასტის, თქვენ უნდა მაგისტრალური ფუნქციონირებას ასევე ყველა მაგისტრალური ადგილობრივი ცვლადები. ასე რომ, აქ, int x ტოლი 10. ჩვენს ძირითად ფუნქციას ჩვენ შექმნა ცვლადში x. ჩვენ მიიღწევა, რომ ტოლი 10. აქ თქვენ მოხვდით გარკვეული x, და თქვენ გარემოში, რომ ტოლი 10, უფლება, ფარგლებში ძირითადი. ყველას კარგი? ფუნქცია. ასე რომ, ახლა, ჩვენს მთავარ ფუნქცია, ჩვენ მოუწოდებენ ფუნქცია ჩვენ წერილობით ზემოთ. ასე რომ, ჩვენ ახლა შევა მეორე ფუნქცია. ჩვენ ვაპირებთ, რომ შევქმნათ კიდევ ერთი ცვლადი int x უდრის 100. რა ხდება აქ დასტის? რა ხდება, როცა რეკავთ ფუნქცია, რომელიც ქმნის ახალ ცვლადები? რა ხდება აქ დასტის? აუდიტორია: [INAUDIBLE] piles თავზე? პროფესორი: ჰო. ასე რომ, ეს რეალურად ქმნის ასლი. და ეს ერთგვარი piles თავზე. წარმოიდგინეთ დასტის დასტის წიგნები, დასტის არაფერი. Piles თავზე, პირველი ბოლო გარეთ, გაგრძელდება, პირველი გარეთ. ასე რომ, ის აპირებს შექმნას x აქ. ეს აპირებს ყველა funcs ცვლადები. შესანიშნავი. ასე რომ, ახლა ჩვენ გვაქვს ორი სხვადასხვა x ის, რომ წარმოადგენს ორი ძალიან განსხვავებული რამ. მაშინ ჩვენ ვაპირებთ ბეჭდვა out მთელი x. მოდით ამობეჭდოთ 100, არა? იმის გამო, რომ აქ ის 100. ასე რომ, პირველი, რაც რომ ის აპირებს ამობეჭდოთ. როგორც ეს ფუნქცია დააბრუნებს არაფერი, ახლა რომ ფუნქცია, რომ ხაზი მთავარ კეთდება. ყველას კარგი ჩემთან ჯერჯერობით? ასე რომ, ჩვენ ახლა ორი გარეთ სამ ჩვენი მთავარი ფუნქცია. ახლა ჩვენ ვაპირებთ, რომ მესამე ხაზი. ჩვენ ვაპირებთ, რომ printf. რა არის ეს x ფარგლებში მთავარი? რას წარმოადგენს? რა მნიშვნელობა x ახლა? აუდიტორია: 100. პროფესორი: ეს არის 100? აუდიტორია: Still 10. პროფესორი: Still 10. ჰო. იმიტომ, რომ მახსოვს, ფარგლებში ჩვენი func, x უდრის 100. მაგრამ თუ ჩვენ დაბრუნებას ჩვენი მთავარი ფუნქცია, რომ ცვლადი ინახება სხვადასხვა ადგილიდან ჩვენი Stack. ასე რომ, ახლა ჩვენ უნდა დაბრუნდეს მთავარი დასტის, მაგისტრალური ადგილობრივი ცვლადები. აქ x უდრის 10. ასე რომ, ჩვენ ვაპირებთ ბეჭდვა 10. ასე რომ, ის აბსოლუტურად სწორი იყო. ჩვენ ვაპირებთ, რომ აქვს გამოშვება 100 და 10. ჰო? აუდიტორია: როცა malloc, ეს არის ბევრი ან დასტის, რომელიც [INAUDIBLE]? პროფესორი: როდესაც თქვენ malloc, თქვენ აღების მეხსიერების საწყისი ბევრი და გამოყოფის იგი. ასე რომ, თქვენ არ გაქვთ სასადილო ერთად რომელიმე ამ. ასე რომ, ვფიქრობ, უფრო დიდი takeaway აქ არის რაღაც მოუწოდა ფარგლებს. იმ თქვენ, რომლებიც იყვნენ განხილვის სხდომაზე ღამით, ჩვენ მოკლედ ვისაუბრეთ ამ. სფერო განსაზღვრავს, თუ როგორ და როდესაც თქვენი ცვლადები არსებობს. ან ფარგლებში რა ფარგლებში ნუ თქვენი ცვლადები არსებობს. საკმაოდ ბევრი უზენაესობის ცერის ზოგადად არის, თქვენი ცვლადები თუ თქვენ შექმნით მათ შიგნით curly აფრთხილებს ისინი არსებობენ მხოლოდ ქვეყნის შიგნით იმ Curly braces. ასე მაგალითად, ჩვენი ფუნქცია func, ხედავთ ამ ორ აფრთხილებს. თუ თქვენ შექმნით არაფერი შიგნით, შანსი ყველა თქვენ აკეთებთ არის შექმნის დასტის და შენახვის, რომ არსებობს. იგივე რჩება. ეს მხოლოდ ინახება შიგნით ძირითადი. თქვენ ასევე მინდა, რომ იყოს ძალიან, ძალიან ფრთხილად აქ. იმის გამო, რომ საზღვრები ასევე lends თავად სხვადასხვა მაგალითები. ასე მაგალითად საიტზე მარყუჟის, int i = 0. მე ნაკლებია, მე არ ვიცი, 10. მე plus plus. და თქვენ მოხვდით კოდი შიგნით, არა? სად ცვლადი, i, რეალურად მხოლოდ არსებობს? მხოლოდ შიგნით ამისთვის loop. ასე რომ, მე ყოველ ბევრი თქვენგანი აქვს ალბათ შეექმნა ეს შეცდომა, როდესაც თქვენ აკეთებთ პროგრამების თქვენს psets. რამდენი ბიჭები არ ცდილობდა გამოეყენებინა i გარეთ ამისთვის მარყუჟის და ჰქონდა შეცდომა? მომწონს unreferenced რიცხვებით ან რამე მაგდაგვარს? მიზეზი, რის გამოც, რაც ხდება იმიტომ, რომ აქ თქვენ შექმნა რაღაც, რომ მხოლოდ არსებობს განმავლობაში თქვენი for loop. და თუ თქვენ ცდილობენ გამოიყენოს იგი, მე არ რეალურად არსებობს გარეთ. ასე რომ, ძირითადად კომპიუტერი და თქუა, რამეთუ არ ვიცი, რა თქვენ ვსაუბრობთ. ყველა ვიცი, ის არის, რომ მე აქ, მაგრამ ახლა აღარ. ასე რომ, თუ მე უნდა შევქმნათ ამისთვის loop შიგნით, არა? და მე ვაპირებ, რომ შევქმნათ ერთი, როგორც int j, და ეს გააკეთოს, რასაც. და თქვენ გაქვთ კოდი შიგნით რომ მარყუჟი, j მხოლოდ არსებობს აქ. მაგრამ, რომ ასევე არსებობს ფარგლებში i. ასე რომ, j მხოლოდ არსებობს ამ მარყუჟის, ხოლო i არსებობს მთელი რამ. ყველას ნათელი? იგივე პირობითი განცხადებები თუ გსურთ შექმნათ არაფერი. იგივე ხოლო მარყუჟების, თუ გსურთ შექმნათ არაფერი. ეს არის ის, რაღაც უნდა იყოს ძალიან, ძალიან ფრთხილად. ასე რომ, ეს იყო ძალიან კარგი პრობლემა გრძნობდა, რომ ეს აჩვენა ორი რამ. ეს ადასტურებს, პირველ რიგში, ფარგლებს. და ეს აჩვენა ასევე მეხსიერების გამოყოფის. იმის გამო, რომ თქვენ ბიჭები უნდა იცოდეს, რომ ფუნქციები იზრდება upwards Stack. და რომ როცა რეკავთ ფუნქციები, თქვენ შექმნით არსებითად ახალი დასტის მეხსიერება. ეს არის ძალიან განსხვავებული რა თქვენი მაგისტრალური მეხსიერება არის. ჰო. Whew! ყველას OK რომ? ეს იყო გაუგებარია. ძალიან კარგი თემა წასვლა, იმიტომ, რომ თქვენ ალბათ აპირებს მიიღოს რამდენიმე სახიფათო რამ, როგორიცაა, რომ ვიქტორინა. ჰო. ზემოთ. მე ამას თქვენ 100 ერთ ხაზი და შემდეგ 10 მეორეს. ჰო, ძალიან კარგი. OK, ახლა თქვენ ბიჭები მიიღებს შანსი იყოს TAs. თქვენ უნდა უპასუხოს ყველა ლამაზი წერილებს, რომ მე ხანდახან კიდევ. ასე რომ, ძვირფასო Andi, მე ვხედავ, მე ვფიქრობ, რომ რაღაც აპირებს ცუდი ჩემი შემდგენელი. მე დარწმუნებული ვარ, რომ ჩემი კოდი არის სწორი, მაგრამ მე მომდის სეგმენტაცია ბრალია ყოველ ჯერზე მე აწარმოებს. რა ხდება? გთხოვთ დავეხმაროთ, უამრავი სიყვარული. თუ თქვენ ბიჭები რაღაც რომ როგორ უპასუხებთ? ეს არის ძალიან გავრცელებული კითხვები, ჩვენ ვთხოვთ თქვენ. იმ შემთხვევაში, თუ, ჩვენ მოგცემთ სცენარი, ჩვენ მოგვცეს თქვენი საუკეთესო ვხვდები, რა ხდება. ვინმეს აქვს stab რა ხდება? ჰო? აუდიტორია: იქნებ dereferenced null, რაღაც მაჩვენებელი მიუთითებს რაღაც null. პროფესორი: ჰო, მინდა იყოს მაგალითად, როდესაც რომ მოხდებოდა. მაგრამ რა არის უფრო დიდი სურათი რა ხდება აქ? აუდიტორია: ეს თქვენ ცდილობთ წვდომის მეხსიერება, რომ თქვენ არ უნდა ჰქონდეს შეხება? პროფესორი: ზუსტად. ასე რომ, ვფიქრობ seg ბრალია, off საზღვრები, შეზღუდული არეალი მეხსიერება რომ თქვენ არ უნდა ეხება. ასე რომ, საკმაოდ ბევრი, როდესაც თქვენ ცდილობთ რომ index--, როგორიც მაგალითად, თქვენ გამოცხადდა მასივი ნულიდან ცხრა. მაგრამ თქვენ ცდილობენ შეეხოთ, რომ მე -10 ღირებულება, თქვენ არ გაქვთ დაშვება, რომ. იმიტომ, რომ თქვენ არ გამოაცხადა. ასე რომ, თქვენი კომპიუტერი აპირებს შევხედოთ, რომ იყოს, uh oh, თქვენ ცდილობთ წასვლა გარეთ ფარგლებში ინდექსი. მე ვაპირებ, რომ გადმოგცეთ სეგმენტაცია ბრალი. ვფიქრობ, როგორც სეგმენტი, არა? დამატებითი სეგმენტი, ბრალი როდესაც თქვენ ცდილობენ დაარღვიოს რაღაც და თქვენ არ უნდა იყოს იქ. სეგმენტაცია ბრალია ნებისმიერ დროს თქვენ ცდილობენ შეეხოთ რამ რომ თქვენ არ უნდა ეხება. ასე რომ საერთო მაგალითები ინდექსი. რა თქმა უნდა, თუ თქვენ ცდილობთ შეეხოთ, რომ არ იყო null, რომ ასევე მუშაობა ისევე. თუ თქვენი მაჩვენებელი კი ცდილობს შეეხოთ რამ, რაც არ უნდა შეეხოთ, რომ შესაძლოა მუშაობა ისევე. ყველაზე, როგორც წესი, თქვენ ვხედავ ამ მასივი. ყველას კარგი? აუდიტორია: ასე რომ, თუ გსურთ წვდომის 10 წერტილი და არსებობს მხოლოდ ლიმიტი ცხრა ან რამე. პროფესორი: ჰო, ზუსტად. საკმაოდ ბევრი. ზემოთ. ძვირფასო Andi. ამიტომ, ჩვენ მივიღეთ ამ მშვენიერი რამ მოუწოდა ჯიშები. თუ შერწყმა დალაგების, როგორც ჩვენ დაინახა, მაგალითად, როდესაც დავით გააკეთა მთელი რამ კლასის რატომ, თუ ეს ასე ბევრად უფრო სწრაფად, ვიდრე ნებისმიერი სხვა სახის, რატომ გადაიტვირთოთ იცის ნებისმიერი სხვა სახის? რა არის ეს საკითხი ნამდვილად თქვენ გეკითხებით? რა არის სამი word-- აუდიტორია: რა არის ვაჭრობის საგანი? პროფესორი: ზუსტად. აი, რა კითხვა ითხოვს. რა არის შორის ვაჭრობის შერწყმა დალაგების ლექსები ნებისმიერი სხვა სახის? აუდიტორია: იღებს მეხსიერება, არა? პროფესორი: თქვენ განმარტავენ, რომ ცოტა მეტი? პირველი მოდით აგიხსნით Merge მაღაზია. როგორ ამჯამად შერწყმა დალაგების მუშაობს? აუდიტორია: ასე, რომ ეს სამუშაოები გამყოფი ყველაფერი ნახევარი და შემდეგ აყენებს ერთად და reallocating ეს იმისათვის, როგორც ყველა დროის შერწყმა კომპლექტი. პროფესორი: საკმაოდ ბევრი. ასე რომ, შემიძლია შევაჩერო ეს, მაგრამ ეს იქნებოდა მიიღოს ჩემთვის ხუთ წუთში დავხატოთ ის. ვიხსენებთ იმ მონაკვეთზე სლაიდები სადაც ჩვენ დაფარული შერწყმა დალაგების. ზუსტად. ასე რომ გზა შერწყმა დალაგების სამუშაოები არის ეს ყოფს რამ ნახევარი, და მერე უბრალოდ უყურებს პირველი ღირებულებებს ყველა მათგანი და სახის მხოლოდ. მუდმივად ქმნის ახალ კოლექტორები და აყენებს რამ უფრო და უფრო მეტი მიზნით. ასე რომ, მიუხედავად იმისა, რომ მართლაც, მართლაც სწრაფად, რადგან it's-- თქვენ იცით, ორობითი ძებნა არის N შესვლა n. თქვენ შექმნით ამდენი სხვადასხვა მასივები, რომ თქვენ გამოყენებით დიდი ოდენობით მეხსიერება. ასე რომ, მიუხედავად იმისა, რომ სწრაფად, ვაჭრობის აქ არის ის, რომ თქვენ იყენებთ მეტი მეხსიერება. ასე რომ, მინიშნება, სახის და ძიება იყო დაფარული ბევრი ამ წელიწადში ვიდრე ისინი უკვე წლის წინა. თქვენ ბიჭები უნდა დაინახოს, რომ აისახება შესაბამისად ვიქტორინა. მე ნამდვილად დროის გასატარებლად აპირებს მეტი რა ყველა სხვადასხვა სახის არის, თუ როგორ ორობითი ძებნა, როგორ ხაზოვანი ძებნა მუშაობა. როგორ ალბათ pseudocode კოდექსის იმ გარეთ. რა არის გაშვებული ჯერ? რაღაც გაშვებული ჯერ ძალიან ადვილად დააკოპირეთ ქვემოთ გადატანა შენიშვნა ფურცელი, არა? ეს მართლაც რთულია, როდესაც თქვენ შუა ტესტი და თქვენ უნდა გაერკვნენ, რომ. ასლი მას. მე გაძლევთ გარანტიას, რომ თქვენ აპირებთ უნდა იცოდეს, რომ. რა არის ვაჭრობის ღ? უარეს შემთხვევაში, საუკეთესო შემთხვევაში სცენარი ყველა მათგანი, ძალიან გაეცნონ. ჰო? აუდიტორია: გვჭირდება იცით, თუ როგორ უნდა კოდს შერწყმა დალაგება? ისევე, როგორც ჩვენ უნდა მახსოვს რეკურსიული? პროფესორი: მე დიდად მეეჭვება, უბრალოდ იმიტომ, რომ ეს იგივეა, საკმაოდ რთული. მაგრამ ეს არ შეიძლება იყოს მიზანშეუწონელია, თუ ჩვენ გთხოვთ, გამოიყენოთ pseudocode ის. ჰო. Yep, OK, კიდევ ერთი. ეს შეიძლება არ ამუშავება ბოლო ნაჭერი ცოტა. ჰო? ხომ ყველას გვესმის, რომ? OK, ასე რომ საკმაოდ ბევრი პირველი ყველა, რა ტიპის პროგრამა იქნება გაწვდით გამომავალი როგორც ეს? დამახსოვრება ვკითხეთ, თქვენ გაეცნობიან ამ ახალი ტიპის გამართვის ინსტრუმენტი? რა იყო ეს სახელწოდება? Valgrind, მარჯვენა ეს იყო პროგრამა, რომელშიც თქვენ შეიძლება მოუწოდოს, რომელიც შეიძლება შენარჩუნება სიმღერა ყველა ხსოვნას თქვენ გამოყენებით თქვენი პროგრამა და ხდებოდა. ასე რომ, თუ თქვენ მოხვდით რაღაც, როგორიცაა, ნამდვილად წააგო, 40 bytes ერთ ბლოკში. ალბათ თქვენ არ დამახსოვრების გასათავისუფლებლად იგი. იმის გამო, რომ, თუ თქვენ იყენებთ ბაიტი მეხსიერების, ეს ნიშნავს, რომ თქვენ გამოიყენოთ, რომ მეხსიერება, მაგრამ თქვენ არ შეუძლია გასათავისუფლებლად. ასე რომ, თუ გინდათ დარწმუნებული ვარ, რომ თქვენ ასევე გამოყენებით free--, რომ არის ფუნქცია გასათავისუფლებლად ყველა მეხსიერების გადატანა მიერ malloc. ზემოთ. ასე რომ, ეს slide, მე ეს. ეს ყველგან ბევრი ლექციები, ბევრი მონაკვეთზე სლაიდები. ნამდვილად გსურთ დარწმუნდით თქვენ იცით, ეს ყველაფერი. ან თქვენი შენიშვნა ფურცელი ან თუ გსურთ გვემახსოვრება, მოგერიდებათ. ეს არის ის, მართლაც, მართლაც, მართლაც მნიშვნელოვანია. ასევე ძალიან კარგი კითხვაზე, რომ ჩვენ შეუძლია სთხოვოს. რატომ არის შერჩევის დალაგების შევხედოთ შერჩევის დალაგების ყველა runtimes არიან n კვადრატში. მიუხედავად იმისა, თუ სიაში საქმე თქვენ, როგორც, რატომ არის შერჩევის დალაგების მე მივცემ თქვენ ბიჭები 30 მეორე ვიფიქროთ ამ. იმის გამო, რომ ეს სახის გაუგებარია. იგი მოიცავს კონცეპტუალური აზროვნების. რატომ პერსპექტივაში ჯერ იყოს იგივე ორივე უარესი და საუკეთესო შემთხვევაში სცენარი? ჰო? აუდიტორია: იმიტომ, შერჩევა დალაგების თითოეულ თანამდებობა ან სივრცეში ამ პატარა მასივი რამ ან რასაც. ასე რომ, კი საუკეთესო შემთხვევაში, მაშინაც კი, თუ ის კარგად გადანაწილებული, ეს მაინც უნდა იყოს, OK, ერთი. ჩემი პირველი ადგილი მაქვს ერთი. და გაიაროს ყველა მათგანი. OK, ერთ-ერთი ყველაზე პატარა. და მაშინ იგი მიდის ისევ და როგორც, OK, ორი არის პატარა ყველა რამ. მაგრამ ეს ჯერ კიდევ აქვს შეამოწმეთ თითოეული. პროფესორი: ჰო. ასე მაგალითად, მოდით უბრალოდ, ვამბობთ ჩვენ სიაში, უკვე დახარისხებული, მასივი ერთი ხუთ. ისე, რომ შერჩევა სახის ის არის, რომ იგი გადის, ის ამოწმებს ამ ორი. მაშინ იგი ამოწმებს იმ ორი. და მაშინ ის ამოწმებს, და ის ამოწმებს. იგი ინარჩუნებს შემოწმების ყველა მათგანი, მიუხედავად იმისა, თუ არა ეს რეალურად გადანაწილებული. იმის გამო, რომ, უბრალოდ, გზა ერთგვარი მუშაობს. ასე რომ, ამ კითხვაზე არის სახის მოსწონს კონცეპტუალური საკითხი ჩვენ ვთხოვთ. სად პირველი, თქვენ უნდა იცით, რა შერჩევა დალაგების არის, უფლება, შეძლებს კითხვაზე პასუხის გაცემა. თქვენ უნდა შეეძლოს იმის გაგება, კონცეპტუალურად, რა ხდება. და მაშინ შეუძლია მას და ვფიქრობ, OK მოდით უბრალოდ წარმოიდგინეთ, უარეს შემთხვევაში სცენარი. ისინი ყველა კლებადობით. როგორ იქნებოდა, რომ იმოქმედებს ეს? რა მოხდება, თუ ის აღმავალი შეკვეთა? თუ ეს უკვე გადანაწილებული? როგორ, რომელიც გავლენას ახდენს runtimes? და მაშინ შერჩევა დალაგების, თქვენ შეამჩნევთ ის, რომ ფაქტობრივად არ აქვს. იმის გამო, რომ თქვენ შემოწმება ყველა ღირებულებები, მიუხედავად იმისა, თუ რა ხდება. ასე რომ, კარგი რამ უნდა გვახსოვდეს. რატომ ზოგიერთი სახის განსხვავდება სხვები და როგორ და უარეს შემთხვევაში სცენარი იმოქმედებდა ყველა მათგანი. მე ვაპირებ ნამდვილად მოხვდა სახის იმიტომ, რომ ეს იქნება ვიქტორინა. ჰო. OK. იქ ექვსი წუთი დარჩა. მე შეუძლია მიიღოს სამი წუთის შეკითხვებს. მე ასევე შეგიძლიათ გათიშეთ გარშემო მოსწონს 20-ე წუთზე განყოფილებაში თუ გვინდა, რომ კითხვის დასმის ისევე. ვინმეს უბრალოდ ნამდვილად მოკლე კითხვები და კონცეპტუალური საკითხები ისინი იმის შესახებ, ახლა? ჰო? აუდიტორია: შეგიძლიათ გაიგო ცოტა ცოტა შესახებ bitwise ოპერატორები? პროფესორი: ჰო. ასე რომ, bitwise ოპერატორები არიან ის, რომ თქვენ ალბათ შეიძლება უბრალოდ უნდა დააყენოს თქვენი ფურცელი. ასე რომ, quickly-- მე არ მინდა, წასვლა ძალიან ბევრი სიღრმე იმიტომ, რომ ჰარვარდის, მათი მიმოხილვა სხდომაზე, დაფარული ეს კარგად. Bitwise ოპერატორი, არსებობს ხუთი მათგანი, არა? არსებობს ამ, რომელიც x ან ფუნქცია, იქ ampersand, რომელიც არის და. მილები, რომელიც არის ან. და მაშინ თქვენ გაქვთ ორი სხვადასხვა სახის ცვლილებები. თუ მე გაძლევთ ორი ღირებულებები, თუ მე გაძლევთ, ისევე, როგორც ერთი და. რა, რომ შეაფასოს? თუ მე გაძლევთ ჭეშმარიტი და ნამდვილი, ჭეშმარიტი? რაც შეეხება ჭეშმარიტი ან მცდარი? და მაინც ასეა, არა? იმიტომ, რომ იქ არის ან. ჩვენ სავარაუდოდ მოგცემთ ნომრები. ასე მახსოვს, ერთი უდრის მართალია, ნულოვანი ტოლია ყალბი. და ჩვენ, შესაძლოა, თქვენ ეს ყველაფერი და გთხოვოთ, რომ გვითხრათ, რა მოხდება. ჰარვარდის მოიცავს ეს პირველი 10-ე წუთზე მათი შესწავლის ნამდვილად, ნამდვილად კარგად. ასე რომ ბიჭებს სურთ, რათა დარწმუნებული ვარ, თქვენ ვიხსენებთ, რომ. აუდიტორია: pisa5 იქნება ვიქტორინა? პროფესორი: No. ნუ კი შევხედოთ pisa5 ახლავე. ძნელია. უბრალოდ კი არ გადაიტვირთოთ ეძებს pisa5. თუმცა, როგორც გარკვეული მინიშნებები და წინადადებები, მე იქნებოდა გთავაზობთ იწყება pisa5 როგორც კი ვიქტორინა დასრულდა. ეს იქნება ყველაზე მძიმე კვირას, მაგრამ მაშინ ბიჭები იქნება გავიდა მას მთებში მოძრავი მწვანე და puppies, და ეს ჯარიმა. ეს კლასი იღებს მნიშვნელოვანი უფრო ადვილია შემდეგ მეხუთე pset. აუდიტორია: საათები არის კვირას, ორშაბათს? პროფესორი: ჰო, სამუშაო საათებში იქნება კვირა ორშაბათი, რომ pset. სამუშაო საათები დღეს არსებითად იქნება მხოლოდ მიმოხილვა ინტელექტუალური. თუ ვინმეს სურს, რომ მოვიდეს და ვთხოვ TAs კითხვა, ჩვენ ვიქნებით იქ. მე მიიღოს შესაძლოა კიდევ ერთი კითხვა თუ ვინმეს აქვს კითხვაზე? ჰო? აუდიტორია: როდესაც თქვენ განსაზღვრის კვანძების, [INAUDIBLE] თუ ამბობენ, რომ კვანძის ვარსკვლავი და შემდეგ მომავალი, არ კომპიუტერული ავტომატურად მესმის, რომ თქვენ გულისხმობდა ერთი მაჩვენებელი? პროფესორი: No. აუდიტორია: თქვენ უნდა relink ის [INAUDIBLE]? პროფესორი: ასე რომ, ძირითადად struct კვანძის არის, გახსოვდეთ, ეს, როგორც თქვენ შექმნას კვანძის და მაშინ თქვენ გაქვთ მაჩვენებელი მოუწოდა შემდეგი. ყველა თქვენ აკეთებთ არის, რომ სტრუქტურა არსებობს. თქვენ უნდა მივანიჭოთ რომ მაჩვენებელი სადღაც. ასე რომ, კომპიუტერი არ ვიცი, რასაც ის აკეთებს არის. თქვენ უნდა რეალურად მივანიჭოთ მას, როდესაც თქვენ შექმნით თქვენი უკავშირდება სიაში. და რომ ის, რაც, ძირითადად, 5 pset იქნება. ასე რომ, არ აწუხებს ნებისმიერ, რომ ახლა. აუდიტორია: ასე რომ, ჩვენ არ უნდა ფოკუსირება ძალიან ბევრი ბმული სია, ისევე, ზოგადი კონცეფცია? პროფესორი: Just საკმაოდ ბევრი stacks, რიგები, ბმული სიები, ხეები, hash მაგიდები. უბრალოდ შეძლებს ვიცი რასაც ისინი. ჩვენ არ ვაპირებთ, ვთხოვოთ გნებავთ რამე კონკრეტული იმიტომ, რომ ჩვენ ნამდვილად არ კეთდება pset, რომ მოიცავს, რომ არც ერთი არ არის. ასე რომ, ბოლო ორი წუთით ადრე მე გაგათავისუფლებთ მოკვლა ამ ვიქტორინაში. საკმაოდ ბევრი, როგორც, ვიფიქროთ, თუ როგორ შორს თქვენ ბიჭები არ მოდის ამ კლასში. მახსოვს, როდესაც კვირაში ორი ამ კლასის, ზოგიერთ თქვენგანს ატარებენ სამი საათის განმავლობაში წერილობით წყალი. რამდენ ხანს უნდა მიიღოს თუ არა ბიჭები წერენ წყალი ახლა? 30 წამში, იქნებ? ვიფიქროთ რამდენად თქვენ ბიჭები არ შეიტყო. CS არის ნამდვილად, ნამდვილად მძიმე თემაზე. არ არსებობს ეჭვი, რომ. ძნელი, ამიტომ არავინ სწავლობს მას. ეს უბრალოდ რთულია. და ეს სრულიად ჯარიმა. და მე ნამდვილად ვამაყობ, რომ ყველას აქვს გახადა ამ შორს. Psets არ არის ადვილი. ისინი ბევრი დრო. თქვენ ბიჭები, მე არასდროს მოგთხოვთ დაწერა თამაში 15 ან Vigenere წლის pset. არ არის საჭირო, უბრალოდ freak out შესახებ. ყველა ჩვენ ტესტირების აქ შევაფასოთ თქვენი კონცეპტუალური ცოდნა, ასევე როგორც ზოგიერთი თქვენი ძირითადი უნარების კოდირების. ტესტი მიზნად ისახავს იყოს მართლაც რთული. მსგავსად, იგი შექმნილია თქვენ არ მიიღოთ 100. იგი ასევე განკუთვნილია თქვენ ალბათ ვერ შეძლებს დასრულდება 75-ე წუთზე. და ეს სრულიად ჯარიმა. მე ვარ სტუდენტი თავს. მე ვიცი, მე სიძულვილი როცა მე ფეხით გარეთ ვიქტორინა იყოს, shit. ეს იყო ნამდვილად მძიმე. ალბათ, თუ რა ხდება მოხდეს და რომ მთლიანად ჯარიმა, მე გეუბნებით თქვენ ბიჭები ახლა. საშუალებით ეს ყველაფერი არ არის მაღალი ყველა. და იმ თქვენ, რომლებიც უკვე მიღების, ისევე, სამად თქვენი პრობლემა კომპლექტი, ეს არ ნიშნავს იმას, რომ თქვენ ვაპირებთ კიდევ 60 პროცენტი ამ კლასში. თუ თქვენ გაქვთ 60% -ით ვიქტორინა, რომ არ ნიშნავს, თქვენ აპირებს მიიღოთ D ამ კლასში. ჩვენ ვხედავთ, განსაკუთრებით მე, იმ თქვენ, ჩემს განყოფილებაში, მე ვხედავ, თუ რამდენად მძიმე ბიჭები არიან ყველა მუშაობს. და მე შენარჩუნება სიმღერა რომ. თქვენ ბიჭები კარგად იქნება. არ არსებობს ინსტიტუციური მეხსიერება ბედნიერება ბოლოს სემესტრში. იმის გამო, რომ ყველა ჰარვარდის ბავშვები ვეუბნებით მათი მეგობრები, oh, თქვენ უნდა იყოს ჯარიმა. არავინ ეუბნება ბიჭებს, რომ აქ. ასე რომ, უნდა გითხრათ, ბიჭები, რომ აქ. თქვენ ბიჭები კარგად იქნება. მე ასე ამაყობს ყველა თქვენ ბიჭები. ტესტი რთული იქნება. სწავლა, და ამის შემდეგ მხოლოდ გადაყარეთ ის დაშორებით. მიიღეთ მზად უნდა ვისწავლოთ ახალი რამ. და ჭამა Candy. ჩვენ გვაქვს უამრავი candy. მიიღეთ კარგი ღამის ძილის. ნუ არ მძინავს, რადგან რომ მინდა იყოს ძალიან ცუდია. CS ბევრი ლოგიკა. თუ არ სძინავთ, თქვენ ვერ იფუნქციონირებს, და თქვენი ტვინის ვერ იფუნქციონირებს. და მე ვიქნები აქ მომდევნო 20 -ე წუთზე, თუ ვინმეს სურს, რომ გათიშეთ გარშემო. თქვენ ბიჭები ვაპირებთ, რათა მოკლას იგი. წარმატებებს გისურვებთ.