დევიდ ჯ Malan: ასე რომ, ეს არის CS50. და ეს იყო CS50 საკუთარი Colton Ogden, უფრო ვინ არის მუსიკის შეგიძლიათ ჩამოტვირთვა at soundcloud.com/cs50. ასე რომ, დღეს ჩვენ ფოკუსირება ყველა მეტი ხელოვნების პროგრამირებაში. და ჩვენ, სადაც დავტოვეთ off გასულ კვირას, აქცენტი on Scratch, რომელიც ამ გრაფიკული პროგრამირების ენა. და მიიღოს რამ ქვემოთ ქვედა დონეზე, გამოყენებით უფრო ტრადიციული პროგრამირების ენა ცნობილია როგორც C. მაგრამ გასწვრივ გზა, ხვდებიან, რომ იგივე იდეები ჩვენ ისაუბრა გასულ პარასკევს კვლავაც და არა მხოლოდ ამ ენის C, მაგრამ საუკეთესო ყველა სხვა ჩვენ შევხედოთ ამ სემესტრში. ასე რომ, ჩვენ უწოდა რამ აქ რა ბოლო დროს? ეს არის წარმომადგენელი განცხადებაში. ასე რომ, ჩვენ კი ამ განცხადებაში. და ეს აკეთებს რაღაც. ეს განკარგულება, კომპიუტერის ან Scratch შეიძლება შეასრულოს. და ამიერიდან, მოდით ასევე დაიწყება მოუწოდებს რაღაც მსგავსი ფუნქცია, მიზეზების გამო, ჩვენ უნდა მალე ვხედავ. იმავდროულად, ჩვენ ვნახეთ რამ, როგორიცაა ამ. და ეს არის ზოგადად ცნობილია, რა შენება? აუდიტორია: Loop. დევიდ ჯ Malan: ასე რომ loop. ასე რომ, საკმაოდ მარტივია. ეს ფაქტიურად იმას, თუ რას ამბობს. და Scratch, თუ გსურთ cram მეტი თავსატეხი ცალი არსებობს, ცალი გაიზრდება შეესაბამება მას. და ჩვენ ვხედავთ C, ჩვენ შეგვიძლია გავაკეთოთ იგივე. სხვა ტიპის loop, თუმცა, in Scratch შეიძლება იყოს სამუდამოდ, ან არსებობს რაიმე ნომერი სხვა მიდგომები. მაგრამ მოდით უფრო ზოგადი სახე, სახე რომ სავარაუდოდ საკმაოდ ნაცნობი, მარყუჟების ზოგადად. Mark Zuckerberg: One რამ, კომპიუტერები მართლაც კარგად არის იმეორებს ბრძანებები. პირი, ნეტავ კიდევ ნამდვილად შეწუხებული თუ უნდა გაეკეთებინათ იგივე ბევრი ჯერ ზედიზედ. მაგრამ კომპიუტერი შეიძლება გავაკეთოთ იგივე მილიონობით, თუნდაც მილიარდობით ჯერ, და არ მოგწყინდება, და შეძლებს განახორციელოს, რომ ნამდვილად კარგად. ასე მაგალითად, თუ მე სასურველი ვუსურვო ყველას on Facebook ბედნიერი დაბადების დღე გაგზავნით მათ ელექტრონული ფოსტით, ეს შესაძლოა ჩემთვის უფრო მეტია, ვიდრე საუკუნის რეალურად წერენ out ყველა იმ წერილებს ყველას. მაგრამ მხოლოდ რამდენიმე ხაზი კოდი, მე არ შემიძლია აქვს სისტემას ელ ყველას on Facebook მსურველი მათ ბედნიერი დაბადების დღე. ასე რომ, რა მარყუჟების და რატომ ისინი ძვირფასი და რაღაც რომ კომპიუტერი ძალიან კარგად. დევიდ ჯ Malan: ასე რომ, თუ თქვენ უკვე მიმღები ზოგიერთი CS50 და Dropbox სივრცეში გვიან, რომ რეალურად ზუსტად ის რასაც ჩვენ ამის გაკეთება გამოყენებით კოდი საკმაოდ იგრძნობა. ჩვენ არსებითად დიდი ცხრილების, რომელშიც ეგ უკვე შესაყვანი მათი სახელები და ელექტრონული ფოსტის მისამართები. და ჩვენ წერდა ერთი ციცქნა კოდი, რომელიც შეგიძლიათ iterate მეტი იმ მისამართებზე და შამფურზე უნიკალური მისამართები თუ ვინმეს წარმოდგენილი რამდენჯერმე. და ამის შემდეგ, ჩვენ ავტომატური ელ CS50-ს ბოტი, მათ შორის კუპონის კოდი. ახლა ჩვენ ასევე შევხედე ამ მშენებლობას ბოლო დროს. და ეს არის განსაკუთრებული მაგალითად, თუ რა? ასე რომ, yeah, ლოგიკური გამოხატულებაა. და ფორმა იგულისხმება ხელში რომ ისევე. ყველა ასეთი შეკითხვებს შექმნას ნამდვილი ან ყალბი in Scratch გამოიყურება პატარა რაღაც მსგავსი. და ჩვენ მოვუწოდებთ ამ ლოგიკური გამოხატულებაა. ეს მართლაც ჭეშმარიტი ან ცრუ, თუ არა. ეს არის გზა კითხვებზე პასუხის გასაცემად. და იმავდროულად თქვენ შეგიძლიათ გამოიყენოთ ეს ლოგიკური გამონათქვამები შიგნით აშენებს ასეთი, რომელიც რა თქმა უნდა პირობები ან ფილიალი, proverbial ჩანგლები საგზაო. და მათ შეუძლიათ გამოიყურება არა მხოლოდ მსგავსი, მაგრამ მათ შეუძლიათ აგრეთვე არ elses მათთან ასოცირებული. და თქვენ შეგიძლიათ რეალურად აქვს სამი გზა ჩანგალი საგზაო ან ოთხი გზა ჩანგალი გზაზე, უბრალოდ მობუდარი ეს ყველაფერი, როგორც თქვენ ხედავთ Scratch თუ არ უკვე. და როგორც თქვენ შეგიძლიათ ამის გაკეთება C ისევე. ავიღოთ კიდევ ერთი ზოგადი შევხედოთ alumnist, ისევე, რომელიც შეიძლება წარმოადგინოს განსხვავებული მიდგომა ამ რამ მოუწოდა პირობები. ბილ გეითსი: ხალხი, გადაწყვეტილებები ყოველდღე. მაგალითად, სანამ თქვენ გარეთ თქვენ სახის, თუ განაცხადი, რომელიც ამბობს, თუ ეს წვიმს მერე უნდა მიიღოს ჩემი ქურთუკი. და კომპიუტერების საოცარი ერთხელ თქვენ გადაწყვიტოს იმ სახის განცხადებები, რომ ისინი შეიძლება საიმედოდ შეასრულოს იმ რამ at წარმოუდგენელი სიჩქარე. და ასე კომპიუტერული პროგრამა მართლაც არის ცოტა მათემატიკის და ზოგიერთი თუ განცხადება, სადაც გადაწყვეტილება იღებს გააკეთა. დევიდ ჯ Malan: ასე რომ, როგორც მოგეხსენებათ, რომ ეს იყო ეგ, როგორიც ბილ გეიტსი, Paul Allen, და სხვები რომ მართლაც დაიწყო ე.წ. პერსონალური კომპიუტერი რევოლუცია რამდენიმე წლის წინ. ვიფიქრე, სანამ ჩვენ ჩაყვინთვის გარკვეული administrivia, ჩვენ გვინდა ეხება ზღაპარი საწყისი Albuquerque, New Mexico მუზეუმი ბუნებრივი ისტორია და მეცნიერების, სადაც რამდენიმე ბილ გეიტსი " და პოლ ალენმა ადრეული მოთხრობები რომლებიც ასე გაგვეცნო ახლა ჩვენ გვაქვს დღევანდელი ები და Macs და სხვა. ამ, თუმცა, ჩვენ გვჭირდება ორი მოხალისეები რომელსაც აქვს ძალიან კარგი თხრობის ხმები წაკითხვის script ხმამაღლა. ყველა უფლება, თუ როგორ შესახებ იქ. მოდის up. და რა წინ აქ. მოდის ქვემოთ. აიღეთ ადგილებში აქ. როგორც შენ ამუშავება, რამდენიმე ადმინისტრაციული განცხადებები. sectioning, პროცესი არჩევის განყოფილებიანი, დაიწყება ოთხშაბათი პარასკევის ჩათვლით. უფრო, რომ ამ მოდის ოთხშაბათი ლექცია. Super სექციები, იმავდროულად, არიან ის, რასაც ჩვენ ვთავაზობთ მომდევნო კვირას რომლის დროსაც მთელი კლასი მიწვეული მონაწილეობის საკმაოდ დიდი მასშტაბის სექციები, ერთი უფრო კომფორტული, ერთი ნაკლებად კომფორტული. და ჩვენ გამოვაცხადებთ არჩევნების ცნობები რომ, ასევე, მოგვიანებით ამ კვირაში. ამასობაში სექციები, თავად დაიწყებს კვირაში სამი, რა თქმა უნდა, ნულოვანი ინდექსი, რაც იმას ნიშნავს, რომ ეს არის რამდენიმე კვირის out. ასე რომ არ ინერვიულოთ. თქვენ ჯერ არ გაუშვა არაფერი გასწვრივ იმ ხაზები. ამასობაში კი ამასობაში, თუ გაქვთ რაიმე შეკითხვა ადმინისტრაციულად ელ თავს და Devon და Gabe და Rob ამ მისამართზე აქ. და ბოლოს, პრობლემა კომპლექტი 0, რა თქმა უნდა, გარეთ. თქვენ შეიძლება არ შეამჩნია, რომ რა თქმა უნდა, მისი ნახვა. ეს უნდა მოგაწვდით ყველა პასუხი კითხვებზე, თქვენ ალბათ გზაზე ნაცნობობა პრობლემა კომპლექტი. მაგრამ, თუ თქვენ აღმოჩნდეთ სჭირდება ეხმარებოდნენ, აუცილებლად დაესწრება საათებში, ორშაბათი, სამშაბათი, ოთხშაბათი, ხუთშაბათი ამ კვირაში საღამოს ოთხ სასადილოები. , რომ URL არსებობს ცნობები სადაც ოფისში საათი უნდა იყოს. ახლა მოდი შევხვდეთ ჩვენი ორი სტუმარი დღეს აქ. რა გქვია? JAY PAUL: Jay პავლე. დევიდ ჯ Malan: Jay პავლე, კარგია თქვენთან შეხვედრა. Hikari: Hikari. დევიდ ჯ Malan: Hikari? Hikari: Hikari. დევიდ ჯ Malan: Hikari. კარგია თქვენთან შეხვედრა, ისევე. Jay პავლე და Hikari აქვს მათ წინაშე ამ მუსიკა დგას ორი სკრიპტები რომ მე დაბეჭდილი ამ დილით, რომ New Mexico მუზეუმი ბუნებრივი ისტორია და მეცნიერება. და რა ვიფიქრე მე მინდა ოვერჰედის არის თანმხლებ თქვენი წაკითხვის სცენარი და ისტორიის ზოგიერთი ვიზუალური გამოსახულება, სიურპრიზები. და რა მე გაკეთდეს წინასწარ არის prehighlight თქვენი script ის, რაც თქვენ უნდა წაიკითხოთ, და რა უნდა წაიკითხონ. და ჩვენ, არსებითად, უბრალოდ ალტერნატიული პუნქტებში. ასე რომ, ეს ძალიან ჰგავს თქვენ შეიძლება გააკეთეთ ინგლისურ კლასი. რომ მართლაც აიძულებს აუდიტორია გვჯერა შენი ზღაპარი აქ. უნდა? ასე ამბავი აქ არის, ჩვენ გვაქვს BASIC, და ეს იწყება Cambridge. JAY PAUL: ეს იყო ზამთარში, 1974, კემბრიჯი, მასაჩუსეტსი ზამთარი შეიძლება იყოს ცივი. ბატკანძერი, ხანგრძლივი haired კოლეჯის dropout დაასახელა პოლ ალენი იყო drudging მასშტაბით Harvard მოედანზე, შეიწოვება თავის აზრებს. მისი ძირითადი შეშფოთება იმ დღეებში იყო, თუ როგორ უნდა მიიღოს მისი მეგობარი, ბილ გეიტსი, სკოლა მიეტოვებინა და წავიდეთ ბიზნეს მასთან. Hikari: ორი უკვე წავიდა მთელი რიგი ბიზნეს საწარმოების ერთად, დაწყებული Lakeside სკოლა Seattle, სადაც უხდიდნენ უფასო კომპიუტერის დრო შესამოწმებლად PDP-10 კომპიუტერის ლოკალური დრო გაზიარება კომპანია. ყველაზე ბოლო გეგმა იყო, რომ თავი დაანებონ სკოლის და ჩამოყალიბდეს პროგრამული უზრუნველყოფის კომპანია. Allen დატოვა Washington სახელმწიფო უნივერსიტეტი. მაგრამ ბოლო წუთს, Gates გადაწყვიტა გამყარებაში ერთად ჰარვარდის. JAY PAUL: იმ დღეს, გადაკვეთის Harvard მოედანზე, Allen მყივანი იანვარი, 1975 საკითხი Popular Electronics დედამიწის გაჩერების სათაურით, მსოფლიოში პირველი მინიკომპიუტერების Kit რომ კონკურენტი კომერციული მოდელები. ქვეშ სათაურია სურათს პატარა ყუთი მორთული განათება და კონცენტრატორები. მას ეწოდებოდა MITS Altair 8800. და ალენ იცოდა, რომ ეს იყო ის, რაც მან უკვე ეძებს. Hikari: Days of დისკუსია მოჰყვა. ალენი და Gates ესმოდა მნიშვნელობაზე Altair. მათ ისაუბრეს ხშირად შესახებ მიკროპროცესორების და ელოდება რა მოხდება მათთან. ახლა იყო მინიკომპიუტერების ნაკრები საფარი პოპულარული ელ. ეს აშკარად არ ჰქონდა პროგრამული უზრუნველყოფა ამჟამად. მათ წარმოედგინათ ერი პროგრამისტები დაღმავალი MITS. ასე რომ, ისინი მოუწოდა ედ რობერტსი, კომპანიის ხელმძღვანელი, აცხადებდნენ აქვს მობილური ძირითადი პროგრამირების ენა თითქმის მზად რომ Altair. ეს არ გააკეთეს. და რობერტსი უნდა სცოდნოდა ეს არ გააკეთეს. ის მიღების 10 ზარი დღეში ადამიანი, რომელმაც BASIC თითქმის მზად არის. და მისი საფონდო პასუხი იყო, "პირველი პირი რომელიც აჩვენებს მდე სამუშაო BASIC იღებს კონტრაქტი. " JAY PAUL: Gates და Allen არასდროს მინახავს Altair. ისინი არასდროს კი მინახავს Intel 8080 მიკროპროცესორული გულში Altair. მაგრამ რამდენიმე წლის წინათ Allen დაწერილი პროგრამა წლის mainframe კომპიუტერი, რომელიც წააგავს ოპერაციის წინა Intel მიკროპროცესორული. და ამ დროს გარშემო, მათ ყველაფერს გააკეთებს იგივე. Hikari: With Intel 8080 სახელმძღვანელო თავის მხრივ, Allen დაჯდა ჰარვარდის PDP-10 კომპიუტერული და დაწერა emulator და პროგრამული უზრუნველყოფის ინსტრუმენტები აუცილებელია გავაკეთოთ პროგრამირების. ამასობაში Gates აღარ აპირებს კლასები და თავისათვის დიზაინი BASIC, გამოყენებით ყველა ხრიკი მან იცოდა, რომ მიიღოს ზომა ქვემოთ 4 kilobytes. JAY PAUL: Out in Albuquerque, ედ რობერტსი მივიღე ზარი Gates ითხოვს შესახებ დამატებითი ინფორმაცია Altair სიფრთხილით კონკრეტული routines. არავის უკითხავს, ​​რომ ადრე. და რობერტსი დაიწყო დაინტერესებული. Hikari: განვითარებასთან ერთად ინსტრუმენტები და დიზაინი მზად არის, გეითსმა და ალენმა დაწერა კოდექსის PDP-10, შეიარაღებულ ძალებში კიდევ ჰარვარდის სტუდენტი, Monte Davidoff, დაწერა მათემატიკის routines. მას შემდეგ, რაც უკანასკნელ ღამეს პროგრამირების, Allen მოუჭრა თვითმფრინავი სიტყვით BASIC to MITS. მან გაატარა თვითმფრინავი ვისრიალოთ შემაშფოთებელია. და უკან Cambridge გეითსის შემაშფოთებელია. მათ ტესტირება მათი ძირითადი და იგი მუშაობდა emulator. მაგრამ რა, თუ emulator იყო არასწორი? JAY PAUL: როგორც თვითმფრინავი მიუახლოვდა Albuquerque, Allen მიხვდა, რომ მათი BASIC, ახლა neatly შეიცავს პატარა როლი punched ქაღალდის ლენტი, რომ იქნება უსარგებლო გარეშე ცალკე პროგრამა, რომელსაც loader, რომ რომ გითხრათ Altair როგორ წაკითხვის ქაღალდის ლენტი ყოფნა ყელში შევიდა teletype მანქანა. მან თავისი რვეული და სწრაფად scribbled ქვემოთ loader პროგრამა ასამბლეის ენაზე, შემდეგ ხელით თარგმნა რომ შევიდა 1s და 0S Altair იქნებოდა მესმის. Hikari: Allen ელოდება სუფთა, პატარა, მაღალტექნოლოგიური კომპანია მართავენ მამაკაცები ბიზნეს ლუქსი. ასე რომ, ის გაოცებული იყო, როდესაც Roberts შეხვდა მას აეროპორტში ეძებს როგორც ranch ხელი. Roberts გაკვირვებული იყო. როდესაც იგი დაეცა Harvard programmer ძვირადღირებული სასტუმრო, Allen იძულებული გახდა ეღიარებინა, რომ მას არ შეეძლო ოთახი. JAY PAUL: MITS, თავად იყო მდებარეობს მტვრიანი ზოლები ცენტრი. შიგნით cluttered workbench იყო Altair დატვირთული 5 kilobytes of მეხსიერება და მასთან დაკავშირებული საკაბელო რომ teletype მანქანა. რობერტსი და მთავარი ინჟინერი, კანონპროექტი Yates, დაელოდა expectantly როგორც ალენ იმართება მისი loader პროგრამა შევიდა Altair. Teletype დაიწყო chugging რადგან ის გამოყვანილია ქაღალდის ლენტი მეშვეობით ფირზე მკითხველს. დასჭირდა, ალბათ, 15 წუთი ჩატვირთვა პროგრამა. მაშინ teletype მოულოდნელად ნაბეჭდი მეხსიერების სწრაფი, მაშინ მზად დროული, და ალენ დაიწყო აკრეფით რამდენიმე ტესტი ბრძანებები. ყველას გაოცებას, პროგრამული მუშაობდა. იყო შეცდომები, რა თქმა უნდა. მაგრამ მთავარი ის იყო, ის მუშაობდა. Hikari: მოგვიანებით, მათი გზა $ 3.00 ლანჩი პანჩო ს, wasp გაფრინდა ფანჯრის პიკაპის სატვირთო და შეწუხებულმა Allen მკლავი. თუმცა, იმ დროს არაფერი შეიძლება გააფუჭოს განწყობა. Altair ახლა, მისი ძირითადი, პირველი კომერციული პროგრამული უზრუნველყოფა მთავარი კომპიუტერი, მიერ Paul Allen და ბილ Gates, ბიზნესის, როგორც Microsoft. დევიდ ჯ Malan: ბევრი მადლობა ჩვენი ორი მკითხველს. [ტაში] დევიდ ჯ Malan: ახლა თქვენ გაქვთ არჩევანი, ადრე დატოვებს, საქართველოს sparkly ან დიზელის dark-- oh, დაველოდოთ ერთი წმ wait-- sparkly და დიზელის მუქი სპილოს საწყისი CS50 საკუთარი Cheng Gong. Hikari: Aw, მადლობა. დევიდ ჯ Malan: ყველა მარჯვენა, დიდი მადლობა. [ტაში] დევიდ ჯ Malan: ასე რომ, ნამდვილი ამბავი. ეს არის იმის თქმა, რომ ყველა ეს მანქანები და მარტივია, რაც ჩვენ მათი გამოყენება ახლა და მიიღოს თავისთავად, მართლაც აქედან დაიწყო, რამდენიმე paces ამ ფაქტობრივი თეატრი. და ახლა, დღეს, თუ თქვენ არ ყოფილა, ეს არის Maxwell დვორკინმა კომპიუტერული მეცნიერებათა კორპუსში, ასევე გარშემო კუთხეში. და მეორე სართულზე ამ შენობა არ დევს სამი გვერდი ორიგინალური წყარო კოდი, რომელიც ბილ გეითსმა და პოლ ალენმა დაწერა. ფაქტობრივად, თუ გამოყენების მასშტაბირების თქვენ ხედავთ არა მხოლოდ მათი სახელები ორიგინალური ტიპის, არამედ მათი ხელმოწერები, რომ მორთული რამდენიმე წლის წინ, როდესაც ისინი ბოლო ეწვია. მაგრამ რა იყო, განსაკუთრებით დამაჯერებელი ეს არის ის, რაც მათ შეიქმნა იმისათვის, რომ იყო დაწერა პროგრამა, რომელიც მისცემს სხვა ხალხს წერენ საკუთარი პროგრამები. დროს ყველა იქ იყო ამ Altair მანქანა მიერ MITS. და ყველა ისინი საჭირო იყო გარკვეული გზა რაც ადვილი hobbyists და ადამიანი მინდა ჩვენგანი ამ ოთახში რეალურად პროგრამა რომ გარეშე აუცილებლად გაგება ასამბლეის კოდი, ან მანქანა კოდი, ან ღმერთმა ნუ ქნას, 0S და 1s. ჩვენ პროგრამისტების, როგორიცაა იმ ამ ოთახში, ჩვენ გსურთ შეძლებს გამოხატოს საკუთარ თავს ბევრად უფრო ფსევდო კოდი თუნდაც ეს ცოტა უფრო nit picky ვიდრე ჩვენ ვისაუბრეთ გასულ კვირას. ჩვენ არ გვინდა, რომ დაწერა კოდი მოსწონს, რომელიც პოლ ალენი და ბილ გეიტსი გააკეთა. ჩვენ, ნაცვლად, მინდა დაწერა კოდი, რომელიც გამოიყურება უფრო მოსახერხებელი. ახლა ეს არის ენა ცნობილია როგორც ძირითადი. და ხაზის ნომრები არსებობს, რაც თქვენ გამოყენება უბრალოდ ნომერზე ხაზების კოდი რომ თქვენ წერდა. ჩვენ კი არ უნდა გავაკეთოთ, რომ ამ დღეებში. მაგრამ ხედავთ აქ როგორ PRINT "Hello, World" მართლაც, სავარაუდოდ, ბეჭდვა მხოლოდ, რომ. ასე რომ, რა არის ბილ და პოლ გააკეთა იყო ხალხს მისცეს დაწერა კოდი მოსწონს ნაცვლად of-- თუ შევხედოთ კომპიუტერულ მეცნიერებათა wall-- კოდი მოსწონს ეს. ფაქტობრივად, CS50 ახლახანს მქონდა საშუალება, დასხდნენ პროფესორმა ჰარი Lewis კომპიუტერულ მეცნიერებათა დეპარტამენტი, რომელიც რეალურად ასწავლიდა Bill Gates რამდენიმე წლის წინ, და დგას აქ ადრე იმ სამი გვერდებზე ნაწყვეტები. მოდით შევხედოთ. HARRY LEWIS: რა უნდა აქ არის ჩამონათვალი ადრეული ნაჭერი პროგრამული უზრუნველყოფა, დაწერეს ბილ გეითსმა და პოლ Allen, დამფუძნებელი Microsoft. ასე რომ კოდი საინტერესოა ორი მიზეზის გამო. პირველ რიგში, იგი გახდა Microsoft-ის პირველი პროდუქტი, რომელიც თარჯიმანი ძირითადი პროგრამირების ენა. და მეორე, ეს იყო ერთი პირველი მცდელობა შექმნათ თარჯიმნის რომ უბრალო ადამიანს შეეძლო პერსონალური კომპიუტერი. ასე რომ, ბილ გეითსი იყო ბაკალავრიატის ჰარვარდის. დავიწყე სწავლა ჰარვარდში 1974 წელს. ეს გაკეთდა 1975 წელს. ასე რომ, ეს იყო კარიერის დასაწყისში და ადრეული ჩემი კარიერა. მე რეალურად ასწავლიდა კანონპროექტი რა თქმა უნდა, გარშემო ამ დროს. პოლ ალენი არ იყო ჰარვარდის სტუდენტი, მაგრამ ის იყო საშუალო სკოლა კლასელი ბილ გეიტსი. თუ მოვა და შევხედოთ იმ სიაში, თქვენ რეალურად მესამე სახელი, Monte Davidoff, ვინ იყო გეითსის კლასელი აქ ჰარვარდის. OK, ასე რომ აქ საინტერესო კომენტარი აქ. ის ამბობს: "4K შეგიძლიათ წაშალოთ კვადრატული ფესვი მაგრამ ამისთვის მარყუჟების უნდა მაინც იმუშავებს. " OK, ასე რომ ნიშნავს, რომ იქ იყო ორი გზა შეადგინონ ამ პროგრამის. ერთი იყო გასაშვებად მობილური ამ Altair კომპიუტერული რომ მხოლოდ 4K სიტყვა მეხსიერება, 4,096 სიტყვა მეხსიერება. მაგრამ დიდი ვერსია ჰქონდა 8K. და მერე რა ამ ამბობს, რომ 4K მობილური თქვენ ჰქონდა წაშლა კოდი რათა ის ჯდება. და ერთი რამ, რომ იქნება წაშლილი იქნება კვადრატული ფესვი რუტინული. მაგრამ როგორც ჩანს, ამისთვის მარყუჟების უნდა მაინც მუშაობა მაშინაც კი, როდესაც თქვენ შედგენის ქვემოთ მხოლოდ 4K მობილური კომპიუტერი. დევიდ ჯ Malan: ასე რომ, ერთი თემატიკის, როგორც ვნახავთ, კომპიუტერული მეცნიერების, არის ამ ცნება ბაზაში და აბსტრაქცია, და მართლაც იდგა shoulders ეგ ვინც არ მოვა ჩვენს წინაშე, არა განსხვავებით ზოგიერთი ბილ გეითსი და პოლ ალენმა თხრობითი აქ. და რა ეს იმას ნიშნავს, რომ დღეს ჩვენ შეგვიძლია მიიღოს მინიჭებული, რომ ყველაფერი რეალურად ადვილია ჩვენთვის დაწერა კოდი. მართლაც კოდი, როგორც ჩვენ განაცხადა, არის ტექნიკურად უფრო ცნობილია, როგორც წყარო კოდი. და ეს ამ English მსგავსი სინტაქსი რომელიც უფრო შესაბამისი და უფრო კარგად განსაზღვრული ვიდრე რაღაც ფსევდო კოდი, , რომელიც არ არის ფორმალური განმარტება. და დღეს, რასაც ჩვენ ვაპირებთ ფოკუსირება არის კოდის რომელიც ასე გამოიყურება, რაც მართლაც, ერთი შეხედვით, გამოიყურება სრულიად cryptic. და გულწრფელად, ეს გზა უფრო ესთეტიურად რთული, ვიდრე ძირითადი პროგრამა. ყველა ეს პროგრამა აკეთებს, გავიხსენოთ, თუ რას ვამბობთ? უბრალოდ ბეჭდავს "Hello World". და კიდევ შევხედოთ ყველა პერსონალის, ჩვენ გვჭირდება გადაიტანოთ გარშემო, რომ ძალიან მარტივი ფრაზა. მაგრამ სანამ ხანგრძლივი, ყველა ამ ხაზების და სხვა გახდის ბევრად უკეთესი გრძნობა თქვენ. და ნაკადის ასეთია. რაც ჩვენ გვჭირდება, ჩვენს ხელთ მიიღოს კოდი, ისევე როგორც წყარო კოდი, რომელიც ჩვენ უბრალოდ დაინახა. და ჩვენ გვჭირდება ახალი პროგრამა გასაშვებად ის მეშვეობით. ჩვენ უნდა ალგორითმები, რომ შეგიძლიათ კონვერტირება კოდის, ასე, შევიდა ობიექტის კოდი, 0S და 1s. სხვა სიტყვებით რომ ვთქვათ, ჩვენ ვაპირებთ ვისწავლოთ დღეს არის, თუ როგორ უნდა გავაკეთოთ ეს, დაწერა კოდის up ზედა, გაივლის მას, როგორც შეყვანის სპეციალური პროგრამა ცნობილია როგორც შემდგენელი, და ჩვენ ვაპირებთ წარმოების ობიექტის კოდი. რომელიც მხოლოდ ლამაზი გზა ამბობენ, რომ რაღაც რომელიც ასე გამოიყურება, გაივლის შევიდა პროგრამა მოუწოდა შემდგენელი, მწარმოებელი ობიექტის კოდი რომელიც ასე გამოიყურება. ასე რომ, ეს არის ფაქტიურად ნიმუში 0S და 1s რომ გაიგეს Intel კომპიუტერული ამ დღეებში, იმ შემთხვევაში, თუ ინტერპრეტაციას CPU, ტვინი შიგნით კომპიუტერი, სიტყვასიტყვით ამობეჭდოთ, უბრალოდ, "Hello World". ახლა იქ გზა უფრო 0S და 1s, ვიდრე თქვენ იმედი მაქვს, შეიძლება იყოს აუცილებელი. მაგრამ ეს იმიტომ, რომ ჩვენ ვაშენებთ კარგი გარიგება სირთულის რომ ჩვენ შეგვიძლია ამიერიდან თავისთავად. სხვა სიტყვებით, ბევრი ჭკვიანი ადამიანი არ მოგვცა უამრავი cool ინსტრუმენტები და მძლავრი პროგრამული უზრუნველყოფა, რომელიც ჩვენ შეუძლია მიიღოს პროექტები ჩვენი საკუთარი. ასე რომ, მოდით დავიწყოთ. გასულ პარასკევს, და პრობლემა Set 0 ამ კვირაში, თქვენ იქნება სათამაშოდ მსოფლიოს, რომ ჰგავს ეს. დღეიდან პრობლემა კომპლექტი 1 მომავალ კვირას კოდი აპირებს გამოიყურებოდეს ცოტა მეტი cryptic, მაგრამ ფუნქციურად იქნება იგივე. ასე რომ შეამჩნია, რა არის Scratch, ბოლოში არის C. გულწრფელად ვამბობ Scratch არის გაცილებით მეტი შესახებ მეგობრული და ხელმისაწვდომი. მაგრამ თუ ახლა შევადარებთ ვიზუალურად თავზე, ბოლოში, არსებობს სახის ერთ ერთი მიმოწერა თავსატეხი ცალი და ენა ჩვენ შესახებ თამაში. კერძოდ, ვთქვათ, ლურჯი თავსატეხი ცალი up ზედა, როგორც ჩანს, ექვივალენტური რა სიტყვით ან სპეციალური ფრაზა ამ ენაზე ე.წ. C? აუდიტორია: printf. დევიდ ჯ Malan: printf. ეს იმას ნიშნავს, ფორმატირებული ბეჭდვა. და ეს მხოლოდ ლამაზი გზა ამბობდა printf in C იქნება განცხადებაში ან ფუნქცია ბეჭდავს რაღაც ეკრანზე. რას ნიშნავს ეს ბეჭდვა ეკრანზე? რასაც თქვენ ვუთხრა მას შიგნით შეთავაზებებს, შიგნით ფრჩხილებში. ასე რომ კიდევ ერთხელ, მართლაც, არსებობს ბევრი პერსონალი რომ თქვენ უნდა გვახსოვდეს, ფრჩხილებში, quotes, semicolons, და ყველა ამ. მაგრამ ყველა, რომ არის ერთგვარი საქართველოს გვერდში წერტილი. საინტერესო takeaway ახლა ის არის, რომ ვთქვათ ბლოკი Scratch არის საკმაოდ ბევრი ეკვივალენტი printf განცხადება C. იმავდროულად, ყვითელი თავსატეხი ცალი დასაწყისშივე, როდესაც მწვანე დროშა დააწკაპებთ, ალბათ ექვივალენტი რა სიტყვით აქ? აუდიტორია: მთავარი. დევიდ ჯ Malan: ასე რომ მთავარი. იქნებ int, შესაძლოა ბათილად. მაგრამ ძირითადი სახის ჟღერს ეს მნიშვნელოვანია, და ეს ნამდვილად. ასე რომ, როდესაც მწვანე დროშა დააწკაპებთ კიდევ ერთხელ, თავსატეხი ცალი რომ ჩათვლით მთელი Scratch პროგრამა. მაგრამ ჩვენ ვაპირებთ, რომ ახლა დაიწყება მოუწოდებენ , რომ მთავარი, ეს ფუნქცია ცნობილია, როგორც ძირითადი. ახლა იმავდროულად ჩვენ გამოგიგზავნით განზოგადება ამ შემდეგნაირად. ჩვენ შეიძლება მოვუწოდებთ ვთქვა ფუნქცია. და ეს შეიძლება კონკრეტულად მოსწონს ეს. ისე, რაც შეეხება მარყუჟების? თუ ჩვენ გვინდა, რომ დაიწყოს კონვერტაცია ან თარგმნის უფრო Scratch C, ეს საგანი აქ, როგორც ჩანს, მხოლოდ ამბობს "Hello World" სამუდამოდ. ასე რომ, თუ გაერთიანდნენ ამ სკრიპტები cat in Scratch, ის უბრალოდ აპირებს შენარჩუნება ამბობდა ზოგიერთი სახის cartoon bubble, "Hello World, hello world, hello მსოფლიოში ", რეკლამა nauseum, სამუდამოდ. თუ ჩვენ გვინდა, რომ რამე მსგავსი C, ის აპირებს პატარა cryptic. მაგრამ ჩვენ შეგვიძლია მივაღწიოთ იგივე შედეგი, როგორც ჩვენ საბოლოოდ გაირკვეს, სინტაქსის მოსწონს ეს. მე ვაპირებ გამოიყენოთ printf ერთხელ, იმიტომ, რომ დღის ბოლოს მინდა ბეჭდვა "Hello World". და მე, როგორც ჩანს, გამოყენებით სიტყვით რომ არ არის სამუდამოდ. ის ნაცვლად სიტყვა ხოლო. მაგრამ მხოლოდ სემანტიკურად in ინგლისური, ხოლო სახის ვარაუდობს, რაღაც მარყუჟი ან ციკლი. ასე რომ, ეს მოხდება, რომ სიტყვით რომ C იყენებს. ხოლო ჭეშმარიტი, რატომ, ხოლო ნამდვილი ეფექტურად ნიშნავს სამუდამოდ? კარგად, ხოლო, როგორც ჩვენ მალე ვაფასებ უფრო, აქვს ამ ჩართული შემდეგ იგი სადაც თქვენ შეგიძლიათ განათავსოთ ლოგიკური გამოხატულებაა. და მანამ, სანამ გამოხატვის მართალია, ამ კოდექსის როგორც აღნიშნა ამ ორ curly braces რადგან ჩვენ მოვუწოდებთ მათ, უბრალოდ შეინახოს გაშვებული ისევ და ისევ. ასე რომ, ნამდვილი ასეა. ასე რომ, როდესაც ჭეშმარიტი ნიშნავს უბრალოდ ეს სამუდამოდ. თითქმის სულელური მშენებლობა გამოხატოს საკუთარი თავი. მაგრამ არ იყო forever სიტყვით C. იყო, ხოლო. და იყო ძალიან მარტივი ლოგიკური გამოხატვის როგორც ნამდვილი. და ასე, ჩვენ დავინახავთ, აღწევს იგივე შედეგს. სხვაგვარად, როგორ შეიძლება თქვენ განახორციელოს loop? ასევე, Scratch ალბათ მძიმე კოდი კონკრეტული საქართველოს გამეორების მარყუჟის აქ. და ისე, რომ ის, რასაც ჩვენ შეიძლება გავაკეთოთ ამ მობილური C, რომლითაც ჩვენ ე.წ. for loop. და ამისთვის loop აქ აპირებს რათა iterate, გარკვეულწილად cryptically, საწყისი ღირებულება 0 მდე მაგრამ არანაკლებ 10. ახლა ცვლადები in Scratch. თქვენ შეიძლება არ ჰქონდა შემთხვევა უნდა გამოიყენოს ეს. მაგრამ რა აზრი აქვს, ზოგადად, ცვლადი არ ვამბობთ, გასულ კვირას? რა არის ეს? აუდიტორია: პუნქტი. დევიდ ჯ Malan: აღვნიშნო? Oh, მიუთითებს. OK, შენახვა ტრეკზე რაოდენობა, მაგალითად, თამაში. ან საერთოდ აკეთებს რა ცვლადი? რა არის სასარგებლო, რომ მათ? აუდიტორია: Memory. დევიდ ჯ Malan: ჰო, ისე მეხსიერებაში. ეს შენახვის რაღაც. და სახის სულელური ვიზუალური მე ბოლო დროს იყო, ისევე როგორც ეს შუშის თასი. და თუ არ გვინდოდა შესანახად რაღაც შიგნით ცვლადი, მაგალითად ახლა არც ექვსი იმიტომ, რომ იქ ექვსი ping pong ბურთები აქ. ეს მხოლოდ გარკვეული სახის შენახვის კონტეინერი, ქვევმოთ hood ხორციელდება ბიტი, 0S და 1s, თუმცა კომპიუტერული ხდება ამის გაკეთება. ასე რომ, Scratch, თუ ჩვენ გსურთ აქვს ცვლადი, ჩვენ შეგვიძლია გამოვიყენოთ ნარინჯისფერი ბლოკი მოსწონს ეს. ჩვენ მოვუწოდებთ, რომ counter ამ კონკრეტულ შემთხვევაში. მე ინიციალიზაცია მას 0. და ის, რაც მე მაშინ? Forever, ამბობენ, counter, რომელიც, თუ თქვენ თამაშობთ, რომ Scratch, თქვენ უბრალოდ ნახეთ Scratch. კატა ან რასაც კოსტუმი დააყენა მას ეცოდინება ნომერზე კითხვა. ენის counter მიერ 1 როგორიცაა დამატება 1. და ეს აპირებს იმედი რა მერე რა? საწყისი 0 დან უსასრულობა, ან სანამ Scratch წყვეტები, ან სანამ ერთგვარი დაკარგავს ინტერესს ყურება რამდენად მაღალი, მას ნამდვილად შეუძლია ითვლიან. ასე როგორ შეიძლება ჩვენ გარდაქმნას ეს C? ის აპირებს პატარა cryptic. თუმცა ისევ და ისევ, თუ თქვენ შეხედეთ ყოველ ამ ხაზების ინდივიდუალურად ისინი სახის წყობა ზოგადად. ასე რომ, სავარაუდოდ int აპირებს რაღაც განსაკუთრებული მნიშვნელობა C. ჩვენ ვხედავთ, რომ ერთხელ. როგორც განზე, ეს იმას ნიშნავს რიცხვი. ასე რომ, ეს მხოლოდ იმას ნიშნავს, ნომერი. ასე რომ ტიპის შუშის თასი მინდა, ერთი რომ შენახვა ნომრები, არა პინგ პონგის ბურთები. და მე ვაპირებ გამოიყენოთ თანაბარი ნიშანი იქ მივანიჭოთ ის მნიშვნელობა 0. ასე რომ საკმაოდ მოსწონს კომპლექტი counter 0, მაგრამ C. იმავდროულად, ხოლო ჭეშმარიტი, რომ იყო ექვივალენტს, რა თქმა უნდა, სამუდამოდ, მიუხედავად იმისა, რომ პატარა cryptic, და შემდეგ შიგნით Curly braces. და შეგიძლიათ წარმოიდგინოთ, რომ ეს curly braces, რომელიც შეგიძლიათ ჩაწეროთ თქვენს კლავიატურაზე, მართლაც რომ ისევე, როგორც ცვალოთ მრუდის in ეს ყვითელი loop ბლოკები Scratch. იგი მოიცავს მრავალი ხაზი კოდი. Printf დღითიდღე ცოტა საშიში, რადგან მე არა მარტო მოჰყავს ფრჩხილებში. მაგრამ რა არის ახალი სინტაქსურად ამ მაგალითიდან? იქ პროცენტს დ. და შემდეგ წარმატებული ნ არის. ჩვენ მას ვხედავთ, რომ, მაშინაც კი, თუმცა მე ვერ აღვნიშნო ეს. შემდეგ იქ მძიმით. და მაშინ არსებობს counter. მაგრამ ჩვენ ვხედავთ, მხოლოდ მომენტი, რომ ეს მხოლოდ სტანდარტული გზა ამბობდა ბეჭდვა "ათობითი რიცხვი," გაცემა, unquote, ზოგიერთი ათობითი რიცხვი. მაგრამ მე მინდა გითხრათ, მოგვიანებით რა, რომ ათობითი ნომერი არის. ასე რომ ის ფაქტი, რომ მძიმე ამ ხაზის გამონათქვამი printf, ნიშნავს წავიდეთ წინ და ბეჭდვა ზოგიერთი ათობითი რიცხვი. ოჰ, და სხვათა შორის, ნომერი რასაც ღირებულება ამ ცვლადი. ასე რომ, ეს უფრო ნათელი, დავინახავთ მაგალითია სანამ ხანგრძლივი, მათ შორის ზუსტად printf კონტექსტში რეალური C პროგრამებს. ახლა მხოლოდ გადაიტანოთ up ზოგიერთი ამ აშენებს. ლოგიკური გამონათქვამები, თქვენ შეიძლება არ აქვს შემთხვევა უნდა გამოიყენოს ეს თქვენი პროგრამა მაგრამ თქვენ ალბათ ძალიან კარგად, მით უმეტეს, თუ გამოყენების პირობები. და ა.შ. ეს ორი მაგალითი ნულიდან ნიშნავს, თუ x ნაკლებია y, თუ x ნაკლებია, ვიდრე Y და Y ნაკლებია ვიდრე z, თუ როგორ შეიძლება ვთარგმნოთ, რომ? ასევე, C, ეს მხოლოდ ვაპირებთ ჰგავს ეს. პატარა cryptic, უფრო მრგვალი, რაღაც უცნაური ampersands, მაგრამ ძირეულად იდეები მარტივი, როგორც არის თავსატეხი ცალი მსოფლიოში. ჩვენ უბრალოდ შესამოწმებლად, თუ რაღაც ნაკლებია, ვიდრე რაღაც. როგორ მდგომარეობის შესახებ? მოკლედ, ინგლისურ, რას ნიშნავს ეს ბლოკი Scratch კოდი არ იტყვით? აუდიტორია: შედარება ორი ნომერი. დევიდ ჯ Malan: ადარებს ორ ნომრები, და თუ x ნაკლებია y ის ამბობს, რომ, როგორც დიდი. თუ x მეტია y იგი აცხადებს, რომ ისევე, სხვა თუ x უდრის y ის ამბობს, იმდენი. ახლა სად x და y მოდის? ვინ იცის. ბლოკი Scratch კოდი არის გარეთ კონტექსტში. მაგრამ ჩვენ გვინდა გავაკეთოთ, არის თარგმნის ეს მხოლოდ ერთი წუთით, რომ ნახოთ. ასე რომ, როგორც თქვენ მიიღებთ კომფორტულ ამ კვირაში პრობლემა Set 0 თამაშობს ამ მსოფლიოში მარცხენა, გააცნობიეროს რომ იდეები არ იცვლება ამ კვირაში ან მომდევნო ან სხვაგან. ჩვენ უბრალოდ აპირებს წერა რამ სხვაგვარად ჩვენი კლავიატურის ნაცვლად ჩვენი მაუსი. ასე რომ, თუ x ნაკლებია, ვიდრე Y და არსებობს გარკვეული ფრჩხილებში არსებობს, შემდეგ იქ ზოგიერთი Curly braces ერთხელ სახის encapsulate ის ისევე, როგორც ყვითელი თავსატეხი ცალი გავაკეთოთ. და მე ვაპირებ printf x ნაკლებია, ვიდრე Y და სხვ. რა არის ლამაზი C, როგორც ხედავთ აქ, არის, რომ თქვენ არ მიიღოს ამ მობუდარი, მობუდარი, მობუდარი, რომ ის აუცილებლად აპირებს დააყენებს თქვენი კოდი მარჯვნივ. თქვენ შეგიძლიათ ნაცვლად აქვს ყველაფერი, შემდეგი შემადგენლობით neatly მოსწონს ეს. მაგრამ ეს მხოლოდ ესთეტიკური დეტალურად ჩვენ დავინახავთ, კიდევ ხანგრძლივი. ყველა უფლება. ასე რომ მოაქვს უკან ამ cryptic ეძებს პროგრამა. მოდით რეალურად წერა რამდენიმე კოდი. ახლა როგორ წავიდეთ შესახებ წერილობით კოდი? მთელი ამ წლების განმავლობაში, რომ თქვენ საკუთრებაში არსებული Mac ან PC, კომპიუტერი ან ლეპტოპი, თქვენ რეალურად ჰქონდა შესაძლებლობა წერა პროგრამული კოდი. მაგრამ თქვენ ალბათ დაკარგული სპეციალური ტიპის პროგრამა. შეგიძლიათ, რა თქმა უნდა დაწერა კოდი. მაგრამ თქვენ შეგიძლიათ არ არის აუცილებელი, იმ ყუთში, გარდაქმნას, რომ კოდის შევიდა ობიექტის კოდი, 0S და 1s გარეშე, რაც თქვენს კომპიუტერში? აუდიტორია: შემდგენელი. დევიდ ჯ Malan: ასე რომ, შემდგენელი, მარჯვნივ. ახლა ყველაზე მეტად თქვენ ალბათ არ ფლობენ შემდგენელი, არ გადმოწერილი შემდგენელი. მაგრამ დაინახავთ თქვენ შეგიძლიათ გადმოწეროთ ისევე როგორც საუკეთესო ნებისმიერი სხვა ნაჭერი პროგრამული უზრუნველყოფა. მსოფლიოში Mac OS, თქვენ შეიძლება უფასო და გადმოწერილი უკვე რაღაც მოუწოდა Xcode ან GCC და Clang. თუ მოდის Windows მსოფლიოში ალბათ გადმოწერილი Visual Studio, Visual Basic, გარემოში, როგორიცაა, რომ. არსებობს ათობით compilers ამ დღეებში, რომ თქვენ შეიძლება გამოიყენოთ. მაგრამ მოკლე აქ არის ის, რომ იყოს ტკივილი და, სიმართლე გითხრათ, ტექნოლოგიური კოშმარი ასობით ადამიანების სხვადასხვა კომპიუტერული კონფიგურაციის ყველა კონფიგურაციის მათი მანქანები ზუსტად იგივე გზა ასე რომ ჩვენ შეგვიძლია ყველა იყოს იმავე გვერდზე. ასე რომ, ის, რაც ჩვენ, ამის ნაცვლად, in CS50 არის მოგაწვდით სტანდარტული გარემო, Linux გარემოს შესახებ, რომელიც აპირებს გამოიყურებოდეს პატარა რაღაც მსგავსი. თქვენ უფრო მეტი ამ წელს პრობლემა Set 1 სპეციფიკაცია რომელიც წავა ონლაინ პარასკევს. და რას ნიშნავს ეს არის, რომ თქვენ ამიერიდან ვაპირებთ შეძლებს ჩამოტვირთოთ და დააყენოთ პროგრამა მოუწოდა CS50 ელექტრო მოწყობილობების. და თქვენ ვაპირებთ ჩამოტვირთოთ და დააყენოთ ერთი პროგრამა მოუწოდა hypervisor, რომელიც მხოლოდ ლამაზი გზა მიღწევის. თუ თქვენ ფლობდეს Mac ან PC ან Linux კომპიუტერზე ან Solaris კომპიუტერი, ან რასაც გიჟები ოპერაციული სისტემა თქვენ გაშვებული, თქვენ აპირებს ჩამოტვირთოთ პროგრამა მოუწოდა hypervisor, რომ ის, აპირებს CS50 ელექტრო თქვენს კომპიუტერში არ აქვს მნიშვნელობა რა ოპერაციული სისტემა. Hypervisor სხვა სიტყვებით აკონვერტებს ჩვენი პერსონალის ნებისმიერი ენის, რასაც ინსტრუქციები თქვენი საკუთარი კომპიუტერი ესმის. ასე რომ, ეს არის ბაზაში. და ისევ, ეს არის ერთგვარი თემატური კომპიუტერულ მეცნიერების, შენობა თავზე რამ. თქვენ ალბათ Windows. თქვენ ალბათ Mac OS. მაგრამ მომავალი კვირიდან თქვენ აპირებს გადმოწერილი უფასო ნაჭერი პროგრამული უზრუნველყოფა, მოუწოდა hypervisor. თქვენ აპირებს გადმოწერილი ნაჭერი პროგრამული მოუწოდა CS50 ელექტრო მოწყობილობების. რომ აპირებს აწარმოებს hypervisor, რომელიც აპირებს აწარმოებს თქვენს კომპიუტერში. და საბოლოო ჯამში, რომ ყველა ჩვენგანი აქვს მარტივი ფანჯრის მსგავსად, ამისათვის თქვენს Mac ან PC ეს გვაძლევს იმის ილუზია ყველა გაშვებული იგივე ოპერაციული სისტემა, ყოველგვარი სხვა გავლენა თქვენს კომპიუტერში. და თქვენ შეგიძლიათ სრული ეკრანის და არსებითად მოიქცევა თითქოს თქვენ გაშვებული ოპერაციული სისტემის მოუწოდა Linux, რაც CS50 ელექტრო საფუძველზე. მოდით რეალურად გამოიყენოს ეს ახლა წერენ პროგრამას. თქვენ შეგიძლიათ დაწეროთ პროგრამა გამოყენებით Microsoft Word. თქვენ შეგიძლიათ დაწეროთ პროგრამა გამოყენებით TextEdit, ან Notepad, ან WordPad, ან საკმაოდ ბევრი სიტყვა დამუშავების პროგრამა თქვენ ოდესმე გამოყენებული. მაგრამ რეალობა არ უნდა გამოყენება რეალურად ნებისმიერი იმ პროგრამებს. რა თქმა უნდა, არ უნდა გამოიყენოს რაღაც Microsoft Word, რომელიც აქვს თამამი მოსაპირკეთებელი და კურსივით და დიდი შრიფტები და პატარა შრიფტები, იმიტომ, რომ კომპიუტერი არ აინტერესებს რაიმე რომ. ყველა კომპიუტერი აპირებს აინტერესებს არის ინგლისური, როგორიცაა ინსტრუქციები დაწერილი C. ასე რომ ჩვენ ყველაფერს გავაკეთებთ, შიგნით of CS50 ელექტრო მოწყობილობების არის გამოიყენოს პროგრამის თავისუფლად შესაძლებელია, და ეს არის ის, წინასწარ დაყენებული ამ ელექტრო მოუწოდა gedit. და gedit არის მხოლოდ სუპერ მარტივი ტექსტური რედაქტორი, როგორიცაა Mac OS ის ​​TextEdit, როგორიცაა Windows Notepad, რომ აპირებს გამოიყურება პატარა რაღაც მსგავსი. მოდით რეალურად არ შევხედოთ სლაიდები ამ. მაგრამ მოდით რეალურად წასვლას გარემოს თავად. მე ვაპირებ წავიდეთ წინ და შესვლა, ამ სხვა ფანჯარაში, ჩემი CS50 ელექტრო მოწყობილობების, რომელიც მე წინასწარ დაყენებული ჩემს ლეპტოპში აქ. გაითვალისწინეთ, რომ, ისევე როგორც Windows და Mac OS, მას აქვს რამდენიმე მენიუები. როგორიცაა Windows ის აყენებს მას იქ ნაცვლად of Mac OS, რომელიც ხელს უწყობს მას იქ. მაგრამ რეალობა ის არის, რომ ეს ყველა სახის იგივე. და აქ არის მთელი რამოდენიმე პროგრამული უზრუნველყოფა. არსებობს Dropbox. არსებობს მთელი bunch of აქსესუარები, გრაფიკული პროგრამების, რომ ჩვენ გამოყენების შემდეგ ვადის პრობლემა კომპლექტი. არსებობს ბრაუზერში აგებულია ისე, რომ ეს არის სრულფასოვანი კომპიუტერი შიგნით კომპიუტერი. მაგრამ მე ვაპირებ დააწკაპუნეთ ამ leftmost თეთრი ხატია აქ, რომელიც არის ხატი Gedit. და ის აპირებს გახსნას ფანჯარა რომელსაც აქვს სამი პანელები მას, მარცხენა, ყველაზე ერთი და ბოლოში ერთი. ახლა კი ამ ზედა მარჯვენა ერთი, რომ მე ვაპირებ რეალურად წერენ რაღაც კოდი. ასე რომ, მოდით ეს ,. მე ვაპირებ წასვლა ფაილი, შენახვა. და თქვენ შეიძლება არ ოდესმე მინახავს ამ კონკრეტულ ფანჯარაში. მაგრამ ეს, როგორც Mac OS ან Windows. უბრალოდ window ყველა ფოლდერები რომ მე უნდა შიგნით ამ კომპიუტერში. და მე ვაპირებ გადარჩენა ფაილი, როგორც hello.c. და მე ვაპირებ წავიდეთ ადრე და დააჭირეთ Save. და ახლა შეამჩნია მაქვს tab ზედა მარცხენა მოუწოდა hello.c. ასე, ალბათ, საკმაოდ ნაცნობი კი, თუ თქვენ არ გამოიყენება ამ კონკრეტული პროგრამის. და ახლა მე ვაპირებ აკრიფოთ იმ საკმაოდ cryptic თანმიმდევრობა ბრძანებები რომ დავინახეთ მომენტში წინ. მოიცავს, სტანდარტული I / O.h. უფრო, რომ მალე. Int ძირითადი ბათილად, ღია curly გაუწიოს, დახურულ Curly გაუწიოს. და შემდეგ შიგნით არსებობს, მე ვფიქრობ, სადაც ჩვენ გვქონდა "Hello World" მძიმით. და ახლა გადარჩენა. ასე რომ ეს არის პროგრამა დაწერილი C, დაწერილი, ამიტომ კოდი. მაგრამ მე არ შემიძლია უბრალოდ გაუშვით ეს პროგრამა. მე ასეთი მინდა გაორმაგება დააწკაპუნეთ ხატი სადღაც, მაგრამ ხატი არსებობს სხვა ვიდრე კოდის ფაილი. რა, კიდევ ერთხელ, ეს პროცესი ახლა, მე უნდა აწარმოებს ამ ფაილის მეშვეობით? აუდიტორია: შემდგენელი. დევიდ ჯ Malan: ასე რომ, შემდგენელი. ასე რომ, სხვადასხვა კომპიუტერების თქვენ ამისათვის სხვადასხვა გზა. მაგრამ ის, რაც ჩვენ გავაკეთეთ აქ CS50 ელექტრო მოწყობილობების, რომ ის, წარმომადგენელი, თუ როგორ შეიძლება ამისათვის სხვადასხვა სისტემები, არის მე უბრალოდ აპირებს აწარმოებს ბრძანება მოუწოდა მიიღოს. და მიიღოს სიტყვასიტყვით აპირებს ამის გაკეთებას. მე პროგრამა. ასე რომ აპირებს აწარმოებს შემდგენელი ჩემთვის. და პროგრამის სახელი მე მინდა, რომ არის hello. ახლა არის პროგრამა. და არის ჭკვიანი საკმარისი გააცნობიეროს, რომ თუ მე ვიტყვი, რომ hello, ის აპირებს გამოიყურებოდეს ავტომატურად ფაილი სახელად hello.c მხოლოდ იმიტომ, რომ გზა ის კონფიგურაცია. ასე რომ, როდესაც მე ახლა დააჭიროთ აქ, ამ გიჟები cryptic ხაზი უბრალოდ მიიღო შესრულებული. და დამიჯერეთ, სანამ ხანგრძლივი, სულ რაღაც დღეებში, თქვენ მიხვდებით თუ რა ყველა რომ სისულელეა საშუალებით. მაგრამ ახლა, მხოლოდ ის ვიცი, რომ გამოიწვია აღსრულების შემდგენელი. სხვა სიტყვებით, იგი ნაპოვნი შემდგენელი ჩემი კომპიუტერი ეს არის ის, წინასწარ დაყენებული on CS50 ელექტრო მოწყობილობების ის, რომ ჩვენ ხელი თქვენთვის პრობლემა Set 1. და ეს მაშინ აიღო hello.c როგორც input, და წარმოებული, როგორც ჩანს, 0S და 1s გამომავალი. და იყოს რა არ არის ეს ზოგავს იმ 0S და 1s ფაილი სახელად hello. და თუმცა ეს სინტაქსი ძალიან შეიძლება ახალი თქვენ, უბრალოდ განაცხადა dot slash მიესალმები იქნება ნიშნავს, რომელიც მე აწარმოებს ამ პროგრამის. ახლა და მინიმუმ რამდენიმე კვირა, თითქმის ყველა პროგრამა ჩვენ წერენ ვაპირებთ იყოს შავი და თეთრი ტექსტი ფანჯრები. არარის მაუსები, არ დაწკაპვით, ფანჯრები, ხატები. ჩვენ ვაპირებთ, რომ შევინარჩუნოთ ის მარტივი და ფოკუსირება ძირითადი იდეები თავდაპირველად, სანამ ჩვენ რაიმე მაღალ დონეზე, მაგალითად, როგორიცაა შესვენების თამაში, რომ ჩვენ ვისაუბრეთ შესახებ პირველი ლექცია გასულ კვირას. ასე რომ, როდესაც მე დააჭიროთ აქ, ეს ექვივალენტი ტექსტი გარემო გაორმაგება დაწკაპვით ხატი მოუწოდა hello. რას ველოდოთ მოხდეს, როდესაც მე დააჭიროთ შემდეგ? აუდიტორია: ეს კიდე ბეჭდვა "Hello World". დევიდ ჯ Malan: იმედია იქნება ბეჭდვა "Hello World". და მართლაც ასე. ახლა არსებობს გარკვეული cryptic სინტაქსი აქ. მოდით გადახვევა მხოლოდ მომენტი და ვნახოთ, თუ ჩვენ არ შეგიძლიათ inferring მხოლოდ მოუქნელმა, ცდილობს და ვერ, ის, თუ რა ხდება აქ. რა მოხდება, თუ დავაღწიოთ წარმატებული ნ? ახლა ზოგიერთი, ვინც უკვე პროგრამირდება ადრე ალბათ ვიცი მყისიერად რას ნიშნავს. მაგრამ იმ თქვენ, რომლებიც უკვე არასდროს არ პროგრამირდება ადრე, მინიმუმ ვფიქრობ, რომ საკუთარ თავს, რა ხდება შეცვალოს როდესაც მე გამეორება ამ პროგრამის? ამიტომ, მე ვაპირებ დაბრუნდეს ქვემოთ ჩემი პატარა შავი და თეთრი ფანჯარა, რომელიც ფანჯარა, რომელშიც შემიძლია შეადგინოს. მე ვაპირებ გადააკომპილეთ hello. ჩვენ ვაპირებთ, რომ იგივე cryptic თანმიმდევრობა ბრძანებები. და მე ვაპირებ ამის გაკეთებას dot ხაზი hello. და ახლა ვინმე, თუ თქვენ, ვინც არასდროს პროგრამირდება ადრე, რა შეიძლება იყოს განსხვავებული ამ დროს? Yeah. აუდიტორია: ეს არ შეწყვეტენ ბეჭდვა "Hello World". დევიდ ჯ Malan: იგი აპირებს, რომელთა მიზანია: უკაცრავად? აუდიტორია: ეს არ შეწყვეტენ ბეჭდვა ეს? დევიდ ჯ Malan: ეს იქნება არა შეწყვიტოს ბეჭდვა "Hello World". ასე რომ, არ არის ცუდი იდეა. სხვა იდეები? Yeah. აუდიტორია: Error გაგზავნა? დევიდ ჯ Malan: Error გაგზავნა, OK, შეიძლება იყოს. რა? აუდიტორია: ეს შეიძლება ბეჭდვა bracket ერთად მძიმით ისევე? დევიდ ჯ Malan: შესაძლოა ბეჭდვა bracket ერთად მძიმით ისევე. იქნებ, რომ წარმატებული შემდეგ არის რამდენიმე სახის terminous, რომ მნიშვნელოვანია. ნებისმიერი სხვა აზრები? ასე რომ ყველა კარგი იდეები. და რეალურად, ის აპირებს უნდა იყოს შეცდომა. ეს, ალბათ, ყველაზე მეტად უნდა იყოს პასუხი ზოგადი მომდევნო რამდენიმე კვირის განმავლობაში როცა ვისწავლით კოდი აქ. მაგრამ ახლა გვახსოვს, რომ კომპიუტერები მხოლოდ ის, რაც თქვენ ვუთხრა, უნდა გააკეთოს. ისევე როგორც სასაცილოა peanut კარაქი და ჟელე მაგალითად. ჩვენი ადამიანური კომპიუტერი მხოლოდ უნდა ის, რომ რა ვუთხარი, რომ ამის გაკეთება. ასე რომ, ამ შემთხვევაში, თუ თქვენ არ ვუთხრა კომპიუტერი გადავიდეს, რომ მოციმციმე კურსორი შემდეგი ხაზი, ის არ აპირებს ამის გაკეთებას. ასე რომ, როდესაც მე აწარმოებს ამ პროგრამის ახლა შეამჩნია განსხვავება. ჰგავს შეცდომა. ეს ესთეტიკური bug, ალბათ. მაგრამ რა არის ეს გამომავალი წინააღმდეგ ბოლო აშკარად? Yeah. აუდიტორია: ეს არ გააკეთა ახალი ხაზი. დევიდ ჯ Malan: ეს არ გააკეთა ახალი ხაზი. ახლა იმ თქვენ, რომლებიც აქვს იქნებ გააკეთა ვებ გვერდები ადრე, მოგეხსენებათ, რომ BR tag ან მუხლის მე tag, ძალიან მსგავსი სულისკვეთება. ბრაუზერში იგნორირება, სანამ თქვენ გითხრათ, ზუსტად რა უნდა გააკეთოს. ასევე, ენის მსგავსად C მხოლოდ გაკეთებას აპირებს, რაც თქვენ ვუთხრა მას ამის გაკეთება. ასე რომ, იმ მიზეზით, რომ ყველა ეს მაგალითები, ჯერჯერობით, აქვს სახის casually ჰქონდა ამ წარმატებული არსებობს, რომ ის საშუალებით რომელიც თქვენ გამოხატოს თავის როგორც ახალი ხაზი ხასიათი, ასე ვთქვათ. და თქვენ შეგიძლიათ სახის ვაფასებთ, ალბათ, რომ ეს იქნებოდა გამოიყურებოდეს სახის სულელური თუ სხვა არაფერი. თუ მინდოდა ახალი ხაზი, უბრალოდ, hitting შეიყვანეთ და შემდეგ სახის საქართველოს butchering კოდი მოსწონს, რომ არ უნდა ნამდვილად რუბლს თქვენ სწორი გზა. და მაშინაც კი, თუ თქვენ არ ნამდვილად აინტერესებს ამ ეტაპზე, თქვენ გააცნობიეროს, რომ ეს არ არის განსაკუთრებით კარგი ეძებს ნაჭერი კოდი. და მერე რა მსოფლიოში გადაწყვიტა წლის წინ რომ როდესაც გსურთ დააყენოს კურსორი გადატანა ახალი ხაზი პირდაპირ, თქვენ უნდა მკაფიოდ ამბობენ ახალი ხაზი, წარმატებული ნ. და არსებობს რამდენიმე სხვა სიმბოლოები, როგორიცაა, რომ. მაგრამ ახლა ჩვენ უბრალოდ ფოკუსირება წარმატებული ნ. ახლა მოდით პროგრამა ცოტა უფრო საინტერესო. მე ვაპირებ წავიდეთ წინ და ამ დროს ქმნის ახალ ფაილს. მე ვაპირებ, რათა გადავარჩინოთ ეს მიესალმები-1.c. და მხოლოდ ჩათვლით, მე ვაპირებ წასვლა მისი ჩემს Dropbox საქაღალდეში. როგორც თქვენ ხედავთ, რომ CS50 დოკუმენტაცია მოწყობილობების, მოგვიანებით ამ კვირაში პრობლემა კომპლექტი 1, ჩვენ მოგიწოდებთ თქვენ უნდა გამოიყენოთ Dropbox ან ექვივალენტი მომსახურება, იმიტომ, რომ მაშინ ყველა თქვენი კოდი მიერ იქნება გამყარებული ავტომატურად. და ამიტომაც მე წავიდა ამ საქაღალდეში აქ. და ახლა მე ვაპირებ დაწერას ოდნავ განსხვავებული პროგრამა. მოიცავს, სტანდარტული I / O.h, int ძირითადი ბათილად. და შემდეგ აქ printf, Hello World, რომელიც არის ზუსტად იგივე, როგორც ადრე. მაგრამ ახლა მინდა ბეჭდვა რაღაც რომ ცოტა განსხვავებული. მინდა ამობეჭდოთ, ამბობენ, "Hello, დავით." ყველა უფლება, ასე თვალნათლივ, ეს უნდა იმედია იმ შემთხვევაში, რომ, თუ recompile ეს პროგრამა, გამეორება, ის აპირებს ამბობენ, "hello, დავით." მაგრამ რა, თუ მინდა წარმოგიდგინოთ ამ სახის ცვლადი, ცნება კონტეინერი, რომ აპირებს შესანახად D-a-v-i-d და არ არის ძნელი კოდი ის შევიდა ჩემი პროგრამა. კარგად რა დავიწყო ამით რაღაც მსგავსი? სიმებიანი, ასე რომ ეს არის ცვლადი. თუ გსურთ სიმებიანი, a.k.a. სიტყვა ან ფრაზა. თანმიმდევრობა გმირები არის ის, რაც ჩვენ პროგრამირებაში დარეკეთ სიმებიანი. ჩვენ უბრალოდ აპირებს generically დარეკეთ ეს ის, რადგან ეს არის ლამაზი მარტივი სახელი. მაგრამ მე ვერ ეძახით არაფერი. მე ვაპირებ ვთქვა string s უდრის ციტირებას unquote, "დავითი", მძიმით. და ახლა მინდა ჩადეთ D-a-v-i-d შევიდა რა მე ბეჭდვა. და სანამ ჩვენ ვნახეთ teaser on ეკრანზე ზოგიერთი სპეციალური სინტაქსი რომ მოგვცა შემცვლელი ღირებულება. რა იყო განსაკუთრებული სიმბოლო სლაიდებს წინ? ამიტომ პროცენტს. იმ დროს ეს იყო პროცენტიანი დ ათობითი რიცხვი. რომ ნამდვილად არ ჩანს, შესაბამისი აქ. თურმე არსებობს კიდევ ერთი პროცენტი სიმბოლო, რომელიც პროცენტი s, რომელიც დგას ამისთვის placeholder სიმებიანი. ასე რომ, ახლა, ძალიან უბრალოდ, მე ვარ აპირებს წავიდეს მიიღოს hello-1, იმიტომ, რომ ამ ფაილის მოუწოდა მიესალმები-1.c, და დააჭიროთ. და მე ბრალია. რა ხდება? ისე, აქ, სადაც ჩვენ უნდა დაიწყოს ვაფასებ, რომ ჩვენ ამ ბრძანების ონლაინ გარემოს, ამ ტექსტის მხოლოდ გარემო. არ არსებობს დაწკაპვით ხატები როგორც ფოლდერები ახლავე. და ვფიქრობ უკან მომენტში წინ. რა ფოლდერი არ ვამბობ მე გადარჩენის ჩემი კოდი? ასე რომ Dropbox საქაღალდეში. შეეძლო ეწოდა არაფერი. მაგრამ ეს ხდება ე.წ. Dropbox. ასე რომ, მე რატომღაც უნდა ორმაგად დაწკაპეთ რომ Dropbox საქაღალდეში, რათა მიიღონ შევიდა და კიდევ ერთი, ჩემი კოდი მოუწოდა hello-1.c. ფაქტობრივად, ნება მომეცით წავიდეთ წინ და მინიმუმამდე ფანჯრის მხოლოდ ერთი წუთით. ისევე როგორც Windows და Mac OS, არსებობს ფოლდერები Linux. არსებობს ფოლდერები CS50 ელექტრო მოწყობილობების. ეს მხოლოდ ახლა ჩვენ შეზღუდეს თვითონ ამ ტექსტის გარემოში. მაგრამ თუ მე ორმაგი დაჭერით on Dropbox, შეამჩნია არის ფაილი, რომ მინდა კომპილაციის. მაგრამ მე უნდა ეს შავი და თეთრი ტერმინალის ფანჯარაში, ასე ვთქვათ. მაგრამ მე უნდა, აქედან გამომდინარე, გადაადგილება რომ ფოლდერი და დირექტორია. ისე ოდნავ arcane, მაგრამ თქვენ შეეგუება ამას. მსოფლიოში Linux, რაც კიდევ ერთხელ არის ოპერაციული სისტემა ჩვენ გაშვებული შიგნით CS50 ელექტრო, არსებობს ბრძანება მოუწოდა CD. რაც იმას ნიშნავს, მე შემიძლია ამის CD, სივრცე, Dropbox. CD, შეცვალოს დირექტორია. უფლება. უკან დღეს როდესაც ადამიანები გამოგონება კომპიუტერი და ოპერაციული სისტემები, როგორიცაა ამ, მათ სურდათ აკრიფოთ ნაკლები keystrokes შესაძლებელი. ასე რომ, ყველაზე იოლი გზა, ცვლილების დირექტორია იყო CD. ასე რომ, თუ მე მოხვდა CD, სივრცე Dropbox, შეამჩნევთ, თუ რა შეიცვალა. შიგნით ფრჩხილებში ელექტრო სახის საქართველოს humoring მე და ახსენებს, სადაც მე ვარ. ასე რომ ღია ფოლდერი არის Dropbox. თუ მე ახლა აკრიფოთ ls ამისთვის სია, კიდევ ერთხელ ლაკონური, იმიტომ, რომ ხალხს არ სურს ჩაწერეთ უკან დღეში l-i-s-t. ასე რომ, ისინი ნაცვლად გახადა ls. შევა. ყურადღება მიაქციეთ, მე, ორი რამ, hello-1.c, და შემდეგ ამ cryptic რამ, წყარო 1 მ. ეს მხოლოდ ჩემი გზა ამბობდა კოდის კვირა 1 ორშაბათი. რომ საქაღალდეში მე გადმოწერილი CS50 ნახვა, რომ მე მივიღე დღეს და მხოლოდ დააყენა იგი ელექტრო წინასწარ. მაგრამ ახლა ერთადერთი, რაც ჩვენ აინტერესებს მიღების ეს პროგრამა. ასე რომ, როდესაც მე აკრიფოთ მიიღოს hello-1, შეიყვანეთ. რა იგი. რაღაც წავიდა არასწორი. ასე რომ, მოდით აჯავრებენ ამ გარდა. და სამწუხაროდ, ეს არის სადაც რამ კიდევ ცოტა სტრესული, პირველ რიგში, ყოველ შემთხვევაში, თუ გვაქვს არასდროს არ პროგრამირდება ადრე. ჩემი ღმერთი. დავწერე ორი ხაზი პროგრამა და მაქვს ოთხი ხაზები შეცდომები. ასე რომ, რა ხდება აქ. პირველ რიგში, ყოველთვის გადახვევა უკან up და პირველი შეცდომა, რადგან ხშირად შემდგენლები მხოლოდ დაბნეული, რაც თქვენ და მე. Compilers საკმაოდ dumb. ისინი მხოლოდ რა თქვენ ვუთხრა, უნდა გააკეთოს. და თუ აღრეული მათ, ისინი მხოლოდ ვაპირებ სახის გადაყარეთ მათ ხელში და იქნებ იმისათვის, რომ უფრო შეცდომის შეტყობინებები ვიდრე რეალურად შესაბამისი. ასე რომ, მოდით შევხედოთ პირველი. Super cryptic პირველი. მაგრამ შეამჩნია, რომ აქ სახელი ფაილი, რომელიც მე ბრალია როგორც ჩანს. Colon 5, მსხვილი ნაწლავის 5 მხოლოდ იმას ნიშნავს, line 5 მეხუთე ხასიათი. ასე რომ, მეხუთე კოლონის გმირები, თუ თქვენ, შეცდომა. გამოყენება გამოუცხადებელ იდენტიფიკატორი სიმებიანი. ხომ არ იგულისხმეთ სტანდარტული n? არა, მე იმას ნიშნავდა, string. და შემდეგ ეს ერთგვარი გადაწერა და pasting რაც მე აკრეფილი ნამდვილად დავხაზო ყურადღებას, სადაც მე ბრალია. რატომღაც C, ან თუნდაც შემდგენელი არ ესმის სიტყვა string. და ეს იმიტომ, რომ ჩვენ მივიღეთ ეს. ამიტომ სიმებიანი არ არსებობს C. რაც CS50 აკეთებს, პირველი რამდენიმე კვირის განმავლობაში მხოლოდ კლასის, არის ჩვენ გთავაზობთ ზოგიერთი სწავლება დისკები, ასე ვთქვათ. და ჩვენ ამ სასწავლო თვლები შიგნით სპეციალური ფაილი სახელად cs50.h. ასე რომ, ეს მეორე ორი ფაილი სახელები, რომლებიც, როგორც ჩანს, დასრულდება dot h. მოდით გადახვევა. Printf განცხადება ან ფუნქცია რომ როგორც ჩანს, ბეჭდავს რაღაც ეკრანზე. მაგრამ თქვენ ვერ ვხედავ ჩემთვის განახორციელოს printf, მარჯვნივ. ვინმე წლის წინ განხორციელებული printf. რა ფაილი, რომ თქვენ ფსონს ის ან მან დააყენა განხორციელების განთავსების printf, კოდი printf? ფაილი სახელად სტანდარტული I / O.h. ფაქტობრივად, ეს, ალბათ ორი ფაილი: სტანდარტული I / O.h, რომელიც დგას header ფაილი, და სტანდარტული I / O.c, რომელიც დგას C კოდის. ასე რომ მას რამდენიმე წლის წინ plopped კოდი, რომელიც მათ დაწერეს შევიდა, რომ ფაილი ისე, რომ ხალხს ჩვენნაირი წლის შემდეგ შეიძლება შეიცავდეს ეს, ასე ვთქვათ, ჩვენი საკუთარი პროგრამები. და მართლაც, რა ფუნტი ნიშანი მოჰყვა სიტყვა მოიცავს აკეთებს. ეს გამოიყურება ადგილობრივ ხისტ დისკზე, პოულობს ფაილი მოუწოდა სტანდარტული I / O.h, და შემდეგ ეფექტურად ასლები და პასტები შიგნით ჩემი ფაილი. ასე რომ, ახლა ჩემი პროგრამა იცის, როგორ ბეჭდვა ეკრანზე. ასე რომ, ლოგიკა, სადაც არის სიმებიანი განსაზღვრული? აუდიტორია: cs50.h. დევიდ ჯ Malan: cs50.h. და მართლაც, რომ ის, რაც ჩვენ, ძირითადი პერსონალის გაკეთდეს. ჩვენ გამოიგონა რამდენიმე მონაცემთა ტიპები, ასე ვთქვათ, როგორც სიმებიანი, გარდა ამისა, თქვენ პირობა მიიღეთ უფასოდ, როგორიცაა int. და ჩვენ ვხედავთ, სხვების მსგავსად char ხასიათი და კიდევ რამდენიმე. შიგნით CS50.h, როგორც ჩანს, მინიმუმ რამდენიმე ნახსენები სიმებიანი. ასე რომ, ახლა ნება მომეცით წავიდეთ წინ და გამეორება მიიღოს hello-1. მე მიუახლოვდით კვლავ გადაკვეთა ჩემი თითები. ახლა, რომელმაც ერთი შეცვლა მე დაფიქსირდა საუკეთესო რამ. მაგრამ რა იგი. მეტი პროცენტით, ვიდრე მონაცემები არგუმენტები. რა გავაკეთო არასწორი ამ დროს? ასე რომ ჯერ კიდევ საკმაოდ cryptic. მაგრამ ეს შეცდომა არის 7 ხაზი და ხასიათი 21. მოდით წავიდეთ შევხედოთ აქ. ეს არის პატარა დახვეწილი. მაგრამ თუ თქვენ ფიქრობთ იმაზე, თუ რა ფუნდამენტური იდეები აქ, ალბათ, შეგვიძლია აჯავრებენ ამ გარდა. ამიტომ printf სახელით ფუნქცია. ფრჩხილებში, ჯერჯერობით არის ისევე რაც ჩვენ გარშემო პერსონალის ჩვენ გავლის საშუალებებით ფუნქცია. ყველა უფლება, მხოლოდ თვითნებური ადამიანის კონვენცია. გამოიყენოთ ფრჩხილებში. შიგნით იმ ფრჩხილებში ჩვენ უკვე აყენებს ორმაგ ბრჭყალებში, და შემდეგ სიმებიანი როგორც "Hello World". არამედ ის, რომ ადრე მაგალითად ძალიან მოკლედ ხომ არ შევხედოთ Scratch. და ჩვენ გვქონდა პროცენტი d, რა შიგნით იმ ფრჩხილებში რომ დავურეკე out სიტყვიერი? Yeah. აუდიტორია: ასე რომ ის, რაც თქვენ მიღების [INAUDIBLE] შიგნით [INAUDIBLE] ის, რაც ამ [INAUDIBLE]? დევიდ ჯ Malan: ზუსტად. ამიტომ ჩვენ გვქონდა პროცენტი დ. მაგრამ მაშინ ჩვენ მჭიდრო გაცემა, მძიმე, counter. უფლება. ჩვენ მითითებული, რაც ჩვენ გვინდა იმას, placeholder. მერე რა მე ვაპირებ აქ არის მძიმე, რა გინდა ჩემთვის? აუდიტორია: S. დევიდ ჯ Malan: S, იმიტომ, რომ ის ამ შემთხვევაში არის სახელი შენახვის კონტეინერი. ეს სახელი რომ შუშის თასი. მანამდე ეს იყო counter რომ მარტივი Scratch მაგალითად, ჩვენ შევხედე. ასე რომ, ახლა, რომელმაც ორი ცვლილებები, ნება მომეცით zoom და ცდილობენ კიდევ ერთხელ შეადგინონ ამ პროგრამის. ახლა ვხედავ, რომ cryptic ონლაინ. მაგრამ ეს, ფაქტობრივად, მომხმარებლის სახელი შემდგენელი. Clang არის სახელი შემდგენელი. მიიღოს მხოლოდ გადარჩენის ჩემთვის თავის ტკივილი ოდესმე ბეჭდვის, რომ ხანგრძლივი გიჟები ბრძანება out. ახლა, თუ არ dot slash მიესალმები-1, მე უნდა დაინახოს "hello, დავით." საკმაოდ underwhelming, თუმცა, არა? შეგვეძლო გავაკეთეთ ეს ბევრად უფრო მარტივად გარეშე ვსაუბრობთ ცვლადები და CS50.h და ყველა რომ. ასე რომ, მოდით ეს ცოტა უფრო საინტერესო. გარდა CS50.h, მქონე რამ, როგორიცაა სიმებიანი განაცხადა, რომ CS50 ბიბლიოთეკა ასევე აქვს რამდენიმე ფუნქცია. ასე რომ, ისევე წლის წინ, ვიღაცამ დაწერა printf და მისი სტანდარტული I / O.h და ზოგიერთი სხვა ფაილი. ჩვენ, CS50 პერსონალი, წერდა ფუნქცია ე.წ. GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, და ჩვენ შიგნით ფაილი ე.წ. CS50.h და CS50.c. და ჩვენ მათ შიგნით of CS50 ელექტრო მოწყობილობების. და ადამიანები, ასევე შეგიძლიათ უფასო მათ ამჟამად, თუ ისინი გვინდა, რომ დააყენა მათ საკუთარი კომპიუტერი, ისევე. რაც უნდა ითქვას, რომ ჩვენ შევქმენით ფუნქციები, რომელიც მიიღოს შეყვანის შესახებ. მე არ ვიცი, რა ყველა ამ მონაცემთა ტიპები. GetInt სახის პირდაპირი, როგორიცაა მთელი რიცხვი რატომღაც შესახებ. და GetString არის ალბათ მისაღებად სიტყვა ან სასჯელის შესახებ. ასე რომ, მოდით ფოკუსირება რომ. და მე ვაპირებ დაბრუნდეს ელექტრო და მე ვაპირებ წავიდეთ წინ და გადარჩენა ამ ფაილს, როგორც, მოდით, ეს მიესალმები-2.c როგორც ჩემი მეორე ვერსია. და მოდით რამდენიმე ცვლილებები. ამ დროს ნაცვლად მძიმე კოდირების დევიდ, რომელიც რაც თანმიმდევრულია მაგრამ underwhelming პროგრამა, რა მოხდება, თუ მე ნაცვლად ასე GetString? ახლა შეამჩნია GetString აქვს ღია ფრჩხილებში, დახურული ფრჩხილებში, იმიტომ, ის არ საჭიროებს რაიმე შეყვანის. ეს მხოლოდ აპირებს წავიდეთ მისაღებად string საწყისი მომხმარებელს. და ახლა სიტყვა სხვა სინტაქსი. Semicolons უბრალოდ დასრულდება ხაზი კოდი. თქვენ არ გჭირდებათ მათ ყველგან. მაგრამ ეს მხოლოდ იმას ნიშნავს, რომ მე ვარ გაკეთდეს ამ ხაზი კოდი. ნება მომეცით გადაადგილება გადატანა სხვა განაცხადი ან ფუნქცია. სიმებიანი აცხადებს ცვლადი. სიმებიანი ჰგავს ამბობდა მომეცი თასი, გთხოვთ. და ნება მიბოძეთ სიმებიანი იგი. და ახლა თანაბარი ნიშანი. რა არის თანაბარი ნიშანი არსებითად ექვივალენტური? აუდიტორია: მიანიჭეთ. დევიდ ჯ Malan: ჰო, მინიჭების ღირებულება. ასე რომ, თუ მე, მაგალითად, დარეკეთ ამ ფუნქციის GetString, და ჩვენ ვხედავთ მომენტში, რომ ის, ვაპირებთ შეეკითხება მომხმარებელს ამისთვის სიმებიანი. ეს არის, როგორც მაძლევენ, მაშინ დაწერა D-a-v-i-d ნაჭერი ქაღალდი. და როდესაც ვამბობ, string ტოლია GetString, თანაბარი ნამდვილად არ ნიშნავს თანაბარი C პროგრამირების. ეს იმას ნიშნავს დაავალოს, მარჯვენა ფლანგიდან მხარეს მარცხენა მხარეს. ასე რომ, მე მიღებული სიმებიანი. და თანაბარი ნიშანი ნიშნავს, რომ ეს შენახვის კონტეინერი მოუწოდა. და მაშინ გაივლის ამ off printf რეალურად ამის გაკეთება რამ. ასე რომ საბოლოო ჯამში, შემდეგ აპირებს გამოიყურება ცოტა განსხვავებული. მოდით მიიღოს hello-2. ან ვერ იმუშავებს. თქვენ შემდეგ ერთად. მიიღოს hello 2 მუშაობდა. Dot slash მიესალმები-2, შეიყვანეთ. მე, როგორც ჩანს, აქვს უსასრულო loop ან რაღაც. არაფერი ხდება. რატომ? აუდიტორია: ეს მიღების უსასრულო ციკლი. დევიდ ჯ Malan: ეს არის უსასრულო ციკლი. ეს არის სახის მელოდება რეალურად, გაუწიონ მას გარკვეულ შეყვანის. ნება მომეცით წავიდეთ წინ და ტიპის დავით, და დააჭიროთ. და ახლა იგი აცხადებს, "hello, დავით." თუ მე აწარმოებს კიდევ ერთხელ. მოდით ჩაწერეთ Rob, "Hello, რობ". ახლა ეს არის ყველაზე ცუდი ინტერფეისი ოდესმე. შესახებ, როგორც ჩანს, უნდა იცოდეს, რა უნდა გააკეთოს. მაგრამ არა აქვს მნიშვნელობა. გამოყენებით ამ იმავე შენობაში ბლოკები ისევე, როგორც Scratch, ჩვენ შეგვიძლია ამ პრობლემის გადაწყვეტა და აცხადებენ, რაღაც, როგორიცაა თქვენი სახელი, გთხოვთ, მსხვილი ნაწლავის, ფართი, დახურული ციტირებით ახლოს ფრჩხილებში, მძიმით. ასე, რომ ბევრი კიდევ ერთხელ სისულელეებისთვის ერთად სინტაქსის. მაგრამ შეამჩნია მე უბრალოდ დასძინა თავსატეხი ცალი ზემოთ ამ ერთი და ზემოთ ერთი. ახლა, თუ გამეორება ამ, hello-2, შეიყვანეთ. დაველოდოთ წუთში. რა არის არასწორი? ის არ იქცეოდა სხვაგვარად. Yeah. აუდიტორია: თქვენ არ აწარმოებს, რათა კიდევ ერთხელ. დევიდ ჯ Malan: მე არ აწარმოებს გააკეთოს ერთხელ, მარჯვნივ. ასე რომ, მე შეიცვალა ჩემი კოდი. თუმცა ისევ და ისევ, იქ რომ ნაკადის. კოდის მეშვეობით შემდგენელი აძლევს თქვენ ახალი ობიექტის კოდი, ან 0S და 1s. ასე რომ, მე უნდა რეალურად გამეორება მიიღოს hello 2 შეიყვანეთ. OK, რაღაც ჩანს არ მოხდა. Dot slash მიესალმები-2. თქვენი სახელი გთხოვთ. და იყოს ნათელი ახლა, რატომ არის კურსორი იმავე ხაზის? ზუსტად. მე არ დააყენა წარმატებული n აქ ჩემი კოდი. ასე რომ, ახლა მე შემიძლია წერა რაღაც Daven, შეიყვანეთ. შემიძლია გაუშვით ერთხელ და აკრიფოთ რაღაც Gabe, შეიყვანეთ და ჩვენ მივიღებთ სხვადასხვა პროგრამა ისევ და ისევ და ისევ. ახლა საბოლოოდ ჩვენ ვაპირებთ უნდა გამოიყენოს რამდენიმე სხვადასხვა შესაძლებლობები. უნდა დავნერგოთ საბოლოოდ გარკვეული პირობები გავაკეთოთ რამ, პირობითად. შესაძლოა მარყუჟების ამიტომ ჩვენ შეგვიძლია გავაკეთოთ რამ ისევ და ისევ. იქნებ ეს იქნება კარგი, თუ ჩვენ შეიძლება განახორციელოს საკუთარი ფუნქციები, ისევე, როგორც ჩვენ შეგვიძლია განვახორციელოთ ჩვენი printf და საკუთარი ვერსია GetString და GetFlow, რადგან საბოლოო ჯამში კი გამოყენებით ამ ბრძანების გარემო შეგვიძლია გავაკეთოთ თუნდაც ყველაზე ვიზუალურად საინტერესო რამ. მართლაც დასკვნა ნება მომეცით ამის გაკეთება. მე ვაპირებ წავიდეთ წინ და დახურეთ ეს ფანჯარა და გახსნა ეს ხატი აქ, რომელიც მხოლოდ დიდი ვერსია, რომ ჩართული ტერმინალის ფანჯარაში. ასე Gedit არა მხოლოდ ადგილი ჩემი კოდი, მაგრამ ასევე აშენდა ტერმინალის ფანჯარა, შავი და თეთრი ფანჯარა, სადაც შემიძლია აწარმოებს ბრძანებები. უბრალოდ მოხდა გახსნა დიდი ვერსია ამ. და ახლა მე ვაპირებ წასვლას საქაღალდეში, რომ მე უკვე ბოლო წინასწარ თქმა უნდა ნახვა. და მე ვაპირებ წავიდეთ წინ და გახსნა ფაილი სახელად thadgavin.c, რომელიც დაიწერა ვინმე. და თუ ჩვენ გადავხედავთ, ეს არ არის იმ ტიპის კოდი ჩვენ უნდა წერა მას შემდეგ, რაც მიზანი ამ კოდი დაეწერა prettiest ეძებს კოდი, რომ მას შეეძლო, მიუხედავად იმისა, არის თუ არა სხვა ადამიანის ოდესმე გაგება კოდი. რა თქმა უნდა, ყოველ წელს არის ის, რაც არის ე.წ. obfuscated C კონკურსში, რომელიც არის ნამდვილი geeks, რომლებიც წერენ კოდი, რომელიც არავინ წაიკითხოს, მაგრამ ეს იმას რაღაც ან ძალიან მარტივი და მართლაც საოცარი. და გვეგონა ჩვენ ავღნიშნო დადოს ამ სახეს ის, რაც საკმაოდ გასაოცარი თქვენ შეიძლება არ მინახავს ერთხელ ადრე. მაგრამ ჩვენ დასრულდება ამ შენიშვნა, dot ხაზი, thadgavin. ეს მაშინ არის, თუ რა ელის. სწორედ ეს CS50. ვნახავთ თქვენ ოთხშაბათს. [მუსიკის დაკვრა]