[ვიდეო აღწარმოების] -A ტრიუმფი მათემატიკური და მექანიკური უნარი ეს არის დიდი ახალი ავტომატური კალკულატორი ჰარვარდის უნივერსიტეტი. რთული პრობლემების მათემატიკაში დააყენა მეშვეობით მანქანა კოდირებული სახით ფირზე ზუსტად მოგვარდება წუთი ფრაქცია საჭირო დრო ადამიანის გაანგარიშებით. დიზაინი დააჩქარებს ყველა ფორმის მათემატიკური და სამეცნიერო-კვლევითი, გიგანტური მექანიკური ტვინის იმუშავებს ამერიკის შეერთებული შტატების საზღვაო სანამ ომი დასრულდა. [END აღწარმოების] დევიდ ჯ Malan: ეს არის CS50. წარსულში იყო ჯადოსნური ადგილი, მაგრამ თუ თქვენ ოდესმე აინტერესებს, თუ რა, რომ მოწყობილობა ჰარვარდის მეცნიერებათა ცენტრი, ეს ნამდვილად არის ნაწილი ჰარვარდის Mark I, და ეს ჩვენების იქ ახლა წარსული მრავალი წლის განმავლობაში. და რა დაინახავთ ჩართული პრობლემა კომპლექტი ერთი არის სახე კულისებში რა, რომ მოწყობილობა გააკეთა და აკეთებს, პროფესორი ჰარი ლუისი, რომელიც არის კომპიუტერულ მეცნიერებათა დეპარტამენტი აქ. ასე უფრო, რომ ოდნავ. მაგრამ დღეს ჩვენ ვიწყებთ გადასვლას გასულ კვირას, რომ ეს, და ჩვენ მოუტანს ნახსენები ერთი ფოტოს აქ ეს არის რეალურად საკმაოდ ცნობილი. ვინმეს ვიცი, რა არის ეს აქ არის ეკრანზე? ყოველ შემთხვევაში, მითია. ჰო. აუდიტორია: პირველი ვირუსი. დევიდ ჯ Malan: ასე რომ, ეს იყო, სავარაუდოდ, პირველივე ფაქტობრივი შეცდომის კომპიუტერში. ახლა რეალურად სიტყვა bug, შეცდომა პროგრამაში, უკვე ჩვენთან გარკვეული დროს ფიზიკური სამყაროს, და ეს იყო ერთ-ერთი პირველი დოკუმენტირებული ჯერ, სადაც ვინმე რეალურად ამოაგდო დიდი moth გარეთ ჩანაწერები II კომპიუტერში, ამას შემკვრელის, და შემდეგ ჩაწერილი როგორც პირველი ცნობილი bug არ რეალურად იქნა ნაპოვნი ფიზიკურად. ასე რომ, ამით შევიდნენ რომ დღევანდელი ლორე. ყველაფერი ბოლო კვირაში ხელმისაწვდომია ონლაინ რეჟიმში. კერძოდ რესურსი, რომ თქვენ შეიძლება არ არის აუცილებელი, შეამჩნია, მით უმეტეს, თუ მოდის აქ პირი. ასე რომ, ერთი სწავლების პრაქტიკის ყველა წელი აკეთებს კანონიკური კომპლექტი შენიშვნები, ასე რომ თქვენ არ შენარჩუნება თქვენი უფროსი ქვემოთ, ცდილობს უნდა transcribe ყველაზე არაფერი რომ შეიძლება მოხდეს აქ კლასში. ასე რომ მიხვდებიან, რომ მათ, ე.წ. [? Scribd?] აღნიშნავს ამჟამად, რა თქმა უნდა, სლაიდები და კოდის რომ ჩვენ ვიყენებთ კლასში. ჩვენ სრული ტექსტი ტრანსკრიპცია ასევე ხელმისაწვდომია. ასე რომ, თუ ბუნდოვნად მახსოვს რაღაც ტერმინი, და გვინდა, რომ შევხედოთ ეს პატარა უფრო ადვილად, გააცნობიეროს, რომ ყველა რომ არის საძიებო ონლაინ რეჟიმში. ისევე როგორც walkthroughs ისევე. მართლაც, დღეს ჩვენ ვიწყებთ შევხედოთ ქვედა დონის პროგრამირების ენა, მალე ჩვენთვის ცნობილი როგორც C, და ეს ძალიან ადვილია, ერთგვარი დაიკარგოს შემდეგ რამდენიმე მომენტი დრო, და შემდეგ ერთგვარი გასაკვირი როგორ ჩვენ რეალურად მივიღე კიდევ რამდენიმე რთული მაგალითი მარტივი. ასე რომ მიხვდებიან, ჩვენ გამოგიგზავნით cherry აირჩიოთ დროს კლასში ზოგიერთი წარმომადგენლობითი მაგალითები, მაგრამ ხვდები, რომ ასე ბევრად უფრო ასევე ხელმისაწვდომია ონლაინ რეჟიმში, ასე რომ თქვენ შეგიძლიათ მუშაობა მეშვეობით საკუთარი ტემპით, თუმცა თქვენ ყველაზე კომფორტული. მაგრამ ჩვენ შეჩერდით ერთად პროგრამები, რომლებიც მხოლოდ ამ. ასე რომ, მე დააჭირეთ მწვანე დროშა, და რას ამ პროგრამის გაკეთება? ამბობს, hello, world. რაც კატა ამბობენ მიესალმები თავის პატარა სამყაროში ზედა მარცხენა მხარეს Scratch- ს ინტერფეისი. მაგრამ ჩვენ დავიწყეთ დანერგვა ტერმინოლოგია გასულ კვირას. ასე რომ, მსგავსი რამ ჩვენ მოუწოდა რა? რა შეიძლება იყოს ზოგადი ტერმინი ეს? ჰო. მეთოდი და განცხადებაში. რა თქმა უნდა, ეს ქმედება. ამის გაკეთება. და მაინც არ იყო სხვა ფორმები ნულიდან, გარდა ამისა, ეს ე.წ. განცხადებით, ისინი ასევე მსგავსი რამ, რომელიც ჩვენ მოუწოდა რა? ჰო. ასე რომ, loop. და ამ შემთხვევაში, ეს რამ იმეორებს, რა თქმა უნდა, 10-ჯერ. იქ სამუდამოდ ბლოკი. არსებობს რამდენიმე სხვები. და დღეს ჩვენ ვაპირებთ, რომ ნახოთ, თუ როგორ უნდა თარგმნა ეს უფრო თანამედროვე მსოფლიოში, თუ თქვენ, მიუხედავად იმისა, რომ აპირებს ერთი შეხედვით ბევრად უფრო arcane. მაგრამ ეს იყო მართლაც მარყუჟების. და მაშინ ჩვენ გვაქვს რამ, როგორიცაა ამ, რომელსაც ამ ფორმის, და არსებითად დასმული შეკითხვები. ჩვენ მოხსენიებული ეს რა? აუდიტორია: ლოგიკური გამოხატულებაა. დევიდ ჯ Malan: ჰო. ლოგიკური გამოხატულებაა. ის, რაც არის ან ნამდვილი ან ცრუ, თუ არა, ერთი ან ნულოვანი, თუმცა გსურთ მსოფლიოში. მაგრამ ჩვენ მოუწოდა იმ ლოგიკური გამონათქვამები და ჩვენ შეაერთედ მათ შევიდა პირობებში, ან ფილიალებში. და მსოფლიოში Scratch, ყველაფერი კარგად interlocks თვალსაზრისით მისი ფორმის, თუ ეს ქმნის ლოგიკურ აზრი ამის გაკეთება, მაგრამ თქვენ არ უნდა შეჩერება მხოლოდ აკეთებს ერთი რამ პირობითად, თქვენ შეგიძლიათ თქმის გზის გასაყარი და ამის გაკეთება ამა თუ იმ შემთხვევაში, თუ მდგომარეობა მართალია თუ არა. და მაშინ, როგორც დაინახავთ, თუ თქვენ არა გაქვთ უკვე, თქვენ შეგიძლიათ კიდევ ბუდე ამ ბლოკები. ასე რომ, Scratch იზრდება შეავსოთ ფორმები რომ დაგვჭირდება ჩადეთ შევიდა, ასე რომ თქვენ შეგიძლიათ რეალურად გამოხატავენ ყველაზე ლოგიკა, რომელიც თქვენ გსურთ ამის გაკეთება. ახლა რამდენიმე სიტყვა განცხადება როგორც აქ და New Haven. ასე რომ, sectioning დღეს იწყება. URL ამ არის რა თქმა უნდა, ნახვა, მათთვის უცხო. განყოფილებები იქნება შესაძლებლობა მიიღოს ერთად ბევრად უფრო ინტიმური გარემო ვიდრე [? Sanders?] საშუალებას იძლევა, 10-დან 20 თანაკლასელები ერთად სწავლების თანამემამულე სხვადასხვა კვალის, და სხვადასხვა ადგილები, თუ ისე აირჩიოს. მართლაც, რა თქმა უნდა შემოთავაზება სხვადასხვა სექციები იმ ნაკლებად კომფორტული, უფრო კომფორტული და სადღაც შორის, და როლი thumb აქ, არ არსებობს ფორმალური განმარტება, მაგრამ თუ თქვენ ნაკლებად კომფორტული, თქვენ სახის ვიცით. თქვენ ცოტა კომპეტენტურობისა შესახებ იდეა სტეპინგზე ფეხი, ალბათ, უკან საკლასო ოთახში, ან აჩვენებს მდე შორის მონაკვეთზე. თუ თქვენ უკვე პროგრამირების შემდეგ, რაც თქვენ იყო ექვსი წლის, უფრო კომფორტული, ალბათ თქვენ. და თუ ეს არის ერთგვარი toss-up, ეს არის ზუსტად ის, რაც შორის იგულისხმება, რომ იყოს. ახლა კი, ამასობაში, კლასი ამ ზომის, ის ჩვენთვის საკმაოდ გარკვეული დრო, რათა განყოფილებაში ყველას, ასე რომ, ჩვენ ე.წ. super სექციები, ახლოვდება ამ შაბათ-კვირას და მომდევნო კვირის დასაწყისში, ასე რომ შევხედოთ რა თქმა ნახვა მათთვის, რომ, რა თქმა უნდა ფართო, და ასევე გადაიღეს იმ ვინც ვერ აიძულებს. და სექციები თავად დაიწყებს კვირაში სამი CS50 ნულოვანი ინდექსი. პრობლემა მითითებული 0 უკვე რა თქმა უნდა, მისი ნახვა. და გააცნობიეროს, რომ თქვენ გაქვთ ცხრა გვიან დღის ამ სემესტრში. ასე რომ, ეს არის განახლება ბოლო წელი, როდესაც ჩვენ გვქონდა ხუთი გვიან დღე. ასე რომ, თუ თქვენ გაინტერესებთ, ჩვენ გვაქვს ცხრა პრობლემა კომპლექტი. თქვენ ცხრა გვიან დღით, რომელთაგან თითოეული თქვენ შეგიძლიათ მხოლოდ დახარჯავს ერთ კვირაში. ეს ეფექტურად იღებს ყველა პრობლემა კომპლექტი გამო პარასკევს, მაგრამ მიზანი არის იმისათვის, რომ ცოტა ცოტა ფსიქოლოგიური ზეწოლა თქვენ ცდილობენ მიიღონ რამ ხუთშაბათი იმიტომ, რომ, როგორც თქვენ მალე აღმოაჩენთ, უკეთესი ან უარესი, ყველაზე ყველაფერი პროგრამული მსოფლიოს მთავრდება გაცილებით უფრო მეტია, ვიდრე თქვენ მოსალოდნელია. ამიტომ მიგვაჩნია, რომ ეს ერთგვარი შესაძლებლობა, რათა დაეხმაროს თავის მიზანში ხუთშაბათი, მაგრამ ნუგეშს რომ, დიახ, ყველაფერი არის იმის გამო, პარასკევს. და თუ თქვენ წარმოადგინოს მათ ხუთშაბათი, რომელიც მშვენიერი. არ არსებობს ბონუს ქულა ან დამატებითი საკრედიტო შეხვედრის ვადა. ეს ნიშნავს, რომ ყავარჯენი მხოლოდ. და საოფისე საათი, როგორც აქ და New Haven, პირი, თუ გსურთ, რომ შეხვდეს ნებისმიერ ჩვენი კურსები სწავლების პრაქტიკის და CAS დახმარებას. ყველა უფლება. ახლა, მოდით ეს უფრო რეალური. და ერთი წუთით, რომ ის აპირებს დაიწყოს ცოტა უფრო arcane, მაგრამ ძალიან სწრაფად პარასკევს და მომავალ კვირას, ჩვენ ვიქნებით შეუძლია ამის გაკეთება გაცილებით მეტია, ვიდრე შეგვეძლო დღემდე ნულიდან. ამიტომ, ჩვენ გააცნო კოდი ბოლო კვირას, თუმცა pictoral. ეს იყო თავსატეხი ცალი. და გავაფორმეთ, რომ ეს არის რაღაც მოუწოდა კოდის, მაგრამ, რომ არ ჰგავს? ისე, ეს ჩანდა პატარა რაღაც მსგავსი. და, ფაქტობრივად, მხოლოდ სახის გაღიზიანება, სადაც ჩვენ შეგვიძლია წავიდეთ ამ. მე ვაპირებ წავიდეთ წინ და გახსენით ფანჯარა აქ, და მე უბრალოდ აპირებს აირჩიოს ახალი ფაილი. და მე ვაპირებ გადარჩენა ეს ფაილი როგორც რაღაც მიესალმები dot გ. უფრო, რომ არჩევანი სიტყვა რაღაც მომენტში. და ეს არის, თუ როგორ შეიძლება ვიღაცამ წავიდეს ამის შესახებ პროგრამის წერა. მოიცავს სტანდარტული I / O dot h, int ძირითადი ბათილად, და შემდეგ ღია Curly გაუწიოს, მჭიდრო Curly გაუწიოს, printf მიესალმები მძიმით მსოფლიოში, წარმატებული ო, მძიმით, შენახვა, გაკეთდეს. OK. მე დაწერილი ჩემი პირველი პროგრამა, მაგრამ ის აპირებს უნდა იყოს ძალიან underwhelmed იმიტომ, რომ როცა რეალურად გაუშვით ეს პროგრამა, რა თქმა უნდა, პირველი წერილობით მიიღოს hello, და შემდეგ dot slash hello, და ჩვენ გაიაროს ეს ბევრად უფრო დეტალურად ამ მომენტში, რომ ყველა ის აკეთებს. არ პოპ ღია ნებისმიერი ფანჯრები. ეს არაფერს არ აკეთებს განსაკუთრებით ლამაზი. ყველა ეს იმას არის ის, რაც მე ვუთხარი ამის გაკეთება, მაგრამ, როგორ უნდა მიიღოს, რომ? და როგორ უნდა ავაშენოთ საფუძველზე, რომ? ისე, მოდით წარმოგიდგინოთ რამდენიმე სხვადასხვა ცნებები აქ. ასე რომ, ერთი, ჩვენ უნდა დაიწყოს გამოყენებით პროგრამის მოუწოდა შემდგენელი. შემდგენელი არსებობს Mac OS, Windows, Linux, ნებისმიერი რაოდენობის ოპერაციული სისტემები, და ჩვენ მალე წარმოგიდგინოთ გარემო, რომელიც ჩვენ გამოყენებით, მაგრამ შემდგენელი არის მხოლოდ ზოგადი ვადა ნაჭერი პროგრამული უზრუნველყოფა რომ იღებს კოდის და აწარმოებს ობიექტის კოდი იგი. სხვა სიტყვებით, თუ აქვს როგორც შეყვანის თქვენი წყარო კოდი, რაღაც, რაც მე უბრალოდ აკრეფილი, ეს საბოლოოდ აწარმოებს ობიექტის კოდი. და ობიექტის კოდი არის ნამდვილად ლამაზი გზა ამბობდა, რომ ეს შედეგები ნულოვანი და ერთი. სხვა სიტყვებით, წყარო კოდი, მიუხედავად იმისა, რომ აპირებს გამოიყურებოდეს ცოტა arcane, და ცოტა ნაკლებად მეგობრული ვიდრე Scratch ერთი შეხედვით, ეს მაინც რაღაც რომ ჩვენ, ადამიანები მესმის. ეს ერთგვარი გამოიყურება და ჟღერს ინგლისური მიუხედავად იმისა, რომ ეს არის ძალიან ლაკონური. ვინაიდან პროგრამირების ნულოვანი და ერთი, როგორც ჩვენი წინაპრები უნდა გავაკეთოთ, რამდენიმე წლის წინ, არ იყო განსაკუთრებით გართობა გამო. და მაინც, ეს არის ის, რაც კომპიუტერი მაინც ესმის. ასე რომ, შემდგენელი იღებს ჩვენთან კოდის გააპროტესტებენ კოდი. ეს იგივეა, რომ გახსნას ფაილი ერთად შემდგენელი, და როდესაც თქვენ შენახვა, თქვენ იმ zeros და პირობა. ასე რომ, ჩვენ დავინახავთ, თუ როგორ უნდა გავაკეთოთ რომ რაღაც მომენტში. მაგრამ მოდით, ახლა ცდილობენ, რომ უზრუნველყოს ხიდი შორის გასულ კვირას და ეს, ასე რომ, მიუხედავად იმისა, რომ ჩვენ გაუთიშა რამ, როგორიცაა Curly braces, და semicolons, და ბრჭყალების და ყველა ამ ინტელექტუალურად საინტერესო პროგრამირების ასპექტის, რომ ძალიან გასაგები მიზეზების გამო, მოგზაურობა ადამიანი up დასაწყისში, გააცნობიეროს, რომ ყველა იდეები დღეს, იგივეა, რაც ბოლო. ასე რომ, ბოლო, ჩვენ ვნახეთ ეს, მაგალითად, აქ, Hello World პროგრამა. ისე, დღეიდან, თუ ჩვენ გვინდა, განახორციელოს, რომ იმავე პროგრამით, ის აპირებს გამოიყურებოდეს ცოტა რაღაც მსგავსი. და ჩვენ ავუხსნათ ადრე ხანგრძლივი, რაც int, და მთავარი, და ბათილად, და ყველა რომ არის, მაგრამ მაინც მე ვერ ვხედავ აქ უკვე ნაცნობი Hello World. იმავდროულად, რამ, როგორიცაა, ფუნქცია, მიესალმები, ძალიან მარტივად იქნება ძალიან მარტივი განაცხადი მოსწონს ეს. Printf hello მსოფლიოში, რამდენიმე მოჰყავს, ერთად წარმატებული, მძიმით, მაგრამ უფრო, რომ მოვა. მარყუჟების, იმავდროულად, ეს არის მარყუჟის რომ, რა თქმა უნდა, აცხადებს, Hello World სამუდამოდ, და ეს ერთი აპირებს გამოიყურებოდეს პატარა weirder ვიდრე ბოლო, მაგრამ თუ მე ვიტყვი, რომ რაღაც მოსწონს, ხოლო ჭეშმარიტი, მე შემდეგ შეგიძლიათ ამობეჭდოთ Hello world ისევ და ისევ და ისევ და ისევ. და მაშინ, როგორც თქვენ შეგიძლიათ სახის დავიწყოთ, რომ დავასკვნათ, აქ, ამ კონვენციის გამოყენების curly აფრთხილებს სახის მოსწონს მოიცავს indented ხაზი კოდი არსებობს. Printf ხაზი კოდი ჰგავს ყვითელი თავსატეხი ცალი ზემოთ. ასე რომ, ჩვენ არ ვაპირებთ, რომ სამუდამოდ, ჩვენ ვაპირებთ, რომ ვთქვათ, ხოლო ჭეშმარიტი, მაგრამ ჩვენ დავინახავთ, თუ რატომ არის ოდნავ. ამასობაში, თუ ჩვენ გვაქვს loop, როგორც ეს, სადაც თქვენ ვიმეორებ რაღაც სასრული რაოდენობის ჯერ, ეს ერთი ძალიან ეს აპირებს ცოტა შეგუება , მაგრამ ის აპირებს ვთქვა int i იღებს ნულოვანი, მე 10-ზე ნაკლები, i ++, და მაშინ printf ერთხელ. მაგრამ არ იქნება ნიმუშები. და იმ თქვენ იცნობს ერთად AP კომპიუტერული მეცნიერების, ან Java, ან ნებისმიერი რაოდენობის სხვა ენებზე, თითქმის ყველა ამ აშენებს დღემდე უნდა გამოიყურებოდეს ძირითადად იცნობს. ასე რომ ცვლადი. ასე რომ, აქ არის მარტივი Scratch ამონაწერი, რომ ადგენს ცვლადში counter ნულოვანი, და შემდეგ სამუდამოდ ამბობს counter, და მაშინ იგი შეიცვლის counter ერთი. ასე იწყება ნულოვანი, და მაშინ ერთი, ორი, სამი. ისე, როგორ შეიძლება ჩვენ წარმოგიდგინოთ, რომ ამ ახალი ენის ცოტა მსგავსად? Int counter ტოლია ნულოვანი, ხოლო ჭეშმარიტი, რომელიც ის არის, რომ იგივე იდეა ადრე თავისსავე სამუდამოდ, და მე უბრალოდ აპირებს printf. და ახლა ის მიღების ცოტა უცნაურია, პროცენტს i, მაგრამ უფრო, რომ მოვა, მაგრამ ეს იდეები ზუსტად იგივე. ჩვენ ახლა უნდა დაიცვას სინტაქსი, რომ კომპიუტერი აპირებს მოითხოვოს ჩვენგანი. ლოგიკური გამოხატვის, რაღაც sx ნაკლებია ვიდრე Y, და x ნაკლებია ვიდრე Y, და y ნაკლები z. ის აპირებს გამოიყურებოდეს ცოტა რაღაც ეს კი, ფრჩხილებში მხოლოდ ისევე, როგორც მათემატიკის კარგი ღონისძიება მხოლოდ უზრუნველყოს, რომ ბრძანებით ოპერაციების როგორც ჩვენ ვაპირებთ. და ახლა, პირობები. ასე რომ, თუ x ნაკლებია ვიდრე Y, ვთქვათ, x ნაკლებია ვიდრე y სხვაგან, თუ x მეტია y, ვთქვათ, x მეტია y, წინააღმდეგ შემთხვევაში, ლოგიკურად, x ტოლი უნდა იყოს y. ასე, რომ თქვენ შეიძლება განახორციელოს რაღაც ამ Scratch, ან თქვენ შეიძლება განახორციელოს იგი ამ სინტაქსის. ისევ და ისევ, curly აფრთხილებს სახის გვაძლევს იგივე ფორმა, როგორც თავსატეხი ცალი, მაგრამ სინტაქსი, ახლა, ალბათ დაწყებული დაიცვას გარკვეული ნიმუშები. ასე რომ, რას მოგვცემს ეს აქ? ასე რომ, ჩვენ მაშინ ჩვენი ძირითადი პროგრამა. მოდით რეალურად, ახლა, რაღაც ეს. ასე რომ, ამ პირველი ონლაინ ჩვენ ვხედავთ, მკვეთრი მოიცავს, სტანდარტული I / O, dot სთ შემდეგ რამდენიმე უცნაური კუთხე ფრჩხილებში ქვემოთ რომ. int ძირითადი ბათილად, და მაშინ printf hello მსოფლიოში. ასე რომ, მხოლოდ ნაბიჯი. ადამიანი, რომელიც არასდროს დაპროგრამებულია ადრე, მინიმუმ ახსნას ერთი ამ ხაზები. გამოყენება ალბათ ზოგიერთი ჟარგონი გასულ კვირას. რა არის printf, მაგალითად? ჰო. აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ჰო. ეს ფუნქცია, ან განცხადებაში, გასულ კვირას ტერმინოლოგია. და ეს ქმედება რომ აკეთებს რაღაც. ახლა ეს ფუნქცია, ან ამ განცხადებას, აკეთებს ეს, როგორც ჩანს, გარკვეული სახის შეყვანის? და რა გაგებით ეს როგორც ჩანს, მიიღოს შეყვანა, თუ ასე? შეყვანის, რას ვგულისხმობ, რომ? ჰო. აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ჰო. ასე რომ, Scratch რამდენიმე თავსატეხი ცალი სადაც შეგიძლიათ parametrize იგი. ვერ გეტყვით, განმეორებითი ბლოკირება რამდენჯერ უნდა გავიმეორო, ისე, რომ იყო შეყვანილი სახის, და ისევე, როგორც Scratch მქონდა პატარა თეთრი placeholder იმ რაოდენობის თქვენ აკრიფოთ, ასე რომ, ჩვენ ვიყენებთ ამ ტექსტის მსოფლიოში ფრჩხილებში მოგვცეს, რომ წრიული ფორმის რომელშიც ჩვენ შეგვიძლია დანამატის ჩვენი შეყვანა. ყოველივე ამის შემდეგ, რამდენიმე ათეული წლის წინ როდესაც ამ ენის მოუწოდა C, გამოიგონეს არავინ მოსალოდნელია, რომ ეს არის ერთ-ერთი ჩვენგანი, ამ რამდენიმე წლის შემდეგ, ჩვენ გვინდა გსურთ ფუნქცია, რომელიც ამბობს hello. მარჯვენა? ეს მინდა იყოს ლამაზი თუ იყო თავსატეხი ცალი, ან გასაღები სიტყვა, რომ ე.წ. hello, რომ ფაქტიურად ამბობს hello. მაგრამ ჩვენ არ გვჭირდება. ჩვენ შეგვიძლია რაღაც გაცილებით დაბალია დონეზე, როგორც ზოგადი ბეჭდვითი ბრძანება, რომელიც იღებს შეყვანის, და ნამუშევარი, რაც ჩვენ გვინდა. ასე რომ შეამჩნია ახლა ნიმუში რომ დაიწყება წარმოშობა. ღია paren ახლოს, paren არის როგორც ჩანს, მოიცავს input, და მაშინ მე ვერ ვხედავ ორმაგი მოჰყავს ორივე მთავრდება. ჯერ კიდევ არსებობს უცნაური წარმატებული n, მაგრამ იმედია ახლა თქვენ შეიძლება დაიწყოს ვიზუალურად მაინც, რომ printf ხდება გარკვეული ფორმით შეყვანა. არა როგორც მოსახერხებელი, როგორც ნულიდან, მაგრამ ეს მხოლოდ მოსწონს რომელმაც plugged in გარკვეული მნიშვნელობა არსებობს. ყველა უფლება, ახლა მოდით რეალურად რამე ამ. ასე რომ ზოგიერთი მოგეხსენებათ რომელსაც მზად კლასის წინაშე, chatted მეგობრებთან ერთად, რომ მრავალი წლის განმავლობაში ჩვენ გამოიყენება რაღაც მოუწოდა CS50 ელექტრო მოწყობილობების. ეს იყო ტერმინი აღწერს ტექნოლოგია ე.წ. ვირტუალური მანქანა, რომელიც არის ნაჭერი პროგრამული უზრუნველყოფა, რომ თქვენი წინამორბედები იქნებოდა ჩამოტვირთოთ off კურსის ნახვა უფასოდ. ისინი ასევე ჩამოტვირთვა უფასო ცალი პროგრამული მოუწოდა hypervisor, რაღაც მოუწოდა, როგორიცაა VMware, ან VirtualBox, ან ნებისმიერი რაოდენობის სხვა იარაღები, და მათი Mac ან PC ან რასაც კომპიუტერი გვქონდა შარშან და გასულ წლებში, მათ ორმაგად დაწკაპეთ ხატი გაუშვით ეს პროგრამული უზრუნველყოფა მოუწოდა hypervisor. და შემდეგ შიგნით რომ პროგრამა ისინი გახსნა CS50 ელექტრო მოწყობილობების. და ეფექტი იყო, რომ თუ არა წინამორბედი თქვენი გაშვებული Mac OS ან Windows, მას შემდეგ შემდგომში ჰქონდა new window მათი ეკრანზე გაშვებული CS50 გარემო. ასე რომ, ვირტუალური მანქანა გაძლევთ აწარმოებს ერთი ოპერაციული სისტემა შიგნით მეორე, და სწორედ ის, რაც ჩვენ გავაკეთეთ. მთელი უმრავლესობა, რა თქმა უნდა, ჩვენ გამოყენება ოპერაციული სისტემა სახელწოდებით Linux, კონკრეტულად Ubuntu Linux, და ეს არის ძალიან ლამაზი გზა გასულ წლებში საქართველოს მიღების დარწმუნებული ვარ, რომ ყველას, რა თქმა უნდა უბრალოდ ჰქონდა იმავე გარემოში. და თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი სახის კომპიუტერი, რომელიც თქვენ ნამდვილად გინდათ. მათ შორის ხარვეზები, თუმცა, იყო ეს იყო, როგორც ორი გიგაბაიტი ჩამოტვირთოთ ამ რამ. ეს არ არის აუცილებელი მუშაობა სუპერ კარგად ადამიანები, რომელთა კომპიუტერები, რომ, შესაძლოა, მხოლოდ ჰქონდა კონცერტი ანუ RAM, და არა ძალიან ბევრი გიგაჰერციანი პროცესორის სიჩქარე, და ამიტომ ეს წელი, ამ და სხვა მიზეზების გამო, გვაქვს უკვე გადასვლის ამ გარემოში. ე.წ. CS50 IDE, რომელიც საფუძველზე ღია პროგრამული, და მხარდაჭერით პლატფორმა რომ კომპანია მოუწოდა Cloud9 მხარს უჭერს ევროპაში, რომელიც საშუალებას გვაძლევს არსებითად რომ ზუსტად იგივე გარემო, როგორც წარსულში, მაგრამ ე.წ. ღრუბელი. რა არის ღრუბელი? თქვენ ალბათ აირჩიეთ მისი ხატი თქვენს Mac ან PC. რა არის ღრუბელი? ჰო? ცოტა ხმამაღალი. ჰო. ეს არის მხოლოდ bunch of კომპიუტერები სხვაგან, რომ შენახვის მონაცემები და აწარმოებს პროგრამული უზრუნველყოფა და ასე შემდეგ. ასე რომ, ეს მხოლოდ იმიტომ, რომ სიტყვა de იურე აღწერილია [? რენტაბელურ?] კომპიუტერი, რომელიც ცხოვრობს მის ფარგლებს გარეთ. ეს თქვენ, საკუთარ თავს, არ არის აუცილებელი, საკუთარი. ასე რომ, როდესაც თქვენი მონაცემები, ან თქვენი პროგრამები, რომლებიც ღრუბელი, ეს მხოლოდ იმას ნიშნავს, რომ ეს ვინმეს სხვისი კომპიუტერი სხვაგან, და არა, სავარაუდოდ, თქვენი ფიზიკური ლეპტოპი ან desktop. და ისე, რომ ის, რაც CS50 IDE არის. ამიერიდან თქვენ წასვლა გარკვეული URL რომელიც გააცნობს თქვენ რომ, პრობლემა კომპლექტი 1, შემდეგ ეს კვირას, რომ მაშინ, იმ შესასვლელად, მოგაწვდით ამ გარემოს. და ჰგავს Scratch ჰქონდა რამდენიმე სხვადასხვა პანელები ჩართული, ასე აკეთებს CS50 ის IDE აქვს ზუსტად რომ. ზედა მარცხენა მხარეს აქ, თქვენ ვაპირებთ, რომ ნახოთ ნაცნობი ფაილი ბრაუზერში. ასე რომ, ნებისმიერი ფაილი, რომელიც თქვენ შევიდა ამ გარემოში უბრალოდ იქნება ჩამოთვლილი. ფაილები და ფოლდერები. ზედა მარჯვენა აქ, თქვენ აპირებს ვხედავ ადგილი სადაც თქვენ შეგიძლიათ რეალურად დაწეროთ თქვენი კოდი. თავდაპირველად C, მოგვიანებით ტერმინი PHP და JavaScript, და, ალბათ, საბოლოო პროექტები, Ruby ან Java ან Python ან ნებისმიერი რაოდენობის ენებზე მხარდაჭერა ამ გარემოს. ეს არ არის ყველა მიბმული რომ CS50 კონკრეტულად. და შემდეგ ქვედა კუთხეში აქ, განსაკუთრებით მათთვის უფრო კომფორტულ, თქვენ გაქვთ რაიმე ე.წ. ტერმინალის ფანჯარაში. და ამ ტერმინალის ფანჯარაში საშუალებას თქვენ შეასრულოს ნებისმიერი ბრძანება, რომ თქვენ მინდა ამ cloud გარემო. ეს გაძლევთ საშუალებას დააყენოთ დამატებითი პროგრამული უზრუნველყოფა რომ გსურთ იმიტომ, რომ თქვენ ე.წ. ფესვი, ან ადმინისტრატორის პრივილეგიები. ასე რომ, სხვა სიტყვებით, მიუხედავად იმისა, რომ ამ საბოლოოდ უმასპინძლა ღრუბელი, და მიუხედავად იმისა, რომ ჩვენ გამარტივებული ეს გარკვეულწილად ჩვეულებრივ, ფაქტიურად შემოღების, მადლობა Dan Armendariz და Dino, და დენ ბრედლი on CS50 გუნდი მეტი ბოლო თვეების ნაკლებად კომფორტული, რეჟიმი, რომელიც მალავს ბევრი თავდაპირველად დამაბნეველი distractions. ყველაფერი არსებობს, რომ წარმოადგენს ტიპიური კომპიუტერული სისტემა რომ თქვენ შეიძლება გამოიყენოთ რეალურ სამყაროში. ასე რომ, რას ნიშნავს, და რა შეგვიძლია რეალურად გავაკეთოთ ეს? მოდით რეალურად მიიღოს peek at პროგრამა. ამიტომ, მე ვაპირებ გახსნას გარემოზე აქ, რომელიც მხოლოდ ჩვენი Chrome ბრაუზერი, რომელიც შეიძლება იყოს Firefox, შეიძლება იყოს Internet Explorer, ან სხვა ბრაუზერის ასევე. ეს სრული ნაჩვენები აქ მომენტში. და მე მინდა, რომ რეალურად გაღიზიანება გარდა რა ეს პროგრამა. მოდით შევხედოთ, მიერ მასშტაბირება მდე დაბრუნება, რა გავაკეთე, და როგორ მივიღე აქ. ასე რომ, აქ მათთვის, ზუსტი იგივე ხაზების კოდი. ასე რომ, ეს არის ის განცხადება, როგორც თქვენ აღინიშნა. ფუნქცია, რომელიც ამბობს, hello. Curly braces, on ხაზის ოთხი და ხაზი ექვსი, სავარაუდოდ, სახის პაკეტი რომ ხაზი უნდა გაერთიანდნენ ის არსი ჩემი პროგრამა. ასე რომ, მართლაც, ამ სიტყვით მთავარი, რომ მდე იქ ხაზი სამი, შეგიძლიათ წარმოიდგინოთ, რომ როგორც ეკვივალენტს რომ როდესაც მწვანე დროშა დააწკაპებთ, ბლოკირება ნულიდან. ასე რომ, ყველა ჩვენ აქ, როდესაც მწვანე დროშა დააწკაპებთ, ბეჭდვითი, ან ამბობენ, hello მსოფლიოში. მაგრამ მოდით ვხვდები, ახლა, რა ეს, პირველ რიგში, უფრო arcane ხაზი, არის. Sharp მოიცავს, ღია დახრილი bracket, სტანდარტული I / O dot h, დახურვა დახრილი bracket. რა არის, რომ ალბათ აკეთებს, მით უმეტეს, თუ თქვენ პროგრამირდება ადრე სხვა ენაზე. ჰო? აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ჰო. ზუსტად. ასე რომ, ეს გაძლევს ხელმისაწვდომობის ბიბლიოთეკა, ასე ვთქვათ, ფუნქციები. და ბიბლიოთეკის ფუნქციები ფუნქციების, რომ ვინმე წერდა, ან ცოტა ხნის წინ ან დიდი ხნის წინ, ასე რომ თქვენ არ უნდა ბორბლის გამოგონება. მაგალითად, ჩვენ არ უნდა იცოდეს, 2015 წელს, როგორ დავწეროთ კოდი, რომელიც აყენებს ხასიათი ჩემს ეკრანზე. ვინმეს აქვს figured, რომ ერთად printf ფუნქცია ასე რომ, შემიძლია ერთგვარი აბსტრაქტული დაშორებით, რომ ან ფენის თავზე მისი კოდი, და ახლა მხოლოდ მიიღოს თავისთავად, რომ ნებისმიერი პროგრამის ვწერ შეგიძლიათ ამობეჭდოთ რაღაც ეკრანზე. ასე რომ, ეს პირველი ხაზი იქ ნაბიჯი ერთი მოიცავს ე.წ. header ფაილი სტანდარტული ბიბლიოთეკა. ასე ვხედავ, ენა, რომელშიც ჩვენ ახლა ვმუშაობთ ჰქონდა სტანდარტული ბიბლიოთეკა უამრავი ფუნქციები. Printf ერთ-ერთი მათგანი, და რომ პირველი ხაზი კოდი იმას ნიშნავს, მომეცი ხელმისაწვდომობის იმ ფუნქციებს, ისე, რომ მე არ უნდა ხელახლა რომ საჭე. ახლა მოდით, გადადით ბოლოში window და ზუსტად რა მე ადრე. მომენტში წინ, როდესაც მე ვიყავი whizzing მეშვეობით კოდი, აკრეფის ის პირველად, მე ძალიან სწრაფად აკრეფილი, მიიღოს hello. რა იყო, რომ ყველაფერი, რომ თქვენ ვხვდები? რას ვაკეთებდი? ჰო? არასოდეს იბადება. ეს OK. ჰო. აუდიტორია: შედგენა მას. დევიდ ჯ Malan: ჰო. ეს იყო უბრალოდ შედგენა მას. მარჯვენა? მაშინაც კი, თუ ეს არის სრულიად უცნობ თქვენ, რომ ეს არის საკმაოდ ინგლისური მოსწონს. ეს რა თქმა უნდა არ zeros და პირობა, ასე რომ მე მაინც უნდა აწარმოებს მეშვეობით, რომ ე.წ. პროგრამა, შემდგენელი, რომ აპირებს მას, როგორც შეყვანის და აწარმოოს გამომავალი. და მაინც, ახლა, ამ ამ Linux გარემოში, მაგრამ ეს არ არის წინაპირობა, ეს არის, უბრალოდ, სადაც ჩვენ დავიწყებთ, ზოგადად ურთიერთქმედება კომპიუტერული სისტემების მოსწონს ეს მიერ ე.წ. ბრძანების. ამრიგად, მოციმციმე სწრაფი და თქვენს კლავიატურაზე, და არა იმდენად თქვენი მაუსი, და არა იმდენად ფანჯრები და ხატები და მენიუები, საკმაოდ ყველაფერი ტექსტური. და მიუხედავად იმისა, გრძნობს, პირველ რიგში, ერთი შეხედვით, ალბათ, ისევე როგორც უკან გადადგმული ნაბიჯი, ეს, ფაქტობრივად, ბევრად უფრო ძლიერი და ექსპრესიული გზა კონტროლის კომპიუტერი განსაკუთრებით, როგორც თქვენ, თავს, უფრო კომფორტული ნაკლებად. იგი აპირებს საშუალებას გაძლევთ, რომ ბევრი სხვა რამ, ვიდრე მხოლოდ ის, რაც Microsoft ან Apple გაძლევთ უნდა გააკეთოს მათი გრაფიკული ოპერაციული სისტემა. ასე რომ, როდესაც მე დააჭიროთ, ახლა, არაფერი არ ხდება ამ დროს რადგან, როგორც ჩანს პროგრამის Hello დღემდე. და რა იყო ბრძანება მე გაიქცა მას შემდეგ? Dot slash hello, და hello მსოფლიოში. ახლა მოდით მიიღოს ნაბიჯი უკან მხოლოდ ერთი წუთით. გამოდის, რომ მიიღოს hello მხოლოდ გამარტივებული შედგენის პროგრამას. მოდით უბრალოდ გააცნობს ერთი ნაჭერი jargon, მაგრამ მაშინ გადატანა მოშორებით მას, რადგან ეს არ არის ყველა, რომ საინტერესო დღევანდელი მიზნებისათვის. შემდგენელი ჩვენ ვაპირებთ, რომ დაიწყოს გამოყენებით ეწოდება Clang, რომ C ენაზე. ეს არის პროგრამა, რომელიც აწარმოებს მხოლოდ როგორც ჩვენ გავაკეთეთ ბრძანებათა ზოლს არსებობს. ასე რომ, თუ მე მინდა შეადგინონ პროგრამა, რომელიც მე არ წერია ფაილი სახელად მიესალმები dot გ, მე ფაქტიურად აკრიფოთ clang მიესალმები გ შევა. სასაცილო ის არის, ისტორიული მიზეზების გამო, თუ მე არ დააკონკრეტა პროგრამის დასახელება რომ მე მინდა გამომავალი, თუ მე არ მიუთითეთ ფაილის სახელი იმ zeros და პირობა, ძალიან უცნაური კონვენცია მიღებულ იქნა წლის წინ სადაც ეს იგრძნო სახის კარგი პასუხი იმ დროს, კარგად მოდით უბრალოდ თვითნებურად მოვუწოდებთ პირველი პროგრამა ჩვენ კომპილაციის dot out. მოდის პირველი ანბანი. Out, ის გამომუშავება. ასე რომ, ჩვენ მოვუწოდებთ პროგრამა სტანდარტულად წერტილი გარეთ. და ეს ჯარიმა, რადგან თუ მე მინდა პროგრამის ამ ტექსტის საფუძველზე გარემო, მე უბრალოდ აკრიფოთ dot სლეში dot out შევა. და, რომ აწარმოებს ზუსტად ისე, როგორც ადრე. ასე რომ, ვნახოთ, რომ რეალური სწრაფად. ასე რომ, თუ მე დაბრუნდეს ჩემი კოდის CS50 IDE, და მე ნაცვლად ამისათვის clang მიესალმები cot გ შევა, შეამჩნია არაფერი ჩანს, უნდა მოხდეს, მაგრამ თითქმის ყოველთვის ამ Linux გარემოში, როდესაც ცუდი არაფერია, როგორც ჩანს, უნდა მოხდეს, რომ ნიშნავს, რომ რაღაც კარგი მოხდა სინამდვილეში. თუ თქვენ ვერ ვხედავ შეცდომა გაგზავნა, ყველა, ალბათ, კარგად. და მართლაც, თუ მე ახლა dot სლეში dot გარეთ შევა, მე აწარმოებს იგივე პროგრამა. მე მაინც არ მიესალმები პროგრამა ადრე იმიტომ, რომ მართლაც, ეს იქნება იმდენად გავალამაზოთ მხოლოდ აკრიფოთ მიიღოს ნაცვლად დამახსოვრების ამ მართლწერის of ბრძანებები, მაგრამ ვნახოთ, თუ როგორ ჩვენ შეიძლება გაუმჯობესდეს მოახდინოს მაინც. ასე რომ, ეს არის ბრძანება კომპილაციის კოდი. ეს არის ბრძანება, რომ აწარმოებს შედგენილი კოდი შემდეგაც. როგორ დავაზუსტო ფაილის სახელი? ისე მოდით უბრალოდ გავაცნოთ კიდევ ერთი ნაჭერი jargon. როდესაც თქვენ ამ ტექსტი დაფუძნებული გარემოს, თქვენ აპირებს მინდა განსაზღვროს რამ მოუწოდა ბრძანების არგუმენტები. რომელიც არის ლამაზი გზა ამბობდა, სხვა სიტყვებით ზოლზე, რომ tweak ქცევის რასაც პროგრამა თქვენ გაშვებული. ასე რომ, კონკრეტულად პროგრამა ვარ გაშვებული, აკრეფით სახელწოდება clang, ეს არის პროგრამა, სახელწოდებით Clang. ასე რომ, ეს არის და ძველი სკოლა ეკვივალენტს ორმაგი დაჭერით on Microsoft Word ან ზოგიერთი პროგრამა ხატი. მე ნაცვლად უბრალოდ აკრეფით მისი სახელი, მაგრამ ეს ვერსია ბრძანება, მე მაშინ უნდა dash o სივრცეში მიესალმები სივრცეში მიესალმები dot გ. ასე რომ, თუ თქვენ არასდროს ითამაშა ამ მსოფლიოს წინაშე, უბრალოდ ვხვდები რა ამჯამად dash o მიესალმები გავაკეთოთ? ან რას გეტყვით clang უნდა გავაკეთოთ? ჰო. აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ჰო. უბრალოდ ადგენს ფაილის გამომავალი უნდა იყოს მიესალმები ნაცვლად sillier წერტილი გარეთ. და, მართლაც, მოდით ცდილობენ ამ. ასე რომ, თუ მე ახლა ამის გაკეთება, პირველი მოდით ეს, r m hello. სწორედ ამოიღონ. და ის აპირებს ამბობენ წაშლა რეგულარული ფაილი მიესალმები, რომელიც ზედმეტად arcane, მაგრამ ეს მხოლოდ საშუალება გსურთ მისი წაშლა, და მე აკრიფოთ Y ამისთვის კი. და შეამჩნია, თუ თქვენ გადავავლე ზედა მარცხენა, ის არ გაქრეს იქ. ნება მომეცით ახლა clang dash o, და მე ვაპირებ წავიდეთ წინ და ამის hello, ყველა caps, hello dot გ. ახლა, თუ მე dot ხაზი hello, რას ველოდოთ? იქნებ ეს ასოთი. შესაძლოა, ეს ასე არ არის. ვნახოთ. ასეთი ფაილი ან დირექტორია. და ჩვენ შეგვიძლია სახის მოტყუებას უბრალოდ ეძებს ზედა მარცხენა. რა გააკეთა მე აშკარად გადარჩენა პროგრამა, როგორც? ყველა caps hello. ასე რომ, მართლაც, რომ აპირებს რათა სხვაობა. ასე რომ, ახლა hello მსოფლიოში დაბრუნდა. ახლა ეს არის ყველა კარგი და კეთილი, და ყველა ძალიან გონება- numbing, ერთგვარი bogged ქვემოთ ეს დეტალები, მაგრამ გაგება მათ არის კარგი. Typing აღნიშნული უფრო ხანგრძლივი მართლწერის არ იქნება, განსაკუთრებით სახალისო, ასე რომ ხალხი მსოფლიოში გამოიგონა სხვა პროგრამა, რამდენიმე წლის წინ, ე.წ. რათა, რომ უბრალოდ გაძლევთ საშუალებას ჩაწეროთ მიიღოს, სახელი პროგრამა თქვენ გინდათ, და არის ჭკვიანი, რომ ის გამოიყურება მიმდინარე საქაღალდეში, aka დირექტორია, და თუ თქვენ გაქვთ ფაილი მოუწოდა hello dot გ, რომ არის ფაილი კომპილირდება თქვენ შევიდა პროგრამა მოუწოდა hello. ასე რომ, ეს უფრო მარტივი გზა ამით უფრო cryptic ბრძანებები რომ ჩვენ გავაკეთეთ ადრე. და ჩვენ წინასწარ კონფიგურირებული CS50 IDE უნდა იცოდეს რომ ეს უნდა გავაკეთოთ dash o და რიგი სხვა დროშები, ან ბრძანების არგუმენტები, რომ ჩვენ დავინახავთ, სანამ ხანგრძლივი. მაგრამ მოდით ახლა რეალურად გააკეთებს რაღაც უფრო საინტერესო. უბრალოდ აკრეფით გარეთ hello მსოფლიოში ყველა დრო არ არის ყველა, რომ მყარი. ნება მომეცით წავიდეთ წინ და შეცვლის ამ პროგრამის შესახებ და ამბობენ, მიესალმები დავით. ახლა მე ვაპირებ დაცემას აქ. მე ვაპირებ წავიდეთ წინ და მიიღოს hello. და კიდევ ერთხელ, ახლა თქვენ ხედავს რათა გვიჩვენებს თქვენ აღარ თანმიმდევრობა ბრძანებები, რომ ეს აკეთებს იმიტომ, რომ ჩვენ წინასწარ კონფიგურირებული ის, რომ გზა, მაგრამ ჩვენ არ არის საჭირო ფიქრი ახლა რასაც ის აკეთებს, სხვა, ვიდრე შედგენის dot slash hello, მიესალმები მსოფლიოში. რა არის არასწორი? ჰო. აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: დიახ. ასე რომ, noobie შეცდომა. ვამჩნევ, ეს არის სუპერ დახვეწილი, მაგრამ ვარსკვლავით აქ, tab, მხოლოდ იმას ნიშნავს, თქვენ არ გადაარჩინა, და ბრაუზერები და სხვა პროგრამებს ამისათვის ზოგჯერ. ასე რომ, კონტროლის ან ბრძანება s უნდა შეინახოთ. ახლა ნება მომეცით წავიდეთ წინ და ხელახლა აწარმოებს პროგრამა. Recompiled. უფლება, ასე რომ მრავალ ნაბიჯი პროცესი. არც ერთი, რომელიც განსაკუთრებით რთული მაგრამ ნებისმიერ დროს შევცვალოთ ფაილი, ჩვენ უნდა შეიცვალოს, რის შედეგადაც zeros და პირობა, და dot slash hello. Wow. ასე რომ, ეს არის ძალიან underwhelming რომ ჩვენ უბრალოდ დაბეჭდილი ეს. მოდით, რათა რამ ცოტა უფრო დინამიური, ახლა. ისე გამოდის, რომ მინდა Scratch, C მხარს უჭერს ცვლადები. და აღმოჩნდება, რომ, თუ გსურთ აქვს ცვლადი, მაღაზიები, არ არის რიცხვი, როგორც ჩვენ როგორც წესი, გააკეთა Scratch, მაგრამ, როგორც სიტყვა, ან ფრაზა, ან სახელი, თქვენ შეგიძლიათ მიუთითოთ ცვლადი იყოს ტიპის სიმებიანი. ასე რომ, ჩვენ უფრო მეტი ეს მხოლოდ ერთი წუთით, მაგრამ აღმოჩნდება, რომ C და ბევრი ენების, როგორც ეს, აქვს ძალიან კონკრეტული ტიპის ცვლადი. ეს არ არის მხოლოდ მინდა ალგებრა, სადაც თქვენ მიიღებთ x, y და z და ეს არის მხოლოდ ყოველთვის ციფრები, პროგრამირების ენა თქვენ შეგიძლიათ ჩაწეროთ ნომრები, შეგიძლიათ შესანახად ინდივიდუალური პერსონაჟი, თქვენ შეიძლება შესანახად მთელი სიტყვა, თქვენ შეიძლება შესანახად მთელი გამოსახულება, მთელი ხმის ფაილი, და ასე შემდეგ. ასე რომ, ჩვენ უნდა მიუთითოთ ტიპის ჩვენი ცვლადი. და კონვენციის მე ვაპირებ მოვუწოდო ჩემს ცვლადი s მხოლოდ იმიტომ, რომ ლაკონური, და ის დგას სიმებიანი. და მაშინ მე ვაპირებ შესანახად შიგნით ამ ცვლადი, ისევე, როგორც Scratch როდესაც მე კომპლექტი ბლოკი, მე ვაპირებ გამოიყენოთ დავალება ოპერატორი C, რომელიც ლამაზად საკმარისი არის თანაბარი ხელი მოაწეროს, მაგრამ თანაბარი ნიშანი ამას. იგი მოძრაობს რაღაც მარჯვენა მარცხენა მხარეს გამოხატვის. ასე რომ, რაც მე არ კეთდება, უნდა იყოს ნათელი ხაზი ხუთ, არის მე განაცხადა ცვლადი. მე ვუთხარი, კომპიუტერი, მომეცი მეხსიერების ცვლადი, მას s, და იცით წინასწარ, რომ მე ვაპირებ აყენებს სიმებიანი იგი. და სიმებიანი მხოლოდ თანმიმდევრობა სიმბოლო. ეს არის სიტყვა, ან ფრაზა, ან მე, მაგრამ ეს თანმიმდევრობა სიმბოლო. ეს არ არის ნომრები. რა სიმებიანი ვარ იქნება აყენებს, რომ ცვლადი? ისე, როგორც ჩანს ციტირებით unquote, "Hannah". ახლა შეამჩნია ნიმუში, რომელიც ჩნდება. აქ არის მარცხენა ხელის გამოხატვის. აქ არის მარჯვენა გამოხატვის, გამოყოფილი თანაბარი ნიშანი. და უბრალოდ ვხვდები, თუ უცნობ მიუხედავად ამისა, ის, რაც მძიმით აკეთებს. რა არის ის, სავარაუდოდ, აკეთებენ? ჰო? აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ჰო. უბრალოდ შეწყვეტის ხაზი. მარჯვენა? კომპიუტერები გვინდა, რომ იყოს პირდაპირ განუცხადა, ფაქტიურად, რა უნდა გააკეთოს. მსგავსად არაქისის კარაქი და ჟელე sandwich მაგალითად, თუ თქვენ არ დააკონკრეტა ზუსტად რას აპირებენ, ეს შეიძლება დარჩა განაჩენის ან შეცდომა. მძიმით ნიშნავს, რომ ის ამ ბრძანებას. ეს ხდება სუპერ ზუსტი, და ეს ძალიან მარტივია, რაც უნდა დატოვონ off. ასე რომ, ახლა ეს პროგრამა არ ჩანს, იქცევიან სხვაგვარად, სანამ მე რათა ის უფრო დინამიური. ასე რომ, ვიდრე მძიმე იქნებოდა ჩემი საკუთარი ასახელებს, ნება მიბოძეთ ჩანაცვლების ღირებულება. და აღმოჩნდება, რომ, და მე ვიცი, რომ ეს რომელმაც წაიკითხა დოკუმენტაცია, და გამოიყენება ფუნქცია წლების განმავლობაში, რომ printf შეიქმნა იყოს დინამიური. თქვენ არ გაქვთ წინასწარ იცოდეს, რა სიტყვა გსურთ დააყენა იგი. შეგიძლიათ ნაცვლად აქვს placeholder, როგორც პროცენტი s, რომელიც აპირებს ვუთხრა კომპიუტერი, დააყენა სიმებიანი აქ. რომელი სიმებიანი ჩვენ გვინდა, რომ იქ? უილ გამოდის, რომ ამ ფრჩხილებში, რომელიც მახსოვს, დემარკაციის შეყვანის ფუნქცია, თუ თქვენ გაქვთ მძიმეებით სია რამ აქ, ჩვენ რეალურად გაიაროს მრავალჯერადი საშუალებებით ფუნქცია. ასე რომ, ისევე, როგორც ზოგიერთი Scratch კორპუსები, თქვენ შეიძლება არ არ ითამაშა, რომელზეც მათ თქვენი პროექტები ჯერ ან საერთოდ, ზოგიერთი Scratch ბლოკები აქვს ორი საშუალებებით. ორი თეთრი ყუთები შეგიძლიათ აკრიფოთ ნომრები და სიტყვები. ასე რომ, არ C აქვს ფუნქციები, როგორიცაა printf, რომ შეუძლია ორი საშუალებებით. ისევ და ისევ, ეს მძიმით არის ჰყოფს მათ. ასე რომ, ინგლისურ, ერთხელ კი, თუ თქვენ არ დაპროგრამებულია ადრე, იმ ლოგიკით printf ფუნქცია, იღებს ორ საშუალებებით, რომელთაგან ერთ-ერთი არის placeholder, რას იმედი მაქვს, printf აპირებს ამ შეყვანის? ის აპირებს მიესალმები Hannah, იმედია. ასე რომ, ამისათვის ჩვენ უნდა გადავარჩინოთ იგი. მე ვაპირებ დააშორებს. მე ვაპირებ დაბრუნდეს ქვემოთ აქ და აცხადებენ, რომ მიიღოს hello შევა. Oh. რაღაც არასწორი, და რეალურად ეს არის საკმაოდ დიდი. მე მაქვს ექვსი ხაზი კოდი და როგორც 12 ხაზების შეცდომები. ასე რომ, ველით, რომ ამ. ასე რომ, რა ხდება აქ? ასე რომ, საუკეთესო უზენაესობის ცერის აქ, განსაკუთრებით მაშინ, როდესაც თქვენ დაწყებული out, არ უნდა განადგურდეს პერსონალის ბოლოში. ფაქტობრივად, მე სრულიად შეგნებულად მხოლოდ scrolled up რადგან ძალიან ხშირად, კომპიუტერი არა ყველა, რომ ნათელი მოწყობილობა. ის აპირებს დაბნეული. თუ ის ხედავს ერთი რამ, რომ ეს არ მესმის, ეს შესაძლოა შეცდომა სხვა ხაზი კოდი, როგორც არასწორი, მიუხედავად იმისა, რომ ისინი შესანიშნავად ჯარიმა. ასე, რომ თქვენ ყოველთვის სურს მუშაობა დაბრუნება ქვემოთ მეშვეობით შეცდომები. და მართლაც, ეს არის სუპერ arcane მომენტში. შეცდომა, გამოყენების გამოუცხადებელ იდენტიფიკატორი სიმებიანი. ხომ არ ნიშნავს იმას, რომ სტანდარტი? არა, მე იმას ნიშნავდა, სიმებიანი. და ის მიუთითებს, შესაძლოა, ეს ტექსტის არასწორი ფრაგმენტი. დალაგება მსგავსი, მართლწერის შემოწმების in a ძალიან geeky გზა, მაგრამ მიზეზი აქ, და თქვენ იცით ამ მხოლოდ პრაქტიკა, რომ გამოდის, რომ string არ არსებობს C. ფაქტობრივად, C განსაკუთრებით ძველი ენა, და ეს ძალიან დაბალ დონეზე, და ეს არ არის ბევრი თვისებები რომ თქვენ შეიძლება არ გაიზარდა იმ შემთხვევაში, თუ თქვენ გაქვთ, ფაქტობრივად, დაპროგრამებული ჯავაში, როგორც ზოგიერთი გაქვთ, მაგრამ თქვენ შეგიძლიათ ასწავლოს მას ახალი რამ. და მართლაც, ჩვენ გავაკეთეთ ამ CS50, მიუხედავად იმისა, რომ მიერ სემესტრის ბოლოს, ყველა ამ სასწავლო დისკები რომელიც უკვე წაიყვანეს, რას ვაკეთებთ ამ პირველი რამდენიმე კვირის განმავლობაში თავდაპირველად ჩვენ ასევე გვაქვს თქვენ მოიცავს CS50 dot თ. რა არის header ფაილი. უფრო, რომ მომავალში. ეს არის ფაილი, რომელიც შეიცავს ფუნქციები რომ ჩვენ არ წერია თქვენთვის. და მათ შორის ფუნქციების ფუნქციები შეიტანენ შესახებ, როგორც სიმები, და ნომრები, და რეალური ციფრები, და სხვა. მაგრამ მას ასევე აქვს რამდენიმე კომბინაციები. იგი განსაზღვრავს ლოგიკური, როგორც მონაცემების ტიპის. C ამჯამად არ აქვს ჭეშმარიტი ან მცდარი. მაგრამ ჩვენ შეგვიძლია ეს ცნება ჭეშმარიტი ან მცდარი გზით ამ ბიბლიოთეკაში. და ასევე არ აქვს სიმებიანი აშენდა, სანამ ჩვენ მოიცავს ეს ხაზი. ასე რომ, ეს ხაზი კოდი ეუბნება შემდგენელი, hey, Clang, გამოიყურება ამ ფაილი მთელი bunch of კოდი, რომელიც CS50 დაწერილი ისე, რომ ვინმეს ეს ფაილი შეიძლება თავისთავად თვისებები ისინი დასძინა. ასე რომ, ახლა ნება მომეცით წავიდეთ წინ და გარკვევა ეკრანზე, და თუ აინტერესებს მე უბრალოდ ვამბობ, კონტროლის ლ ყოველი გარკვევა ეკრანზე, ან შეგიძლიათ აკრიფოთ წმინდა. მე უბრალოდ აპირებს წავიდეთ წინ ახლა და ტიპი მიიღოს Hello, და ყველაფერი კარგად იქნება. კიდევ arcane გამომავალი, მაგრამ ეს არ არის მცდარი გაგზავნა. ახლა, თუ dot slash hello, და როგორც განზე, dot slash უცნობ საუკეთესო. ეს მხოლოდ იმას ნიშნავს, dot საშუალებით მიმდინარე დირექტორია. ასე რომ, თუ თქვენ ოდესმე გამოყენებული DOS, ან Linux, ან Unix თქვენ არ კეთდება რამე ისევე როგორც cd dot dot, სადაც dot dot ნიშნავს, რომ წავიდეს უკან დრო, ან უკან, ან უმაღლესი თქვენს დირექტორია. Dot მხოლოდ იმას ნიშნავს, გამოიყურება მიმდინარე დირექტორია. მინდა hello, რომელიც სწორედ აქ. და მართლაც, ახლა იგი აცხადებს, Hello ხანა. და თუ შევცვალო იგი ერთხელ მარია, გადააკომპილეთ ეს გახდის hello, dot slash hello, პროგრამა ინახავს იცვლება. მაგრამ ეს ჯერ კიდევ საკმაოდ სულელური პროგრამა. თუ მინდა მოვახდენთ ამ პროგრამის, ან მისცეს მას მეგობარი, ან მისცეს მას მარია და Hannah ამ საკითხთან დაკავშირებით, რომ ჯარიმა. მე შემიძლია სახის ორივე მათგანი, მაგრამ ის არასდროს იქნება დინამიური. ისინი ვერ შეცვლის მას კიდევ შედგენილი ქვემოთ იმ zeros და პირობა. ასე რომ, რაც ჩვენ გავაკეთეთ რაღაც ჭკვიანია? რა მოხდება, თუ, ნაცვლად მყარი კოდირების პროგრამა ამ პირის სახელი, რა მოხდება, თუ ჩვენ უბრალოდ სიმებიანი მოთხოვნის? ასე რომ, სხვა სიტყვებით, მინდა ამის გაკეთება. მე ვაპირებ გადააკომპილეთ ეს პროგრამა. და ნება მომეცით მიუახლოვდით ბოლოში ახლა. ჩადება მიესალმები dot slash hello. ახლა არაფერი არ ხდება. მივიღოთ სწრაფი მოხალისე რამე მოხდეს? კარგით up. რა გქვია? პანჩო: პანჩო. დევიდ ჯ Malan: Pacho? კარგით up. მას შემდეგ, რაც თქვენ მიიღებთ აქ, ეს არის იქნება ძალიან underwhelming, მაგრამ ეს უფრო საინტერესო ვიდრე მე აკრეფით. თუ გსურთ წავიდეთ წინ და აკრიფოთ თქვენი სახელი, მე მივიღე ეს პროგრამა მხოლოდ თქვენთვის. მხოლოდ ჩაწერეთ თქვენი სახელი. შეიტანეთ. მშვენიერია. ყველა უფლება, დიდი მადლობა. პანჩო: ძალიან დიდი მადლობა. დევიდ ჯ Malan: OK. [ტაში] ეს იყო ძალიან კეთილი. აქ თქვენ გადასვლა. რა გავაკეთოთ? ასე რომ, ჩვენ ბოლოს და ბოლოს, მაინც, ამ პროგრამის დინამიური. ახლა ის მაინც რა თქმა უნდა, დიზაინი underwhelming, მაგრამ ჩვენ საბოლოოდ აქვს უნარი ახლა დაწერა კოდი წინასწარ, ბევრად როგორც ავტორები printf, და შემდეგ დინამიურად ადაპტირება ეფუძნება შეყვანის ჩვენ ვართ გადასცა, ან პროგრამისტი, ან ადამიანის, რომელიც, ფაქტობრივად, ინტერაქციაში პროგრამა. მოდით რეალურად ცდილობენ ამის გაკეთება რამდენიმე სხვა აშენებს და თუ ჩვენ არ შეგვიძლია პროგრამების თავს უფრო დახვეწილი. მოდით წავიდეთ წინ და ნაცვლად წერა ამ ერთ ნულიდან, მე ვაპირებ წასვლას დღევანდელი კოდის, და ეს ყველაფერი ხელმისაწვდომია რა თქმა უნდა, ნახვა, და თქვენ შეგიძლიათ გადააადგილება ის თქვენი საკუთარი გარემო მოდის პარასკევს კიდევ პრობლემა კომპლექტი 1 გაძლევთ მითითებები, ან თქვენ ვერ ამის გაკეთება ბრძანებათა ზოლს კარგად, მაგრამ უფრო მეტი მოვა ჟ მითითებული 1. ვნახოთ, რა არის ამ პროგრამის აქ მოუწოდა, გველგესლა dot გ. ახლა მე უკვე გამოეხმაურა , მაგრამ რა არის ახალი? ერთი შეხედვით, რა ხაზი კოდი არის სრულიად ახალი? ალბათ არ არის ფუნდამენტურად უცნობ ახლა. აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ჰო, ასე int x უდრის მიიღოს n. ჩვენ არასდროს არ უნახავს ეს ადრე, მაგრამ int, ალბათ, სიმბოლო, თუ რა სახის ცვლადი, [? ეხლა?] რიცხვი. ასე int for რიცხვი. ეს მხოლოდ იმიტომ, რომ უფრო ლაკონური. x მხოლოდ უკანონო. x და y და z ჯერ კიდევ საკმაოდ გონივრული ნომრები, მაგრამ ზოგადად ჩვენ ვიყენებთ სიტყვა ერთხელ ჩვენი პროგრამების კიდევ უფრო რთული. მიიღეთ int, რა თქმა უნდა, ჰგავს მიიღოს სიმებიანი, ალბათ აპირებს მიიღოს int ეხლა შესახებ, და მაშინ ჩვენ ვაპირებთ ამის იგივე y. და როგორც ჩანს, მიუხედავად იმისა, რომ ამ ბოლო ხაზი, 24, გამოიყურება უფრო რთული, ის აპირებს ამბობენ, რომ თანხა ამ და რომ ეს სხვა რამ. და შეამჩნია პროცენტი i ალბათ ნიშნავს, რა? რა როლს ასრულებს პროცენტი მე აშკარად ემსახურება? ეს მხოლოდ placeholders. მარჯვენა? პროცენტი s იყო სიმებიანი, პროცენტი i არის რიცხვი. არ იქნება პროცენტი ვ მცურავი წერტილი ღირებულება, რომელიც მხოლოდ ნომერი ათობითი წერტილი. სხვა სიტყვებით, რეალური რაოდენობა. მოდით რეალურად შეადგინონ ამ პროგრამა რეალური სწრაფი და არ მიიღოს გველგესლა. Whoops. კარგი შესაძლებლობა. ასე რომ შეამჩნია აქ, ყველა ამ დროს ჩემი პროფაილი სახელი ამ ანგარიშზე jharvard. მე ვარ CS50 IDE, aka IDE50. და ახლა ლურჯი, აქ არის ნახსენები, მაგრამ გარემოს, სადაც მე ვარ. და სინამდვილეში, თუ ზომით ზევით აქ, შეამჩნია, რომ მე მაქვს IDE50 და მე ვხედავ, ეს სიტყვა, თუ სახის აქციოს თქვენი უფროსი მხარეს, სამუშაო გარემოს. მოკლედ, ის ფაქტი, რომ მე ხედავს tilde slash სამუშაო გარემოს იმას ნიშნავს, რომ ამ ტექსტში დაფუძნებული ბრძანება გარემო, მე ვარ ტექსტში ეკვივალენტს ამ გრაფიკული საქაღალდე აქ. ასე რომ, როდესაც მე dot slash გველგესლა, ის ამბობდა, არსებობს წესი რათა სამიზნე გველგესლა გაჩერება. მე არ ვიცი, რას ნიშნავს, მაგრამ ეს ცუდი რატომღაც. ასეთი ფაილი ან დირექტორია კიდევ უფრო ნათელი. სად არის მაშინ? დაყრდნობით სადაც მე დაწკაპავთ გახსნა ფაილი ადრე. სად შეიძლება იყოს? ეს, ალბათ, წყარო ერთი w, ოთხშაბათს, და მე ვხედავ, რომ, მართლაც, თუ გავხსნა რომ. არსებობს გველგესლა dot გ, მაგრამ ეს ტექსტი დაფუძნებული გარემოს, ერთხელ, მე უნდა იყოს სუპერ სიცოცხლისუნარიანობა. თუ მინდა, რომ შეიცვალოს დირექტორიები წყარო ერთ ოთხშაბათს, მე უნდა შეიტანოთ, cd სივრცეში წყარო ერთ-ერთი ოთხშაბათი შევა და ახლა ჩემი სწრაფი ცვლილებები მომეცი ვიზუალური სწორედ რომ მე, რა თქმა უნდა, მის ფარგლებს გარეთ ჩემი გარემო, მაგრამ ახლა შემიძლია არ მიიღოს გველგესლა, როგორც ჩანს, მუშაობა, dot slash გველგესლა, მომეცი რიცხვი. ერთ-ერთი. ორი. თანხა ერთი და ორი, სამი. მაგრამ თუ მე არ თანამშრომლობენ, ვნახოთ, რა კიდევ int აკეთებს. მომეცი რიცხვი. No. გაიმეორეთ. OK. სახვითი. 50. 50. ყველა უფლება. ასე რომ, ეს საბოლოოდ თანამშრომლობს. და რომ ზოგიერთი ფუნქცია, რომელიც ამ ფუნქციების შეიძლება არ აშენდა თქვენთვის. ასე რომ შიგნით განხორციელება მისაღებად int, რა პროგრამირების მშენებლობა გასულ კვირას, ალბათ, იქ, რათა აიძულოს ეს საქციელი კვალვ, გაიმეორეთ, გაიმეორეთ? ჰო, იქ, ალბათ, გარკვეული ციკლი. ის აპირებს გამოიყურებოდეს სინტაქსურად სხვადასხვა ნულიდან ბლოკები, მაგრამ ეს მართლაც, რა არის შიგნით ფაილი. და რამდენიმე კვირის განმავლობაში ჩვენ გამოგიგზავნით რეალურად შევხედოთ CS50 ბიბლიოთეკა , თუ რა არის შიგნით, მაგრამ იქ მარყუჟის დაკისრების ზუსტად რომ. მოდით თამაში სულელური პატარა თამაში აქ ეს ფაილი. მდგომარეობა ნულოვანი dot გ. ჩვენ უბრალოდ ზოგადად დაიწყება დათვლის დროს ნულოვანი. და მე შენარჩუნება სენსორული წარსულში ზოგიერთი პერსონალის ზედა. ლურჯი აქ, გამიჯნული ყველა ამ ვარსკვლავს და ირიბი, იმ თქვენ, რომლებიც პროგრამა ადრე, რა არის ეს? რატომ შენარჩუნება skipping მას? რა არის ეს? აუდიტორია: ეს არის კომენტარი. დევიდ ჯ Malan: ჰო. ეს მხოლოდ კომენტარი. ეს არის კომენტარი ადამიანები წავიკითხე, რომ ჩვენს შემთხვევაში, გვეუბნება, თუ რა სახელით ფაილი არის, ვინც დაწერა ეს, და რას აკეთებს, ასე რომ თქვენ არ აქვს წაკითხვის მეშვეობით კოდი რა ეს ფაილი არის ყველაფერი. ეს არის მხოლოდ აღწერა, მაგრამ ფუნქციურად ეს შეუსაბამო. მე მინდა კიდევ წაშალოთ ჩემი ფაილი და მას არ აქვს გავლენა. წვნიანი ხაზები ეს პირველი ორი აქ და ახლა. int ძირითადი ბათილად არის ეკვივალენტი ჩვენი როდესაც მწვანე დროშა დააწკაპებთ, ასე რომ, ჩვენ ვაპირებთ, რომ დატოვონ, რომ იყოს დღეს, და ჩვენ დავბრუნდებით, საბოლოოდ, თუ რა int და ბათილად, მაგრამ დღეს, შეამჩნია, რასაც მე ვაკეთებ აქაც, ასევე შეგიძლიათ, თუ თქვენ გაქვთ ხაზი კომენტარი, თუ თქვენ გაქვთ აზრის გსურთ გაუზიაროს კონკრეტული ხაზი კოდი, კონვენციის C არის ამის slash ხაზი, და შემდეგ რამდენიმე ლაკონური სიტყვა, არ არის სრული წინადადება, ზოგადად არ პუნქტის, რომ მხოლოდ განმარტავს, რომ თქვენ, ან თქვენი TF, ან სხვა მკითხველს ან კოლეგებს, რა თქვენი კოდი აკეთებს. ასე რომ, ვიდრე უნდა გამოიყურებოდეს ამ და კიდე ხაზები ცხრა და 10, რა არის ეს აკეთებს, ხაზი რვა მე უბრალოდ მისცეს კომენტარი ვთხოვთ მომხმარებელს რიცხვი, მაშინ მე არ ვფიქრობ, რომ ძალიან რთულია იმაზე, თუ რა ხაზები ცხრა და 10. მე მხოლოდ ის ვიცი, რომ ის, რაც ერთობლივად ისინი აკეთებენ. როგორ? ისე, აქ არის სწრაფი. აი მიღების int. და ეფუძნება წინა ქცევა, როგორც ჩანს, კიდევ int არის ჭკვიანი საკმარისი უნდა დავრწმუნდეთ, რომ ადამიანის თანამშრომლობს და აძლევს მთელი რიცხვი. მაგრამ ახლა ჩვენ ვხედავთ ამ. და ეს არის თქვენში Scratch. მე, რომ მე ვარ ანალიზის მომხმარებლის input, მაგრამ გარკვეულწილად არასწორად. და ეს, როგორც ჩანს, C არის, თუ როგორ გამოვთქვამთ, თუ სხვა რამ, ფილიალი, ჩანგალი გზაზე, მაგრამ მე ამბობენ, გარკვეულწილად არასწორად. რა არის bug ამ პროგრამაში? მომხმარებლის შემდგომ უკან? ჰო. აუდიტორია: [INAUDIBLE] ნულოვანი. დევიდ ჯ Malan: ჰო. ასე რომ, თუ მე აკრიფოთ ნულოვანი, განვიხილოთ ზუსტად იმ შემთხვევაში, თუ კუთხეში შემთხვევაში, თუ გნებავთ. ასე რომ, თუ მე აკრიფოთ ნულოვანი, რომელიც საქართველოს ბლოკები აპირებს როგორც ჩანს დაიბრუნოს ის? იყო თუ ან სხვა? სხვაგან, და ის აპირებს ამბობენ, თქვენ აიყვანეს უარყოფითი რიცხვი. და მართლაც, ნულოვანი არ უნდა უნდა იყოს დადებითი ან უარყოფითი, და ისე, რომ იქნება არასწორი. ეს იქნება შეცდომა. ასე როგორ შეიძლება მოვაგვაროთ ეს პრობლემა? ადამიანი, რომელიც არასოდეს დაპროგრამებულია ადრე? მიგაჩნიათ თუ არა want-- აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: აღიარა? აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ოჰ, შენ? ადამიანი, რომელიც არასოდეს დაპროგრამებულია ადრე. შევეცდები თქვენი ხელი ამ, წითელი პერანგი? კარგით up. ჰო, მოდის, თუ თქვენ არ იბადება. ასე რომ, არასდროს არ პროგრამირდება ადრე, რა გქვია? LAUREN: Lauren. დევიდ ჯ Malan: Lauren, ყველა უფლება. ასე დაფიქსირება ამ შეცდომის ჩვენთვის. თქვენ არ მინახავს C, სავარაუდოდ, და, ალბათ, არც სხვა ენაზე. ასე დაფიქსირება ამ პროგრამის ჩვენთვის. Nice შეხვდება ya. არარის ზეწოლა. LAUREN: ჰო. დევიდ ჯ Malan: თუმცა ისევ და ისევ, თუ ეს Gamble, გეგმის მიხედვით, takeaway აქ იქნება შეიძლება, უბრალოდ, კიდევ ერთხელ, უნდა დაიწყოს შეამჩნია ნიმუშების და დასკვნის არსებული სინტაქსი როგორ სხვაგან თქვენ შეიძლება გამოხატოს საკუთარ თავს, არ pun განკუთვნილი, რათა ხელში რაღაც დამატებითი სცენარი. ასე რომ, ჩვენ ვამბობთ, სხვაგან თუ. printf, კარგი. და შენიშნავს, ერთად CS50 IDE და frankly-- IDE დგას ინტეგრირებული განვითარება გარემოს დაცვა. ეს არის უბრალოდ ლამაზი გზა ამბობდა პროგრამა, რომელიც გეხმარებათ პროგრამა. ეს იმას მოსახერხებელი რამ, როგორიცაა როდესაც თქვენ ჩაწერეთ ერთი ფრჩხილებში, ეს ავტომატურად გაძლევთ სხვა. პრეზუმფცია იმისა, რომ თქვენ საბოლოოდ აპირებს შეიტანოთ, რომ და ეს ასევე არ იწვევენ. ასე რომ, მე მიყვარს line 23. 99% გზა არსებობს. ვინმე გვინდა chime ერთად წვერი? გავიგე, მძიმით აუდიტორია. კარგი. ასე რომ ასრულებს, რომ. და ახლა, მე უბრალოდ პატარა თავზარდამცემი ხაზი 21. როგორ გვინდა გამოვხატოთ ეს? რა კითხვა არ გვინდა ვთხოვო, როგორ ფიქრობთ? ასე რომ, ადრე ჩვენს კითხვაზე, თუ n მეტია ნულოვანი, ამის გაკეთება. სხვაგან, ამის გაკეთება. ასე რომ, ჩვენ უნდა აირჩიოს კითხვა აქ. აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: კარგი. ასე რომ, თუ n ნულის ტოლია. შესანიშნავი. მოდით პაუზის აქ. დიდი მადლობა ამისთვის braving ამ. ნება მიბოძეთ, ცოტა დამსახურებულად სტრესი დაადასტურა, ალბათ, არ არსებობს. ასე რომ, ჩვენ თითქმის არ არსებობს. ფაქტობრივად, Lauren, თუ არ გონება, ნება მომეცით ერთი tweak აქ, უბრალოდ უნდა შეესაბამებოდეს კი რაც ჩვენ ვნახეთ Scratch, რა არ მინდა ამის გაკეთება ხაზები 21 და 24, მხოლოდ ერთხელ დაფუძნებული იმაზე, თუ როგორ ჩვენ ეს Scratch, ალბათ? აუდიტორია: გადატანა up. დევიდ ჯ Malan: ჰო, გადატანა. ასე რომ, სხვას მდგომარეობა, მესამე, ან მეოთხე და მეხუთე, ან საბოლოო ფილიალი, უნდა მართლაც მოხდება შემდეგ, და ეს მხოლოდ კონვენციის, მხოლოდ იმიტომ, რომ თუ იქნება. ასე რომ, მე უნდა მიიღოს ამ tweak. და მე უნდა დააყენოს ჩემი Curly გაუწიოს უკან აქ. და ახლა, ეს პროგრამა შეადგინოს. ჩვენ ძალიან ახლოს, მაგრამ იქ ძალიან, ძალიან დახვეწილი შეცდომა. ვნახოთ, რა მოხდება. პირველ რიგში, ნება მომეცით წავიდეთ წინ და დააშორებს. მე ვაპირებ წავიდეთ წინ და აკრიფოთ მიიღოს მდგომარეობაში ნულოვანი. ოჰ, მე ცრუობს. ახლა კომპილატორი რეალურად საკმაოდ ჭკვიანი. და მე ნამდვილად არ მესმის, ეს შეცდომა. გამოყენება შედეგი დავალება როგორც პირობა გარეშე ფრჩხილებში, როგორც ჩანს, ცუდი. მაგრამ რას ნიშნავს ეს? ისე, კიდევ ერთხელ, ეძებს ნიმუშების კოდის, რომელიც ჩვენ ვნახეთ ადრე, რა არის ხაზი 17 რეალურად აკეთებს მიუხედავად იმისა, ლორენ განკუთვნილი ოდნავ წინააღმდეგ შემთხვევაში? ჰო. აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ჰო. ასე მახსოვს თანაბარი ნიშანი, როგორც ჩანს, ჩვენ გამოვიყენეთ ეს ადრე, არ უდრის. მისი დავალება, მარჯვნიდან მარცხნივ. ასე რომ გამოდიან 17 მომენტში არის მდგომარეობა, და ეს შესრულებაში კოდი შიგნით ფრჩხილებში, მაგრამ როცა კოდი ახორციელებს, რა ხდება ღირებულება ნულოვანი? რა ხდება ღირებულება N? ხდება ნულოვანი. ასე რომ, თუ n ხდება ნულოვანი, და კიდევ ერთხელ, როგორც პოსტი გასულ კვირას, ჩვენ ზოგადად ამბობენ, რომ ნულოვანი არის ცრუ და ჭეშმარიტ, ან კი არის ერთი და არ არის ნულოვანი. ასე რომ, ჭეშმარიტი და ყალბი, ერთი და 0. თუ n როგორც ხაზი 17 უკვე მოცემული მნიშვნელობა 0, ნულოვანი მართალია? No. ზოგადად, ნულოვანი არის ყალბი. სწორედ კონვენციის ჩვენ აპირებს cling რომ მიიწევს წინ. ასე იქნება ხაზები, 18, 19, 20 ოდესმე ვრცელდება ახლა, ლოგიკურად? მათ არ შეუძლიათ. ასე რომ, ჩვენს კითხვაზე, მაგრამ არა საკმაოდ ზუსტად, და თქვენ არ იცით, თუ არ თქვენ ვნახე ის, გამოსავალი C როდესაც გსურთ გამოხატოს თანასწორობა, თუ არა ვთქვათ შეადგენს შეადგენს. ასე რომ თანაბარი ნიშანი უკვე გამოიყენება up დავალება, მარჯვნიდან მარცხნივ. უდრის უდრის საშუალებით უდრის. და თუ თქვენ ნამდვილად გსურთ თქვენი გონება უნდა იყოს მოხრილი, JavaScript და PHP, იქ უდრის უდრის შეადგენს, რაც ნიშნავს რაღაც საერთოდ, მაგრამ ჩვენ კიდევ, რომ ხანგრძლივი. ასე რომ, ეს არის მარტივი სარემონტო, მაგრამ რეალიზება სუპერ მარტივი ეს შეცდომა, და მაშინ საინტერესოა, და ბრძოლა წუთი, თუ არა ერთი საათი, რატომ არის ჩემი კოდი არ შესრულებაში როგორც ვაპირებ? იმიტომ, რომ თქვენ არ ვუთხრა ეს ზუსტად რას ნიშნავდა. ასე რომ, თითქმის სრულყოფილი, და ეს იყო დიდი რომ ჩვენ stumbled მასშტაბით ამ ორ პატარა რამ, რადგან ახლა თუ ჩვენ დაფიქსირება მათ, და მე, რათა მდგომარეობა ნულოვანი dot slash მდგომარეობა ნულოვანი, მინდა რიცხვი, გთხოვთ. ვნახოთ. No. ის აპირებს აიძულოს ჩემთვის ამის გაკეთება. ასე რომ, 42. მე აიყვანეს დადებითი რიცხვი. ასე რომ, ახლა როგორ შემიძლია დაამტკიცოს ამ პროგრამის სწორი? თუ თქვენ მათემატიკოსი, თქვენ არ შეგიძლიათ ნამდვილად დაამტკიცოს ეს სასამართლო პროცესი და შეცდომა, არა? თქვენ არ შეგიძლიათ უბრალოდ მტკიცებულება მიერ მაგალითად, მაგრამ მაინც როგორც პროგრამისტი, ჩვენ არ ვართ აპირებს ცდილობენ დაამტკიცონ, ახლა რომ ეს არის რეალურად სწორი, მაგრამ მე ალბათ ტესტი ზოგიერთი წარმომადგენელი შემთხვევაში. მე ტესტირება 42. მე ვერ შესამოწმებლად 43. მე ვერ შესამოწმებლად 44. ტესტი 45. მარჯვენა? მაგრამ მე ვერ გავაკეთებ ამ მართლაც დიდი ხნის განმავლობაში. რა იქნება კიდევ რამდენიმე საინტერესო შემთხვევები ცდილობენ? აუდიტორია: [INAUDIBLE] ნულოვანი. დევიდ ჯ Malan: ასე რომ ნულოვანი. რა თქმა უნდა. და კარგი, ჩვენ მივიღეთ ამ დროს, მადლობა ლორენ ახალი კოდი. რა არის კიდევ ერთი კარგი საქმე ცდილობენ? აუდიტორია: უარყოფითი ერთი. დევიდ ჯ Malan: უარყოფითი ერთი, და შესაძლოა, რაღაც ცოტა დიდია, ასე რომ, შესაძლოა ნეგატიური 42, მაგრამ, ზოგადად, როცა ტესტირება თქვენი პროგრამები წინსვლის, თქვენ აპირებს მინდა ვიფიქრო საკუთარ თავს, როგორც ის, რაც ფუნდამენტური სხვადასხვა შემთხვევებში. და მე ვერ გაბედავს ამბობენ უარყოფითი შემთხვევაში, დადებითი შემთხვევაში, და ნულოვანი შემთხვევაში საკმაოდ ბევრი რაუნდები ამ გარეთ. მოდით შევხედოთ ვარიანტი ამ, თუმცა. პირობები ერთი. ეს არის სწორი გამოსავალი აქ, ასე რომ, თქვენ ნახავთ ორი და ამჟამად, თუ თქვენ გავლა walkthroughs, ზოგადად ნამატი ამ ეტაპობრივი სანამ ჩვენ ზუსტად სწორი მიდგომა. რა მოხდება, თუ ჩვენ სურდა ორი კითხვა ერთდროულად? ნება მომეცით გახსნა ამ ნაცვლად. არასამთავრობო შეცვლა, იმის გამო, ჩვენ დავინახავთ, სხვა დროს. რა არის ახალი სინტაქსურად აქ? მე გაკეთებული სათამაშო თამაში სადაც კომპიუტერული ეუბნება ჩემთვის, მომეცი რიცხვი ერთი და 10, და მაშინ მე ვიმსჯელებთ მომხმარებლის შეყვანის. ინგლისური, საფუძველზე კოდი ხედავთ აქ ლურჯი, რა არის ამ პროგრამის აკეთებს? აუდიტორია: [INAUDIBLE] აიყვანეს დიდი და მცირე რაოდენობით. დევიდ ჯ Malan: ჰო. უბრალოდ განიხილავს თუ არა მე აიყვანეს დიდი, ან საშუალო, ან მცირე რაოდენობის ეფუძნება ძალიან თვითნებური განმარტება მცირე, საშუალო, დიდი და აქ, მაგრამ შეამჩნია სინტაქსი რომ არის ახალი არის. არსებობს არანაკლებ int ან ტოლია მოაწეროს, ან მეტია ან ტოლია ხელი მოაწეროს, სადაც ერთი სხვა, რომ თქვენ შეგვიძლია გამოვხატოთ, როგორიცაა Microsoft Word. ასე რომ პროგრამირების ენა როგორც წესი, მხოლოდ ამის ორი პერსონაჟი, ერთ შემდეგ სხვა. და რას ნიშნავს ეს, ალბათ, წარმოადგენს, ampersand ampersand. აუდიტორია: [INAUDIBLE] დევიდ ჯ Malan: ჰო. ეს უბრალოდ ნიშნავს, და რადგან ეს გამოდის, რომ ავტორები C გამოიყენება ერთი ampersand, რომელიც თქვენ ალბათ ფიქრობთ, იქნება სრულყოფილი ცნება და, უკვე გამოიყენება up, ასე ampersand ampersand რეალურად იღებს შემთხვევაში ჩვენ რეალურად გვინდა. მოდით ახლა stumble მასშტაბით ორი რამ. ნება მომეცით წავიდეთ წინ და ქმნის ერთი. რაღაც რომ ცოტა შემაშფოთებელია. ორაზროვნება dot გ. ნება მომეცით წარმოგიდგინოთ ორი რამ აქ. ერთ-ერთი, ცნობა, რომ ჩვენ შეგვიძლია გავაკეთოთ მათემატიკის, რადგან ისევე, როგორც ადრე, როცა ჩვენ გავაკეთეთ პლუს ორი ნომერი, x და y. რა არის ეს პროგრამა აშკარად აკეთებს? მე არ კომენტარი ჯერ, და მე გააცნო პროცენტი ვ, მაგრამ მე სწრაფად დასაწყისში განაცხადა, პროცენტი ვ ნიშნავს მცურავი წერტილი ღირებულება, რომელიც რეალური რაოდენობა. რაღაც ერთად ათობითი წერტილი, რომელიც არ არის მთელი რიცხვი. რას ფიქრობთ ამ პროგრამის ცდილობს, რათა ეჩვენებინა ეკრანზე? ჰო? აუდიტორია: შედეგად ერთი 10-ზე მეტი. დევიდ ჯ Malan: ჰო. რა არის შედეგი ერთი იყოფა 10. მარჯვენა, იმიტომ, რომ ყველა თქვენ ალბათ გავიზარდე იცის, რომ ერთი 10 არის რა? ჰო, უბრალოდ 1/10 ან 0.1. მარჯვენა? მოდით ვნახოთ, რა არის რეალურად. ნება მომეცით წავიდეთ წინ და გადარჩენა ეს. ნება მომეცით დაცემას აქ. ჩადება ორაზროვნება dot slash ორაზროვნება და გაფრთხილების, ძალიან, წელს Linux გარემოში, თქვენ არ უნდა აკრიფოთ გარეთ ორაზროვნება და მიიღოს მთელი დღის განმავლობაში. ეს ზოგადად, თუ მოხვდა Tab, ეს დასრულდება თქვენი აზრის თქვენთვის, საფუძველზე სიტყვები, რომლებიც შესაძლებელია მიმდინარე დირექტორია. OK. ასე, რომ თქვენ უფლება. ერთი იყოფა 10 არის, ფაქტობრივად, 0.1. მაგრამ მე ცოტა გაუგებარია. და აღმოჩნდება, printf მხარს უჭერს რამდენიმე ფუნქციები რომლის დროსაც თქვენ შეგიძლიათ მიუთითოთ უფრო მეტია, ვიდრე რა რაოდენობის ათობითი რაოდენობა. ასე რომ, თუ გვინდა, რომ 10 ათობითი რაოდენობა შემიძლია ამის გაკეთება პროცენტი, რომ ჩანაცვლების სიმბოლო, dot 10, მომეცი 10 ათობითი რაოდენობა, და შემდეგ კვლავ მცურავი წერტილი ღირებულება, და, როგორც განზე, რა არის ეს წარმატებული ო როგორც ჩანს, ჩვენ შევინარჩუნოთ გამოყენებით? გამოდის, რომ ეს არის სიმბოლო ახალი ხაზი. ეს არის ძალიან გამოკვეთილ გზა ამბობდა, რომ კომპიუტერი, გადატანა კურსორი შემდეგი ხაზის შემდეგ თქვენ გაკეთდეს. ჩვენ დავინახავთ, რა მოხდება როდესაც ჩვენ არ გაგვაჩნია. ნება მომეცით recompile მიიღოს ორაზროვნება. ახლა dot slash ორაზროვნება. OK. Still უფლება. ერთი იყოფა 10-ზე. ახლა მე მიღების პატარა ცნობისმოყვარე, თუმცა. რა მოხდება, თუ გადავხედავთ 20 ათობითი აღნიშნავს, გადააკომპილეთ, გამეორება, და როგორც განზე სიჩქარე, ასევე შეგიძლიათ გამოიყენოთ თქვენი up და down ისრები გადახვევა მეშვეობით თქვენი ისტორია, ასე რომ თქვენ არ უნდა შეინარჩუნოს retyping ეს ბრძანებები, შევა. არა. მე არ ვისწავლოთ, რომ კლასის სკოლა. ყველა უფლება, ნება მომეცით, ვხედავ, როგორც 29 ადგილებში out. იქნებ ეს მხოლოდ fluke. იქნებ ჩემი კომპიუტერი მოქმედი უცნაური. ეს არ არის რამ, არა? ის აკეთებს რაღაც deterministically. ასე რომ ორაზროვნება. OK, რომ არევა. ასე რომ, რა ხდება? ასე რომ, როგორც ჩანს, თქვენი მასწავლებელი უკვე ცრუობს თქვენ ეს ყველაფერი დრო მიზეზის გამო, რომ ჩვენ დავინახავთ, სანამ ხანგრძლივი. მაგრამ მოდით დასრულდეს ერთი პროგრამა. ეს არის პატარა პროგრამები ვიღაცამ დაწერა რამდენიმე წლის წინ, და ეს არის რეალურად ნაწილი კონკურსში. არავის რეალურად წერს კოდი როგორც ეს, და თუ, ეს სტილისტურად პრობლემა. მაგრამ ხალხი ამისათვის იტრაბახებდა. დაწერა ყველაზე დამაბნეველი ეძებს პროგრამა, რომელიც მაინც აკეთებს რაღაც საინტერესო. და შენიშვნა მეგონა ჩვენ დატოვების შესახებ დღეს, ადრე კოლტონი თამაშობს us აქ, აწარმოებს ამ პროგრამის, რომელიც, თუნდაც უბრალოდ გამოყენებით C ამ ტექსტური გარემო, გვაძლევს ამ. Dammit. [სიცილის] ლოდინის. [INAUDIBLE] გ dash ლ მ. თქვენ ვაპირებთ ვხედავ ჯადოსნური incantation, რომ ჩვენ დავინახავთ, სანამ ხანგრძლივი. [INAUDIBLE] ყველა უფლება. და ახლა თქვენ კი გავაკეთოთ რამ მოსწონს ეს. ეს არის ის. იყიდება CS50 ჩვენ, დაინახავთ თქვენ პარასკევს. [მუსიკის დაკვრა] [ტაში]