>> [მუსიკის დაკვრა]
>> DOUG LLOYD: Hi, მოდით ვისაუბროთ ოპერატორების C.
ასე რომ, ჩვენ უკვე დავინახეთ ერთი, ფაქტობრივად, უდრის დავალება ოპერატორი.
ეს საშუალებას გვაძლევს, უბრალოდ დააყენა მნიშვნელობა შევიდა ცვლადი.
ეს არის დავალება ოპერატორი, ერთ თანაბარი ნიშანი.
იმისათვის, რომ მანიპულირება და სამუშაოები ფასეულობებით და ცვლადები C,
ჩვენ გვაქვს მთელი რიგი ოპერატორები ჩვენს ხელთ, რომ ჩვენ შეგვიძლია გამოვიყენოთ.
მოდით შევხედოთ ზოგიერთი საერთო პირობა
დაწყებული არითმეტიკული ოპერატორები.
როგორც თქვენ შეიძლება ველოდოთ, ჩვენ შეგვიძლია გავაკეთოთ საკმაოდ ძირითადი მათემატიკის ოპერაციების C.
ჩვენ შეგვიძლია დაამატოთ, სხვაობა, გამრავლების, და გათიშე ნომრები გამოყენებით პლუს, მინუს, ვარსკვლავი,
და სლეში, შესაბამისად.
აქ არის რამდენიმე ხაზები კოდი, რომელიც ჩვენ გაგვაჩნია.
ასე რომ, ჩვენ გვაქვს int x უდრის y + 1.
მოდით ვივარაუდოთ, რომ სადღაც ზემოთ ეს ხაზი კოდი
ჩვენ, რომელმაც განაცხადა, int y ტოლია 10.
რა არის ღირებულება x შემდეგ მე შეასრულოს ეს პირველი ხაზი კოდი?
ხომ არ ამბობენ, 11-ში?
ნეტავ უფლება.
რატომ არის, რომ?
ისე, y იყო 10.
ზოგიერთი მე ვამბობ, int x უდრის 10 + 1.
10 + 1 11.
ასე რომ, ღირებულება 11 იღებს შენახული ცვლადი x.
არ არის ძალიან ცუდი, არა?
>> როგორ შესახებ შემდეგი ხაზი კოდი? x უდრის x ჯერ 5.
ისე, სანამ ჩვენ შესრულებული ეს ხაზი კოდი, x 11.
ასე რომ, რა არის ღირებულება x ამის შემდეგ ხაზი კოდი?
მიიღეთ მეორე.
ასე რომ, x უდრის x ჯერ 5.
x 11.
ასე რომ, x უდრის 11-ჯერ 5.
ან 55.
ასე რომ, თუ თქვენ თქვით, 55, ნეტავ იყოს სწორი.
>> ახლა, ეს შეიძლება იყოს ცოტა გაუგებარია, მაგრამ ერთად ისე, რომ დავალება მუშაობს C
ღირებულება მარჯვენა იღებს ენიჭება ღირებულება მარცხენა.
ასე რომ, პირველი შევაფასოთ x ჯერ 5.
ასე რომ, 11-ჯერ 5 არის 55.
და მაშინ ჩვენ შესანახად, რომ ღირებულება x.
11, რომ იქ იყო სანამ არის ახლით.
ასე რომ, x ის ღირებულება არის 55.
იმედია, რომ საკმაოდ მარტივია.
>> არსებობს კიდევ ერთი ოპერატორი, რომელიც თქვენ ალბათ, არ არის აუცილებელი, მოისმინა
უწოდა, მაგრამ თქვენ რა თქმა უნდა, მუშაობდა წარსულში
თუ გახსოვთ თქვენი დიდი ხნის განყოფილების გზა უკან კლასის სკოლა.
ეს მოუწოდა modulus ოპერატორი.
რა modulus არ არის ეს გაძლევთ დარჩენილი
როდესაც თქვენ დაყოფის ორი ნომრები ერთად.
ასე რომ, თუ მე ვიტყვი, 13 გაყოფილი 4, რა არის დარჩენილი?
და რომ ღირებულება იქნება გათვლილი მიერ modulus ოპერატორი.
>> ასე რომ, მე ხაზი კოდი აქ, int მ ტოლია 13 mod 4.
და მე ვიტყვი, აქ კომენტარი რომ მ-ის ღირებულება არის 1.
რატომ ვამბობ, რომ?
ისე, ამის ხანგრძლივი სამმართველოს out თქვენი ხელმძღვანელი, თუ აგებს ჩემთან ერთად მეორე.
ასე რომ, მე 4 იყოფა 13.
4 გადადის 13 სამჯერ ერთად დარჩენილი 1.
ასე რომ, ძირითადად, ყველა modulus ოპერატორი აკეთებს
არის ეს ეუბნება, როდესაც თქვენ გათიშე, თქვენ დარჩენილი.
თქვენ ალბათ ფიქრობთ, რომ, ფაქტობრივად, არ არის საშინლად სასარგებლო რამ,
მაგრამ ნეტავ გაგიკვირდებათ, ფაქტობრივად, იმით, თუ როგორ ხშირად, რომ modulus
ოპერატორს შეუძლია მოდის მოსახერხებელი.
>> არსებობს რამდენიმე პრობლემა ჩვენ ყველაფერს გავაკეთებთ, CS50, რომ გაუმკლავდეთ მას.
ეს არის ასევე კარგი აკეთებს რამ, როგორიცაა შემთხვევითი ნომერი.
ასე, მაგალითად, თუ თქვენ ოდესმე მსმენია შემთხვევითი რიცხვების გენერატორის,
რომ აპირებს მოგცემთ ნომერი 0-დან ზოგიერთი დიდი რაოდენობით.
მაგრამ იქნებ მხოლოდ ნამდვილად უნდა რიცხვი 0-დან 20-მდე.
თუ თქვენ იყენებთ modulus ოპერატორი რომ გიგანტური, რომ
იღებს მიერ გამომუშავებული შემთხვევითი რიცხვების გენერატორის,
თქვენ აპირებს მიიღოს ნებისმიერი დიდი მნიშვნელობა ის არის, ვყოფთ 20,
და მიიღეთ დარჩენილი.
დარჩენილი მხოლოდ იყოს მნიშვნელობა 0-დან 19.
ასე რომ, თქვენ იყენებთ modulus ოპერატორი იმისათვის, რომ ეს დიდი რაოდენობით
და whittle მას შევიდა რაღაც ცოტა უფრო მნიშვნელოვანი.
მე დარწმუნებული ვარ, რომ თქვენ უნდა შეუძლია გამოიყენოს ორივე
რაღაც მომენტში მომავალში CS50.
>> ასე რომ, C ასევე გვაძლევს გზა მიმართოს არითმეტიკული
ოპერატორის ერთი ცვლადი ცოტა მეტი ხერხია.
ასე რომ, წინა slide, ჩვენ ვნახეთ x უდრის x ჯერ 5.
რომ მუშაობდა.
x-ჯერ 5 მაშინ იღებს შენახული უკან x.
არსებობს მოკლე გზა ამის გაკეთება, აზრის, და ეს სინტაქსი x ჯერ ტოლია 5.
ეს არის ზუსტად იგივე რამ, როგორც განაცხადა, რომ x უდრის x ჯერ 5.
ეს არის მხოლოდ ოდნავ მოკლე გზა ამის გაკეთება.
და როდესაც თქვენ ხედავთ რამდენიმე განაწილების კოდი ან თქვენ
იხილეთ ზოგიერთი ნიმუში კოდი, რომელიც აკეთებს რამ, როგორიცაა ეს
უბრალოდ იცნობს რა სინტაქსი ნიშნავს.
რა თქმა უნდა, არ უნდა გამოიყენოს იგი, მაგრამ თუ,
შესაძლოა, თქვენი კოდი შეხედეთ პატარა slicker.
და ვიცი, რომ თქვენ ასევე შეგიძლიათ გამოიყენოთ ნებისმიერი სხვადასხვა ოპერატორები ჩვენ უკვე
მინახავს ადრე ნაცვლად ჯერ.
თქვენ შეიძლება ითქვას x პლუს უდრის 5, მინუს შეადგენს 5, ჯერ, გათიშე და mod.
ყველა იმ სამუშაოს.
>> არსებობს ასევე რაღაც რომელიც ასე გავრცელებულია C
ჩვენ გადავწყვიტეთ, რომ დახვეწა, რომ კიდევ უფრო.
დამატება ცვლადი 1 ან decrementing ცვლადი 1
არის ასეთი საერთო რამ, განსაკუთრებით როდესაც ვსაუბრობთ მარყუჟების ცოტა მოგვიანებით
on--, რომ ჩვენ გადავწყვიტეთ ნაცვლად ამბობდა რაღაც x + უდრის 1,
ან x უდრის x პლუს 1, ჩვენ კი მოკლე გადასცა, რომ x plus plus.
ასე რომ, x უდრის x + 1 x პლუს უდრის 1, და x plus plus ყველა გააკეთოს იგივე.
ისინი ყველა ნამატი x 1.
მაგრამ ეს დამატება და decrementing 1
იმდენად გავრცელებული, რომ ჩვენ გვაქვს პლუს პლუს და მინუს მინუს
რომელიც საშუალებას გვაძლევს სტენოგრამის რომ კიდევ უფრო.
>> ასე რომ, მოდით გადავიდეს გადაცემის მეორე და ვისაუბროთ ლოგიკური გამონათქვამები.
ყველა, რომელიც ასევე სახის მოხვდება საერთო კატეგორიაში ოპერატორები.
მაგრამ ლოგიკური გამონათქვამები, განსხვავებით არითმეტიკული ოპერატორები,
გამოიყენება შედარებით ღირებულებებს.
ასე რომ, კიდევ ერთხელ, ყველა ლოგიკური გამონათქვამები in C შეაფასოს ერთი ორი შესაძლო მნიშვნელობებია,
გავიხსენოთ.
ჭეშმარიტი ან მცდარი.
ეს არის მხოლოდ ორი ღირებულებებს, რომელიც ლოგიკური ცვლადი შეუძლია.
ჩვენ შეგვიძლია გამოვიყენოთ შედეგები ლოგიკური გამოხატვის
ბევრი გზები პროგრამირებაში.
ფაქტობრივად, თქვენ უნდა ამით საკმაოდ ბევრი.
>> მაგალითად, ჩვენ შეიძლება გადაწყვიტოს, ასევე, თუ გარკვეული მდგომარეობა არის ჭეშმარიტი,
იქნებ მე მიიღოს ამ ფილიალი ქვემოთ ჩემი კოდი.
პირობითი, ასე ვთქვათ.
ჩვენ გაეცნობიან იმ მალე ძალიან.
ან იქნებ, რადგან ეს მართლაც ასეა, მინდა
აკეთეთ ეს მეტი და მეტი და მეტი.
Loop.
ორივე შემთხვევაში, ვიცი, რომ ჩვენ გამოყენებით ლოგიკური გამოხატულებაა, ჭეშმარიტი ან მცდარი,
უნდა გადაწყვიტოს, თუ არა მიიღოს კონკრეტული გზა.
ზოგჯერ, როდესაც ჩვენ ვმუშაობთ ერთად ლოგიკური გამონათქვამები,
ჩვენ გამოვიყენებთ ცვლადების ტიპის რედაქტირება.
თქვენ შეიძლება არ გამოცხადდა bool, აკრეფილი ცვლადი,
და თქვენ გამოიყენოთ თქვენი ლოგიკური გამოხატულებაა.
მაგრამ თქვენ ყოველთვის არ უნდა გავაკეთოთ.
როგორც ირკვევა, C, ყველა არასამთავრობო 0 მნიშვნელობა იგივეა, რაც არს ჭეშმარიტ.
თუ თქვენ გამოაცხადა ცვლადი ტიპის ლოგიკური,
და დაავალა მას ღირებულება ჭეშმარიტი, რომ ისევე, როგორც გამოცხადების მთელი
და იმის, რომ ეს ღირებულება 1, 2, 3, ან მართლაც ნებისმიერ მნიშვნელობა
განაწილებაზე სხვა ვიდრე 0.
იმის გამო, რომ C, ყოველ არასამთავრობო 0 ღირებულება არის ჭეშმარიტი.
0, მეორეს მხრივ, არის ყალბი.
ეს შეიძლება დადგეს მოსახერხებელი მოგვიანებით უნდა იცოდეს,
მაგრამ უბრალოდ რაღაც უნდა გვახსოვდეს.
ჩვენ ყოველთვის არ უნდა გამოვიყენოთ ლოგიკური ტიპის ცვლადები, როდესაც ჩვენ
ვმუშაობთ ლოგიკური გამონათქვამები.
>> არსებობს ორი ძირითადი სახის ლოგიკური გამონათქვამების, რომ ჩვენ ვიმუშავებთ.
ლოგიკური ოპერატორები და რელატიური ოპერატორები.
ენა არ არის არ არის საშინლად მნიშვნელოვანია.
ეს არის ნამდვილად, როგორ მე დაჯგუფება მათ.
და თქვენ, რა თქმა უნდა, მე ვფიქრობ, სწრაფად გააცნობიეროს, რა რელატიური ოპერატორი,
საფუძველზე, რასაც ისინი, როდესაც ჩვენ ვისაუბროთ მათ მეორე.
მაგრამ არ ინერვიულოთ შესახებ აუცილებლად იმახსოვრებდა ტერმინი ლოგიკური ოპერატორი
ან რელატიური ოპერატორი.
მე უბრალოდ გამოყენებით მას ჯგუფი მათ ლოგიკური გზა.
>> ასე რომ, მოდით შევხედოთ სამი ლოგიკური ოპერატორები
რომ ჩვენ დავინახავთ, საკმაოდ ცოტა პროგრამირების CS50
და პროგრამირების უფრო ზოგადად.
ლოგიკური და მართლაც ასეა, თუ არა და მხოლოდ თუ ორივე operands არის ჭეშმარიტი.
წინააღმდეგ შემთხვევაში, ცრუ აღმოჩნდა.
სად ნიშნავს ეს?
ასე რომ, ვთქვათ, რომ მე ვარ აღვნიშნო ჩემი კოდი, სადაც მე მაქვს
ორი ცვლადი, x და y.
და მე მინდა, უნდა გადაწყვიტოს, თუ რაღაც ჩემი კოდი
საფუძველზე, თუ x არის ნამდვილი და y არის ჭეშმარიტი.
მე მხოლოდ მინდა ამის გაკეთება, თუ ორივე მათგანი მართალია,
წინააღმდეგ შემთხვევაში, მე არ მინდა, რომ დაცემას, რომ გზაზე, რადგან ის არ აპირებს, რომ დამეხმაროს.
რა შემიძლია ვთქვა, ის არის, თუ x & & y.
ეს იქნება ლოგიკური ლოგიკური გამოხატვის შედარებით x და y
და აღების გარკვეული გზა რის საფუძველზე მათი ღირებულებები.
ასე რომ, თუ x არის ნამდვილი და Y მართალია საფუძველზე ამ სიმართლე მაგიდა აქ,
მხოლოდ ამის შემდეგ იქნება ვეშვებით, რომ გზა.
თუ x, & & y.
ეს მხოლოდ ჭეშმარიტი რუსეთის ფედერაციასა და მხოლოდ ასეა, თუ x არის ნამდვილი და y არის ჭეშმარიტი.
თუ არც ერთი არ არის ყალბი, როგორც ვხედავთ, სიმართლე მაგიდა,
მაშინ ორივე x და y არ არის ჭეშმარიტი.
ასე რომ, x და & y არის ყალბი.
>> ლოგიკური და მართლაც ასეა, თუ მხოლოდ და მხოლოდ თუ მინიმუმ ერთი operand მართალია.
წინააღმდეგ შემთხვევაში, ცრუ აღმოჩნდა.
ასე რომ, ლოგიკური და აუცილებელია ორივე x და y უნდა იყოს ნამდვილი.
ლოგიკური და მოითხოვს x უნდა იყოს ჭეშმარიტი ან y უნდა იყოს ჭეშმარიტი ან ორივე x და y უნდა იყოს ნამდვილი.
ასე რომ, კიდევ ერთხელ, ჩვენ სახის იპოვოს საკუთარ თავს სიტუაცია
სადაც ჩვენ ვაპირებთ, რომ ჩვენი კოდი, და მივაღწიეთ გზის გასაყარი.
ჩვენ გვინდა, რომ დაცემას კონკრეტული გზა თუ x არის ჭეშმარიტი
ან Y ეს მართალია, მაგრამ არა აუცილებლად თუ ორივე არის ჭეშმარიტი.
მაგრამ შესაძლოა თუ ორივე არის ჭეშმარიტი.
ასე რომ, თუ x არის ნამდვილი და y არის მართალია, ჩვენ ქვევით რომ გზა.
x არის ჭეშმარიტი.
ერთ-ერთი მათგანი არის ჭეშმარიტი, არა?
თუ x არის ნამდვილი და y არის ჭეშმარიტი.
თუ x არის ჭეშმარიტი, და y არის ყალბი, ერთ-ერთი მათგანი დღესაც.
ასე რომ, x ან y დღესაც.
თუ x არის ყალბი, და Y მართალია, ერთ-ერთი მათგანი მაინც ასეა, არა?
Y მართალია, ამ შემთხვევაში.
ასე რომ, ეს სიმართლეა, რომ x და y არის ჭეშმარიტი.
იმ შემთხვევაში, თუ x არის ყალბი და y არის ყალბი ჩვენ არ დაცემას, რომ გზა,
იმიტომ, რომ არც x არც y არის ჭეშმარიტი.
ახლა კი, თუ თქვენ ეძებთ ეკრანზე ახლავე
და მაინტერესებს, რა სიმბოლო არის ლოგიკური ან,
ეს ე.წ. ვერტიკალური ბარი.
და თუ თქვენ ეძებს თქვენს კლავიატურაზე ერთი წუთით, როგორც მე ვაკეთებ ახლა,
ეს, როგორც წესი მხოლოდ ზემოთ გასაღები, ყველაზე კლავიშები,
იმავე გასაღები როგორც წარმატებული.
ეს, როგორც წესი, სწორი შემდეგი კვადრატულ ფრჩხილებში.
ასე რომ, ეს შეიძლება იყოს ძირითადი, რომ თქვენ არ აკრეფილი ძალიან წარსულში.
მაგრამ, თუ თქვენ ოდესმე აკეთებს ლოგიკური შედარება
როგორც ჩვენ უნდა აკეთებს ბევრი, რა თქმა უნდა, ეს არის
იქნება სასარგებლო ნახავთ, რომ გასაღები და გამოიყენოთ იგი.
ასე რომ, ეს, როგორც წესი, იმავე გასაღები როგორც წარმატებული მაღლა შეიტანეთ.
>> საბოლოო ლოგიკური ოპერატორი არ არის.
და არა საკმაოდ მარტივია.
ეს ინვერსია ღირებულება მისი operand.
თუ x მართალია, მაშინ არ x არის ყალბი.
თუ x არის ყალბი, მაშინ არ x არის ჭეშმარიტი.
ზოგჯერ თქვენ მოისმენს ამ სიმბოლო წარმოითქმის როგორც bang ან ძახილის
თუ არა.
ეს არის საკმაოდ ბევრი იგივე.
იმ შემთხვევაში თუ თქვენ გესმით, რომ ლაპარაკობენ და თქვენ არ ვიცი რა, რაც იმას ნიშნავს,
ეს მხოლოდ ძახილის წერტილი, მაგრამ ზოგჯერ ეს
მოუწოდა რამდენიმე განსხვავებული რამ.
ყველა უფლება, ასე რომ იღებს მაინტერესებს ლოგიკური ოპერატორები.
ასე რომ, მოდით ვისაუბროთ რელატიური ოპერატორები.
კიდევ ერთხელ, თუ იცნობს ამ არითმეტიკული უკან კლასის სკოლის,
თქვენ ალბათ იცნობს როგორ ეს სამუშაოები უკვე.
ეს იქცევიან ზუსტად როგორც თქვენ მინდა ველით.
ასე რომ, ნაკლები მართალია, ამ მაგალითად, თუ x ნაკლებია y.
ასე რომ, თუ x 4, და y არის 6 x ნაკლებია y.
მართალია.
ნაკლებია ან ტოლი მუშაობს საკმაოდ ანალოგიურად.
თუ x 4, და y 4, მაშინ x ნაკლებია ან ტოლი y.
მეტია, ვიდრე. x მეტია y.
და მეტია ან ტოლია x მეტია ან ტოლია y.
თუ ეს ასეა, მაშინ თქვენ გაივლის, რომ გამოხატვის,
და თქვენ დაცემას რომ გზა გზაზე.
თუ თქვენ გაქვთ, თუ x მეტია y, და x, ფაქტობრივად, მეტია y,
თქვენ ნუ რაც არის ექვემდებარება, რომ მდგომარეობა.
>> გაითვალისწინეთ, რომ ჩვენ არ გვაქვს ერთჯერადი ხასიათი ნაკლები
ან ტოლია, როგორც თქვენ შეიძლება იყოს იცნობს მათემატიკის სახელმძღვანელოები.
ასე რომ, ჩვენ გვაქვს ნაკლები სიმბოლო, მოჰყვა თანაბარი ნიშანი.
ეს არის ის, თუ როგორ წარმოვადგენთ ნაკლები ან ტოლია.
და ანალოგიურად, უნდა გავაკეთოთ, რომ მეტია ან ტოლია.
>> ბოლო ორი რელატიური ოპერატორები, რომლებიც მნიშვნელოვანია
ტესტირება თანასწორობისა და უთანასწორობის.
ასე რომ, თუ x უდრის უდრის y, მართალია თუ x და y ღირებულება არის იგივე.
თუ x 10, და y არის 10, მაშინ x უდრის უდრის y არის ჭეშმარიტი.
თუ x 10 და y არის 11 x უდრის უდრის y სიმართლეს არ შეესაბამება.
ჩვენ ასევე შეგიძლიათ შეამოწმოთ უთანასწორობა გამოყენებით ძახილის წერტილი და bang თუ არა,
ერთხელ.
თუ x არ უდრის y, თუ რომ არის გამოცდა ჩვენ აქ გამოყენებით,
ჩვენ გვინდა იყოს კარგი წავიდეთ.
ასე რომ, თუ x არ უდრის y, ჩვენ ქვევით რომ გზა.
>> იყოს ნამდვილად ფრთხილად აქ.
ეს მართლაც საერთო mistake-- და ერთი რა თქმა უნდა, საკმაოდ ბევრი, როდესაც
მე მიღების started-- შემთხვევით შეცდომა
დავალება ოპერატორი, ერთჯერადი ტოლობის, თანასწორობის შედარებით ოპერატორი,
ორმაგი შეადგენს.
ეს თქვენ გამოიწვიოს რაღაც უცნაური ქცევის თქვენი კოდი,
და, როგორც წესი, შემდგენელი გააფრთხილოს თქვენ, როდესაც თქვენ ცდილობენ
და შეადგინოს თქვენი კოდი, მაგრამ ზოგჯერ თქვენ შესაძლოა შემოგეპაროთ ის მიერ.
ეს არ არის აუცილებლად კარგია რომ თქვენ შემოგეპაროთ ის მიერ, თუმცა.
უბრალოდ, ასე რომ, თუ თქვენ აკეთებთ უტოლობის ტესტი,
თუ შემოწმების თუ არა ორი სხვადასხვა ცვლადები აქვთ იგივე მნიშვნელობა
შიგნით, დარწმუნდით, რომ შეადგენს შეადგენს, და არა ერთჯერადი ტოლობის.
და ამ გზით თქვენი პროგრამა აქვს ქცევის თქვენ აპირებს.
მე Doug Lloyd და ეს არის CS50.