>> რობ Bowden: ეს არის უფრო კომფორტული განყოფილებიანი,
მაგრამ ეს არ ნიშნავს, რომ თუ გრძნობს, როგორც თქვენ არ უფრო კომფორტული
თქვენ არ ვისწავლოთ რამ აქ.
მოდით დავიწყოთ.
გაქვთ სლაიდები ახლავე შევიდა რამ.
მე ვარ შესახებ მხოლოდ მას ახლა?
გადართვის ლაპტოპები.
>> ALLISON თქვენ არ მინდა გაგვეცანი, რობ?
>> რობ Bowden: ოჰ, მე Rob.
ეს არის ჩემი მეხუთე წელი TF-ing CS50.
>> GABRIEL: მე ვარ გაბრიელ.
მე უფროსი TF CS50.
მე ვიყავი TF შარშან და წელს.
ALLISON: მე Alison, და ეს ჩემი მეორე წელს TF-ing CS50.
>> რობ Bowden: ყველა უფლება, ასე ეს ის მარცხენა,
იმედია თქვენ მინახავს ადრე.
თუ არა იმიტომ, რომ ჩამოტვირთვა თავს,
თქვენ უნდა მინახავს ეს ლექცია.
ასე რომ ეს არის CS50 ელექტრო მოწყობილობების, და იგი გააკეთა გარკვეულწილად აღწერა ეს
ლექცია.
მაგრამ, ძირითადად, ეს მხოლოდ თქვენ გაშვებული ოპერაციული
სისტემა ოპერაციული სისტემა ისე, რომ ჩვენ შეგვიძლია მოგცეთ
პროგრამები გარეშე, ფიქრი, რა არის ეს
იმუშავებს როგორც Windows და Mac, ან, თუ ზოგიერთი თქვენ
უკვე გამოყენებით Linux, Linux.
ეს უბრალოდ უნდა იყოს საერთო სათამაშო
სფეროში, რათა ყველას აქვს ზუსტად იგივე გარემო.
>> ასე რომ, თუ თქვენ არ გადმოწერილი, ეს უკვე,
თქვენ უნდა გადმოწეროთ, რადგან თქვენ აპირებთ უნდა ეს პრობლემა კომპლექტი.
და ეს არის ორი gigabyte უფასო, ასე რომ, შესაძლოა მიიღოს awhile.
On ჰარვარდის ეს თქვენ წავიდეთ სწრაფად.
ამიტომ CS50 ელექტრო მოწყობილობების.
>> ახლა, წლის დასაწყისში, ჩვენ ვაპირებთ ვისაუბროთ მხოლოდ bunch of command line
პერსონალის და ასე რომ, ვგულისხმობ მუშაობა ამ პატარა გარემოს აქ.
და შენიშნავს, ყველა რამ მე ვიტყვი, რომ სწორედ აქ ახლა
იმუშავებს თუ თქვენ შიგნით ტერმინალის შიგნით ელექტრო მოწყობილობების,
თუ თქვენ ხართ შიგნით gedit ტერმინალის ფანჯარაში
შიგნით ელექტრო მოწყობილობების.
ასე რომ, იმ გარემოში იდენტურია.
>> მაგრამ მე ვაპირებ წასვლა მესამე მარშრუტი.
და შეამჩნია ქვემოთ აქ ამ პატარა IP მისამართი უფლება აქ.
ასე რომ თქვენ არ უნდა ამისათვის, მაგრამ ეს IP
address-- ახლა თუ არ მე გარდა ის დაბლოკა ამ რამ.
OK, ასე რომ IP მისამართი მეტი ტერმინალში
აქ, ასე რომ ეს ტერმინალი მეტი აქ არის ტერმინალის ჩემი Mac.
ასე რომ, ეს არ არის გაკეთებული დაკავშირებული მოწყობილობების ყველა.
და თუ თქვენ Windows, მაშინ თქვენ აპირებთ უნდა ჩამოტვირთოთ რამე
სპეციალურად ამ, კერძოდ ხალხი ტენდენცია გამოიყენოს საბაღე, P-U-T-T-Y.
>> მერე რა მე ვაპირებ გააკეთოთ ტიპი SSH და მაშინ, რომ IP მისამართი.
ასევე, jharvard, რომ IP მისამართი.
ასე 192.168.24.220.
ამ საშინელი გაგზავნა, იგნორირება.
მხოლოდ ჩაწერეთ დიახ.
ეს არის CS50 ყუთში.
იგი სთხოვს თქვენი პაროლი.
>> ასე რომ, ბევრი ამ კონტექსტში, სადაც იგი სთხოვს პაროლი [INAUDIBLE].
ჩვენ მივიღეთ ბევრი კითხვა, სადაც ის ამბობს, რომ რეალურად არ აკრეფით.
ეს არ ჩანს, თქვენ გმირები დაგავიწყდათ, როგორც თქვენ, თუ რამე,
უსაფრთხოების ფუნქცია, რადგან თუ ვინმე ეძებს მეტი თქვენი მხრის
და ხედავენ ვარსკვლავი ვარსკვლავი ვარსკვლავი ვარსკვლავი, შემდეგ კი
ვიცი, რომ თქვენი პაროლი ოთხი სიმბოლო.
ისე იდეა დასვამს თქვენი პაროლი, ტიპის.
ის არ აპირებს აჩვენებს თქვენ გმირები,
მაგრამ სინამდვილეში მიღება მათ.
ამ შემთხვევაში, ნებისმიერ დროს ოდესმე დაგავიწყდათ სწრაფი
საქმე ელექტრო მოწყობილობების, დაგავიწყდათ იქნება ჟოლოსფერი.
ასე ჟოლოსფერი.
>> და ახლა აქ შიგნით ფანჯარა, რომელიც არის ჩემი Mac,
მე ძირითადად მქონე იგივე ზუსტი კალენდარი
როგორც ქვეყნის შიგნით ტერმინალში ელექტრო.
ასე რომ თქვენ არ უნდა გავაკეთოთ ეს.
თქვენ შეგიძლიათ გააკეთოთ ყველაფერი თქვენ მინდა შიგნით ელექტრო მოწყობილობების.
მე თითქმის არასდროს რეალურად გააკეთებს არაფერი მოწყობილობების.
მე თითქმის ყოველთვის მინიმუმამდე რომ და ახლა მე მუშაობა SSH ელექტრო მოწყობილობების.
>> თუ არაფერი, თუ აქვს ნელი კომპიუტერი,
თქვენ ალბათ შეამჩნევთ განსხვავებას.
მე ამის გაკეთება, რადგან მე მირჩევნია ტერმინალის ფანჯარაში.
მას აქვს გარკვეული თვისებები, როგორიცაა შემიძლია გაყოფილი ფანჯრიდან,
და ახლა შეგიძლიათ SSH in მეშვეობით მოწყობილობების.
მე მივიღე ორი SSH ხდება ერთდროულად.
თუ თქვენი კომპიუტერი განსაკუთრებით ნელი და თქვენ მომუშავე მოწყობილობების,
და ხვდები, რომ ეს არის ნამდვილად laggy, რასაც.
Tends უნდა იყოს ბევრად უფრო სწრაფად თუ თქვენ SSH-ed in.
მაგრამ სხვაგვარად თქვენ შეგიძლიათ იმუშაოთ ნებისმიერ შემთხვევაში.
>> აუდიტორია: რა SSH ნიშნავს?
>> რობ Bowden: Secure ჭურვები, რაღაც მსგავსი?
რას SSH ნიშნავს?
GABRIEL: Secure Shell.
ALLISON: უბრალოდ უსაფრთხო shell.
რობ Bowden: Secure Shell.
ეს ოქმი, რომელიც თქვენ ეს უსაფრთხო ოქმი, ასე იშიფრება.
ადამიანი ვერ Snoop ქსელი და ვნახოთ, თუ რას ვამბობთ, რომ არაფერი
თქვენ SSH-ed უნდა.
და ფაქტობრივად, ოდითგანვე დღის CS50, ასე 2009 წელს
როდესაც მე ვიყავი freshman, ისე, რომ თქვენ მუშაობდა CS50 პრობლემა კომპლექტი,
შენ SSH-ed ზოგიერთ სერვერზე რომ მივეცით თქვენ ხელმისაწვდომობის,
და მუშაობდა იქ.
ასე რომ თქვენ არ აქვს ეს გრაფიკული მოწყობილობების.
თქვენ არ გაქვთ gedit.
თქვენ არ გაქვთ ეს ყველაფერი, რომ თქვენ შეიძლება ვიზუალურად წერტილი და დააჭირეთ.
უწევდათ მუშაობა ამ ინტერფეისი.
მირჩევნია მუშაობა ამ ინტერფეისი.
ასე რომ, ნაწილი, რასაც ჩვენ ვაპირებთ უნდა აპირებს მეტი ახლა
რამოდენიმე ბრძანებები, თქვენ უნდა
დაიწყოს გაეცნოს როგორც თქვენ წავიდეთ ერთად რა თქმა უნდა.
და გულწრფელად, კიდევ ერთხელ შეეგუება, ეს
ასე უფრო სწრაფად მუშაობა ამ გარემოში
ვიდრე მუშაობა მონახეთ გადმოიყვანა და დაჭერით რამ.
>> ასე რომ აქ ვართ.
ახლა მე უბრალოდ SSH-ed, და ა.შ. ნაგულისხმები location-- თქვენ
დაინახა, ზოგიერთი ეს ბრძანებები კლასში, მაგრამ ჩვენ წავიდეთ ყველა მათგანი კიდევ ერთხელ.
ნაგულისხმევ ჩვენ ამ სახლში დირექტორია.
და დირექტორია, უბრალოდ კიდევ ერთი სიტყვა საქაღალდეში.
ასე რომ, ჩვენ სახლში დირექტორია.
აკრიფოთ ls, მიუთითეთ ფაილი ამ დირექტორიაში.
როგორც ჩანს, მე შეიქმნა blah.c ადრე.
ამიტომ ჩვენ გვაქვს desktop დირექტორია.
თქვენ შეამჩნევთ, სინტაქსის შეფერადება?
ცისფერი შეფერადება მიუთითებს დირექტორია და სწორი თეთრი
მიუთითებს მხოლოდ უბრალო ფაილი.
ასე არ ვაპირებთ, რომ იყოს ზოგიერთი სხვა ფერები ხედავთ.
შესრულებადი ფაილი ალბათ აპირებს უნდა იყოს მწვანე ან რამე მაგდაგვარს.
OK, ასე რომ, ჩვენ სახლში დირექტორია.
>> ახლა, თუ გვინდა, რომ წასვლას სხვადასხვა მომსახურება, CD არის ბრძანება მინდა.
ასე რომ შეცვალოს დირექტორია, და მაშინ გაივლის სახელი მომსახურება
, რომ გსურთ წასვლას.
ასე რომ აქ გვაქვს ოთხი ვარიანტი.
შემიძლია წასვლა ჩამოტვირთვების, და ახლა ჩვენ ვხედავთ, აქ ის მხრიდან ამ ჩართული
უნდა ვთქვა, მე ვარ ~ / Downloads.
>> რა არის tilde?
ეს სტენოგრამის თქვენი სახლის დირექტორია.
ასე რომ, თითქმის ყველაფერი თქვენ აპირებს იქნება მიმართ თქვენი სახლის დირექტორია,
და pwd მხოლოდ ბრძანება გამოვიყენო წელიწადში ერთხელ, რომ
უბრალოდ ბეჭდავს მიმდინარე დირექტორია.
და ასე რომ თქვენ ხედავთ, რომ აქ ~ / გადმოწერა ნამდვილად წყვეტს
to / home / jharvard / ჩამოტვირთვების.
ასე / home / jharvard არის ჩემი მთავარი დირექტორია.
>> ასე რომ ჩვენ შეგვიძლია cd dot dot.
ახლა dot dot არის სპეციალური კატალოგი, რომელიც ყოველთვის ეხება ერთი დირექტორია up.
ასე რომ, თუ მე ~ / ჩამოტვირთვების, მაშინ cd dot dot აპირებს მოუტანს ჩემთვის Tilde.
რას ვფიქრობთ cd dot dot აპირებს მოუტანს ჩემთვის ახლა?
ეს თქვენ მოუტანს ჩემთვის / home.
ასე Tilde ბეჭდვითი სამუშაო დირექტორია, მე ახლა / home / jharvard.
ერთი დირექტორია მდე რომ, ახლა კი ამბობს აქ / home.
>> ახლა cd dot dot.
ახლა მე root დირექტორია, და თქვენ ამის გაკეთება არ შეუძლიათ ერთხელ.
თქვენ უბრალოდ დარჩება root დირექტორია სამუდამოდ.
Root დირექტორია აქვს მთელი bunch of რამ, რომ, თუ გსურთ შესასწავლად,
თქვენ შეგიძლიათ.
მაგალითად, თუ მე შევიდა ბინ, რომელიც შეიცავს
ყველა ამ binaries, როგორიცაა ls, და CD და ყველა იმ რამ.
ასე რომ, ეს ბრძანებები უნდა არსებობს სადმე სისტემაში
და ეს / bin დირექტორია.
მაგრამ თითქმის ყველაფერი უნდა გავაკეთოთ არის იქნება თქვენი სახლის დირექტორია.
და CD ყოველგვარი არგუმენტების გარეშე, თქვენ შეიძლება ითქვას, cd ~, არ უნდა.
cd აპირებს, რათა თქვენ დაბრუნება თქვენი საწყისი დირექტორია.
>> ერთ-ერთი ბოლო ერთი.
cd - აპირებს მოუტანს თქვენ უკან ბოლო დირექტორია, რომ თქვენ იყო.
ასე რომ მე უბრალოდ cd'd ორჯერ ზედიზედ, ასე რომ ჩემი ბოლო დირექტორია იყო სახლში დირექტორია.
თუ მე slash bin, და ახლა მოდით წავიდეთ და შევიდა შესახებ.
პროფაილი წილი.
მოდით წავიდეთ პროფაილი წილი.
ახლა, მე ახლა პროფაილი წილი.
cd -, უკან bin.
ასე რომ ამ იღებს განსაკუთრებით სასარგებლოა როდესაც თქვენ ჰქონდეს და ეს თემა.
ასე რომ, მომხმარებლებს წილი, უკან bin, წილი bin.
>> ასე რომ ამ იღებს სასარგებლო.
თქვენ შეიძლება აღმოჩნდეთ, რომ ბევრი, ბევრი, ბევრი წყობილი დირექტორიები.
და თქვენ მინდა, რომ რამე რეალური სწრაფი ზემოთა ჩამონათვალი.
წასვლა რომ დირექტორია, მიიღოს ცვლილებები და პერსონალის მოსწონს,
და ახლა თქვენ მინდა წასვლა უკან სადაც იყო.
cd -.
მე ყოველთვის იმედგაცრუებული როცა მოხდეს წასვლა
რომ დირექტორია I მინდოდა ამის გაკეთება სამუშაოს.
მე ყოველთვის იმედგაცრუებული, როდესაც მე ეს ორი ნაბიჯი ნაცვლად ერთი ნაბიჯია,
რადგან ეს იმას ნიშნავს, რომ cd - აპირებს მოიყვანოს, რომ შუალედური საიდან
ნაცვლად, სადაც მე მინდა.
>> ასე რომ, ჩვენ ვხედავთ, ყველა სია ფაილი.
ჩვენ ვიცით, თუ როგორ უნდა გარშემო დღემდე.
ასე რომ, ახლა მოდით ვისაუბროთ რედაქტირების ფაილი.
ასე რომ, რა თქმა უნდა, თქვენ თითქმის ყოველთვის მოსალოდნელია, გამოიყენოს gedit.
თუ თქვენ გსურთ, თქვენ შეგიძლიათ მიიღოს შემდეგი ნაბიჯი და დაიწყოს სწავლის ბრძანების ტექსტი
რედაქტორი.
ასე რომ სხვადასხვა ვარიანტები არსებობს.
>> და პირობა, რომ, ალბათ, იქნება შესაბამისი, რომ თქვენ,
ჩვენ Nano, Vim და Emacs.
ასე Nano არის დამწყებთათვის ბრძანების ტექსტი რედაქტორი.
ასე Nano მოდით გაგრძელდება blah.c მე ადრე შექმნილი.
ეს მხოლოდ ამ სტანდარტის C ფაილი.
და ხედავთ მთელი bunch პერსონალის მიმდინარეობს ბოლოში ეკრანზე,
და როგორც ჩანს, blah.c შეიცავს ამას C კოდი.
>> ასე რომ, ამ კონკრეტულ რედაქტორი, რასაც ის ამბობს, ქვედა
ახლა ეს caret სიმბოლო, ჩვენ ვხედავთ ამ ^ G, ^ X, ^ O.
ასე რომ, თითქმის ყველა კონტექსტში, რომ ხედავთ,
თქვენ შეიძლება, რომ caret სიმბოლო სხვა ადგილებში შემოსული, Stack Overflow,
რაღაც ამის მსგავსი.
იგი თითქმის ყოველთვის ეხება კონტროლი.
ასე რომ, გასვლა მინდა ამის გაკეთება კონტროლის X. კონტროლის X, ითიშება.
და შემიძლია ჩემი arrow ღილაკები გადაადგილება.
გაითვალისწინეთ შემიძლია არ აღვნიშნო და დააჭირეთ ადვილად.
თქვენ უნდა გამოიყენოთ თქვენი arrow ღილაკები გადაადგილება.
შეიძლება იყოს გარემოში წერტილი და დააჭირეთ.
>> მაგრამ მოდით გარკვეული ცვლილებები.
ახლა კონტროლის X წასვლა გასასვლელი.
ის აპირებს ამბობენ save შეცვლილია ბუფერული.
ახლა სწრაფი, Y ამისთვის კი, n არა.
კონტროლის C გაუქმების.
მე მხოლოდ დადებითია.
ფაილის სახელი დაწერა.
რა არის ფაილი რომ ეს უკვე არის.
დააჭიროთ.
OK.
ახლა მე უბრალოდ რედაქტირებული, რომ ფაილი, გადაარჩინა, და ის არ შეიცვლება.
>> ასე Nano არის იოლი ტექსტური რედაქტორი შეეგუება.
ალტერნატივა Vim და Emacs.
ეს ის მაღალ დონეზე ტექსტის რედაქტორები რომ აქვს ძალიან ციცაბო სასწავლო მრუდი.
ასე რომ, ჩემი პირადი უპირატესობა არის Vim.
და მას აქვს ფართო არჩევანს.
და კიდევ შეეგუება ის, რომ თქვენ არასოდეს
მინდა წასვლა ნებისმიერ სხვა ტექსტური რედაქტორი იმიტომ, რომ თქვენ
ძალიან ბევრი რამ ხელმისაწვდომი ამ,
მაგრამ ის ნამდვილად დიდი დრო უნდა ვისწავლოთ.
იქნებ თქვენ უბრალოდ უნდა ვაიძულოთ თავს ახლა შეეგუება ეს,
მაგრამ მე ვიტყოდი, რომ ეს ღირს.
მაგრამ ძნელია.
>> და შემდეგ Emacs.
მე ყოველთვის ბრძოლა Emacs რადგან მე ვიცი, როგორ უნდა გავაკეთოთ აბსოლუტურად არაფერი.
როგორც ჩანს, Emacs არ იყოს დამონტაჟებული მოწყობილობების.
შეიძლება დავამატოთ, რომ როგორც default დანადგარები.
ერთხელ თქვენ ვისწავლოთ ერთი Vim და Emacs, არსებობს
არსებობს მყარი მიზეზი ოდესმე ვისწავლოთ სხვა,
მაგრამ ეს სრულიად განსხვავებული სტილის.
OK ისე, რომ რედაქტირების ტექსტი ფაილი.
>> აუდიტორია: თუ თქვენ დავრჩებოდით in Vim ახლა, როგორ we--
>> რობ Bowden: არსებობს სხვადასხვა რეჟიმები Vim,
და არსებობს მთელი გაკვეთილები სასწავლო Vim.
ასე რომ, თუ თქვენ მოხდეს იქნება ამ ჩანართით რეჟიმში, რათა
ტიპის ტექსტი, რომელიც შეგიძლიათ შეიყვანეთ სხვადასხვა გზით,
მაგრამ, თუ როგორ მოხვდნენ ჩასმა რეჟიმში.
ან გავიდნენ რაიმე სპეციალური რეჟიმი, რომელიც თქვენ, უბრალოდ გაქცევა.
და თქვენ მხოლოდ bash გაქცევა მისაღებად ნებისმიერი წყობილი რეჟიმები თქვენი in.
უბრალოდ OK, ახლა დავბრუნდი ნორმალურ რეჟიმში.
>> და ასე ნორმალურ რეჟიმში, მსხვილი ნაწლავის.
ხედავთ ეს გამოჩნდება ბოლოში.
და შემდეგ ქ.
ასე q დატოვა თუ თქვენ ცვლილებები, რომელიც არ მე არ მაქვს ცვლილებები?
მე არ ცვლილებები ჩანს.
ასე რომ, თუ თქვენ უკვე განხორციელდა ცვლილებები, ის ყველაფერს ამბობენ, რომ თქვენ შეგიძლიათ განათავსოთ ძახილის ნიშნის.
მე ვაპირებ მოვუწოდო მას bang.
ასე რომ, შეგიძლიათ აკრძალვა მხოლოდ დატოვა გარეშე აკეთებს არაფერი,
ან მსხვილი ნაწლავის wq გადაარჩენს და დატოვა.
ასე w ზოგადად დაწერა.
ასე წერენ ფაილი.
შემიძლია წერა და დატოვა.
ან შეიძლება მხოლოდ QX slam, ქ bang მხოლოდ
გავიდნენ იქ, მიუხედავად იმისა, ნებისმიერი ცვლილება, რომ თქვენ გააკეთა.
>> ყველა უფლება, ასე რომ, ახლა მოდით წასვლა შეგვიძლია შევქმნათ ფაილი.
დავიწყოთ მოხსნის ფაილი.
და მე მხოლოდ იმისათვის, რომ ერთი სწრაფი ახალი ბრძანება, შეხება.
ასე რომ შეეხოთ foo.
Touch ბარი.
შეეხოთ baz.
თუ ls, ახლა ჩვენ ვხედავთ, რომ ის ფაილი არსებობს.
ისინი სრულიად ცარიელია.
ასე touch არის უბრალოდ მარტივი გზა ერთი, [INAUDIBLE].
ორი, ტექნიკურად უბრალოდ სახელმწიფო ის, რომ ეს განახლებები timestamps.
ასე რომ, ნებისმიერი ფაილი, რომელიც თქვენ აქვს დროის ნიშნულის მასთან.
ასე baz შეიქმნა 14 სექტემბერს 16:21.
ეს არის 16:22, ასე რომ, თუ მე შეხება baz კიდევ ერთხელ, ჩვენ
, რომ baz იყო ყველაზე ცოტა ხნის წინ შეიცვალა 16:22.
მაგრამ სხვაგვარად მე თითქმის არასდროს შევხედოთ timestamps ფაილი.
ასე დაუკავშირდა, აქ მე უბრალოდ გამოყენებით იგი შექმნა რამდენიმე სწრაფი ფაილი.
>> ყველა უფლება, ასე რომ, ახლა rm არის ბრძანება, რომ ჩვენ აღელვებს აქ.
და ჩვენ შეგვიძლია RM boo.
ამბობენ ამოიღონ რეგულარული ცარიელი ფაილი boo.
და ჩვენ შეგვიძლია აკრიფოთ y, და ახლა ის ხსნის.
rm baz.
ამოიღონ რეგულარული ცარიელი ფაილი baz და ტიპის n არა.
ახლა ის არ მოიხსნება.
ასე ბარი და baz ჯერ კიდევ არსებობს.
Foo გაქრა.
GABRIEL: განვაგრძოთ საუბარი.
რობ Bowden: დიდი.
ასე შემაშფოთებელი გაგზავნა აქ, ამოიღონ რეგულარული empty--
რას აკეთებთ ქვემოთ იქ?
ამოიღონ რეგულარული ცარიელი ფაილი.
ასე რომ, თუ ჩვენ არ გვინდა, რომ იყოს აწუხებს, რომ გაგზავნა,
ჩვენ შეგვიძლია სახიფათოა ამ -f დროშა, და ასე რომ ძალა.
და ახლა თუ მე RM -f, ის არ აპირებს ამბობენ არ გსურთ ამოიღონ ფაილი.
ეს უბრალოდ ამის გაკეთება.
და ls, მე ვერ ვხედავ, ბარი, იქ აღარ.
>> ახლა არის პოტენციურად საშიში ბრძანება.
ეს ტენდენცია არ არის ძალიან ცუდი.
ჩვენ დავბრუნდებით მეორე, როგორ მას შეუძლია მიიღოს მართლაც საშიშია.
და მოდით შევქმნათ გარკვეული temp დირექტორია.
mkdir, კიდევ ერთი ბრძანება.
ასე mkdir ბრძანება , რაც დირექტორია.
და ახლა ls ჩვენ ვხედავთ ამ ლამაზი სინათლის ლურჯი ხაზი გაუსვა temp დირექტორია.
შემიძლია CD შევიდა temp.
და შემიძლია mkdir foo.
CD შევიდა foo. mkdir ბარი.
CD შევიდა ბარი.
>> ასე რომ, ჩვენ ვხედავთ, რომ ჩვენ შეიძლება ადვილად მიიღოს ზოგიერთი საკმაოდ ღრმა nesting.
ახლა როგორ მოვაშორო დირექტორია?
rmdir.
ასე რომ, თუ მხოლოდ სწორი ცდილობენ rm, ისე, როგორც რეგულარული ფაილი,
rm ბარი აპირებს ამბობენ, რომ არ ამოიღონ ბარი.
ეს არის ჩამონათვალი.
არსებობს სპეციალური ბრძანება მოხსნის დირექტორიების, სახის.
ასე rmdir ბარი.
ახლა ბარი გაქრა.
>> OK, ასე რომ rmdir მე საკმაოდ ბევრი არასდროს არ გამოიყენოთ.
მიზეზი being-- ახლა მოდით მიიღოს რეგულარული ფაილი ბარი აქ.
ასე rmdir boo.
rmdir.
წაშლა ვერ მოხერხდა foo.
დირექტორია არ ცარიელი.
ასე რომ თქვენ არ გამოიყენოთ წაშლა რეჟ შესახებ მომსახურება რომ აქვს რამ იგი.
>> ასე რომ თქვენ გაქვთ რამდენიმე ვარიანტი.
თქვენ შეგიძლიათ შეხვიდეთ, რომ დირექტორია, ამოიღონ ყველაფერი ხელით და შემდეგ გამოვა
და rmdir დირექტორია.
რომ აშკარად ჟღერს შემაშფოთებელი.
რა მოხდება, თუ არსებობს ათასობით ფაილი არსებობს?
ასევე, შეიძლება RM *.
ჩვენ ვსაუბრობთ * მეორე.
ეს ნიშნავს იმას, რომ ყველა რამ.
მაგრამ უკეთესი არ არის, ამიტომ rm -r.
ასე rm -r-- ბევრი კონტექსტში, -r ნიშნავს რეკურსიული,
რომელიც ჩვენ ვსაუბრობთ იმაზე, თუ რა რეკურსიული საშუალება რამდენიმე კვირის განმავლობაში.
მაგრამ ეს ნიშნავს იმას, ტრავერსზე მთლიანად ამ ჩამონათვალი
და ამოიღონ ყველაფერი.
>> ასე rm -r foo თქმას წარმოშობის შევიდა დირექტორია foo?
დიახ.
ამოიღონ რეგულარული ცარიელი ფაილი foo / ბარი?
დიახ.
ამოიღონ დირექტორია foo?
დიახ.
ასე რომ, ახლა foo და ყველაფერი მასში უკვე ამოღებულია.
>> ახლა, რომ შეგიძლიათ მიიღოთ განსაკუთრებით შემაშფოთებელი when-- შევეხოთ 1, შეეხოთ 2, შეეხოთ 3.
შეეძლო მთელი bunch ფაილი.
თუ მინდოდა, მე ვერ შექმნა ათასობით ფაილი აქ.
და rm -r foo აპირებს საკმაოდ შემაშფოთებელი.
დიახ, დიახ, დიახ, დიახ, დიახ, დიახ.
გაცილებით მეტი ფაილი სწრაფად ხედავთ რამდენჯერ
მე უნდა აკრიფოთ დიახ.
ასევე, ჩვენ უბრალოდ დაინახა ადრე როგორ შეგვიძლია მოშორება სჭირდება, რომ ჩაწერეთ დიახ, ვ.
ასე mkdir foo cd foo touch 1 2 3.
OK, ასე რომ, rm -rf foo აპირებს ბრმად ამოიღონ foo მთლიანად.
არ ზოლზე.
არ არაფერი.
Foo გაქრა.
>> ასე რომ, მე, როგორც წესი, გამოიყენოთ ეს ბრძანება ყველა დროის.
რომ განაცხადა, ეს არის ძალიან საშიში ბრძანება,
იმიტომ, რომ თუ რაღაც მოსწონს ეს, ეს არ შეგახსენებთ.
იქნება წასული.
და ეს ხდება საკმაოდ ხშირად, და კიდევ უფრო მაღალ დონეზე CS კურსები.
ზოგჯერ ჩვენ ვხედავთ, რაღაც, სადაც ვინმე
ამბობს, რომ მე შემთხვევით ჩვენი rm rf-ed ჩემს სახლში მომსახურება და ყველა ჩემი P კომპლექტი გაქრა.
და ეს დამანგრეველი, მაგრამ იქ არ არის ნაგვის შეიძლება.
არ არსებობს იქ არაფერი თქვენ ვიღებ.
უბრალოდ გაქრა.
კიდევ უფრო უარესი იქნება რაღაც მსგავსი rm -rf /.
ასე რომ, ჩვენ განვიხილეთ რომ root დირექტორია.
ის ფლობს ყველა ფაილი თქვენი სისტემის.
რამ წესი, საკმაოდ რთული როდესაც თქვენ ამოიღონ რამ, როგორიცაა ls
და CD და ყველა იმ.
>> აუდიტორია: რა არის განსხვავება შორის rm, rf და rm *
რობ Bowden: ასე rm * -
>> ALLISON: კითხვა იყო, თუ რა არის განსხვავება rm, rf და rm *.
>> რობ Bowden: ასე rm *.
Star ზოგადად ნიშნავს ყველა შინაარსი ამ დირექტორიაში.
ცდილობს ვფიქრობ სხვა გზები ნაჩვენებია ვარსკვლავი.
ასევე, ვარსკვლავი, ფაქტობრივად, საერთოდ, ნიშნავს ემთხვევა ნებისმიერი ნიმუში.
ასე რომ, თუ მე მაქვს ფაილი სახელად dog1, შეეხოთ dog2, შეეხოთ Cat1, შეეხოთ Cat2.
ამიტომ ls * 1 აპირებს ბეჭდვა Cat1 და dog1, იმიტომ, რომ ვარსკვლავი შეიძლება იყოს შევსებული
in with-- ერთი უნდა იყოს იქ, მაგრამ ვარსკვლავი შეიძლება იყოს კატა ან ძაღლი.
ეს ველური ბარათი.
სწორედ სიტყვა ვეძებ.
ველური ბარათი.
ან მე ვერ LS ძაღლი * და მე მივიღე, რომ ნახოთ dog1, dog2.
ასე რომ იმ მომსახურების ფაილები რომელიც ემთხვევა, რომ კონკრეტული ნიმუში.
თქვენ შეგიძლიათ გამოიყენოთ ls ამ გზით.
>> Ls * ვარსკვლავი შეესაბამება არაფერი.
ასე რომ, ის აპირებს ბეჭდვა ყველა შინაარსი ამ დირექტორიაში
მას შემდეგ, რაც ყველა მათგანი ემთხვევა.
ის არ აპირებს ბეჭდვა არაფერი ზედა დონეზე დირექტორიები.
თუ მაქვს sub დირექტორია, foo, და შეეხოთ 1 2 -3 ასე რომ, ახლა თუ rm * ვარსკვლავი,
ამოიღონ Cat1, Cat2, dog1, dog2.
ვერ ამოიღონ foo.
ეს არის ჩამონათვალი.
>> ასე ვარსკვლავი აფართოებს ყველა ფაილი დირექტორია.
ასე რომ ტექნიკურად rm * ჰგავს ამბობდა rm Cat1, Cat2, dog1, dog2, foo.
იმის გამო, rm -rf, ტექნიკურად ვარსკვლავი მიზნის მისაღწევად, რაც ჩვენ გვინდა, მაგრამ rm -rf--
თუ გავალ ამ დირექტორია, rm -rf temp,
რომ აპირებს წასვლას დროებითი და რეკურსიული ამოიღონ ყველაფერი.
>> ასე ვარსკვლავი ცალკე, რომ გასაგებია by-- ეს რაღაც
რომ მე გაშვებული, ეს ის რომ მკარნახობდა ბრძანებები
და შემდეგ შესრულებაში და აკეთებს მათ, მოვუწოდებ ამ ჩემი ჭურვი.
ასე რომ, ეს ჭურვი თავად პროგრამა.
და თუ მინდოდა, მე შეიძლება აწარმოებს / bin / bash.
ჭურვი ეწოდება bash.
და ახლა ჩვენ შეამჩნევთ რაიმე ოდნავ შეიცვალა,
და ეს იმიტომ, რომ ჩემი პარამეტრების ჭურვი განსხვავებული.
>> მაგრამ ახლა მე ტექნიკურად გაშვებული ჭურვი ჩემს ორიგინალური shell,
და შემიძლია გასვლა, რომ ჭურვი, და ახლა დავბრუნდი ჩემს ზედა დონის shell.
მიზნით ამბობდა , რომ არის ვარსკვლავი.
ასე რომ ვარსკვლავი არის ის, გაიგეს bash.
ასე rm -rf, -rf დროშა მიხვდა, უბრალოდ rm.
იგი დარწმუნებულია, რომ, როდესაც თქვენ გაივლის -rf, რომ თქვენ
მინდა, რომ რეკურსიული წაშლა ყველა ფაილი გარეშე სულის კარნახის შესაბამისად.
ვარსკვლავი რაღაც ესმოდა მიერ bash, რომ როცა ამბობენ rm *
bash არ აპირებს ამბობენ hey rm *, ამოიღონ ვარსკვლავი.
Bash თქმას rm * ამოიღონ Cat1, Cat2, dog1, dog2.
ეს ავტომატურად აპირებს გაფართოებას ყველა ფაილი დირექტორია.
>> და ანალოგიურად tilde არის კიდევ ერთი სიმბოლო, რომელიც bash ესმის.
როცა ამბობენ, რომ cd ~, bash აფართოებს რომ თქვენი სახლის დირექტორია.
სხვა კითხვები აქამდე?
OK, ასე რომ, ჩვენ ვაპირებთ დავიწყოთ აპირებს სწრაფად.
>> Tab დასრულების.
მხოლოდ იმისათვის, რომ იგი არსებობს.
ბევრი ადამიანი არ გააცნობიეროს, რომ ეს არ არსებობს.
ასე რომ, თუ I ტიპის CD dow, I მინდა წასვლა ჩამოტვირთვების.
მე არ უნდა აკრიფოთ nloads.
შემიძლია უბრალოდ მოხვდა Tab.
ასე რომ, აღიარებს, რომ dow არის პრეფიქსი, რომ
არ ემთხვევა არაფერი სხვა ამ დირექტორიაში,
ასე რომ დაასრულებს, რომ თქვენ.
ახლა შემიძლია შევა.
>> მე ასევე, რომ რეკურსიული.
ასე mkdir foo.
მოდით წასვლას foo.
mkdir ბარი.
ასე ბრუნდება ჩემს სახლში კატალოგი, მე ვხედავ ჩამოტვირთვების.
ახლა დარტყმის tab ერთხელ, ავტომატურად აპირებს შეავსოთ foo.
ეს მხოლოდ დირექტორია.
დარტყმის tab ერთხელ, ავტომატურად აპირებს შეავსოთ ბარი.
ასე რომ, ახლა მე (~ Downloads / foo / ბარი).
>> ასე რომ, ეს tab დასრულების შემდეგ, როდესაც მე მივიღე სამუშაო საათებში,
და მე იდგა ვინმეს უნდა,
და ისინი აპირებენ rm D-O-W-N-L-O-A-D-S, მე კვდება.
უბრალოდ tab, tab, tab, tab.
ასე რომ, ნამდვილად გამოიყენება tab.
და ანალოგიურად და ქვემოთ, ბევრი ადამიანი
მხოლოდ ის, რომ მოხდა არასდროს არ მოხვდა up და down.
ის გავლა წინა ბრძანებები, ასე რომ, თუ გაიქცა რაღაც,
და გსურთ გაუშვით ერთხელ, უბრალოდ გამართავს up წლამდე თქვენ მიიღოს იგი.
OK.
>> იმდენად სწრაფი, სხვა რამ.
მოდით დავუბრუნდეთ temp.
მოდით შევქმნათ რამდენიმე ფაილი.
ასე, მე მხოლოდ აპირებს ჩამოვთვალოთ რამდენიმე სიტყვა.
ძაღლი, კატა, meow.
მოდით ძაღლი, თევზი.
ასე რომ, ახლა rep არის ძალიან სასარგებლო ბრძანებები,
გამოიყენოთ მოძებნოთ მთელი ფაილი კონკრეტული ტექსტი,
და ტექნიკურად შეგიძლიათ ნამდვილად კომპლექსის გამოვლინება, რომ ეს ემთხვევა.
>> ასე რომ, თუ მე grep, და რა არ მინდა, რომ მოძებნოთ?
ვთქვათ, მე ვარ ეძებს კატა, და მინდა ვეძებოთ ყველა ეს ფაილი.
ასე რომ, მე ყველა ეს ფაილი?
Star.
ასე რომ, ფაილი ერთი, მე მაქვს კატა.
მე ალბათ შეეძლო უწოდა რაღაც უკეთესი,
იმიტომ, რომ ჰგავს ხაზის ნომრები ან რამე.
მაგრამ ფაილი მაქვს შეესაბამება კატა.
ფაილი ორი მაქვს ხაზი კატა.
ახლა შემიძლია შიგნიდან ფაილი ერთი და იხილეთ oh yeah, რომ ფაილი არ აქვს cat.
განაცხადის ფაილი სამი არ იყო შესაბამისი იმის გამო, რომ კატა არ არსებობს.
შემიძლია grep for meow.
მხოლოდ წარადგინოს ორი აქვს meow.
>> ასე რომ, ეს თქვენ შეგიძლიათ დააკავშიროთ, კიდევ ერთხელ ს, რომელიც
როგორც ვთქვი ხშირად ნიშნავს რეკურსიული.
და ასე, რომ შეიძლება ამუშავება, grep -r ნებისმიერი მაგალითად of-- შეცვალონ
ეს ერთი მხოლოდ იმისათვის, რომ კატა იქ.
ასე grep -r ნებისმიერი ინსტანციის კატა მთელ ამ დირექტორია.
და ეს რეკურსიული ძებნის ნებისმიერი subdirectories.
ასე რომ, baz, იქ კატა.
დროებითი / 2, იქ კატა.
და temp / 1 არ არის კატა.
ისე, რომ ძიების ფარგლებში ფაილი.
>> ახლა თქვენ შეგიძლიათ გამოიყენოთ იპოვოს.
და ასე ის არის, კონკრეტულად ეძებს ფაილი მოცემული სახელით.
მოდით კიდევ რამდენიმე.
მოდით წასვლას ჩამოტვირთვების.
შეეხოთ dog1.
შეეხოთ Cat2.
შეეხოთ cat_dog.
შეეხოთ catcat.
>> ამიტომ, მე მინდა, რომ იპოვოთ ყველა ფაილი ძაღლი სახელით.
ასე რომ, ხოლო ყველაზე დროს მე არ გახსენებია
როგორ მოვძებნოთ მუშაობდა, სანამ საბოლოოდ წავიკითხე რაღაც, რამაც ასე ნათელია.
ასე რომ, ავტომატურად რეკურსიული.
თქვენ არ უნდა გაიაროს -r.
ასე რომ, dot.
ჩვენ არ ისაუბრა dot ამჟამად.
იმის გამო, რომ dot dot ყოველთვის ნიშნავს, რომ ერთი დირექტორია up.
Dot ყოველთვის ნიშნავს მიმდინარე დირექტორია.
ასე რომ მე ვერ RM -r dot წელს ანალოგიურად შემიძლია RM -rf *.
საბოლოო ჯამში, ისინი მიზნის მისაღწევად იგივე.
rm -rf dot აპირებს ამოიღონ მთელი მიმდინარე დირექტორია.
>> OK, რომელიც მე არ გსურთ იქ.
მაგრამ იპოვოს dot.
ასე რეკურსიული ძიება მიმდინარე დირექტორია და ახლა ყველაფერი
ამის შემდეგ რამოდენიმე დროშებით, რომ თქვენ გამოყენება, რათა გამოირიცხოს რამ დაბრუნებას.
ასე რომ, dot დააბრუნებს ყველაფერს, რომ ეს შეგიძლიათ მიმდინარე დირექტორია.
ეს არის ყველა ფაილი რეკურსიული ძებნას.
ჩვენ დავინახავთ, ზოგიერთი იმ მეორე.
>> მაგრამ იმ შემთხვევაში თუ თქვენ გაინტერესებთ, როგორ გავაკეთო რომ, ასე Command K, სულ მცირე,
ჩემი ტერმინალის Mac გაასუფთავებს მას.
კონტროლის L ზოგადად აუმჯობესებს ის ნებისმიერ ტერმინალში.
ასევე შეგიძლიათ აკრიფოთ წმინდა.
და თუ ოდესმე კიდევ შევიდა უცნაური scenario--
ეს მოხდა ჩემთან რამდენიმე time-- სადაც ფერები თქვენი მოთხოვნა
ყველა არევა, ან ვერ ვხედავ რაიმე
მიმდინარეობს აკრეფილი, როდესაც თქვენ აკრეფით, რადგან ზოგჯერ, როგორც ფონის ფერი არის
იგივე, რაც წინა პლანზე ფერი და ახლა თქვენ ვერ ხედავთ შრიფტები.
გადატვირთვა რაღაც რომ რესეტი თქვენ ძირითადად შავ ფონზე,
თეთრი წინ, ან რასაც თქვენ მითითებული მათ.
>> ასე რომ, სად ვიყავით?
ს dot.
ასე რომ ახლა ყველაფერი წარსულში წერტილი ზღუდავს შედეგები
რაღაც, რომელიც შეესაბამება მოცემული ნიმუში.
ასე რომ, აქ მინდა ძიება ყველაფერი სახელი cat.
მე არაფერი.
რატომ არის, რომ საქმე?
ისე, მე უბრალოდ ეძებს რაღაც ზუსტად სახელი cat.
თუ მინდა მოვძებნო რამე რომელიც რამდენიმე ნიმუში, და cat--
შეთავაზებები ტექნიკურად არ არის საჭირო, მაგრამ მე სროლა მათ იქ.
ასე რომ, ახლა ის პოულობს catcat რადგან ეს არის ერთადერთი რამ, რომ
აქვს რამდენიმე თვითნებური ნიმუში მოჰყვა კატა.
შემიძლია დააყენა კატა * და ახლა მოვძებნოთ catcat, cat_dog, Cat2,
იმის გამო, რომ ამ ყველაფერს კატა დასაწყისში მოჰყვა არაფერი.
თქვენ შეგიძლიათ დააკავშიროთ ეს.
თუ გსურთ მოძებნოთ ყველა C ფაილი რომ თქვენ გაქვთ, თქვენ ალბათ * გ.
ჩვენ blah.c აქ.
ასე რომ, მოვძებნოთ სამუშაოები.
თქვენ შეგიძლიათ მოძებნოთ.
მას მთელი bunch of დროშები დამატებითი შეზღუდვა.
და ერთი მათგანი, ვთქვათ, დ.
ასე უარყოფილია.
ოჰ, ეს არ არის ის რაც მე მინდა.
არ -დ.
ტიპი დ.
ასე რომ, dot - ტიპის დ.
მერე რა, რომ უბრალოდ გააკეთეს, რომ მე ეძებს ყველა ფაილი მიმდინარე დირექტორიაში
ერთად a-- d დგას დირექტორიაში ჩამონათვალი ტიპის.
ეს დააბრუნებს ყველა დირექტორიები მიმდინარე დირექტორია.
და ტიპის F არის რეგულარული ფაილი, ყველა არასამთავრობო დირექტორიები.
ასე რომ მხოლოდ მაგალითად, სხვა გზა
შეიძლება შეზღუდოს ძებნის სხვა მეტი, ვიდრე უბრალოდ სახელი ფაილი.
>> ეს იყო 30-ე წუთზე.
ჯერ კიდევ მიმდინარეობს.
>> ALLISON: მე ნიავი მეშვეობით.
ეს იქნება ჯარიმა.
>> რობ Bowden: ასე რომ სხვა რამ.
ახლა bang, ძახილის ნიშნით.
ასე რომ, როგორც წესი, იმას ნიშნავს კარგად, ვნახოთ ერთი მაგალითი.
ასე რომ, f, რა არის, რომ აპირებს?
კარგად ეს, როგორც ჩანს, განმეორებითი იპოვოს dot ტიპის ვ.
რა შეიძლება ითქვას, გ?
რომ მხოლოდ grep -r კატა *.
ასე bang შეგიძლიათ გამოიყენოთ გავიმეორო ცოტა ხნის წინ გაკეთდა ბრძანება.
ასე რომ, თუ მე აკრიფოთ, gre, ის აპირებს ხელახლა აწარმოებს ბრძანებები, დაიწყო gre ყველაზე
ცოტა ხნის წინ.
>> და თქვენ ხედავთ, ყველა ეს ბრძანებები ისტორია.
ასე ისტორიაში.
ეს არის ყველა ბრძანებები მე აწარმოებს დღეს.
და კარგად, ეს არ არის სიტყვასიტყვით შეზღუდული დღეს
მაგრამ მე გამოიყენება მხოლოდ ამ ელექტრო, როგორც დღეს.
ეს არის თქვენი მთლიანად ისტორია თქვენი bash shell,
გარდა ამისა, ეს ჩამოაჭრა რაღაც მომენტში.
აუდიტორია: რა მოხდება თუ ისტორია [INAUDIBLE] ბრძანება და შეცდომა
შედეგად კვლავ ბეჭდვა the--
>> რობ Bowden: ჰო, თუ არ არის შეცდომა ერთი ასეთი commands--
ასე ვთქვათ, რომ ეს შეცდომა ბრძანება არ არის ნაპოვნი.
ჯერ კიდევ, როგორც ჩანს, ისტორიაში.
ყველა უფლება.
სხვა კითხვები არაფერი?
ასე რომ, ეს bang.
>> ახლა, მართლაც სასარგებლო ბრძანება, კაცი.
ასე რომ, გაძლევთ სახელმძღვანელო მოცემული ბრძანება.
ასე ვთქვათ ადამიანი ls, ასე ეს გვიჩვენებს, ls.
ჩამოთვლილია დირექტორია შინაარსი.
და ეს არის, სადაც მე ვხედავ, რომ არის ეს სხვადასხვა დროშებით, რომ არსებობს.
ასე რომ, ჩვენ ვხედავთ, რომ ls-l არსებობს თუ ჩვენ უნდა წაიკითხოთ, რომ. ls-l
მაძლევს ეს სრული ჩამონათვალი დირექტორია, რომელიც ფლობს ფაილი,
ზომა ფაილი, შეცვლილია დრო.
ამიტომ ls -a არის კიდევ ერთი, რომ თქვენ შეიძლება რეალურად გამოიყენოს გარკვეულწილად ხშირად.
-al ჩემი ყველაზე გავრცელებული დროშა გასულ ls.
>> ასე -ა, შეამჩნია, რომ არსებობს ბევრი ფაილი, ვიდრე უბრალოდ ls.
ls -a.
რა არის საერთო ყველა ფაილი?
იწყება dot.
ასე რომ, ეს არის კონვენციის Linux, რომ ფაილი, რომელიც დასაწყისისთვის dot იმალება.
ასე რომ, ეს მხოლოდ იმას ნიშნავს, რომ როცა ჩვენ უბრალოდ სწორი ls,
ან ჩვენ ძებნას ამ დირექტორია გამოყენებით მონახეთ ექვივალენტი, ან Windows
Explorer ექვივალენტს, რომ ჩვენ არ გვინდა, რომ ეს dot ფაილი.
ისინი უბრალოდ აბინძურებს აზრით რამ.
ასე რომ, ისინი ჩაფლული თუ კონკრეტულად
მოვითხოვთ, რაღაც ა.
ასე, რომ შეიძლება CD შევიდა .local, და მე ვხედავ , რომ თავად დირექტორია
საერთო დირექტორია, და პროგრამები, და blah blah blah.
ასე dot, ფაილი, ისინი მხოლოდ იმალება.
>> OK, ასე რომ სხვა მნიშვნელოვანი პირობა.
მე მაქვს რამოდენიმე შემიძლია გამოტოვოთ.
მოდით უბრალოდ, რეალური სწრაფი საუბარი, ფაილის გადამისამართება რამ.
ასე რომ, არსებობს მთელი კომპლექსი სერია რამ შეგიძლიათ გააკეთოთ ეს,
მაგრამ მხოლოდ, რომ მათ, ასე ვთქვათ, ეხმიანება.
კიდევ ერთი ბრძანება.
მართლაც dumb ბრძანება.
ყველა ის არ არის ბეჭდვის, რაც მე ვუთხრა მას.
ასე ეხმიანება hello.
ეს უბრალოდ გაიმეორა მიესალმები ეკრანზე.
Hello world.
Echoes მიესალმები მსოფლიოში.
>> ასე რომ, ერთი ბრძანება ან ერთი სიმბოლო, რომელიც bash ესმის
ეს უფრო მეტია, ვიდრე სიმბოლო და რომ არის გამომავალი ფაილი სიმბოლო.
ასე რომ, თუ გამომავალი ეს foo, იქ არის ფაილი
მოუწოდა foo, შიგნით რაც მშვენიერია.
ასე რომ, როდესაც მე ვუერთდები მშვენიერია მილის foo,
ეს არ ეხმიანება მიესალმები მსოფლიოში.
ამის ნაცვლად იგი შევიდა ფაილი foo.
და კიდევ ერთი ბრძანება მხოლოდ იმისათვის, რომ ეს თქვენ, კატა.
რომ მარტივი გზა უბრალოდ, სრულიად სიაში შინაარსი ფაილი
ასე, რომ მე არ უნდა გახსნა ტექსტური რედაქტორი უნდა ჩაირთოს.
ასე შინაარსი foo ფაილის მიესალმები მსოფლიოში.
და მე cat blah.c, შინაარსი ამ.
>> ერთხელ, ამ ბრძანებას, რომ არ ველით თქვენ გაქვთ მათ ყველა მეხსიერებაში.
იდეა თქვენ ვხედავთ მათ.
იქნებ ვმუშაობთ რაღაც, და თქვენ
როგორც მე ვარ ავადმყოფი იხსნება ფაილი.
მე მინდა მე შეიძლება უბრალოდ გამოიყურება შინაარსი რეალური სწრაფი.
თქვენ შეიძლება ამის გაკეთება, მაშინ ვიხსენებთ და აცხადებენ, oh I
გვახსოვდეს, რომ მსგავსი რამ რომ არსებობს, და ეს კატა.
>> ასე, რომ აპირებს ფაილი.
ახლა ნამდვილად არ არის რაიმე კარგი მაგალითად კითხულობს ფაილიდან ამჟამად.
რა არის ის, რასაც იღებს რაღაც სტანდარტს?
ნებისმიერი მარტივი Linux ბრძანება?
როდესაც მივიღებთ, რამდენიმე კვირის განმავლობაში ყველა ცალი კარგად,
ამ კვირაში თქვენ გაქვთ ნაჭერი, სადაც თქვენ დაიწყოს აღების შეყვანის შესახებ.
და ასე, როგორც წესი, თქვენ აკრიფოთ შეყვანის დროს კლავიატურაზე.
ნაცვლად აკრეფით, რომ შეყვანის კლავიატურის,
თქვენ შეგიძლიათ ნაცვლად მილი საწყისი ფაილი ასე რომ, როდესაც თქვენ ამის გაკეთება Mario, ./mario,
მილის ცალკეული ფაილი, და რომ აპირებს mario პროგრამა.
არ ელოდა შეყვანის კლავიატურის ნაცვლად, რომ ეს
უბრალოდ აპირებს წაიკითხა ხაზები foo ფაილი.
>> ასე უფრო მეტი, ვიდრე foo აყენებს მას კ ფაილი, და ნაკლები foo
იღებს პერსონალის foo ფაილი და იყენებს, რომ, როგორც შეყვანის ამ პროგრამაში.
და მხოლოდ მისი დანახვა, ჩვენ შეგვიძლია ასევე ეხმიანება foo ბარი baz და შემდეგ ერთის ნაცვლად
მეტია, მოდით ორი შევიდა foo.
რას აკეთებთ?
ეს უბრალოდ რეზოლუციას ფაილი.
ასე რომ, ნაცვლად შეამჩნია, თუ მე echo blah შევიდა foo და შემდეგ cat foo, უბრალოდ blah.
ასე რომ, როდესაც თქვენ გამომავალი ფაილი, მთლიანად overwrites ფაილი.
თუ თქვენ უბრალოდ გვინდა დამატება, ორმაგი [? კლასის მოსწავლე. ?]
>> და ბოლო მილსადენი.
მილის იღებს გაცილებით უფრო რთული, სადაც იგი იღებს გამომავალი ერთი ბრძანება
და კვებავს მას შემდეგ ბრძანება.
ასე რომ, გარკვეული საერთო რამ, ისტორია.
ასე რომ, ugh, მე არ მინდა, რომ შევხედოთ ეს.
მაჩვენეთ ყველა ბრძანებები ჩემი ისტორია სადაც მე grep-ed რაღაც.
არა, ეს გაუგებარია.
მაჩვენეთ ბრძანებები, სადაც მე.
ყველა ბრძანებები მე ოდესმე გაიქცა.
>> ასე ისტორიაში.
ახლა ისტორიის შედეგები, ეკრანზე ამ სიაში ბრძანებები,
მაგრამ მე არ მინდა, რომ დაბეჭდავს მას ეკრანზე.
იმის ნაცვლად, რომ მე ვაპირებ მილის იგი grep.
მოდით grep ყველა ინსტანციის იპოვოს.
ასე რომ, ახლა ნაცვლად grep აყვანა შეყვანის ნაცვლად of--
grep შეუძლია გაუმკლავდეს როგორც შეყვანის ჩვენ გამოყენებით grep ოდნავ განსხვავებულად აქ.
ასე რომ ნაცვლად აკრეფით სია რამ გვინდოდა მოძიება
და განაცხადა, grep ხდება, როგორც შეყვანის.
ასე რომ, თუ მხოლოდ grep იპოვოს, ეს ელოდება ჩემთვის ტიპის რამ.
ასე cat კომენტარი იპოვოს.
Hello.
ს.
გაითვალისწინეთ, ყოველ ჯერზე მე აკრიფოთ იპოვნით ის აღიარებს, რომ მე აკრეფილი იპოვოს.
ასე რომ ნაცვლად ამისა, ნება ძიების ფაილების პოვნა.
>> ასე ისტორიის ახლა აპირებს გამომავალი სიაში ყველა ბრძანებები.
ჩვენ აყენებს, რომ გამომავალი, და ჩვენ კვების იგი grep,
და ამიტომ spitting გარეთ ყველა ინსტანციის იპოვოს.
მიზეზი მე ვთქვი, რომ მინდა იყოს გაუგებარია იმ შემთხვევაში, თუ არ მე ეს ჯერ კიდევ გაუგებარია.
თუ მე grep for grep.
შეამჩნია, რომ ეს საკმაოდ ბევრი ყოველთვის ნაჩვენებია ბრძანება მე მხოლოდ
გაიქცა იმიტომ, რომ ბრძანება თავად grep შიგნით მას.
>> OK, ასე რომ რაიმე შეკითხვები არაფერი?
და მე გადაიტანოთ მეტი ამ ეტაპზე.
იმედია, რომ ეს ლამაზი მიმოხილვა ყველა ბრძანებები
რომ თქვენ არ უნდა მეხსიერებაში, მაგრამ ეს შეადგინოს
მყარი 95% რა გავაკეთოთ ბრძანების.
ასევე გახსოვდეთ, რომ ბრძანება ხაზი თავისთავად, bash არის პროგრამირების ენა,
და ასე, როდესაც თქვენ ქვემოთ, თქვენ შეიძლება გსურთ მართლაც რთული რამ.
და ამიტომ მას აქვს რამ, როგორიცაა მარყუჟების და IFS, და ყველა იმ
რომ თქვენ აპირებთ მისაღებად გამოიყენება თქვენი პროგრამირების ენები.
მაგრამ ეს სცილდება წინამდებარე ნაწილში.
OK, ასე რომ არ კითხვებზე პასუხი?
ALLISON: არა?
GABRIEL: აპირებთ მიზანია:
ALLISON: მე შემიძლია ამის გაკეთება აფეთქდა, თუ გნებავთ.
ჩვენ ვხედავთ, რა ხდება.
რობ Bowden: Off to Allison.
ALLISON: Woo.
თქვენ მძიმე აქტი დაიცვას, Rob.
გინდა გადართოთ თქვენ?
ან შენ, OK.
მე ვაპირებ ცდილობენ და არა საკმაოდ იყოს, როგორც ხანგრძლივი იყო.
მოდით ვნახოთ, თუ ეს ნება მუშაობა გზა მინდა ეს.
იქნებ?
Haha!
დიახ.
>> ასე რომ მე უბრალოდ აპირებს ძალიან სწრაფად წავიდეთ მეშვეობით ცვლადები, მარყუჟების, პირობით,
და ცოტა შემდგენელი.
თუ თქვენ გაქვთ კითხვები ნებისმიერ დროს, გთხოვთ, შეწყვიტოს ჩემთვის.
ამ ბიჭებს მაგონებს ვიმეორებ თქვენი შეკითხვა შემთხვევაში მე დაგვავიწყდეს,
მაგრამ არ უნდა იყოს ძალიან ცუდი.
>> ასე რომ ცვლადების, yeah.
ჩვენ არ გვაქვს ერთი თქვენი Scratch ცალი აქ.
დარწმუნებული ვარ, რომ თქვენ, თუ თქვენ ჰქონდა გარკვეული თამაში
რომ თქვენ შექმნილია Scratch, გქონდათ შენარჩუნება სიმღერა რაღაც ქულა,
ან დრო, ან რაღაც მსგავსი.
ასე რომ, ეს ნათელი ნარინჯისფერი დარტყმები, რომ ჩვენ ვხედავთ,
მხოლოდ Scratch სახით ცვლადები, და თქვენ აუცილებლად
გამოყენებით ცვლადები მთელი თქვენი პროგრამები.
თუ თქვენ არა, მე არ ვარ ნამდვილად დარწმუნებული ვარ, თუ რას აკეთებს.
>> მაგრამ მაინც, დიდი რამ, განსაზღვრის ცვლადები.
With C ყველა ცვლადს აქვს აქვს ტიპის განაცხადა,
ამიტომ მისცა ძალიან ზოგადი ზედა.
ასე რომ თქვენ უნდა თქვენი ჩაწერეთ და შემდეგ რაც
თქვენ გადაწყვიტეთ, რომ თქვენი ცვლადი.
ასე რომ, ამ შემთხვევაში, ტიპი თქვენს ცვლადის სიაში.
>> ჩვენ გვაქვს სამი მაგალითი.
Char ზოგიერთი კლასის, საქართველოს, რაც
დარწმუნებული ვარ, ყველას გვინდა მისაღებად ამ კლასში.
თქვენ შეგიძლიათ განსაზღვრა რამდენიმე ცვლადის ერთ ონლაინ
რადგან ისინი ყველა იმავე ტიპის, რომელიც არის ჩვენი მეორე, მაგალითად,
სადაც თქვენ გაქვთ სამი ცვლადები, x, y და z.
ისინი ყველა მოძრავი.
და შემდეგ ასევე, შეგიძლიათ, ამ ბოლო მაგალითად, int ანგარიში და ნომერი
გუნდები, თქვენ შეგიძლიათ ინიციალიზაცია მათ უფლება არსებობს.
>> ასე რომ, შუა მაგალითად, სადაც ჩვენ უბრალოდ float x, y და z,
ის არ ინიციალიზაცია ამჟამად.
მათ არ აქვთ მნიშვნელობა.
ან მათ ნაგვის ღირებულებებს.
და თუ ცდილობენ და მათი გამოყენება, კომპილატორი დაწეროთ თქვენ.
თქვენ უნდა ორივე განაცხადოს და ინიციალიზაცია თქვენი ცვლადები.
ასე რომ, ამ ბოლო ერთი, ვაკეთებთ ორივე.
ჩვენ ვაცხადებთ ცვლადები ანგარიშით და რაოდენობის გუნდები,
და ჩვენ ინიციალიზაციისას მათ, რაც მათ საწყის მნიშვნელობებს, 7 და 4
შესაბამისად.
ზემოთ.
ყველას კარგი?
გასაოცარია.
>> OK, ასე რომ, ზოგიერთი კონვენცია.
თუ ბიჭები წავიკითხე მეშვეობით სტილის 50, ამ
უბრალოდ რამ, რომ ჩვენ გვინდა მომწონს თქვენ განახორციელოს თქვენი სტილი.
ასე მნიშვნელოვანი სახელები.
თუ დაიწყება მოუწოდებენ რამ უბრალოდ x, y და z, განსაკუთრებით
როგორც თქვენ შეღწევას lengthier პროგრამები, თქვენ
ალბათ აპირებს დაიბნევით და
, რა არის ეს ცვლადი გულისხმობდა.
წარმოდგენა არ მაქვს, რას ნიშნავს ეს.
>> ასე რომ, თუ ეს ნიშნავს, რომ გამართავს ანგარიშით, მას ანგარიში.
თუ ეს იმას ნიშნავდა, გამართავს რამდენიმე პასუხი ან გამოიწვიოს, ეს სახელი, რომ.
ამისთვის მარყუჟების, რომელიც ჩვენ შეღწევას მომდევნო slide,
ერთი წერილი ცვლადები ჯარიმა.
რობ Bowden: I, j, და k მხოლოდ კონვენციების მარყუჟების
რომ ყველას მოელის მათ ეწოდოს i, j, და k.
შეგიძლიათ მოვუწოდებთ მათ ვხედავ row სვეტი ან row ზარი ზოგჯერ
ორი წყობილი მარყუჟების, და რომ ასევე სახის სტანდარტი.
მაგრამ i და j ბოლომდე ნათელი არ არის.
>> ALLISON: ჰო, მე და j თქვენ მთლიანად ჯარიმა.
ხათრით სიცხადე, როგორიცაა ზოგიერთი თქვენი P კომპლექტი,
შესაძლოა, აზრი ჰქონდეს მეტი აღწერილობითი რამ არსებობს მხოლოდ
შენარჩუნება სიმღერა ეს.
მაგრამ მე ვფიქრობ, i, j, და k მე ვფიქრობ, უმრავლესობის us ყველა გამოყენება.
>> რობ Bowden: ამ კონვენციების, ისე სტილის მნიშვნელოვანია.
ეს არის ერთ ერთი ოთხი ღერძი on, რომელიც თქვენ ფასდება,
და ეს ასე ადვილი უბრალოდ მეტი თქვენი P მითითებული ბოლოს და დარწმუნდით
რომ არ არსებობს სტილისტური შეცდომები.
ასე რომ დარწმუნდით, რომ თქვენ tabbing სწორად.
დარწმუნდით, რომ თქვენი ცვლადები დაასახელა.
დატოვონ კომენტარი.
ეს არის ძალიან ადვილი მიიღოს იმ რაოდენობა.
თქვენ არ უნდა ვიფიქროთ, არაფერი, რათა მიიღოს იმ რაოდენობა.
თქვენ არ უნდა გაერკვნენ არაფერი გამოვიდა.
უბრალოდ, რათა ის გამოიყურება საკმაოდ.
>> ALLISON: ფაქტია, რომ ჩვენ აქვს style 50, რომელიც
გეტყვით, სადაც თქვენ ძვირფასი up თუ თქვენ ძვირფასი სტილი
და გეტყვით ზუსტად რა უნდა დააფიქსიროს და როგორ უნდა გაასწორონ ის.
ეს არის ასევე მხოლოდ კარგი ვთქვათ რომ ეს, რა თქმა უნდა პოლიტიკა
იმ შემთხვევაში, თუ თქვენ ოფისში საათი და თქვენი კოდი არის სასადილო,
ჩვენ შეუძლია უარი თქვას, რათა დაეხმაროს სანამ ეს გამოიყურება გავალამაზოთ.
ასე რომ დაიწყოს გარეთ მარჯვენა, შეინარჩუნოს თანმიმდევრული სტილი,
თქვენ ასევე უბრალოდ აპირებს თქვენი სიცოცხლე მთელი ბევრი ადვილია, როდესაც
თქვენ ცდილობთ გავლა გამართვის.
თუ თქვენ ცდილობს გაერკვნენ სადაც თქვენ დაკარგული Curly გაუწიოს
და ისინი მთელი ადგილი, თქვენ მხოლოდ მიღების თქვენი საკუთარი ცხოვრება რთული.
ასე რომ შეესაბამება სტილი.
მე გპირდებით, რომ თქვენ, რათა თქვენი ცხოვრება უფრო ადვილია.
ეს თქვენ, რათა ჩვენი ცხოვრება უფრო ადვილია.
ყველას იქნება ბევრად უფრო ბედნიერი.
და რომ ის, რაც გსურთ.
GABRIEL შენი grade იქნება უმაღლესი.
ALLISON: დიახ, და თქვენი კლასის.
თუ თქვენი TF როგორც თქვენ, tends უნდა იყოს ხელსაყრელი.
ყველა უფლება, და მაშინ მხოლოდ მეორე წერტილი აქ.
თანმიმდევრული initializations.
ასე რომ, როგორც ჩვენ ვნახეთ, შეგიძლიათ განაცხადოს და ინიციალიზაცია რამ.
მრავალჯერადი ცვლადები იგივე ხაზი.
ერთ-ერთი, რაც ჩვენ გვინდა, რომ თქვენ არ უნდა გავაკეთოთ, არის განაცხადოს, ზოგიერთი ცვლადის
და არ ვრთავ მათ იგივე ხაზი, რომელიც თქვენ ინიციალიზაციისას სხვები.
>> ამიტომ იმ შემთხვევაში, რომ გააკეთა არ გაუმახვილებიათ,
ჩვენ გვაქვს მაგალითი აქ სადაც ჩვენ ვაცხადებთ ints
ცვლადები მეოთხედი dimes და pennies,
მაგრამ კვარტლები და pennies არ თავდაპირველი ღირებულება.
ჩვენ არ ინიციალიზდება მათ, მაგრამ უფლება შუა არსებობს
ჩვენ უკვე ინიციალიზაცია dimes 0.
ასე რომ, ან ამის გაკეთება მეოთხედი, dimes, pennies.
ან გააკეთოთ მეოთხედი უდრის 0.
Dimes უდრის 0.
Pennies უდრის 0, ან რასაც იმ საწყის ღირებულებები.
>> დიდი რამ სტილი, იყოს თანმიმდევრული.
როდესაც ეჭვი, იყოს თანმიმდევრული.
მაგრამ დაიცვას ჩვენი სტილი გიდის ძალიან.
ზემოთ.
ყველას კარგი არსებობს?
>> აუდიტორია: სად სტილის სახელმძღვანელო?
ALLISON: სტილის სახელმძღვანელო არის on-- რა არის საიტზე?
>> GABRIEL: მე ვფიქრობ, რომ manual.cs50.net/--
ALLISON: სტილი?
>> GABRIEL: Style.
Yep.
>> ALLISON: დიახ.
ასე კითხვა, სად არის სტილი 50.
manual.cs50.net/style.
დიახ?
>> აუდიტორია: თუ ჩვენ განმსაზღვრელი ცვლადები, არის კარგი
თუ ჩვენ, როგორც [INAUDIBLE], როგორიცაა int ანგარიშით და შემდეგ int მიზანი.
ასე შეიძლება ითქვას, რომ ახლა ჩვენ მიიღო განსაზღვრავს მათ ერთად?
>> ALLISON: ასე კითხვა, უნდა თქვენ გაქვთ ზედმეტი კოდი
როდესაც თქვენ განსაზღვრის ცვლადები, როგორიცაა int ქულა და
მომდევნო ხაზი int თამაში?
რობ Bowden: არსებობს ნამდვილად შემთხვევებში, როდესაც ზედმეტი კოდი ცუდია.
მე არ მიმაჩნია რომ გადაჭარბებული კოდი.
მე თითქმის არასდროს განაცხადოს მრავალჯერადი ცვლადები იმავე ხაზის ოდესმე.
და თუ არაფერი, ეს იმიტომ, რომ როგორც წესი, დავტოვო გარკვეული კომენტარი
აეხსნა, თუ რა ცვლადი არის.
ასე რომ მე ვთქვა int ანგარიში slash slash.
ინახავს ტრეკზე რასაც.
სულ slash slash.
ამიტომ ბევრად დაეკისრება ამ გზით იმისათვის, რომ მათ ყველა იგივე ხაზი.
უბრალოდ არ დააყენა მათ იგივე ხაზი.
>> ALLISON: მე ვგრძნობ, როგორც ეს პირადი უპირატესობა ამ ეტაპზე.
>> აუდიტორია: არა, რომ წავიდეთ მარყუჟების და პერსონალის ძალიან?
რობ Bowden: Like შიგნით?
როგორიცაა int i = 0 მძიმით ხანგრძლივობა უდრის რაღაც?
რომ თქვენ არ გაქვთ არჩევანი.
ამისთვის მარყუჟების ინიციალიზაციისას part-- ასე რომ თქვენ შეიძლება არ მინახავს მხოლოდ
int i = 0 მძიმით i ნაკლებია, ვიდრე ნებისმიერი მძიმით i plus plus.
რომ int i = 0, ტექნიკურად ასევე შეგიძლიათ
ის, რაც ჩვენ ვნახეთ ადრე ერთად მძიმით სინტაქსი.
int i = 0 მძიმით j უდრის 3 მძიმე k შეადგენს 5.
თქვენ არ გაქვთ არჩევანი, გაყოფილი რომ შევიდა მრავალჯერადი ხაზები,
და ეს სტანდარტი.
ვხედავთ, რომ ეს არ არის ჯარიმა.
ALLISON: გასაოცარია.
ასევე, მოსახერხებელია segue შევიდა მარყუჟების.
ისე ჰო, აქ ჩვენ გვაქვს მაგალითები მარყუჟების, რომ თქვენ ბიჭები დაინახა ნულიდან.
და რა თქმა უნდა, ყველა ეს შეიძლება მხოლოდ თავიდან in C.
და ძირითადად საშუალებას გაძლევთ ვიმეორებ გარკვეული მონაკვეთის კოდი
გარკვეული მდგომარეობა შეხვდა, რომელიც ჩვენ
მოხვდება მას შემდეგ, რაც საუბარი მარყუჟების ერთად პირობით.
>> ასე რომ, ჩვენ სამი ძირითადი ტიპის.
, ხოლო, და ნუ ხოლო, რაც ჩვენ ყველა გავლა ახლა.
ასე რომ, პირველი ერთი მარყუჟების.
ასე რომ ზოგიერთი მდგომარეობის, შეასრულოს ეს ბლოკი კოდი.
ჩვენ გვაქვს ეს მაგარი პატარა გრაფიკაზე აქ ბოლოში.
მაგრამ, ძირითადად, თქვენ გაქვთ თქვენი for, რომ პირველ ხაზზე,
თქვენ აპირებს ინიციალიზაცია თქვენი ცვლადები.
>> ასე რომ, როგორც ჩვენ ვისაუბრეთ, მე 0-ის ტოლი ან მე უდრის 10-ს.
რაც თქვენ გჭირდებათ რომ ცვლადი უნდა იყოს ის
იქნება ინიციალიზაცია არსებობს, განაცხადა და ინიციალიზაცია ზოგიერთ ღირებულება.
ასე რომ, ჩვენ გვაქვს რამდენიმე პირობით, რომ აპირებს
უნდა იყოს შემოწმების ჩვენს ცვლადი წინააღმდეგ რაიმე.
ასე რომ იმ შემთხვევაში ტიპიური სცენარი, სადაც იქნებ გსურთ ამ სექციაში კოდი
უნდა შეასრულოს ხუთჯერ.
ასე რომ ჩვენ გვინდა აქვს int i = 0, და ჩვენ გვინდა, რომ იყოს, როდესაც მე არანაკლებ 5.
ასე რომ მდგომარეობა არის მხოლოდ აპირებს შეამოწმოს, რომ ყველა დროის.
თუ ეს მდგომარეობა აფასებს ჭეშმარიტი, ეს
აპირებს კოდი, რომელიც ზუსტად რა ამ პატარა სქემა გვიჩვენებს.
>> და ასე ახორციელებს.
განახლებები ცვლადი, რაც ჩვენ ვხედავთ,
ბოლო ნაწილი ჩვენი ამისთვის loop ინიციალიზაციისას არსებობს.
ასე რომ, ეს უბრალოდ აკეთეთ ეს სანამ ეს მდგომარეობა არ შეხვდა,
და მაშინ გასვლა მარყუჟის და გაგრძელდება
მოძრავი დანარჩენი თქვენი პროგრამა.
ყველას კარგი არსებობს?
ზემოთ.
>> ასე რომ, აქ, მაგალითად, ძალიან ჰგავს რაღაც მე მხოლოდ ისაუბრა.
ამიტომ, ჩვენ უბრალოდ გვინდა ბეჭდვა ეს არის CS50 10 ჯერ.
ასე რომ, ხედავთ, აქ ჩვენ გვაქვს ჩვენი, და მაშინ ჩვენ
ინიციალიზაცია ცვლადი მე უნდა იყოს 0-ის ტოლი.
ჩვენი მდგომარეობა შემოწმების ის, რომ 10-ზე ნაკლები.
ასე შეაფასოს ჭეშმარიტი, როდესაც ჩვენ პირველად დაიწყოს, ხოლო შემდეგ განახლებები ჩვენი ცვლადი
ყოველ ჯერზე, რომ ის რეალურად ახორციელებს და ბეჭდავს out ეს არის CS50.
აჩერებს მას შემდეგ, რაც 10-ჯერ.
ზემოთ.
>> ასე რომ, ხოლო მარყუჟების მომავალი.
და როგორც ხედავთ, აქ, ჩვენ უბრალოდ უნდა ზოგიერთი ხოლო ამ პირობით კითხვა?
>> აუდიტორია: როგორ შემიძლია გადასვლა რეალურად მხოლოდ არა ერთი ნომერი,
მაგრამ ორი რიცხვის [INAUDIBLE] i plus plus plus?
>> ALLISON: ასე რომ კითხვა იყო, თუ როგორ შეგიძლიათ განახლება თქვენი ცვლადი ერთზე მეტი
დროს.
ასე რომ, მე plus plus იქნება განახლება თითო დროს.
თუ თქვენ სურდა განახლება მიერ ორი, შეიძლება ამის i პლუს შეადგენს 2.
>> რობ Bowden: გინახავთ პლუს შეადგენს ლექცია ჯერ არ გაქვთ?
>> აუდიტორია: [INAUDIBLE].
>> ALLISON: ეს ეფექტურად იგივე, რაც უდრის i plus 2.
ასე რომ, ეს აპირებს მიიღოს და განახლება, ორი ყოველ ჯერზე.
Plus შეადგენს მხოლოდ ის, ჩვენ მოვუწოდებთ სინტაქსური შაქარი.
რობ Bowden: Yeah, ის არსებობს, რადგან საკმაოდ ბევრი ყველა არითმეტიკული მოქმედებები.
ასე რომ, მე ჯერ ტოლია გაორმაგდება რაოდენობა.
j გათიშე უდრის 3 არის იგივე როგორც j ტოლია j იყოფა 3-ზე.
>> ALLISON: მინუს შეადგენს 2 ​​აკეთებთ decrement i ორი ყოველ ჯერზე.
რობ Bowden: მაშინაც კი, mod შეადგენს.
თუ თქვენ არ მინახავს bitwise ოპერატორები, მაგრამ caret შეადგენს და ampersand შეადგენს,
ყველა იმ არსებობდა.
>> ALLISON: ასე, რომ ბევრი ჯერ, განსაკუთრებით თქვენი პირველი რამდენიმე P კომპლექტი,
თქვენ ალბათ დამატება მიერ ერთი, ასე რომ i პლუს პლუს, j plus plus
ყოველივე თქვენ აპირებს როგორც წესი, იყოს გამოყენებით.
მაგრამ, რომ განახლება მდგომარეობა არის სრულად თქვენი კონტროლი.
თქვენ შეგიძლიათ განაახლოთ იგი ნებისმიერი მდე ან ნებისმიერი გზა თქვენ გადაწყვიტეთ.
იქნებ უნდოდა, რომ იყოს შემთხვევითი ნომერი ზოგჯერ.
მაგრამ დიახ, არსებობს უამრავი რამ რისი გაკეთებაც შეგიძლიათ, რომ.
თქვენ არ შემოიფარგლება i plus plus.
>> რობ Bowden: უბრალოდ, ასე რომ თქვენ ვიცი, რომ არსებობს, ის ასევე
არსებობს სხვა ფორმით, plus plus i.
ასე რომ, თუ თქვენ ოდესმე ძებნას შემოსული და არ უნდა დაინახოს plus plus i,
საკმაოდ ბევრი იმას ნიშნავს, რომ იგივე.
ALLISON ზემოთ.
კარგი?
გასაოცარია.
ასე რომ, ხოლო მარყუჟების.
ძალიან ჰგავს.
თქვენ გაქვთ ზოგიერთი მდგომარეობა.
მთავარია შეამჩნია აქ არის იმის მაგივრად
სამი სხვადასხვა კუთხეში შეიქმნა, რომ ჩვენ გვაქვს ერთი.
ჩვენ მხოლოდ გარკვეული პირობით რომ მოწმდება.
და ანალოგიურად, რადგან რომ მდგომარეობა აფასებს ჭეშმარიტი,
თქვენი კოდი აპირებს.
და თუ ეს ყალბი, შეწყდება, ნაბიჯი
გადატანა მომდევნო ნაწილი თქვენი პროგრამა.
ასე რომ, ეს სახის მოსწონს რა კარგი მაგალითი იმისა, შემოწმების
ზოგიერთი ნორმალურ მდგომარეობაში?
GABRIEL: მიუხედავად იმისა, რომ მართალია.
ALLISON: თქვენ შეიძლება ხოლო ჭეშმარიტი.
ასევე, 1-ის ტოლია 1.
>> რობ Bowden: თქვენ შეგიძლიათ ამის while-- მხოლოდ ნაცვლად გამოყენებით ამისთვის მარყუჟის,
თქვენ ყოველთვის შეგიძლიათ კოდექსი ამისთვის მარყუჟის, ხოლო მარყუჟის,
ასე რომ უფრო მეტი, ვიდრე 0 ან ხოლო მე ნაკლებია 10.
>> ALLISON: გასაოცარია.
და მაშინ ნუ ხოლო მარყუჟების, რომელიც დიდი შესახებ დადასტურება, სადაც
გსურთ მიიღოთ რაღაც თქვენს შესახებ, თუ იგი მოქმედებს,
და შემდეგ გააგრძელოს არსებობს.
ასე რომ, ერთი რამ იცოდეთ არის ამის გაკეთება, ხოლო ის არის, რომ ის აპირებს შეასრულოს,
და მერე ხელახლა შესრულდეს თუ ეს მდგომარეობა დაკმაყოფილებულია.
>> ასე რომ, ალბათ საუკეთესო გზა ამის არის მხოლოდ ვხედავთ, მაგალითად აქ.
ასე რომ, როგორც უკვე ვახსენე, შესახებ დადასტურება მართლაც useful--
ან გააკეთოთ whiles მართლაც სასარგებლო მომხმარებლები დადასტურება.
ასე რომ, ეს მხოლოდ აპირებს ხელახლა შეეკითხება ზოგიერთი პროფაილი
სანამ ისინი შევა პოზიტიური ნომერი რომელიც შეიძლება სასარგებლო იყოს თქვენი P კომპლექტი
ამ კვირაში.
ასე რომ, ამ შემთხვევაში, როცა თავდაპირველად აწარმოებს ამ პროგრამის
ის აპირებს ბეჭდვა შესვლის დადებითი რიცხვი.
ის აპირებს, რომ რაღაც შეყვანის შესახებ,
და მაშინ იგი აპირებს შეამოწმოს, შეყვანის წინააღმდეგ მდგომარეობა
რომ თქვენ მითითებული ეს.
>> ასე რომ, ამ შემთხვევაში, ის აპირებს შეამოწმოს.
ის აპირებს იტყვით, ჩვენი input უარყოფითი,
ან არის 0 ან უარყოფითი, რომელიც იქნება ბათილად.
ასე რომ მაშინ ხელახლა ზოლზე.
კითხვა?
>> აუდიტორია: ეს იგივეა შემდეგ, როგორც ხოლო loop თუ უბრალოდ აკოპირებთ რომ კოდი
და აღნიშნა, რომ [INAUDIBLE] ხოლო loop?
>> ALLISON: ასე კითხვა იყო რომ ეს იქნება იგივე, რაც მხოლოდ მაშინ,
loop, თუ ჩვენ მხოლოდ ასლი, ხოლო loop ზემოთ.
ასე რომ, ამ შემთხვევაში, თქვენი ხოლო loop აპირებს შეამოწმოს მდგომარეობა პირველი.
ასე რომ, ამ შემთხვევაში, თუ ჩვენ სცადა წერენ, უბრალოდ, ხოლო მარყუჟის,
რომ ვიტყოდი, ხოლო input ნაკლებია.
მაგრამ ჩვენ არ უნდა შეტანის იგი.
>> აუდიტორია: თუ თქვენ [INAUDIBLE] ხოლო მარყუჟის, მათ შორის, ამ კოდექსის,
მაგრამ მაშინ თქვენ გაართვა თავი კოდი ზემოთ ხოლო loop ასევე.
უბრალოდ ჰქონდა ამ კოდექსის [INAUDIBLE] ხოლო loop.
ALLISON: ეს იქნება იგივე, დიახ.
ასე, რომ თქვენ შეიძლება უბრალოდ დაწერა ნაცვლად, რომელმაც გავაკეთოთ დიახ.
GABRIEL: მაგრამ ეს უფრო დახვეწილი.
ALLISON: ჰო, უფრო დახვეწილი.
თქვენ შეგიძლიათ მიიღოთ დიზაინი და whatnot, მაგრამ დიახ, შეგიძლიათ მთლიანად ამის გაკეთება.
ნებისმიერი სხვა კითხვები?
OK, ზემოთ.
>> ასე რომ, ჩვენ ვისაუბრეთ ბევრი მდგომარეობის შესახებ ყველა ამ მარყუჟების, რომ გვაქვს,
ასე რომ, ჩვენ რეალურად მიღების პირობები ლოგიკური გამონათქვამები.
კიდევ ერთხელ, გამოიყენოთ ეს C, ასე რომ მხოლოდ სახის გადასვლის
უფრო გრაფიკული ინტერფეისი რეალურად კოდირების.
>> მაგარი, ასე რომ დიდი, თუ.
ძირითადად, მხოლოდ საშუალებას მოგვცემს გააცნობს გარკვეული ლოგიკა ჩვენი პროგრამა და შემოწმება
sys პირობები.
ასე რომ, ამ შემთხვევაში, OK, არის n მეტია 0?
დიახ, ეს არის, ასე რომ შეგიძლიათ შეასრულოს ეს.
ეს მხოლოდ შემოწმების ზოგიერთი იმ პირობით, რომ თქვენ
მითითებული, რომელიც მე ვფიქრობ, რომ ჩვენ ყველა კომფორტული შემოწმების პირობებში.
ზემოთ.
ასე რომ, თუ სხვაგან არის თქვენი მხრივ, შეიძლება ითქვას, OK, თუ ეს მართლაც ასეა,
ამისათვის პირველ რიგში.
წინააღმდეგ შემთხვევაში, მე მინდა, რომ ძირითადად და გააკეთოს რაღაც.
როგორც ამ შემთხვევაში, თქვენ შეგიძლიათ აირჩიოთ დადებითია ან უარყოფითი რიცხვი.
თქვენ მხოლოდ ორი ვარიანტი.
თქვენ გჭირდებათ რომ შეასრულოს, მიუხედავად იმისა, რა თქვენი მომხმარებლის საშუალებებით.
ასე შეიძლება ითქვას, ასევე, არის ეს მეტია 0?
ზემოთ.
ბეჭდვა დადებითი რიცხვი.
თუ ეს არ არის, ბეჭდვა უარყოფითი.
ყველას კარგი?
>> და მაშინ ერთი რამ აღიარებენ, იმ შემთხვევაში, თუ თუ მდგომარეობა დაკმაყოფილებულია,
სხვაგან არასდროს შესრულდეს.
მხოლოდ ერთი იქნება შეასრულოს დროს.
ამიტომ ვაჭრობის off.
თქვენ არ უნდა ჰქონდეს ორივე.
თქვენ ან უნდა პირველი პირობა.
თქვენ შეგიძლიათ აქვს თუ ან სხვა, არა ორივე.
რომელიც შემდეგ შეგიძლიათ მიიღოს რამ კიდევ უფრო რთული,
იმიტომ, რომ თქვენ არ შეუძლია გააკეთოს, თუ, სხვაგან იგი, და შემდეგ სხვას.
ასე რომ, ამ შემთხვევაში, ჩვენ აქვს სამი პირობები.
ისევ და ისევ, მხოლოდ ერთი არის აპირებს დასრულდება მდე ხორციელდება.
ასე, რომ თქვენ შეიძლება გაინტერესებთ ასევე, თუ თქვენ
აქვს, რომ რაღაც შეიძლება შეხვდეს ორი.
იქნებ რაც თქვენ შესაყვანი შეხვედრა ორივე მდგომარეობა
რადგან, თუ და სხვაგან თუ.
ერთადერთი, რაც აპირებს
>> ALLISON როგორც კი იგი პოულობს რაიმე რომ აკმაყოფილებს პირობას, რომ
აფასებს ჭეშმარიტი, რომ ის, რაც ის აპირებს და სხვა არაფერი.
ისე, თითქოს ეს ნომერი 0-დან 5 თქვენი პირველი,
თუ ეს რიცხვი 3 და 5 სხვაგან თუ ნაწილი,
და თქვენ შეყვანის number-- მე ვთქვი, 0-დან 5 and-- 4.
ის აპირებს მოხვდა პირველი.
ის აპირებს ამბობენ, OK, ამ ნომერი 0-დან 5.
შეასრულოს და დატოვოს.
ის არასოდეს არ მოხვდა, რომ მეორე ვარიანტი.
მაგარი?
გასაოცარია.
>> OK, ჩვენ ასევე გვაქვს switch განცხადებები, თუ გსურთ მიიღოთ კიდევ more-- ან უკაცრავად,
switch არის შემდეგი.
მე მიღების წინ თავს აქ.
ერთხელ, მრავალი, თუ ბლოკები სადაც, როგორც ვთქვი
არის, როგორც კი თქვენ აღმოაჩენთ მდგომარეობა რომ შეხვდა და თუ სხვაგან, თუ სხვაგან,
იგი ტოვებს.
თუ თქვენ უნდა შეამოწმოთ მრავალი რამ, თქვენ
აპირებს გინდათ გამოიყენოთ ეს იმიტომ, ის შეამოწმებს ყოველ ჯერზე აქ.
ასე რომ, ეს გაივლის და თუ ეს უფრო მეტია, ვიდრე ან ტოლია 90,
ის აპირებს ბეჭდვა.
და ის აწარმოებს მეშვეობით და შეამოწმეთ თითოეული მათგანი.
>> აუდიტორია: ასე რომ, ეს იქნება უფრო buggy მეტი [INAUDIBLE].
ეს იყოს, როგორც [INAUDIBLE]?
>> ALLISON: კითხვაზე უნდა იყოს ეს buggy ან არ გააკეთებს, რაც გსურთ.
ეს ნამდვილად დამოკიდებულია რა გსურთ თქვენი პროგრამა.
>> აუდიტორია: მე ვგულისხმობ, როგორიცაა, თუ თქვენ დააყენა 90.
ALLISON: თუ დააყენა 90--
აუდიტორია: [INAUDIBLE].
GABRIEL თქვენ აპირებს მიიღოს ორი რამ.
ALLISON თქვენ აპირებს მიიღოს ორი რამ.
დიახ, ორი.
>> რობ Bowden: ორი?
>> ALLISON: No.
>> რობ Bowden: Four.
თუ თქვენ დააყენა 90, ის აპირებს ამბობენ, რომ თქვენ მივიღე, შენ B, შენ C,
შენ დ
>> აუდიტორია: [INAUDIBLE].
ALLISON: Right.
ასე რომ, მე დამოკიდებული, თუ რა მინდა თქვენგან პროგრამა.
ზოგჯერ თქვენ უნდა შეამოწმეთ მრავალი რამ.
თქვენ მიიღებთ უფრო ღრმა შევიდა რა კარგი დიზაინი, როგორც თქვენ წავიდეთ წინ.
მთავარია, რომ გააცნობიეროს, ის არის, რომ ამ
შეამოწმებს ოთხივე პირობები აქ.
ხოლო თუ ეს იყო, თუ სხვაგან, თუ სხვაგან თუ სხვაგან, რომ მოხვდა, რომ პირველ შემთხვევაში,
ეს იქნებოდა ბეჭდვა შენ და უნდა გაკეთდეს.
>> რობ Bowden: მაშინაც კი, თუ ჩვენ გადაწყვიტა, რომ შეიცვალოს ეს თუ
და მეტია ან ტოლია 90, თუ და მეტია ან ტოლია 80,
ნაკლები ან ტოლია 89 თუ n მეტია ან ტოლია 70-
და n ნაკლებია ან ტოლი 79, ისე, რომ იქნება სწორი.
რომ ყველაფერს გააკეთებს, რაც ჩვენ გვინდა, მაგრამ ის კვლავ ამოწმებს თითოეული ეს.
>> ასე რომ, ხოლო პირველი სცენარი, თუ ჩვენ შესვლის 90 მხოლოდ თუ სხვაგან, თუ სხვაგან, თუ
და ჩვენ შევა 90, მაშინ ის აპირებს გამოსწორებას.
ის შეამოწმებს პირველი ერთი, ბეჭდვითი შენ,
გაფართოებული ყველაფერი, რადგან იგი უკვე ნაპოვნია, რომ სამუშაოები.
ყველა შემთხვევაში ურთიერთგამომრიცხავი საფუძველზე, თუ სხვაგან, თუ სხვაგან თუ.
ასე რომ თქვენ შეასრულოს პირველი, თუ, მაშინ ეს კეთდება.
ის კიდე ბოლომდე.
>> ხოლო თუ ჩვენ შეიცვლება ეს უნდა იყოს რაც მე
ამბობს ნაკლები ან ტოლია 89.
ის აპირებს შეამოწმოს პირველი.
ეს კიდე ბეჭდვა.
ეს თქვენ შეამოწმოს მეორე.
ის არ აპირებს ბეჭდვა.
შეამოწმეთ მესამე.
არ აპირებს ბეჭდვა.
შეამოწმეთ მეოთხე.
ახლა აპირებს ბეჭდვა.
ასე რომ, ამ შემთხვევაში, სხვა თუ ვერსია, რადგან ამ შემთხვევაში
ურთიერთგამომრიცხავ, ეს უკეთესი გამოყენების თუ სხვაგან, თუ სხვაგან, თუ
იმიტომ, რომ აპირებს ნაკლები ამოწმებს პირობები
ვიდრე ეს ვერსია.
ALLISON: გასაოცარია.
ასე რომ, ერთი რამ შეგვიძლია, გავაკეთოთ არის switch განცხადებები.
ძირითადად შეცვლა განცხადება იღებს რამდენიმე ცვლადი,
ამ შემთხვევაში, ეს არის n, და რომელიც განსაზღვრავს საქმე შეასრულოს.
ასე რომ, ეს არის ერთ-ერთი, სადაც თქვენს შემთხვევაში უნდა იყოს ისეთი ურთიერთგამომრიცხავი.
ასე რომ, ამ შემთხვევაში, თუ ჩვენ მივიღებთ ერთი, ეს
აპირებს ემთხვევა რასაც ცვლადი რასაც ღირებულება n
არის ერთ-ერთი ასეთი შემთხვევა, ასე რომ 1, 2, ან 3 და ამობეჭდოთ შესაბამისი ხაზი.
>> და შემდეგ თუ თქვენ შეამჩნევთ აქ, ჩვენ ასევე გვაქვს რა,
რომელიც შეგიძლიათ ვფიქრობ, როგორც თქვენი სხვა.
ასე რომ, თუ თქვენ შეარჩიო ნებისმიერი სხვა ნომერი გარდა ამისა, 1, 2 და 3 ამ შემთხვევაში,
ეს მხოლოდ აპირებს ბეჭდვა არასწორია.
გადამწყვეტი როდესაც გამოყენება ifs წინააღმდეგ თუ elses წინააღმდეგ კონცენტრატორები აპირებს
რამ, რომ თქვენ ბიჭები იხილეთ დიზაინი ბრძენი დაიწყოს წერა
უფრო რთული პროგრამები და არ არსებობს მყარი და სწრაფი წესები
, როდესაც მათი გამოყენება.
ეს ნამდვილად დამოკიდებულია თქვენს კონტექსტში.
>> რობ Bowden: და უბრალოდ იმისათვის, რომ იგი არსებობს,
მას შემდეგ, რაც უფრო კომფორტული მონაკვეთზე.
კომუტატორები, ისინი, როგორც წესი, be-- ასე რომ თქვენ შეზღუდული
რაოდენობის გზა შეიძლება მათი გამოყენება, რადგან IFS,
მდგომარეობა შეიძლება იყოს საკმაოდ ბევრი არაფერი გსურთ.
ერთად ცვლის იმ შემთხვევაში, უნდა იყოს ნომრები,
ან ტექნიკურად ისინი შეიძლება სიმბოლო, მაგრამ სიმბოლო, როგორც ვნახავთ, არის მხოლოდ ციფრები.
ასე რომ, ისინი უნდა იყოს ნომრები, მაგრამ კონცენტრატორები მართლაც უფრო ეფექტურია, ვიდრე თუ
სხვაგან, თუ სხვაგან, თუ იმიტომ, რომ თუნდაც აღების მაგალითად ადრე, ასევე,
grade მაგალითი, როგორც ჩანს კარგი.
>> ასევე ვთქვათ, ჩვენ, ნაცვლად გააკეთოს ეს როგორც თუ სხვაგან, თუ სხვაგან, თუ საქმე.
ასე რომ, თუ n უდრის უდრის 1, ბეჭდვა აიყვანეს დაბალი ნომერი.
თუ სხვაგან, თუ n უდრის უდრის 2, თქვენ აიყვანეს საშუალო ნომერი.
სხვაგან, თუ უდრის უდრის 3, მაღალი.
სხვა არასწორია.
>> ასე ვთქვათ, ეს იყო ჩვენი საქმე.
ასე ვთქვათ, ჩვენ შევა 4, ამიტომ ჩვენ ველით, რომ არასწორია.
ისე, რომ, თუ სხვაგან, თუ სხვაგან თუ მიდგომა იმუშავებს არის
ამოწმებს პირველი პირობა.
ის არ დააკმაყოფილა.
ასე რომ, ჩვენ შეამოწმოს მეორე მდგომარეობაში.
ის არ დააკმაყოფილა.
შეამოწმეთ მესამე მდგომარეობა.
არ დაკმაყოფილდა.
ამიტომ ჩვენ სხვას და ბეჭდვა არასწორია.
>> გზა შეცვლა სამუშაოები არის ის ადგენს ქვემოთ
შევიდა, რასაც ჩვენ ვაპირებთ მოვუწოდებთ jump მაგიდაზე.
მთავარი იდეა ყოფნა რომ როდესაც გადიხარ 4,
მას შეუძლია დაუყოვნებლივ წასვლა იყოს.
ეს არ უნდა შეამოწმოს am I შემთხვევაში 1?
Nope, რომ ეს არ არის ის.
საქმე 2?
Nope.
შემთხვევაში 3?
Nope.
იყოს.
OK, ეს უნდა იყოს, სადაც მე გსურთ, და შემდეგ შეასრულოს, რომ.
არა, იგი მაშინვე გადასვლა იყოს.
ან ის შევდივარ 2, ეს დაუყოვნებლივ უნდა წავიდეს 2
გარეშე სჭირდება გავლა შემთხვევაში 1.
>> ასე რომ, ამ გზით, რეალურად დღეს, რომ ის,
არ არის, რომ ბევრი ეფექტურობის მომატება.
როგორც წესი, კომპიუტერი საკმაოდ სწრაფი, და ეს არ არის დიდი.
მაგრამ ეს იმ შემთხვევაში, რომ კონცენტრატორები სწრაფად.
თუ თქვენ ნამდვილად ცდილობს ოპტიმიზაცია, გამოიყენოთ შეცვლა.
>> ALLISON ზემოთ.
და მაშინ ჩვენ გვაქვს ternary ოპერატორს.
მე ვიცი, მე ზემოთ აღინიშნა, სიტყვა სინტაქსური შაქარი.
ასე რომ, ეს მხოლოდ იმას, რომ თქვენი კოდი ბევრად უფრო მოკლე.
ასე რომ ეს არის ერთ-ერთი იმ შემთხვევებში.
>> ასე ternary ოპერატორი კითხვის ნიშნის მსხვილი ნაწლავის როგორც ვხედავთ ხაზი string
s უდრის n მეტია 100 კითხვის ნიშნის მაღალი colon დაბალია.
ასე რომ, ძირითადად, როგორ მუშაობს ეს არის ის, n აღემატება 100 არის მდგომარეობა.
ასე რომ, მე ვფიქრობ, რომ ეს შეიძლება აზრი.
ეს იგივეა, სვამს კითხვას.
ის ამბობდა oh, არის n მეტია 100.
ვინ იცის?
და თუ იგი აფასებს მართალია, ის აპირებს გაძლევთ
პირველი ისაა, რომ ჩამოთვლილი, რომელიც მაღალი.
წინააღმდეგ შემთხვევაში, ის აპირებს გაძლევთ დაბალია.
ასე რომ, ეს უბრალოდ მართლაც მარტივი და ეფექტური გზა უნდა გააკეთოს, როგორიცაა, თუ სხვაგან.
ეს არის ის, რომ ეს ყველაფერი არის.
>> და თუ ჩვენ წერენ ეს როგორც თუ სხვაგან პირობითი,
ეს იქნება, თუ N არის დიდი 100-ზე მეტი, დაბრუნდნენ მაღალია.
სხვაგან, დაბრუნდეს დაბალია.
ეს არის მხოლოდ ბევრად უფრო მოკლე გზა წერის იგი.
>> რობ Bowden: ასე რომ ამ კონკრეტულ მაგალითს არის, როდესაც თქვენ აკეთებთ რაღაც
როგორც ეს, ეს არის ნიმუში სადაც მე გამოიყენოს ternary ძალიან ხშირად.
ასე რომ, ჩვენ არ ისაუბრა ფარგლებს არ არის, მაგრამ მე სიძულვილის ხედავს string s მძიმით.
თუ n მეტია 100, ტოლია მაღალია.
სხვაგან, ტოლია დაბალია.
ასე რომ ნიმუში, იმ ხუთი ხაზები კოდი ფაქტიურად 100% დროის
შეიძლება გადადის რა იყო იქ ternary.
ასე რომ ternary, ერთი ხაზი კოდი.
თუ სხვაგან, ხუთი.
ეს მაგალითი აღვნიშნო out თითოეული დრო.
ეს, რა დიდი ადგილი for ternary ოპერატორს.
ეს იმდენად სუფთა.
მაგრამ ხალხი, როგორც წესი, არასოდეს გამოიყენებს მას.
>> ALLISON: მიიღეთ ის დაშორებით Gabe.
>> GABRIEL: ახლა ბიჭები ყველა შეიტყო ლექციას ამ კვირაში
რომ ყველაფერი კომპიუტერი ორობითი, არა?
ისევე, როგორც ნათურები აქ.
თქვენ შეიძლება იყოს ჩართული და გამორთვის.
და ყველაფერი, ვგულისხმობ ფაქტიურად ყველაფერი.
ზოგიერთი ნომრები, და chars და სიმები, და კიდევ კოდი რომ წერთ, როდესაც
იგი იღებს შედგენილი, რომ მანქანა კოდი და პერსონალის მოსწონს,
ასე რომ, ეს ყველაფერი boils ქვემოთ 0 და 1.
>> ასე რომ, როდესაც ჩვენ საქმე რიცხვებით, რომელიც
არის ის, რომ ტექნიკურად ძალიან მარტივი, ჩვენ უნდა გავაკეთოთ პერსონალის
როგორიცაა დასძინა მათგანი, რომელიც ალბათ ერთ ერთი მარტივი რამ
შეგიძლიათ გააკეთოთ, რომ ორი მთელი რიცხვები, არა?
ასე რომ, გარდა და გამოკლებაში მუშაობს მხოლოდ როგორც ეს ცივილურ ათობითი ნოტაცია,
გარდა აქ ეს ორობითი, არა?
ასე რომ, ეს ბაზის ორი.
ასე რომ დაამატოთ 1 plus 1.
რომელიც იძლევა 0, და 1 ახორციელებს.
და უბრალოდ აკეთეთ, რომ ახლა გააჩნია უფრო საინტერესო კითხვა.
>> ჩვენ ვიცით, როგორ წარმოადგენს ყველა დადებითი რიცხვებით კომპიუტერი,
მაგრამ მოდით ეს exercise.
თითქოს თქვენ ბიჭები არიან ყველა 1960 და რაღაც ცდილობს შექმნას კომპიუტერი,
და თქვენ უნდა ამუშავება of გზა შენახვის მინუს 1,
მაგალითად, თუ გამოკლებით მთელი საქმე.
რა გავაკეთოთ, რომ?
ნებისმიერი იდეები?
მხოლოდ იმისათვის, რომ არაფერი ჩემთვის.
დიახ?
>> აუდიტორია: [INAUDIBLE] დანიშნოს სპეციალური თუ თქვენი [INAUDIBLE].
>> GABRIEL: შეგიძლიათ დანიშნოს სპეციალური bit, რომელიც იქნება 0 ან 1.
მოდით ვთქვათ, ერთ შემთხვევაში ეს დადებითი და 0 თუ უარყოფითი.
და შემდეგ დანარჩენი bit მხოლოდ შესანახად ნომერი.
ზემოთ.
ასე რომ, ეს ძალიან კარგი იდეა.
ჩვენ გვაქვს, არ ვიცი, 200.
და თუ პირველი ცოტა აღმოჩნდა, მაშინ ეს plus 200.
თუ ეს არ მოხდა off, ეს არის მინუს 200.
ზემოთ.
>> არსებობს მხოლოდ ერთი პატარა პრობლემა,
რომელიც, თუ ჩვენ ვცდილობთ, რომ მთლიანობაში ყველაფერი მდე.
წარმოიდგინეთ ჩვენ გვაქვს 11111 აქ, და ჩვენ შემაჯამებელი ამ 00100 რასაც.
თუ ეს ორი დადებითი, რომ ჯარიმა.
მაგრამ შემდეგ, თუ ერთი მათ უარყოფითი, როგორიცაა
მოდით ვთქვათ, რომ ეს ცოტა აქ არის ერთი, რომ პასუხისმგებელი
for-- მე ვაპირებ, რათა separate-- ასე რომ, ეს ნიშნავს, რომ ეს რიცხვი აქ
არის დადებითი.
ეს ნიშნავს, რომ ეს ნომერი აქ არის უარყოფითი, არა?
>> მაგრამ მაშინ, როდესაც თქვენ აპირებს მთლიანობაში მათ, თქვენ
უნდა თუ განაცხადი ამბობდა oh თუ ეს არის 0,
მაშინ ჩემი თანხა იქნება რაღაც განსხვავებული, არა?
ასე რომ იქ ოდნავ უფრო ჭკვიანი გზა უნდა გააკეთოს,
რომ, რომელსაც ორი ს შეავსებს.
ასე რომ, ძირითადად, რასაც ჩვენ არის ჩვენ განსაზღვრავს მინუს 1
უნდა იყოს, რომ თუ ჩვენ დაამატოთ მდე 1 გვაძლევს 0.
კიდევ ერთხელ ვიმეორებ, რომ.
ასე ვთქვათ, რომ ეს აქ არის 1.
რა არის ის, რომ ბუნებრივია დადებითი რიცხვებით
დაემატა, რომელიც გვაძლევს 0?
რა მოხდება, თუ ჩვენ ვცდილობთ, რომ დაამატოთ ეს ამ ნომერი?
ჩვენ ვაპირებთ აქვს OK, მოდით დაამატოთ.
ჩვენ ვაპირებთ, რომ 1 + 1 0, და მაშინ იგი ახორციელებს.
და მაშინ ჩვენ ვაპირებთ, რომ მიიღოთ 0 ერთხელ.
მე მისაღებად დაბნეული.
და თქვენ აპირებს მიიღოს 0 და 0 0 და 0 0 და 0.
უამრავი 0.
>> ძალიან ბოლო, ჩვენ არ ვართ აპირებს შეძლებს შეასრულოს ის მეტი,
იმის გამო, რომ ვთქვათ, ჩვენ მხოლოდ საქმე ერთი byte, ასე რომ მხოლოდ 8 ბიტი.
ასე რომ, რა კომპიუტერი არ იყოს არის მხოლოდ ავიწყდება, რომ [INAUDIBLE],
OK?
ასე რომ, ეს არის ე.წ. ორ ს შეავსებს.
ჩვენ უბრალოდ განსაზღვრავს მინუს 1 იყოს რამ აქ რომ თუ თქვენ დაამატებთ, რომ 1
გაძლევთ 0.
და ეს საკმაოდ cool იმიტომ, რომ ჩვენ ნამდვილად არ
უნდა გვიან განახორციელოს სხვადასხვა ტიპის თანხა
დამოკიდებულია თუ არა, რომ უარყოფითი ან დადებითი რიცხვი.
ამჯამად რომ აზრი?
>> ასე რომ ერთი რამ, რასაც ჩვენ ვაკეთებთ აქ, რათა დააკონვერტიროთ
შორის პოზიტიური და ნეგატიური რიცხვი მაშინ ჩვენ Flip ყველაფერი,
და შემდეგ დავუმატებთ 1 რომ ნომერი.
თუ თქვენ ცდილობენ ამის გაკეთება საკუთარ თავს ნაჭერი ქაღალდი,
თქვენ აპირებს, რომ აზრი.
მაგრამ თუ ამ რაოდენობის აქ, ამ ხუთ.
ასე რომ, თუ მე Flip ყველაფერი აქ, 1, 1, 1, 1, 1.
Flip, Flip, flip.
და მერე დაამატოთ 1 მას.
მე ვაპირებ ზუსტად მინუს 5.
OK?
>> ამ სახის აზრი იმიტომ, რომ თუ თქვენ ცდილობენ მთლიანობაში ამ რაოდენობის
რომ ჩვენ გვქონდა ადრე, რომელიც was-- მოდით Flip ეს კიდევ ერთხელ.
ეს იყო 101 და უამრავი 0.
თუ თქვენ ცდილობენ დაამატოთ ეს ორი ნომრები ერთად,
თქვენ აპირებს ზუსტად 0.
OK.
ნებისმიერი კითხვები?
>> აუდიტორია: [INAUDIBLE]
>> GABRIEL: რას ნიშნავს ეს?
>> აუდიტორია: უარყოფითი to დადებითი [INAUDIBLE].
>> GABRIEL: არა, თქვენ Flip და თქვენ დაამატოთ 1 ყოველთვის.
ჰო.
OK, ასე რომ გმირები ასევე კოდირებული binaries.
ჩვენ გვაქვს ASCII მაგიდასთან, როგორც თქვენ ასევე ვნახე ლექცია, არა?
ასე რომ, ეს ძირითადად რუკების რამ.
და აქ მე ვერ ხაზი გავუსვა საკმარისი რომ კომპიუტერი, და 65
ფაქტიურად იგივე.
ასე რომ, თუ მე ვწერ რაღაც char c უდრის, მე ვერ, ამავე დროს,
უბრალოდ დაწერეთ 65 და ის იქნება ზუსტად იგივე, OK?
არ არსებობს განსხვავება განაწილებაზე.
>> ჩვენ, როგორც წესი, ბოლო სიმბოლოების ცვლადების ტიპის.
Char, არა იმიტომ, რომ ისინი, ძირითადად, გაკეთდა, არამედ იმიტომ,
ადამიანის კონვენციით.
მაგრამ შეგიძლიათ მხოლოდ გაუმკლავდეთ რიცხვებით ნაცვლად ცვლადების ტიპის char,
და თქვენ უნდა იყოს ჯარიმა.
მხოლოდ ფაქტობრივი განსხვავება შორის char c და int i
არის ის, რომ int აქვს ოთხი ბაიტი ყველაზე სისტემები, ხოლო char აქვს ერთი ბაიტი.
ისინი არსებითად იგივე თვალსაზრისით მონაცემები.
ასე რომ, რა იქნება ბეჭდვა აქ?
აქ ჩვენ დაბეჭდვის ციფრი გამოყენებით printf პლუს 1 და ისევე, როგორც მთელი რიცხვები,
chars შეიძლება შეაჯამა, ასე გმირები ასევე შეიძლება შეაჯამა.
ასე რომ, ეს არის ზუსტად ის 65.
ასე არ იქნება 66, და აქ ჩვენ
65 Plus პატარა მინუსი დიდი, რომელიც იქნება, მე არ ვიცი.
მაგრამ ეს იქნება ზუსტად უფსკრული შორის ასოებით
და და პატარა ასოები, ასე ჩვენ ვაპირებთ, რომ მიიღოს მცირე, არა?
ჰო.
ასე რომ, ეს აპირებს ბეჭდვა ხასიათი სწორედ ეს ერთი.
კარგი?
ნებისმიერი კითხვები?
>> აქ ჩვენ გვაქვს bunch სხვადასხვა სახის რიცხვითი ცვლადი.
ჩვენ უკვე საუბრობენ int.
Float არის მხოლოდ გზა, რომელთა მიზანია, ეს არის ნამდვილად სასაცილოა, რადგან როდესაც მე პირველად შეიტყო
პროგრამის უკან დღეს Python, პირველი პროგრამის მე ოდესმე
შევეცადეთ დაწერა, მე ვნახე, რომ იქ ტიპის მოუწოდა და ტიპის მოუწოდა float.
და float იყო ყველა რეალური ციფრები.
ასეა, მაშინ მე ვკითხე, რატომ უნდა მე ოდესმე გამოიყენოს int შემდეგ?
იმიტომ, რომ თუ შემიძლია ყველა რეალური ნომრები float,
მე უბრალოდ შეწყვიტოს გამოყენებით ints, არა?
იმის გამო, რომ რეალური ნომრები ისევე როგორც უფრო ზოგადი.
>> აღმოჩნდება, რომ ეს არის არ არის საქმის კომპიუტერები
იმიტომ, რომ ისინი, ძირითადად, სხვადასხვა რამ.
ასე რიცხვები და მოძრავი, ოპერაციების, რომ თქვენ მათ
არსებითად განსხვავებული, რადგან ისე, რომ ისინი ინახება, OK?
ჩვენ ვაპირებთ, რომ გაიგო ცოტა ცოტა მეტი რომ მეორე.
>> ასე ორმაგი მხოლოდ უფრო დიდი float.
როგორც წესი, ყველაზე სისტემები, float ოთხი ბაიტი, ისევე, როგორც int.
და ორმაგი რვა ბაიტს.
ხანგრძლივი ხანგრძლივი არის რეალურად მხოლოდ სიმბოლო რომ თქვენ დაურთოს ტიპის როგორიცაა int.
თქვენ ამბობთ, რომ ხანგრძლივი ხანგრძლივი int მოსწონს ეს.
ხანგრძლივი ხანგრძლივი int x, რათა ის აღარ.
ასე რომ, საუკეთესო სისტემები, რომ მისცემს რვა ბაიტი ნაცვლად ჩვეული ოთხი.
და თქვენ შეგიძლიათ რეალურად ვარდნა in, ასე რომ შეგიძლიათ უბრალოდ, ვამბობთ, ხანგრძლივი ხანგრძლივი,
და რომ მუშაობს ძალიან, OK?
ასევე შეგიძლიათ გააკეთოთ სხვა რამ, როგორიცაა ხელმოუწერელი int, ან ისევ და ისევ მხოლოდ ხელმოუწერელი
ასევე მუშაობა.
და რომ x უნდა იყოს ცვლადი როგორც ყველაფერი პოზიტიური,
ასე რომ თქვენ ნამდვილად არ აქვს უარყოფითი ციფრები ისე, რომ ჩვენ ვნახეთ აქ.
ასე შემდეგ შესანიშნავი მცურავი წერტილი და ზუსტი.
ეს არის ერთ ერთი მიზეზი, რის გამოც თქვენ გსურთ გამოიყენოთ ints ნაცვლად მოძრავი,
იმიტომ, რომ ints 100% ზუსტი, არა?
ეს არის ზუსტად, რომ ნომერი.
მცურავი ქულა, თუ ამბობენ, პასუხი უდრის 1-ზე მეტი 10--
მე არ უნდა ჰქონდეს ამ ზუსტი პროგრამა აქ, float.c.
რომ ბეჭდავს 20 ათობითი ადგილებში.
1 დაყოფილი 10, და რომ როგორც წესი, არის 0.1, არა?
მაგრამ აქ თუ ჩვენ ათწილადი და შემდეგ ჩვენ გაუშვით,
ჩვენ ვხედავთ, რომ ეს არ არის ზუსტად 0.1.
ეს 0,149 რაღაც.
>> და რატომ არის, რომ?
იმიტომ, რომ თქვენ ვერ წარმოადგენს ყველა ერთი შესაძლო რეალური რაოდენობის მეხსიერება
რადგან არსებობს uncountably ბევრი მათგანი.
ასე რომ, ჩვენ ტექნიკურად ერთადერთი საშუალება წარმოადგენენ სასრულ რაოდენობის მათ
სასრულ რაოდენობის მონაცემები.
მაგრამ ეს მართლაც ძალიან საინტერესო.
ახლა, ამ სთხოვს კითხვაზე, თუ როგორ თქვენ აკეთებთ
წავიდეთ შესახებ წარმოადგენს ამ ბიტი, არა?
ამიტომ როგორ მოძრავი ინახება?
რიცხვებით იყო ადვილი.
მაგრამ მოძრავი გსურთ მაქსიმალურად სპექტრი,
და გსურთ შეძლებს წარმოადგინოს დიდი რაოდენობით და ძალიან პატარა ნომრები მოსწონს
0.000001 ამავე დროს.
ასე რომ კიდევ ერთხელ, იგივე თამაში.
ვინმეს აქვს რაიმე იდეა, თუ როგორ შეგვეძლო წავიდეთ შესახებ წარმოადგენს float მეხსიერება?
მხოლოდ იმისათვის, რომ არაფერი.
დიახ, გთხოვთ.
>> აუდიტორია: [INAUDIBLE] როგორც თუ ის იყო ორი ints და ერთი
მიმდინარეობს [INAUDIBLE] და ერთი, ყველაფერი შემდეგ ათობითი წერტილი.
GABRIEL: OK, cool.
ასე რომ, ორი სხვადასხვა რიცხვებით.
თქვენ შეგიძლიათ 12.45, ასე რომ 12 და 45.
ლამაზი.
რა ere თქვენ თქმას?
იგივე?
ჰო?
>> აუდიტორია: [INAUDIBLE] notation სადაც თქვენ გამოყოფთ ბაზა.
>> GABRIEL სამეცნიერო ნოტაცია, yeah, როგორც წესი, რა მოხდება.
ასე რომ, ეს, რა ჰქვია mantissa.
აი, რა არის რეალურად ნომერი, და მაშინ მაჩვენებლებით
არის მხოლოდ, სადაც მძიმით არის, უფლება?
ასე რომ, ეს იქნება რაღაც ფორმა 1, 2, 3, 4, 5 ჯერ 10
მინუს 4.
მე უბრალოდ მიხვდა that-- ჰო, ზუსტად.
და შემდეგ ეს 10 მინუს 4 აპირებს განსაზღვროს სადაც მძიმით არის, OK?
ბრაზილიაში ჩვენ ვიყენებთ მძიმით.
აქ თქვენ ბიჭები გამოიყენოთ dot.
ასე რომ, dot.
>> და ეს არის მაგარი, რადგან მაშინ ფოკუსირება უამრავი თქვენი ბიტი ამ ბიჭს
აქ, mantissa, და შემდეგ რომ იქნება თქვენი ფაქტობრივი სიზუსტით.
და თქვენ შეგიძლიათ ამის გაკეთება არც ათობითი ან ორობითი სისტემით.
არსებობს სხვადასხვა როგორ უნდა განხორციელდეს ეს.
კითხვები?
დიახ?
აუდიტორია: რამდენი ადგილებში შემდეგ ათობითი [INAUDIBLE]?
>> GABRIEL: ეს რთული შეკითხვა, იმიტომ, რომ ეს არასოდეს არ არის ნამდვილად 100% ზუსტი,
იმიტომ, რომ, როგორც ხედავთ აქ, ზოგიერთი ნომრები ეს არის 100% ზუსტი.
მე მჯერა, რომ, თუ ჩვენ 0.5 აქ ეს იქნება 100% ზუსტი.
ეს იქნება 0,500000.
ასე რომ, ამ შემთხვევაში, ეს არის სრულყოფილი.
მაგრამ სხვა შემთხვევებში, ეს გაცილებით ნაკლებია სრულყოფილი.
ჩემი გამოცდილება, როგორიცაა ოთხ, ხუთი ათობითი ადგილებში საკმაოდ ზუსტი.
თუ თქვენ იყენებთ ორმაგი, ის აპირებს გზა უფრო ზუსტი, ვიდრე, რომ, OK?
>> რობ Bowden: ასე რომ, უბრალოდ იმისათვის, კიდევ რამდენიმე კონტექსტში at მოძრავი,
არ მახსოვს, 100%, თუ როგორ სპეც მოძრავი რეალურად მუშაობს,
მაგრამ მე ყოველთვის გვახსოვდეს რომ მოძრავი დაიწყოს მიღების რთული.
ასე რომ, იდეა არის, რომ როდესაც თქვენ ნამდვილად, მართლაც დიდი ნომრები ან ნამდვილად, ნამდვილად
მცირე რაოდენობით, ჩვენ ვიწყებთ უფრო და უფრო უარესდება
at გამიჯვნის ორ ახლოს მოძრავი.
>> ასე რომ, როგორ მე მიყვარს ფიქრი მცურავი პუნქტიანი ორაზროვნება,
არსებობს ორი მოძრავი, რომელიც თუ ვცდილობ დავაკონკრეტებ
C, მიუხედავად იმისა, რომ ისინი სხვადასხვა ნომრები,
ისინი იქნება გაგებული, როგორც იმავე რაოდენობის,
იმიტომ, რომ ჩვენ ვერ შეინახავს მათ განსხვავებულად.
ჩვენ უნდა გამოვიყენოთ იგივე ბიტი.
და ასე, როდესაც ჩვენ ვიღებთ მართლაც, მართლაც დიდი რაოდენობით,
საუბარს, როგორიცაა, 10 300 ან რაღაც, ეს იმ ეტაპზე
რომ 10-დან 300-მდე 5 ჯერ 10 300
არ შეიძლება დიფერენცირებული 7-ჯერ 10 300.
ასე რომ საკმაოდ დიდი სხვაობა ორ ნომრები.
>> მაგრამ მაშინ, როდესაც თქვენ ქვემოთ ნორმალური სპექტრი რამ,
თქვენ, როგორც წესი, საკმაოდ კარგი გამიჯვნის.
და მაშინ, როდესაც თქვენ ქვემოთ მართლაც მცირე, თქვენ ასევე ვიღებთ საკმაოდ ცუდი ერთხელ.
ასე რომ, როგორც მთელი bunch 0.0000, იგი იღებს საკმაოდ ცუდი.
GABRIEL: ჰო, სწრაფი ნოტა.
არასოდეს გააკეთებს.
არასოდეს ცდილობენ შედარება მოძრავი გამოყენებით უდრის უდრის,
იმიტომ, რომ მაშინაც კი, თუ ისინი თითქმის იგივე, თითქმის იგივე არ არის იგივე.
ასე რომ თქვენ, როგორც წესი, არის სხვაობა მათ, მიიღონ აბსოლუტური ღირებულება, რომელიც,
და თუ რომ ნაკლებია 0.0001 ან რამე მაგდაგვარს, OK?
და ზემოთ.
მე ვიცი, რომ ბევრი ადამიანი გავლილი Java,
განსაკუთრებით ვინც გააკეთა AP კომპიუტერულ მეცნიერებათა, არა?
და ჯავის ენაზე რომ ძირითადად ეფუძნება C,
მას აქვს რამდენიმე ძალიან დიდი განსხვავებები.
მაგრამ ამისთვის მარყუჟების, და IFS, და პერსონალის მოსწონს რომ, ისინი ყველა იგივე სინტაქსი.
მე მაქვს რამდენიმე პროგრამები აქ, რათა ეს.
>> ასე მაგალითად, მარტივი Hello world.
ეს არის hello world in C, რომელიც თქვენ ბიჭები ნამდვილად იცნობს,
და ეს და ეს ერთი არის ჯავაში.
ასე რომ, Java, ჩვენ გვაქვს ეს საჯარო კლასის, Hello World,
და საჯარო სტატიკური ბათილად მთავარი, და სიმებიანი args.
სიმებიანი args ვაპირებთ როგორც ჩანს, C მალევე.
მაგრამ მოდით არ იქ არ არის.
ახლა ჩვენ გვაქვს ბათილად, რაც იმას ნიშნავს რომ ძირითადი მიუღია რაიმე არგუმენტები.
და მაშინ ჩვენ გვაქვს System.out.println, და რომ ის,
სახის ექვივალენტი printf.
აქ ჩვენ არ გვჭირდება წარმატებული n რადგან ბეჭდვითი ln აკეთებს, რომ თქვენთვის.
ეს რეზოლუციას წარმატებული n დასასრულს ხაზი.
>> მაგრამ თუ წასვლას რაღაც, თქვენ
ვხედავ, რომ ისინი საკმაოდ ბევრი იგივე.
ასე ინიციალიზაციისას, და მდგომარეობა და განახლება
is-- მე გაშვებული სივრცეში აქ ისინი საკმაოდ ბევრი იგივე, გარდა Java
აქვს რამდენიმე სხვა მაღალი დონის პერსონალი.
აქ ჩვენ შეგვიძლია გავაკეთოთ პლუს მე და Java ავტომატურად
იმისათვის, რომ ეს მე აქ, რიცხვი, ტექსტი,
შემდეგ დამატება ორ strings ერთად.
აქ C ჩვენ უნდა გავაკეთოთ და% d.
ხაზი აქ, for გამოიყურება ზუსტად ისევე.
>> და თუ დავაკვირდებით, თუ, ifs ასევე ზუსტად იგივე, უფლება?
ასე რომ, რეალური დიდი განსხვავებები იმ რამ, რომ ხედავთ აქ.
საჯარო სტატიკური ბათილად, და მაშინ საჯარო კლასი, თუ.
ასე რომ ჯავა აქვს, რა არის ე.წ. ვირტუალური მანქანა.
და ეს ძალიან მძიმედ საფუძველზე, რაც ეწოდება ობიექტზე ორიენტირებული პროგრამირების,
რომელიც არის ძალიან, ძალიან გავრცელებული პარადიგმა პროგრამირების დღეს.
და ამ კლასში რამ არის, რასაც თქვენ ხედავთ, რაღაც ობიექტი ორიენტაცია,
თქვენ შექმნათ კლასი და მაშინ გამომდინარეობს ობიექტების, რომ კლასი.
ჩვენ არ ვაპირებთ, რომ გაიგო ძალიან ბევრი რომ CS50,
მაგრამ ეს ნამდვილად რაღაც ნამდვილად cool,
განსაკუთრებით თუ გსურთ წასვლას უფრო დახვეწილი ვებ განვითარების
ბოლოს რა თქმა უნდა, როგორიცაა წარმოადგინოს თქვენი საბოლოო პროექტი
და ზოგიერთი ლამაზი ჩარჩოები და პერსონალი.
>> ასე რომ, ძირითადად, იდეა არის, რომ თქვენ არ მინდა ხელახლა განახორციელოს რაღაც,
ასე რომ თქვენ ის, რაც არის ძალიან ზოგადი, როგორც ფორმის,
და მაშინ შექმნა სხვადასხვა ფორმებს ის,
და მაშინ თითოეული ამ ფორმებს, თქვენ შექმნა
უფრო კონკრეტულ ფორმებს სამ ზომები ან რამე მაგდაგვარს.
და მათ აქვთ ამ იერარქიაში ისინი მემკვიდრეობის სხვა პირობა,
ყველა ფუნქციები და ყველა ცვლადები, დიდი ფორმის აქ, ყველა ამ
ვაპირებთ, რომ, და ეს ყველაფერი აპირებთ უნდა, და ასე შემდეგ და ასე შემდეგ.
ისე, რომ ძირითადი იდეა.
>> C არ აქვს, მაგრამ ის, C ++ აქვს, რომ სახის ფუნქცია.
და ჯავის მძიმედ იმოქმედა ობიექტის ორიენტაცია,
ამიტომაც ხედავთ კლასი აქ ყველა დროის.
და სხვა რამ არის ამ Java ვირტუალური მანქანა.
ასე რომ, ეს, ჩემი აზრით, არის ძალიან ჭკვიანი იდეა.
ასე რომ, რა დაკარგულია გამოიგონა java საერთოდ არ არის
მათ არ სურთ, რომ შეადგინონ მათი კოდი ორჯერ
თუ მათ აწარმოებს Windows, ან Mac ან Linux, რასაც ისინი აკეთებენ
არის მათ სიტყვასიტყვით აწარმოებს რაღაც ელექტრო მოწყობილობების,
მაგრამ თქვენ ვერ ვხედავ ხდება.
ასე რომ, ისინი აწარმოებს ვირტუალური მანქანა შიგნით თქვენი კომპიუტერი, რომელიც
ძირითადად მომწონს მინი ოპერაციული სისტემა.
და რომ ოპერაციული სისტემის მიზანი ცხოვრებაში
უბრალოდ, აწარმოებს რა ჰქვია byte კოდი.
>> ასე რომ, ნაცვლად C, გზა ჩვენ გვინდა შეადგინოს ეს გააკეთოს, თუ, შემდეგ აწარმოებს
./if.
დამავიწყდა წარმატებული in.
ჯავაში, თქვენ ამის გაკეთება პირველი Java C კომპილირება, if.c.
ეს არ არის C. ეს dot java.
და შემდეგ თქვენ უნდა აწარმოებს არ ./.
თქვენ ამ ახალი ფაილი if.class, მაგრამ თქვენ ვერ
აწარმოებს if.class ახლა მხოლოდ როგორც ეს ადრე იყო.
ეს არ არის შესრულებადი.
თქვენ უნდა აწარმოებს.
თქვენ უნდა მიეტანა იგი პროგრამას სახელწოდებით Java,
და რომ პროგრამა არის ვირტუალური მანქანა, და მერე შენ if.class, ან, თუ.
დიახ.
და შემდეგ მუშაობს.
OK, ასე რომ ეს არის ერთგვარი ვირტუალური მანქანა ხდება.
C არ აქვს, რომ, ასე თუ იყო დააყენა ეს პროგრამა Windows მანქანა,
ეს არ იმუშავებს in C. In Java ეს ასეა.
კითხვები?
ზემოთ.
ეს არის ის, თუ სუპერ მონაკვეთზე დღეს.