Andi Peng: ჩვენ თითქმის მთელი psets. ფაქტობრივად, ჩვენ უმრავლესობით ყველაზე რთული psets. ასე რომ, ჩვენ, ფაქტობრივად, მხოლოდ აპირებს სახის ნიავი მომდევნო რამდენიმე კვირის განმავლობაში. ჩვენ ვაპირებთ, რომ დაიწყოს ლაპარაკი ჩვენი საბოლოო პროექტების, მოვლენების ახლოვდება მომდევნო რამდენიმე კვირის განმავლობაში. და ცხოვრება იქნება ნიავი. ასე რომ, არ არის ძალიან ბევრი დღეს. იმედია, რეალურად ნიავი მეშვეობით დღის წესრიგში, დღეს, და შემდეგ აქედან გარკვეული დრო დაიშურებს. გარდა ამისა, მინდა, ბოდიში მოვუხადო ნაკლებობა candy დღეს. მე არ ვიცი, რატომ. მაგრამ კვირაში წამყვანი მდე Halloween, მე დაგვავიწყდეს candy. ასე რომ, მე რეალურად მხოლოდ დიდი იმედგაცრუება ახლა. იმის გამო, რომ მე ფაქტიურად მახსოვს candy თითოეული კლასი, მაგრამ ჰელოუინი. მაგრამ მომავალ კვირას, მე მოუტანს გაორმაგდება თანხის candy შეადგინოს, რომ ყველა თქვენთვის. ეს იქნება დიდი. ასე რომ, მე მაქვს რამდენიმე განცხადებები დაკავშირებით გარკვეული დაგეგმვა. მაქვს რამდენიმე დაგეგმვისა საკითხები. მაშინ ჩვენ ვაპირებთ, რომ გადაადგილება ლაპარაკი, რა მოუწოდა chmod. ჩვენ ვაპირებთ ვისაუბროთ სწრაფად TCP / IP HTTP. და მაშინ ჩვენ ვაპირებთ კოდი ჩვენი საკუთარი ნახვა გამოყენებით HTML და CSS. და მაშინ მე მიატოვებთ, შესაძლოა, 20-ე წუთზე ვისაუბროთ pset6. იმის გამო, რომ pset6 არის რეალურად ბევრი პერსონალის, რომ ჩვენ უკვე მინახავს ადრე, მაგრამ მე მინდოდა ამოცნობა ზოგიერთი იმ ცნებები ისევე, როგორც ასწავლიან რამდენიმე ახალი ფუნქციები. ზემოთ. ასე რომ, პირველ რიგში, მივესალმებით უკან შესვენება. იმედი მაქვს, თქვენ შესვენება იყო სასიამოვნო. გსურთ გააკეთე შესვენების? აუდიტორია: წავიდა ნიუ იორკში. Andi Peng: თქვენ წავიდა ნიუ-იორკში? მე ვფიქრობ, რომ ნახევარი ჩვენი სკოლა წავიდა ნიუ იორკში. ეს ყველა უფლება. გავატარე ყველაზე მეტად ჩემი შესვენების უმოძრაო საწოლში Netflixing. და ეს იყო კარგი დრო. მაგრამ ჩვენ ახლა უკან, უკან სხდომაზე, უკან swing რამ. ჩვენ გვაქვს pset გამო ამ პარასკევს შუადღისას. მე ვფიქრობ, თქვენ უკვე აიყვანეს თქვენი ინტელექტუალური, yeah? ასე რომ, ვინმეს, რომელსაც აქვს არ ჰქონდა მათი ტესტები, გთხოვთ მობრძანდეთ და მიიღოთ თქვენი ტესტებში ჩემგან ბოლოს მონაკვეთზე. ან სიმღერა me down კამპუსში. მე მას ჩემთან ერთად სადღაც. ჩვენი საბოლოო პროექტი წინასწარი წინადადება. ასე რომ, მათთვის, რომლებიც არასდროს ყოფილა ამ კლასში ადრე, capstone of CS50 ძალიან კულმინაციაც ამ გრანდიოზული პროექტი, რომელიც სტუდენტები შესთავაზოს. და წინასწარ წინადადება, მხოლოდ ზოგადი წარმოდგენა რა შეიძლება მინდა გააკეთოს მათი პროექტი, რომელიც იდეის გამო ორშაბათს, მომავალ ორშაბათს შუადღისას. ასე რომ, საკმაოდ ბევრი, დავით, ვფიქრობ, გაიგო მეტი ამ ლექცია თუ მას არა აქვს უკვე. და იქ არის კარგი გვერდი ჩვენს ვებგვერდზე აეხსნა ყველა მოთხოვნებს პროექტი. მაგრამ არსებითად, აირჩიოთ ნებისმიერ თემაზე, რომ თქვენ უკვე დაინტერესებული მთელი თქვენი დრო აქ განთავსებულია CS, იქნება ეს სათამაშო და დიზაინი და ვიდეო ან არაფერი. და თქვენ ნამდვილად სახის ახლა ვრცელდება ზოგიერთი გაკვეთილები რომ ჩვენ ვისწავლეთ აქ CS50-- hi, welcome-- საკმაოდ ბევრი ატარებს საბოლოო პროექტი თქვენი არჩევანი. ყველა, რომ იმის გამო ორშაბათს მხოლოდ მოკლე ჩანართი ელექტრონული ფოსტის მეშვეობით ჩემთვის, სწრაფი განაჩენი, მსგავსად, hey, Andi, მე ნამდვილად დაინტერესებული პროექტირება თამაში, რომელიც აკეთებს ამას iOS. ზემოთ. უბრალოდ ნება მომეცით თქვენი მოკლე საწყისი იდეები თქვენი საბოლოო პროექტები. და ჩვენ ვსაუბრობთ მეშვეობით თუ არა რომელიც რეალურად კარგი იდეა თუ არა, თუ ეს შესაძლებელია იდეა თუ არა. მაგრამ მხოლოდ წინასწარ წინადადება იმის გამო, ორშაბათს გახდება ცნობილი. pset6, ჩვენი საყვარელი web--, რომ არასწორია. Pset7? pset6? ეს pset6, არა? pset6, ჩვენს სერვერზე, იმის გამო, პარასკევი შუადღისას გვიან დღეში. სამუშაო საათები განაახლონ ჩვეულებრივ ორშაბათიდან ხუთშაბათი 8:00 11:00 ამ კვირაში. მე ვფიქრობ, რომ Commons for მომდევნო სამი ღამე. ზემოთ. სანამ ჩვენ გვქონდა შევიდა მასალა, ვინმემ გაქვთ რაიმე შეკითხვები, ხუმრობები, ისტორიები? რა გავაკეთოთ შემოდგომაზე შესვენების? აუდიტორია: რა გავაკეთო? Andi Peng: უკვე ეს საუკუნეების წინ რეალურად. Christabel წავიდა ნიუ იორკში. დავრჩი აქ და Netflixed. აუდიტორია: Oh, yeah მე ვიყავი აქ. Andi Peng: ოჰ, OK. აუდიტორია: მე არ მახსოვს რა კონკრეტულად. Andi Peng: ეს ​​არის OK. აუდიტორია: Netflixing ალბათ. Andi Peng: Netflixing. ჰო, კარგი დრო. OK. ყველა უფლება. რაიმე შეკითხვები, სანამ ჩვენ ხტომა შევიდა მასალა? გარდა ამისა, ჩვენ ვაპირებთ, რომ ცდილობენ დაჩქარდეს მეშვეობით მონაკვეთზე დღეს, არ არის ძალიან ბევრი დასაფარავად. და იმედია, ჩვენ მივიღებთ აქ ცოტა ადრე. ბოდიში, რომ ვერ candy, ასევე. მე იმედი გაუცრუა განსაკუთრებით Halloween. ყველა უფლება. ზემოთ. ასე რომ, ჩვენ ვაპირებთ დავიწყოთ ლაპარაკი ბრძანების არგუმენტი მოუწოდა chmod. chmod, ის არის, რომ მხოლოდ Unix სისტემა მოვუწოდებთ ჩატარებული იმ ბრძანების შეცვლა ფაილის უფლებები. ასე მაგალითად, ჩვენ გვაქვს ყველა შეექმნა გვერდი მოსწონს ეს ალბათ ოდესმე ჩვენი სიცოცხლე, რომ ინტერნეტ შესახებ, სადაც ჩვენს სერვერზე აქვს მოგვცა შეცდომა Forbidden. თქვენ არ გაქვთ წვდომის, yadda, yadda, yadda, ამ სერვერზე. ყველა რომ ნამდვილად ნიშნავს ის არის, რომ უფლებები რომ იყო დამაგრებული, რაც არ უნდა გვერდი ცდილობდნენ ხელმისაწვდომობა არ იყო ღიაა თქვენთვის. ასე რომ, საკმაოდ ბევრი, chmod არის გზა, რომელიც ჩვენ შეგვიძლია ცვლილებები იმ სისტემის ნებართვების მისცეს ყველას, შესახებ, ჯგუფი, ან მსოფლიოს, ან ერთობლიობა იმ დაშვების გარკვეული ფაილები, საიტები, ყველაფერი მართლაც, ნებისმიერი სახის სისტემა ოპერაციული სისტემა. ასე რომ, თუ ბიჭები აქვს კომპიუტერები თუ თქვენ გრძნობთ, როგორც ირკვევა, ჩემთან ერთად, დღეს, სრულიად მოგერიდებათ მხოლოდ ჩაწერეთ რამ in. თუ არა, თქვენ შეგიძლიათ უბრალოდ გათიშეთ out. ამიტომ, მე ვაპირებ, რომ რეალურად გაიყვანოს ჩემს ტერმინალში ახლა. ასე რომ ბრძანება აწარმოებს chmod, ან თუნდაც უბრალოდ ჩამოვთვალოთ ნებართვების თქვენი ფაილის დირექტორია, მხოლოდ ls-l. როგორც ხედავთ, რამოდენიმე პერსონალის pops up რომელთა უმრავლესობა მნიშვნელოვანია, რომ ჩვენთან მარცხენა მხარეს აქ. თქვენ ბიჭები ვხედავთ რამოდენიმე რს, ws, 1 /. ჰო. ისინი, ძირითადად მხოლოდ ყველა უფლებები ასახსნელად, თუ რა გარკვეული საიტები და ფაილი თქვენი სისტემის. მოდით დავუბრუნდეთ ძალა წერტილი აქ. ასე რომ, გარდა იმისა, რომ სახელები როგორც ბიჭებს ვხედავ მარჯვენა ჩვენ ვეძებთ ვხედავ არსებითად უბრალოდ სვეტი მარცხენა. ასე რომ, გარდა იმისა, რომ მხოლოდ სახელები, ჩვენ ხედავთ უფლებები ფაილების, მათი მფლობელი ჯგუფი, ჯგუფის სახელი, თარიღი რომ ფაილი გასულ შეცვლილია, et cetera. თქვენ შეგიძლიათ ნახოთ ბევრი რამ გამოყენებით chmod. ასე რომ, ისე, რომ ვკითხულობთ chmod ის არის, რომ პირველი წერილი ჩვენ საკმაოდ ბევრი იგნორირებას თვალსაზრისით კითხვის უფლებები. პირველი წერილი გვეუბნება, თუ რა ტიპის სისტემა ჩვენ წვდომის. დ, ამ შემთხვევაში, არის საქაღალდე ან დირექტორია. ასე რომ, ჩვენ ვიცით, რომ ამჟამად ჩემი სამუშაო განყოფილებაში შვიდი იყო დირექტორია. და მაშინ სამი triads, არსებითად მხოლოდ სამი კომპლექტი სამი გმირები. და შეგიძლიათ წარმოიდგინოთ, რომ თითოეული, როგორც ცოტა. ასე რომ, უბრალოდ სამი კომპლექტი სამი ბიტი, ცხრა ბიტი შეადგენს. თქვენ მკურნალობა მათ ჯგუფებში სამი. ასე რომ, პირველი ჯგუფის სამი არის ყოველთვის თქვენი მომხმარებლის უფლებები. შენი მეორე ჯგუფი სამი არის ყოველთვის თქვენი ჯგუფის უფლებები. და მესამე კომპლექტი სამი ყოველთვის, როგორც მსოფლიოში, ყველგან უფლებები. ამიტომ ვფიქრობ, ადვილი კითხვა, რა არის შორის სხვაობა და ჯგუფის. მთავარი განსხვავება შორის და ჯგუფის ის არის, რომ მომხმარებელს მხოლოდ პირადად წვდომის რაც არ არის ახლა. ჯგუფი შეიძლება იყოს, თუ თქვენ გაქვთ სხვადასხვა მომხმარებლებს ერთ კომპიუტერზე, მაგალითად. ყველა მათგანი შეიძლება განხილულ იქნას, როგორც ჯგუფი. და მაშინ მსოფლიოში არის უბრალოდ მსოფლიოში, ყველას. ასე რომ, ჩვენ ვხედავთ, მოგვიანებით როგორ შეგვიძლია ცვლილებები იმ სხვადასხვა უფლებები. ასე რომ, საკმაოდ ბევრი, ჩვენ აპირებს კვლავ ფოკუსირება იმ ნაწილს მარცხენა, სადაც დირექტორიების CS50 ჩვენ ვხედავთ drwx, სადაც r მხოლოდ იმას ნიშნავს, რომ იკითხება. მ მხოლოდ იმას ნიშნავს, რომ ეს არის ჩაწერადი. და მაშინ x მხოლოდ იმას ნიშნავს, რომ მისი გაშვება. ნეტავ ვფიქრობ, რომ ეს ერთგვარი საქართველოს არ აქვს აზრი. ეს უნდა იყოს ე. მაგრამ x რეალურად სახის მუშაობს ცოტა უკეთესი, იმიტომ, რომ თქვენ მახსოვს, რომ ეს უკეთესი. ასე რომ, სამი სახის რამ, შეგიძლიათ გააკეთოთ, თქვენ შეგიძლიათ წაიკითხოთ ფაილი, თქვენ შეგიძლიათ გაქვთ დაწერა ფაილი, ან თქვენ შეიძლება ჰქონდეს ნებართვა შეასრულოს ფაილი. ასე რომ, ისე, რომ ჩვენ რეალურად წარმოადგენს იმ ბიტი არის ნომრები 4, 2 და 1. ასე რომ, არაფერი რომ იკითხება წარმოდგენილია ნომერი 4. არაფერი რომ ჩაწერადი წარმოდგენილია 2. და არაფერი რომ შესრულებადი წარმოდგენილია 1. ასე რომ, ამ თვალსაზრისით, ჩვენ შეგვიძლია ასევე წარმოადგენს ამ ნომრებზე hi, მისასალმებელია, სხვაგვარად. ბოდიში. სანამ ყველას, მე ვაპირებ ბოდიშს ყველას სახელით შესვლის კლასი არის. დამავიწყდა candy დღეს. მე ვწუხვარ, მე მარცხი ამ კვირაში ჰელოუინი. მე მოუტანს ორმაგი ოდენობით candy მომავალი დრო, რათა იგი. მაგრამ მაინც, ბოდიში შესახებ, რომ ბიჭები, ბოდიში. ასე რომ, ისე, რომ ჩვენ შეგვიძლია რეალურად შეყვანის ჩვენს ბრძანება არგუმენტი ჩვენ შეგიძლიათ გააკეთოთ chmod ჯგუფი slash უფლებები, სადაც ჯგუფი არის უბრალოდ რასაც ჯგუფი ჩვენ ვცდილობთ, რომ შეიცვალოს. და ნებართვების არიან რაც ჩვენ გვინდა, რომ დამატებას. ასე მაგალითად, ასევე დასძენს უფლებები, და სხვაობა მიაქვს უფლებები. და ტიპის ჯგუფის ჩვენ გვაქვს ჩვენი ყველა, u მომხმარებლებს, ზ ჯგუფები, ან o სხვები. ეს ცოტა აბსტრაქტული ახლავე. მაგრამ ჩვენ წავიდეთ მეტი წყვილი მაგალითები მხოლოდ იმის დემონსტრირება რეალური სწრაფი. ყველას კარგი ამ slide, ასე რომ შეგიძლიათ გადაადგილება? ზემოთ. ასე მაგალითად, rwx. სანამ ჩვენ ვსაუბრობთ, თუ რას წარმოადგენს, პირველ რიგში რას rwx ნიშნავს? თუ ხედავთ, რომ ამ კონკრეტულ ფაილი აქვს უფლებები rwx, რას ნიშნავს პირი შეიძლება იყოს შეუძლია ამის გაკეთება? აუდიტორია: კითხვა, წერა და შეასრულოს. Andi Peng: ჰო, ზუსტად. შეგიძლიათ წაიკითხოთ ჩაწერის და შეასრულოს. იმის გამო, რომ სამივე იმ გმირები არიან დღემდე. ასე რომ, თუ ჩვენ წავიდეთ წინ და განხილვა ამ თვალსაზრისით ბიტი, rwx შეიძლება ასევე წარმოდგენილი იქნება 700. იმის გამო, რომ, როგორც ხედავთ ნებისმიერ სახის ფაილის დირექტორია ნებართვა, ეს არის სამი triads. ამ შემთხვევაში, მხოლოდ პირველი triad აქვს არაფერი არსებობს. ასე რომ, ამ შემთხვევაში, r 4, მ 2 და x არის 1. თუ თქვენ დაამატოთ იმ ერთად, ის 7. ასე რომ, თუ თქვენ დააკონვერტიროთ ეს ორობითი, ეს 700. იმის გამო, რომ 7 არის პირველი ტრიადა. 0, არაფერი იმყოფება მეორე ტრიადა. და შემდეგ იქ არაფერი იმყოფება მესამე ტრიადა, ასე რომ კიდევ ერთი 0. ასე რომ, იგივე გრძნობა, bunch of triads შეიძლება წარმოდგენილი იყოს მხოლოდ ბიტი, ისევე, ორობითი ისევე. ასე რომ, 700 ნიშნავს ზუსტად იგივეა, რაც rwx ------ თვალსაზრისით უფლებები. ყველას ნათელი, რომ? ზემოთ. ასე რომ chmod 111 მისცემს რომელიც უფლებები ფაილი? მიეცით თქვენ ბიჭები რამდენიმე წამი გადაიყვანოთ ამ. გახსოვდეთ, პირველი triad არის, რომ მომხმარებელს. მეორე ტრიადა არის ჯგუფი. და მესამე ტრიადა არის ყველასთვის. ასე რომ chmod 111 მისცემს, რომელიც ტიპის უფლებები და ვის? მიიღეთ რამდენიმე წამში დაფიქრდით და დავბრუნდებით. ჰო. აუდიტორია: ასე რომ ყველას შეუძლია შეასრულოს იგი. Andi Peng: Yup, ზუსტად. აუდიტორია: მაგრამ ვერავინ კითხვა და წერა. Andi Peng: და მოგერიდებათ უნდა ავუხსნათ ყველას როგორ მოვიდა, რომ დასკვნა. აუდიტორია: ისე, შესახებ, ჯგუფი, და მსოფლიოში, ეს ყველაფერი 1, რომელიც არის კოდი გაშვება. Andi Peng: ჰო, ზუსტად. ასე რომ, 1, ამ შემთხვევაში, ყველა ჩვენ ვიცით, რომ ეს არის შესრულებადი კოდი. იმის გამო, რომ კითხულობს 4. წერა 2. და შემსრულებელი 1. ასე რომ სამივე triads 1, რომელიც იმას ნიშნავს, რომ მსოფლიოში, შესახებ, და ჯგუფი, მათ ყველა გაშვება. ყველას კარგი რომ? OK. ასე რომ, მეორე გზა რომ ჩვენ შეგვიძლია რეალურად წერენ ეს ასევე არის თუ არა შეიძლება უბრალოდ chmod პლუს x. იმას ნიშნავს, ყველა და ყველას. პლუს გულისხმობს უფლებები. და მაშინ x ნიშნავს გაშვება. ასე რომ, არსებობს ორი ბრძანებები რომლებიც, ფაქტობრივად, იდენტურია. ასე რომ, თუ გსურთ აწარმოებს ამ თქვენს ტერმინალი, თქვენ ამის chmod 111, სახელი თქვენი დირექტორია და თქვენი ფაილი. ან შეგიძლიათ გააკეთოთ chmod პლუს x, სახელი თქვენი დირექტორია ფაილი. იგივე, უბრალოდ ადვილი გზა, ალბათ, გარკვეული წარმოადგენს ან იცვლება ფაილის უფლებები. ყოველი კარგად chmod სანამ ჩვენ გადასვლა? ზემოთ. ასე რომ, ახლა ჩვენ ვაპირებთ უხელმძღვანელებს შევიდა სლაიდები ძალიან აბსტრაქტული ცნებები რომ მე საკმაოდ ბევრი აპირებს ნიავი მეშვეობით. და ეს სრულიად OK, თუ თქვენ არ მესმის ყველაფერი. ახლა კი, მე მაინც ნამდვილად არ ყველაფერი ესმის მთლიანად. მაგრამ ეს უფრო მისაღებად ზედა დონის გაგება როგორ ზოგიერთი რამ მუშაობა. ასე რომ, ჩვენ ვაპირებთ, რომ გაიგო სწრაფად შესახებ TCP / IP, რომელიც მხოლოდ Transmission Control ოქმის სლეში ინტერნეტ ოქმი. შეგახსენებთ, ლექცია, დავით, მან გასწავლით მაგალითად, სადაც ის მინდა გაივლის აღნიშნავს, კონვერტში მდე მინდა ზედა აუდიტორია? ასე რომ, სამართლის სკოლა აუდიტორიაში დავით აჩვენა არსებითად როგორ TCP / IP მუშაობს იმ გაგებით, რომ ყველა ის არის არის საშუალება, რომელიც უზრუნველყოფს მონაცემთა უკვე მიეწოდება მასშტაბით სერვერზე ან ინტერნეტში. ასე რომ, მაგალითად კონვერტში და გაგზავნა, მომხმარებელს ბოლოს ვერ ვხედავ, რომ, რა, მე საჭირო მიიღეთ ოთხი პაკეტი ინფორმაციას. მაგრამ მე რეალურად მხოლოდ სამჯერ. ეს ნიშნავს, რომ მე უნდა აკლია ერთი. და ერთი არ მიეწოდება. ასე რომ, TCP / IP ინტერნეტში, თქვენი კომპიუტერი და სერვერი, აკეთებს ზუსტად იგივე რამ. ყველა ეს იმას მიუთითოთ ფარგლებში, რომელიც დაკარგული მონაცემების პაკეტების შეიძლება უკმაყოფილონი არიან და მიღებული. ისევე, როგორც ინტერნეტში, როდესაც თქვენ ცდილობთ ხელმისაწვდომობის ფაილი ონლაინ და გააგზავნეთ ფაილი თქვენს მეგობარს ან შევხედოთ ვებ ბრაუზერები, და ათასობით საქართველოს მილიარდობით ბაიტი ინფორმაცია ირიცხება თითო millisecond. და ეს მართლაც, მართლაც გაუგებარია. და ეს მართლაც რთულია, ნამდვილად ვიცი, რა გაიგზავნა და რაც არ გაიგზავნა. ასე რომ, TCP / IP მხოლოდ განსაზღვრავს შეკრული ფარგლებში რომელშიც თქვენი ვებ ბრაუზერი და თქვენს სერვერზე შეგიძლიათ სახის კომუნიკაცია ერთმანეთს, უბრალოდ დარწმუნდით, რომ პაკეტი ყველა აქ და არაფერი დაკარგული და ყველა მონაცემები, რომ თქვენ მოითხოვა რეალურად აჩვენებს სწორად. ყველას OK მხოლოდ, რომ ძალიან მოკლე მაღალი დონის გაგება? ზემოთ. ასე რომ, ჩვენ ვაპირებთ გადაადგილება შევიდა ვსაუბრობთ HTTP, რომელიც მხოლოდ ჰიპერტექსტის გადაცემის პროტოკოლი. HTTP, ის არის, რომ რაც არ უნდა ნებისმიერი გვერდი ფაილი ან გამოიყენოთ თქვენს ნახვა, სერვერზე ბრუნდება HTTP სტატუსის კოდი საპასუხოდ მოთხოვნის მიღების დარწმუნებული ვარ, რომ ან, რა, ამ მოთხოვნის გაიარა. და ყველაფერი აჩვენებს სწორად. ან, ო, არა, 404. რაღაც წავიდა არასწორი. ოჰ, მე ვერ არიან. ყველა ის არის, რომ რაც არ უნდა თქვენ ცდილობთ ხელმისაწვდომობა, გამოიყენოთ როგორც მომხმარებელი ცდილობს შედიხართ, on საქართველოში ინტერნეტ უბრალოდ მიღების დარწმუნებული ვარ, რომ თქვენ ან წარმატებით შემოწმდა რაც არ იყო, თუ არა წარმატებით გამოიყენოთ რაც არ იყო. ასე რომ, HTTP სტატუსის კოდი უბრალოდ უზრუნველყოფს საშუალება რომ შეუძლია იცით თუ არა თუ არა, რომ წარმატებული იყო თუ არა. ასე მაგალითად, მაგალითად მოთხოვნით. აქ შეგიძლიათ იხილოთ ეს როგორც წესი, როგორც წესი, ოთხი ხაზები. ჩვენ გვყავს GET HTTP 1.1, რომელიც მხოლოდ მეთოდი მოთხოვნით URL ოქმი არსებობს ვერსია, რომ სფეროში სახელი, და სფეროში მნიშვნელობა. ასე რომ არ უნდა მთლიანად გვემახსოვრება არაფერი აქ. უბრალოდ სახის გაეცნოს თავს როგორ ეს გამოიყურება. ამ მაგალითად, მეთოდი თხოვნა URL მხოლოდ სათხოვარი თქვენ გაგზავნის სერვერზე. მსგავსად, hey, სერვერზე, მე ნამდვილად მინდა ხელმისაწვდომობა yadda, yadda, yadda, HTTP გვერდზე. მხრიდან ოქმს მობილური არის უბრალოდ რასაც ვერსია თქვენი მასპინძელი ან თქვენს სერვერზე გამოყენებით გაეცნონ. სფეროში სახელია ნახვა ან URL, რომ თქვენ ცდილობთ ხელმისაწვდომობა, ამ შემთხვევაში, www.apple.com. და ველი მნიშვნელობა უბრალოდ, როგორც წესი, სახელი, ღირებულება. და ეს შეიძლება იყოს ნებისმიერი სახის კომბინაცია წერილები და ციფრები ან რასაც. ასე ტიპიური მოთხოვნით, ისე, რა თქვენი კომპიუტერი რეალურად აგზავნის სერვერზე, რომელიც ამბობს, hey, თქვენ იცით, რა მინდა ეს ნაჩვენები, რომ არის ერთგვარი მოთხოვნით რომ ისინი რეალურად მიიღონ. მაგალითად, პასუხი, თუ რა სერვერზე გამოგიგზავნით თავში თქვენ იქნება საკმაოდ ბევრი იგივე, გარდა სტატუსის კოდი ზედა. ასე რომ, 200, 2 0 0 ყოველთვის სტატუსი კოდი OK. მსგავსად, OK, ამ მოთხოვნის გაიარა. თქვენ შეძლეს წვდომისათვის ყველაფერი სწორად. ცხოვრება კარგია. ცხოვრება კარგად არის. ყველაფერი სრულიად კარგი. ასე რომ, ეს უბრალოდ ეუბნება თქვენი ბრაუზერის და თქვენს სერვერზე, hey, ყველაფერი კარგია. მე მივიღე ყველა ინფორმაცია მჭირდება. ზემოთ. მაგრამ პრობლემა ის არის ზოგჯერ პრობლემები ამუშავება როდესაც თქვენ ჰქონდეს გაგრძელდება მე ვფიქრობ, ვსაუბრობდი ეგზემპლარი. თქვენ უნდა ნაკლებად კარგი რეაგირება. ასე მაგალითად, 404 არის გვერდი ვერ მოიძებნა. თქვენ ზოგჯერ Forbidden ხელმისაწვდომობა. თქვენ გაქვთ სხვა კოდები, რომ მე ვარ დარწმუნდით, რომ თქვენ ყველა მინახავს, ​​როდესაც თქვენ ცდილობს გააკეთოს კვლევის ინტერნეტში. და თქვენი ბრაუზერი გაძლევთ ის, არ არის, არ შეუძლიათ. და თქვენ, ასევე, crap. ასე რომ, უბრალოდ საკმაოდ ბევრი, იქ ზოგიერთი საკმაოდ გავრცელებული კოდები. იქნებ გაეცნოთ ერთად, რომელიც მიიჩნიეს, რომ ეს არის. სასაცილო ერთი, რომ მე ვფიქრობ, რომ მე ოდესმე მოისმინა of-- თუ მოხდება ეძებოთ ყველა მათგანი ამჟამად, რატომღაც არ არის რეალურად რეალური სტატუსის კოდი მოუწოდა 418 მე ჩაიდანი. მე googled სადაც წარმოშობის ეს იყო. და როგორც ჩანს, ერთ-ერთი აპრილი Fools ' დღეს რამდენიმე ათეული წლის წინ, ვინმე ფიქრობდა, რომ ეს იქნება იუმორისტული რათა შეიქმნას ახალი სტატუსის კოდი მოუწოდა 418 მე ჩაიდანი. ლეგიტიმურად, სახელი ამ კოდი ეწოდება მე ჩაიდანი. მე დაგვავიწყდეს, რა გვერდი თქვენ უნდა წასვლა რეალურად ეს ჩვენება. მაგრამ როგორც ჩანს, თქვენ შეგიძლიათ რეალურად სტატუსის მოპოვების კოდი ვარ ჩაიდანი როგორმე მეშვეობით აკეთებს რაღაც. ასე რომ, არსებობს ასობით და ასობით კოდები. ზოგიერთი მათგანი, რათა მეტი გრძნობა, ვიდრე სხვები. მაგრამ საკმაოდ ბევრი უბრალოდ გაეცნოს თავს ყველაზე გავრცელებული მიიჩნიეს. მოთხოვნილი პირის სხეული მოკლე და მსუქანი, როგორც ჩანს. ასე რომ, ზოგჯერ არსებობს უფრო საშიში შეცდომები, ვიდრე მე ჩაიდანი. მაგრამ ეს ერთი, რომ ვფიქრობ, თქვენ სახის იმედი მაქვს, რომ მოხვდა. მაგრამ მე არ ვფიქრობ, თქვენ. ყველას კარგი უბრალოდ სტატუსი კოდები, მოთხოვნები, პროცესების, მიღების დარწმუნებული ვარ, ინფორმაციის მიწოდება სწორად? ასე რომ, ახლა ჩვენ ვაპირებთ გადასვლას შევიდა გართობა ნაწილი მონაკვეთზე დღეს, სადაც ჩვენ ვსაუბრობთ ცოტა HTML. HTML, ის არის, რომ HyperText მარკირებას ენა. ეს არის მხოლოდ სტანდარტული ენის თქვენ იყენებთ შექმნა ყველა ვებ გვერდები ინტერნეტში. ასე რომ, ნებისმიერი ვებ გვერდი, რა არის თქვენი საყვარელი ვებ გვერდი? რა არის თქვენი საყვარელი ვებ გვერდი? აუდიტორია: [INAUDIBLE]. Andi Peng: ბოდიში? აუდიტორია: Tumblr. Andi Peng: Tumblr. ასე რომ, Tumblr არის დაწერილი HTML. ასე რომ, ჩვენ რეალურად გავლა და ითამაშოს გარშემო ზოგიერთი რამ მოგვიანებით. საკმაოდ ბევრი ყველაფერი თქვენ უნდა ვისწავლოთ, უნდა იცოდეს, დაწერა HTML, თქვენ ალბათ შეუძლია უბრალოდ Google ინტერნეტში. HTML, ეს არ არის პროგრამა, როგორიცაა C სადაც თქვენ შეგიძლიათ შექმნათ ცვლადები და ნუ მაგარი რამ არის. ეს უფრო უბრალოდ, oh, ეს როგორ უნდა მინდა რამ, როგორც ჩანს, ჩემი ნახვა. და მე უბრალოდ აპირებს დააყენოს ის. და ის აპირებს სტილის. ასე რომ, HTML, გრძნობა, ეს, ისევე, როგორც გაფორმებით და თარგი ენაზე. ეს ბევრი ადვილია. ეს არის ბევრი უფრო ადვილად სწავლობენ, ბევრი ადვილია წერა ვიდრე თქვენი ტიპიური პროგრამირების ენის, ძალიან ადვილია, ძალიან ხელმისაწვდომი და მეგობრული. ასე რომ ჩვენ რეალურად აპირებს ითამაშოს გარშემო, დავწეროთ ჩვენი საკუთარი გვერდებზე დღეს. მაგრამ, სანამ ჩვენ ვიწყებთ, მე უბრალოდ მინდა წავიდეთ მეტი რამდენიმე მოკლე საუკეთესო პრაქტიკის. იმის გამო, რომ HTML არის ასეთი მარტივი ენის და ამის გამო კი თუ ამის გაკეთება რამდენიმე რამ არასწორი, ეს ზოგჯერ შეიძლება არ შეამჩნია, ჩვენ გვინდა დავრწმუნდეთ, რომ ჩვენ რეალურად მიყვებიან ჩვენი საუკეთესო პრაქტიკის დარწმუნდით, რომ რამ, რომ შეიძლება მიმდინარეობს გარშემო, მაგრამ ყოველთვის არ აპირებს არ წავიდეთ უფლება დარწმუნდით, რომ ისინი დაყვანილი. ასე რომ, საკმაოდ ბევრი, დარწმუნდით თქვენი დახურვის ყველა თქვენი tags როდესაც თქვენ წერა HTML. თუ თქვენ გახსნით ორგანოს, დარწმუნდით, რომ თქვენ დახურვის ის სხეულის სადღაც. თქვენ გვინდა დავრწმუნდეთ, რომ თქვენი ვებ-გვერდი ამტკიცებს გამოყენებით რასაც W3 დამტკიცება. შეგიძლიათ უბრალოდ Google, რომ ამჟამად, და იქ ბმული ეს. და მაშინ გსურთ ცალკე HTML, რომელიც არის თქვენი ენა თქვენი სტილი, რომელიც არის CSS ენის, რომ დავით აჩვენა, რომ ჩვენ ასევე უნდა ითამაშოს ცოტა ლექცია. ზემოთ. ასე რომ, ნებისმიერ დროს გსურთ აწარმოებს HTML on CS50 ელექტრო მოწყობილობების, ჩვენ ვაპირებთ, რომ აწარმოებს პროგრამა მოუწოდა apache, რომელშიც ყველა ეს მხოლოდ აშენდა სერვერზე, რომელიც ყველას CS50 ხელი მიუწვდება. ჩვენ მოვუწოდებთ მას apache50 მხოლოდ იმიტომ, რომ ჩვენ მინდა მოვუწოდო ყველაფერი 50 CS50. ასე რომ გზა, რომ თქვენ დაიწყოს CS50 ვებ სერვერზე არის აკრეფით თქვენი ბრძანება ონლაინ apache50 დაიწყოს dot. და თუ გვინდა, უნდა დამთავრდეს ის ნებისმიერ დროს, თქვენ apache50 დასრულდება არსებობს dot. თქვენ უბრალოდ დააჭიროთ. და ეს უნდა სასაქონლო აქ მალე. Yup. ასე რომ მე უბრალოდ აპირებს სწრაფად წავიდეთ მაგალითად, ძალიან მოკლე ვებ-გვერდზე. და ჩვენ ვაპირებთ დახარჯავს ისევე, როგორც 10, 15-ე წუთზე სათამაშო გარშემო წერილობით საკუთარი ვებ გვერდები. OK. ასე რომ, აქ IDE-- შეიძლება ყველას ვხედავ, რომ? არა, ნამდვილად. აქ, მე მიუახლოვდით. მე უბრალოდ მიიღო ამ მოკლე თარგი აქ არაფერია რეალურად იგი. ჩვენ უბრალოდ აპირებს სწრაფად დაწერა HTML- ის პროგრამა რომელიც ჩვენ მხოლოდ მიესალმები მსოფლიოში. ასე რომ, იგივე როგორც C, ახლა ჩვენ უბრალოდ აპირებს ამის გაკეთებას HTML. ვინმეს სურს რეალურად მხოლოდ ცდილობენ მაძლევს პირველი, რაც თქვენ უნდა დააყენოს HTML დოკუმენტი? ჰო. აუდიტორია: ფრჩხილებში, [INAUDIBLE]. Andi Peng: Yep. ასე, რომ რაღაც ძალიან უნიკალური HTML, რომ ჩვენ, როგორც წესი, ტრადიციულად არ ექმნებათ სხვა ბრძანება ხაზის დონეზე პროგრამირების ენები არის, რომ ჩვენ რეალურად დააკონკრეტა ტიპის ფაილი რომ ეს იქნება ზედა ჩვენი კოდი. ასე რომ, ამ instance-- ვფიქრობ, ეს სწორი ბრძანება, არა? Yup. ზედა, თქვენ უბრალოდ გსურთ მოიცავს bang DOCTYPE html ფრჩხილებში მხოლოდ ვუთხრა თქვენს კომპიუტერში, hey, გამოიყურებოდეს out. და HTML დოკუმენტის მოდის. და მაშინ, თუ ჩვენ გვინდა, უნდა დაიწყოს off ჩვენი ფაილი? თუ ჩვენ უბრალოდ მინდა ვთქვა, hello, აქვს ვებ-გვერდი, რომელიც ამბობს, მოკითხვა მსოფლიოში, როგორ უნდა წავიდეს მშენებლობის ეს? რეალურად, მოდით მივმართოთ Google. და ჩვენ შეგვიძლია რეალურად ამის გაკეთება. Yup. იქ ჩვენ წავიდეთ. ასე რომ, HTML. როგორც ხედავთ, ჩემი ბრაუზერის ფაქტიურად ავტომატურად სტილის ეს ჩემთვის. იგივე როგორც C, როცა შექმნათ ღია Curly გაუწიოს, თქვენი ბრაუზერი ავტომატურად დასძენს მჭიდრო Curly გაუწიოს. საბედნიეროდ, ჩვენი IDE უყვარს ამისათვის ჩვენთვის ასევე. ასე რომ, ახლა ჩვენ შეგვიძლია სახის ტიპის დასაწყისში tag, და ის აპირებს, რომ ყოველთვის გვეუბნებიან გვახსოვდეს, რომ ტიპი ბოლოს აქვს. მე ვფიქრობ, რომ ეს უნდა იყოს კაპიტალიზაცია. და მაშინ ჩვენ გვინდა, რომ დაამატოთ, ყოველთვის, ხელმძღვანელი, რომელიც ტიტული. ჩვენ უბრალოდ გვინდა, რომ, შესაძლოა, დარეკეთ ამ hello, და მერე ორგანო. და იქ წასვლა. ეს არის, ფაქტობრივად, ჩვენი HTML დოკუმენტი. ასე რომ გზა, რომ ნებისმიერი HTML დოკუმენტი ყოველთვის ე.წ. შიგნით იგივე ერთად int ძირითადი ბათილად. თქვენ ყოველთვის გვინდა HTML ღია და მჭიდრო tag ზედა და ქვედა თქვენი კოდი. გსურთ აქვს ხელმძღვანელი შიგნით რომელიც შეიცავს სათაური, უბრალოდ რასაც აპირებს არიან tab თქვენი ვებ გვერდზე და შემდეგ სხეულის შიგნით, რომლის რეალურად არიან შინაარსი რასაც თქვენ გსურთ. ასე რომ, თუ თქვენ სურდა რეალურად აწარმოებს ეს, მე ვაპირებ zoom out უკან. თქვენ შეგიძლიათ რეალურად დაიწყოს apache50 დაიწყოს dot. ზემოთ. ასე რომ, როგორც ხედავთ, ახლა ეს ბმული გამოჩნდა. იგი აცხადებს, რომ თქვენი საიტი არის ხელმისაწვდომია რამდენიმე ბმულს. ასე რომ, ყველა ჩვენი IDE აქვს done-- არ IDE, ბოდიში yeah, ჩვენი IDE გააკეთა არის შექმნათ ვებ ლინკი საფუძველზე, რომელიც ყველა ჩვენი ვებ-გვერდები შეიძლება გამოიყენოთ სერვერზე. მოდით შევხედოთ აქ. მოდით დააჭირეთ ამ, წასვლა hello.html. თქვენ ხედავთ ძალიან მარტივი ვებ-გვერდზე მიესალმები მსოფლიოში. OK. ჩვენ რეალურად აპირებს მხოლოდ აქვს everyone-- ჰო, რა ხდება? აუდიტორია: მე მაქვს ძირითადი საკითხი. Andi Peng: Yup. აუდიტორია: როგორ დაზოგოთ თქვენი ფაილი, როგორც HTML? Andi Peng: ჰო. ასე რომ, თუ მე უნდა შევქმნათ ახალი ფაილი, თუ ამის გაკეთება ფაილის, Untittle, თუ მე, section.html, ბუმი, ეს ყველაფერი მე უნდა გავაკეთოთ. აუდიტორია: [INAUDIBLE]? Andi Peng: No. აუდიტორია: [INAUDIBLE]. Andi Peng: No. აუდიტორია: [INAUDIBLE]. Andi Peng: ჰო. საკმაოდ ბევრი, გაგრძელების შესახებ ფაილი, რომელიც არის თქვენს IDE, რომ ეუბნება კომპიუტერი, ეუბნება ბრაუზერის, hey, გამოიყურებოდეს out. ეს იქნება კოდი ამ ენაზე. ასე მაგალითად, Microsoft Word, რა ყველა Word დოკუმენტების დასრულდება, რა გაფართოება? .doc ან .docx, არა? ყველა, რომ არ არის განსაზღვრავს თქვენი ოპერაციული სისტემის, hey, თქვენ მოხვდით Word დოკუმენტის ახლოვდება. გახსენით ის სიტყვა. იგივე PDFs. ეს იცის, რა, მე უნდა to გახსენით ეს ფაილი ერთად Adobe Reader და Adobe Acrobat. და ასე გაგრძელება მუშაობას ისევე, როგორც თქვენი კომპიუტერის. თუ, თქვენ შეიტანეთ თქვენი კოდი გვერდი უნდა დაასახელა HTML, მაშინ იცის, oh, თქვენ მოხვდით HTML კოდი. მე ვაპირებ მკურნალობა, როგორც html კოდი. ასე რომ, ეს სუპერ ჭკვიანი ამ თვალსაზრისით. ასე რომ ყველას, მოდით, როგორც 10-ე წუთზე და უბრალოდ შექმნათ საკუთარი საიტები. მოდით დაამატოთ ლამაზი რამ. მოგერიდებათ ითქვას რაც გაგიხარდებათ. მე უბრალოდ მინდა რომ დავრწმუნდეთ, რომ ყველას სერვერები გამართულად სანამ ჩვენ გასათავისუფლებლად თქვენ შევიდა pset. იმიტომ, რომ თუ თქვენი სერვერები არ აწარმოებს pset, რომ ეს იქნება ძალიან, ძალიან ცუდია. მე უბრალოდ აპირებს ათწილადი გარშემო და ვნახოთ, რა ყველას მუშაობს. როგორ მიდის საქმეები? აუდიტორია: მე უბრალოდ აღმოჩნდა ჩემს კომპიუტერში. Andi Peng: ეს ​​არის OK. აუდიტორია: [INAUDIBLE]. Andi Peng: უბრალოდ თქვენი IDE. ჰო. აუდიტორია: [INAUDIBLE]. Andi Peng: ეს ​​OK. აუდიტორია: [INAUDIBLE]. Andi Peng: Totally ჯარიმა. ყველას წვდომის მათი სერვერზე OK? არის apache50 გაშვებული OK? მე ვფიქრობ, რომ ზოგიერთი სხვა სექციები, ჩვენ ჰქონდა საკითხები ადამიანი არ რათა მათ შეძლონ სერვერზე. ჰო. ასე, რომ თქვენ უბრალოდ გაუშვით apache50 სივრცეში დაიწყოს სივრცეში პერიოდში. აუდიტორია: [INAUDIBLE]. Andi Peng: Yup. კარგი? აუდიტორია: [INAUDIBLE]. Andi Peng: ოჰ, OK. ასე რომ, თქვენ უნდა აქვს სივრცეში. ასე რომ, apache50-- აუდიტორია: მე. Andi Peng: --start სივრცეში. აუდიტორია: Oh, სივრცე dot. Andi Peng: Yup, სივრცეში dot. ესეც ასე. ასე რომ, თუ თქვენ გაქვთ HTML გვერდი შექმნილია, მაშინ შეგიძლიათ უბრალოდ წასვლა პირდაპირ რომ ბმული, ის განსაზღვრავს. და თქვენ უნდა შეეძლოს წვდომის იგი. ყველას შეძლო წვდომის მათი ვებ გვერდები OK? აუდიტორია: [INAUDIBLE]. Andi Peng: ოჰ, რომ OK. აუდიტორია: [INAUDIBLE]. Andi Peng: ჰო. მე ვფიქრობ, რომ თქვენ შეგიძლიათ რეალურად გახსნა ეს თქვენს ბრაუზერში, ბრაუზერის და არა მხოლოდ თქვენი IDE ბრაუზერში. ჰო, მე ვფიქრობ, რომ თუ დააკოპირეთ და ჩასვით იგი. აუდიტორია: და მერე , როგორ უნდა ჩართოთ იგი? [INAUDIBLE] Andi Peng: ჰო, თქვენ apache50 შეჩერება არ პერიოდში. Yup. აუდიტორია: [INAUDIBLE]. Andi Peng: With ვადა. ჰო. იქ ჩვენ წავიდეთ. Yup. ჩვენ ვქმნით ჩვენს საკუთარ ვებ გვერდებზე. აუდიტორია: Oh, მაგარი. Andi Peng: ჰო. აუდიტორია: მე მაქვს შეკითხვა. ასე რომ, apache 50-- Andi Peng: 50, yeah. აუდიტორია: [INAUDIBLE]. Andi Peng: რა? ეს არის უცნაური. აგრეთვე, რომ იყო ერთგვარი საკითხი რომ ადრე იყო. OK. იხილეთ ჩემს შემდეგ სექციაში. იმიტომ, რომ ჩვენ გარკვეული საკითხები სერვერზე. და თქვენ გინდათ დარწმუნებული ვარ, რომ თქვენს სერვერზე გაშვებული დაწყებამდე pset. იმიტომ, რომ თქვენ აპირებთ უნდა მას. ჰო. არსებობს ვინმეს, რომ არ ყოფილა შეუძლია მიიღოს მათი სერვერზე უნდა დაიწყოს? მათთვის, ვისაც სურს დამატებითი სტილის თქვენი ვებ გვერდები, ჩვენ შეგვიძლია რეალურად რა დავით გააკეთა ლექცია, ისევე, რომელიც შექმნის დამატებით სტილი ფურცელი, რომელიც არის dot CSS, კასკადური სტილი ფურცელი და რეალურად მხოლოდ დაამატოთ ეს. ასე მაგალითად, მე მხოლოდ ის საკმაოდ ბევრი თითქმის ზუსტად იგივე ერთი დავით გააკეთა ლექცია. თქვენ შეგიძლიათ საკმაოდ ბევრი მხოლოდ ამის ორგანო. თქვენ რა ეწოდება tags რომელიც თქვენ შეგიძლიათ ვრცელდება IDE რასაც განყოფილებაში გსურთ თქვენი აქტუალური HTML გვერდი. ასე რომ, სხეულის გვერდზე, თქვენ შეგიძლიათ გააკეთოთ ტექსტის გასწორება ცენტრი. და მაშინ მე შემოქმედებითი ტეგით მოუწოდა ზედა შიგნით რაც მე მინდა ეს ყველაფერი მოხდება, მივანიჭოთ დიდი pixel ზომა იმ შრიფტი. მე მინდა, რომ შრიფტის წონა უნდა იყოს გაბედული. და მე მინდა ფერი იყოს ლურჯი, მხოლოდ თვითნებური ღირებულებები, რომ მე გადავწყვიტე, რომ აირჩიოს. მე შეიძლება შეიქმნას სხვა tag უწოდებენ შუა. ფონტის ზომა, რათა ის ცოტა პატარა. და მერე შეიძლება შეიქმნას სხვა tag მოუწოდა ბოლოში, სადაც მე მინდა შრიფტის ზომა იყოს თუნდაც პატარა მაინც. ასე რომ, საკმაოდ ბევრი ეს არის უბრალოდ მაგალითი კოდის ან წყაროს სტილის ფურცლები ის, რომ ძალიან ადვილია უბრალოდ Google. თუ ამბობენ, რა, მე მინდა ჩემი font უნდა კურსივით და მუქი მწვანე, თქვენ ალბათ შეუძლია Google, და მაშინ გეტყვით, შესაბამისი tags და პირადობის მოწმობები, რათა შეიქმნას. ასე რომ, ისე, რომ თქვენ რეალურად სახის აქვს ამ HTML დოკუმენტი ან გამოიყენოს იგი არის ყველა თქვენ უნდა აქ არის ხელმძღვანელი დაამატოთ ბმული სტილის ფურცელი. ასე რომ, შეგიძლიათ უბრალოდ შეიცავენ href შეადგენს რასაც სახელი თქვენი სტილის ფურცელი არის. და მაშინ ურთიერთობისათვის არის სტილის ფურცელი. ასე რომ, არანაირი HTML დოკუმენტი, მანამ, როგორც თქვენ მოიცავს ამ dot CSS ფურცელი, თქვენ უნდა შეეძლოს, რათა შეამოწმონ და აქვს თვისებები არსებობს. ასე მაგალითად, აქ მე უბრალოდ შექმნა კიდევ ერთი მაგალითი ვებ გვერდზე. ეს არის მისასალმებელი CS50 განყოფილებაში სამშაბათს 2:00 to 3:30 ჩემთან ერთად. და მერე დასძინა ლამაზი სურათი, რომელიც ჩვენ პოტენციურად უნდა ნახოს. ასე რომ, თუ თქვენ შეხედეთ აქ, თუ წასვლა style.html, ჩვენ შევქმენით ვებ-გვერდი kittens. იმის გამო, რომ kitten გასაოცარია. ასე რომ, დასძინა იმიჯი მხოლოდ img src ბმული. საკმაოდ ბევრი, თუ არსებობს რაიმე ფუნქცია გსურთ დაამატოთ თქვენი website-- ასე ვთქვათ, გსურთ დაამატოთ მენიუ ან ძებნის ბარი ან მოსწონს image-- მხოლოდ Google, თუ როგორ უნდა გავაკეთოთ, რომ. თქვენ უბრალოდ plop ამ ფორმატში. და თქვენ შეგიძლიათ უბრალოდ საკმაოდ ბევრი უბრალოდ დაამატოთ ეს. მართლაც, მართლაც მარტივია. ჩვენ ვქმნით ჩვენს საკუთარ ვებ გვერდების ახლავე. თუ გსურთ, რომელთა მიზანია: აუდიტორია: [INAUDIBLE] Andi Peng: ბოდიში? აუდიტორია: [INAUDIBLE]. Andi Peng: ოჰ, div მხოლოდ დაყოფა მეუბნებოდა, რომ, რა, მე მაქვს გარკვეულ მონაკვეთზე ე.წ. შუა რომელშიც მე გამოყენებით ჩემი CSS tag, და მაშინ ჩემი სხვა სამმართველოს ბოლოში. ეს არის ყველა ის გეუბნებით. იმის გამო, რომ ეს კარგია, შენარჩუნება რამ სუფთა მიზნით, ასე პროგრამა იცის, თუ როგორ ზუსტად აწარმოებს. და ვფიქრობ, შეიძლება ასლი ჩასვით ეს ჩემი ფაქტობრივი ბრაუზერის ასევე. ეს უნდა იყოს ჯარიმა. ჰო. საზაფხულო. ასე რომ, თუ ყველას სურს მხოლოდ შეეცდება შექმნას ვებ გვერდზე, ჩვენ მიიღოს კიდევ ერთი ორი სამი წუთის განმავლობაში. მე უბრალოდ გვინდა დავრწმუნდეთ, ყველას სერვერები გაშვებული და ყველას აქვს იდეა, თუ როგორ უნდა გავაკეთოთ, რომ. თუ თქვენ ბიჭები მინდა აიღოს თქვენი კომპიუტერი. ჯერ კიდევ არ მუშაობს? აუდიტორია: მე უბრალოდ [INAUDIBLE]. Andi Peng: იქნებ ცდილობენ განახლება 50 ასევე. ჰო. აუდიტორია: [INAUDIBLE]. Andi Peng: ჰო. ასე რომ, ისე, რომ თქვენ დაიწყოს ახალი ვებ სერვერზე IDE მხოლოდ ამის apache50 სივრცეში დაწყების სივრცეში dot. მე უბრალოდ მინდოდა დარწმუნდით ყველას სერვერები გაშვებული OK. აუდიტორია: აქ, ტერმინალში? Andi Peng: ჰო. აუდიტორია: [INAUDIBLE]. Andi Peng: Apache. სინამდვილეში, მე ვფიქრობ, თქვენ გაშვებული რაღაც უკვე. ჰო, თქვენ რეალურად გაშვებული სხვადასხვა სერვერზე. ჰო, თქვენ კარგი. რადგან, რომ მუშაობს, თქვენ OK. აუდიტორია: OK. Andi Peng: არსებობს ორი გზები გასაშვებად სერვერები. ასე რომ, სანამ ერთ-ერთი გზა მუშაობს, ეს ყველა უფლება. ჩვენ მიიღოს კიდევ ერთი წუთი უბრალოდ სახის დასრულდება up დასრულების გრძნობს, რაც ვებ გვერდზე თქვენ ბიჭები სურდა, რათა. ყველას სამუშაო სხვათა შორის? ყველას სერვერები გაშვებული გარდა for თქვენი? ჩვენ გაერკვნენ, რომ. და HTML ის საკმაოდ მარტივია. ასე რომ, მე ვფიქრობ, რომ ჩვენ ყველა კარგი. ჰო. მე დავბრუნდები. აუდიტორია: [INAUDIBLE]. Andi Peng: OK. აუდიტორია: ასე რომ, ეს მხოლოდ დაიწყო ჩატვირთვა up. Andi Peng: არ აწუხებს. ასე რომ, HTML, იქ კოდის რომ იქნება ონლაინ შემდეგ სექციაში. გარდა ამისა, დავით აქვს მთელი bunch ონლაინ ისევე. უბრალოდ სახის შეხედვით მას ვნახოთ, როგორ HTML გვერდები იწერება. ეს საკმაოდ მარტივია. არაფერი თქვენ არ იცით, თქვენ საკმაოდ ბევრი უბრალოდ Google და თქვენ კარგი. მე უბრალოდ მინდა რომ დავრწმუნდეთ, რომ თქვენი სერვერები გაშვებული. აუდიტორია: იგი ამისათვის ხშირად? Andi Peng: ეს ​​არასოდეს მოხდა ჩემთან. მე არ ვიცი, ეს შეიძლება კიდევ hibernate. აუდიტორია: [INAUDIBLE]. Andi Peng: მე ვფიქრობ, რომ everyone-- ნაღმი არასოდეს hibernated ადრე. და მე არ ვიცი, რატომ. ეს არის უცნაური. აუდიტორია: [INAUDIBLE]. Andi Peng: შენია ზამთრის ძილს? აუდიტორია: [INAUDIBLE]. Andi Peng: ჰო. აუდიტორია: ეს არის OK. ასე რომ, კიდევ ის ღია. Andi Peng: OK. ჩვენ გამკლავება ზოგიერთი სერვერზე საკითხები შემდეგ სექციაში. თქვენ უნდა იყოს ჯარიმა. მიუხედავად იმისა, რომ თქვენ გვინდა დავრწმუნდეთ, რომ თქვენ მისაღებად მათ გადაწყდეს, სანამ დატოვოს. იმიტომ, რომ თუ თქვენს სერვერზე არ არის გაშვებული, მაშინ თქვენ არ იქნება გამოუვა pset, როგორც ნებისმიერი ნაწილი pset. ასე, რომ თქვენ უნდა დავრწმუნდეთ, , რომ მუშაობს. ზემოთ. ყველა უფლება. დავემშვიდობოთ kittens. გავატარე დიდი ხანია ეძებს რომ kitten სურათი დააყენა. ასე რომ, მაინც. აუდიტორია: [INAUDIBLE]. Andi Peng: ბოდიში? აუდიტორია: [INAUDIBLE]. Andi Peng: მე ვფიქრობ, რომ ვებ-გვერდზე. ისევე, როგორც სპეც? აუდიტორია: [INAUDIBLE]. მე ვფიქრობ, რომ სპეც მხოლოდ ონლაინ კვირაში შვიდი. მე ვფიქრობ, რომ ეს ე.წ. pset6, მაშინაც კი, მიუხედავად იმისა, რომ ჩვენ ამ კვირაში შვიდი, რომელიც ცოტა computing. აუდიტორია: მაგრამ მე ვგულისხმობ, თუ თქვენ გვინდა შევხედოთ, თუ გვინდა, რომ გაიყვანოს ჩვენი ვერსია საიტზე ჩვენი sever? ასე რომ, როგორც server.c არის pset, არა? თუ გსურთ შევხედოთ ამ, როგორიცაა, თუ როგორ ამოწმებს? Andi Peng: ოჰ, ასე რომ, რეალურად pset, ყველა ვაკეთებთ აქ implementing-- აქ, მე წასვლა ეს მოკლედ. ასე რომ, ყველას, რომ მხოლოდ მიღებული განყოფილებაში თქვენ ბიჭები არიან ამ წარმატებას. არსებობს ძალიან მცირე მასალა რეალურად დასაფარავად დღეს. მე უბრალოდ აპირებს დახარჯოს შემდეგი 20-ე წუთზე აპირებს მეტი pset დახმარება. იმის გამო, რომ რამდენიმე სასარგებლო ფუნქციები, რომელიც დაეხმარება თქვენს ცხოვრებაში. და იმედია, ჩვენ ვიქნები აქ, როგორიც 20-ე წუთზე. OK. ასე რომ, pset7 არასწორია. მიუხედავად იმისა, რომ ჩვენ ამ კვირაში შვიდი, სინამდვილეში pset6. მე შეცვლის. ყველა ვაკეთებთ, pset6 ქმნის სერვერზე. ეს ხმები სუპერ საშინელი. და განსაკუთრებით მათთვის, თქვენ, რომლებიც უკვე შევხედე განაწილების კოდი, არსებობს ბევრი კოდი, ბევრი კოდი. მაგრამ სრულიად OK. იმის გამო, რომ nitty gritty ნაწილი რეალურად შექმნის სერვერზე კეთდება ჩვენს მიერ. ყველა თქვენ ნამდვილად სთხოვა უნდა გავაკეთოთ ამ pset უბრალოდ უნდა გავაკეთოთ ზოგიერთი სიმებიანი მანიპულირება ფაილი I / O. ეს, ფაქტობრივად, ისევე როგორც საკმაოდ მარტივია. ასე რომ, როდესაც თქვენ პირველი ჩამოტვირთოთ that-- რომელიც აქ, ფაქტობრივად, უკვე გადმოწერილი pset და მიღებული სახე? ყველა უფლება. ჰო. არსებობს, როგორც 500 ხაზების კოდი რომ თქვენ იქნება, როგორიც, რა ხდება? და ეს სრულიად ჯარიმა. დარწმუნდით, რომ თქვენ უყუროთ მსვლელობა throughs. იმის გამო, რომ დავით and-- მე არ ვიცი. მე არ ვფიქრობ, რომ ეს Zamyla ის, ეს ერთი. მაგრამ, ვფიქრობ, რამდენიმე სხვა ფეხით throughs საკმაოდ სასარგებლო თვალსაზრისით უბრალოდ გაქირავების თქვენ იცით, რა ხდება შიგნით თქვენი კოდი. და ეს სრულიად OK. იმის გამო, რომ ოთხი ფუნქციები, რომ თქვენ კითხვაზე, განახორციელოს რეალურად ნულოვანი უნდა გააკეთოს ფაქტობრივი სერვერზე. ყველა ისინი უნდა გავაკეთოთ არის parsing სხვადასხვა სტრინგი, ძებნას სიმები, დარწმუნდით რამ ვაკეთებთ რა ისინი უნდა აკეთებს. ასე რომ, რომელიც, ფაქტობრივად, არ არსებობს ძალიან, ძალიან სასარგებლო ფუნქციები, განსაკუთრებით string მანიპულირება, რომ ჩვენ უნდა წასვლა გამო, რომ მეგონა, მე მინდა ძალიან სასარგებლო იქნება თქვენთვის ბიჭები ვისწავლოთ ადრე ცდილობს pset. და ისინი ყველა შეიცავს თქვენი string.h ბიბლიოთეკა. არსებობს, ალბათ, უფრო სასარგებლო ფუნქციები მე არ შედის აქ, იმიტომ, რომ მე არც არასდროს არ გამოიყენოთ მათ და ალბათ მე უბრალოდ არ იცოდნენ, რომ არსებობს. მოგერიდებათ ერთი შეხედვით საშუალებით student.h. იმიტომ, რომ იქ იქნება ბევრი ფუნქციები, რომელიც ძალიან სასარგებლო. ასე რომ, ექვსი, რომ მე საუკეთესო ჩემი pset როცა აკეთებდა, რომ ამ უკანასკნელი კვირის მანძილზე იყო strtok, strchr, strrcher, strstr, strcasecmp და strcpy. ასე რომ, ბოლო ორი შეიძლება, როგორც ჩანს საკმაოდ ნაცნობი საუკეთესო თქვენ. ქ შემთხვევაში შედარება, ყველა ის არ არის შედარების strings შემოწმება მათ თანასწორობის, მათ შორის სიტუაცია. და strcpy მხოლოდ ასლები ერთი სტრიქონი შევიდა ბუფერული. ასე რომ, ამ ორი უნდა, როგორც ჩანს ძალიან ნაცნობი თქვენ ბიჭები ამ ეტაპზე. იმის გამო, რომ ჩვენ გამოყენებული მათ ბევრი, განსაკუთრებით ბოლო psets. მაგრამ პირველი ოთხი ალბათ თქვენ არ მინახავს დღემდე. მაგრამ მე ვაპირებ უბრალოდ გავლა მათ. იმის გამო, რომ ისინი აპირებენ, რომ თქვენი ცხოვრება მართლაც, მართლაც ადვილია for-- ადვილი არ არის, მაგრამ ბევრად უფრო ადვილია ამ მომავალი pset. OK. ასე რომ, char * strtok, ეს არის ფუნქცია განმარტება ამ ფუნქციას შეიცავს ფარგლებში სიმებიანი, თ ბიბლიოთეკა. თუ თქვენ გეძლევათ შეტანის char * ტექსტი, რომელიც მხოლოდ სიმებიანი, ან მუდმივი char * deliminator, delim მოკლე, ყველა ის აკეთებს არღვევს დიდი სიმებიანი შევიდა რიგი, რაც ჩვენ მოვუწოდებთ სიმბოლოს გამოყოფილი გარკვეული მნიშვნელობა. ასე რომ, ამ თვალსაზრისით, თუ მე უნდა მისცეს თქვენ section.7.php, ეს არის ტექსტი. ასე რომ იქნება, თუ მე უნდა გაიაროს ამ, როგორც ჩემი ქუჩა, ჩემი char * ქუჩაზე, თუ ჩემი deliminator იყო dot, ეს ყველაფერი ყველაფერს გააკეთებს, ძებნის მეშვეობით სიმებიანი. და პირველად ხედავს dot, იგი დააბრუნებს მაჩვენებელი ბოლო ნიშნად გამოჩენას სიმებიანი ადრე. ასე რომ, წავიდეთ უფლება აქ. და ეს უბრალოდ მომეცი 7.php. და თუ ვიყავი მოვუწოდებთ ფუნქციონირებს კიდევ ერთხელ, ეს იქნებოდა მომეცი მხოლოდ .php. ასე რომ, ყველა ამ ფუნქციას აკეთებს ჩაშლის დიდი სიმებიანი მცირე strings დამოკიდებულია თუ რას ეძებს. ასე რომ, მაგალითად, თქვენი სახე მდე ფუნქცია თუ გვინდა, რომ შევხედოთ, თუ რა გარკვეული სიმბოლოების მოდის შესახებ ან თუ წერტილები მოხდეს ან გაგრძელება მოხდება, ეს ფუნქცია იქნება საკმაოდ სასარგებლო. ჰო. არ აწუხებს. ეს იქნება ყველა be-- ჰო, რა ხდება? აუდიტორია: ასე რომ, პირველ ზოლში, თუ ჩვენ გამოყენებით, მაგალითად, რა იქნებოდა, ჩვენ ჩადეთ რომ? Andi Peng: ჰო. თქვენ უბრალოდ დარეკეთ strtok სიმებიანი მძიმე delim. და სიმებიანი ტოლია section.7.php. და მაშინ თქვენ delim უდრის უბრალოდ dot. აუდიტორია: OK. Andi Peng: ჰო. უბრალოდ ასე. ყველა ეს ფუნქცია საკმაოდ მსგავსი, როდესაც ჩვენ გავლა მათ. ისინი უბრალოდ ოდნავ განსხვავებული რამ. მაგრამ ისინი ყველა აპირებს თქვენი ცხოვრება ბევრი ადვილია. მეორე ფუნქცია, ეს ერთ-ერთი ის მსგავსად სუპერ, სუპერ, სუპერ მნიშვნელოვანია, არის the-- გამართავს. Oops. Strchr ეძებს პირველი occurrence-- რეალურად, yeah. Strchr ფუნქცია მე ნამდვილად უბრალოდ წავიდა. ასე რომ, იგნორირება, რაც მე ვთქვი პირველი ფუნქცია. ეს რეალურად მოუწოდა strchr. ასე რომ, რა მოხდა აქ არის თუ თქვენ გადაეცათ სიმებიანი char c, ეს იქნებოდა მხოლოდ მისცეს თქვენ რასაც არ უნდა იყო. ჰო. ასე რომ, ვფიქრობ, რომ ეს ქუჩა, რომელიც სიმებიანი და chr როგორც char. ასე რომ, ყველა თქვენ ცდილობთ გააკეთოთ ძებნის სად char არის ფარგლებში სიმებიანი. ასე რომ, ის ეძებს პირველი კლების ხასიათი გ სიმებიანი ქ. აუდიტორია: [INAUDIBLE]. Andi Peng: Yup. და მაშინ, თუ ეს არ იპოვოს ის, რომ ეს დაბრუნებას აპირებს NULL. ასე რომ, ის, რაც ხდება, ძალიან სასარგებლო თქვენ ბიჭები აკეთებს pset თუ, ვთქვათ, თქვენ ეძებდნენ გაფართოება, როგორც .docx ერთი სიტყვა დოკუმენტი ან .pdf for PDF დოკუმენტის, თქვენ შეგიძლიათ სახის გამოიყენოთ იგი უნდა გამოიყურებოდეს სხვადსხვა არის, რის შემდეგაც ყოველ დროს, თქვენ დაინახავთ dot, არა? ასე რომ, საკმაოდ ბევრი, თუ აწარმოებს, რომ ფუნქცია, იმ შემთხვევაში, თუ ის დააბრუნებს NULL, მაშინ თქვენ იცით, რომ ეს ვერ მიაგნეს dot, რაც იმას ნიშნავს, რომ ეს აშკარად არ არის სწორი ფაილის გაფართოება. ან თუ ის დააბრუნებს რაღაც, მაშინ თქვენ იცით, ის დაბრუნებას აპირებს, რასაც ის რეალურად, მას შემდეგ, გაფართოება. ასე რომ, იმ თქვენ, რომლებიც ჰქონდა დაიწყო გადახედეთ ძიება და გარჩევის, ამ ფუნქციის იქნება სუპერ სასარგებლო. ასე რომ, ჩვენ რეალურად აპირებს იმის დემონსტრირება გამოყენებისას. რატომ არ ბიჭები ცდილობენ წერა ფუნქცია bool სასჯელის char * s, რომ მხოლოდ ბრუნდება ნამდვილი თუ არის სასჯელი და ცრუ სხვაგვარად. ასე რომ, მინიშნება, თქვენ აპირებს ალბათ გამოიყენოთ strchr. ან უბრალოდ ძიება წელს სიმებიანი ამისთვის გარკვეული ხასიათი. ასე რომ, სასჯელი, რა ჰყოფს სასჯელი საწყისი არასამთავრობო სასჯელი, რა კონკრეტული ხასიათი? აუდიტორია: სივრცეში. Andi Peng: სივრცე, არა? და მერე რა ჩვენ ალბათ აპირებს მინდა ამის გაკეთება ამ ფუნქცია აქ? აუდიტორია: [INAUDIBLE]. Andi Peng: ჩვენ ვაპირებთ, რომ გვინდა strchr სიმებიანი გამოჩენა სივრცეში. იმიტომ, რომ თუ ის დააბრუნებს რაღაც, მაშინ ჩვენ ვიცით, რომ ეს უნდა იყოს სასჯელი. ეს იმას ნიშნავს, რომ ჩვენ უნდა სივრცე ამ სიმებიანი. თუ არ არსებობს სივრცე, მაშინ ჩვენ ვიცით, რომ, hey, ვფიქრობ, ეს არ არის სიმებიანი. ეს, ალბათ, უბრალოდ მართლაც დიდი სიტყვა. ასე რომ, მე მივცემ თქვენ ბიჭები რამდენიმე წუთის დაწერა ამ ფუნქციას. ჰო. აუდიტორია: თუ ვერ ამ ნახატზე შესახებ? Andi Peng: ჰო. ასე რომ, ეს მხოლოდ ფუნქცია. წარმოიდგინეთ შიგნით თქვენი მთავარი ფუნქცია თქვენ უკვე ფლობის მოდით წავიდეთ აქ. OK. ამიტომ მე დაწერილი ეს პროგრამა, რომელშიც მე მაქვს ჩემი მთავარი ფუნქცია, სადაც მე მხოლოდ ის ორი სიმები. პირველი ის არის, Hi, ჩემი სახელი არის Andi-- ნათლად, სასჯელი. ჩემი მეორე ერთ-ერთი არის Andi, აშკარად არ განაჩენი. ასე რომ, მე გაშვებული ორივე strings მეშვეობით ამ ფუნქციას. მე მინდა თქვენ ბიჭები წერენ ცივი სასჯელი. და მე შენახვის იმ ღირებულებებს, და შემდეგ უბრალოდ ბეჭდვის მათ. ასე რომ, ვფიქრობ, რომ მომხმარებელს აპირებს გაიაროს სიმებიანი. და მაშინ ვაპირებთ არსებითად გაერკვნენ, თუ ის სასჯელი და არა და დაბრუნდეს ჭეშმარიტი ან ცრუ შესაბამისად. თუ ბიჭები მინდა thumbs up და ხელმძღვანელები, უფროსი nod, არის ვინმე მზად არის დაიწყოს ეს, რომ მინდა იყოს კარგი. შესაძლოა, 30 წამი? ყველა უფლება. მოდით ვნახოთ, თუ შეგიძლიათ ცდილობენ წერა ამ ფუნქციას. ასე რომ, ფსევდო კოდირების მე უბრალოდ აპირებს სახის გავლა ახლა. საკმაოდ ბევრი, ჩვენ ვიცით, ფუნქცია, რომელიც ჩვენ უნდა გამოვიყენოთ. ჩვენ ვაპირებთ, რომ მოვუწოდებთ, რომ ფუნქცია ჩვენი სიმებიანი და ძებნის სივრცეში. თუ ის დააბრუნებს რაღაც, მაშინ ჩვენ უნდა ვიცი, რომ, ცხადია, ეს არის სასჯელი. იმის გამო, რომ ფართები. მაშინ ჩვენ ვაპირებთ დაბრუნებას ჭეშმარიტი. სხვას, ჩვენ ვაპირებთ დაბრუნებას ყალბი. ვინმეს სურს მისცეს ჩემთვის პირველი ხაზი კოდი რომ ჩვენ რეალურად აპირებს გამოიყენოთ დაწერა ეს? ეს, ფაქტობრივად, უმძიმესი ხაზი კოდი, ისევე. ჰო. აუდიტორია: თუ strtok s-- Andi Peng: Just strchr. აუდიტორია: [INTERPOSING ხმები] სივრცე არ არის ტოლი null. Andi Peng ზემოთ. სწორედ. ყველას გვესმის, რომ პირველი ხაზი? ჩვენ ვაპირებთ, რომ მოვუწოდო strstr, რომელიც არის ფუნქცია, რომელიც ეძებს სიმებიანი ამისთვის char სივრცეში. და თუ ის თვლის, რომ ის აპირებს დააბრუნოს მომცეთ სადაც რომ არის. თუ ეს არ მიაგნეს, ის დაბრუნებას აპირებს NULL. ასე რომ, თუ ის დააბრუნებს არაფერი, გარდა NULL, მაშინ ჩვენ ვიცით, ი სივრცეში. ამას რამე აზრი აქვს? ზემოთ. ყველა უფლება. ასე რომ, თუ ჩვენ ვიცით, რომ ნაპოვნი სივრცეში, რას უნდა გავაკეთოთ? აუდიტორია: დაბრუნება ჭეშმარიტი. Andi Peng: Yup. TRUE. და მაშინ, ვინმე გვინდა დასრულდება up ფუნქცია ჩემთვის? ჰო. სხვაგან, ისევე, როგორც, რომ. და ცდილობენ შედგენის ამ. Yup. ასე რომ, როგორც თქვენ ბიჭები ვხედავთ შედეგები, მახსოვს Booleans დო ყოველთვის იმის ორობითი. 1 მართალია. 0 სიცრუეა. თუ ჩვენ უნდა აწარმოებს ამ ფუნქცია string ერთი, რომელიც არის Hi, ჩემი სახელის Andi-- ცხადია, sentence-- შედეგი ამობეჭდილი 1, რომელიც არის ჭეშმარიტი. მეორე, რომელიც მხოლოდ ერთი სიტყვით, შედეგზე დაბეჭდილი გარეთ 0, რაც სიმართლეს არ შეესაბამება. ყველას ნათელი სახის, თუ როგორ ეს ფუნქცია იყო დაწერილი? ჰო. აუდიტორია: ჩვენ ასევე გააკეთოს, ნაცვლად არ გაუტოლდება არ უდრის უდრის 0, ასე რომ, ის ტოლია? Andi Peng: No. იმის გამო, რომ strchr ფუნქცია. მე ვაპირებ უკან ამ. რა არის დაბრუნების ტიპის ჩვენი strchr ფუნქცია? აუდიტორია: Oh, OK. ან NULL. Andi Peng: ჰო. ეს არის char *, რომელიც მეუბნება, რომ რაც არ უნდა ამ ფუნქციის დაბრუნებას აპირებს, ეს იქნება მომცეთ. ან მაჩვენებელი იქნება მიუთითებს, სადაც ის ი, ან ის დაბრუნებას აპირებს მომცეთ null. ორივე გარემოება, ის აპირებს დაბრუნების მაჩვენებელი რაღაც. ასე რომ, თუ თქვენ აიგივებს ეს შეადგენს, ტოლობის, 0, თქვენ აპირებთ მისაღებად კოლექცია შეცდომა. იმის გამო, რომ ის აპირებს დაბრუნების მაჩვენებელი. და თქვენ აპირებს ცდილობენ შედარების მაჩვენებელი რიცხვი. კომპიუტერი და არ არის აპირებს, რომ. ჰო, ზუსტად. ზემოთ. ყველას კარგი? და მეორეც, ჩვენ ვაპირებთ წავიდეთ მეტი ფუნქცია მოუწოდა strstr. არ აწუხებს, თუ ეს ფუნქციები გაუგებარია თქვენ. ისინი გაუგებარია ჩემთვის. როგორც ასეთი, თქვენ ბიჭები მინახავს, მათ ყველა გასწავლოთ საკმაოდ ბევრი იგივე. უბრალოდ, როდესაც თქვენ დაბნეული, დახევის up string.h ბიბლიოთეკა. და შენ შეიძლება დასალაგებლად რომლის მეშვეობითაც ერთი რომელიც. ასე რომ, strstr, ყველა რომ არ არის მოძებნილი სიმებიანი მთელი სხვა სიმებიანი. ასე რომ, სადაც strchr უბრალოდ ძიება ერთჯერადი ხასიათი, strstr ეძებს მთელი სიმებიანი. ამიტომ მინდოდა გამოიყურება, მე არ ვიცი, Hi, ჩემი სახელი არის Andi. და ჩემი საუკეთესო მეგობრის სახელი არის ასევე Andi. თუ მინდოდა ვეძებოთ ამ სასჯელის მთელი სიტყვა Andi, ჩემი ნემსი იქნებოდა რასაც თქვენ ეძებთ. და თქვენი haystack არის რასაც თქვენ ვეძებთ მას. ასე რომ, თუ თქვენ ეძებს კონკრეტული სიტყვის სასჯელი, რომ სიტყვა იქნება თქვენი ნემსი. და მაშინ სასჯელი თავად იქნება თქვენი haystack. ასე რომ, ეს უბრალოდ ეძებს პირველად დადგომიდან სიმებიანი ნემსი სიმებიანი haystack. ეს დააბრუნებს მომცეთ პირველად დადგომიდან. გარდა, გახსოვდეთ, ამ შემთხვევაში, ის პირველად დადგომიდან მთელი სიმებიანი რომ თქვენ ეძებს ამისთვის, არა მხოლოდ ხასიათი. ასე რომ, ეს არის თითქმის იგივე, რაც ფუნქცია ჩვენ უბრალოდ, მხოლოდ ცოტა უფრო სპეციფიკა. იმის გამო, რომ თქვენ ეძებს მეტი, ვიდრე უბრალოდ ერთი ხასიათი. და გამოყენება არის ზუსტად იგივე როგორც ერთი, რომ ჩვენ გავაკეთეთ. ყველას OK ეს? OK. ბოლო ერთი ჩვენ ვაპირებთ წასვლა მეტი არის strrchr, რომელიც არ არის დაბნეული strstr ან strchr. strrchr აქვს ზედმეტი r არსებობს. ფრთხილად, როდესაც თქვენ აკრეფით. თქვენ შეიძლება აღმოჩნდეთ, მათ შორის დამატებითი r თუ არა მათ შორის r, და შემდეგ თქვენი ფუნქცია მიიღო არ იმუშავებს. და თქვენ იქნება დაბნეული. ფრთხილად, რომ თქვენ მართლწერის ყველა ამ ფუნქციების უფლება. ასე რომ, strrchr ზუსტი იგივე, როგორც strchr გარდა ის ეძებს არა პირველი კლების კონკრეტული ხასიათი, არამედ ბოლო გააკეთეს. ასე რომ, ამ თვალსაზრისით, ეს არის თითქმის ზუსტად იგივე. მაგრამ ნაცვლად მოძრავი ველით სიმებიანი, თქვენ აპირებს მოძრავი უკან სიმებიანი. ზუსტად იგივე, თქვენ მხოლოდ ეძებს სხვადასხვა მიზნით. ასე რომ, ეს შეიძლება იყოს სუპერ, სუპერ სასარგებლოა თქვენი ძიება ფუნქცია, პირველი ფუნქცია თქვენი pset. მოდით ვიტყვი, რომ ჩვენ საჭირო დაწერა ფუნქცია ბათილად გაგრძელებას, რომელშიც ჩვენ გაივლის მუდმივი char * ფაილის სახელი, უბრალოდ, სიმებიანი, ფაილის სახელი, რომ იღებს, რომ სახელი და ბეჭდავს out გაგრძელების ფაილი. ასე მაგალითად, თუ მე უნდა გაივლის სიმებიანი pset7.zip, ის აპირებს ამობეჭდოთ მხოლოდ გაფართოება, რომელიც .zip. და ეს იმუშავებს ნებისმიერ გაფართოება, .DOCX for Word ან .pdf ამისთვის PDF შეიტანოს ან .html for HTML ფაილი. საკმაოდ ბევრი, დაწერა ფუნქცია, რომელიც შეგიძლიათ გააკეთოთ, რომ. მე რეალურად აპირებს გადართოთ მეტი IDE. ეს არ არის load-- იქ ჩვენ წავიდეთ. ასე რომ, ყველა მე ვაკეთებ აქ არის შექმნა char *, პირველი ტექსტი, მოუწოდა pset7.zip. მე ვაპირებ, რომ მიუახლოვდით. მე შეიქმნა მეორე სტრიქონი მოუწოდა finalpaper.docx. და დაწერა ჩემთვის ფუნქცია რომ როცა მოუწოდა აპირებს უბრალოდ ამობეჭდოთ ფაილის სახელი გაგრძელება. შესაძლოა მიიღოს რამდენიმე წუთში, ვფიქრობ, შესახებ, თუ როგორ ვაპირებთ ამის გაკეთება. ოდნავ უფრო რთული ვიდრე ბოლო ერთი, მაგრამ გამოყენება თითქმის ზუსტად იგივე. ჰო. ასე წერენ ფუნქცია მოუწოდა გაფართოება რომ, თუ მე გაძლევთ სახელით ფაილი, თუ მე მოგცემთ pset7.zip-- მე მინდა ამობეჭდოთ მხოლოდ .zip. თუ მე ვაძლევ გსურთ finalpaper.docx, უბრალოდ ამობეჭდოთ .docx, უბრალოდ გაგრძელების რასაც ფაილი. ეს რეალურად მხოლოდ იღებს ორი ხაზი კოდი. ამიტომ ცდილობენ, რომ თუ შეგიძლიათ იქნებ გავაკეთოთ, რომ. სინამდვილეში, ეს მხოლოდ იღებს ერთი ხაზი კოდი. მაგრამ ორი ხაზი, ალბათ, უფრო სტანდარტი. რა ფუნქცია ჩვენ, ალბათ, აპირებს მინდა მოვუწოდო? აუდიტორია: strrchr. Andi Peng: strrchr, მარჯვნივ. იმის გამო, რომ ჩვენ ვეძებთ თავი მარჯვენა მარცხენა. მე არ მივცემ თქვენ ბიჭები მაგალითად, როგორც ეს, მაგრამ თუ მივეცი თქვენ მაგალითად, როგორიცაა www.apple.com და მე უბრალოდ მინდოდა .com, ეს მინდა იყოს მაგალითი, სადაც მინდა მოვუწოდო ბოლო ინსტანცია ერთი პერიოდი და არ არის პირველი, არა? თუ იყო ზარი strchr, ეს მაქვს მოცემული apple.com. თუ თქვენ მოუწოდა strrchr, ეს მისცემდა თქვენ .com. ასე რომ, ფრთხილად, რომელიც ways-- ჩემი მაგალითად, თქვენ შეიძლება ალბათ შეეძლო მხოლოდ წერილობითი ის გამოყენებით strchr, მას შემდეგ, რაც იქ მხოლოდ ერთი dot. მაგრამ სხვა შემთხვევაში, რომ არ შეიძლება იყოს საქმე. ასე რომ, ყოველთვის ვცდილობთ, რათა შეიმუშავონ თქვენი კოდი კარგად, ასე რომ that-- yeah? აუდიტორია: ასე რომ, მაგალითად, თქვენ უბრალოდ განაცხადა, როდესაც თქვენ strrchr, რომ ის გაძლევთ .com ან უბრალოდ მოვიდეს? Andi Peng: ეს ​​გაძლევთ .com. აუდიტორია: OK. Andi Peng: ჰო. ეს მიუთითებს, სადაც ის ი. ჰო. 30 წამში იქნებ? ჰო. ყველას კარგი ან იქნებ ცოტა მეტი დრო? ჩვენება ხელში? ჩვენება ხელმძღვანელები? ზემოთ. ყველას მინდა ჩემთვის პირველი ხაზი კოდი ამ პროგრამის? აუდიტორია: [INAUDIBLE]. Andi Peng: ასე რომ, პირველ რიგში, მოდით იქნებ დაარღვიოს ეს ქვემოთ. რა არის დაბრუნების ტიპის strrchr? მოდით დავუბრუნდეთ. strrchr, რა არის დაბრუნების ტიპის? აუდიტორია: ჩარ * Andi Peng: ეს ​​არის char *, არა? რაც იმას ნიშნავს, რომ თქვენ ალბათ აპირებს შევქმნა სხვა char * სახის მაღაზია როდესაც ეს დაბრუნების, არა? იმიტომ, რომ თუ თქვენ მოვუწოდებთ ფუნქცია strrchr, ის აპირებს მოგცემთ მომცეთ იქ, სადაც გაირკვა, რომ ბოლო პერიოდში, არა? მაგრამ თქვენ აპირებს მინდა შესანახად, რომ სადღაც, არა? ასე რომ, როგორ უნდა კოდექსში ეს ჩვენი პროგრამა? აუდიტორია: თქვენ char * [INAUDIBLE]. Andi Peng: Yep. აუდიტორია: [INAUDIBLE]. Andi Peng: strrchr. ჰო. ოჰ, გაუშვა r არსებობს. აუდიტორია: ფაილის სახელი [INAUDIBLE]. რა არის ეს? ოჰ, ეს უბრალოდ s. Andi Peng: ოჰ, ეს უბრალოდ s. Yup, ბოდიში. ჩემი ცუდი. მაგალითები არ დაემთხვა. აუდიტორია: და მერე dot. Andi Peng: Yup. ფრთხილად, როდესაც თქვენ ბიჭები are-- აქ, ნება მიბოძეთ, მიუახლოვდით. იქ ჩვენ წავიდეთ. ფრთხილად, როდესაც თქვენ ბიჭები აკრეფით, განსაკუთრებით მაშინ, როდესაც თქვენ აკეთებთ უბრალოდ char. ეს მართლაც ადვილია შემთხვევით მხოლოდ გავაკეთოთ ორმაგი შეთავაზებები ვიდრე ერთი. ეს არ იმუშავებს. თქვენი შემდგენელი აპირებს გაასაჩივროს. და თქვენი ფუნქცია უბრალოდ არ აპირებს. ასე რომ, ფრთხილად, როდესაც თქვენ აკეთებთ რამ ერთად სიმბოლო, რომ ის ერთჯერადი შეთავაზებები. და ასე აკეთებს ეს ხაზი კოდი აზრი, რომ ყველასთვის? ჩვენ ქმნის char * მაჩვენებელი. იმის გამო, რომ strrchr ბრუნდება რაიმე ტიპის მაჩვენებელი. ასე რომ, ჩვენ ვაპირებთ, რომ მოვუწოდო strchr on s, რომელიც არის ტექსტი, ფაილი ასახელებს, რომ ჩვენ გავლის. ჩვენ ვეძებთ ბოლო მაგალითად პერიოდის, რომელიც მხოლოდ ერთი პასუხის dot ერთი გაცემა. ჰო. აუდიტორია: როდესაც ჩვენ ორმაგ ბრჭყალებში და როდის ვიყენებთ ერთ შეთავაზებებს? Andi Peng: ჰო. ასე რომ, ორმაგი შეთავაზებები ყოველთვის, როცა თქვენ სიმებიანი მეტი, ვიდრე უბრალოდ ერთი. ასე რომ, თუ თქვენ აკეთებთ strstr, რომელიც არის ერთი, რომ თქვენ ძიება სიმებიანი სიმებიანი, თქვენ გაივლის ის ორმაგ ბრჭყალებში. მაგრამ ნებისმიერ დროს, ეს მხოლოდ ერთჯერადი ხასიათი, გსურთ გააკეთოთ ერთჯერადი შეთავაზებები. ეს არის კარგი რამ უნდა გვახსოვდეს. ასე რომ, ახლა რომ ჩვენ გვაქვს ჩვენი მაჩვენებელი, რა ვქნათ ეს? მე გეკითხებით ბიჭები ბეჭდვა ეს, არა? ასე რომ, [INAUDIBLE], გსურთ მომეცი ხაზი კოდი? აუდიტორია: printf-- Andi Peng: ჰო. აუდიტორია: --you გჭირდებათ ადგილის მფლობელი. Andi Peng: Yup. აუდიტორია: ბეჭდვა ადგილის მფლობელი. მე არ ვიცი, რა ადგილი მფლობელი არის, მაგრამ წერტილი ეს. OK. მოდით გაფართოებული რომელიც ახლა მაშინ. აუდიტორია: და მერე მძიმით Andi Peng: Pointer, არა? აუდიტორია: Pointer, yup. Andi Peng: ასე რომ, ერთგვარი შეასრულა კითხვაზე, უნდა გააკეთოს მითითებას და სიმები რომ ჩვენ სახის ისაუბრა უკვე. რა ადგილის მფლობელი ვყოთ უნდა მაჩვენებელი char *? აუდიტორია: [INAUDIBLE]. Andi Peng: ჰო. უფრო ადვილია, ვიდრე ბიჭები ვფიქრობ, რომ ეს არის. აუდიტორია: სიმებიანი? Andi Peng: ეს ​​არის მხოლოდ სიმებიანი, ზუსტად. იმიტომ, რომ მახსოვს სიმები ნამდვილად არ არსებობს. Char * არის ზუსტი იგივე როგორც სიმებიანი. ასე რომ, ნამდვილად ეს ის არის, რაც უნდა ყოფილიყო გამოყენებული ყველა ერთად. OK. მოდით ვნახოთ, თუ ჩვენ შეგვიძლია ვეცადოთ გაშვებული ეს. მოდით მიიღოს გაფართოება. ზემოთ. თქვენ ბიჭები ვხედავთ, როგორ გავიდა psset7.zip და finalpaper.docx, და ეს უბრალოდ ბეჭდავს out .zip და .docx? აზრი? OK, მიმაჩნია, რომ თქვენი სახე up ფუნქცია თქვენი pset თქვენ იქნება სთხოვა, თუ სიმებიანი აქვს გარკვეული დამთავრებული, თქვენ უნდა მისცეს გარკვეული შეცდომის კოდი. ასე რომ, ეს იქნება საკმაოდ საშინელი. იმიტომ, რომ თუ შეგიძლიათ გაერკვნენ გაირკვეს, თუ რა გაფართოება, შეგიძლიათ შემდეგ შევადარებთ, რომ გაგრძელების შემთხვევაში, თუ ის შეესაბამება გარკვეული გაფართოება. და მაშინ შეიძლება დაბრუნდეს შეცდომა, არა? ჰო. აუდიტორია: ასე რომ, ჩვენ არ უნდა დაამატოთ 1 ან არაფერი? მაჩვენებელი წავა the-- Andi Peng: Nope. აუდიტორია: --point შემდეგ. Andi Peng: ჰო. ეს მიუთითებს ზუსტად სადაც კლების იყო. ასე მაგალითად, აქ, ჩვენ ეძებს პერიოდში. ასე რომ, ეს დაბრუნებას აპირებს მომცეთ პერიოდში. და მაშინ იგი აპირებს ბეჭდვა out დაწყებული პერიოდში. ასე რომ თქვენ არ უნდა დაამატოთ 1. მიუხედავად იმისა, რომ ეს სრულიად ჯარიმა, თუ თქვენ ოდესმე იცით, უბრალოდ სახის საქართველოს შეამოწმოთ ის თავს. აშენების საჩვენებელი პროგრამა. შეამოწმოთ ის თავს და ვხედავ, სადაც ეს ბეჭდვა. სწორედ ასევე არ არის ცუდი გზა ამის გაკეთება. ზემოთ. და რომ საკმაოდ ბევრი მე მქონდა შენ დღეს. ჩვენ ძალიან ბევრი pset პერსონალის დღეს. ასე რომ, როდესაც ეჭვი, როგორიცაა მე ვთქვი, ყოველთვის გამოიყურება up string.h ბიბლიოთეკა ამ pset. არ იქნება ბევრი ფუნქცია, რომ შეიძლება იყოს სასარგებლო. ზოგიერთი შეიძლება არ იყოს სასარგებლო. მე ნამდვილად არ ვიცი. Wade მეშვეობით, არსებობს მთელი bunch of მათ. strstr, strchr, strrchr არიან სუპერ, სუპერ სასარგებლოა, ისევე როგორც strcpys და strcasecmps რომ ჩვენ უკვე გამოიყენება. ეს მხოლოდ ბევრი ძვირფასი გარშემო strings, განმსაზღვრელი, თუ ისინი თანასწორი, მიღების პერსონალის გარეთ სიმები, და მიმდინარეობს შეუძლია გახსნას ფაილი სწორად. ეს ბევრი ფაილი I / O. pset ნამდვილად არ არის, რომ ცუდი. თქვენ აპირებს შეხედეთ მას, გადმოწეროთ, და ვხედავ მთელი bunch of კოდი. არ აწუხებს, კოდი რეალურად წერენ ცუდი არ არის ყველა. თუ ვინმეს აქვს საკითხებზე მათი სერვერზე, მოდის ვხედავ ჩემს შემდეგ სექციაში. ბოდიშს კიდევ ერთხელ არ შემოტანა candy ჰელოუინი. მე არ ვიცი, რა იყო არასწორი ჩემთან ერთად. მაგრამ ჩვენ ორმაგად კამფეტი მომავალი დრო. და წარმატებას გისურვებთ თქვენს pset ამ კვირაში. Yup.