1 00:00:00,000 --> 00:00:02,420 >> [მუსიკის დაკვრა] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 დინამიკები ყველა უფლება. 4 00:00:05,980 --> 00:00:08,540 ასე რომ, მოდით ვისაუბროთ სხვა რამ, რომ სახის უნიკალური C, 5 00:00:08,540 --> 00:00:10,010 რომელიც მონაცემთა ტიპები და ცვლადი. 6 00:00:10,010 --> 00:00:12,340 როდესაც მე ვამბობ, უნიკალური C, მე ნამდვილად მხოლოდ იმას კონტექსტში, 7 00:00:12,340 --> 00:00:14,470 თუ თქვენ უკვე პროგრამისტი მართლაც დიდი ხნის განმავლობაში, 8 00:00:14,470 --> 00:00:16,270 თქვენ ალბათ არ მუშაობდა მონაცემთა ტიპები 9 00:00:16,270 --> 00:00:18,470 თუ თქვენ გამოყენებული თანამედროვე პროგრამირების ენები. 10 00:00:18,470 --> 00:00:20,432 თანამედროვე ენებზე, როგორიცაა PHP და JavaScript, 11 00:00:20,432 --> 00:00:22,640 რომელიც ჩვენ ასევე ვხედავთ პატარა მოგვიანებით, რა თქმა უნდა, 12 00:00:22,640 --> 00:00:25,550 თქვენ არ რეალურად უნდა მიუთითოთ მონაცემები ტიპის ცვლადი 13 00:00:25,550 --> 00:00:26,270 როდესაც თქვენ გამოიყენოს იგი. 14 00:00:26,270 --> 00:00:28,067 >> თქვენ უბრალოდ განაცხადოს და დაიწყოთ გამოყენება. 15 00:00:28,067 --> 00:00:29,900 თუ ეს რიცხვი, ვიცი, რომ ეს რიცხვი. 16 00:00:29,900 --> 00:00:31,960 თუ ეს ხასიათი, იცის, რომ ეს პერსონაჟი. 17 00:00:31,960 --> 00:00:35,320 თუ ეს სიტყვა, იგი დარწმუნებულია, ეს სტრიქონი, ე.წ.. 18 00:00:35,320 --> 00:00:37,300 >> მაგრამ C, რომელიც არის ძველი ენა, ჩვენ გვჭირდება 19 00:00:37,300 --> 00:00:39,420 მიუთითოთ მონაცემები ტიპის ყველა ცვლადის 20 00:00:39,420 --> 00:00:42,990 რომ ჩვენ შევქმნათ პირველად რომ ჩვენ ვიყენებთ, რომ ცვლადი. 21 00:00:42,990 --> 00:00:45,030 ასე რომ, C გააჩნია გარკვეული ჩაშენებული მონაცემთა ტიპები. 22 00:00:45,030 --> 00:00:46,972 და მოდით, გაეცნონ ზოგიერთ იმ. 23 00:00:46,972 --> 00:00:50,180 და მაშინ ამის შემდეგ ჩვენ ასევე გაიგო ცოტა ზოგიერთი მონაცემთა ტიპები 24 00:00:50,180 --> 00:00:54,450 რომ ჩვენ წერილობით თქვენ, ასე რომ თქვენ შეგიძლიათ გამოიყენოთ ისინი CS50. 25 00:00:54,450 --> 00:00:56,130 >> პირველი არის int. 26 00:00:56,130 --> 00:00:59,110 Int, მონაცემები ტიპის გამოიყენება ცვლადები რომელიც შესანახად რიცხვი ღირებულებებს. 27 00:00:59,110 --> 00:01:03,210 ასე რომ, 1, 2, 3, უარყოფითი 1, 2, 3, და ასე შემდეგ. 28 00:01:03,210 --> 00:01:05,960 რიცხვებით, რასაც თქვენ უნდა გვახსოვდეს, ვიქტორინა, 29 00:01:05,960 --> 00:01:09,590 ყოველთვის ოთხი ბაიტი მეხსიერება, რომელიც არის 32 ბიტი. 30 00:01:09,590 --> 00:01:11,620 არსებობს რვა ბიტი ბაიტი. 31 00:01:11,620 --> 00:01:14,470 >> ასე რომ, ეს იმას ნიშნავს, რომ მთელი რიგი აფასებს, რომ მთელი რიცხვი შეგიძლიათ ჩაწეროთ 32 00:01:14,470 --> 00:01:19,130 შეზღუდული რა შეიძლება ჯდება 32 ბიტი ღირებულების ინფორმაცია. 33 00:01:19,130 --> 00:01:21,850 ახლა, როგორც ირკვევა, ეს იყო დიდი ხნის წინ გადაწყვიტა 34 00:01:21,850 --> 00:01:24,310 რომ ჩვენ გაიყრებოდნენ რომ სპექტრი 32 ბიტი 35 00:01:24,310 --> 00:01:26,650 უარყოფითი რიცხვებით და დადებითი რიცხვებით, 36 00:01:26,650 --> 00:01:28,390 თითოეულ მიღების ნახევარი სპექტრი. 37 00:01:28,390 --> 00:01:32,230 ასე რომ, სპექტრი ღირებულებებს, რომ ჩვენ წარმოვადგენთ ერთად მთელი რიცხვი მერყეობს უარყოფითი 2 38 00:01:32,230 --> 00:01:36,520 31-ე ძალა 2 31-ე ძალა მინუს 1, 39 00:01:36,520 --> 00:01:38,190 გამოიწვიოს თქვენ ასევე უნდა ადგილზე 0. 40 00:01:38,190 --> 00:01:41,650 >> ასე რომ, ძირითადად ნახევარი შესაძლო მნიშვნელობებია თქვენ შეგიძლიათ შეესაბამება ამ int არის უარყოფითი, 41 00:01:41,650 --> 00:01:42,610 და ნახევარი პოზიტიური. 42 00:01:42,610 --> 00:01:47,270 და უხეშად აქ, ეს არის უარყოფითი 2 მილიარდი დადებითი 2 მლრდ. 43 00:01:47,270 --> 00:01:50,207 მისცეს ან რამდენიმე ასეული მილიონი. 44 00:01:50,207 --> 00:01:52,290 ასე რომ, რაც თქვენ ეტევა რიცხვი ცვლადი. 45 00:01:52,290 --> 00:01:55,490 ახლა ჩვენ ასევე აქვს რაღაც მოუწოდა ხელმოუწერელი რიცხვი. 46 00:01:55,490 --> 00:01:59,220 ახლა ხელმოუწერელი ints არ არის ცალკე ტიპის ცვლადი. 47 00:01:59,220 --> 00:02:01,590 პირიქით, ხელმოუწერელი არის რასაც შესარჩევი. 48 00:02:01,590 --> 00:02:04,990 ის ცვლის მონაცემები გაცნობის რიცხვი ოდნავ. 49 00:02:04,990 --> 00:02:07,850 >> და ამ შემთხვევაში, რა ხელმოუწერელი ნიშნავს და ასევე შეგიძლიათ 50 00:02:07,850 --> 00:02:11,530 გამოყენება ხელმოუწერელი სხვა მონაცემთა ტიპები, რიცხვი არ არის მხოლოდ ერთი. 51 00:02:11,530 --> 00:02:15,310 ის, რაც ეფექტურად აკეთებს არის ორადგილიანი დადებითი სპექტრი ღირებულებებს 52 00:02:15,310 --> 00:02:19,350 რომ მთელი რიცხვი შეუძლია ზე ხარჯზე აღარ საშუალებას აძლევს 53 00:02:19,350 --> 00:02:21,140 თქვენ უნდა მიიღოს უარყოფითი. 54 00:02:21,140 --> 00:02:25,400 ასე რომ, თუ თქვენ გაქვთ ციფრები, რომ თქვენ იცით, მიიღებს უფრო მაღალია, ვიდრე 2 მილიარდი, მაგრამ ნაკლებად 55 00:02:25,400 --> 00:02:31,280 ვიდრე 4 მილიარდი, მაგალითად რომელიც არის 2 32 power-- 56 00:02:31,280 --> 00:02:33,330 დაგვჭირდება გამოიყენოს ხელმოუწერელი int თუ 57 00:02:33,330 --> 00:02:35,050 იცით, თქვენი ღირებულება არასოდეს არ იქნება უარყოფითი. 58 00:02:35,050 --> 00:02:37,216 >> თქვენ ზოგჯერ აქვს გამოიყენება ხელმოუწერელი ცვლადები 59 00:02:37,216 --> 00:02:39,460 CS50, რის გამოც მე აღვნიშნო, რომ აქ. 60 00:02:39,460 --> 00:02:43,830 მაგრამ ერთხელ, სპექტრი ღირებულებებს, რომ თქვენ შეგიძლიათ წარმოადგენენ ხელმოუწერელი რიცხვი 61 00:02:43,830 --> 00:02:48,240 როგორც t რეგულარული რიცხვი, რომლებიც 0 2 დან 32 ძალა მინუს 1, 62 00:02:48,240 --> 00:02:50,840 ან დაახლოებით 0 4 მილიარდი. 63 00:02:50,840 --> 00:02:53,730 ასე რომ, თქვენ ეფექტურად გაორმაგდა დადებითი დიაპაზონი, რომ თქვენ შეუძლია მოერგოს, 64 00:02:53,730 --> 00:02:56,270 მაგრამ თქვენ მისცა ყველა უარყოფითი ღირებულებებს. 65 00:02:56,270 --> 00:03:00,040 >> ახლა, როგორც განზე, ხელმოუწერელი არ არის მხოლოდ შესარჩევ 66 00:03:00,040 --> 00:03:01,790 რომ ჩვენ შეიძლება ნახოთ ცვლადი მონაცემთა ტიპები. 67 00:03:01,790 --> 00:03:05,779 ასევე არსებობს რამ მოუწოდა მოკლე და გრძელი და const. 68 00:03:05,779 --> 00:03:07,820 მშენებარე ჩვენ დავინახავთ პატარა ცოტა ხნის შემდეგ, რა თქმა უნდა. 69 00:03:07,820 --> 00:03:10,830 მოკლე და გრძელვადიანი, ჩვენ ალბათ არ. 70 00:03:10,830 --> 00:03:12,830 >> მაგრამ ვიცი, რომ იქ სხვა შესარჩევ. 71 00:03:12,830 --> 00:03:14,080 ხელმოუწერელი არ არის მხოლოდ ერთი. 72 00:03:14,080 --> 00:03:16,596 მაგრამ ეს მხოლოდ ერთი ჩვენ ვაპირებ ვისაუბრო ახლავე. 73 00:03:16,596 --> 00:03:17,310 ასე რომ, ყველა უფლება. 74 00:03:17,310 --> 00:03:18,393 ასე რომ, ჩვენ დაფარული რიცხვებით. 75 00:03:18,393 --> 00:03:19,200 რა არის შემდეგი? 76 00:03:19,200 --> 00:03:20,130 >> სიმბოლო. 77 00:03:20,130 --> 00:03:23,620 ასე რომ, სიმბოლო გამოიყენება ცვლადები რომელიც შესანახად ერთი სიმბოლო. 78 00:03:23,620 --> 00:03:24,850 Char მოკლე ხასიათი. 79 00:03:24,850 --> 00:03:27,870 და ზოგჯერ შეიძლება მოვისმინოთ ადამიანი შეხედულებებსა, როგორც მანქანა. 80 00:03:27,870 --> 00:03:32,020 >> ასე რომ, გმირები ყოველთვის დასჭირდეს ერთი ბაიტი მეხსიერების, რომელიც მხოლოდ 8 ბიტი. 81 00:03:32,020 --> 00:03:35,700 ასე რომ, ეს იმას ნიშნავს, რომ მათ შეუძლიათ მხოლოდ ჯდება ღირებულებების სპექტრი უარყოფითი 2 82 00:03:35,700 --> 00:03:42,430 მეშვიდე ძალა, ან უარყოფითი 128, 2 მე -7 ძალა მინუს 1, ან 127. 83 00:03:42,430 --> 00:03:45,710 >> მადლობა ASCII, ეს იყო დიდი ხნის წინ გადაწყვიტა გზა 84 00:03:45,710 --> 00:03:50,805 რუკაზე იმ დადებითი ციფრები 0 127 სხვადასხვა გმირები 85 00:03:50,805 --> 00:03:52,182 რომ ყველა არსებობს ჩვენს კლავიატურაზე. 86 00:03:52,182 --> 00:03:54,640 ასე რომ, როგორც ვნახავთ, მოგვიანებით რა თქმა უნდა, და თქვენ ალბათ 87 00:03:54,640 --> 00:03:57,700 მოდის გვემახსოვრება რაღაც წერტილი, კაპიტალური, მაგალითად 88 00:03:57,700 --> 00:04:00,732 ხასიათი დედაქალაქში A-- რუკები ნომერი 65. 89 00:04:00,732 --> 00:04:02,940 და მიზეზი ის არის, იმიტომ, რომ ის, რაც არის, რომ ეს 90 00:04:02,940 --> 00:04:05,490 მიერ დანიშნული ASCII სტანდარტი. 91 00:04:05,490 --> 00:04:07,850 >> ამას 97. 92 00:04:07,850 --> 00:04:11,900 ხასიათი 0, როდესაც თქვენ რეალურად აკრიფოთ ხასიათი, არ 93 00:04:11,900 --> 00:04:13,532 წარმოადგენს რაოდენობის ნულოვანი, 48. 94 00:04:13,532 --> 00:04:15,240 თქვენ ვისწავლოთ რამდენიმე ამ როგორც თქვენ გადასვლა. 95 00:04:15,240 --> 00:04:17,990 და თქვენ რა თქმა უნდა მოდის უნდა მათ ცოტა მოგვიანებით CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> შემდეგი ძირითადი მონაცემები ტიპის მცურავი პუნქტიანი ნომრები. 98 00:04:23,390 --> 00:04:26,100 ასე რომ, მცურავი პუნქტიანი ნომრები არიან ასევე ცნობილია, როგორც რეალური ციფრები. 99 00:04:26,100 --> 00:04:28,850 ისინი ძირითადად ციფრები, რომ აქვს ათობითი წერტილი მათ. 100 00:04:28,850 --> 00:04:33,360 მცურავი პუნქტიანი ღირებულებებს ისევე როგორც რიცხვებით ასევე 101 00:04:33,360 --> 00:04:36,090 შეიცავს 4 ბაიტი მეხსიერება. 102 00:04:36,090 --> 00:04:37,580 ახლა, რომ არ არსებობს გრაფიკი აქ. 103 00:04:37,580 --> 00:04:40,890 იქ არ არის ნომერი ხაზი, რადგან აღწერს სპექტრი float 104 00:04:40,890 --> 00:04:44,550 არ არის ზუსტად ნათელი და ინტუიციური. 105 00:04:44,550 --> 00:04:47,350 >> საკმარისია ითქვას, რომ თქვენ 32 ბიტი მუშაობა. 106 00:04:47,350 --> 00:04:49,730 და თუ თქვენ გაქვთ რამდენიმე ისევე როგორც pi, რომელსაც აქვს 107 00:04:49,730 --> 00:04:55,510 რიცხვი ნაწილი 3 და მცურავი წერტილი ნაწილი, ან ათობითი ნაწილი 0,14159, 108 00:04:55,510 --> 00:04:58,735 და ასე შემდეგ, თქვენ უნდა იყოს შეუძლია წარმოადგინოს ყველა it-- 109 00:04:58,735 --> 00:05:02,420 მთელი ნაწილი და ათობითი ნაწილი. 110 00:05:02,420 --> 00:05:04,550 >> ასე რომ, რას ფიქრობთ, რომ შეიძლება ნიშნავდეს? 111 00:05:04,550 --> 00:05:08,180 ერთი ისაა, რომ თუ ათობითი ნაწილი იღებს აღარ და აღარ, 112 00:05:08,180 --> 00:05:10,660 თუ მე მაქვს ძალიან დიდი მთელი ნაწილი, მე შეიძლება არ 113 00:05:10,660 --> 00:05:13,090 შეძლებს, როგორც ზუსტი, ერთად ათობითი ნაწილი. 114 00:05:13,090 --> 00:05:15,280 და რომ მართლაც შეზღუდვა float. 115 00:05:15,280 --> 00:05:17,229 >> მოძრავი აქვს ზუსტი პრობლემა. 116 00:05:17,229 --> 00:05:19,270 ჩვენ მხოლოდ 32 ბიტი მუშაობა, ასე რომ ჩვენ შეგვიძლია მხოლოდ 117 00:05:19,270 --> 00:05:22,510 იყოს იმდენად ზუსტი ჩვენი ათობითი ნაწილი. 118 00:05:22,510 --> 00:05:27,300 ჩვენ არ შეგვიძლია აუცილებლად აქვს ათობითი ნაწილი არის 100 ან 200 ციფრები, 119 00:05:27,300 --> 00:05:29,710 იმიტომ, რომ ჩვენ მხოლოდ უნდა 32 ბიტი მუშაობა. 120 00:05:29,710 --> 00:05:31,590 ასე, რომ ეს შეზღუდვა float. 121 00:05:31,590 --> 00:05:33,590 >> ახლა, საბედნიეროდ, არსებობს სხვა მონაცემები ტიპის მოუწოდა 122 00:05:33,590 --> 00:05:36,530 ორმაგი, რომელიც გარკვეულწილად ეხება ეს პრობლემა. 123 00:05:36,530 --> 00:05:39,980 ორადგილიანი, როგორც მოძრავი, ასევე გამოიყენება შესანახად რეალური ნომრები, ან მცურავი წერტილი 124 00:05:39,980 --> 00:05:40,840 ღირებულებებს. 125 00:05:40,840 --> 00:05:44,340 განსხვავება ისაა, რომ ორადგილიანი ორმაგი სიზუსტით. 126 00:05:44,340 --> 00:05:48,177 ისინი ვერ ჯდება 64 ბიტი მონაცემები, ან რვა ბაიტს. 127 00:05:48,177 --> 00:05:49,010 რას ნიშნავს ეს? 128 00:05:49,010 --> 00:05:51,801 ისე, ეს ნიშნავს, რომ ჩვენ შეიძლება ბევრი უფრო ზუსტი ერთად ათობითი წერტილი. 129 00:05:51,801 --> 00:05:54,830 ნაცვლად იმისა, რომ pi შვიდ ადგილებში, შესაძლოა, ერთად float, 130 00:05:54,830 --> 00:05:56,710 ჩვენ შეგვიძლია შესაძლოა, მას 30 ადგილები. 131 00:05:56,710 --> 00:05:59,824 თუ ეს მნიშვნელოვანია, დაგვჭირდება გამოიყენოთ ორმაგი ნაცვლად float. 132 00:05:59,824 --> 00:06:01,740 ძირითადად, თუ თქვენ მუშაობა არაფერს, სადაც 133 00:06:01,740 --> 00:06:06,540 რომელსაც მართლაც დიდი ათობითი ადგილი და ბევრი სიზუსტით არის მნიშვნელოვანი, 134 00:06:06,540 --> 00:06:08,630 თქვენ ალბათ მინდა გამოიყენოთ ორმაგი overfloat. 135 00:06:08,630 --> 00:06:11,250 ახლა ყველაზე თქვენი მუშაობა CS50, float უნდა საკმარისი. 136 00:06:11,250 --> 00:06:15,340 მაგრამ ვიცი, რომ წყვილთა არსებობს, როგორც გზა გარკვეულწილად გამკლავება სიზუსტით 137 00:06:15,340 --> 00:06:20,980 პრობლემა გაწვდით დამატებით 32 ბიტი მუშაობა თქვენი ნომრები. 138 00:06:20,980 --> 00:06:23,650 >> ახლა ეს არ არის მონაცემები ტიპის. 139 00:06:23,650 --> 00:06:24,390 ეს არის ტიპის. 140 00:06:24,390 --> 00:06:25,340 და ეს ე.წ. ბათილად. 141 00:06:25,340 --> 00:06:27,506 და მე ამაზე ლაპარაკი, აქ იმიტომ, რომ ჩვენ, ალბათ, 142 00:06:27,506 --> 00:06:29,520 ჩანს, რომ რამდენჯერმე უკვე CS50. 143 00:06:29,520 --> 00:06:32,020 და თქვენ შეიძლება გაინტერესებთ რა ეს ყველაფერი. 144 00:06:32,020 --> 00:06:33,390 >> ასე რომ, ბათილად არის ტიპის. 145 00:06:33,390 --> 00:06:34,097 ეს არ არსებობს. 146 00:06:34,097 --> 00:06:35,180 მაგრამ ეს არ არის მონაცემები ტიპის. 147 00:06:35,180 --> 00:06:39,350 >> ჩვენ არ შეგვიძლია შევქმნათ ცვლადი ტიპის ცნოს და მივანიჭოთ მნიშვნელობა იგი. 148 00:06:39,350 --> 00:06:42,519 მაგრამ ფუნქციები, მაგალითად, შეიძლება ჰქონდეს ბათილად დაბრუნების ტიპის. 149 00:06:42,519 --> 00:06:45,060 ძირითადად, თუ ხედავთ ფუნქცია რომ აქვს ბათილად დაბრუნების ტიპის, 150 00:06:45,060 --> 00:06:46,970 ეს იმას ნიშნავს, რომ ეს არ დაბრუნდება მნიშვნელობა. 151 00:06:46,970 --> 00:06:49,440 შეიძლება ფიქრობთ საერთო ფუნქცია, რომელიც ჩვენ გამოიყენება ჯერჯერობით 152 00:06:49,440 --> 00:06:52,780 ამ CS50, რომ არ დაბრუნდება მნიშვნელობა? 153 00:06:52,780 --> 00:06:54,700 >> Printf ერთი. 154 00:06:54,700 --> 00:06:56,820 Printf ფაქტობრივად არ დაბრუნდეს არაფერი თქვენ. 155 00:06:56,820 --> 00:06:59,850 იგი ბეჭდავს რაღაც ეკრანზე, და ეს, ძირითადად, 156 00:06:59,850 --> 00:07:01,650 გვერდითი ეფექტი, რა printf აკეთებს. 157 00:07:01,650 --> 00:07:03,620 მაგრამ ეს არ გაძლევთ მნიშვნელობა უკან. 158 00:07:03,620 --> 00:07:08,419 თქვენ არ ხელში შედეგად და მაღაზია ის რამდენიმე ცვლადი გამოიყენოს იგი მოგვიანებით. 159 00:07:08,419 --> 00:07:10,710 უბრალოდ ბეჭდავს რაღაც ეკრანზე და თქვენ კეთდება. 160 00:07:10,710 --> 00:07:14,360 >> ასე რომ, ჩვენ ვამბობთ, რომ printf არის ბათილად ფუნქცია. 161 00:07:14,360 --> 00:07:16,450 ის დააბრუნებს არაფერი. 162 00:07:16,450 --> 00:07:18,580 >> პერიმეტრზე სიაში ფუნქცია შეიძლება ასევე ბათილია. 163 00:07:18,580 --> 00:07:21,410 და თქვენ ასევე ჩანს, რომ საკმაოდ მწირი CS50 ძალიან. 164 00:07:21,410 --> 00:07:22,300 Int ძირითადი ბათილად. 165 00:07:22,300 --> 00:07:23,260 თუ არა, რომ ბეჭედი ზარი? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 ძირითადად რა იმას ნიშნავს, რომ მთავარი არ მიიღოს ნებისმიერი პარამეტრებს. 168 00:07:27,220 --> 00:07:29,520 არ არსებობს არგუმენტი, რომ მისაღებად შევიდა ძირითადი. 169 00:07:29,520 --> 00:07:32,780 ახლა მოგვიანებით ვნახავთ, რომ არ გზა გაივლის არგუმენტები მთავარი, 170 00:07:32,780 --> 00:07:36,189 მაგრამ ჯერჯერობით რაც ჩვენ ჩანს int ძირითადი ბათილად. 171 00:07:36,189 --> 00:07:37,730 მთავარი უბრალოდ არ მიიღოს ნებისმიერი არგუმენტები. 172 00:07:37,730 --> 00:07:40,236 ასე რომ, ჩვენ დააკონკრეტა, რომ განაცხადა, ბათილად. 173 00:07:40,236 --> 00:07:42,110 ჩვენ უბრალოდ, რომ ძალიან გამოკვეთილ იმის შესახებ, 174 00:07:42,110 --> 00:07:44,430 ის, რომ არ მიიღოს ნებისმიერი არგუმენტები. 175 00:07:44,430 --> 00:07:47,160 >> ასე რომ, ახლა, საკმარისია ამბობენ, რომ ბათილად ძირითადად 176 00:07:47,160 --> 00:07:50,789 უნდა მხოლოდ ემსახურება როგორც placeholder თქვენ, როგორც ფიქრი, როგორც არაფერი. 177 00:07:50,789 --> 00:07:52,080 ეს ნამდვილად არ აკეთებს არაფერს. 178 00:07:52,080 --> 00:07:53,550 არ არის დაბრუნებული მნიშვნელობა აქ. 179 00:07:53,550 --> 00:07:54,770 არ არსებობს პარამეტრების აქ. 180 00:07:54,770 --> 00:07:55,709 ეს ბათილად. 181 00:07:55,709 --> 00:07:57,250 ეს ცოტა უფრო რთული, ვიდრე. 182 00:07:57,250 --> 00:08:00,640 მაგრამ ეს არ უნდა საკმარისი უკეთესი ნაწილი, რა თქმა უნდა. 183 00:08:00,640 --> 00:08:05,010 და იმედია ახლა თქვენ გაქვთ პატარა უფრო მეტი კონცეფციის რა ბათილად არის. 184 00:08:05,010 --> 00:08:08,460 >> ასე რომ, იმ ხუთი ტიპის თქვენ ნაცნობობა, რომელიც ჩაშენებული C. 185 00:08:08,460 --> 00:08:10,670 მაგრამ CS50 ჩვენ ასევე გვაქვს ბიბლიოთეკა. 186 00:08:10,670 --> 00:08:13,550 CS50.h, რომელიც შეგიძლიათ მოიცავს. 187 00:08:13,550 --> 00:08:15,930 და რომელიც მოგაწვდით ორი დამატებითი სახის 188 00:08:15,930 --> 00:08:18,280 რომ თქვენ ალბათ შეძლებს გამოყენება თქვენს დავალებებს, 189 00:08:18,280 --> 00:08:21,210 ან უბრალოდ სამუშაო ზოგადად პროგრამირების. 190 00:08:21,210 --> 00:08:23,030 >> პირველი ეს არის bool. 191 00:08:23,030 --> 00:08:26,780 ასე რომ, ლოგიკური მონაცემები ტიპის, bool, გამოიყენება ცვლადები 192 00:08:26,780 --> 00:08:28,114 რომელიც შესანახად ლოგიკური მნიშვნელობა. 193 00:08:28,114 --> 00:08:29,863 თუ თქვენ ოდესმე მსმენია ეს ტერმინი ადრე, თქვენ 194 00:08:29,863 --> 00:08:31,960 ალბათ იცით, რომ ლოგიკური მნიშვნელობა შეუძლია მხოლოდ 195 00:08:31,960 --> 00:08:34,440 ჩატარების ორი სხვადასხვა მკაფიო ღირებულებებს. 196 00:08:34,440 --> 00:08:35,872 ჭეშმარიტი და ყალბი. 197 00:08:35,872 --> 00:08:37,580 ახლა ეს, როგორც ჩანს, საკმაოდ ძირითადი, არა? 198 00:08:37,580 --> 00:08:40,496 ეს არის ერთგვარი სიურპრიზი, რომ ეს არ არსებობს C, როგორც ეს ჩაშენებული. 199 00:08:40,496 --> 00:08:42,640 და ბევრი თანამედროვე ენებზე, რა თქმა უნდა, Booleans 200 00:08:42,640 --> 00:08:45,390 არის სტანდარტული ძირითადად მონაცემები ტიპის. 201 00:08:45,390 --> 00:08:47,192 მაგრამ C, ისინი, ფაქტობრივად, არ არის. 202 00:08:47,192 --> 00:08:48,400 მაგრამ ჩვენ შევქმენით იგი თქვენთვის. 203 00:08:48,400 --> 00:08:51,910 ასე რომ, თუ თქვენ ოდესმე უნდა შეიქმნას ცვლადი რომელთა ტიპის bool, 204 00:08:51,910 --> 00:08:55,230 უბრალოდ დარწმუნებული უნდა იყოს შეიცავდეს CS50.h დასაწყისში თქვენი პროგრამა, 205 00:08:55,230 --> 00:08:57,800 და თქვენ შეძლებთ შექმნათ ცვლადი bool ტიპის. 206 00:08:57,800 --> 00:09:02,095 >> თუ თქვენ დაგავიწყდებათ შეიცავდეს CS50.h, და იწყებ გამოყენებით ლოგიკური ტიპის ცვლადები, 207 00:09:02,095 --> 00:09:04,970 თქვენ შეიძლება ექმნებათ გარკვეული პრობლემები როდესაც თქვენ შედგენის თქვენი პროგრამა. 208 00:09:04,970 --> 00:09:06,490 ასე რომ, უბრალოდ იყოს lookout რომ. 209 00:09:06,490 --> 00:09:11,180 და იქნებ თქვენ შეგიძლიათ დაფიქსირება პრობლემების ფუნტი, მათ შორის cs50.h. 210 00:09:11,180 --> 00:09:14,590 >> სხვა ძირითადი მონაცემები ტიპის, რომ ჩვენ გთავაზობთ თქვენთვის CS50 ბიბლიოთეკა 211 00:09:14,590 --> 00:09:15,670 არის სიმებიანი. 212 00:09:15,670 --> 00:09:17,130 ასე რომ, რა არის სიმებიანი? 213 00:09:17,130 --> 00:09:18,520 Strings მართლაც მხოლოდ სიტყვები. 214 00:09:18,520 --> 00:09:20,000 ისინი კოლექციების სიმბოლო. 215 00:09:20,000 --> 00:09:20,640 ისინი სიტყვა. 216 00:09:20,640 --> 00:09:21,390 ისინი სასჯელს. 217 00:09:21,390 --> 00:09:22,480 ისინი პუნქტებში. 218 00:09:22,480 --> 00:09:25,850 ეს შეიძლება იყოს მთელი წიგნი, კი. 219 00:09:25,850 --> 00:09:29,690 >> ძალიან მოკლე და ძალიან დიდი ხნის სერია გმირები. 220 00:09:29,690 --> 00:09:34,310 თუ თქვენ უნდა გამოვიყენოთ სიმები, მაგალითად, შესანახად სიტყვა, 221 00:09:34,310 --> 00:09:37,609 უბრალოდ რა თქმა უნდა მოიცავს CS50.h დასაწყისში თქვენი პროგრამა 222 00:09:37,609 --> 00:09:38,900 ასე რომ თქვენ შეგიძლიათ გამოიყენოთ string ტიპის. 223 00:09:38,900 --> 00:09:43,910 და მაშინ თქვენ შეგიძლიათ შექმნათ ცვლადები მათი მონაცემების ტიპის სიმებიანი. 224 00:09:43,910 --> 00:09:46,160 ახლა მოგვიანებით, რა თქმა უნდა, ჩვენ ასევე ვხედავთ, რომ 225 00:09:46,160 --> 00:09:47,752 არ არის მთელი ამბავი, ან. 226 00:09:47,752 --> 00:09:49,460 ჩვენ ექმნებათ რამ მოუწოდა სტრუქტურები, 227 00:09:49,460 --> 00:09:54,249 რომელიც საშუალებას გაძლევთ ჯგუფი, რა შეიძლება იყოს რიცხვი და სიმებიანი ერთ ერთეული. 228 00:09:54,249 --> 00:09:56,290 და ჩვენ შეგვიძლია გამოვიყენოთ, რომ გარკვეული მიზნით, რომელიც შეიძლება 229 00:09:56,290 --> 00:09:57,750 მოდის მოსახერხებელი მოგვიანებით, რა თქმა უნდა. 230 00:09:57,750 --> 00:09:59,500 >> და ჩვენ ასევე შეისწავლიან შესახებ განსაზღვრული ტიპის, 231 00:09:59,500 --> 00:10:01,720 რომელიც საშუალებას გაძლევთ შექმნათ საკუთარი მონაცემთა ტიპები. 232 00:10:01,720 --> 00:10:03,060 ჩვენ არ უნდა ფიქრი შესახებ, რომ ახლა. 233 00:10:03,060 --> 00:10:04,550 მაგრამ ვიცი, რომ ეს არის ის, რაღაც ჰორიზონტზე, 234 00:10:04,550 --> 00:10:07,633 რომ იქ კიდევ ბევრი მთელი ეს ტიპი რამ, ვიდრე მე გეუბნებით მხოლოდ 235 00:10:07,633 --> 00:10:08,133 ახლა. 236 00:10:08,133 --> 00:10:10,591 ასე, რომ ახლა გავიგე ცოტა შესახებ ძირითადი მონაცემები 237 00:10:10,591 --> 00:10:14,230 სახის და CS50 მონაცემთა ტიპები, მოდით ვისაუბროთ, თუ როგორ უნდა იმუშაოს ცვლადები 238 00:10:14,230 --> 00:10:18,530 და შექმნას მათ გამოყენებით ამ მონაცემთა ტიპები ჩვენი პროგრამების. 239 00:10:18,530 --> 00:10:22,670 თუ გსურთ, რომ შევქმნათ ცვლადი, ყველა თქვენ უნდა გავაკეთოთ არის ორი რამ. 240 00:10:22,670 --> 00:10:24,147 >> პირველი, თქვენ უნდა მისცეს მას ტიპის. 241 00:10:24,147 --> 00:10:26,230 მეორე, რაც თქვენ უნდა უნდა გავაკეთოთ არის მისცეს მას სახელი. 242 00:10:26,230 --> 00:10:28,740 ერთხელ თქვენ კეთდება, და მჯდომმა მძიმით ბოლოს, რომ ხაზი, 243 00:10:28,740 --> 00:10:29,830 თქვენ შექმნა ცვლადი. 244 00:10:29,830 --> 00:10:32,370 >> ასე რომ, აქ ორი მაგალითი. 245 00:10:32,370 --> 00:10:35,744 Int ნომერი; char წერილი ;. 246 00:10:35,744 --> 00:10:36,660 რა დაგიშავე აქ? 247 00:10:36,660 --> 00:10:38,110 მე შეიქმნა ორი ცვლადი. 248 00:10:38,110 --> 00:10:40,190 >> პირველი, ცვლადი სახელი ნომერი. 249 00:10:40,190 --> 00:10:44,830 და ნომერი ჩატარება შეუძლია რიცხვი ტიპი ღირებულებები, რადგან მისი ტიპის int. 250 00:10:44,830 --> 00:10:48,040 წერილი კიდევ ერთი ცვლადი რომელიც შეიძლება გამართავს გმირები 251 00:10:48,040 --> 00:10:50,240 იმის გამო, რომ მისი მონაცემები ტიპის char. 252 00:10:50,240 --> 00:10:51,772 >> საკმაოდ მარტივია, უფლება? 253 00:10:51,772 --> 00:10:53,480 თუ თქვენ აღმოჩნდეთ ამ სიტუაციაში, როდესაც 254 00:10:53,480 --> 00:10:56,250 თქვენ უნდა შექმნათ სხვადასხვა ცვლადი იგივე ტიპის, 255 00:10:56,250 --> 00:10:58,740 თქვენ მხოლოდ უნდა მიუთითოთ ტიპის სახელი ერთხელ. 256 00:10:58,740 --> 00:11:01,600 მაშინ უბრალოდ ჩამოვთვალოთ მრავალი ცვლადი, ამ ტიპის როგორც თქვენ გჭირდებათ. 257 00:11:01,600 --> 00:11:04,230 >> ასე რომ, მე ვერ მაგალითად, აქ ამ მესამე ხაზი კოდი, 258 00:11:04,230 --> 00:11:07,420 ამბობენ int სიმაღლე ;, ახალი ხაზი. 259 00:11:07,420 --> 00:11:08,291 Int სიგანე ;. 260 00:11:08,291 --> 00:11:09,290 და რომ მუშაობა ძალიან. 261 00:11:09,290 --> 00:11:12,039 მე ჯერ კიდევ ორი ​​ცვლადის მოუწოდა სიმაღლე და სიგანე, რომელთაგან თითოეული 262 00:11:12,039 --> 00:11:12,730 არის მთელი რიცხვი. 263 00:11:12,730 --> 00:11:16,970 მაგრამ მე დაშვებული, რამ C სინტაქსი, კონსოლიდაცია მას ერთი ხაზი. 264 00:11:16,970 --> 00:11:20,230 Int სიმაღლე, სიგანე; ეს არის იგივე. 265 00:11:20,230 --> 00:11:23,900 მე შეიქმნა ორი ცვლადები, ერთი მოუწოდა სიმაღლე ერთი მოუწოდა სიგანე, რომლებიც 266 00:11:23,900 --> 00:11:26,730 შეუძლია ჰოლდინგი მთელი ტიპის ღირებულებებს. 267 00:11:26,730 --> 00:11:30,920 >> ანალოგიურად აქ, შემიძლია სამი მცურავი პუნქტიანი ღირებულებებს ერთდროულად. 268 00:11:30,920 --> 00:11:33,350 შემიძლია იქნებ შევქმნათ ცვლადი მოუწოდა კვადრატული ფესვი 2- 269 00:11:33,350 --> 00:11:35,766 რომელიც, სავარაუდოდ, საბოლოოდ გამართავს მცურავი წერტილი 270 00:11:35,766 --> 00:11:39,222 რომ წარმომადგენლობა მოედანზე ფესვი 2- კვადრატული ფესვი 3 და pi. 271 00:11:39,222 --> 00:11:41,180 მე შეიძლება გაკეთდეს ამ სამი ცალკეული ხაზები. 272 00:11:41,180 --> 00:11:47,690 Float, კვადრატული ფესვი 2; Float კვადრატული ფესვი 3; ათწილადი pi; და, რომ მუშაობა ძალიან. 273 00:11:47,690 --> 00:11:50,590 >> თუმცა ისევ და ისევ, მე შემიძლია მხოლოდ კონსოლიდაცია ეს ერთ ხაზი კოდი. 274 00:11:50,590 --> 00:11:54,050 რაც რამ ცოტა მოკლე, არა როგორც clunky. 275 00:11:54,050 --> 00:11:57,259 >> ახლა ზოგადად, ეს არის კარგი დიზაინი მხოლოდ განაცხადოს ცვლადი, როდესაც დაგჭირდებათ. 276 00:11:57,259 --> 00:11:59,050 და ჩვენ ვსაუბრობთ პატარა ცოტა მეტი რომ 277 00:11:59,050 --> 00:12:00,945 მოგვიანებით, რა თქმა უნდა, როდესაც ჩვენ განვიხილავთ ფარგლებს. 278 00:12:00,945 --> 00:12:03,320 ასე რომ, არ არის აუცილებელი, შექმნა ყველა თქვენი ცვლადები 279 00:12:03,320 --> 00:12:05,990 დასაწყისში პროგრამა, რომელიც ზოგიერთი ადამიანი შეიძლება გაკეთდეს წარსულში, 280 00:12:05,990 --> 00:12:08,700 ან რა თქმა უნდა, ძალიან გავრცელებული კოდირების პრაქტიკა მრავალი წლის წინ 281 00:12:08,700 --> 00:12:11,700 როდესაც მუშაობა C. თქვენ შეიძლება მხოლოდ გსურთ შექმნათ ცვლადი უფლება, როდესაც 282 00:12:11,700 --> 00:12:13,140 დაგჭირდებათ. 283 00:12:13,140 --> 00:12:13,640 ყველა უფლება. 284 00:12:13,640 --> 00:12:15,150 ამიტომ, ჩვენ შევქმენით ცვლადები. 285 00:12:15,150 --> 00:12:16,790 როგორ გამოვიყენოთ ისინი? 286 00:12:16,790 --> 00:12:18,650 მას შემდეგ, რაც ჩვენ განაცხადოს ცვლადი, ჩვენ არ გვჭირდება 287 00:12:18,650 --> 00:12:21,237 მიუთითოთ მონაცემები ტიპის რომ ცვლადი უქმნით. 288 00:12:21,237 --> 00:12:24,070 სინამდვილეში, თუ თქვენ ამის გაკეთება, ალბათ დასრულდება up ერთად რაღაც უცნაური შედეგები 289 00:12:24,070 --> 00:12:25,490 ის, რომ ჩვენ სახის სიპრიალის ახლა. 290 00:12:25,490 --> 00:12:27,365 მაგრამ საკმარისია ითქვას, უცნაური რამ ხდება 291 00:12:27,365 --> 00:12:30,740 დაიწყოს ხდება თუ უნებლიედ ხელახლა განაცხადოს ცვლადები იგივე სახელი 292 00:12:30,740 --> 00:12:32,210 ისევ და ისევ. 293 00:12:32,210 --> 00:12:33,882 >> ასე რომ, აქ მაქვს ოთხი ხაზი კოდი. 294 00:12:33,882 --> 00:12:36,090 და მე მაქვს რამდენიმე კომენტარები არ მხოლოდ იმაზე მიუთითებს, 295 00:12:36,090 --> 00:12:37,840 რა ხდება თითოეული ხაზი უბრალოდ, რათა დაეხმაროს 296 00:12:37,840 --> 00:12:40,520 თქვენ მიიღებთ მდებარე რა ხდება. 297 00:12:40,520 --> 00:12:41,520 ასე int ნომერი ;. 298 00:12:41,520 --> 00:12:42,520 თქვენ ნახეთ, რომ ადრე. 299 00:12:42,520 --> 00:12:44,000 ეს არის ცვლადი დეკლარაცია. 300 00:12:44,000 --> 00:12:46,670 >> მე ახლა ის ცვლადი მოუწოდა ნომერი რომ არის 301 00:12:46,670 --> 00:12:48,970 ჩატარება შეუძლია მთელი ტიპის ღირებულებებს. 302 00:12:48,970 --> 00:12:50,210 მე გამოაცხადა. 303 00:12:50,210 --> 00:12:53,770 >> შემდეგი ხაზი მე მინიჭება მნიშვნელობა ნომერზე. 304 00:12:53,770 --> 00:12:54,992 პუნქტების ტოლია 17. 305 00:12:54,992 --> 00:12:55,950 რა ხდება იქ? 306 00:12:55,950 --> 00:12:58,880 მე გამოსული ხმების 17 შიგნით რომ ცვლადი. 307 00:12:58,880 --> 00:13:02,760 >> ასე რომ, თუ მე ოდესმე შემდეგ ამობეჭდოთ რა შინაარსი ნომერი არიან მოგვიანებით, 308 00:13:02,760 --> 00:13:04,030 ისინი გეტყვიან, რომ ჩემთვის ეს 17. 309 00:13:04,030 --> 00:13:07,030 ამიტომ მე განაცხადა ცვლადი, და მაშინ მე ენიჭება. 310 00:13:07,030 --> 00:13:10,570 >> ჩვენ შეგვიძლია გავიმეოროთ პროცესში ისევ char წერილი ;. 311 00:13:10,570 --> 00:13:11,640 რომ დეკლარაციას. 312 00:13:11,640 --> 00:13:14,010 წერილი ტოლია კაპიტალი H. ეს არის დავალება. 313 00:13:14,010 --> 00:13:16,030 საკმაოდ მარტივია, ძალიან. 314 00:13:16,030 --> 00:13:18,319 >> ახლა ეს პროცესი შეიძლება როგორც ჩანს, სახის სულელური. 315 00:13:18,319 --> 00:13:20,110 რატომ ვაკეთებთ ამას ორი ხაზი კოდი? 316 00:13:20,110 --> 00:13:21,401 არსებობს უკეთესი გზა ამის გაკეთება? 317 00:13:21,401 --> 00:13:22,250 ფაქტობრივად, არ არსებობს. 318 00:13:22,250 --> 00:13:24,375 ზოგჯერ თქვენ შეიძლება ნახოთ ამ ე.წ. ინიციალიზაციისას. 319 00:13:24,375 --> 00:13:28,446 ეს მაშინ, როდესაც თქვენ გამოაცხადოს ცვლადი და მივანიჭოთ მნიშვნელობა ამავე დროს. 320 00:13:28,446 --> 00:13:30,320 ეს არის რეალურად საკმაოდ საერთო რამ უნდა გააკეთოს. 321 00:13:30,320 --> 00:13:32,870 როდესაც თქვენ შექმნით ცვლადი, თქვენ, როგორც წესი, გვინდა, რომ ზოგიერთი ძირითადი მნიშვნელობა. 322 00:13:32,870 --> 00:13:34,330 მაშინაც კი, თუ ეს 0 ან რამე. 323 00:13:34,330 --> 00:13:36,180 თქვენ უბრალოდ მისცეს მას მნიშვნელობა. 324 00:13:36,180 --> 00:13:38,360 >> თქვენ შეგიძლიათ ინიციალიზაცია ცვლადი. 325 00:13:38,360 --> 00:13:42,320 Int ნომერი ტოლია 17 არის იგივე, რაც პირველი ორი ხაზი კოდი ზემოთ. 326 00:13:42,320 --> 00:13:46,829 Char წერილი ტოლია h არის იგივე, რაც მესამე და მეოთხე ხაზი კოდი ზემოთ. 327 00:13:46,829 --> 00:13:49,620 ყველაზე მნიშვნელოვანი takeaway აქ როდესაც ჩვენ ვაცხადებთ და მინიჭების 328 00:13:49,620 --> 00:13:51,740 ცვლადების შემდეგ ჩვენ განაცხადა, რომ, ცნობა 329 00:13:51,740 --> 00:13:53,700 მე არ გამოყენებით მონაცემების ტიპის კიდევ ერთხელ. 330 00:13:53,700 --> 00:13:57,916 მე არ ვამბობ, int ნომერი ტოლია 17 მეორე ხაზი კოდი, მაგალითად. 331 00:13:57,916 --> 00:13:59,290 მე უბრალოდ ვამბობ, ნომერი ტოლია 17. 332 00:13:59,290 --> 00:14:02,537 >> ისევ და ისევ, ხელახლა გამოცხადების ცვლადი შემდეგ თქვენ უკვე განაცხადა, რომ ეს შეიძლება გამოიწვიოს 333 00:14:02,537 --> 00:14:03,620 ზოგიერთი უცნაური შედეგად. 334 00:14:03,620 --> 00:14:05,950 ასე რომ, ფრთხილად, რომ. 335 00:14:05,950 --> 00:14:06,660 >> მე Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 და ეს არის CS50. 337 00:14:08,870 --> 00:14:10,499