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 >> ובמקרה זה, שאינו חתום מה means-- וגם אתה יכול 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 מיליארדים, לexample-- אשר 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 ככדי לא שלם רגיל, הם 0 2 לכוח ה -32 מינוס 1, 62 00:02:48,240 --> 00:02:50,840 או כ 0-4000000000. 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 Const נראה קצת קצת מאוחר יותר בקורס. 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 תו הוא קיצור של אופי. 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 באנו לשנן בכמה נקודה, הון, לexample-- 88 00:03:57,700 --> 00:04:00,732 הון האופי זה-- מפות למספר 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 אין קו מספר, כי המתאר את הטווח של מצוף 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 ואם יש לך מספר כמו פאי, שבו יש 107 00:04:49,730 --> 00:04:55,510 חלק שלם 3, וצף חלק נקודה, או חלק עשרוני .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 וזה באמת הגבלה של מצוף. 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 אז זה הגבלה של מצוף. 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 לשבע מקומות אולי, עם מצוף, 130 00:05:54,830 --> 00:05:56,710 אנחנו יכולים אולי יש לו 30 מקומות. 131 00:05:56,710 --> 00:05:59,824 אם זה חשוב, ייתכן שתרצה להשתמש כפול במקום לצוף. 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, לצוף צריך להספיק. 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 רק צריך לשמש כמציין מיקום בשבילך כמו לחשוב על שום דבר. 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 >> אז אלה הם חמישה הסוגים תמצאו מפגש שמובנה לג 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 >> הראשון שבם הוא בול. 191 00:08:23,030 --> 00:08:26,780 אז את סוג הנתונים בוליאנית, בול, משמש למשתנים 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 אז אם אי פעם אתה צריך ליצור משתנה מסוגה בול, 204 00:08:51,910 --> 00:08:55,230 רק כדי להיות בטוח #include CS50.h בתחילת התכנית שלך, 205 00:08:55,230 --> 00:08:57,800 ואתה תהיה מסוגל ליצור משתנים מהסוג בול. 206 00:08:57,800 --> 00:09:02,095 >> אם שכחת #include CS50.h, ו אתה מתחיל שימוש במשתנים בוליאנית-סוג, 207 00:09:02,095 --> 00:09:04,970 אתה עשוי להיתקל כמה בעיות כשאתה קומפילציה התכנית שלך. 208 00:09:04,970 --> 00:09:06,490 כל כך פשוט להיות על המשמר מפני ש. 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 מחרוזות הן באמת רק מילות. 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 כך שאתה יכול להשתמש בסוג המחרוזת. 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 שכנראה סופו של דבר להחזיק point-- הצף 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 לצוף, שורש ריבועים 2; לצוף שורש הריבועי 3; לצוף pi; וזה יעבוד גם. 273 00:11:47,690 --> 00:11:50,590 >> אבל שוב, אני יכול רק לגבש זה לשורה אחת של קוד. 274 00:11:50,590 --> 00:11:54,050 עושה את דברים קצת קצר יותר, לא מגושם כ. 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 כאשר עובדים עם ג אתה פשוט יכול רוצה ליצור תקין משתנה כאשר 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 למעשה, אם אתה עושה זאת, אתה עלול בסופו של דבר עם כמה תוצאות מוזרות 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 מכתב שווה הון ח זה משימה. 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 מכתב תו שווה h זהה קווים שלישיים והרביעי של קוד לעיל. 327 00:13:46,829 --> 00:13:49,620 אוכל מוכן החשוב ביותר כאן כאשר אנו מכריזים והקצאה 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 >> אני דאג לויד. 336 00:14:06,660 --> 00:14:08,870 וזה CS50. 337 00:14:08,870 --> 00:14:10,499