1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> 戴維·J·馬蘭:所以這是CS50。 3 00:00:13,800 --> 00:00:18,970 這是CS50自己的科爾頓奧格登 更多的是誰的音樂,你可以 4 00:00:18,970 --> 00:00:22,820 下載的soundcloud.com/cs50。 5 00:00:22,820 --> 00:00:26,690 >> 所以今天我們重點更 編程的藝術。 6 00:00:26,690 --> 00:00:28,980 我們需要在我們離開 關閉上週,重點 7 00:00:28,980 --> 00:00:31,660 上划痕,這是該 圖形化編程語言。 8 00:00:31,660 --> 00:00:35,490 走下來,以一個較低的水平, 使用更傳統的編程 9 00:00:35,490 --> 00:00:38,420 被譽為C.語言,但 一路走來,實現 10 00:00:38,420 --> 00:00:40,730 ,同樣的想法,我們 談到上週五 11 00:00:40,730 --> 00:00:44,390 不僅會在此復發 C語言,但在大多數每隔 12 00:00:44,390 --> 00:00:46,350 我們看看這個學期。 13 00:00:46,350 --> 00:00:50,247 >> 因此,我們呼籲這件事 這裡過去是什麼時間呢? 14 00:00:50,247 --> 00:00:51,830 這是代表發言的。 15 00:00:51,830 --> 00:00:53,080 所以我們稱這個聲明。 16 00:00:53,080 --> 00:00:54,100 它做一些事情。 17 00:00:54,100 --> 00:00:56,910 這是一個指令,一個 計算機或划痕可能執行。 18 00:00:56,910 --> 00:00:59,910 從今以後,我們也開始 調用這樣的函數, 19 00:00:59,910 --> 00:01:02,070 對於原因,我們將很快看到。 20 00:01:02,070 --> 00:01:03,681 >> 同時,我們看到了這樣的事情。 21 00:01:03,681 --> 00:01:05,680 而這些都是一般 被稱為什麼構造? 22 00:01:05,680 --> 00:01:06,240 >> 聽眾:循環。 23 00:01:06,240 --> 00:01:06,860 >> 戴維·J·馬蘭:所以一個循環。 24 00:01:06,860 --> 00:01:07,943 所以,很簡單。 25 00:01:07,943 --> 00:01:09,470 它的字面做什麼,它說。 26 00:01:09,470 --> 00:01:12,210 和划痕,如果你想 補習班更多拼圖在那裡, 27 00:01:12,210 --> 00:01:13,950 片將增長,以適應它。 28 00:01:13,950 --> 00:01:16,790 我們會在C中看到, 我們可以做同樣的事情。 29 00:01:16,790 --> 00:01:20,000 >> 另一種類型的環,不過, 在划痕可能是永遠的, 30 00:01:20,000 --> 00:01:21,820 或有任何數量 其他方法。 31 00:01:21,820 --> 00:01:24,150 但是,讓我們更 多面手的樣子,臉上 32 00:01:24,150 --> 00:01:27,402 這可能很熟悉, 在循環更普遍。 33 00:01:27,402 --> 00:01:29,110 馬克·扎克伯格:一個 東西電腦 34 00:01:29,110 --> 00:01:31,860 是的,是真的好 重複的命令。 35 00:01:31,860 --> 00:01:33,910 作為一個人,你會得到 如果你真的很無聊 36 00:01:33,910 --> 00:01:36,730 不得不做的同樣的事情 許多在一排次。 37 00:01:36,730 --> 00:01:40,530 但是,一台計算機可以做同樣的事情 數百萬甚至數十億倍, 38 00:01:40,530 --> 00:01:43,290 不覺得無聊,並且能夠 開展了這一點真的很好。 39 00:01:43,290 --> 00:01:45,650 >> 因此,舉例來說,如果我 想祝大家 40 00:01:45,650 --> 00:01:48,840 Facebook上的生日快樂 通過向他們發送一封電子郵件, 41 00:01:48,840 --> 00:01:51,550 這可能要花費一個多 世紀真正寫出來 42 00:01:51,550 --> 00:01:53,000 所有這些郵件給大家。 43 00:01:53,000 --> 00:01:57,780 但是,代碼只有幾行,我可以 有一個系統發送一封電子郵件給大家 44 00:01:57,780 --> 00:01:59,930 在Facebook希望 他們生日快樂。 45 00:01:59,930 --> 00:02:02,730 所以,這就是循環是為什麼 他們是有價值的東西 46 00:02:02,730 --> 00:02:04,740 計算機能夠做的非常好。 47 00:02:04,740 --> 00:02:05,630 >> 戴維·J·馬蘭:所以,如果 你去過收件人 48 00:02:05,630 --> 00:02:07,820 一些CS50的和 後期的Dropbox的空間, 49 00:02:07,820 --> 00:02:10,590 這其實正是我們 這樣做,使用代碼挺喜歡的。 50 00:02:10,590 --> 00:02:12,600 我們基本上有一個大的 表格成 51 00:02:12,600 --> 00:02:15,016 人們已經將他們的 姓名和電子郵件地址。 52 00:02:15,016 --> 00:02:18,160 我們寫的代碼,一點點的 可以遍歷這些地址 53 00:02:18,160 --> 00:02:21,860 吐出的唯一地址的 至於有人提出多次。 54 00:02:21,860 --> 00:02:25,120 此後,我們發 從CS50的機器人自動發送的電子郵件, 55 00:02:25,120 --> 00:02:27,190 包括優惠券代碼。 56 00:02:27,190 --> 00:02:29,290 >> 現在,我們還看了 這個構造最後一次。 57 00:02:29,290 --> 00:02:33,100 這是一個特殊的 比如什麼? 58 00:02:33,100 --> 00:02:35,050 所以,是的,一個布爾表達式。 59 00:02:35,050 --> 00:02:37,050 和形狀是指 捕捉到這一點。 60 00:02:37,050 --> 00:02:39,966 的所有這些問題, 形成真或假的划痕 61 00:02:39,966 --> 00:02:41,590 看起來有點像這樣。 62 00:02:41,590 --> 00:02:43,200 我們稱這是一個布爾表達式。 63 00:02:43,200 --> 00:02:46,170 這的確是真的還是假的,是或否。 64 00:02:46,170 --> 00:02:49,150 這是回答問題的方式。 65 00:02:49,150 --> 00:02:52,420 >> 而同時,你可以使用這些布爾 結構內部表達 66 00:02:52,420 --> 00:02:54,720 像這樣的,它的 當然是條件 67 00:02:54,720 --> 00:02:57,259 或分支機構,諺語 岔路。 68 00:02:57,259 --> 00:02:59,550 他們不僅可以看 像這樣的,但他們也可以 69 00:02:59,550 --> 00:03:02,080 他們已經偷別人的關聯。 70 00:03:02,080 --> 00:03:05,820 而實際上你可以有一個三通 岔路口或四叉方式 71 00:03:05,820 --> 00:03:08,340 在路上,只要通過 築巢這些東西, 72 00:03:08,340 --> 00:03:10,510 因為你會在看到划痕 如果你還沒有。 73 00:03:10,510 --> 00:03:13,550 而且,你可以用C做的一樣好。 74 00:03:13,550 --> 00:03:16,810 >> 讓我們以另一種通才 看一個alumnist,還有,誰 75 00:03:16,810 --> 00:03:21,490 可能會呈現出不同的方法 這些東西叫做條件。 76 00:03:21,490 --> 00:03:24,060 >> 比爾蓋茨:人們經常 每一天的決定。 77 00:03:24,060 --> 00:03:27,530 例如,在你走之前,你外面 種有一個if語句,上面寫著: 78 00:03:27,530 --> 00:03:31,480 如果下雨那我 需要讓我的夾克。 79 00:03:31,480 --> 00:03:36,820 和電腦是驚人的,一旦你 決定這些類型的語句, 80 00:03:36,820 --> 00:03:42,280 它們可以可靠地執行 這些東西在令人難以置信的速度。 81 00:03:42,280 --> 00:03:48,240 等計算機程序真的 是數學和一些一點點 82 00:03:48,240 --> 00:03:53,050 if語句的地方 該決定被做出。 83 00:03:53,050 --> 00:03:55,020 >> 戴維·J·馬蘭:那麼作為 大家可能都知道,這是 84 00:03:55,020 --> 00:03:57,880 鄉親們像比爾·蓋茨, 保羅·艾倫等人 85 00:03:57,880 --> 00:04:00,240 真正拉開序幕 所謂的個人計算機 86 00:04:00,240 --> 00:04:01,990 革命多年。 87 00:04:01,990 --> 00:04:04,140 我想,我們潛水前 到一些文案, 88 00:04:04,140 --> 00:04:09,920 我們希望有關的故事,從阿爾伯克基, 自然歷史博物館新墨西哥州的博物館 89 00:04:09,920 --> 00:04:13,650 和科學,其中一些比爾·蓋茨的“ 和保羅·艾倫的故事最早 90 00:04:13,650 --> 00:04:17,470 是講述我們現在怎麼有 今天的PC和Mac等等。 91 00:04:17,470 --> 00:04:22,390 對於這一點,但是,我們需要兩個志願者 誰都有很好的旁白聲音 92 00:04:22,390 --> 00:04:23,735 朗讀的腳本。 93 00:04:23,735 --> 00:04:25,530 >> 好吧,怎麼樣在回到那裡。 94 00:04:25,530 --> 00:04:26,120 上來吧。 95 00:04:26,120 --> 00:04:27,770 以及怎麼樣在前面這裡。 96 00:04:27,770 --> 00:04:28,340 下來吧。 97 00:04:28,340 --> 00:04:29,600 把你的地方在這裡。 98 00:04:29,600 --> 00:04:32,444 正如你們上來,一對夫婦 行政公告。 99 00:04:32,444 --> 00:04:34,360 切片時,處理 選擇部分, 100 00:04:34,360 --> 00:04:36,068 將於本 週三至週五。 101 00:04:36,068 --> 00:04:38,400 更多關於這個未來 週三在演講。 102 00:04:38,400 --> 00:04:41,770 >> 超級節,同時,在 我們下週提供的東西 103 00:04:41,770 --> 00:04:45,310 由此,整個班級的邀請 參加比較大型 104 00:04:45,310 --> 00:04:47,690 段,多了一個舒適, 少了一個舒適的。 105 00:04:47,690 --> 00:04:51,340 我們將公佈詳情 這一點,還有,在本週晚些時候。 106 00:04:51,340 --> 00:04:53,310 >> 同時段, 自己,將啟動 107 00:04:53,310 --> 00:04:57,241 在三個課程一周,零指數, 這意味著那些一兩個星期 108 00:04:57,241 --> 00:04:57,740 出來。 109 00:04:57,740 --> 00:04:58,450 所以不用擔心。 110 00:04:58,450 --> 00:05:01,014 你還沒有錯過 沿著這些線路的東西。 111 00:05:01,014 --> 00:05:03,930 同時,在此期間,如果你 有任何問題行政, 112 00:05:03,930 --> 00:05:08,120 電子郵件我和德文郡和加布 和Rob在這裡這個地址。 113 00:05:08,120 --> 00:05:10,320 >> 最後,問題集 0是當然的。 114 00:05:10,320 --> 00:05:12,320 您可能已經注意到了這一點 在球場上的網站。 115 00:05:12,320 --> 00:05:14,840 它應該為你提供 所有問題的答案 116 00:05:14,840 --> 00:05:18,250 你可能有沿途的 入門問題集。 117 00:05:18,250 --> 00:05:21,430 但是,如果你發現自己 需要援助之手的, 118 00:05:21,430 --> 00:05:25,020 通過各種手段參加工作時間, 週一,週二,週三,週四 119 00:05:25,020 --> 00:05:27,290 本週日晚 四食堂。 120 00:05:27,290 --> 00:05:31,650 看到有網址的資料 哪裡辦公時間應。 121 00:05:31,650 --> 00:05:34,000 >> 現在,讓我們來認識我們 兩位嘉賓今天。 122 00:05:34,000 --> 00:05:34,740 你叫什麼名字? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL:周杰倫保羅。 124 00:05:35,290 --> 00:05:36,880 >> 戴維·J·馬蘭:周杰倫 保羅,很高興見到你。 125 00:05:36,880 --> 00:05:37,330 >> HIKARI:光速。 126 00:05:37,330 --> 00:05:37,975 >> 戴維·J·馬蘭:光速? 127 00:05:37,975 --> 00:05:38,250 >> HIKARI:光速。 128 00:05:38,250 --> 00:05:38,810 >> 戴維·J·馬蘭:光速。 129 00:05:38,810 --> 00:05:39,790 很高興認識你。 130 00:05:39,790 --> 00:05:42,123 傑伊·保羅和阿光在 他們對這些音樂前 131 00:05:42,123 --> 00:05:45,100 站在我打印的兩個腳本 今天上午從新墨西哥州 132 00:05:45,100 --> 00:05:46,692 自然歷史博物館和科學博物館。 133 00:05:46,692 --> 00:05:48,400 而我的想法 我會做的開銷 134 00:05:48,400 --> 00:05:52,830 是陪你朗誦 劇本,這段歷史 135 00:05:52,830 --> 00:05:54,700 一些視覺影像,沒有驚喜。 136 00:05:54,700 --> 00:05:57,512 >> 而我事先做了 是prehighlight在你的腳本 137 00:05:57,512 --> 00:05:59,470 你應該閱讀, 你應該讀什麼。 138 00:05:59,470 --> 00:06:00,920 我們將主要 只是備用的段落。 139 00:06:00,920 --> 00:06:03,211 因此,這就像你可能會 做英語課。 140 00:06:03,211 --> 00:06:06,875 這真的迫使觀眾 相信你的故事在這裡。 141 00:06:06,875 --> 00:06:07,600 我們可以? 142 00:06:07,600 --> 00:06:13,272 因此,這裡的故事是,我們有一個 BASIC,並開始在劍橋。 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL:那是冬天,1974年, 在劍橋,馬薩諸塞州 144 00:06:18,750 --> 00:06:20,240 這裡冬季非常寒冷。 145 00:06:20,240 --> 00:06:22,800 一個大鬍子,長頭髮 大學輟學命名 146 00:06:22,800 --> 00:06:27,280 保羅·艾倫是耐勞的整個哈佛 廣場,專注於他的想法。 147 00:06:27,280 --> 00:06:31,050 他在那些日子裡主要的當務之急 是如何讓他的朋友,比爾·蓋茨, 148 00:06:31,050 --> 00:06:34,974 退學去 與他的生意。 149 00:06:34,974 --> 00:06:37,890 HIKARI:兩個已經走了 通過一些商業投資 150 00:06:37,890 --> 00:06:40,850 同時,開始在湖邊 學校在西雅圖的地方 151 00:06:40,850 --> 00:06:45,220 他們在支付了免費的電腦時間 在當地時間測試一台PDP-10電腦 152 00:06:45,220 --> 00:06:46,580 共享公司。 153 00:06:46,580 --> 00:06:50,930 最近的計劃是退出 學校形成了一家軟件公司。 154 00:06:50,930 --> 00:06:53,440 阿倫已經離開了華盛頓 州立大學。 155 00:06:53,440 --> 00:06:58,380 但在最後一刻,蓋茨 決定堅持哈佛大學。 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL:那一天,哈佛大學渡 廣場,艾倫看準一月 157 00:07:02,080 --> 00:07:07,530 1975年發行的熱門電子產品 與地球停標題, 158 00:07:07,530 --> 00:07:11,900 世界上第一台小型機套件 對手的商業模式。 159 00:07:11,900 --> 00:07:14,430 下方的標題是 一個小盒子的圖片 160 00:07:14,430 --> 00:07:16,160 裝飾用燈和開關。 161 00:07:16,160 --> 00:07:19,770 這就是所謂的MITS牛郎星8800。 162 00:07:19,770 --> 00:07:24,100 和艾倫知道這是什麼 他一直在尋找的。 163 00:07:24,100 --> 00:07:26,350 >> HIKARI:討論天緊隨其後。 164 00:07:26,350 --> 00:07:30,170 艾倫和蓋茨理解 牛郎星的意義。 165 00:07:30,170 --> 00:07:32,480 他們經常討論 關於微處理器 166 00:07:32,480 --> 00:07:35,250 並等著看 將與他們進行。 167 00:07:35,250 --> 00:07:39,770 現在有一個小型機套件 大眾電子封面。 168 00:07:39,770 --> 00:07:42,830 它顯然沒有軟件呢。 169 00:07:42,830 --> 00:07:46,830 他們想像的國度 程序員降在MITS公司。 170 00:07:46,830 --> 00:07:49,590 因此,他們被稱為埃德·羅伯茨, 該公司的負責人, 171 00:07:49,590 --> 00:07:53,330 自稱有一個版本的 BASIC編程語言幾乎準備 172 00:07:53,330 --> 00:07:54,710 為Altair。 173 00:07:54,710 --> 00:07:55,570 他們沒有。 174 00:07:55,570 --> 00:07:58,910 和羅伯茨一定知道他們沒有。 175 00:07:58,910 --> 00:08:03,170 他漸漸從每天10個電話 誰的人有一個基本快好了。 176 00:08:03,170 --> 00:08:05,570 而他的股票的反應 是,“第一人 177 00:08:05,570 --> 00:08:11,090 誰顯示了一個工作 基本得到了合同。“ 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL:蓋茨和艾倫 從來沒有見過一個牽牛星。 179 00:08:13,910 --> 00:08:17,600 他們甚至從來沒有見過的 英特爾8080微處理器 180 00:08:17,600 --> 00:08:19,060 在牛郎星的心臟。 181 00:08:19,060 --> 00:08:21,470 但幾年前 艾倫曾編寫過程序 182 00:08:21,470 --> 00:08:25,220 一台主機計算機上仿真 以前英特爾的操作 183 00:08:25,220 --> 00:08:26,217 微處理器。 184 00:08:26,217 --> 00:08:28,300 他們在這段時間 會做同樣的事情。 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> HIKARI:隨著英特爾 8080手動在他身邊, 187 00:08:34,380 --> 00:08:37,770 艾倫在坐了下來 哈佛的PDP-10電腦 188 00:08:37,770 --> 00:08:42,010 並寫下了仿真器和軟件 必要的工具來完成編程。 189 00:08:42,010 --> 00:08:45,820 同時蓋茨不再去 類和獻身 190 00:08:45,820 --> 00:08:48,120 對設計的基礎上, 利用一切伎倆 191 00:08:48,120 --> 00:08:53,130 他知道,以獲得尺寸 向下跌破4千字節。 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL:出阿爾伯克基, 埃德·羅伯茨接到蓋茨的電話 193 00:08:55,870 --> 00:08:59,754 問,詳細了解如何 Altair的具體處理程序。 194 00:08:59,754 --> 00:09:01,170 從來沒有人問過。 195 00:09:01,170 --> 00:09:02,670 和羅伯茨開始得到關注。 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> HIKARI:隨著時代的發展 工具和設計準備, 198 00:09:07,970 --> 00:09:10,780 蓋茨和艾倫寫道: 在PDP-10中的代碼, 199 00:09:10,780 --> 00:09:16,060 爭取另一位哈佛大學的學生, 蒙大衛杜夫,寫數學例程。 200 00:09:16,060 --> 00:09:19,450 之後的最後一晚 編程,阿倫坐上飛機 201 00:09:19,450 --> 00:09:22,970 提供基本為MITS公司。 202 00:09:22,970 --> 00:09:25,800 他花了乘坐飛機出令人擔憂。 203 00:09:25,800 --> 00:09:28,490 而早在劍橋 蓋茨擔心。 204 00:09:28,490 --> 00:09:32,100 他們測試了他們基本的 它工作在模擬器上。 205 00:09:32,100 --> 00:09:35,444 但是,如果模擬器是錯誤的? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL:隨著飛機 走近阿爾伯克基, 207 00:09:37,360 --> 00:09:40,070 艾倫意識到,他們的 BASIC,現在整齊載 208 00:09:40,070 --> 00:09:42,460 在一個小卷 穿孔紙帶,將 209 00:09:42,460 --> 00:09:44,970 將是一個沒有獨立沒用 計劃,叫裝載機,那 210 00:09:44,970 --> 00:09:47,550 會告訴如何牛郎星 閱讀紙帶幸福 211 00:09:47,550 --> 00:09:49,620 送入電傳打字機。 212 00:09:49,620 --> 00:09:52,970 他掏出筆記本,並迅速 潦草下來loader程序 213 00:09:52,970 --> 00:09:56,819 在彙編語言,然後手動 翻譯說成1和0 214 00:09:56,819 --> 00:09:57,985 牛郎星會理解的。 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> HIKARI:艾倫期待 乾淨,小,高科技公司 217 00:10:03,830 --> 00:10:05,470 男人的西裝運行。 218 00:10:05,470 --> 00:10:09,210 於是,他很驚訝,當羅伯茨見面 他在機場看上去就像一個大農場 219 00:10:09,210 --> 00:10:10,270 手。 220 00:10:10,270 --> 00:10:12,070 羅伯茨還驚奇。 221 00:10:12,070 --> 00:10:16,340 當他放棄了哈佛大學 程序員在昂貴的酒店, 222 00:10:16,340 --> 00:10:20,790 艾倫不得不承認, 他買不起房。 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL:MITS公司,本身是 坐落在一個塵土飛揚的地帶商場。 224 00:10:24,510 --> 00:10:27,040 在裡面凌亂 工作台是一個牽牛星 225 00:10:27,040 --> 00:10:30,390 裝了5千字節 存儲器和通過電纜連接 226 00:10:30,390 --> 00:10:32,030 以電傳打字機。 227 00:10:32,030 --> 00:10:37,200 羅伯茨和總工程師, 比爾耶茨,等待著期待 228 00:10:37,200 --> 00:10:40,660 艾倫切換自己的裝載機 計劃到牛郎星。 229 00:10:40,660 --> 00:10:44,980 電傳開始隆隆,因為它拉 紙帶通過紙帶閱讀機。 230 00:10:44,980 --> 00:10:47,215 花了也許15分鐘 加載程序。 231 00:10:47,215 --> 00:10:52,110 然後突然電傳打印的 記憶的提示,然​​後一個現成的提示, 232 00:10:52,110 --> 00:10:55,340 和艾倫開始打字 一些測試命令。 233 00:10:55,340 --> 00:10:57,400 為了大家的驚愕, 該軟件的工作。 234 00:10:57,400 --> 00:10:58,525 有當然的錯誤。 235 00:10:58,525 --> 00:11:02,070 更主要的是它的工作。 236 00:11:02,070 --> 00:11:06,570 >> HIKARI:後來,在他們的途中到 3.00美元午餐潘喬的,馬蜂飛 237 00:11:06,570 --> 00:11:10,470 在拾取器的窗口 卡車和刺痛了艾倫的手臂。 238 00:11:10,470 --> 00:11:13,070 但在這一點上沒有什麼 會破壞心情。 239 00:11:13,070 --> 00:11:17,210 牛郎星現在有了基本的 一個家庭的第一商業軟件 240 00:11:17,210 --> 00:11:23,260 計算機,由保羅·艾倫和比爾做 蓋茨,做生意微軟。 241 00:11:23,260 --> 00:11:25,336 >> 戴維·J·馬蘭:很多 由於我們兩國的讀者。 242 00:11:25,336 --> 00:11:30,690 >> [掌聲] 243 00:11:30,690 --> 00:11:32,520 >> 戴維·J·馬蘭:現在 你有你的選擇, 244 00:11:32,520 --> 00:11:35,880 你離開的閃閃發光,前 或者在dark--哦輝光, 245 00:11:35,880 --> 00:11:40,810 等待一秒鐘,wait--閃閃發光 在黑暗的大象輝光 246 00:11:40,810 --> 00:11:42,534 從CS50自己的成功。 247 00:11:42,534 --> 00:11:43,450 HIKARI:哦,謝謝。 248 00:11:43,450 --> 00:11:45,324 戴維·J·馬蘭:全部 好,謝謝你這麼多。 249 00:11:45,324 --> 00:11:49,855 [掌聲] 250 00:11:49,855 --> 00:11:51,105 戴維·J·馬蘭:所以真實的故事。 251 00:11:51,105 --> 00:11:54,380 這就是說所有這些是 機器和易用性,使我們 252 00:11:54,380 --> 00:11:56,270 現在使用它們,並採取 理所當然的,真的 253 00:11:56,270 --> 00:12:00,070 從這裡開始,僅幾步之遙 從這個實際戰場。 254 00:12:00,070 --> 00:12:03,930 而現在的今天,如果你還沒有去過, 這是麥克斯韋德沃金,所述計算機 255 00:12:03,930 --> 00:12:05,810 科學建設, 也蠢蠢欲動。 256 00:12:05,810 --> 00:12:09,760 而在此二樓 建築不掛三頁 257 00:12:09,760 --> 00:12:12,740 從原來的源代碼的 比爾·蓋茨和保羅·艾倫寫道。 258 00:12:12,740 --> 00:12:14,770 事實上,如果你使用放大 在您不僅可以看到 259 00:12:14,770 --> 00:12:17,350 其名稱中 原始類型,但也 260 00:12:17,350 --> 00:12:22,100 他們的簽名,他們裝飾á 幾年前,當他們最後一次訪問。 261 00:12:22,100 --> 00:12:25,800 >> 但是,什麼是特別引人注目 關於這就是他們所要做的 262 00:12:25,800 --> 00:12:29,760 是寫一個程序,將 讓其他人寫的 263 00:12:29,760 --> 00:12:30,950 自己的方案。 264 00:12:30,950 --> 00:12:34,280 當時所有有帶 這牽牛星機由MITS進行。 265 00:12:34,280 --> 00:12:40,020 和所有他們需要的是一些方法 因此很容易為業餘愛好者和人民 266 00:12:40,020 --> 00:12:45,300 喜歡我們在這個房間裡居然程序 如果沒有一定了解 267 00:12:45,300 --> 00:12:49,060 彙編代碼或機器 碼,或上帝保佑,0和1。 268 00:12:49,060 --> 00:12:51,190 我們的程序員一樣, 那些在這個房間裡,我們 269 00:12:51,190 --> 00:12:54,070 希望能夠表達 自己更像偽代碼 270 00:12:54,070 --> 00:12:57,330 即使這是一個有點更挑剔 挑剔比上週我們討論。 271 00:12:57,330 --> 00:13:00,970 我們不希望寫這樣的代碼, 保羅·艾倫和比爾·蓋茨一樣。 272 00:13:00,970 --> 00:13:04,850 相反,我們要編寫代碼, 看起來多了幾分人性化。 273 00:13:04,850 --> 00:13:07,150 >> 現在,這就是所謂的基本語言。 274 00:13:07,150 --> 00:13:11,497 和行號有你 使用簡單的數行代碼 275 00:13:11,497 --> 00:13:12,330 那你寫的。 276 00:13:12,330 --> 00:13:14,038 我們甚至不須 這樣做的這些日子。 277 00:13:14,038 --> 00:13:16,060 但是你可以在這裡看到 如何打印“你好,世界” 278 00:13:16,060 --> 00:13:18,660 的確大概印了這一點。 279 00:13:18,660 --> 00:13:22,710 還等什麼比爾和保羅所做的是 授權人寫這樣的代碼 280 00:13:22,710 --> 00:13:27,240 而不是of--如果你看一看的 計算機科學wall--這樣的代碼。 281 00:13:27,240 --> 00:13:29,290 >> 事實上,CS50最近 有機會 282 00:13:29,290 --> 00:13:32,540 坐下來與哈利·劉易斯教授 在計算機科學系,誰 283 00:13:32,540 --> 00:13:34,640 實際上教草案 蓋茨幾年前, 284 00:13:34,640 --> 00:13:38,460 而站在這裡之前 這三頁的摘錄。 285 00:13:38,460 --> 00:13:39,560 讓我們一起來看看。 286 00:13:39,560 --> 00:13:45,520 >> 哈里劉易斯:你在這裡是 早期的軟件上市 287 00:13:45,520 --> 00:13:50,240 寫的比爾·蓋茨和保羅 艾倫,微軟的創始人。 288 00:13:50,240 --> 00:13:52,570 這樣的代碼是有趣 有兩個原因。 289 00:13:52,570 --> 00:13:55,480 首先,它成為 微軟的第一款產品, 290 00:13:55,480 --> 00:14:01,810 這是一個解釋器 BASIC編程語言。 291 00:14:01,810 --> 00:14:04,940 其次,這是 第一次嘗試之一 292 00:14:04,940 --> 00:14:10,580 創建一個解釋如此平凡 人們可以使用個人電腦。 293 00:14:10,580 --> 00:14:12,670 >> 所以,比爾·蓋茨是一個 本科在哈佛。 294 00:14:12,670 --> 00:14:14,820 我開始在哈佛大學1974年的教學。 295 00:14:14,820 --> 00:14:16,560 這是在1975年完成。 296 00:14:16,560 --> 00:14:20,180 所以這是他職業生涯的早期 在我職業生涯的早期。 297 00:14:20,180 --> 00:14:23,790 其實我教條例草案 在這段時間的課程。 298 00:14:23,790 --> 00:14:27,130 保羅·艾倫是不是 哈佛的學生,但他 299 00:14:27,130 --> 00:14:31,020 曾是一名高中 同學比爾·蓋茨。 300 00:14:31,020 --> 00:14:33,740 如果你來看看 在清單中,將會 301 00:14:33,740 --> 00:14:36,230 居然找到第三 名,蒙大衛杜夫, 302 00:14:36,230 --> 00:14:39,260 誰是蓋茨的同學 你們是哈佛。 303 00:14:39,260 --> 00:14:41,340 >> 好了,這裡是一個 有趣的評論在這裡。 304 00:14:41,340 --> 00:14:47,150 它說:“在4K可以刪除平方根 但對於循環應該仍然有效。“ 305 00:14:47,150 --> 00:14:53,080 好了,這是什麼意思是,有 兩種方法來編譯這個程序。 306 00:14:53,080 --> 00:14:57,860 一個是上一個版本運行 這牛郎星電腦 307 00:14:57,860 --> 00:15:04,310 只有具有4K字 存儲器中,存儲器4096字。 308 00:15:04,310 --> 00:15:07,050 但大版本有8K。 309 00:15:07,050 --> 00:15:09,770 還等什麼這說的是 ,在4K版本 310 00:15:09,770 --> 00:15:12,770 你必須刪除一些 代碼,使其適合。 311 00:15:12,770 --> 00:15:14,790 和的事情之一 這將被刪除 312 00:15:14,790 --> 00:15:16,290 將平方根例程。 313 00:15:16,290 --> 00:15:20,360 但顯然 for循環應該還是 314 00:15:20,360 --> 00:15:26,392 當你編譯下工作,即使 對於剛剛4K版本的計算機。 315 00:15:26,392 --> 00:15:29,350 戴維·J·馬蘭:所以的主題之一, 我們將在計算機科學中看到, 316 00:15:29,350 --> 00:15:31,430 是這個概念 分層和抽象, 317 00:15:31,430 --> 00:15:34,670 真正站在肩膀上 人誰已經來到我們面前,不是 318 00:15:34,670 --> 00:15:37,890 不像某些比爾·蓋茨 和保羅·艾倫的敘事在這裡。 319 00:15:37,890 --> 00:15:40,080 而這句話的意思是 今天,我們可以採取 320 00:15:40,080 --> 00:15:43,490 理所當然的事情,其實 我們更容易編寫代碼。 321 00:15:43,490 --> 00:15:47,170 事實上代碼,因為我們上週五表示,為 更多技術上稱為源代碼。 322 00:15:47,170 --> 00:15:52,210 而正是這種英語的語法 這是更合適的,更明確 323 00:15:52,210 --> 00:15:55,480 不是像偽代碼, 其中有沒有正式的定義。 324 00:15:55,480 --> 00:15:58,320 >> 今天我們要去 關注的是源代碼 325 00:15:58,320 --> 00:16:01,010 看起來像這樣,這 誠然,乍一看 326 00:16:01,010 --> 00:16:02,690 看起來完全隱蔽。 327 00:16:02,690 --> 00:16:08,540 坦率地說,它的方式更加美觀 較複雜的底層程序。 328 00:16:08,540 --> 00:16:13,300 所有這些程序呢, 召回,是我們沒有說什麼? 329 00:16:13,300 --> 00:16:14,990 它只是打印的“hello world”。 330 00:16:14,990 --> 00:16:19,600 然而,看看所有我們需要的東西 環繞這很簡單的短語。 331 00:16:19,600 --> 00:16:21,750 但沒過多久全部 這些線路多 332 00:16:21,750 --> 00:16:24,800 會更好的感覺給你。 333 00:16:24,800 --> 00:16:26,940 >> 且流程如下。 334 00:16:26,940 --> 00:16:31,220 我們需要在我們的處置 是取碼,如源 335 00:16:31,220 --> 00:16:32,340 我們剛才看到的代碼。 336 00:16:32,340 --> 00:16:35,060 我們需要一個新的計劃 通過運行它。 337 00:16:35,060 --> 00:16:39,130 我們需要算法,可以 轉換的源代碼,這樣, 338 00:16:39,130 --> 00:16:41,932 成目標代碼,0和1。 339 00:16:41,932 --> 00:16:43,890 換句話說,什麼 我們今天要學 340 00:16:43,890 --> 00:16:46,620 是如何做到這一點,寫 源代碼往上頂, 341 00:16:46,620 --> 00:16:49,930 把它作為輸入到一個特殊的 程序被稱為編譯程序, 342 00:16:49,930 --> 00:16:52,140 而我們將要產生的目標代碼。 343 00:16:52,140 --> 00:16:54,600 這是只是一種奇特的方式 他說,我們將採取什麼 344 00:16:54,600 --> 00:16:58,350 看起來像這樣,通過它 成稱為編譯程序, 345 00:16:58,350 --> 00:17:01,210 產生的目標代碼 看起來是這樣的。 346 00:17:01,210 --> 00:17:04,720 >> 因此,這些都是字面上 0和1的模式 347 00:17:04,720 --> 00:17:08,550 是由一個理解 英特爾電腦這幾天, 348 00:17:08,550 --> 00:17:12,480 如果解釋由CPU, 電腦裡面的大腦, 349 00:17:12,480 --> 00:17:16,130 將逐字打印出來, 很簡單,“世界你好”。 350 00:17:16,130 --> 00:17:19,670 現在有比你更多的方式0和1 希望可能需要為該。 351 00:17:19,670 --> 00:17:22,520 那是因為我們正在建設 一個很好的協議的複雜性 352 00:17:22,520 --> 00:17:24,270 我們可以從此理所當然的。 353 00:17:24,270 --> 00:17:27,869 換句話說,很多聰明的人 給我們提供了很多很酷的工具 354 00:17:27,869 --> 00:17:32,480 和強大的軟件,使用它我們 現在可以讓我們自己的項目。 355 00:17:32,480 --> 00:17:33,400 >> 所以,讓我們開始吧。 356 00:17:33,400 --> 00:17:36,640 而上週五,和 對於習題集0本週, 357 00:17:36,640 --> 00:17:39,000 你會打的 世界是這樣的。 358 00:17:39,000 --> 00:17:42,180 從今天起和問題 設置1,下週代碼 359 00:17:42,180 --> 00:17:45,410 會看起來多了幾分 神秘,但在功能上是 360 00:17:45,410 --> 00:17:46,940 將是相同的。 361 00:17:46,940 --> 00:17:50,770 所以通知,上面是從無到有, 底部是C坦白划痕 362 00:17:50,770 --> 00:17:52,780 是一個很大的用戶 友好訪問。 363 00:17:52,780 --> 00:17:56,890 但如果你現在比較直觀頂部 底部,有一種一對一的 364 00:17:56,890 --> 00:17:59,690 之間的對應關係 拼圖塊和語言 365 00:17:59,690 --> 00:18:00,870 我們即將一起玩。 366 00:18:00,870 --> 00:18:04,420 特別是,就是說, 藍色拼圖往上頂, 367 00:18:04,420 --> 00:18:08,370 顯然相當於什麼關鍵字 在這門語言或特殊短語 368 00:18:08,370 --> 00:18:09,062 稱為C? 369 00:18:09,062 --> 00:18:09,770 聽眾:printf的。 370 00:18:09,770 --> 00:18:10,728 戴維·J·馬蘭:printf的。 371 00:18:10,728 --> 00:18:12,140 這意味著格式化打印。 372 00:18:12,140 --> 00:18:15,240 而這只是一個幻想 說法printf的C語言的方式 373 00:18:15,240 --> 00:18:18,615 將會是一個語句或函數 可打印的東西到屏幕上。 374 00:18:18,615 --> 00:18:19,990 這是什麼打印到屏幕上? 375 00:18:19,990 --> 00:18:23,627 不管你告訴它裡面 的報價,括號內。 376 00:18:23,627 --> 00:18:25,460 如此反复,無可否認, 有很多東西 377 00:18:25,460 --> 00:18:27,990 你必須記住, 括號,引號,分號, 378 00:18:27,990 --> 00:18:28,656 和所有的這一點。 379 00:18:28,656 --> 00:18:30,600 但是,所有這一切是那種 的旁邊的點。 380 00:18:30,600 --> 00:18:33,660 有趣的外賣現在 是,在划痕的發言權塊 381 00:18:33,660 --> 00:18:37,520 幾乎是等同於 在C中的printf語句 382 00:18:37,520 --> 00:18:41,390 >> 同時,黃色拼圖 向上頂,當綠旗點擊, 383 00:18:41,390 --> 00:18:44,736 大概相當於 在這裡什麼關鍵字? 384 00:18:44,736 --> 00:18:45,360 聽眾:主。 385 00:18:45,360 --> 00:18:46,359 戴維·J·馬蘭:那麼主要。 386 00:18:46,359 --> 00:18:47,410 也許詮釋,也許作廢。 387 00:18:47,410 --> 00:18:51,280 但主要的有點像聲音 這一點很重要,確實是。 388 00:18:51,280 --> 00:18:54,080 所以,當綠旗點擊 又正是一塊拼圖 389 00:18:54,080 --> 00:18:56,390 揭開序幕的 整個耐刮劃。 390 00:18:56,390 --> 00:19:02,140 但是,我們要現在就開始打電話 在主,此功能稱為主。 391 00:19:02,140 --> 00:19:06,410 >> 現在,同時我們會 這個概括如下。 392 00:19:06,410 --> 00:19:08,780 我們可以稱說的功能。 393 00:19:08,780 --> 00:19:10,580 它可能看起來 具體是這樣的。 394 00:19:10,580 --> 00:19:11,770 那麼,怎麼樣的循環? 395 00:19:11,770 --> 00:19:16,540 如果我們要開始轉換,或 翻譯更從頭℃, 396 00:19:16,540 --> 00:19:19,400 這件事情在這裡顯然是剛剛 說的“hello world”永遠的。 397 00:19:19,400 --> 00:19:23,060 如果這些關聯如此 在划痕貓的腳本, 398 00:19:23,060 --> 00:19:26,560 它只是要不停地說 在某種卡通氣泡, 399 00:19:26,560 --> 00:19:29,922 “世界你好,你好世界,你好 世界“廣告nauseum,直到永遠。 400 00:19:29,922 --> 00:19:33,130 如果我們想要做類似的事情 C,它會顯得有點神秘。 401 00:19:33,130 --> 00:19:35,463 但是,我們可以達到同樣的 結果,我們最終會 402 00:19:35,463 --> 00:19:36,861 發現,像這樣的語法。 403 00:19:36,861 --> 00:19:39,360 我要再次用printf, 因為在一天結束時 404 00:19:39,360 --> 00:19:42,040 我想打印的“hello world”。 405 00:19:42,040 --> 00:19:45,610 而我顯然使用的是 關鍵字是不是永遠。 406 00:19:45,610 --> 00:19:47,320 這是不是同時的話。 407 00:19:47,320 --> 00:19:49,650 但就在語義 英語,種時 408 00:19:49,650 --> 00:19:52,120 表明某種循環或週期。 409 00:19:52,120 --> 00:19:55,070 >> 因此出現這種情況是 在C使用的關鍵字。 410 00:19:55,070 --> 00:20:00,700 雖然如此,為什麼不同時 真正有效的意思是永遠不會消失? 411 00:20:00,700 --> 00:20:04,240 好吧,雖然,因為我們很快就會 欣賞所有的越多, 412 00:20:04,240 --> 00:20:08,140 具有此括號旁邊 在那裡你可以把一個布爾表達式。 413 00:20:08,140 --> 00:20:11,360 而只要是 表達式為true,則此代碼, 414 00:20:11,360 --> 00:20:14,750 在這兩者之間,並標示 大括號,我們會打電話給他們, 415 00:20:14,750 --> 00:20:16,880 將只保留一次又一次地運行。 416 00:20:16,880 --> 00:20:18,410 >> 所以,真實不虛。 417 00:20:18,410 --> 00:20:20,900 因此,儘管真正的手段 只是這樣做下去。 418 00:20:20,900 --> 00:20:23,480 這幾乎是一個愚蠢的 構建表達自己。 419 00:20:23,480 --> 00:20:26,590 但是沒有永遠 在C語言關鍵字有一段時間。 420 00:20:26,590 --> 00:20:29,390 並有一個很簡單的 布爾表達式像真的。 421 00:20:29,390 --> 00:20:32,210 所以,我們會看到, 實現相同的結果。 422 00:20:32,210 --> 00:20:33,890 >> 你可能怎麼回事實現一個循環? 423 00:20:33,890 --> 00:20:36,980 那麼,在刮你可能 硬編碼一個特定的數 424 00:20:36,980 --> 00:20:39,430 在這裡的循環迭代。 425 00:20:39,430 --> 00:20:43,210 所以這正是我們 可能會做在這個版本的C, 426 00:20:43,210 --> 00:20:46,140 因此,我們有一個所謂的循環。 427 00:20:46,140 --> 00:20:49,850 和for循環在這裡是怎麼回事 迭代,有點神秘地, 428 00:20:49,850 --> 00:20:54,100 從提升價值0 到,但小於10。 429 00:20:54,100 --> 00:20:55,955 >> 現在,變量劃傷。 430 00:20:55,955 --> 00:20:57,830 你可能不會有 際使用這些。 431 00:20:57,830 --> 00:21:02,516 但有什麼意義,在一般情況下, 變量上週我說? 432 00:21:02,516 --> 00:21:03,015 那是什麼? 433 00:21:03,015 --> 00:21:03,780 >> 聽眾:點。 434 00:21:03,780 --> 00:21:05,200 >> 戴維·J·馬蘭:來點? 435 00:21:05,200 --> 00:21:05,700 呵呵,點。 436 00:21:05,700 --> 00:21:07,620 好吧,跟踪點, 例如,在一個遊戲。 437 00:21:07,620 --> 00:21:09,510 或者更一般地做 與變量是什麼? 438 00:21:09,510 --> 00:21:10,450 什麼是他們的效用? 439 00:21:10,450 --> 00:21:10,825 >> 聽眾:內存。 440 00:21:10,825 --> 00:21:11,750 >> 戴維·J·馬蘭:是啊,所以內存。 441 00:21:11,750 --> 00:21:13,000 它是用來存儲東西。 442 00:21:13,000 --> 00:21:17,336 和愚蠢的視覺í排序中使用 最後一次是這樣的玻璃碗。 443 00:21:17,336 --> 00:21:19,710 如果我們想存儲 一些變量裡面, 444 00:21:19,710 --> 00:21:21,918 例如,現在的 值是6,因為有 445 00:21:21,918 --> 00:21:23,450 六個乒乓球在這裡。 446 00:21:23,450 --> 00:21:26,158 這只是某種存儲 容器,該發動機罩下方 447 00:21:26,158 --> 00:21:30,030 與位0和1實施 然而,一台電腦發生這樣做。 448 00:21:30,030 --> 00:21:32,900 >> 因此,在划痕,如果我們 希望有一個變量, 449 00:21:32,900 --> 00:21:34,840 我們可以用一個橙色塊這樣。 450 00:21:34,840 --> 00:21:37,050 我們稱之為反 在這種特殊情況下。 451 00:21:37,050 --> 00:21:38,890 I初始化為0。 452 00:21:38,890 --> 00:21:41,080 什麼是我那時候怎麼辦? 453 00:21:41,080 --> 00:21:44,780 永遠的,說櫃檯,而如果 你在玩刮, 454 00:21:44,780 --> 00:21:45,780 你只看到划痕。 455 00:21:45,780 --> 00:21:49,920 你把貓或其他服裝 他將在議題發言的次數。 456 00:21:49,920 --> 00:21:52,840 >> 1更改計數器 如按1遞增。 457 00:21:52,840 --> 00:21:56,580 所以這是要 從什麼那麼什麼算什麼? 458 00:21:56,580 --> 00:21:59,114 從0直到無窮大,或 直到划痕休息, 459 00:21:59,114 --> 00:22:01,030 或之類的,直到你 失去觀看的興趣 460 00:22:01,030 --> 00:22:02,650 他有多高其實可以算。 461 00:22:02,650 --> 00:22:04,800 >> 那麼我們如何把它轉換為C? 462 00:22:04,800 --> 00:22:06,480 它會顯得有點神秘。 463 00:22:06,480 --> 00:22:08,896 但同樣,如果你​​看一下每個 這些線的單獨 464 00:22:08,896 --> 00:22:10,410 他們那種陣容一般。 465 00:22:10,410 --> 00:22:13,526 因此很明顯,int是要 有C語言的一些特殊含義 466 00:22:13,526 --> 00:22:14,400 我們將看到一次。 467 00:22:14,400 --> 00:22:15,810 順便說一句這意味著整數。 468 00:22:15,810 --> 00:22:16,990 所以它只是意味著數量。 469 00:22:16,990 --> 00:22:18,920 所以,這類型 玻璃碗我想,人們 470 00:22:18,920 --> 00:22:21,120 可以存儲數字 不是乒乓球。 471 00:22:21,120 --> 00:22:25,520 而我將用等號 那裡給它分配一個0值。 472 00:22:25,520 --> 00:22:29,440 所以這是很喜歡集 計數器為0,但在C 473 00:22:29,440 --> 00:22:32,840 >> 同時,在真實的,那就是 等效,當然,永遠, 474 00:22:32,840 --> 00:22:35,980 儘管這是一個有點神秘, 然後裡面的花括號中。 475 00:22:35,980 --> 00:22:39,188 你也可以認為這些花括號, 您可以輸入鍵盤上, 476 00:22:39,188 --> 00:22:43,110 因為真的是像在曲率 這些黃色的環塊劃傷。 477 00:22:43,110 --> 00:22:45,700 它包括多行代碼。 478 00:22:45,700 --> 00:22:48,120 >> printf的是得到一個 現在有點嚇人,因為我 479 00:22:48,120 --> 00:22:51,120 不僅看到行情在括號中。 480 00:22:51,120 --> 00:22:55,160 還有什麼是新的 語法在這個例子? 481 00:22:55,160 --> 00:22:57,300 有一成Ð。 482 00:22:57,300 --> 00:22:58,551 然後反斜杠n是在那裡。 483 00:22:58,551 --> 00:23:00,883 我們也看到,之前,即使 雖然我沒有提到它。 484 00:23:00,883 --> 00:23:01,886 然後有一個逗號。 485 00:23:01,886 --> 00:23:03,010 然後還有一個計數器。 486 00:23:03,010 --> 00:23:05,010 >> 但是,我們可以看到在短短的 矩,這僅僅是 487 00:23:05,010 --> 00:23:09,080 說法打印的標準方式 “小數”,報價,引文結束, 488 00:23:09,080 --> 00:23:10,500 一些十進制數。 489 00:23:10,500 --> 00:23:13,370 不過,我以後告訴你 什麼是十進制數是。 490 00:23:13,370 --> 00:23:16,835 因此,事實上,有一個逗號 在此行中的printf的說法, 491 00:23:16,835 --> 00:23:18,710 是指直接進行打印 一些十進制數。 492 00:23:18,710 --> 00:23:23,110 哦,對了,號碼是 不管這個變量的值是。 493 00:23:23,110 --> 00:23:25,880 因此,使這更 顯然,我們將看到一個例子 494 00:23:25,880 --> 00:23:30,930 不久,涉及的printf到底 在真正的C程序的上下文。 495 00:23:30,930 --> 00:23:33,472 >> 現在只是換了一些 這些結構。 496 00:23:33,472 --> 00:23:36,680 布爾表達式,你可能沒有 機會在你的程序中使用這些 497 00:23:36,680 --> 00:23:39,450 但你很可能, 尤其是在使用條件。 498 00:23:39,450 --> 00:23:43,460 所以這兩個例子從 從頭開始的意思是如果x小於y, 499 00:23:43,460 --> 00:23:48,770 或者如果x小於y和y是少 大於Z,我們如何翻譯呢? 500 00:23:48,770 --> 00:23:50,810 >> 那麼,在C中它只是 會是這樣的。 501 00:23:50,810 --> 00:23:55,300 有點神秘,更括號, 一些奇怪的符號(&),但從根本上 502 00:23:55,300 --> 00:23:59,160 的想法很簡單,因為他們 在一塊拼圖的世界。 503 00:23:59,160 --> 00:24:02,690 我們只是如果有什麼檢查 不到別的東西。 504 00:24:02,690 --> 00:24:03,910 >> 怎麼樣的條件? 505 00:24:03,910 --> 00:24:09,710 在英語簡單地說,這是什麼 的划痕代碼塊做,你會說什麼? 506 00:24:09,710 --> 00:24:11,050 >> 聽眾:比較兩個數字。 507 00:24:11,050 --> 00:24:13,760 >> 戴維·J·馬蘭:比較兩個 號,並且如果x小於y 508 00:24:13,760 --> 00:24:14,860 它說為多。 509 00:24:14,860 --> 00:24:18,080 如果x大於y 它說為多,其他 510 00:24:18,080 --> 00:24:20,740 如果x是等於y它說為多。 511 00:24:20,740 --> 00:24:22,180 現在在哪裡x和y是從哪裡來的? 512 00:24:22,180 --> 00:24:22,680 誰知道。 513 00:24:22,680 --> 00:24:25,380 划痕的這一塊 代碼是斷章取義。 514 00:24:25,380 --> 00:24:29,050 但是,我們現在要做的是翻譯 這只是一瞬間看到的。 515 00:24:29,050 --> 00:24:31,660 >> 所以,當你舒服 本週習題集 516 00:24:31,660 --> 00:24:34,190 0在這個世界上扮演 在左邊,實現 517 00:24:34,190 --> 00:24:36,940 該理念並沒有改變 本週或下週或以後。 518 00:24:36,940 --> 00:24:38,690 我們只是要 開始寫東西 519 00:24:38,690 --> 00:24:41,240 以不同的方式與我們的 鍵盤而不是鼠標了。 520 00:24:41,240 --> 00:24:44,577 >> 因此,如果x小於y和 有一些括號那裡, 521 00:24:44,577 --> 00:24:47,160 再有就是一些大括號 種再封裝它 522 00:24:47,160 --> 00:24:48,970 就像黃色拼圖做。 523 00:24:48,970 --> 00:24:53,000 我要去給printf點¯x 小於y等等。 524 00:24:53,000 --> 00:24:56,540 >> 什麼是好的關於C, 你可以在這裡看到, 525 00:24:56,540 --> 00:25:00,480 是你沒有得到這個嵌套, 嵌套,嵌套那是必然 526 00:25:00,480 --> 00:25:02,220 將你的代碼推到右側。 527 00:25:02,220 --> 00:25:04,990 您可以改為擁有一切 陣容整齊這樣。 528 00:25:04,990 --> 00:25:08,960 但是,這只是一種美學 細節我們將在不久再見到。 529 00:25:08,960 --> 00:25:09,660 >> 好吧。 530 00:25:09,660 --> 00:25:13,290 所以這使我們回到 這個神秘的尋找程序。 531 00:25:13,290 --> 00:25:15,180 讓我們來實際編寫一些代碼。 532 00:25:15,180 --> 00:25:16,830 現在,你如何去寫代碼? 533 00:25:16,830 --> 00:25:21,310 所有你所擁有的這些年 在Mac或PC,台式機或筆記本電腦, 534 00:25:21,310 --> 00:25:24,520 你確實有能力 開始編寫程序代碼。 535 00:25:24,520 --> 00:25:27,050 但是你可能會丟失 一種特殊類型的程序。 536 00:25:27,050 --> 00:25:28,470 你當然可以編寫代碼。 537 00:25:28,470 --> 00:25:30,740 但是你不一定能, 開箱即, 538 00:25:30,740 --> 00:25:34,210 轉換的源代碼 成目標代碼,0和1 539 00:25:34,210 --> 00:25:35,619 沒有你的電腦是什麼? 540 00:25:35,619 --> 00:25:36,410 聽眾:編譯器。 541 00:25:36,410 --> 00:25:37,630 戴維·J·馬蘭:那麼編譯器吧。 542 00:25:37,630 --> 00:25:39,730 現在,你們中的大多數可能 沒有自己的編譯器, 543 00:25:39,730 --> 00:25:41,259 從來沒有下載的編譯器。 544 00:25:41,259 --> 00:25:44,300 但是你會看到,你可以下載它 象大多數其它的軟件。 545 00:25:44,300 --> 00:25:47,470 在Mac OS中的世界,你可能會 下載或已下載 546 00:25:47,470 --> 00:25:50,437 一些所謂的Xcode或GCC或鏘。 547 00:25:50,437 --> 00:25:52,270 如果你來自 Windows世界,你可能會 548 00:25:52,270 --> 00:25:56,190 下載Visual Studio中, Visual Basic中,環境類的。 549 00:25:56,190 --> 00:25:59,200 有幾十個編譯器 這些天,你可能會使用。 550 00:25:59,200 --> 00:26:01,940 但是它的短這裡 是,這將是一個痛苦 551 00:26:01,940 --> 00:26:04,480 ,坦率地說,一個技術 噩夢數百 552 00:26:04,480 --> 00:26:07,680 的人患有不同 電腦的配置,所有的 553 00:26:07,680 --> 00:26:09,800 配置自己的機器 以完全相同的方式 554 00:26:09,800 --> 00:26:11,700 讓我們都可以在同一頁上。 555 00:26:11,700 --> 00:26:15,240 >> 所以我們,相反,這樣做 在CS50是我們給你 556 00:26:15,240 --> 00:26:18,349 一個標準的環境中, Linux環境下這是 557 00:26:18,349 --> 00:26:20,140 去看看小 這樣的事情。 558 00:26:20,140 --> 00:26:22,980 你會看到更多這樣的 問題1規範, 559 00:26:22,980 --> 00:26:25,330 將上網本星期五晚上去。 560 00:26:25,330 --> 00:26:28,360 >> 而這意味著什麼 就是你從今以後 561 00:26:28,360 --> 00:26:32,060 要能夠 下載並安裝程序 562 00:26:32,060 --> 00:26:33,650 所謂的CS50電器。 563 00:26:33,650 --> 00:26:36,275 而且你要下載和 所謂安裝其他程序 564 00:26:36,275 --> 00:26:40,300 虛擬機管理程序,它僅僅是一個 實現這一目標的假想方式。 565 00:26:40,300 --> 00:26:44,600 無論你擁有Mac還是PC或 Linux的計算機或計算機的Solaris, 566 00:26:44,600 --> 00:26:46,830 或什麼瘋狂的工作 你正在運行的系統, 567 00:26:46,830 --> 00:26:49,820 你要下載一個程序 所謂的虛擬機管理程序這是 568 00:26:49,820 --> 00:26:53,350 要運行CS50 電器在您的計算機上 569 00:26:53,350 --> 00:26:55,430 無論您的操作系統是什麼。 570 00:26:55,430 --> 00:27:00,640 換句話說管理程序轉換 我們的東西,以任何一種語言, 571 00:27:00,640 --> 00:27:03,850 無論你說明 自己的電腦理解。 572 00:27:03,850 --> 00:27:04,962 >> 所以這是一個分層。 573 00:27:04,962 --> 00:27:06,920 再次,這是一種 專題中的電腦 574 00:27:06,920 --> 00:27:08,722 科學,對事物的頂部建設。 575 00:27:08,722 --> 00:27:09,680 你可能有Windows。 576 00:27:09,680 --> 00:27:10,710 你可能有Mac的操作系統。 577 00:27:10,710 --> 00:27:12,960 但下週開始你 要下載 578 00:27:12,960 --> 00:27:14,980 一個免費的軟件 所謂的虛擬機管理程序。 579 00:27:14,980 --> 00:27:17,800 你要下載的一塊 軟件名為CS50設備。 580 00:27:17,800 --> 00:27:21,050 >> 這是要在管理程序上運行, 這是要在計算機上運行。 581 00:27:21,050 --> 00:27:23,030 和最終的結果是 那大家都會 582 00:27:23,030 --> 00:27:26,220 有這樣一個簡單的窗口 這在您的Mac或PC 583 00:27:26,220 --> 00:27:30,160 這給了我們所有的幻想 運行相同的操作系統, 584 00:27:30,160 --> 00:27:32,800 沒有任何其它 您的計算機上的影響。 585 00:27:32,800 --> 00:27:34,870 你可以全屏 它與基本行為 586 00:27:34,870 --> 00:27:37,550 就好像你正在運行的 所謂的Linux操作系統, 587 00:27:37,550 --> 00:27:40,270 這是什麼CS50 設備是基於。 588 00:27:40,270 --> 00:27:42,930 >> 因此,讓我們實際使用此 現在寫一個程序。 589 00:27:42,930 --> 00:27:45,450 你可以寫一個程序 使用Microsoft Word。 590 00:27:45,450 --> 00:27:48,160 你可以寫一個程序 使用文本編輯,或記事本, 591 00:27:48,160 --> 00:27:51,880 或寫字板,或幾乎任何字 你曾經使用過的處理程序。 592 00:27:51,880 --> 00:27:55,174 但現實情況是,你不應該 使用真正的這些程序。 593 00:27:55,174 --> 00:27:57,840 你當然不應該使用 像Microsoft Word中,這 594 00:27:57,840 --> 00:28:01,120 有大膽的面對和斜體,和 大字體和小字體, 595 00:28:01,120 --> 00:28:03,560 因為電腦沒有 關心任何。 596 00:28:03,560 --> 00:28:05,600 所有的電腦 要關心的是 597 00:28:05,600 --> 00:28:09,040 英語就像用C寫的說明 598 00:28:09,040 --> 00:28:12,050 >> 所以我們會做內部 在CS50電器 599 00:28:12,050 --> 00:28:14,290 被自由使用的程序 可用,它的 600 00:28:14,290 --> 00:28:17,360 預先安裝在此 家電,Gedit的叫。 601 00:28:17,360 --> 00:28:22,280 和Gedit是只是一個超級簡單 文本編輯器,像Mac OS的文字編輯, 602 00:28:22,280 --> 00:28:26,200 如Windows記事本,那將 看起來有點像這樣。 603 00:28:26,200 --> 00:28:28,910 >> 因此,讓我們其實並不 看這個幻燈片。 604 00:28:28,910 --> 00:28:32,580 但是,讓我們真正進入 環境本身。 605 00:28:32,580 --> 00:28:36,090 我要繼續前進, 登錄後,在該另一窗口, 606 00:28:36,090 --> 00:28:40,910 我的CS50電器,我已經 我的筆記本電腦預裝了這裡。 607 00:28:40,910 --> 00:28:43,771 >> 請注意,如Windows和 Mac OS中,它有一些菜單。 608 00:28:43,771 --> 00:28:45,520 像Windows卻讓 它在那兒,而不是 609 00:28:45,520 --> 00:28:47,020 的Mac OS中,它把它在那裡。 610 00:28:47,020 --> 00:28:48,930 但現實是它的 所有種相同。 611 00:28:48,930 --> 00:28:50,770 而在這裡是一個整體 一堆軟件。 612 00:28:50,770 --> 00:28:51,770 有Dropbox的。 613 00:28:51,770 --> 00:28:54,780 還有一大堆的配件, 圖形化的程序,我們會 614 00:28:54,780 --> 00:28:56,430 後來在任期問題集使用。 615 00:28:56,430 --> 00:28:59,650 有建在這麼一個Web瀏覽器 這是一個全功能的電腦 616 00:28:59,650 --> 00:29:01,240 裡面的電腦。 617 00:29:01,240 --> 00:29:04,170 >> 不過,我要點擊這個 這裡最左邊的白色圖標, 618 00:29:04,170 --> 00:29:05,890 這對於Gedit的圖標。 619 00:29:05,890 --> 00:29:09,650 而且它會打開一個窗口 有三板給它, 620 00:29:09,650 --> 00:29:12,590 左1,個頂個,和底部的。 621 00:29:12,590 --> 00:29:16,071 >> 現在,在這個右上角一個 我要實際編寫一些代碼。 622 00:29:16,071 --> 00:29:16,820 因此,讓我們做到這一點,。 623 00:29:16,820 --> 00:29:19,040 我要去文件,保存。 624 00:29:19,040 --> 00:29:22,100 你可能永遠不會看到 這個特殊的窗口前。 625 00:29:22,100 --> 00:29:23,620 但是,這是像Mac OS或Windows。 626 00:29:23,620 --> 00:29:25,490 這只是一個窗口 所有的文件夾 627 00:29:25,490 --> 00:29:27,290 我有這台電腦裡面。 628 00:29:27,290 --> 00:29:30,320 >> 我要去拯救 該文件的hello.c。 629 00:29:30,320 --> 00:29:32,690 我要去 未來,然後單擊保存。 630 00:29:32,690 --> 00:29:36,364 現在發現我有一個標籤 在左上叫hello.c的。 631 00:29:36,364 --> 00:29:38,280 所以,很可能 熟悉即使你不 632 00:29:38,280 --> 00:29:40,240 之前使用這個特定的程序。 633 00:29:40,240 --> 00:29:44,890 >> 現在,我要在那些輸入 命令相當神秘的序列 634 00:29:44,890 --> 00:29:46,360 我們剛才看到的。 635 00:29:46,360 --> 00:29:49,330 包括標準I / O.h。 636 00:29:49,330 --> 00:29:50,600 更多關於不久。 637 00:29:50,600 --> 00:29:55,670 智力主要無效,左大 撐,收花括號。 638 00:29:55,670 --> 00:30:01,570 然後還有裡面我覺得是 在那裡我們有“世界你好”,分號。 639 00:30:01,570 --> 00:30:03,100 現在保存。 640 00:30:03,100 --> 00:30:08,780 >> 因此,這是用C語言編寫的程序, 寫入,因此,在源代碼。 641 00:30:08,780 --> 00:30:10,720 但我不能只是運行此程序。 642 00:30:10,720 --> 00:30:13,390 我有點想翻番 點擊一個圖標的地方, 643 00:30:13,390 --> 00:30:16,390 但沒有圖標存在其他 比源代碼文件。 644 00:30:16,390 --> 00:30:20,359 什麼,又是過程,現在 我需要通過運行這個文件? 645 00:30:20,359 --> 00:30:21,150 聽眾:編譯器。 646 00:30:21,150 --> 00:30:22,399 戴維·J·馬蘭:所以編譯器。 647 00:30:22,399 --> 00:30:24,890 因此,在不同的計算機上你 以不同的方式做到這一點。 648 00:30:24,890 --> 00:30:27,480 不過,我們已經在這裡做了 在CS50電器這 649 00:30:27,480 --> 00:30:31,260 代表你怎麼可能 做到這一點在許多不同的系統, 650 00:30:31,260 --> 00:30:34,036 是,我只是要 運行一個叫做make命令。 651 00:30:34,036 --> 00:30:35,660 並作出簡直是要做到這一點。 652 00:30:35,660 --> 00:30:36,640 讓我的程序。 653 00:30:36,640 --> 00:30:39,060 >> 因此,請打算 運行一個編譯器給我。 654 00:30:39,060 --> 00:30:42,160 和該程序的名稱 我想提出的是你好。 655 00:30:42,160 --> 00:30:43,510 現在提出的是一個程序。 656 00:30:43,510 --> 00:30:47,170 並足以聰明 意識到如果我說讓你好, 657 00:30:47,170 --> 00:30:50,980 它會自動查找 一個名為hello.c的文件 658 00:30:50,980 --> 00:30:53,420 只是因為這是 這樣它的配置。 659 00:30:53,420 --> 00:31:00,300 >> 所以,當我打到現在進入這裡,這 瘋狂神秘的線剛剛被處決。 660 00:31:00,300 --> 00:31:02,720 相信我,才 長,在短短幾天, 661 00:31:02,720 --> 00:31:05,590 你就會明白什麼都 那廢話手段。 662 00:31:05,590 --> 00:31:11,150 但現在,只知道做 觸發執行一個編譯器的。 663 00:31:11,150 --> 00:31:13,290 換句話說,它發現 編譯器在我的電腦上 664 00:31:13,290 --> 00:31:14,820 這就是預裝 在CS50電器 665 00:31:14,820 --> 00:31:16,560 我們會交給你的習題集1。 666 00:31:16,560 --> 00:31:20,990 它然後把hello.c中的 輸入和明顯產生 667 00:31:20,990 --> 00:31:23,040 0和1的輸出。 668 00:31:23,040 --> 00:31:29,410 >> 並且在默認情況下它的作用是它可以節省 這些0和1在一個文件名為hello。 669 00:31:29,410 --> 00:31:33,180 雖然這個語法也可能 是新的給你,只是說點 670 00:31:33,180 --> 00:31:37,110 你好削減將是該 指我運行這個程序。 671 00:31:37,110 --> 00:31:40,360 >> 對於現在和至少一對夫婦 週的,幾乎所有的節目 672 00:31:40,360 --> 00:31:44,230 我們寫將要在 黑白文本窗口。 673 00:31:44,230 --> 00:31:47,006 沒有鼠標,沒有點擊, 沒有窗戶,沒有圖標。 674 00:31:47,006 --> 00:31:49,630 我們要保持簡單 並專注於基本思想 675 00:31:49,630 --> 00:31:52,490 一開始之前,我們得到的東西 更高的水平,例如, 676 00:31:52,490 --> 00:31:56,410 喜歡打出來的遊戲,我們聊 關於上週的第一場演講。 677 00:31:56,410 --> 00:32:00,820 >> 所以,當我打在這裡輸入,它的 在文本僅相當於環境 678 00:32:00,820 --> 00:32:03,272 要雙擊名為hello的圖標。 679 00:32:03,272 --> 00:32:05,480 你還指望意志 發生時,我按下回車鍵呢? 680 00:32:05,480 --> 00:32:07,120 >> 聽眾:這將打印的“hello world”。 681 00:32:07,120 --> 00:32:10,000 >> 戴維·J·馬蘭:希望 將打印的“hello world”。 682 00:32:10,000 --> 00:32:11,370 事實上的確如此。 683 00:32:11,370 --> 00:32:13,690 現在,有過一些 在這裡神秘的語法。 684 00:32:13,690 --> 00:32:15,950 讓我們倒帶僅售 一會兒,看看我們 685 00:32:15,950 --> 00:32:19,530 無法啟動只是推斷 修修補補,嘗試和失敗, 686 00:32:19,530 --> 00:32:21,130 至於什麼是怎麼回事。 687 00:32:21,130 --> 00:32:23,609 如果我擺脫了反斜杠的n? 688 00:32:23,609 --> 00:32:25,650 現在,你們中的一些誰已經 之前大概編程 689 00:32:25,650 --> 00:32:27,054 立刻知道這意味著什麼。 690 00:32:27,054 --> 00:32:29,220 但是,對於那些你們誰已經 以前從來沒有編程, 691 00:32:29,220 --> 00:32:34,052 至少覺得自己是怎麼回事 當我重新運行該程序更改? 692 00:32:34,052 --> 00:32:37,010 所以,我要下來回到我 小黑白窗口, 693 00:32:37,010 --> 00:32:39,290 是窗口,其中 我可以編譯的。 694 00:32:39,290 --> 00:32:41,130 我要重新編譯打招呼。 695 00:32:41,130 --> 00:32:43,520 我們將看到相同的 命令的神秘序列。 696 00:32:43,520 --> 00:32:45,719 而我會做點斜線打招呼。 697 00:32:45,719 --> 00:32:48,260 而現在的人,如果你願意, 誰從來沒有編程之前, 698 00:32:48,260 --> 00:32:49,770 可能是什麼不同呢? 699 00:32:49,770 --> 00:32:50,020 是啊。 700 00:32:50,020 --> 00:32:51,840 >> 聽眾:它不會停止 印刷的“hello world”。 701 00:32:51,840 --> 00:32:52,660 >> 戴維·J·馬蘭:這是怎麼回事to--遺憾? 702 00:32:52,660 --> 00:32:54,210 >> 聽眾:它不會停止打印呢? 703 00:32:54,210 --> 00:32:55,810 >> 戴維·J·馬蘭:不會 停止打印的“hello world”。 704 00:32:55,810 --> 00:32:56,560 所以不是一個壞主意。 705 00:32:56,560 --> 00:32:58,633 其他的想法? 706 00:32:58,633 --> 00:32:59,132 是啊。 707 00:32:59,132 --> 00:33:00,060 >> 聽眾:錯誤訊息? 708 00:33:00,060 --> 00:33:01,750 >> 戴維·J·馬蘭:錯誤 消息確定,可能是。 709 00:33:01,750 --> 00:33:02,250 還有什麼? 710 00:33:02,250 --> 00:33:05,479 聽眾:它可能打印 支架用分號呢? 711 00:33:05,479 --> 00:33:08,270 戴維·J·馬蘭:可能打印 支架以分號為好。 712 00:33:08,270 --> 00:33:11,950 所以也許這反斜線然後是一些 樣的同時終止這很重要。 713 00:33:11,950 --> 00:33:14,860 任何其他的想法? 714 00:33:14,860 --> 00:33:16,412 >> 因此,所有的好點子。 715 00:33:16,412 --> 00:33:18,370 而事實上,這是怎麼回事 為一個錯誤信息。 716 00:33:18,370 --> 00:33:20,400 這可能是最有可能的 是在一般的答案 717 00:33:20,400 --> 00:33:22,420 在接下來的幾個星期 當我們學會了這裡的代碼。 718 00:33:22,420 --> 00:33:27,680 >> 但現在記得的電腦 只會做你告訴他們做什麼。 719 00:33:27,680 --> 00:33:30,400 就像可笑的花生 醬和果凍的例子。 720 00:33:30,400 --> 00:33:33,860 我們人類的電腦只應該 做你告訴他們做什麼。 721 00:33:33,860 --> 00:33:36,250 所以在這種情況下,如果 不要告訴電腦 722 00:33:36,250 --> 00:33:41,190 來移動閃爍的光標移動到 下一行,它不會做。 723 00:33:41,190 --> 00:33:45,390 所以,當我運行這個程序 現在,發現其中的差別。 724 00:33:45,390 --> 00:33:46,900 >> 看起來像一個錯誤。 725 00:33:46,900 --> 00:33:49,190 這是一個審美的錯誤,也許是。 726 00:33:49,190 --> 00:33:53,310 但是,什麼是這個不同 輸出與最後一個明顯? 727 00:33:53,310 --> 00:33:53,810 是啊。 728 00:33:53,810 --> 00:33:54,920 >> 聽眾:它沒有做新的生產線。 729 00:33:54,920 --> 00:33:56,586 >> 戴維·J·馬蘭:它沒有做新的生產線。 730 00:33:56,586 --> 00:33:58,740 現在,你們誰 有可能做的網頁 731 00:33:58,740 --> 00:34:01,910 以前,你可能知道的 BR標記或段落標記, 732 00:34:01,910 --> 00:34:03,120 非常相似的精神。 733 00:34:03,120 --> 00:34:06,680 Web瀏覽器會忽略你,直到 你告訴它該怎麼做。 734 00:34:06,680 --> 00:34:10,020 同樣的,就像C語言寫成只 會做你告訴它的事情。 735 00:34:10,020 --> 00:34:12,730 >> 這樣的理由是 所有的這些例子中, 736 00:34:12,730 --> 00:34:15,350 迄今為止,已經種 隨便過這樣的反斜線 737 00:34:15,350 --> 00:34:18,560 在那裡,這是手段 通過它,你表達你自己 738 00:34:18,560 --> 00:34:21,380 作為新行字符,可以這麼說。 739 00:34:21,380 --> 00:34:26,219 您還可以種體會,也許, 這看起來有點傻 740 00:34:26,219 --> 00:34:27,070 如果沒有別的。 741 00:34:27,070 --> 00:34:29,150 如果我想要一個新的生產線,只是 按Enter鍵,然後種 742 00:34:29,150 --> 00:34:32,219 的屠宰一樣,該代碼 真的不應該擦你以正確的方式。 743 00:34:32,219 --> 00:34:33,830 即使你不 真正關心在這一點上, 744 00:34:33,830 --> 00:34:35,830 你會發現, 這不是一個特別 745 00:34:35,830 --> 00:34:37,870 好看的一段代碼。 746 00:34:37,870 --> 00:34:39,969 >> 還等什麼世界 決定年前 747 00:34:39,969 --> 00:34:43,420 當你想要把 光標移動到一個新行明確, 748 00:34:43,420 --> 00:34:46,332 你必須明確地說, 新的生產線,反斜線ñ。 749 00:34:46,332 --> 00:34:48,040 而且還有一些其他的 這樣的符號。 750 00:34:48,040 --> 00:34:50,719 但現在我們只 專注於反斜線ñ。 751 00:34:50,719 --> 00:34:53,790 >> 現在,讓我們把節目 更有趣一點。 752 00:34:53,790 --> 00:34:59,200 我要繼續前進, 此時打開一個新的文件。 753 00:34:59,200 --> 00:35:02,520 我要保存此為hello-1.C。 754 00:35:02,520 --> 00:35:05,540 而就踢,我要 去把它放到我的Dropbox文件夾。 755 00:35:05,540 --> 00:35:09,030 >> 正如你將在CS50見 對於家電文檔, 756 00:35:09,030 --> 00:35:11,210 本週晚些時候的問題 設置1,我們會鼓勵 757 00:35:11,210 --> 00:35:13,230 您使用的Dropbox或 一些等價的服務, 758 00:35:13,230 --> 00:35:15,430 因為那時所有代碼的 將被自動備份。 759 00:35:15,430 --> 00:35:17,830 因此,這就是為什麼我 去到這個文件夾在這裡。 760 00:35:17,830 --> 00:35:20,230 >> 現在我會寫一 略有不同的程序。 761 00:35:20,230 --> 00:35:24,740 包括標準I / O.h,INT主要作廢。 762 00:35:24,740 --> 00:35:29,660 然後在這裡的printf,你好世界, 這也正是像以前一樣。 763 00:35:29,660 --> 00:35:32,450 >> 但現在我想打印的東西 這是一個有點不同。 764 00:35:32,450 --> 00:35:34,800 我想打印出來, 說,“你好,大衛。” 765 00:35:34,800 --> 00:35:37,590 好吧,所以很明顯, 它應該有希望 766 00:35:37,590 --> 00:35:40,360 是,如果我重新編譯的情況下 這個程序,重新運行它, 767 00:35:40,360 --> 00:35:41,840 它會說“你好,戴維。” 768 00:35:41,840 --> 00:35:45,160 >> 但是,如果我想要的東西介紹 這種類型的變量, 769 00:35:45,160 --> 00:35:49,240 容器的概念,是怎麼回事 存儲的D-A-V-I-D,而不是硬編碼 770 00:35:49,240 --> 00:35:50,600 到我的程序。 771 00:35:50,600 --> 00:35:53,430 好吧,如果我開始了 做這樣的事情? 772 00:35:53,430 --> 00:35:57,120 >> 字符串s,所以這是一個變量。 773 00:35:57,120 --> 00:36:00,250 如果你想要一個字符串, 又名一個詞或短語。 774 00:36:00,250 --> 00:36:03,485 字符的順序是什麼 我們在編程調用的字符串。 775 00:36:03,485 --> 00:36:06,610 我們只是去一般的呼叫 它s,因為它是一個不錯的簡單名稱。 776 00:36:06,610 --> 00:36:08,010 不過,我可以把它叫做什麼。 777 00:36:08,010 --> 00:36:12,920 >> 我要說的字符串s等於 報價引文結束,“大衛,”分號。 778 00:36:12,920 --> 00:36:18,330 現在我想插入 D-A-V-I-D成什麼樣,我打印。 779 00:36:18,330 --> 00:36:23,720 和我們之前看到的傳情 對一些特殊的語法屏幕 780 00:36:23,720 --> 00:36:26,050 這使我們能夠 替代的價值。 781 00:36:26,050 --> 00:36:29,250 什麼是特殊 符號幾張幻燈片前? 782 00:36:29,250 --> 00:36:30,040 >> 所以個百分點。 783 00:36:30,040 --> 00:36:33,830 當時它是百分比 d為十進制數。 784 00:36:33,830 --> 00:36:35,850 這不似乎真的與此有關。 785 00:36:35,850 --> 00:36:38,650 原來那裡的 另一個百分號, 786 00:36:38,650 --> 00:36:42,810 這是百分之秒,它代表 一個佔位符的字符串。 787 00:36:42,810 --> 00:36:49,350 >> 所以,現在,很簡單,我 要去使餵-1, 788 00:36:49,350 --> 00:36:54,210 因為這個文件就是所謂的 HELLO-1.C,然後按Enter鍵。 789 00:36:54,210 --> 00:36:56,230 我搞砸了。 790 00:36:56,230 --> 00:36:57,394 這是怎麼回事? 791 00:36:57,394 --> 00:37:00,560 好了,這裡就是我們要開始 認識到我們在這個命令 792 00:37:00,560 --> 00:37:02,810 線環境中,這個 純文字環境。 793 00:37:02,810 --> 00:37:06,114 有圖標上單擊鼠標無 像文件夾現在。 794 00:37:06,114 --> 00:37:07,280 和剛才想回來。 795 00:37:07,280 --> 00:37:10,740 在哪個文件夾沒有我說的 我救了我的代碼? 796 00:37:10,740 --> 00:37:11,657 所以Dropbox文件夾。 797 00:37:11,657 --> 00:37:12,989 本來叫什麼。 798 00:37:12,989 --> 00:37:14,530 但它發生在被稱為Dropbox的。 799 00:37:14,530 --> 00:37:18,380 所以,我莫名其妙地需要雙擊 即,為了得到收存箱文件夾 800 00:37:18,380 --> 00:37:21,657 然後送我 代碼名為hello-1.C。 801 00:37:21,657 --> 00:37:24,490 其實,讓我繼續前進,並盡量減少 這個窗口只是一瞬間。 802 00:37:24,490 --> 00:37:27,560 就像Windows和Mac OS, 有在Linux下的文件夾。 803 00:37:27,560 --> 00:37:29,410 有在CS50電器夾。 804 00:37:29,410 --> 00:37:32,380 這只是我們馬上圍 自己這個文本的環境。 805 00:37:32,380 --> 00:37:34,700 >> 但是,如果我雙擊 對Dropbox的,注意有 806 00:37:34,700 --> 00:37:37,210 是我想對文件進行編譯。 807 00:37:37,210 --> 00:37:41,430 但我需要這個黑白 終端窗口,可以這麼說。 808 00:37:41,430 --> 00:37:45,750 但是,我所需要的,因此,移動 進入該文件夾或目錄。 809 00:37:45,750 --> 00:37:48,290 所以稍微晦澀難懂,但 你會習慣這一點。 810 00:37:48,290 --> 00:37:50,430 >> 在Linux的世界, 這又是操作 811 00:37:50,430 --> 00:37:54,860 系統我們對CS50的內部運行 電器,有一個叫做cd命令。 812 00:37:54,860 --> 00:37:58,310 這意味著我可以做的光盤,空間,Dropbox的。 813 00:37:58,310 --> 00:37:59,900 CD,改變目錄。 814 00:37:59,900 --> 00:38:00,400 右。 815 00:38:00,400 --> 00:38:02,890 早在一天,當人們 發明了計算機和操作系統 816 00:38:02,890 --> 00:38:05,806 像這樣的系統,他們想 輸入最少的按鍵可能。 817 00:38:05,806 --> 00:38:08,760 所以,最簡單的方式說 更改目錄為光盤。 818 00:38:08,760 --> 00:38:13,910 >> 所以,如果我打的CD,Dropbox的空間, 察覺到曾在這裡改變。 819 00:38:13,910 --> 00:38:16,480 括號內的 該設備是一種 820 00:38:16,480 --> 00:38:19,360 humoring我和 提醒我我在哪裡。 821 00:38:19,360 --> 00:38:21,480 所以打開的文件夾是Dropbox的。 822 00:38:21,480 --> 00:38:24,950 如果我現在輸入ls的 列表中,再次簡潔, 823 00:38:24,950 --> 00:38:27,540 因為人們不想 在當天L-I-S-T型背。 824 00:38:27,540 --> 00:38:29,300 因此,他們反而使得LS上。 825 00:38:29,300 --> 00:38:30,110 >> 輸入。 826 00:38:30,110 --> 00:38:35,740 請注意,我看到兩件事情,HELLO-1.C, 然後這個隱蔽的事情,源1米。 827 00:38:35,740 --> 00:38:38,310 這只是我的方式說 源代碼1週星期一。 828 00:38:38,310 --> 00:38:42,020 這是我從下載的文件夾 CS50的網站,我今天早些時候提出 829 00:38:42,020 --> 00:38:43,990 而只是把它變成了 家電提前。 830 00:38:43,990 --> 00:38:47,550 >> 但現在我們唯一 在乎的是使這一計劃。 831 00:38:47,550 --> 00:38:50,440 所以,當我鍵入make HELLO-1,回車。 832 00:38:50,440 --> 00:38:51,320 該死的。 833 00:38:51,320 --> 00:38:53,060 出事了。 834 00:38:53,060 --> 00:38:54,580 因此,讓我們取笑這個分開。 835 00:38:54,580 --> 00:38:58,489 而不幸的是,這是哪裡的東西 變得有點緊張,在第一, 836 00:38:58,489 --> 00:39:00,280 至少,如果你已經 以前從來沒有編程。 837 00:39:00,280 --> 00:39:00,980 >> 我的上帝。 838 00:39:00,980 --> 00:39:04,990 我寫了兩行程序,並 我有四根線的錯誤。 839 00:39:04,990 --> 00:39:07,180 那麼,什麼是怎麼回事。 840 00:39:07,180 --> 00:39:11,370 首先總是向後滾動 並發現第一個錯誤訊息, 841 00:39:11,370 --> 00:39:15,730 因為通常情況下編譯器只 弄糊塗了你和我。 842 00:39:15,730 --> 00:39:17,000 編譯器是非常愚蠢的。 843 00:39:17,000 --> 00:39:18,360 他們只會做什麼 你告訴他們做什麼。 844 00:39:18,360 --> 00:39:21,484 如果你迷惑他們,他們只是 要種丟了手 845 00:39:21,484 --> 00:39:25,010 也許投入更多的錯誤信息 比實際上是相關的。 846 00:39:25,010 --> 00:39:26,380 >> 因此,讓我們來看看第一個。 847 00:39:26,380 --> 00:39:27,540 超級神秘的第一位。 848 00:39:27,540 --> 00:39:31,050 但注意,這裡的名字 文件中,我搞砸了明顯。 849 00:39:31,050 --> 00:39:36,570 結腸5,​​結腸5只指 第5行的第五個字符。 850 00:39:36,570 --> 00:39:39,760 因此,字符列第五, 如果你願意,錯誤。 851 00:39:39,760 --> 00:39:41,870 使用未聲明的標識符字符串。 852 00:39:41,870 --> 00:39:43,120 您的意思是標準N? 853 00:39:43,120 --> 00:39:44,850 >> 不,我的意思是字符串。 854 00:39:44,850 --> 00:39:47,640 然後它的種 複製和粘貼 855 00:39:47,640 --> 00:39:50,700 我打字真的畫我 注意,我搞砸了。 856 00:39:50,700 --> 00:39:54,260 所以由於某些原因C, 或者至少編譯器 857 00:39:54,260 --> 00:39:56,470 不理解的詞串。 858 00:39:56,470 --> 00:39:57,890 那是因為我們和好了。 859 00:39:57,890 --> 00:40:01,440 所以字符串不存在 在C CS50是什麼呢, 860 00:40:01,440 --> 00:40:03,380 在最初的幾個星期 唯一的類, 861 00:40:03,380 --> 00:40:05,700 為我們提供一些培訓 輪子,可以這麼說。 862 00:40:05,700 --> 00:40:11,160 我們把這些輔助輪 所謂CS50.h.一個特殊的文件裡 863 00:40:11,160 --> 00:40:14,970 >> 因此,這是兩種文件的第二 名字中的點h上顯然結束。 864 00:40:14,970 --> 00:40:16,300 讓我們倒帶。 865 00:40:16,300 --> 00:40:19,360 printf的是一個語句或函數 這顯然是打印的東西 866 00:40:19,360 --> 00:40:20,580 到屏幕上。 867 00:40:20,580 --> 00:40:23,470 但是你沒看到我 實現printf的,正確的。 868 00:40:23,470 --> 00:40:26,360 有人年前實現的printf。 869 00:40:26,360 --> 00:40:30,420 在什麼樣的文件,你會賭他 (或她)把實施 870 00:40:30,420 --> 00:40:34,270 在printf的,對於printf的代碼? 871 00:40:34,270 --> 00:40:36,860 >> 在一個叫做標準的I / O.h文件。 872 00:40:36,860 --> 00:40:39,930 事實上,它可能是在 兩個文件,標準I / O.h, 873 00:40:39,930 --> 00:40:42,650 它代表頭 文件和標準I / O.c, 874 00:40:42,650 --> 00:40:44,060 它代表的C源代碼。 875 00:40:44,060 --> 00:40:48,220 於是,他或她幾年前屁股 他們寫道:到該文件中的代碼 876 00:40:48,220 --> 00:40:51,240 讓我們這樣的人 年後,可以將其包含, 877 00:40:51,240 --> 00:40:53,040 可以這麼說,在我們自己的節目。 878 00:40:53,040 --> 00:40:56,320 >> 事實上,這就是井號 其次是字,包括做。 879 00:40:56,320 --> 00:41:00,250 它看起來在本地硬盤驅動器上, 發現所謂的標準I / O.h文件, 880 00:41:00,250 --> 00:41:03,840 然後有效地複製和 我自己的文件裡粘貼了。 881 00:41:03,840 --> 00:41:07,210 所以現在我的程序知道 如何打印到屏幕上。 882 00:41:07,210 --> 00:41:11,120 >> 因此,通過這種邏輯,其中 是字符串定義? 883 00:41:11,120 --> 00:41:12,260 >> 聽眾:CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> 戴維·J·馬蘭:CS50.h. 885 00:41:13,290 --> 00:41:15,540 事實上,這就是我們, 核心員工,都做了。 886 00:41:15,540 --> 00:41:19,590 我們已經發明了一些數據類型, 可以這麼說,就像一個字符串, 887 00:41:19,590 --> 00:41:22,370 除了那些你 免費獲得,如一個int。 888 00:41:22,370 --> 00:41:26,010 我們會看到其他類似一個char 一個字符和幾個。 889 00:41:26,010 --> 00:41:30,670 裡面的CS50.h顯然是 至少某些提字符串。 890 00:41:30,670 --> 00:41:34,980 >> 所以,現在讓我先走 並重新運行化妝HELLO-1。 891 00:41:34,980 --> 00:41:37,100 我會再次放大,穿過我的手指。 892 00:41:37,100 --> 00:41:41,370 現在已經做了一個 改變我固定的大多數事情。 893 00:41:41,370 --> 00:41:42,100 但是,該死的。 894 00:41:42,100 --> 00:41:44,290 更多百分比比數據參數。 895 00:41:44,290 --> 00:41:45,980 我做了什麼錯了這一次? 896 00:41:45,980 --> 00:41:47,420 >> 因此,它仍然是相當神秘的。 897 00:41:47,420 --> 00:41:51,560 但這個錯誤是 7號線和21字符。 898 00:41:51,560 --> 00:41:53,880 因此,讓我們去看看在這裡。 899 00:41:53,880 --> 00:41:55,350 這是一個有點微妙。 900 00:41:55,350 --> 00:41:59,167 但是如果你考慮一下 這裡的基本思想是, 901 00:41:59,167 --> 00:42:00,500 或許我們可以這樣取笑分開。 902 00:42:00,500 --> 00:42:02,300 >> 這樣的printf是函數名。 903 00:42:02,300 --> 00:42:04,960 括號,迄今為止,是 就像我們把各地 904 00:42:04,960 --> 00:42:07,005 我們傳遞的東西 作為輸入的函數。 905 00:42:07,005 --> 00:42:08,921 沒事,只是一個 任意人會議。 906 00:42:08,921 --> 00:42:09,919 使用括號。 907 00:42:09,919 --> 00:42:12,460 裡面的括號 我們已經把雙引號, 908 00:42:12,460 --> 00:42:14,810 然後像一個字符串“Hello World”。 909 00:42:14,810 --> 00:42:18,160 >> 但是在前面的例子很 簡單地做我們來看看有划痕。 910 00:42:18,160 --> 00:42:22,590 我們有百分之D,還有什麼 是那些括號內 911 00:42:22,590 --> 00:42:23,730 我叫了口頭上? 912 00:42:23,730 --> 00:42:24,230 是啊。 913 00:42:24,230 --> 00:42:28,166 >> 聽眾:所以這是你正在做什麼 [聽不清],從[聽不清] 914 00:42:28,166 --> 00:42:30,200 這是什麼[聽不清]? 915 00:42:30,200 --> 00:42:31,200 戴維·J·馬蘭:沒錯。 916 00:42:31,200 --> 00:42:32,700 因此,我們有百分之ð。 917 00:42:32,700 --> 00:42:36,620 但是,我們不得不關閉 引號,頓號,計數器。 918 00:42:36,620 --> 00:42:37,120 右。 919 00:42:37,120 --> 00:42:40,680 我們規定我們想要的 做作為佔位符。 920 00:42:40,680 --> 00:42:44,621 所以,我什麼都做的,是 逗號,你想要什麼我把? 921 00:42:44,621 --> 00:42:45,120 聽眾:S。 922 00:42:45,120 --> 00:42:46,828 戴維·J·馬蘭:S, 因為本例中為 923 00:42:46,828 --> 00:42:48,700 是在存儲容器的名稱。 924 00:42:48,700 --> 00:42:50,180 那就是玻璃碗的名稱。 925 00:42:50,180 --> 00:42:53,610 而在此之前它是反在那 簡單的刮例子中,我們看著。 926 00:42:53,610 --> 00:42:56,630 所以,現在已經做了兩個 變化,讓我放大 927 00:42:56,630 --> 00:42:59,800 並嘗試再次到 編譯這個程序。 928 00:42:59,800 --> 00:43:01,596 >> 現在我看到神秘的線。 929 00:43:01,596 --> 00:43:03,470 但是,這實際上是 編譯器的名稱。 930 00:43:03,470 --> 00:43:04,886 鐺是編譯器的名稱。 931 00:43:04,886 --> 00:43:07,100 讓剛剛救了我 有史以來頭痛 932 00:43:07,100 --> 00:43:09,830 打字那麼久瘋狂的命令了。 933 00:43:09,830 --> 00:43:14,900 所以,現在如果我不點斜線HELLO-1, 我看到“Hello,大衛。” 934 00:43:14,900 --> 00:43:16,450 >> 漂亮給人留下深刻印象,不過,對吧? 935 00:43:16,450 --> 00:43:18,158 我們可以做 這個有很多更簡單 936 00:43:18,158 --> 00:43:20,940 而不談變量 和CS50.h和所有的。 937 00:43:20,940 --> 00:43:23,080 因此,讓我們使它成為一個 更有趣一點。 938 00:43:23,080 --> 00:43:31,010 >> 除了CS50.h, 有東西像字符串 939 00:43:31,010 --> 00:43:34,550 宣布,該CS50庫 也有一些功能。 940 00:43:34,550 --> 00:43:38,520 所以就像幾年前,有人寫 printf和把它在標準I / O.h 941 00:43:38,520 --> 00:43:39,530 和一些其他文件。 942 00:43:39,530 --> 00:43:44,010 >> 我們的CS50的工作人員,寫了一個函數 所謂的getchar,GetDouble,GetFloat, 943 00:43:44,010 --> 00:43:47,610 調用getInt,GetLongLong,GetString的, 我們把這些文件裡面 944 00:43:47,610 --> 00:43:49,890 所謂CS50.h和CS50.c. 945 00:43:49,890 --> 00:43:51,880 我們把他們的內部 的CS50設備。 946 00:43:51,880 --> 00:43:53,880 而人們也可以 如果他們在網上進行下載 947 00:43:53,880 --> 00:43:55,880 希望把他們在他們的 自己的電腦也是如此。 948 00:43:55,880 --> 00:44:00,880 這就是說,我們已經創建 即獲得來自用戶的輸入的功能。 949 00:44:00,880 --> 00:44:02,930 我不知道,什麼都 這些數據類型包括。 950 00:44:02,930 --> 00:44:06,490 調用getInt是一種簡單的,像 從用戶得到某種方式的整數。 951 00:44:06,490 --> 00:44:09,980 和GetString可能喜歡弄 一個字或從用戶的句子。 952 00:44:09,980 --> 00:44:11,770 >> 因此,讓我們著眼於這一點。 953 00:44:11,770 --> 00:44:14,710 我要去回 家電,我要繼續前進 954 00:44:14,710 --> 00:44:20,790 並保存此文件,姑且稱之為 它HELLO-2.C我的第二個版本。 955 00:44:20,790 --> 00:44:23,030 讓我們做一些改動。 956 00:44:23,030 --> 00:44:25,800 >> 這一次,而不是 硬編碼大衛,這 957 00:44:25,800 --> 00:44:29,120 做一個令人難以置信的一致 但給人留下深刻印象的程序, 958 00:44:29,120 --> 00:44:32,640 如果我不是這樣做的GetString? 959 00:44:32,640 --> 00:44:35,660 現在可以看到的GetString 有一個開放的括號, 960 00:44:35,660 --> 00:44:38,500 封閉的括號,因為 它不需要任何輸入。 961 00:44:38,500 --> 00:44:40,850 這只是去給 一個字符串從用戶。 962 00:44:40,850 --> 00:44:42,460 >> 現在其他的語法詞。 963 00:44:42,460 --> 00:44:45,439 分號剛剛結束的代碼行。 964 00:44:45,439 --> 00:44:46,730 你並不需要它們無處不在。 965 00:44:46,730 --> 00:44:48,896 但是,這只是意味著我 與這行代碼完成。 966 00:44:48,896 --> 00:44:51,080 讓我移動到另一個 語句或函數。 967 00:44:51,080 --> 00:44:53,010 字符串聲明了一個變量。 968 00:44:53,010 --> 00:44:55,920 串好像是說 給我一碗,請。 969 00:44:55,920 --> 00:44:57,940 並讓我把一個字符串在裡面。 970 00:44:57,940 --> 00:44:59,430 >> 而現在上了等號。 971 00:44:59,430 --> 00:45:03,510 什麼是等號 基本上等同於? 972 00:45:03,510 --> 00:45:04,500 >> 聽眾:分配。 973 00:45:04,500 --> 00:45:06,190 >> 戴維·J·馬蘭:是的,分配的值。 974 00:45:06,190 --> 00:45:09,872 所以,如果我,例如,呼叫 這個功能的GetString, 975 00:45:09,872 --> 00:45:12,830 我們會在一個時刻,我們來看看 會提示輸入字符串的用戶。 976 00:45:12,830 --> 00:45:17,810 這就好比讓那麼我寫 D-A-V-I-D在一張紙上。 977 00:45:17,810 --> 00:45:21,060 當我說的字符串 s等於GetString的, 978 00:45:21,060 --> 00:45:24,140 平等並不真正意味著 相當於C語言編程。 979 00:45:24,140 --> 00:45:27,880 這意味著從右側分配 右手側到左手側。 980 00:45:27,880 --> 00:45:29,510 >> 所以,我已經得到了一個字符串。 981 00:45:29,510 --> 00:45:32,785 和等號手段把它 在存儲容器稱為第 982 00:45:32,785 --> 00:45:36,730 再通過這關要 printf的實際做它的事。 983 00:45:36,730 --> 00:45:39,790 >> 所以,最終的結果則是怎麼回事 看起來有點不同。 984 00:45:39,790 --> 00:45:40,840 讓我們不要讓HELLO-2。 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 或者可以工作。 987 00:45:45,260 --> 00:45:46,450 你下沿。 988 00:45:46,450 --> 00:45:47,940 讓HELLO-2的工作。 989 00:45:47,940 --> 00:45:52,640 點斜線HELLO-2,回車。 990 00:45:52,640 --> 00:45:54,620 >> 我似乎有無限 環什麼的。 991 00:45:54,620 --> 00:45:55,453 什麼也沒有發生。 992 00:45:55,453 --> 00:45:56,134 為什麼呢? 993 00:45:56,134 --> 00:45:57,805 >> 聽眾:它使得一個無限循環。 994 00:45:57,805 --> 00:45:59,430 戴維·J·馬蘭:這是一個死循環。 995 00:45:59,430 --> 00:46:02,710 種它等著我 實際上它提供了一些信息。 996 00:46:02,710 --> 00:46:05,800 因此,讓我繼續前進,並鍵入 在大衛,然後按Enter鍵。 997 00:46:05,800 --> 00:46:07,230 而現在它說:“你好,大衛。” 998 00:46:07,230 --> 00:46:09,040 如果我再次運行它。 999 00:46:09,040 --> 00:46:11,530 讓我們輸入羅布,“你好,羅布。” 1000 00:46:11,530 --> 00:46:13,900 >> 現在,這是最糟糕的 用戶界面不斷。 1001 00:46:13,900 --> 00:46:16,110 用戶顯然 應該知道該怎麼做。 1002 00:46:16,110 --> 00:46:17,120 但不管。 1003 00:46:17,120 --> 00:46:19,570 使用這些相同的建築 就像在擦除塊 1004 00:46:19,570 --> 00:46:24,980 我們可以解決這個問題,說 像你的名字嗎,結腸癌, 1005 00:46:24,980 --> 00:46:27,820 空間,封閉報價,接近 括號,分號。 1006 00:46:27,820 --> 00:46:30,680 如此反复了很多 愚蠢的語法。 1007 00:46:30,680 --> 00:46:34,040 >> 但是請注意,我只是增加了一個 拼圖上面這一個 1008 00:46:34,040 --> 00:46:35,280 以上這一個。 1009 00:46:35,280 --> 00:46:38,870 所以,現在如果我重新運行此,HELLO-2,回車。 1010 00:46:38,870 --> 00:46:41,180 等待一分鐘。 1011 00:46:41,180 --> 00:46:41,830 怎麼了? 1012 00:46:41,830 --> 00:46:43,570 它不表現任何不同。 1013 00:46:43,570 --> 00:46:44,200 是啊。 1014 00:46:44,200 --> 00:46:46,010 >> 聽眾:你沒有運行make了。 1015 00:46:46,010 --> 00:46:47,968 >> 戴維·J·馬蘭:我沒有 再次運行做出了吧。 1016 00:46:47,968 --> 00:46:49,430 所以我改變了我的源代碼。 1017 00:46:49,430 --> 00:46:50,638 但同樣,有這麼流。 1018 00:46:50,638 --> 00:46:54,530 通過編譯源代碼提供 你新的目標代碼,或0和1。 1019 00:46:54,530 --> 00:47:00,209 所以,我需要實際 重新運行化妝HELLO-2輸入。 1020 00:47:00,209 --> 00:47:01,750 好了,事情似乎已經發生了。 1021 00:47:01,750 --> 00:47:04,220 點斜線HELLO-2。 1022 00:47:04,220 --> 00:47:05,390 你的名字嗎。 1023 00:47:05,390 --> 00:47:09,990 現在要清楚,這是為什麼 將光標放在同一行? 1024 00:47:09,990 --> 00:47:10,490 沒錯。 1025 00:47:10,490 --> 00:47:13,020 我沒有把反斜線 Ñ​​在這裡在我的代碼。 1026 00:47:13,020 --> 00:47:16,110 所以,現在我可以寫 像Daven,回車。 1027 00:47:16,110 --> 00:47:18,710 我可以再次運行它,然後鍵入 像加布,回車, 1028 00:47:18,710 --> 00:47:22,250 我們得到不同的程序 一遍又一遍又一遍。 1029 00:47:22,250 --> 00:47:28,940 >> 現在,最終我們將需要 使用幾個不同的功能。 1030 00:47:28,940 --> 00:47:32,860 我們需要引入一些最終 條件,有條件做的事情。 1031 00:47:32,860 --> 00:47:35,550 也許循環,所以我們可以做 事情一遍又一遍。 1032 00:47:35,550 --> 00:47:38,220 >> 也許這將是很好,如果我們 可以實現自己的功能, 1033 00:47:38,220 --> 00:47:41,355 就像我們可以實現我們自己的 printf的還是我們自己的版本的GetString的 1034 00:47:41,355 --> 00:47:45,870 和GetFlow,因為最終連 使用此命令行環境 1035 00:47:45,870 --> 00:47:49,780 我們可以做的,即使是最 視覺上有趣的東西。 1036 00:47:49,780 --> 00:47:51,950 >> 事實上,總之讓我做到這一點。 1037 00:47:51,950 --> 00:47:54,020 我要繼續前進 並關閉這些窗口 1038 00:47:54,020 --> 00:47:57,400 在這裡開這個圖標, 這僅僅是一個更大的 1039 00:47:57,400 --> 00:48:00,020 版本的嵌入式 終端窗口。 1040 00:48:00,020 --> 00:48:02,329 所以Gedit的不僅 這個地方我的代碼, 1041 00:48:02,329 --> 00:48:05,620 而且一個內置的終端窗口中, 黑色和白色的窗口,在這裡我可以運行 1042 00:48:05,620 --> 00:48:06,230 命令。 1043 00:48:06,230 --> 00:48:08,600 >> 我剛好開 一個更大的版本了。 1044 00:48:08,600 --> 00:48:11,170 現在,我要進入 我已經在文件夾 1045 00:48:11,170 --> 00:48:13,150 把事先在球場上的網站。 1046 00:48:13,150 --> 00:48:16,720 而且我要繼續前進, 打開一個名為thadgavin.c文件, 1047 00:48:16,720 --> 00:48:18,710 這是別人寫的。 1048 00:48:18,710 --> 00:48:21,220 >> 如果我們看一下這個, 這不是種代碼 1049 00:48:21,220 --> 00:48:24,370 我們會因為被寫 這段代碼的目的 1050 00:48:24,370 --> 00:48:28,450 是寫的最漂亮的 看代碼,他或她可以, 1051 00:48:28,450 --> 00:48:31,290 不論是否 另一個人可能永遠 1052 00:48:31,290 --> 00:48:33,660 理解這段代碼。 1053 00:48:33,660 --> 00:48:37,050 >> 事實上,每一年有什麼 所謂的模糊ç比賽,這 1054 00:48:37,050 --> 00:48:39,570 是誰寫的真正的怪才 沒有其他人可以讀取的代碼, 1055 00:48:39,570 --> 00:48:42,050 但是,做任何事 很簡單,或真是太神奇了。 1056 00:48:42,050 --> 00:48:43,890 而且我們認為我們會 總結這個樣子 1057 00:48:43,890 --> 00:48:48,300 在東西是相當驚人的 你可能已經看到過一次。 1058 00:48:48,300 --> 00:48:52,650 但我們將結束在這個 注意,點斜線,thadgavin。 1059 00:48:52,650 --> 00:48:53,860 然後,這就是等待。 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> 這就是它的CS50。 1062 00:48:58,500 --> 00:48:59,935 我們會看到你在星期三。 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [音樂播放] 1065 00:49:10,016 --> 00:53:31,883