[მუსიკის დაკვრა] DAVID Malan: ყველა უფლება, ეს არის CS50 და ეს არის ბოლომდე კვირაში ერთი. ამიტომ მინდა წარმოგიდგინოთ ჩემი ყოფილი advisee, Andel Duff, რომელიც არა მარტო იღებს iPhone 5 დგას, ისევე, როგორც ეს lectern, მან ასევე იღებს მანქანა. ANSEL DUFF: როგორ მიდის, ყველას? მინდა გითხრათ, ცოტა ცოტა შესახებ Formula SAE, რომელიც მე ვარ კაპიტანი. ის MIT გუნდი. მინდა გითხრათ, ბიჭები ცოტა შესახებ და იმედია გენერირება გარკვეული ინტერესი. ნება მომეცით აწარმოებს მეშვეობით რამდენიმე რამ ჩვენი გუნდი. ასე რომ, ჩვენ სრულიად სტუდენტური პერსპექტივაში, სადაც ყველა წევრთა დიზაინი, სიმულაცია, ტესტი, და მწარმოებელი ქვესისტემის მანქანა. ჩვენ გვაქვს ჩვენი საკუთარი მანქანა მაღაზია და ავტოფარეხების, და N52-- ან უკაცრავად, N51-- რომელიც იმავე შენობაში როგორც MIT მეცნიერების მუზეუმი. და ჩვენ ვართ ხალხი, რომ მართოს ავტომობილი. არსებობს ეროვნული კონკურსი დასაწყისში ზაფხულში, და მაშინ არსებობს პატარა სროლების შედეგად კონკურსები მთელი წლის განმავლობაში. და შემდეგ ჩვენ მძღოლი სასწავლო დღის მისაღებად ახალი წევრები გაეცნენ. ჩვენი ავაშენოთ დღის არიან შაბათს 11 საათიდან საღამოს 8 საათამდე. სადილი და ვახშამი ზრუნვა , საწყისი Bertucci და Beantown შესაბამისად. ჩვენ გვაქვს ყოველკვირეული შეხვედრა და სემინარი, რომელიც რა თქმა უნდა საკრედიტო. რომელიც არის ახალი როგორც ამ სემესტრში, და იგი ასევე იქნება მომავალ სემესტრში, ასე რომ თქვენ შეგიძლიათ ჯვარედინი reg რომ. და შემდეგ ჩვენ გვაქვს პროექტირება, მაღაზია, და CAD დღის კვირის განმავლობაში, , ხოლო წევრები დამოუკიდებლად CAD ნაწილები, რათა საფონდო et cetera. ასე რომ, ელექტრო საინჟინრო გუნდი ჩვენ გვაქვს ჩვენი წევის, მაღალი ძაბვის სისტემა, რომელიც ეშვება ნომინალური 300 ვოლტი, რომელიც მოიცავს motors, საავტომობილო კონტროლერები, და ბატარეის პაკეტები. მაშინ ჩვენ გვაქვს დაბალი ძაბვის სისტემა, რომელიც გადის 12 ვ, რომელიც მოიცავს კონტროლის, შეგიძლიათ კვანძების, ტვინის ყუთი და დაფა. რამდენადაც CS მიდის, ჩვენ გავაკეთებთ აქვს ნახვა შენარჩუნება რომ ჩვენ გვჭირდება კეთდება მოვლენების, წევრობის ცვლილებების, ახალი სურათები და PR მასალა. და შემდეგ ჩვენ გვაქვს კოდი, რომელიც აკონტროლებს მანქანაში ჩვენი წევის კონტროლის, დაიწყოს კონტროლი, dash კონტროლი, მბრუნავი ვექტორის, და რეგენერაციული დამუხრუჭება სისტემა, რომელიც აწარმოებს, როგორც წესი, MATLAB, Simulink და LabView. მინდა გითხრათ, ცოტა მანქანა. ასე რომ დაახლოებით 500 ფუნტი. ეს წესები შემოიფარგლება 85 კილოვატი. მას აქვს 2 EMRAX 207 ძრავების უკან თითო უკანა წამყვანი. მას აქვს საბაჟო აშენდა ბატარეის პაკეტები საწყისი პრიზმული A123 ჩანთა საკნები, საერთო ღირებულება 300 ვოლტი და 5.6 კილოვატ საათი. და ეს პირდაპირი დისკი 2.64 1 ტარების ფარდობა. აქ არის რამოდენიმე სურათები ჩვენ აიღო იგი კონკურსში. აი უკან, ცხვირი კონუსური, და აქ motors, იმ big black დისკები ქვეშ et მამაკაცები Manus. აი სლაიდი, რომელიც მე გამოყვანილია ჩვენი კონკურსის სქემა. და ეს მხოლოდ შედარებით ჩვენი მანქანას რამდენიმე კომერციულად ხელმისაწვდომი მანქანა, როგორიცაა KTM XBOW, Ariel Atom და Caterha M 7-280. თუ თქვენ იცნობს ფასი, ელექტრო გაიყვანოს წონა, დოლარს ცხენის, აშშ დოლარს მომენტი, და ჩვენი მანქანა აზვიადებს მათ ყველა out of წყალი. თუ თქვენ გაქვთ რაიმე შეკითხვები, jot ქვემოთ ამ ელექტრონული ფოსტის მისამართი. სროლა წერილი ზე fsae@mit.edu. ჩვენ მოხარული ვიქნებით, ვისაუბროთ არაფერი მინდა. ჰარვარდის სტუდენტი არის ერთგვარი უმცირესობის გუნდი. თუ თქვენ გაქვთ რაიმე შეკითხვები რომ გთხოვთ დახვრიტეს ჩვენთან წერილი, მოხარული ვარ, რომ გაიგო, და მე ვაპირებ უხელმძღვანელებს თავში მეტი დავით. მადლობა. მე ვაფასებ მას, ბიჭები. [ტაში] დავით Malan: ანსელ ზაფხული გაატარა ჩვენთან აქ კამპუსში CS50 ამ ზაფხულს. და გარდა ამისა, მუშაობა რამ, როგორიცაა ორობითი ნათურებით, მან რეალურად გავხსენით eyes-- და აფეთქდა particular-- to რა კვეთა არა აპარატურის და პროგრამული უზრუნველყოფის შეიძლება იყოს. სინამდვილეში ბევრი რამ, ის უბრალოდ დაათვალიერა თქვენ მეშვეობით, საბოლოო ჯამში, შეიქმნა პროგრამული უზრუნველყოფა, და მაშინ საბოლოოდ შეთითხნილი რეალურ სამყაროში აპარატურა. ასე რომ, თუ თქვენ დაინტერესებული შეისწავლოს, რომ გადაკვეთაზე, ალბათ დასჭირდეს, რომ ჯგუფი. ახლა კი, ვინც თქვენ რომლებიც თაყვანისმცემლებს ტექნოლოგია, და Apple პროდუქცია კერძოდ ვიცით, რომ არსებობს იყო რამდენიმე განცხადებები გუშინ. მაგრამ გვეგონა ჩვენ ავღნიშნო ნახოთ თქვენ ერთი რომ გამოვიდა რამდენიმე დღით ადრე, რომ თქვენ შეიძლება არ მინახავს. იურგენ EGHAMMER: თქვენ იცით, ერთხელ awhile რაღაც მოდის ერთად, რომ ცვლის გზა ჩვენ ვცხოვრობთ. მოწყობილობის ასე მარტივი და ინტუიციური გამოყენებით იგი გრძნობს თითქმის ნაცნობი. გაცნობა 2015 IKEA კატალოგი. ეს არ არის ციფრული წიგნი ან e-book, ეს წიგნი წიგნში. პირველი, რაც უნდა აღვნიშნოთ, არის კაბელები, არც დენის კაბელი. 2015 IKEA კატალოგი გააჩნია სრულად ბრალი, და ბატარეის არის მარადიული. ინტერფეისი არის 7.5 8 inches, მაგრამ შეგიძლიათ გაფართოებას 15 8 inches. ნავიგაცია ეფუძნება ხელით შეხება ტექნოლოგია, რომელიც თქვენ შეგიძლიათ რეალურად ვგრძნობთ. შინაარსი მოდის წინასწარ დაყენებული მეშვეობით 328 მაღალი განმარტება გვერდები ინსპირირებით სახლში მოსაპირკეთებელი იდეები. რათა დაიწყოს ათვალიერებს, უბრალოდ შეეხოთ და დასაბამი. მარჯვენა და მარცხენა წინსვლა, მარცხნიდან მარჯვნივ გადაინაცვლებს უკან. შეამჩნია რაღაც? სწორედ უფლება. არ გარკვეული შუალედი. თითოეულ ნათელია გვერდი იტვირთება მომენტალურად, არ აქვს მნიშვნელობა, თუ რამდენად სწრაფად თქვენ გადახვევა. თუ გვინდა, რომ მიიღოს სწრაფი მიმოხილვა, უბრალოდ გამართავს ის პალმის თქვენი მხრივ, და გამოყენებით მხოლოდ თქვენი thumb, სიჩქარე დაათვალიეროთ შინაარსი. თუ თქვენთვის რაიმე გინდათ გადარჩენა მოგვიანებით, შეგიძლიათ უბრალოდ დაიმახსოვრეთ ეს. და მაშინაც კი, თუ თქვენ დახურეთ პროგრამა, თქვენ შეგიძლიათ მარტივად მოვძებნოთ bookmark ერთხელ. საოცარი. [სიცილი] [ტაში] ასე რომ მოაქვს ბოლოს კვირაში ერთი. რამდენიმე განცხადებები არ არის. ასე sectioning არის პროგრესი. ამ URL აქ სადღაც შორის არის და პარასკევს შუადღისას რეალურად დააკონკრეტა, თუ არა არის იმ ნაკლებად კომფორტული, უფრო კომფორტული, ან სადღაც შორის. ეს არის, როგორც წესი, ერთი იმ რამ, რომ თქვენ უბრალოდ სახის ვიცით. და, ფაქტობრივად, იმ თქვენ, რომლებიც ნაკლებად კომფორტული, ალბათ იცით, როგორც ბევრი რამ, იმ თქვენ, რომლებიც უფრო კომფორტული იმდენი ვიცი, და ისევ, თუ თქვენ არ დანამდვილებით რომელიც იმ თაიგულების მოხვდება თქვენ ალბათ სადღაც შორის. მაგრამ დანარჩენი დავრწმუნდი, რომ თქვენ შეგიძლიათ სვოპ შემდეგ რამდენიმე კვირის განმავლობაში, თუ საჭირო იქნება. ამასობაში, ერთი კვირის განმავლობაში ჩვენ არ დაიწყება სექციები თავისთავად, მაგრამ super სექციები, რომლებიც ღიაა ყველა სტუდენტს. ამ მოდის კვირა ადგილას to გამოცხადდება, რა თქმა უნდა ნახვა გვექნება ერთი იმ ნაკლებად კომფორტული, ისევე, როგორც ერთი იმ უფრო კომფორტული. და იმ სადღაც შორის შეგვიძლია ავირჩიოთ, რომელიც ამ ორი, ან ორივე, თუ გსურთ, რომ დასხდნენ-ზე. და აქცენტი იმ იქნება საბოლოო ჯამში, C, რომელიც ჩვენ გავაგრძელებთ საუბარი დღეს. პრობლემა მითითებული 0 ამასობაში იმედია თქვენს ხელშია. ოფიციალურად გამო ხვალ, ხუთშაბათი, შუადღისას. თუ თქვენ ფულადი ერთ თქვენი 5 გვიან დღით, რაც ხელს შეუწყობს მას სანამ პარასკევს შუადღისას. პრობლემა კომპლექტი 1 იმავდროულად იქნება განთავსებული კურსის ნახვა. და ეს იქნება ჩვენი პირველი ნაბიჯი, როგორც კლასი C. და რომ პრობლემა კომპლექტი სპეც იქნება ფეხით თქვენ ბევრი რამ მექანიკის რა ჩვენ დავიწყეთ ლაპარაკი ორშაბათს, და ჩვენ გავაგრძელებთ დღეს ვსაუბრობთ. C, Linux, CS50 ელექტრო, ყველა რომ თქვენ გელოდებათ დაზუსტება. ოფისი საათის იმავდროულად მიმდინარეობს, იმ საბაკალავრო და სატრაპეზო. უხელმძღვანელებს ამ URL აქ, რომ ნახოთ გრაფიკი დღეს და ხვალ, თუ გსურთ, რომ მიეღოთ. კითხვები იმავდროულად, ასე რომ თქვენ გვაქვს შესაძლებლობა, დასვან შეკითხვები asynchronously, 24/7, გააცნობიეროს, რომ თქვენ არ შემოიფარგლება სექციები და ოფისი საათი, არამედ ეს ინსტრუმენტი აქ, CS50 იმსჯელებს იმ URL იქნება, რა თქმა უნდა ონლაინ ფორუმს პროგრამული უზრუნველყოფა, რომლის მეშვეობით შეგიძლიათ შეკითხვები თანაკლასელები და ასევე პერსონალი. ასე რომ, გახსოვდეთ, რომ რესურსი ასევე. ამასობაში ტრადიცია იწყება ამ პარასკევს. როგორც თქვენ შესაძლოა glimpsed საწყისი ბოლო ოთხშაბათს teaser ვიდეო, ჩვენ გვაქვს ტრადიცია ყველაზე ყოველ პარასკევს დროს ტერმინი აღების 50 სტუდენტი და თანამშრომლებს, ადგილობრივ რესტორანში მოუწოდა ცეცხლი და ყინულის, რომელსაც ჩვენ როგორც წესი, შეუერთდა ზოგიერთი სტუდენტებისთვის ან მეგობრებთან ინდუსტრიის ზოგადად მისწრაფება რათა დიდი კლასი გრძნობს პატარა. ასე რომ, ეს სრულიად ჩვეულებრივი სადილი. Bunch of us, პერსონალი განსაკუთრებით, ითამაშებს მუსიკალური სკამები და ესაუბროთ სტუდენტები შესახებ 50, ცხოვრების გარეთ 50, ცხოვრება მომავალში, რეალურ სამყაროში, ვსაუბრობ სამუშაო შესაძლებლობები მეგობრებთან ერთად ინდუსტრიაში. ასე რომ, თუ გვინდა, რომ შემოგვიერთდნენ ამ პარასკევს, უხელმძღვანელებს ამ URL აქ. ფართი არის შეზღუდული, მაგრამ ჩვენ ყველაფერს გავაკეთებთ ამ recurringly მთელი ვადის განმავლობაში. უხელმძღვანელებს იქ cs50.harvard.edu/rsvp. და თუ არ მიიღონ ამ დროს, არ ინერვიულოთ. ჩვენ ყველაფერს გავაკეთებთ, კიდევ ერთხელ მომავალ კვირაში ასევე. ასე რომ, ეს არის სურათზე ჩვენ მოხატული გასულ კვირას, და თქვენ ალბათ ყოფილა dabbling in დღემდე. მაგრამ მოდით ცდილობენ დაკავშირება ახლა ის, რასაც ჩვენ ვაპირებთ, რომ გავაკეთოთ დღეს და შემდგომი. შეიძლება მე მაქვს ერთი მოხალისე? ყველა უფლება, ან რამდენიმე. როგორ შესახებ აქ ბოლოს და ბოლოს, ლურჯი პერანგი. მოდის up, რა გქვია? ალანა: Alana. დავით Malan: Alana. ასე რომ, Alana, მხოლოდ მომენტში ლამაზი შეხვდება you-- აპირებს როლი ამ ფუნქციას აქ. Purple ბლოკის ჩვენ ე.წ. დღემდე ფუნქცია. ასე რომ, რაც მე ვაპირებ წასვლა წინ აქ და გთავაზობთ Alana არის პატარა სახელი აქვს, რათა გაურკვეველია, რა როლი თქვენ თამაშში. ასე, რომ თქვენ უნდა იყოს ვთქვათ ბლოკი. თუ გვინდა, რომ წავიდეთ წინ და ამით, რომ. და ჩვენ ვაპირებთ შენარჩუნება ეს სუპერ მარტივი. თუ მიზანი მხრივ უბრალოდ ახლა განსახორციელებლად ალანა, ამ ე.წ. ამბობენ ბლოკი, აი როგორ იმუშავებს. მე ჰქონდეს მოდით ეძახით არგუმენტი ან პარამეტრი, ეს უბრალოდ ცარიელი ფურცელი. და ეს თეთრი სახის იყოს თქვენში თეთრი ყუთი, რომელიც თქვენ შეგიძლიათ დაწეროთ სიტყვა. ამასობაში მე ვაპირებ წავიდეთ აქ. მე ვაპირებ წავიდეთ წინ და დაწერეთ H-E-L-L-O მძიმე მსოფლიოში. და ახლა, როგორც ამბობენ, პროგრამისტი, არ რეალურად, თუ როგორ უნდა ვთქვა რაღაც. შემიძლია ამუშავება ერთად სიტყვები, მაგრამ მე არ ემთხვეოდეს ვიცი, როგორ გამოვხატო საკუთარი თავი ზეპირი ან ეკრანზე. და მერე რა, მე ვაპირებ გააკეთოთ მიიღოს ამ ცალი ფუნქციონირება, რომლის შეყვანის ან არგუმენტი, როგორც ჩვენ მას ვუწოდებთ, მე დაწერილი ამ ნაჭერი paper-- და მე ვაპირებ, რომ გამოაცხადოს იგი. და მართლაც, რომ ის როლი, რომელიც ფუნქციების პროგრამირების ენა შეუძლია. რაღაც ვთქვათ ბლოკი უნდა outsourced რომ ვინც ნამდვილად იცის რა ან მას საუბარი. ასე რომ, თუ თქვენ ნაბიჯ მეტი აქ მხოლოდ ერთი წუთით, მე ვაპირებ, რომ გაიარონ ამ შეყვანის Alana და ვთხოვთ, რომ თქვენ აცხადებენ, რომ ეს შეყვანა. ალანა: Hello, world. დავით Malan: ეს არის ის. ასე რომ, არ არის ფუნქცია. ახლა ჩვენ შეგვიძლია მას ცოტა მეტი, ჩვენ შეგვიძლია მიიღოს წინგადადგმული ნაბიჯი აქ. იმიტომ, რომ აშკარად underwhelming. მოდით ახლა გარდაქმნას ეს რაღაც უფრო დახვეწილი. ასე რომ, ეს, რა თქმა უნდა, ჩვენი C ვერსია. ახლა, თუ გსურთ მიიღოს, რომ ერთი off, რომ სახელი tag off, და მოდით დააყენა ახალი სახელი. მაგრამ ძირეულად თქვენ იგივე როლს თამაშობდნენ, ეს ასე მოხდება ეწოდოს printf ახლა. ამბავი, რა თქმა უნდა, აპირებს be-- ალბათ ისევე როგორც underwhelming-- არის იქნება შემდეგ. თქვენ ახლა ფუნქცია printf. მე ვარ აბონენტის, ან პროგრამისტი, რომელსაც სურს დავდგეთ მხრებზე ხალხს წარსულში, როგორც თქვენ, ვინც უკვე figured, თუ როგორ რეალურად წერენ რაღაც ქვემოთ. ასე რომ, ამ დროს, ვიდრე ამბობენ, რომ მოდით რეალურად გამოიყენოს ჩვენი ეკრანზე მეტი აქ. ასე რომ, თუ გსურთ, რომ ნაბიჯ მეტი აქ, მე ვაპირებ გაივლის კიდევ ერთხელ, რომ ეს input ჩემი printf მეგობარი. თუ შეიძლება წავიდეთ წინ და ბეჭდვა ეკრანზე, უბრალოდ ნახატი თქვენი თითის შავ ეკრანზე. შესანიშნავი. ყველა უფლება, ასე უამრავი შეჩერების როგორ, რომ აპირებს ითამაშოს out. ასე რომ, ახლა ავიღოთ რამ up ერთი საბოლოო დონის, თუ ჩვენ შეგვიძლია, ასეთია. ასე რომ, ეს არის C პროგრამა როგორც ჩვენ განაცხადა ბოლო დროს. და ეს უბრალოდ აკეთებს იმას, რაც გააკეთა, ეს ბეჭდავს ეკრანზე, hello, world. მიუხედავად იმისა, რომ აშკარად ბევრი გადატანის პერსონალის up there. მაგრამ ავიღოთ რამ up მაღალი დონის და ამ თანამედროვე ვერსია, რომელიც გავიხსენოთ იყო მესამე ვერსია, რომ დასრულდა ბოლო დროს. და ახლა იქ ნათლად ორ გამოყენების printf. არსებობს 2 ზარები Alana ამ შემთხვევაში printf, მაგრამ არსებობს ასევე მოწოდება სხვა ფუნქცია. რა არის ეს ფუნქცია აშკარად? GetString. შეგვიძლია კიდევ ერთი მოხალისე? OK, მოდის up. რა გქვია? JAVIER: Javier. დავით Malan: Javier, მოდის up. ასე რომ ხავიერ როლი არის ამ ცალი ქაღალდის. რომელიც მე ვაპირებ მოვუწოდო generically s. ახლა ეს არის ცვლადი, ეს ტიპის სიმებიანი, როგორც ითვალისწინებს მიერ, რომელიც მეორე ხაზი შუა არსებობს. და მე მინდა თქვენ წავიდეთ მისაღებად ჩემს სიმებიანი. კონკრეტულად უხელმძღვანელებს ქვემოთ ორკესტრი განყოფილება და კიდევ ჩემთვის სახელით ვინმე, და დავბრუნდებით ცვლადი შეიცავს, რომ ღირებულება. ეს შეიძლება იყოს ვინმე გსურთ. აქ ჩვენ მივდივართ. ყველა უფლება, Javier არის წერილობით ქვემოთ სახელი. ყველა უფლება. ჩვენ შეგვიძლია ყველა ალბათ მიხვდები, თუ როგორ ეს ხდება ჩაივლიდა. ჩვენ, ალბათ, belaboring წერტილი, რა ფუნქცია აკეთებს, მაგრამ მაინც დიდი მადლობა. ასე რომ ხავიერ დაბრუნდა ამ სტრიქონს აქ, რომელიც ვერ საკმაოდ ვხედავ, Jonathan სიმებიანი რომ ჩვენ მიღებული. ახლა რა მე რეალურად აპირებს უზრუნველყოს Alana თუმცა რაღაც ცოტა განსხვავებული. იმის გამო, რომ ამ მობილური პროგრამა, პირველ რიგში, სახელმწიფო თქვენი სახელი. ასე რომ, პირველი არგუმენტი მე უნდა უზრუნველყოს Alana ერთად იქნება ფაქტიურად განვაცხადო თქვენი სახელი. ყველა უფლება, ასე მარტივი, როგორც ეს მინდა გადასცემს ეს თქვენ. და ვწერ მდე შემდეგი არგუმენტი, თუ გსურთ წავიდეთ წინ და დაწეროთ ამ ფორუმში, მოდით წავიდეთ წინ და გააკეთოს საბოლოო მაგალითად აქ, რათა გარკვევა, თუ რა საბოლოოდ მიიღო მოხდეს. ასე რომ, განვაცხადო თქვენი სახელი, დაწერეთ ის მიმართ ზევით თუ თქვენ არ ვფიქრობ, მხოლოდ ისე, რომ ჩვენ გვაქვს ოთახში ერთი მეორე ხაზი. რადგან ბოლო რამ მე ვაპირებ ახლა გთავაზობთ არა ერთი, მაგრამ ორი ცალი ქაღალდის. ყველა უფლება. H-E-L-L-O მძიმე და შემდეგ ცარიელი ხაზი. ასე რომ, რა ვარ შესახებ გადასცემს Alana ახლა რაღაც ცოტა განსხვავებული. არა მხოლოდ ის, რაც ეს, სადაც მიუთითეთ ცარიელი წარმოადგენს რომ percent-- რა იყო placeholder ჩვენ გამოყენებით? ჰო, ისე პროცენტი s. ამასობაში მე ვაპირებ კორიდორი მისი მეორე არგუმენტი, რომელიც არის ზუსტად ის, Javier მოძიებულია Jonathan. ნება მომეცით, გადმოგცეთ ორი. თუ გსურთ, წავიდეთ წინ და ბეჭდვა, რომ ეფექტი. რა საბოლოოდ ხდება ახლა, Alana ერთხელ თამაშობს როლს printf. Javier უკრავდა როლი GetString. ასე რომ იქნება თქვენი სუვენირების. და საბოლოოდ, რა ხდება, მიუხედავად იმისა, ამ მიესალმები yep წავიდეთ წინ და მძიმით. ალანა: ხომ არ მივიღო ეს ჯერ კიდევ თუ არა? დავით Malan: Yep, თქვენ მიიღო ისინი ორივე ერთდროულად. ასე რომ, იდეა არის, რომ თქვენ შეიძლება ახლა flip გვერდზე გაუმკლავდეს მეორე იმ ორ საშუალებებით. ასე რომ, ეს მხოლოდ hammer საწყისი აღვნიშნო, რომ მაშინ როდესაც ალანა შესრულებული ამ მწვანე ზოლის აქ და შემდეგ ხავიერ გააკეთა ამ ერთი us და დაბრუნდეს რამე ჩვენ მოვუწოდებთ s, მაგრამ ეს იყო მართლაც უბრალოდ, ქაღალდზე საკუთარი. და ახლა Alana გააკეთა ეს მესამე ხაზი. და მიუხედავად იმისა, რომ ეს ყველაფერი გამოიყურება ასე წარმოუდგენლად cryptic ალბათ ერთი შეხედვით, ეს ნამდვილად არის იმდენად მარტივია, რომ. გავლის საშუალებებით გარშემო, მიღების შედეგები, ან ფიზიკური დაუბრუნდება რაღაც, ან ხედავს გვერდითი ეფექტი მოსწონს ეს. რაღაც ვიზუალურად წერილობითი ეკრანზე. მოდით წავიდეთ წინ და მადლობა Alana და Javier, ვინ იყო ქვემოთ აქ, შემოგვიერთდით და ჩვენთან აქ. [ტაში] ახლა მოდით, თავისთავად, თუ რამდენად პირდაპირი ყველა არ შეიძლება იყოს. და მოდით გაგრძელება რეალურად რაღაც ფაქტობრივი კოდი. ასე რომ, ეკრანზე აქ არის სკრინშოტი საქართველოს ე.წ. CS50 ელექტრო მოწყობილობების. და თუ ჰქონდა დროს, როგორც 2:00 PM ოთხშაბათს დღის მეორე ნახევარში, ავუხსნათ ზოგიერთ მეგობარს რა CS50 ელექტრო მოწყობილობების, რას ნიშნავს ეს წინადადება? ნებისმიერი ერთი წინადადება? ჰო? STUDENT: ეს იგივეა, პროგრამა ხდის ყველას კომპიუტერი აწარმოებს იგივე სისტემა. დავით Malan: კარგი! ეს პროგრამა, რომელიც საშუალებას ყველას კომპიუტერის აწარმოებს იგივე სისტემა. ეს ერთგვარი საკუთარი ასლი ოპერაციული სისტემა, რომელიც ხდება ეწოდოს Ubuntu Linux. და ის მუშაობს ეფექტურად შიგნით ფანჯარა თქვენს Mac ან PC, ასე, რომ ეს გზა სწორი გარეთ კარიბჭე კვირაში 1, ყველას აქ კლასი ხელი მიუწვდება იგივე იარაღები, იგივე კონფიგურაცია, და არ არსებობს სასწავლო მრუდი კონკრეტული to Mac ან PC, კერძოდ. ახლა ჩვენ გაიხსნა, შიგნით CS50 ელექტრო ორშაბათს, ამ პროგრამის აქ. ეს ხდება ე.წ. gedit. მაგრამ ეს მართლაც მხოლოდ გრაფიკული რედაქტორი. ეს რაღაც Notepad ან ტექსტი შეცვალონ Windows ან Mac OS შესაბამისად. და მე შევთავაზე, რომ მართლაც იყო სამი მნიშვნელოვანი ნაწილი ამ ეკრანზე. ზედა მხარეს, სადაც თქვენ რომ დაწეროთ თქვენი კოდი. და რომ სადაც გავატარეთ ბევრი ჩვენი სამი მაგალითი ორშაბათს ლექცია. ბოლოში ჩვენ მოუწოდა რა, ეს შავი ფანჯარა, yeah? სტუდენტი: შემდგენელი? დავით Malan: შემდგენელი ჩვენ ხელმისაწვდომი გზით, რომ ფანჯარაში. მაგრამ ზოგადად. ჰო, ეს იყო მხოლოდ ტერმინალის ფანჯარაში. ეს არის ასაკის ტერმინი, რომელიც უბრალოდ აღწერს არსებითად მოციმციმე სწრაფი, წლების წინ, გამოყენებული იქნება ერთ იმ დიდ CRT სტილი მონიტორები. მაგრამ დღეს ეს არის ერთგვარი ვირტუალური პროგრამული უზრუნველყოფა. და ტერმინალი ფანჯარა მოდით us ტიპის ბრძანებები. ეს ერთგვარი გამარტივებული ვერსია ინტერფეისი და UI. ეს არ არის გრაფიკული ინტერფეისი ან GUI, ეს ტექსტი დაფუძნებული ინტერფეისი ან ბრძანების ხაზის ინტერფეისი. და მართლაც, რომ სადაც საბოლოოდ მე შეძლო დაეწერა რაღაც კოდი. ერთხელ მქონდა დაწერილი ზოგიერთი კოდი, თუმცა, გავიხსენოთ, რომ მე ეს ბრძანება. და როგორც სახელი სახის ვარაუდობს, ამ საშუალებას იძლევა ჩემთვის, პროგრამას სახელწოდებით Hello. მაგრამ რა იყო ის ნამდვილად აკეთებს? ასევე მიიღოს იღებდა ჩემი input, ჩემი კოდის, და კონვერტაცია იგი რა, საბოლოო ჯამში? ობიექტის კოდი. და ობიექტის კოდი არის უბრალოდ ლამაზი გზას ვამბობ, zeros და პირობა. და შემდეგ კიდევ მინდოდა აწარმოებს, რომ ობიექტის კოდი, ერთხელ მინდოდა გაივლის, როგორც შეყვანის იმ zeros და პირობა ჩემს კომპიუტერში ტვინის, ე.წ. CPU ან ცენტრალური გადამამუშავებელი ერთეული, მე უნდა პროგრამის გაშვება. მაგრამ ეს არ იყო საკმაოდ მარტივი ორშაბათს როგორც მხოლოდ ორმაგი დაჭერით რამდენიმე ხატი. რა ნაცვლად მე მაქვს გავაკეთოთ იმისათვის, რომ აწარმოებს პროგრამა? რა იყო, რომ მეორე ბრძანება? მე მოსმენის პატარა slashes? დიახ, არა? სტუდენტი: Dot Slash და პროგრამის სახელწოდება. DAVID Malan: ზუსტად. Dot Slash და პროგრამის სახელი. ახლა რა ნიშნავს ეს? კარგად dot მხოლოდ arcane გზა ამბობდა, რომ მიმდინარე დირექტორია. რაც საქაღალდეში თქვენ არის მოიხსენიეთ როგორც, წარმოდგენილია, როგორც dot. Slash მხოლოდ ის, რაც ვნახე, in Mac OS და Windows წლების განმავლობაში, ის გამყოფი დირექტორია ან საქაღალდე და დანარჩენ რამდენიმე სახელი. In Windows ეს ხდება წასვლა უკან in Linux და Mac OS, რომ ეს მოხდება გადასვლა ფორვარდი. მაგრამ ეს მხოლოდ გამყოფი, ამიტომ მხოლოდ უინტერესო სინტაქსური დეტალურად. წვნიანი ნაწილი რა თქმა უნდა, სახელი პროგრამა, Hello. და ეს რა გააკეთოს შექმნა ჩვენთვის. ეს outputted რომ ფაილი ჩვენთვის. მაგრამ როგორ მივიღეთ, რომ წერტილი? მოდით ახლა ვთხოვთ კითხვაზე, თუ რა იყო აქ ხდება, მაინც რაც შეეხება ზოგიერთი ეს სინტაქსი? ასე რომ, განაჩენი ან იმდენად, რა ჩვენ ახსნას ამ პირველი ხაზი არის ის, ასახული მწვანე? რა იყო, რომ პირველი ხაზი აკეთებს, დაკავშირებით ჩემი პროგრამა? ჰო? სტუდენტი: [INAUDIBLE]. დავით Malan: ამბობენ, რომ ეს კიდევ ერთხელ? STUDENT ჩათვლით და ჩამოტვირთვის ბოლო ფუნქციები [INAUDIBLE]. დავით Malan: კარგი. მათ შორის, მე არ ვამბობ, ჩამოტვირთვის, მაგრამ მოდით, ვთქვათ, მათ შორის ფუნქციების, რომ ხალხი არ წერია წარსულში. და იმ ფუნქციების ხორციელდება სადღაც ჩემს კომპიუტერში. ვიღაცამ დაწერა ფაილი წლის წინ, და რომ ფაილი სადღაც შიგნით CS50 ელექტრო, ან ჩემს მყარ დისკზე ზოგადად. და ამიტომ ეს ხაზი გულისხმობს, წასვლა რომ ფაილი, სტანდარტული I / O dot თ, და ასლი და ჩასვით მისი შინაარსი აქ, ზევით ჩემი ფაილი ასე, რომ მე არ უნდა გავაკეთოთ, რომ ხელით თავს. და მათ შორის juiciest ცალი შიგნით რომ ფაილი, ჩვენ განცხადებით, იყო, რა ფუნქცია? რა ფუნქცია არ ვამბობთ გამოცხადდა ან ნახსენები სტანდარტული I / O dot h სავარაუდოდ? Printf, არა? ჩვენ არ წერენ, printf on ორშაბათს, იგი უბრალოდ არ არსებობდა. ჰგავს Alana უბრალოდ მოვიდა სცენაზე და იგი მხოლოდ არსებობდა და იცოდა, თუ როგორ უნდა მიაპყროს რაღაც ეკრანზე, ასე არ printf არსებობს მრავალი წლის განმავლობაში. ასე, რომ ეს არის, თუ როგორ იღებს. ახლა თუ ჩვენ გადავიდეს აქ, მთავარი ანალოგიური იყო, ჩვენ უთხრა თავსატეხი ცალი მოუწოდა, როდესაც მწვანე დროშა დააწკაპებთ მსოფლიოში Scratch. ეს მხოლოდ ერთგვარი რა სახელით, რომ ადამიანები გადაწყდა, რომ წარმოადგენს ნაგულისხმევია შესვლის წერტილი პროგრამა. ბლოკი პროგრამული კოდი რომ იღებს შესრულებული პირველი. ამასობაში ეს Curly braces სახის, როგორიცაა curved ფორმის ბევრი იმ ყვითელი ნულიდან ცალი. ისინი სახის encapsulate მთელი bunch of ინსტრუქციები ერთად. ასე რომ, ეს მხოლოდ სახის მიზანი, რომელიც აერთიანებს ზოგიერთი დაკავშირებული ფუნქციები. printf რა თქმა უნდა, არის ფუნქცია, რომელიც ბეჭდავს ეკრანზე, როგორც ჩვენ გავაკეთეთ. რაც შეეხება ამ ფრჩხილებში? როგორ ფიქრობთ, define-- მაშინაც კი, თუ თქვენ არასდროს არ პროგრამირდება ადრე, მაგრამ ცოტა საფუძველზე ახლა სულ უფრო იზრდება იმედია ინტუიცია, რა რომლებიც ფრჩხილებში აკეთებს ჩვენთვის აქ? ან რას მიმდებარე? ჰო? სტუდენტი: ისინი ამბობენ იმას, რაც თქვენ აპირებს ბეჭდვა printf. DAVID Malan: ჰო, ისინი ამბობენ რა თქვენ აპირებს ბეჭდვა printf. ან უფრო ზოგადად, ისინი მიმდებარე საშუალებებით ფუნქცია. ასე რომ თქვენ შეგიძლიათ თითქმის ვფიქრობ იმ ფრჩხილებში როგორც, როგორიცაა რკინის კლიპი ამ clipboard. ეს არის ის, რაც მართავს, ეს არის ის, რაც არის იქნება გამოყენებული, რათა არგუმენტები შევიდა ფუნქცია, რომელიც ამ შემთხვევაში ეწოდება printf. ასე, რომ თითქმის ნებისმიერი დროს, ჩვენ მოვუწოდებთ ფუნქცია, ჩვენ ვაპირებთ ვხედავ წყვილი ფრჩხილებში. იქნებ რაღაც,, ისევე როგორც ახლა, შესაძლოა, არაფერი. მაგრამ ეს სადაც თქვენ დააყენა საშუალებებით, ანუ ე.წ. არგუმენტები ფუნქცია. აი ერთი ასეთი არგუმენტი. მე ხაზგასმით ყველაფერი შორის quotes, იმიტომ, რომ თურმე ამ ენაზე მოუწოდა C, როდესაც გსურთ, წარმოადგენს სიმებიანი, რომ სიტყვა ან ფრაზა ან თუნდაც paragraph-- თქვენ უნდა გარს იგი ორმაგი შეთავაზებები. არა ერთჯერადი შეთავაზებები, ორმაგი შეთავაზებები. და სწორედ ის, რაც მე ვაკეთებ აქ. პარალელურად, ხმაურიანი სიმბოლო მიწურულს არსებობს. წარმატებული n. რა ვამბობთ, რომ წარმოდგენილი? ჰო? სტუდენტი: ახალი ხაზი. დავით Malan: New ონლაინ. მართალია, თქვენ არ ზოგადად დააჭიროთ როდესაც გსურთ პროგრამა შამფურზე out ახალი ხაზი. უფრო სწორად, თქვენ გითხრათ, რომ ეს პირდაპირ ეს მართლაც arcane ცალი სინტაქსი, წარმატებული ო, რომ გსურთ ახალი ხაზი იქ. საბოლოოდ მძიმით. ჩვენ მართლაც არ გაიგო ძალიან ბევრი ამ, და, რამდენადაც ეს იქნება სენი ზოგიერთი თქვენი არსებობის პირველი პრობლემა შეიქმნა, როდესაც თქვენ უბრალოდ ვერ აცნობიერებენ თქვენ დაგავიწყდათ რაღაც სულელური როგორც მძიმით. და საერთოდ, აყენებს მას იქ დააფიქსიროს, რომ პრობლემა. მაგრამ რა არის ეს აკეთებს ჩვენთვის, იტყვით? სტუდენტი: [INAUDIBLE]. დავით Malan: უკაცრავად? სტუდენტი: [INAUDIBLE]. დავით Malan: მოსაპირკეთებელი განცხადებაში. ეს ერთგვარი მოსწონს პერიოდში ბოლოს English სასჯელს, იმის გამო, რომ ამ ენაზე C ის დამთავრებული განცხადებაში. ინსტრუქცია პროგრამირების კოდი, რომ თქვენ მინდა ვთქვა, მე გაკეთდეს ეს. ახლა შეამჩნია, რომ მხოლოდ ერთი აქ. ასე რომ თქვენ არ გსურთ მიიღონ ჩვევა აყენებს semicolons მას შემდეგ, რაც ყველა დახურული ფრჩხილებში. მაგალითად არსებობს არცერთი შემდეგი ბათილად, და ჩვენ დაბრუნდება მომავალში რა ბათილად ნიშნავს. მაგრამ ამ შემთხვევაში თქვენი printf არის ფუნქცია, ან განცხადება, რომელიც გამოიყენება, ასე რომ, ჩვენ გვინდა, რომ გვქონდეს, რომ terminus ძალიან დასასრულს იგი. და მე შეგნებულად კრეფა C. და გულწრფელად ბევრი ენები როგორიცაა C, C ++, Java, JavaScript, და ნებისმიერი რაოდენობის სხვა ენებზე აქვს ბევრი ამ სახის სინტაქსური დეტალურად. რომელიც რა თქმა უნდა, თუ თქვენ ხართ ახალი პროგრამირების ნამდვილად მოგზაურობა თქვენ მდე. და თქვენ, მარკ ჩემი სიტყვა, ზოგიერთი თქვენგანი აქვს ეს გამოცდილება სამუშაო საათებში ან გვიან ღამით მუშაობას გარკვეული p-კომპლექტი, სადაც თქვენს Damn პროგრამა უბრალოდ არ კომპილირდება, იგი არ აწარმოებს, თქვენ უნდა არ ვიცი, რა არის არასწორი, როგორც ჩანს სრულიად ლოგიკურად სწორი თქვენთვის. და ეს იმიტომ, რომ თქვენ დაავიწყდა რაღაც დარტყმის მძიმით ბოლოს ზოგიერთი ხაზი. მაგრამ ეს არის სახის რამ, რომ თქვენ აპირებს დაუყოვნებლივ ვისწავლოთ ვხედავ. და მართლაც ეს ყველაფერი რომ CA და TF აქვს უკვე ერთგვარი მომზადებული იმისათვის, რომ ნახოთ ბევრად უფრო სწრაფად, ვიდრე თქვენ. და ეს არის მხოლოდ იმის თქმა, რომ, როგორც თქვენ Dive შევიდა პრობლემა კომპლექტი 1 განსაკუთრებით, არ მიიღოთ იმედგაცრუებული მიერ ამ პერსონალის. ერთხელ თქვენ სახის acclimate მსოფლიოში, თქვენ ვიწყებთ ვხედავთ რამ, რომ თქვენ შეიძლება არ იხილეთ ერთი შეხედვით ეს პირველ კვირას. ასე რომ კოდის რამე მაგდაგვარს. ჩვენ გვინდა, რომ გაივლის მას ე.წ. შემდგენელი. და რომ კომპილატორი ჩვენ ვთქვით, რომ უზრუნველყოფს გამომავალი ცნობილია, როგორც ობიექტის კოდი, ე.წ. zeros და პირობა. მაგრამ იქიდან, რას გვაძლევს ეს? კარგად ეს გვაძლევს ამ შაბლონებს. და ისევ თქვენს კომპიუტერში, თქვენი Intel შიგნით, ესმის ეს ნიმუშები zeros და პირობა. და ზოგჯერ ნიმუში წარმოადგენს ფაქტობრივი ათობითი ნომერი როგორც ჩვენ ვნახეთ გასულ კვირას, ზოგჯერ იგი წარმოადგენს წერილი როგორც დავინახეთ, გასულ კვირას, ზოგჯერ ის წარმოადგენს დავალებით, როგორიცაა ბეჭდვა რაღაც ეკრანზე. ამიტომ printf for instance-- არამედ, ნება მომეცით გადახვევა. ჩვენ აღების თავისთავად რომ იმ zeros და პირობა მიერ წარმოებული ამ ბრძანების მიიღოს. მაგრამ რომ არ არის შემდგენელი. რომ არ რამ შუა რომ მწარმოებელ zeros და პირობა. პირიქით რომ მხოლოდ ძალიან მოხერხებულად დასახელებული პროგრამა, რომლის მიზანი ცხოვრებაში არსებითად გაერკვნენ როგორ დააკომპილიროთ თქვენი პროგრამა. ჩვენ ვიყენებთ მას ამ პირველი კვირის განმავლობაში, რადგან ეს მხოლოდ ზოგავს ჩვენთვის ბევრი უბედურება. მაგრამ ის, რაც მართლაც აკეთებს, როდესაც თქვენ შედგენის hello, არის, როგორც ჩვენ განაცხადა ბოლო დროს, ეს ეძებს თქვენს ხისტ დისკზე ან მიმდინარე საქაღალდეში, რადგან ფაილი სახელად იმას, სავარაუდოდ? Hello.c, არა? ეს მხოლოდ სახის კონვენციას. ეს უკანონო, მაგრამ ეს გზა არის. რათა, თუ უბრალოდ მიუთითოთ სახელი პროგრამა, რომელიც ჯერ არ არსებობს, ის აპირებს გამოიყურებოდეს კოდის ფაილი, სტანდარტულად ნიშნავს hello.c. და თუ ეს უჭირს, დიდი. ის აპირებს, რომ გარდაქმნას წყარო კოდი შევიდა ობიექტის კოდი თქვენთვის. მაგრამ ყოველ ჯერზე მე დააჭიროთ მას შემდეგ, მიიღოს hello, თქვენ მახსოვს ხედავს ბოლო დროს საკმაოდ ხანგრძლივი და cryptic თანმიმდევრობა სხვა white წერილები და გმირები ეკრანზე? ისე, რომ ფაქტობრივი ბრძანება, ფაქტობრივი შემდგენელი, რომელიც გადიოდა. ასე რომ ფაქტობრივი შემდგენელი ჩვენ ვიყენებთ ყველაზე სემესტრის რაღაც მოუწოდა clang. ზოგიერთი თქვენ შეიძლება არ გამოიყენება Visual Studio ადრე, ან gcc, ან ნებისმიერი რაოდენობის სხვა compilers. ჩვენ ვიყენებთ clang. და clang საშუალებას გვაძლევს რეალურად გადაიყვანოთ რომ კოდის გააპროტესტებენ კოდი. რას ნიშნავს ეს რეალურად ნიშნავს ეს პრაქტიკაში? ასევე ნება მომეცით წასვლას ერთი ჩემს ფოლდერებში ბოლო დროს. შიგნით CS50 ელექტრო მოწყობილობების. და ნება მომეცით წავიდეთ წინ და შევქმნათ ამ იგივე ფაილი, მოიცავს სტანდარტული I / O dot h. Int მთავარი ბათილად. და ჩვენ დავბრუნდებით მომავალში, რა int ნიშნავს და რა ბათილად ნიშნავს. მაგრამ ახლა მოდით მშვენიერია წარმატებული ო, ისევე, როგორც ჩვენ გავაკეთეთ ფორუმში. ნება მომეცით გადარჩენა ამ ფაილის მოუწოდა hello.c. და ახლა თუ მინდა ამ კომპილაციის I could-- ნება მომეცით დააშორებს in-- პერსპექტივაში მიიღოს hello შევა. და ეს კიდევ ერთხელ იყო რომ ძალიან cryptic ონლაინ. მაგრამ ახლა ერთი სიტყვა მაინც ალბათ jumps out at თქვენ. Clang არის, რომ ხაზი ჩვენ ვნახეთ ადრე. ახლა იქ ბევრი სხვა პერსონალი გულწრფელად რომ ჩვენ ტალღა ჩვენს ხელში დღეს. მაგრამ არსებობს რამდენიმე subsets, რამდენიმე პერსონაჟი აქ რომ არის ინტერესი. მაგრამ მე ვაპირებ წავიდეთ წინ და ამის გაკეთება. მე ვაპირებ პირველი პერსპექტივაში hello, იმის დასამტკიცებლად, , რომ ეს სამუშაო იყო, როგორც ორშაბათს. მაგრამ ახლა მე ვაპირებ წაშალოთ პროგრამა. და ჰგავს ჩვენ გვქონდა ამ მოკლე სახელები, ბოლო დროს, ბრძანება მოხსნის რაღაც არის rm, ამოიღონ შევა. თქვენ აპირებს მიიღოს რამდენიმე საკმაოდ cryptic შეკითხვებს. ძნელი დასაჯერებელია, რომ შეგიძლიათ თუნდაც ამ კითხვაზე რთული გასაგებია. მაგრამ ამოიღონ რეგულარული ფაილი მიესალმები მხოლოდ შემთხვევაში არ გსურთ წაშალოთ hello. და შემიძლია წავიდეთ წინ და ტიპის y for დიახ, შეიყვანეთ და ახლა ის წავიდა. რას ნიშნავს ახლა, თუ გავასუფთავო ეკრანზე, ნაცვლად იმისა, რომ აკეთებს მიესალმები თქვენ იცით, რა, მე მიღების კარგი ამ. მე ვაპირებ აწარმოებს შემდგენელი თავს. მე არ გვჭირდება ზოგიერთი პროგრამა გაერკვნენ, რა ჩემი ფაილი ეწოდება. მე დავწერე hello.c, I ვიცი, რასაც ის მოუწოდა, მე აშკარად შეუძლია აკრეფით, რომ. ამიტომ, მე ვაპირებ წავიდეთ წინ და არ clang hello.c შეიყვანეთ. როგორც ჩანს მუშაობა. და არ არსებობს დამატებითი გამომავალი, რადგან Clang არის შემდგენელი. ეს არის ის, რაც კონვერტაცია კოდის to zeros და პირობა. ასე რომ, თუ მე ახლა dot slash მიესალმები შეიყვანეთ, hm. New შეცდომა დღეს. ასე bash მხოლოდ სახელი მოციმციმე სწრაფი, რომ ჩვენ გამოყენებით. რომ არის უხეში გამარტივება, მაგრამ ახლა ეს ყველაფერი, რომ არის, ის მოციმციმე ზოლზე. და ამიტომაც ის ყვირილი us. ასეთი ფაილი ან დირექტორია ცოტა უფრო მარტივია. მაგრამ აუცილებლად მე მივიღე, რომ ობიექტის კოდი. მაგრამ დაჭერა არის, რომ თუ მე აკრიფოთ ბრძანება ჩამოვთვალოთ შინაარსი მომსახურება, რაც? ls სია. არსებობს რამოდენიმე პერსონალის აქ, ზოგიერთი რომელმაც მოწყობილობების, ისევე როგორც ჩემი Desktop საქაღალდეში, რამოტვირთვები საქაღალდეში, Dropbox საქაღალდეში და ყველა რომ პერსონალი. მაგრამ რა არის საინტერესო hello.c, რომელიც მე შეიქმნა მომენტში წინ gedit. და რაც ყველაზე უცნაური ეძებს სახელი აქ, ალბათ, რომ ჩვენ არ ვხედავ ბოლო დროს ყველა? a.out, არა? ასე რომ უკან დღეს, იყო უბრალოდ გადაწყვიტა, რომ როდესაც თქვენ კომპილაციის პროგრამა პირველად, და თქვენ არ დააკონკრეტა სახელი ფაილი, მოდით ეძახით. და a.out მხოლოდ იმას ნიშნავს, რომ ეს იყო გამომავალი შემდგენელი. ასე რომ, ეს საშინელი სახელი პროგრამა. მაგრამ ამ ლოგიკით, dot ხაზი for მიმდინარე დირექტორია, ირიბის a.out, უნდა ნიშნავს, ფაქტობრივად, ჩემი Hello world პროგრამა. ახლა ცოტა თბილი up exercise, ძალიან. თუ მინდა, რომ გადაარქვათ ამ ფაილი, აღმოჩნდება, რომ თქვენ გადაადგილება ფაილი ერთი სახელის მეორეში. ასე mv a.out, და მერე შეიძლება დავარქვათ მიესალმები შეიყვანეთ. ასე რომ, ეს არის Linux ბრძანება. DOS ჰქონდა ამ წლის წინ, Windows გააჩნია ტერმინალის ფანჯარაში გარკვეული, რომ გამოიყურება როგორც ამ, Linux და Mac კომპიუტერები გვაქვს ამ მოციმციმე ზოლზე. მიუხედავად იმისა, რომ ყველაზე მეტად ჩვენს ალბათ იშვიათად, თუ ოდესმე, გამოიყენეთ იგი. მაგრამ რა მე ვაკეთებ არის აწარმოებს პროგრამა, რომლის სახელიც არის mv, და მე მიაწოდა ორი არგუმენტები, ასე ვთქვათ. ორი საშუალებებით. a.out არის ორიგინალური სახელი. გამარჯობა ახალი სახელი. ასე რომ, თუ მე ახლა dot ხაზი hello, მიუთითოთ, რომ არსებობს. და თუ dot ხაზი a.out, რას ველოდოთ მე უნდა დაინახოს? Bash, ასეთი ფაილი ან დირექტორია. მე უბრალოდ დაარქვა. ასე რომ, ეს იღებს ცოტა შეგუება. მაგრამ პრობლემა კომპლექტი 1 დაზუსტება მართლაც გამართავს თქვენი მხრივ ზოგიერთი ამ minutae. იმიტომ, რომ ეს არის სრული ინტელექტუალური განადგურების ეხლა უფრო საინტერესო იდეები ხელთ, რომელიც ფაქტიურად შექმნა რაღაც გარეთ კოდი. მაგრამ მოდით ერთი მოდიფიკაცია ახლა ამ პროგრამას. შეგახსენებთ, რომ ბოლო დროს მე რაღაც ამ, printf განვაცხადო თქვენი სახელი. და მართლაც ჩვენ უბრალოდ ეს დიდ ეკრანზე იქ. და მაშინ მე string s იღებს GetString ღია PAREN, მჭიდრო paren. და paren უბრალოდ სტენოგრამის ნოტაცია ფრჩხილებში. ასე რომ GetString მიუღია რაიმე არგუმენტები? არარის საშუალებებით არ არის, მაგრამ ის საჭიროებს ფრჩხილებში, იმიტომ, რომ ის, რაც demarcates ნომრებზე ფუნქცია. ამიტომ, მე ვაპირებ წავიდეთ წინ და ცდილობენ აწარმოებს შემდგენელი ამ პროგრამის არის. Clang hello.c, იმიტომ, რომ მე არ შეცვალოს თავისი სახელი არ არის. და მე მივიღე bunch of შეცდომები. მოდით დააშორებს აქ. თუ გადახვევა, კიდევ ერთხელ, როგორც ვთქვი, ბოლო დროს, პირველი, იგივე შეცდომა რომ მე მივიღე ბოლო დროს. On line 6 hello.c მქონდა გამოუცხადებელ იდენტიფიკატორი სიმებიანი, არ ვგულისხმობ სტანდარტს? მე არ. რადგან ის, რაც შეცდომა უნდა მე მივიღე ამ პროგრამა, თუ გავიხსენებთ ბოლო დროს? Yeah, ჩვენ გვჭირდება ე.წ. სასწავლო დისკები რომ ჩვენ მხოლოდ გამოიყენოს რამდენიმე კვირის განმავლობაში. მაგრამ მე უნდა მიუთითოთ, რომ ასევე, სადღაც შიგნით ელექტრო მოწყობილობების, ფაილი, რომელიც ჩვენ წერდა რამდენიმე წლის წინ. შიგნით რაც ფუნქციები როგორიცაა სავარაუდოდ GetString. ასე რომ, ახლა თუ მე დაბრუნდეს აქ, ზომით, და ხელახალ clang hello.c. Damn, კიდევ ერთი შეცდომა. მაგრამ ჩვენ არ გვინახავს ამ ადრე. ეს ერთი ცოტა მეტი ეზოთერულ გაერკვნენ. მაგრამ ეს მიზანმიმართულად ეკრანზე, იმიტომ, რომ გვინდოდა ვუთხრა ეს ამბავი. როდესაც თქვენ შედგენის hello.c, ისევე როგორც სურათზე წინაშე შესთავაზა, თქვენ მხოლოდ კონვერტაცია, რომ კოდის to zeros და პირობა. ახლა CS50 თანამშრომლები რამდენიმე წლის წინ დაწერა CS50.h, და შესაბამისი ფაილი, CS50.c. და ჩვენ, რამდენიმე წლის წინ, შედგენილი იმ ფაილი შევიდა ფაილი, რომელიც ხდება ეწოდოს CS50.o. ან შეიძლება დაერქვას რამდენიმე განსხვავებული რამ. მაგრამ ეს მარტივი გზა ფიქრი მას. ასე რომ, ჩვენ შედგენილი CS50-ს ბიბლიოთეკა zeros და პირობა. მაგრამ არსად არ მაქვს მითითებული რომ მინდა დააკავშიროთ ჩემი zeroes და ვინც ჩემი ცხოვრება მშვენიერია პროგრამა zeros და პირობა რომ CS50 პერსონალის შეიქმნა რამდენიმე წლის განმავლობაში ჯერ ერთი სრული პროგრამა. ყველა მე მითითებული წერილობით clang hello.c არის შეადგინოს hello.c. მე არ უთხრა clang to ბმული zeros და პირობა რომ CS50 პერსონალი განთავსებულია თქვენ ცოტა ხნის წინ. ასე რომ, ეს იოლი, dash ლ ბმული, CS50. და ჩვენ კიდევ ერთხელ, რომ ეს ადრე ხანგრძლივი ისევ და ისევ. მაგრამ შეამჩნია, ახლა არ იყო საჩივრები. ასე რომ, ახლა თუ აწარმოებს dot ხაზი hello, ახლა ის მუშაობს. მიუხედავად იმისა, რომ ცოტა შეცდომაში შეჰყავს რადგან მე მხოლოდ თავიდან რა ფაილი? a.out. ნება მომეცით გადახვევა მხოლოდ ერთი წუთით. პროგრამის ჩვენ უბრალოდ შედგენილი აქვს სამი ხაზი კოდი. როდესაც მე გაიქცა მშვენიერია, hello მომენტი წინ, მე ვერ ვხედავ განვაცხადო თქვენი სახელი. და ეს იმიტომ, რომ მე გაიქცა ძველი ვერსია პროგრამა. მაგრამ თუ მართლაც აწარმოებს dot ხაზი a.out შევა, განვაცხადო თქვენი სახელი, რობ, hello, მსოფლიოში. Hm. სწორედ ასეთი შეცდომა. ალბათ ნიშნავდა ვთქვა Rob, არა? რა არის გადავწყვიტოთ აქ კოდი. სტუდენტი: [INAUDIBLE]. DAVID Malan: ზუსტად. ასე რომ, უბრალოდ უნდა რომ საბოლოო tweak ასე რომ მე გადადის placeholder, როგორიცაა შეავსონ ცარიელი, როგორც ჩვენ მომენტში წინ. მაგრამ პროცენტი s არის რომ შეავსონ ცარიელი. ასე რომ ბოლოს მოდით გამოვლინდება ერთი ბოლო დეტალურად ისე, რომ არ არსებობს ჯადოსნური. მე ვაპირებ წავიდეთ წინ და მოშორება hellow. მე ვაპირებ წავიდეთ წინ და მოშორება a.out. ასე რომ, ახლა მე არ მაქვს პროგრამების, უბრალოდ ჩემი კოდის. და მე ვაპირებ აწარმოებს ოდნავ აღარ ბრძანება, clang dash o hello hello.c dash lcs50. ახლა ეს იწყებს ერთგვარი წასვლა ერთ ყურში და გარეთ სხვა ალბათ. მაგრამ მხოლოდ აჯავრებენ გარდა რა ამ ყველაფერს აკეთებს. Clang არის შემდგენელი, dash lcs50 განზრახ დროს ბოლომდე აკეთებს იმას, რაც სასჯელის? ბმულები CS50 ბიბლიოთეკაში. Grabs zeros და პირობა, რომ საკადრო გააკეთა და crams მათ საკუთარი პროგრამა. ასე რომ, ბოლო კითხვაზე მხრივ, რა არის dash o hello ალბათ აკეთებს, მაშინაც კი, თუ თქვენ არასდროს ჩანს ეს სინტაქსი ადრე? Outputting პროგრამა, რომელიც არის არ დაასახელა ნაგულისხმები a.out. პირიქით, ეს დაასახელა hello. ასე რომ, ახლა არ არის a.out. ასეთი ფაილი ან დირექტორია, იმიტომ, რომ მე ღიად განაცხადა, დარეკეთ ამ პროგრამის hello, ისე, რომ მე შემიძლია აკრიფოთ სახელი, როგორიცაა, რომ და იგი მოიქცეს. ახლა გულწრფელად ვამბობ, ბიჭი, რომ უინტერესო აქვს უნდა გვახსოვდეს, ყველა რომ პატარა minutia, არა? მოდით წავიდეთ წინ და მოშორება მიესალმები ერთხელ. და მოდით ახლა დაბრუნდნენ მსოფლიოში რომელიც საკმარისია იმის თქმა, რომ hello. მაგრამ ეს ჯადოსნური, რომ რათა აკეთებს თქვენთვის, რომ არის tedium, რომ ის აკეთებს თქვენთვის. და როგორც ჩვენი პროგრამების და პრობლემები კიდევ უფრო რთული, რათა ნამდვილად იქნება თქვენი მეგობარი. იმის გამო, რომ ძალიან დიდი ხნის განმავლობაში ახლა ჩვენ ვაპირებთ აქვს პროგრამები, რომელიც დაწერილია არა ფაილი, არამედ რამდენიმე ფაილი და მიიღოს ავტომატიზირება პროცესში შედგენა ყველა რომ ერთად. ასე რომ, ახლა ბეჭდვა. printf შიგნით ფაილის სტანდარტული I / O dot h, რომ ჩვენ ვნახეთ ადრე, მაგრამ არსებობს უფრო printf, ვიდრე. არსებობს წარმატებული ო, მაგრამ არსებობს ასევე რამოდენიმე სხვა გაქცევის sequences. და გაქცევა თანმიმდევრობა მხოლოდ ლამაზი გზა ამბობდა რაღაც რომელიც იწყება წარმატებული, არ ველით slash, წარმატებული, და აკეთებს რაღაც განსაკუთრებული რამ. და ჩვენ არ შევუდგებით ყველაზე ამ, მაგრამ რატომ არის წარმატებული ორმაგი გაცემა, როგორ ფიქრობთ? რატომ არის ეს უცნაური თანმიმდევრობა გმირები, წარმატებული ორმაგი გაცემა, რატომ შეიძლება რომ იყოს სასარგებლო? სტუდენტი: [INAUDIBLE]. დავით Malan: ზუსტად, არა? ვფიქრობ, უკან ჩვენი ცხოვრება მშვენიერია პროგრამა რომ ჩვენ ვნახეთ არაერთხელ ახლა, ყოველ ჯერზე ჩვენ ვნახეთ, რომ ცხოვრება მშვენიერია პროგრამა ჩვენ გვქონდა ორმაგი შეთავაზებები შიგნით რომელიც არის hello მძიმით მსოფლიოს წარმატებული ნ. მაგრამ ვფიქრობ საკუთარ თავს, რა მოხდება, თუ თქვენ ნამდვილად სურდა ამობეჭდოთ ბრჭყალებით? თქვენი პირველი ინსტიქტი შეიძლება იყოს, მე არ ვიცი რატომ დაგვჭირდება გავაკეთოთ აქ, ჩვენ შეიძლება ცოტა პასიური აგრესიული, hello მეგობარი. ჩვენ დაგვჭირდება რამე მაგდაგვარს. მაგრამ რატომ არის ეს ახლა პრობლემატური? იგნორირება curly შეთავაზებები გათვალისწინებულია, რომ კონფერენციის მონაწილეებს ჩვენთვის ავტომატურად. რატომ არის ეს პრობლემატური? ზუსტად. იმის გამო, რომ ჩვენ გვაქვს მოსწონს 4 ციტატა ნიშნები. ასევე პირველი ერთი, ალბათ, მიდის მეორე, და შესაძლოა მეოთხე მიდის მესამე, ან, ვგულისხმობ არ ვარ დარწმუნებული კი, არც არის კომპიუტერი იქნება. კომპიუტერები ერთხელ, compilers ერთხელ, საკმაოდ dumb. ისინი მხოლოდ რა თქვენ ვუთხრა, უნდა გააკეთოს. და თუ თქვენ არ არის ერთმნიშვნელოვანი, რომ ალბათ აპირებს ჩააგდოს შეცდომა. თუ თქვენ არ არის ერთმნიშვნელოვანი, თუ როგორ უნდა მიიღოს არაქისის კარაქი და ჟელე sandwich უცნაური რამ შეიძლება ჩამოვა. ეს იგივე იდეა. ახლა საკმარისია ითქვას, რომ იქ ზოგიერთი სხვა გაქცევის sequences, მაგრამ ამას იმ ადრე ხანგრძლივი. არსებითად, ამ გაქცევის sequences წარმოადგენს რაღაც რომ თქვენ შეიძლება ვერ ძალიან ადვილად კლავიატურის, გარეშე გაუგებარია კომპიუტერი. ახლა, ამავე დროს, უნდა მფლობელები in printf. პროცენტი d, რომელიც ასევე შეიძლება წერილობითი თითქმის ყველა შემთხვევაში პროცენტი i, არის placeholder, თუ რა ტიპის მონაცემები? რა ტიპის ღირებულება? , ათობითი რიცხვი. ასე რომ, რეალურად დავიწყებთ გამოყენებით პროცენტს i იმიტომ, რომ ეს ცოტა მარტივი, ისევე როგორც მთელი რიცხვი. პროცენტი i. მთელი რიცხვი, რომელიც ხდება უნდა იყოს ათობითი. პროცენტი s ჩვენ უკვე განაცხადა, იყო placeholder სიმებიანი. რომელიც მხოლოდ სიტყვა, ფრაზა, პუნქტის, ესსე, რასაც. ეს თანმიმდევრობა გმირები ზოგიერთი სიგრძე. და ჩვენ ვხედავთ, სანამ ხანგრძლივი ზოგიერთი სხვა. მაგრამ პროცენტიანი გ ერთჯერადი ხასიათი. პროცენტი f არის მცურავი პუნქტიანი ნომერი, რეალური ნომერი, რომელსაც აქვს ათობითი წერტილი ის, რაც რა თქმა უნდა, არ არის მთელი რიცხვი. და არსებობს მთელი bunch of სხვები, ასევე. იმავდროულად, C, და ბევრი ენების, ჩვენ გვაქვს სხვადასხვა ტიპის მონაცემები. სხვადასხვა ტიპის მინის bowls თუ. თასი მე ბოლო დროს იყო ping pong ბურთები, მაგრამ ჩვენ შეგვიძლია ასევე შესანახად სხვადასხვა ღირებულებებს, როგორიცაა chars და სიმები და რიცხვებით კონტეინერი, როგორც ცვლადი, და C აქვს ამ. Char ტიპის მონაცემები, ტიპის ცვლადი, რომელშიც თქვენ შეგიძლიათ ჩაწეროთ ხასიათი. Float ტიპის ცვლადი რომელიც შეგიძლიათ შეინახოთ რეალური რაოდენობა. Int რა თქმა უნდა, ამისთვის int. და საკმაოდ სასაცილოდ სახელად ხანგრძლივი ხანგრძლივი არის, სადაც შეგიძლიათ შეინახოთ არსებითად მართლაც დიდი რაოდენობით, უფრო მეტი ციფრები მაშინ ტიპიური int შეიძლება შესანახად. მაგრამ ჩვენ დავბრუნდებით, რომ ხანგრძლივი. In CS50 dot h ამასობაში სხვა header ფაილი რომ ჩვენ ვნახეთ რამდენიმე ჯერ გამოყენება, იქ ორი სხვა მონაცემთა ტიპები არ არსებობს C წესი. ერთი არის სიმებიანი და ვნახავთ რამდენიმე კვირის რა სტრიქონები მართლაც არიან ქვეშ hood. და ერთი bool. და bool არის ცვლადი, რომელიც შეგიძლიათ მხოლოდ მიიღოს გარკვეული ღირებულებები. და მხოლოდ საფუძველზე გასულ კვირას განმარტება, Scratch, და უფრო მეტი ხნის C, რას ვხვდები არის ორი შესაძლო მნიშვნელობები ზოგიერთი კონტეინერი, რომელიც ტიპის bool? დიახ და არ. ერთი და ნულოვანი. მართალია ან ცრუ. და მართლაც ეს უკანასკნელი, რომელიც ყურადღებას იჩენს იყოს ჩვეულებრივი პროგრამირების ენის და განაცხადა, რომ რაღაც ისევე როგორც ჭეშმარიტი ან ცრუ. ამასობაში CS50 ბიბლიოთეკა გააჩნია რამოდენიმე ფუნქცია რომ პერსონალის წერდა, რომ თქვენ, გარდა უბრალოდ მიღების სიმებიანი. ჩვენ ვწერდით, რომ წინასწარ ფუნქციები, რომელიც შეგიძლიათ მიიღოთ რიცხვი საწყისი მომხმარებელს, კიდევ ერთი პერსონაჟი, მიიღეთ float, რომ მხოლოდ ნომრის ათობითი წერტილი. დიდი ხნის ხანგრძლივი, მართლა დიდი მნიშვნელობის შესახებ. ასე რომ, ჩვენ მხოლოდ მინახავს ეს აქცია სახით GetString. მაგრამ ამ გზით ფუნქციები მალე შეძლებთ დაწეროთ პროგრამა, რომელიც მიიღოს შეყვანის შესახებ. იმავდროულად მიგვაჩნია, რომ ეს პროგრამა, და მიიჩნევს, როგორ შეიძლება ახლა დავიწყოთ რჩეულებში მას ახალი აშენებს. სწრაფი სწრაფი ტურნეს და მაშინ ჩვენ შევხედოთ რაღაც წერა რამდენიმე პროგრამები ხელით საკუთარ თავს. ამიერიდან, თუ ჩვენ გვინდა, რომ განახორციელოს მდგომარეობაში, ის არ აპირებს გამოიყურებოდეს ლამაზი პატარა ლამაზი თავსატეხის ნაწილის. ის აპირებს გამოიყურებოდეს ცოტა უფრო arcane. მაგრამ ეს არ არის კანონიკური სტრუქტურა მდგომარეობა C. სიტყვას, თუ ორი ფრჩხილებში, შიგნით რაც იქნება გარკვეული სახის ლოგიკური გამოხატვის. ახლა slash slash შუა, ეს არის მომენტში სახის, როგორიცაა, pseudocode კოდი placeholder. მაგრამ უფრო სწორად, ნებისმიერი ხაზი კოდი C რომ იწყება slash slash კომენტარი. ეს იგივეა, შენიშვნათა, რომ თქვენ შეიძლება დააყენა ესე, დაბეჭდილი ქაღალდი. ეს შენიშვნა თავს. მას არ აქვს ფუნქციონალური ზეგავლენა პროგრამა. ეს ერთგვარი შეხსენება, რომ ეს არის თქვენი საკუთარი დოკუმენტაცია, თუ რა ხდება. ამიტომ, ნუ ამ მომენტში, არის ერთგვარი placeholder სხვადსხვა შიგნით იმ Curly braces საბოლოოდ აპირებს რაღაც. ამასობაში თქვენ გაქვთ ორი ჩანგლები გზა, თუ სხვაგან მშენებლობა მოსწონს ეს. თქვენ შეგიძლიათ, თუ, elseif, სხვას. ახლა ეს უნდა აღინიშნოს, განსაკუთრებით თუ თქვენ უკვე Googling გარშემო ონლაინ რესურსები გარეთ ცნობისმოყვარეობა, თუ თქვენ შეარჩიო ერთი რა თქმა უნდა, რეკომენდებული წიგნები C, თქვენ ნახავთ, რომ ადამიანს აქვს უამრავი სხვადასხვა შეღავათები, თუ როგორ გამოხატოს საკუთარი კოდი. ზოგიერთი ადამიანი მინდა დააყენა curly braces რადგან მე ვაკეთებ აქ. ზოგიერთი ადამიანი მინდა დააყენა curly braces მაგალითად აქ. ზოგიერთი ადამიანი მინდა დააყენოს elses აქ და შემდეგ აქ. არსებობს რაიმე რაოდენობის გზები ჩაწერის კოდი, და არცერთი მათგანი მართლები არიან თავისთავად. მიუხედავად იმისა, რომ არსებობს რამდენიმე რომ არის საკმაოდ არასწორია. მაგრამ არსებობს no--, თუ ეს საბოლოო ჯამში, ძალიან რელიგიური დებატები. ფაქტობრივად, ერთ ერთი ყველაზე შემაშფოთებელი რამ კომპიუტერულ მეცნიერებათა არის, თუ როგორ თავდაჯერებული კომპიუტერული მეცნიერები შეიძლება იყოს. და თქვენ ნახავთ, დროთა განმავლობაში რომ თუნდაც თქვენ განავითაროს პირადი პარამეტრები ის, თუ რამდენად თქვენი კოდი უნდა გამოიყურებოდეს. არა მხოლოდ მოიქცევა, არა მხოლოდ შექმნა გამომუშავება, მაგრამ, როგორ უნდა გამოიყურებოდეს ესთეტიურად. მერე რა რომ ჩვენ ყველაფერს გავაკეთებთ, დაგეხმარებათ გასწვრივ გზა, ეხლა მაინც, სტანდარტული CS50 სტილი, რომ მინიმუმ ინარჩუნებს რამ ერთიანი და ადვილად წასაკითხი. მაგრამ უფრო იმ განმასხვავებელი ადრე ხანგრძლივი. ლოგიკური გამოხატვის C, თუ უნდოდა ეთქვა, თუ ეს მდგომარეობა არის ჭეშმარიტი და ამ წესებით სხვა პირობა არ არის დიახ, თქვენ არ წერენ სიტყვა და, როგორც თქვენ ამას ინგლისურ ენაზე. თქვენს ნაცვლად გამოიყენოთ ampersand ampersand, მიზეზების გამო, ჩვენ დავბრუნდებით. თუ თქვენ მინდა ვთქვა, ან თქვენ იყენებთ ორი ვერტიკალური ბარები, რომელიც აშშ კლავიატურის ზოგადად ზემოთ შეიყვანეთ გასაღები შემდეგ წარმატებული. და ეს მხოლოდ იმას ნიშნავს, თუ არა ეს მდგომარეობა ან ამ წესებით სხვა პირობა არ არის ჭეშმარიტი გაკეთება. ამასობაში არსებობს ამ გიჟები რამ, რომელიც თქვენ შემთხვევა გამოიყენოს ერთხელ awhile. მაგრამ ეს მხოლოდ ალტერნატიული გზა გამოხატოს საკუთარი თავი. ეს, ახლა, მოდით განსაზღვრავს, უბრალოდ, ერთი ხმაურიანი გზა გამოხატავს იმ შემთხვევაში, თუ elseif, elseif, elseif, elseif. უბრალოდ დაფორმატებას თვალსაზრისით შემთხვევებში, სადაც თქვენ სიტყვასიტყვით ჩამოვთვალოთ ის ღირებულებები, რომელიც თქვენ ალბათ გვინდა შევამოწმოთ. ამასობაში მარყუჟების. ჩვენ ვნახეთ შედარება ნულიდან loop. და მე ვაპირებ ტალღის ჩემი ხელი რა თითოეული ეს ყველაფერი ნიშნავს. მაგრამ შეამჩნია, რომ მარყუჟის იქნება ძალიან ხშირად იწყება სიტყვით. ან დაიწყება სიტყვით ხოლო. ან დაიწყება სიტყვით ამის გაკეთება, და მთავრდება სიტყვით, ხოლო. მაგრამ რაც ჩვენ შესახებ დაინახოს რამ, უფრო მოსწონს ეს. აქ არის, ზოგადად, C, როგორ შეიძლება განაცხადოს ცვლადი და მისთვის მნიშვნელობა. In C საკმარისი არ არის, როგორც Scratch, უბრალოდ ამბობენ, მომეცი ცვლადში რაღაც. თქვენ უნდა ვუთხრათ C, და ვუთხრა თქვენი შემდგენელი, უფრო კონკრეტულად, რა ტიპის ღირებულება გაქვთ მინდა დააყენოს მინის თასი. არის ეს რიცხვი? თუ ასეა, თქვენ უნდა ფაქტიურად, ვამბობთ int და შემდეგ ცვლადის სახელი, შემდეგ მძიმით. თუ თქვენ ნაცვლად სურდა სიმებიანი და მოუწოდა ეს ის, როგორც მე ჩემი კოდი დღეს აქ, თქვენ ვიტყოდი string s მძიმით. მას შემდეგ, რაც თქვენ მინდა მას ღირებულება შეგიძლიათ შემდეგ გამოიყენოთ თანაბარი ნიშანი, წინააღმდეგ შემთხვევაში ცნობილია როგორც დავალება ოპერატორი. და შეამჩნია, როგორ ყოველ ამ ხაზების კოდი აქვს მძიმით დასასრულს იგი. მაგრამ, გულწრფელად რომ ეს მხოლოდ გამოიყურება პატარა მახინჯი. რატომ არ შემიძლია ვთქვა, რომ კომპიუტერი, მისცეს me ცვლადი და ინიციალიზაცია იგი ნულის ტოლია. რომ არის, მომეცი ცარიელი შუშის თასი. მიუხედავად იმისა, რომ თქვენ შეგიძლიათ. და ა.შ. ერთი განაჩენი მოუწოდებს თქვენ უნდა მიიღოს სტილისტურად დროთა განმავლობაში არის, არ დაწეროთ თქვენი კოდი მსგავსი, ან თქვენ სახის გაწმენდა it up და შთაბეჭდილების ადამიანი წერილობით ორ ხაზს, როგორც მხოლოდ ერთი. და ეს იქნებოდა ზოგადად უფრო დახვეწილი გზა წერა თქვენი კოდი სტილისტურად. ფუნქციები ჩვენ, რა თქმა უნდა არ ჩანს. ისინი აპირებს ამ ფორმატში. სახელი ფუნქცია, ზოგიერთი ფრჩხილებში, და მაშინ შეიძლება პერსონალის შიგნით. ან თქვენ შეიძლება ნახოთ მიზნებისათვის მრავალი ფუნქციები მხარე გვერდით, როგორიცაა რაღაც მსგავსი. ახლა, როგორც tangent, არ ეს ხუმრობა არ არის, რომ აზრი? [სიცილი] ეს იმას არ ნიშნავს, რომ ეს სასაცილოა, მაგრამ ეს ამჯამად შესაძლოა მიიღოს ცოტა მეტი გაგებით. ახლა მოდით წასვლას CS50 ელექტრო მომენტში. და ნება მომეცით გახსენით ერთი teaser აქ. და მართლაც ერთ ერთი მიზეზი შემოღების IKEA კატალოგი და flashing სურათზე საქართველოს iPhone ცოტა წინ იყო რეალურად გვაკავშირებს ერთად ის ფაქტი, რომ რამდენიმე წლის წინ, 2007 წელს, ეს ნაჭერი კოდი იყო გამოვიდა, რომელიც ერთი პირველი განხორციელება ნაჭერი პროგრამული უზრუნველყოფა რომ აკეთებს რასაც jailbreaking. იმ უცნობ, jailbreaking რაღაც ტელეფონის ან iPhone ნიშნავს არსებითად მჭიდროდაა თუ როგორ უნდა გავაკეთოთ რამ ის, რომ კომპანია ვინც ეს გააკეთა და არ აპირებდა. როგორც თქვენ გინდათ რომ დააყენოთ გარკვეული პროგრამული უზრუნველყოფა, რომ არ App Store, jailbreaking თქვენს ტელეფონში, რომელიც თქვენ რამ, როგორიცაა, რომ და სხვა. მაგრამ რა იყო fun in 2007-- და არ არსებობს ათობით სხვადასხვა ვერსიები ეს ყველაფერი მას შემდეგ, ყველა სახის languages-- ის არის, რომ ამ პროგრამის აქ, სახელწოდებით iUnlock, იყო რეალურად დაწერილი C. და მე გამოყვანილია up კოდის ამ, მხოლოდ სახის გაჩვენებთ ზოგიერთი პარალელები აშენებს ჩვენ განხილვას ჯერჯერობით. ახლა იქ გზა მეტი სირთულის აქ ვიდრე ჩვენ ვნახეთ უკვე კლასში. ნება მომეცით გადახვევა up ცოტა აქ. მაგრამ შეამჩნია these-- კარგად შეამჩნია რამდენიმე რამ, მაგრამ შეამჩნია, ამ ხაზების აქ, მათ შორის სტანდარტული I / O dot h. და all-- ხაზი 24, please-- შეამჩნია სტანდარტული I / O dot თ და მთელი bunch სხვა ფაილი, რომელიც, როგორც ჩანს, სხვა ხალხი არ წერია. და თუ ჩვენ გადახვევა ქვემოთ მეშვეობით ამ, პატარა თვითნებურად, შეამჩნევთ მე არ ვიცი, როგორ დაწერონ ყველა ამ თავს აუცილებლად არ არის, მაგრამ არსებობს თუ. ასე რომ, როგორც ჩანს, ეს აქვს ფილიალი. და თუ მე გადახვევა ქვემოთ პატარა შემდგომი, კიდევ ერთი, თუ. თუ მე გადახვევა up, მე ვფიქრობ, გარშემო line 100 ვნახე. ასე რომ, მე არ ვარ საკმაოდ დარწმუნებული როგორ ეს სამუშაოები არ არის, მაგრამ ეს არის მარყუჟის რომ აპირებს მიადევნე თვალი iterate გარკვეული რაოდენობის ჯერ. და თუ მე გადახვევა ყველა გზა ბოლოში მე ვხედავ, რომ არსებობს ფუნქცია ქვემოთ აქ მოუწოდა ძირითადი და რამდენიმე დამატებითი კრედიტი თქვენი მოსმენით სიამოვნება. ასე რომ, ეს მხოლოდ ვთქვა, და ჩვენ დააყენა ამ ონლაინ შორის, რა თქმა უნდა წყაროს კოდი today--, რომ ზოგიერთი ამ მოწყობილობების, რომ ჩვენ, თავისთავად, ბოლოს დღეს, თქვენ მაინც იყენებს ამ ძირითად აშენებს, რომ ჩვენ ინერგება უკვე დღემდე. ეს არის საკმარისი, რომ ერთი. ყველა უფლება, ასე რომ, ახლა მოდით რეალურად ააშენოს. მოდით წავიდეთ მიღმა რაღაც hello.c და ქმნის ამ, მოდით დავწეროთ ამ პროგრამის აქ. მე ვაპირებ წავიდეთ წინ და წერენ პროგრამას სახელწოდებით adder.c, რომლის მიზანია ცხოვრების იქნება ჩემი პირველი სუპერ მარტივი კალკულატორი რომ მხოლოდ დასძენს რამდენიმე ნომრები. არა იმიტომ, რომ მძიმე პრობლემა, არამედ იმიტომ, რომ საშუალებას აძლევს ჩემთვის ახლა გვაკავშირებს ერთად რამდენიმე რამ. ამიტომ, მე ვაპირებ წავიდეთ წინ და მოიცავს სტანდარტული I / O dot სთ და CS50 dot h. მე ვაპირებ ვთქვა, int ძირითადი ბათილად. და მომავალში ჩვენ დავბრუნდებით მას შევიდა ამ კონტექსტში და ბათილად საშუალებით. და ახლა მე ვაპირებ ვთქვა რაღაც printf, მომეცი რიცხვი. და ახლა ჩემი მეორე ხაზი, როგორ შემიძლია გამოვხატო თავს ასეთი რომ მინდა განაცხადოს ცვლადი რომ აპირებს შესანახად int? ფაქტიურად რა ტიპის თუ მინდა შექმნა ცვლადი ინახავს int იტყვით? int შეადგენს GetInt. რა თქმა უნდა, ისე, რომ სამუშაოები. და უბრალოდ ამისთვის თანმიმდევრულობა კოდის თქვენ იხილეთ ონლაინ, ნება მომეცით ცვლილება ეს x, მხოლოდ იმიტომ, რომ x არის საერთო ცვლადის სახელი გამოყენება, მინიმუმ ალგებრა. ახლა ნება მომეცით წავიდეთ წინ და ნუ printf ერთხელ. მომეცი კიდევ ერთი რიცხვი. და ახლა მე ვაპირებ სახის საქართველოს ვისწავლოთ, რომ ნიმუში, მე ვაპირებ ვთქვა, int y იღებს GetInt. და ჩვენ არ გამოიყენება GetInt ადრე, მაგრამ მხოლოდ როგორიცაა GetString მიდის და იღებს ტექსტი, როგორიცაა ხავიერ გააკეთა აუდიტორიას, ანალოგიურად არ GetInt დაიწყება მოციმციმე ზოლზე. და ეფექტურად ელოდება შესახებ რათა ეს რიცხვი, აკრეფით ეს და hitting შეიყვანეთ. ახლა ბოლოს მე ვაპირებ ამის გაკეთებას ამ, printf თანხა of-- და ნება მომეცით კიდევ ლამაზი ახლა პროცენტი i და პროცენტი i იმყოფება i ძახილის წერტილი წარმატებული ნ. და როგორ ფიქრობთ რა მე ვაპირებ დასვა ახლა, როგორც დამატებითი მასალები to printf? მე არ მინდა ვთქვა, სიტყვასიტყვით ციტირებას unquote x. მინდა კლასი x და მაშინ და ახლა მოდით ლამაზი და მოდით ვივარაუდოთ, ჩვენ შეგვიძლია ამის გაკეთება, რაც ჩვენ გვინდა. რა მინდა ვთქვა, შემდეგი? x + y. და მართლაც, რომ იმუშავებს. ეს მინიმალურად პროგრამირების ენები მესმის ძირითადი არითმეტიკული, და ეს უნდა ფაქტობრივად მუშაობა. ნება მომეცით, წავიდეთ წინ და მიიღოს გველგესლა ჩემი შავი და თეთრი window აქ, შეიყვანეთ. Cryptic ხაზი, მაგრამ არ შეცდომა გაგზავნა, ასე რომ კარგია. Dot slash გველგესლა, მომეცი რიცხვი, 1. მომეცი კიდევ ერთი რიცხვი, 2. თანხა 1 და 2 3. ყველა უფლება, ასე რომ საკმაოდ ტრივიალური პროგრამა, მაგრამ რა ეს? ეს საშუალება მომცა გამოიყენოთ ფუნქცია დარეკეთ აქ, მოვუწოდებთ სხვა ფუნქცია აქ, ორი ზარები GetInt, მესამე მოწოდება printf, და შემდეგ გამოყენებით ამ ადგილის მფლობელები. ასე რომ, ეს ცოტა მეტი დახვეწილი, ვიდრე ბოლო დროს. მაგრამ რა, თუ მინდა კიდევ პატარა fancier? ნება მომეცით წავიდეთ წინ და ახლა ამის გაკეთება. ნება მომეცით წავიდეთ წინ და შევქმნათ ახალი ფაილი სახელად პირობები ნულოვანი. და მე ვაპირებ გადარჩენა გარკვეული დროის კლასების გულისთვის და უბრალოდ ჩასვით რომ კოდი, როგორც ამოსავალი წერტილი. და ახლა მე უბრალოდ გეგმავს რაღაც ახალი აქ შუა. ამიტომ printf მინდა მთელი გთხოვთ. და ყველა ეს კოდი არის შესაძლებელი on რა თქმა უნდა ნახვა, თქვენ არ უნდა აკრიფოთ ეს ყველაფერი კლასში თუ ნეტავ არ არის. int, და ახლა მე ვაპირებ გამოყენება, ნაცვლად x და y, მე ვაპირებ გამოიყენოთ n, რომელიც ალბათ ყველაზე გავრცელებული სახელი რიცხვი კომპიუტერული პროგრამა. და ახლა მინდა გავაკეთოთ პატარა გადაწყვეტილება აქ. მე ვაპირებ, რომ, თუ n მეტია 0, მაშინ მე ვაპირებ ვთქვა printf-- whoops, printf-- თქვენ აიყვანეს დადებითი რიცხვი, ძახილის წერტილი წარმატებული ნ. დახურვა რომ. სხვას მე ვაპირებ ამობეჭდოთ printf თქვენ აიყვანეს უარყოფითი რიცხვი. ახლა, სანამ დაწეროთ at me, მოდით აწარმოებს ამ პროგრამის. ნება მომეცით დაცემას აქ. და როგორ უნდა შეადგინოს პროგრამა ე.წ. პირობები dash 0? რათა პირობები dash 0. სახის სულელური სახელი, but-- dammit. OK, კარგი სწავლების მომენტში. რატომ, რომ შესვენება? რა მე შემთხვევით დარეკეთ ამ ფაილს? შეგიძლიათ სახის infer საწყისი tab აქ. ასე რომ, ეს არ არის ცუდი, რომ მე ეს, რადგან ამ მოხდება ალბათ ზოგიერთი თქვენგანი. ასე რომ, მე შემთხვევით დაასახელა ჩემი კოდის მდგომარეობის 0. მაგრამ ჩემი კოდის მიერ კონვენციის იქნება ფაილი სახელად მდგომარეობის 0 dash c, ან რასაც dot გ. ნება მომეცით დაფიქსირება ამ. ისევე, როგორც Microsoft Word შემიძლია წასვლა up შენახვა როგორც და ამის მდგომარეობის 0 dot გ. ახლა უბრალოდ უნდა იყოს მოვლილი ვარ ვაპირებ წავიდეთ წინ და ამოიღონ მდგომარეობა 0, რომელიც იყო ჩემი ძველი ვერსია. და ახლა მოდით გავხადოთ მდგომარეობა 0, შეიყვანეთ. OK, როგორც ჩანს, კარგი. მდგომარეობა 0, შეიყვანეთ. მინდა მთელი გთხოვთ, 50, თქვენ აიყვანეს დადებითი რიცხვი. ახლა როგორ შესახებ უარყოფითი 50? თქვენ აიყვანეს უარყოფითი რიცხვი. როგორ შესახებ ახლა, 0. საკმაოდ დარწმუნებული 0 არ არის უარყოფითი. ასე რომ, ეს არის ერთგვარი ლოგიკური შეცდომა. როგორ შემიძლია დაფიქსირება ამ? Else თუ N ნაკლებია, ვიდრე 0, ამისათვის სხვა ჩვენ გვაქვს სამი გზა ფილიალი აქ, printf თქვენ აიყვანეს 0. ახლა, თუ გამეორება ამ პროგრამა, შემდეგ შედგენა მას ერთხელ გააკეთოს, და ახლა გამეორება მდგომარეობა 0, რა მე ვხედავ აქ 0 მაძლევს, რომ გამომავალი. ასე რომ სად მივდივართ ამ? ასევე ძალიან ადვილი დასაკარგი დანახვაზე ტყის ხეები. და ასე საშუალებას გვაძლევს დავასკვნათ, ეს 2 და 1/2 წუთიანი ვიდეო რომ საბოლოო ჯამში, არის ცოტა რეკლამის Google, მაგრამ, რომ ნამდვილად არის პატივისცემის რა თუნდაც ამ ძირითადი შენობა ბლოკის ჩვენ შეგვიძლია საბოლოო ჯამში ერთხელ ჩვენ ცოტა პროგრამირების საზრიანი ჩვენი ქამრები. [მუსიკის დაკვრა] SAROO BRIERLEY (VoiceOver): ეს იყო 26 წლის წინ, და მე უბრალოდ შესახებ გახდეს 5. მივიღეთ მატარებლის სადგური და ავედით ჩვენი მატარებელი ერთად. ჩემი ძმა უბრალოდ განაცხადა, მე აქ დარჩენა, და მე დავბრუნდები. და მე უბრალოდ ეგონა, თქვენ იცით, მე შეიძლება ისევე უბრალოდ წასვლა სძინავთ და მაშინ ის უბრალოდ wake me up. და როცა გამოიღვიძა up შემდეგი დღეს, მთელი ვაგონი ცარიელი იყო, რომელიც გაქცეული მატარებელი, ghost მატარებელი მიღების მე არ ვიცი, სად. მე მიღებული out ავსტრალია, ავსტრალიის ოჯახს. და დედა იყო მორთული ჩემი ოთახი რუკაზე ინდოეთი, რომელიც მან დააყენა შემდეგი ჩემს თავზე. მე გამოიღვიძა up ყოველ დილით ვხედავთ, რომ რუკაზე, და აქედან გამომდინარე, ეს ერთგვარი ინახება მოგონებები ცოცხალი. ხალხი იტყვის, თქვენ ცდილობს იპოვოს ნემსი წელს haystack, Saroo თქვენ არასოდეს საპოვნელად. მინდა განათებული ადგილები, I დადიოდნენ, ციმციმები ჩემი ოჯახი წინაშე დგას. იყო იმიჯი, ჩემი დედა, სხდომაზე ქვემოთ მისი ფეხები გადაკვეთა, უბრალოდ თვალს მისი ტირილი. ცხოვრება მხოლოდ ასე. ეს იყო ჩემი საგანძური. და მე ეძებს Google Map და მიხვდა, რომ არის Google Earth, ასევე. მსოფლიოში, სადაც თქვენ შეიძლება გაადიდებს, დავიწყე ყველა ეს აზრები და რა შესაძლებლობები რომ ეს შეიძლება გააკეთოს ჩემთვის. ჩემს თავს ვუთხარი, თქვენ იცით, თქვენ მივიღე ყველა იმ ფოტოგრაფიული მოგონებები და ღირშესანიშნაობებს, სადაც თქვენ, და თქვენ იცით, თუ რა ქალაქის ჰგავს. ეს შეიძლება იყოს პროგრამა, რომელიც თქვენ შეგიძლიათ იპოვოთ თქვენი გზა. მეგონა, ისე მე დააყენა dot on Calcutta მატარებლის სადგური, და რადიუსი line, რომ თქვენ იცით, რომ თქვენ უნდა იყოს ეძებს გარშემო ამ სფეროში. მე სახის წააწყდნენ ეს მატარებელი ტრეკების. და დავიწყე შემდეგ, და ჩამოვედი მატარებლის სადგური, რომელიც აისახება იმავე სახედ რომ იყო ჩემი მოგონებები. ყველაფერი ემთხვევა. უბრალოდ ეგონა, yep, I ვიცი, სადაც მე ვაპირებ. მე უბრალოდ აპირებს მოდით რუკა, რომელიც მე მაქვს ჩემი უფროსი გამოიწვიოს მე და ჩემს უკან ჩემი მშობლიურ. მე ჩამოვედი აკლდათ სახლში, რომ მე დავიბადე. და დადიოდა გარშემო დაახლოებით 15 მეტრი გარშემო კუთხეში, იყო სამი ქალბატონი იდგა გარეთ, მიმდებარე ერთმანეთს. და ახლო ერთი გადადგა ნაბიჯი და მე უბრალოდ ეგონა, რომ ეს არის თქვენი დედა. იგი გამოვიდა, იგი hugged me, და ჩვენ იქ დაახლოებით ხუთი წუთის განმავლობაში. მან მოგვეწონა ჩემი მხრივ და მან წამიყვანა სახლში და მივიდა ტელეფონთან, სადაც იგი დარეკა ჩემი დის და ჩემი ძმა იმის თქმა, რომ თქვენ იცით, შენი ძმა მხოლოდ ყველა მოულოდნელი აღმოჩნდა, როგორც მოჩვენება. და შემდეგ, ოჯახი გაერთიანდება. ყველაფერი ყველაფერი კარგი, მე დაეხმარა ჩემი დედა, მან არ უნდა slaving მოშორებით. მას შეუძლია იცხოვროს დანარჩენი მისი ცხოვრება მშვიდობა. ეს იყო ნემსის haystack, მაგრამ ნემსის იქ იყო. ყველაფერი არსებობს. ყველაფერი გვაქვს მსოფლიოში არის სტეპის of ღილაკს. მაგრამ თქვენ მოხვდით აქვს ნება და განსაზღვრა სურვილს. [მუსიკის დაკვრა] დავით Malan: შესანიშნავად sweet დახასიათება უბრალოდ, თუ რა შეგიძლიათ ახლა ტექნოლოგია. ჩვენ, თქვენ მომავალ კვირას.