1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [視頻回放] 3 00:00:16,626 --> 00:00:19,410 >> 數學-A勝利 和機械技能 4 00:00:19,410 --> 00:00:23,270 這是偉大的新自動 計算器在哈佛大學。 5 00:00:23,270 --> 00:00:27,140 在數學複雜的問題 把通過機器以編碼形式 6 00:00:27,140 --> 00:00:31,710 在磁帶上精確地解決了 的時間分鐘餾分所需 7 00:00:31,710 --> 00:00:32,819 人類計算。 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 為了加快各種形式的 數學和科學的研究, 10 00:00:48,220 --> 00:00:53,840 巨型機械的大腦會工作 美國海軍直到戰爭結束。 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [結束播放] 13 00:01:06,570 --> 00:01:08,590 >> DAVID J.馬蘭:這是CS50。 14 00:01:08,590 --> 00:01:10,590 過去是一個神奇的 的地方,但如果你曾經 15 00:01:10,590 --> 00:01:13,366 不知道這是什麼設備 在哈佛科學中心, 16 00:01:13,366 --> 00:01:16,150 這的確是部分 哈佛大學的馬克我,這是 17 00:01:16,150 --> 00:01:18,710 現陳列有 在過去的許多年。 18 00:01:18,710 --> 00:01:20,590 你會看到什麼 嵌入問題集 19 00:01:20,590 --> 00:01:24,416 一個是幕後看看 在什麼設備做了,確實, 20 00:01:24,416 --> 00:01:27,540 哈利·劉易斯教授,誰是誰非 計算機科學系在這裡。 21 00:01:27,540 --> 00:01:29,440 因此,更多的是在短短位。 22 00:01:29,440 --> 00:01:33,990 >> 但是,今天我們開始轉型 從上週到這一點, 23 00:01:33,990 --> 00:01:37,290 我們會帶提 在這裡,人們的照片 24 00:01:37,290 --> 00:01:38,630 這實際上是頗負盛名。 25 00:01:38,630 --> 00:01:42,270 有誰知道這是什麼 這裡是在屏幕上? 26 00:01:42,270 --> 00:01:43,880 至少根據神話。 27 00:01:43,880 --> 00:01:44,837 是啊。 28 00:01:44,837 --> 00:01:45,920 聽眾:第一個病毒。 29 00:01:45,920 --> 00:01:49,570 DAVID J.馬蘭:所以這是假想 在計算機中的第一實際錯誤。 30 00:01:49,570 --> 00:01:52,490 現在,在現實中字錯誤, 為程序中的錯誤, 31 00:01:52,490 --> 00:01:55,250 已經伴隨我們一段 時間在物理世界中, 32 00:01:55,250 --> 00:01:58,190 這是第一個 記錄的時間,其中確實有人 33 00:01:58,190 --> 00:02:02,280 彈撥大蛾子出來的標誌 II計算機,將其放在粘合劑, 34 00:02:02,280 --> 00:02:05,006 然後記錄了它 作為第一個已知的bug 35 00:02:05,006 --> 00:02:06,630 到其實已經發現了身體。 36 00:02:06,630 --> 00:02:10,104 所以這樣被輸入 這為今天的絕殺。 37 00:02:10,104 --> 00:02:12,020 從去年的一切 每週在網上提供。 38 00:02:12,020 --> 00:02:14,840 特別是資源,你可能 不一定注意到,特別是 39 00:02:14,840 --> 00:02:15,881 如果來到這裡的人。 40 00:02:15,881 --> 00:02:20,230 因此,教學研究員之一,每 一年做一個規範的集合票據, 41 00:02:20,230 --> 00:02:22,010 所以你不必守 你的頭,試圖 42 00:02:22,010 --> 00:02:24,410 抄寫任何東西 這可能發生在這裡上課。 43 00:02:24,410 --> 00:02:25,940 因此,認識到這些 所謂[? Scribd?]注意事項 44 00:02:25,940 --> 00:02:29,350 在線,肯定是幻燈片和 我們在課堂上使用的源代碼。 45 00:02:29,350 --> 00:02:31,436 我們充分文字成績單 可用。 46 00:02:31,436 --> 00:02:34,310 所以,如果你依稀記得一些 長期,想看看它一點點 47 00:02:34,310 --> 00:02:37,280 更容易,實現所有 那是在線搜索。 48 00:02:37,280 --> 00:02:38,930 除了演練為好。 49 00:02:38,930 --> 00:02:42,710 事實上,今天我們首先來看看 較低級別的編程語言, 50 00:02:42,710 --> 00:02:45,290 馬上要為我們所知 為C,這是很容易 51 00:02:45,290 --> 00:02:48,820 以經過短短幾分迷路 片刻時間,然後進行排序奇蹟 52 00:02:48,820 --> 00:02:52,370 我們如何真正得到了一些 複雜的例子,從最簡單的。 53 00:02:52,370 --> 00:02:54,975 所以,實現我們的櫻桃 挑類中的一些中 54 00:02:54,975 --> 00:02:57,850 的代表性的例子,但 認識到這麼多也 55 00:02:57,850 --> 00:03:01,140 可在網上這樣你就可以工作 通過它按照自己的節奏, 56 00:03:01,140 --> 00:03:02,950 然而,你最舒服。 57 00:03:02,950 --> 00:03:05,200 >> 但是當我們離開了與 這只是該計劃。 58 00:03:05,200 --> 00:03:09,690 於是我點擊綠色旗幟, 而這是什麼節目呢? 59 00:03:09,690 --> 00:03:10,710 說,你好,世界。 60 00:03:10,710 --> 00:03:13,180 它使貓說 你好在他的小世界 61 00:03:13,180 --> 00:03:15,990 在頂部左側 的划痕的用戶界面。 62 00:03:15,990 --> 00:03:18,810 但是,我們開始引進 上週一些術語。 63 00:03:18,810 --> 00:03:23,614 因此,像這樣的事情,我們叫什麼? 64 00:03:23,614 --> 00:03:25,280 可能是什麼通稱呢? 65 00:03:25,280 --> 00:03:26,266 是啊。 66 00:03:26,266 --> 00:03:28,210 方法或聲明。 67 00:03:28,210 --> 00:03:29,280 當然,這是一個動作。 68 00:03:29,280 --> 00:03:30,140 做到這一點。 69 00:03:30,140 --> 00:03:32,400 然而,有 其他形狀劃傷, 70 00:03:32,400 --> 00:03:35,360 除了這些所謂的 聲明中,他們也 71 00:03:35,360 --> 00:03:38,221 像這樣的事情,我們叫什麼? 72 00:03:38,221 --> 00:03:38,720 是啊。 73 00:03:38,720 --> 00:03:39,634 這樣一個循環。 74 00:03:39,634 --> 00:03:42,050 在這種情況下,這個事 重複序列,很明顯,10倍。 75 00:03:42,050 --> 00:03:43,040 有一個永遠的塊。 76 00:03:43,040 --> 00:03:44,164 有一對夫婦他人。 77 00:03:44,164 --> 00:03:48,309 而今天我們要看看如何 翻譯這一個更現代世界, 78 00:03:48,309 --> 00:03:50,850 如果你願意,即使它 要乍一看 79 00:03:50,850 --> 00:03:52,024 要更加神秘。 80 00:03:52,024 --> 00:03:53,190 但這些確實循環。 81 00:03:53,190 --> 00:03:56,182 然後,我們喜歡的東西 這一點,其中有這樣的形狀, 82 00:03:56,182 --> 00:03:57,515 而且基本上問的問題。 83 00:03:57,515 --> 00:03:58,890 我們將其稱為什麼呢? 84 00:03:58,890 --> 00:03:59,762 >> 聽眾:布爾表達式。 85 00:03:59,762 --> 00:04:00,320 >> DAVID J.馬蘭:是的。 86 00:04:00,320 --> 00:04:01,340 布爾表達式。 87 00:04:01,340 --> 00:04:04,502 東西是真或 假,是或否,一個或零, 88 00:04:04,502 --> 00:04:05,960 但您要查看的世界。 89 00:04:05,960 --> 00:04:08,335 但是,我們叫那些布爾 表現形式,我們將它們插入 90 00:04:08,335 --> 00:04:09,900 為條件,或分支機構。 91 00:04:09,900 --> 00:04:12,170 和在世界 從無到有,一切都很好 92 00:04:12,170 --> 00:04:15,460 在其形狀方面聯鎖, 如果它使邏輯意義的話, 93 00:04:15,460 --> 00:04:18,490 但你不必停留在只 做一件事有條件, 94 00:04:18,490 --> 00:04:20,450 你可以有一個諺語 岔路口 95 00:04:20,450 --> 00:04:24,040 做非此即彼,如果 條件是真還是假。 96 00:04:24,040 --> 00:04:26,040 然後,你會看到, 如果你還沒有準備好, 97 00:04:26,040 --> 00:04:27,480 你甚至可以嵌套這些塊。 98 00:04:27,480 --> 00:04:32,110 所以划痕生長填充形狀 您可能要插入進去, 99 00:04:32,110 --> 00:04:35,330 這樣你就可以真正表達最 你可能想要做的任何邏輯。 100 00:04:35,330 --> 00:04:38,220 >> 公告現在的幾句話 對於在這裡和紐黑文。 101 00:04:38,220 --> 00:04:39,370 所以切片從今天開始。 102 00:04:39,370 --> 00:04:42,120 該網址,這是在球場上的 網站,對於那些不熟悉的。 103 00:04:42,120 --> 00:04:43,970 段將是一個 機會相聚 104 00:04:43,970 --> 00:04:46,553 在一個更親密的環境 比[?桑德斯?]允許, 105 00:04:46,553 --> 00:04:50,347 用10至20的同學用 助教在不同的軌道, 106 00:04:50,347 --> 00:04:51,930 和不同的速度,如果你選擇。 107 00:04:51,930 --> 00:04:54,080 事實上,課程提供 不同的部分 108 00:04:54,080 --> 00:04:57,340 對於那些不太舒服,更 舒適,介於兩者之間, 109 00:04:57,340 --> 00:04:59,860 和拇指這裡的作用,是 有沒有正式的定義, 110 00:04:59,860 --> 00:05:04,600 但如果你不舒服, 那種你知道的。 111 00:05:04,600 --> 00:05:07,470 你是一個勇敢一點對 踩著腳下,也許,回理念 112 00:05:07,470 --> 00:05:10,130 在課堂上,或顯示 長達一個在部分之間。 113 00:05:10,130 --> 00:05:12,770 如果你因為你是編程 是六歲,更舒適, 114 00:05:12,770 --> 00:05:13,400 也許你。 115 00:05:13,400 --> 00:05:16,150 而如果它是一種勝負難料, 這正是之間的中 116 00:05:16,150 --> 00:05:17,190 就是要。 117 00:05:17,190 --> 00:05:18,410 >> 現在,在此期間, 一類這種規模, 118 00:05:18,410 --> 00:05:21,326 它需要我們相當長的一段時間,部分 每一個人,所以我們所謂的, 119 00:05:21,326 --> 00:05:24,030 超節,來了這 週末及下週初, 120 00:05:24,030 --> 00:05:26,570 所以看看在課程的網站 對於那些過程寬, 121 00:05:26,570 --> 00:05:28,610 並且還拍攝了那些 誰也無法使它們。 122 00:05:28,610 --> 00:05:33,470 而部分本身將啟動 在本週三CS50零指標。 123 00:05:33,470 --> 00:05:35,880 習題集0已經是 在球場上的網站。 124 00:05:35,880 --> 00:05:40,010 並意識到你必須 9晚天這學期。 125 00:05:40,010 --> 00:05:43,240 因此,這是從去年升級 今年,當我們有五晚了幾天。 126 00:05:43,240 --> 00:05:46,210 >> 所以,如果你想知道, 我們有九習題集。 127 00:05:46,210 --> 00:05:53,200 你有九晚天,每個 你只能花一,每週上。 128 00:05:53,200 --> 00:05:56,089 這實際上使所有的 問題集將於週五公佈, 129 00:05:56,089 --> 00:05:58,630 但我們的目標是把一個小 心理壓力位 130 00:05:58,630 --> 00:06:01,100 你試圖讓 事情在週四 131 00:06:01,100 --> 00:06:03,960 因為你很快就會發現, 是好還是壞,最 132 00:06:03,960 --> 00:06:07,820 一切都在軟件世界結束 以比預計的要長很多。 133 00:06:07,820 --> 00:06:10,620 因此,認為這是一種 機會幫助 134 00:06:10,620 --> 00:06:13,880 自己到週四目標, 但感到欣慰的是,是的, 135 00:06:13,880 --> 00:06:14,950 一切都將於週五公佈。 136 00:06:14,950 --> 00:06:17,590 如果你提交他們 週四,這是美妙的。 137 00:06:17,590 --> 00:06:21,020 有沒有獎勵積分或額外 信用為滿足這一最後期限。 138 00:06:21,020 --> 00:06:23,250 它的意思是只有一個拐杖。 139 00:06:23,250 --> 00:06:25,810 >> 和辦公時間,無論是 在這裡和在紐黑文, 140 00:06:25,810 --> 00:06:28,840 在人,如果你想 與我們的課程滿足 141 00:06:28,840 --> 00:06:31,060 教學研究員和CA的援助。 142 00:06:31,060 --> 00:06:31,640 >> 好的。 143 00:06:31,640 --> 00:06:33,110 所以,現在,讓我們這個更真實。 144 00:06:33,110 --> 00:06:35,470 一時間它會啟動 得到多一點神秘,但很 145 00:06:35,470 --> 00:06:37,310 迅速上週五和 下週我們將 146 00:06:37,310 --> 00:06:41,230 能夠這樣做大大超過 我們可以迄今在划痕。 147 00:06:41,230 --> 00:06:44,350 因此,我們推出了代碼的最後 本週,儘管pictoral。 148 00:06:44,350 --> 00:06:45,620 這是拼圖。 149 00:06:45,620 --> 00:06:48,800 我們形式化,這是 所謂源代碼, 150 00:06:48,800 --> 00:06:50,330 但也沒有什麼樣子的? 151 00:06:50,330 --> 00:06:52,550 那麼,它看起來有點 這樣的事情。 152 00:06:52,550 --> 00:06:55,410 而且,事實上,只是那種 逗,我們可以去與此有關。 153 00:06:55,410 --> 00:06:57,800 我要繼續前進, 這裡打開一個窗口, 154 00:06:57,800 --> 00:06:59,810 我只是要選擇新的文件。 155 00:06:59,810 --> 00:07:03,200 而且我要保存此文件 因為像招呼C點。 156 00:07:03,200 --> 00:07:05,700 更重要的是選擇 也就是說在短短的時刻。 157 00:07:05,700 --> 00:07:08,630 這是一個人怎麼可能 去寫一個程序。 158 00:07:08,630 --> 00:07:13,990 包括標準I / O點H,INT主要 虛空,然後打開大括號,關閉 159 00:07:13,990 --> 00:07:19,430 大括號,printf的招呼逗號世界, 反斜杠N,分號,保存,完成。 160 00:07:19,430 --> 00:07:19,930 確定。 161 00:07:19,930 --> 00:07:21,670 我已經寫了我的第一次 程序,但是它是怎麼回事 162 00:07:21,670 --> 00:07:23,878 是難以置信膩味 因為當我真正 163 00:07:23,878 --> 00:07:27,352 運行,當然這個程序, 通過先寫使招呼, 164 00:07:27,352 --> 00:07:30,310 然後斑點削減招呼,我們將 通過這個更加詳細 165 00:07:30,310 --> 00:07:31,730 在一個時刻,這就是它所做的。 166 00:07:31,730 --> 00:07:33,270 不彈出打開的任何窗口。 167 00:07:33,270 --> 00:07:35,070 它不會做任何事情 特別花哨。 168 00:07:35,070 --> 00:07:38,830 它所做的是什麼,我告訴它 這樣做,但我們怎麼去的? 169 00:07:38,830 --> 00:07:40,560 我們如何建立在那? 170 00:07:40,560 --> 00:07:43,430 好吧,讓我們來介紹幾個 不同的概念在這裡。 171 00:07:43,430 --> 00:07:47,170 >> 所以之一,我們即將開始 使用被稱為編譯程序。 172 00:07:47,170 --> 00:07:51,470 編譯器存在於Mac OS,Windows中, Linux中,任何數目的操作系統的, 173 00:07:51,470 --> 00:07:54,540 我們會盡快為您介紹 環境,我們將使用, 174 00:07:54,540 --> 00:07:57,410 但一個編譯器只是一般 期限為一個軟件 175 00:07:57,410 --> 00:08:01,940 這需要源代碼和 從它產生的目標代碼。 176 00:08:01,940 --> 00:08:03,940 換句話說,如果 有作為輸入源 177 00:08:03,940 --> 00:08:08,250 代碼,像我剛才輸入的, 它最終生成目標代碼。 178 00:08:08,250 --> 00:08:11,780 代碼和目標代碼實際上只是 說它輸出一個奇特的方式 179 00:08:11,780 --> 00:08:12,926 零的和一個人的。 180 00:08:12,926 --> 00:08:14,800 換言之,源 代碼,即使它 181 00:08:14,800 --> 00:08:17,240 會顯得有點神秘, 又有點不太友好 182 00:08:17,240 --> 00:08:19,590 比刮乍看之下, 它至少東西 183 00:08:19,590 --> 00:08:21,120 我們人類能理解。 184 00:08:21,120 --> 00:08:24,360 那種它看起來和聽起來像 英語,即使它非常簡潔。 185 00:08:24,360 --> 00:08:28,040 而在零的編程和 一個人的,因為我們的前輩不得不這樣做, 186 00:08:28,040 --> 00:08:30,920 幾年前,不是 特別有趣的挑戰。 187 00:08:30,920 --> 00:08:33,710 然而,這就是 電腦還是可以理解的。 188 00:08:33,710 --> 00:08:37,010 因此,編譯器會讓我們從 源代碼,目標代碼​​。 189 00:08:37,010 --> 00:08:39,860 這就像用打開文件 編譯器,當你保存它, 190 00:08:39,860 --> 00:08:41,419 你得到這些零和一。 191 00:08:41,419 --> 00:08:43,419 所以我們會看到怎麼辦 在短短的時刻。 192 00:08:43,419 --> 00:08:47,400 >> 但是,讓我們現在試圖提供一個 上週,這之間的橋樑, 193 00:08:47,400 --> 00:08:50,660 這樣即使我們得到紅 這類事情,大括號, 194 00:08:50,660 --> 00:08:54,100 和分號,和括號,並 所有這些智力有趣 195 00:08:54,100 --> 00:08:57,620 編程的各方面,這非常 可以理解早早就絆倒人組成, 196 00:08:57,620 --> 00:09:00,930 認識到,所有的思想 今天,是與上。 197 00:09:00,930 --> 00:09:03,975 所以最後,我們看到了這個例子 在這裡,Hello World程序。 198 00:09:03,975 --> 00:09:07,500 好了,從今天開始,如果我們想 實施同樣的計劃, 199 00:09:07,500 --> 00:09:10,800 它會看起來 有點這樣的事情。 200 00:09:10,800 --> 00:09:14,040 我們將長期INT什麼才解釋, 和主,和無效的,和所有的 201 00:09:14,040 --> 00:09:18,770 是,但至少我在這裡看到 早已熟悉的Hello World。 202 00:09:18,770 --> 00:09:20,860 >> 同時,這樣的事情 功能,打個招呼, 203 00:09:20,860 --> 00:09:23,570 很簡單的將是一個 很簡單的聲明是這樣的。 204 00:09:23,570 --> 00:09:26,930 PRINTF的hello world,一些 引用,用反斜杠, 205 00:09:26,930 --> 00:09:29,780 用分號,但 更多的來。 206 00:09:29,780 --> 00:09:34,066 循環,同時,這是一個循環,, 當然,說世界你好一輩子, 207 00:09:34,066 --> 00:09:36,690 而這個人會看起來 多一點在過去的怪異, 208 00:09:36,690 --> 00:09:39,530 但如果我說些什麼 像,而真實的,我 209 00:09:39,530 --> 00:09:44,050 然後可以打印出世界,你好 一遍又一遍又一遍。 210 00:09:44,050 --> 00:09:46,660 然後,你可以種 的開始在這裡推斷, 211 00:09:46,660 --> 00:09:49,070 使用此約定 大括號是一種 212 00:09:49,070 --> 00:09:52,050 像擁抱 代碼縮進行那裡。 213 00:09:52,050 --> 00:09:55,840 代碼的printf的行很像 黃色的一塊拼圖了上面。 214 00:09:55,840 --> 00:09:58,740 因此,我們不會說永遠, 我們要說的,而真正的, 215 00:09:58,740 --> 00:10:01,020 但我們會看到這是為什麼在短短的一點。 216 00:10:01,020 --> 00:10:04,210 >> 同時,如果我們有一個循環是這樣, 你重複的東西是有限的地方 217 00:10:04,210 --> 00:10:07,730 數字時代,這一個了它的 要採取一些習慣 218 00:10:07,730 --> 00:10:12,820 ,但它會說,對於int 我得到零,我不到10,我++, 219 00:10:12,820 --> 00:10:14,056 然後printf的一次。 220 00:10:14,056 --> 00:10:15,430 但是,將是格局。 221 00:10:15,430 --> 00:10:18,434 而對於那些你熟悉的 與AP計算機科學或Java, 222 00:10:18,434 --> 00:10:21,100 或任何數量的其他語言, 幾乎所有這些構建體的 223 00:10:21,100 --> 00:10:23,820 迄今為止應該大多是熟悉的。 224 00:10:23,820 --> 00:10:24,680 >> 所以變量。 225 00:10:24,680 --> 00:10:29,270 所以這裡有一個簡單的划痕摘錄 設置一個所謂的計數器為零的變量, 226 00:10:29,270 --> 00:10:33,150 然後永遠說的計數器, 然後它改變由一個計數器。 227 00:10:33,150 --> 00:10:37,030 因此,它具有零啟動, 再一,二,三。 228 00:10:37,030 --> 00:10:42,560 那麼,怎麼可能我們介紹,在 這種新的語言有點相似? 229 00:10:42,560 --> 00:10:45,460 詮釋計數器等於 為零,而真實的,這 230 00:10:45,460 --> 00:10:48,100 與以前同樣的想法 做事永遠的, 231 00:10:48,100 --> 00:10:49,530 而我只是去給printf。 232 00:10:49,530 --> 00:10:53,310 而現在它變得有點怪, %的我,但更多的是前來, 233 00:10:53,310 --> 00:10:55,140 但這些想法是完全一樣的。 234 00:10:55,140 --> 00:10:58,820 我們剛才要堅持 計算機是語法 235 00:10:58,820 --> 00:11:00,010 將我們的需求。 236 00:11:00,010 --> 00:11:04,620 >> 布爾表達式,像 SX小於y或x除y以下, 237 00:11:04,620 --> 00:11:06,354 和y小於ž。 238 00:11:06,354 --> 00:11:09,270 這將看起來少了一些 這樣,用括號只 239 00:11:09,270 --> 00:11:13,020 像數學中的好措施,只是 確保操作的順序 240 00:11:13,020 --> 00:11:14,750 是因為我們打算。 241 00:11:14,750 --> 00:11:15,600 而現在,條件。 242 00:11:15,600 --> 00:11:21,220 因此,如果x小於y,表示x是少 比Y,否則,如果x大於Y, 243 00:11:21,220 --> 00:11:26,020 說x大於Y,否則 從邏輯上講,x必須等於y。 244 00:11:26,020 --> 00:11:28,710 所以,你可能實現 像這樣的划痕, 245 00:11:28,710 --> 00:11:31,230 或者你可能實現 它在這個語法。 246 00:11:31,230 --> 00:11:35,090 再次,花括號是種 給我們相同的形狀拼圖 247 00:11:35,090 --> 00:11:40,750 件,但語法,現在,也許是 開始跟著一些模式。 248 00:11:40,750 --> 00:11:42,910 >> 那麼,是什麼讓我們在這裡? 249 00:11:42,910 --> 00:11:45,260 所以我們當時在我們的主程序。 250 00:11:45,260 --> 00:11:47,930 讓我們實際上,現在, 用它做什麼。 251 00:11:47,930 --> 00:11:50,660 因此,在這種非常第一 行,我們看到犀利包括, 252 00:11:50,660 --> 00:11:53,160 標準I / O,點H,和 然後一些奇怪的角度 253 00:11:53,160 --> 00:11:57,330 括號低於。 INT主要 虛空,然後printf的世界你好。 254 00:11:57,330 --> 00:11:58,200 因此,只要採取的一個步驟。 255 00:11:58,200 --> 00:12:02,440 有人誰以前從未編程, 至少解釋這些線中的一條。 256 00:12:02,440 --> 00:12:04,490 使用也許有些 上週的行話。 257 00:12:04,490 --> 00:12:06,942 什麼是printf的,例如? 258 00:12:06,942 --> 00:12:07,442 是啊。 259 00:12:07,442 --> 00:12:08,410 >> 聽眾:[聽不清] 260 00:12:08,410 --> 00:12:08,610 >> DAVID J.馬蘭:是的。 261 00:12:08,610 --> 00:12:11,380 這是一個函數,或者聲明, 從上週的術語。 262 00:12:11,380 --> 00:12:13,470 而且它是一個行動 這在做什麼。 263 00:12:13,470 --> 00:12:15,855 現在這個功能,或者 這種說法,確實 264 00:12:15,855 --> 00:12:17,550 它似乎需要一些類型的輸入? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 以及在何種意義呢它 似乎採取的輸入,如果是的話? 267 00:12:24,380 --> 00:12:26,180 輸入,請問我的意思? 268 00:12:26,180 --> 00:12:26,720 是啊。 269 00:12:26,720 --> 00:12:27,595 >> 聽眾:[聽不清] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 DAVID J.馬蘭:是的。 272 00:12:31,440 --> 00:12:34,890 所以劃掉了一些拼圖 在這裡你可以參數化的。 273 00:12:34,890 --> 00:12:37,980 你可以告訴重複 阻止多少次重複, 274 00:12:37,980 --> 00:12:40,320 所以這是一個輸入 排序,並就像划痕 275 00:12:40,320 --> 00:12:43,060 有一個白色的小佔位符 你鍵入的數量, 276 00:12:43,060 --> 00:12:45,810 這樣做,我們在此使用 文字世界括號 277 00:12:45,810 --> 00:12:49,910 給我們,圓形 在其中,我們可以將我們的輸入。 278 00:12:49,910 --> 00:12:53,180 畢竟,幾十年前 當這種語言,稱為C, 279 00:12:53,180 --> 00:12:55,950 被發明沒有人 預計這是我們的一員, 280 00:12:55,950 --> 00:12:59,420 這些若干年後,我們就 想要一個函數,打招呼。 281 00:12:59,420 --> 00:12:59,920 對嗎? 282 00:12:59,920 --> 00:13:02,880 這將會是很好,如果有一個 拼圖,或關鍵詞, 283 00:13:02,880 --> 00:13:05,502 這就是所謂的打招呼,說 從字面上只是說你好。 284 00:13:05,502 --> 00:13:06,460 但是,我們不需要這樣。 285 00:13:06,460 --> 00:13:09,320 我們可以有一些低得多 的水平,就像一個普通的打印 286 00:13:09,320 --> 00:13:12,760 命令,這需要投入, 並打印任何我們想要的。 287 00:13:12,760 --> 00:13:14,960 所以現在看到的格局 這將開始出現。 288 00:13:14,960 --> 00:13:19,310 開括號,括號接近是 顯然擁抱輸入, 289 00:13:19,310 --> 00:13:21,770 然後我看到雙 報價兩端。 290 00:13:21,770 --> 00:13:25,110 還有奇怪的反斜線 N,但希望現在你 291 00:13:25,110 --> 00:13:29,900 可以開始至少是想像 的printf正在採取某種形式的輸入。 292 00:13:29,900 --> 00:13:31,850 還不如用戶友好 從無到有,但它只是 293 00:13:31,850 --> 00:13:34,920 就像插在一定的價值已經出現。 294 00:13:34,920 --> 00:13:38,306 >> 好了,現在讓我們來實際 做一些與此有關。 295 00:13:38,306 --> 00:13:40,930 所以,有些人可能知道,從 面前逛過類, 296 00:13:40,930 --> 00:13:42,638 與朋友聊天時, 對於許多年 297 00:13:42,638 --> 00:13:44,590 我們使用了一種叫做 該CS50設備。 298 00:13:44,590 --> 00:13:49,160 這是描述一個技術術語 稱為虛擬機,這 299 00:13:49,160 --> 00:13:51,870 是一個軟件,你的 前輩會下載關閉 300 00:13:51,870 --> 00:13:53,360 課程的網站上免費。 301 00:13:53,360 --> 00:13:56,550 他們還將免費下載一個 軟件稱為虛擬機管理程序, 302 00:13:56,550 --> 00:14:00,590 一些所謂的像VMware, 或VirtualBox的,或任意數量的 303 00:14:00,590 --> 00:14:04,450 其他工具,並在他們的Mac或PC 或者他們去年無論電腦 304 00:14:04,450 --> 00:14:06,620 而在過去的幾年中,他們 將雙擊圖標 305 00:14:06,620 --> 00:14:08,860 運行此軟件 所謂的虛擬機管理程序。 306 00:14:08,860 --> 00:14:12,220 然後裡面那個節目 他們會打開CS50設備。 307 00:14:12,220 --> 00:14:14,710 和效果是 無論是你的前輩 308 00:14:14,710 --> 00:14:17,780 在運行Mac OS或 Windows中,他或她再 309 00:14:17,780 --> 00:14:22,910 隨後有一個新的窗口,他們的 屏幕上運行CS50的環境。 310 00:14:22,910 --> 00:14:27,370 因此,虛擬機可以讓你運行一個 的另一個內的操作系統, 311 00:14:27,370 --> 00:14:28,785 而這正是我們所做的事情。 312 00:14:28,785 --> 00:14:31,410 縱觀大多當然,我們的 使用稱為操作系統 313 00:14:31,410 --> 00:14:34,070 Linux的,特別是 Ubuntu Linux操作系統,並且這 314 00:14:34,070 --> 00:14:37,590 在過去幾年的一個非常好的方法 確保每個人都在使用過程中 315 00:14:37,590 --> 00:14:38,840 只是有相同的環境。 316 00:14:38,840 --> 00:14:41,339 你可以使用任何類型的 計算機你真正想要的。 317 00:14:41,339 --> 00:14:43,930 間的缺點,但是, 是它就像兩個千兆字節 318 00:14:43,930 --> 00:14:45,480 下載這個東西。 319 00:14:45,480 --> 00:14:50,310 它並不一定工作超好上 人,他們的電腦,也許只有 320 00:14:50,310 --> 00:14:54,570 有這麼RAM演出,或者,還是不 CPU速度的太多千兆赫, 321 00:14:54,570 --> 00:14:56,750 所以今年, 這個和其它原因, 322 00:14:56,750 --> 00:14:59,140 有,我們已經過渡 這種環境。 323 00:14:59,140 --> 00:15:03,730 所謂CS50 IDE,它是 基於開源軟件, 324 00:15:03,730 --> 00:15:07,380 和支持的平台 一家名為Cloud9 325 00:15:07,380 --> 00:15:11,110 支持在歐洲,那 讓我們有本質 326 00:15:11,110 --> 00:15:15,770 這完全一樣的環境中 過去幾年,但在所謂的雲。 327 00:15:15,770 --> 00:15:17,532 >> 那麼,什麼是雲計算? 328 00:15:17,532 --> 00:15:20,480 你可能已經點擊 它在你的Mac或PC圖標。 329 00:15:20,480 --> 00:15:22,210 什麼是雲計算? 330 00:15:22,210 --> 00:15:22,709 是嗎? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 大聲一點。 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 是啊。 335 00:15:31,010 --> 00:15:33,770 它只是一堆電腦 其他地方存儲數據和運行 336 00:15:33,770 --> 00:15:34,880 軟件等。 337 00:15:34,880 --> 00:15:39,390 因此,它實際上只是這個詞去 描述[的法律?可出租?] 338 00:15:39,390 --> 00:15:40,930 居住在其他地方的計算機。 339 00:15:40,930 --> 00:15:42,810 那你,你自己, 不一定擁有。 340 00:15:42,810 --> 00:15:45,256 所以,當你的數據,或者你 計劃,是在雲中, 341 00:15:45,256 --> 00:15:47,630 它只是意味著它是在人 其他地方的其他人的電腦, 342 00:15:47,630 --> 00:15:50,510 不,最有可能的,在你的 物理筆記本電腦或台式機。 343 00:15:50,510 --> 00:15:52,990 所以這就是CS50 IDE現在。 344 00:15:52,990 --> 00:15:55,670 >> 從此以後,你會去到一定 這將向您介紹網址 345 00:15:55,670 --> 00:16:00,090 要在問題設置1,後面的 週,將接著,在記錄在, 346 00:16:00,090 --> 00:16:01,480 給你這樣的環境。 347 00:16:01,480 --> 00:16:03,896 而就像刮了 涉及到幾個不同的面板, 348 00:16:03,896 --> 00:16:06,030 這樣做CS50的IDE有完全相同的。 349 00:16:06,030 --> 00:16:09,480 在左上方這裡,你 要看到一個熟悉的文件瀏覽器。 350 00:16:09,480 --> 00:16:11,930 所以任何一個文件,你 投入這個環境 351 00:16:11,930 --> 00:16:13,346 只是要在那裡列出。 352 00:16:13,346 --> 00:16:14,350 文件和文件夾。 353 00:16:14,350 --> 00:16:16,790 在這裡頂, 你會看到一個地方 354 00:16:16,790 --> 00:16:18,420 在這裡你可以真正編寫代碼。 355 00:16:18,420 --> 00:16:21,860 最初的C,後來在 長期在PHP和JavaScript, 356 00:16:21,860 --> 00:16:24,739 和,或許為最終 項目,Ruby或Java或Python的 357 00:16:24,739 --> 00:16:27,280 或任意數量的語言 在這種環境下的支持。 358 00:16:27,280 --> 00:16:30,130 它不是在所有綁 到CS50明確。 359 00:16:30,130 --> 00:16:33,390 >> 然後在這裡的底部邊角, 特別是對於那些更舒適, 360 00:16:33,390 --> 00:16:35,590 你有什麼 所謂的終端窗口。 361 00:16:35,590 --> 00:16:38,770 而這個終端窗口允許 你執行任何命令你 362 00:16:38,770 --> 00:16:40,860 想在這個雲環境。 363 00:16:40,860 --> 00:16:42,860 它可以讓你安裝 任何額外的軟件 364 00:16:42,860 --> 00:16:46,810 你想要的,因為你所謂的 根或管理員權限。 365 00:16:46,810 --> 00:16:49,930 因此,換句話說,即使這 在雲最終主持, 366 00:16:49,930 --> 00:16:52,400 儘管我們有 簡化它在一定程度上 367 00:16:52,400 --> 00:16:57,110 默認情況下,從字面上介紹, 感謝Dan Armendariz環,和迪諾, 368 00:16:57,110 --> 00:17:01,070 和CS50的團隊在丹·布拉德利 過去數月,一個不舒服 369 00:17:01,070 --> 00:17:05,140 模式隱藏了許多的 最初混亂的干擾。 370 00:17:05,140 --> 00:17:10,119 一切都存在於 代表一個典型的計算機系統 371 00:17:10,119 --> 00:17:12,319 你可能在現實世界中使用。 372 00:17:12,319 --> 00:17:15,640 >> 那麼,這一切意味著,和 我們能真正用它做? 373 00:17:15,640 --> 00:17:19,124 讓我們實際採取在偷看的程序。 374 00:17:19,124 --> 00:17:21,290 所以,我要打通 實際的環境在這裡, 375 00:17:21,290 --> 00:17:23,894 這僅僅是我們的Chrome瀏覽器 瀏覽器,它可以是火狐, 376 00:17:23,894 --> 00:17:26,640 可能是IE瀏覽器, 或一些其他的瀏覽器為好。 377 00:17:26,640 --> 00:17:28,400 它的全部篩選這裡的時刻。 378 00:17:28,400 --> 00:17:31,580 我想實際挑逗 除了這是什麼節目了。 379 00:17:31,580 --> 00:17:36,170 因此,讓我們來看看,通過放大了 頂部,我做什麼,我怎麼來到這裡。 380 00:17:36,170 --> 00:17:38,315 因此,這裡的這些精確 同一行的代碼。 381 00:17:38,315 --> 00:17:40,440 因此,這是語句, 正如你前面提到的。 382 00:17:40,440 --> 00:17:42,580 該功能打招呼。 383 00:17:42,580 --> 00:17:45,870 大括號,在 四號線和六號線, 384 00:17:45,870 --> 00:17:49,290 大概是一種包絡 該行把它關聯 385 00:17:49,290 --> 00:17:50,890 我的節目的本質。 386 00:17:50,890 --> 00:17:54,890 所以實際上,這個關鍵字為主, 這是在那裡上三線, 387 00:17:54,890 --> 00:17:59,450 你能想到的,作為等價物 的,當綠旗點擊, 388 00:17:59,450 --> 00:18:01,080 阻止劃傷。 389 00:18:01,080 --> 00:18:05,280 所以,這就是我們這裡有,是當 綠旗點擊,打印,或者說, 390 00:18:05,280 --> 00:18:06,700 你好世界。 391 00:18:06,700 --> 00:18:11,210 >> 但是,讓我們來猜測,現在,在什麼 這第一個,更神秘的線,是。 392 00:18:11,210 --> 00:18:15,100 夏普包括,開成角 支架,標準I / O點H, 393 00:18:15,100 --> 00:18:17,320 關閉尖括號。 394 00:18:17,320 --> 00:18:19,850 什麼,也許這樣做, 特別是如果你編程 395 00:18:19,850 --> 00:18:21,390 之前在某些其它語言。 396 00:18:21,390 --> 00:18:21,890 是嗎? 397 00:18:21,890 --> 00:18:22,765 >> 聽眾:[聽不清] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 DAVID J.馬蘭:是的。 400 00:18:25,970 --> 00:18:26,470 沒錯。 401 00:18:26,470 --> 00:18:29,455 因此,這是給你訪問 圖書館,可以這麼說的功能。 402 00:18:29,455 --> 00:18:31,830 和函數庫是 功能別人 403 00:18:31,830 --> 00:18:34,406 中寫道,無論是近期 還是很久以前,這樣你 404 00:18:34,406 --> 00:18:35,780 不必推倒重來。 405 00:18:35,780 --> 00:18:39,020 舉例來說,我們不這樣做 要知道,在2015年, 406 00:18:39,020 --> 00:18:42,280 如何編寫代碼,這使 字符我的屏幕上。 407 00:18:42,280 --> 00:18:44,820 別人已經想通了 用printf函數 408 00:18:44,820 --> 00:18:47,280 這樣我可以排序的抽象 遠離,或層 409 00:18:47,280 --> 00:18:49,350 之上他或她的 代碼,而現在只取 410 00:18:49,350 --> 00:18:52,760 理所當然地認為,任何程序我寫的 可以打印東西到屏幕上。 411 00:18:52,760 --> 00:18:58,150 因此,在第一步中這第一行 包括所謂的頭文件 412 00:18:58,150 --> 00:18:59,980 為標準庫。 413 00:18:59,980 --> 00:19:02,630 所以看到的,在語言 這是我們現在工作 414 00:19:02,630 --> 00:19:05,010 有一個標準庫 有很多的功能。 415 00:19:05,010 --> 00:19:07,240 PRINTF就是其中之一,和 該代碼的第一行 416 00:19:07,240 --> 00:19:10,040 指給我的訪問 這些功能,讓我 417 00:19:10,040 --> 00:19:12,300 不必重新發明該車輪。 418 00:19:12,300 --> 00:19:15,940 >> 現在,讓我們去下面的窗口 做正是我以前那樣。 419 00:19:15,940 --> 00:19:18,520 剛才,當我 通過代碼呼嘯, 420 00:19:18,520 --> 00:19:24,540 打字出來的第一次, 我很快打字,讓你好。 421 00:19:24,540 --> 00:19:28,250 那是什麼一回事,你會猜到的? 422 00:19:28,250 --> 00:19:29,150 我到底在做什麼? 423 00:19:29,150 --> 00:19:29,649 是嗎? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 沒關係。 426 00:19:32,310 --> 00:19:32,970 這是確定的。 427 00:19:32,970 --> 00:19:33,492 是啊。 428 00:19:33,492 --> 00:19:34,450 聽眾:編譯它。 429 00:19:34,450 --> 00:19:34,700 DAVID J.馬蘭:是的。 430 00:19:34,700 --> 00:19:35,770 這只是編譯它。 431 00:19:35,770 --> 00:19:36,270 對嗎? 432 00:19:36,270 --> 00:19:39,280 即使這是完全不熟悉 給你,這是相當英語等。 433 00:19:39,280 --> 00:19:41,155 這當然不是零 和的,所以我還是 434 00:19:41,155 --> 00:19:44,220 需要通過所謂的運行它 程序,編譯器,這是怎麼回事 435 00:19:44,220 --> 00:19:46,060 把它作為輸入,產生輸出。 436 00:19:46,060 --> 00:19:48,270 至少,就目前而言, 這個Linux環境, 437 00:19:48,270 --> 00:19:51,030 但這不是先決條件, 這僅僅是我們將開始, 438 00:19:51,030 --> 00:19:53,960 你一般互動 計算機系統這樣的 439 00:19:53,960 --> 00:19:55,770 由一個所謂的命令行。 440 00:19:55,770 --> 00:19:57,790 因此,與閃爍 及時和你的鍵盤, 441 00:19:57,790 --> 00:20:01,630 並沒有那麼多你的鼠標,而不是 如此多的窗口和圖標和菜單, 442 00:20:01,630 --> 00:20:02,980 而一切都是文字。 443 00:20:02,980 --> 00:20:06,180 而且即使這樣的感覺,在第一 一目了然,也許,就像一個退步, 444 00:20:06,180 --> 00:20:08,437 它實際上是一個更 強大的表達方式 445 00:20:08,437 --> 00:20:10,270 控制計算機的 尤其是你, 446 00:20:10,270 --> 00:20:12,950 自己,變得更 舒適的少。 447 00:20:12,950 --> 00:20:16,790 這將讓你做了很多 不僅僅是微軟更多的事情 448 00:20:16,790 --> 00:20:20,390 或者蘋果可以讓你做 他們的圖形操作系統。 449 00:20:20,390 --> 00:20:23,270 >> 所以,當我按下回車鍵,現在, 什麼也沒發生這一次 450 00:20:23,270 --> 00:20:25,960 因為很明顯的 節目你好是最新的。 451 00:20:25,960 --> 00:20:28,250 什麼是命令 我跑了之後呢? 452 00:20:28,250 --> 00:20:32,370 點斜線打招呼,你好世界。 453 00:20:32,370 --> 00:20:34,350 現在,讓我們退一步 回來只是一瞬間。 454 00:20:34,350 --> 00:20:39,510 事實證明,讓你好只是一個 編譯程序的簡化的方式。 455 00:20:39,510 --> 00:20:41,670 讓我們只是介紹 一塊行話, 456 00:20:41,670 --> 00:20:43,470 但隨後離開 從它,因為它不是 457 00:20:43,470 --> 00:20:46,640 那麼有趣 對於今天的目的。 458 00:20:46,640 --> 00:20:51,000 我們要開始使用編譯器 被稱為鐺,為C語言。 459 00:20:51,000 --> 00:20:54,280 這是所運行的只是一個程序 就像我們在命令行上。 460 00:20:54,280 --> 00:20:56,580 所以,如果我想 編譯一個程序,我 461 00:20:56,580 --> 00:21:00,790 已經寫在一個叫你好點文件 C,我從字面上只需要輸入鐺你好Ç 462 00:21:00,790 --> 00:21:02,100 進入。 463 00:21:02,100 --> 00:21:04,880 >> 有趣的是, 由於歷史的原因, 464 00:21:04,880 --> 00:21:07,750 如果我不指定 該方案的名稱 465 00:21:07,750 --> 00:21:11,690 我想輸出,如果我不 對於那些零指定文件名 466 00:21:11,690 --> 00:21:14,990 和的,很奇怪 公約獲得通過年前 467 00:21:14,990 --> 00:21:17,390 它覺得那種一 在當時很好的答案, 468 00:21:17,390 --> 00:21:21,650 那麼讓我們來只是隨意調用 第一個程序,我們編譯一個點出來。 469 00:21:21,650 --> 00:21:22,900 一個是第一位的字母。 470 00:21:22,900 --> 00:21:23,920 出,它的輸出。 471 00:21:23,920 --> 00:21:26,210 因此,我們將調用程序 默認情況下,點了。 472 00:21:26,210 --> 00:21:29,550 這很好,因為如果我想 基於此文本運行程序 473 00:21:29,550 --> 00:21:33,590 環境,我只需要輸入 點斜線點了進去。 474 00:21:33,590 --> 00:21:35,250 它會像之前一​​樣,運行。 475 00:21:35,250 --> 00:21:36,880 因此,讓我們看到了真正的快速。 476 00:21:36,880 --> 00:21:40,370 >> 所以,如果我回到我的 在CS50 IDE的源代碼, 477 00:21:40,370 --> 00:21:47,860 我不是這樣做,鐺你好嬰兒床 c輸入,通知,似乎什麼都沒有發生, 478 00:21:47,860 --> 00:21:49,790 但幾乎​​總是在 這個Linux環境, 479 00:21:49,790 --> 00:21:53,310 沒事的時候不好似乎發生,那 意味著好東西居然發生了。 480 00:21:53,310 --> 00:21:56,270 如果您沒有看到錯誤 消息,一切都可能是很好。 481 00:21:56,270 --> 00:22:01,930 事實上,如果我現在做點斜線點 出來進去,我跑我的相同的程序。 482 00:22:01,930 --> 00:22:04,610 我仍然有hello程序 從早期的,因為事實上,它是 483 00:22:04,610 --> 00:22:07,430 將這麼多漂亮只是 鍵入make,而不是記憶 484 00:22:07,430 --> 00:22:10,240 這些咒語 命令,但讓我們看看如何 485 00:22:10,240 --> 00:22:12,890 可能會改善在此,仍然。 486 00:22:12,890 --> 00:22:15,340 >> 所以,這是命令 編譯代碼。 487 00:22:15,340 --> 00:22:19,100 這是運行命令 此後編譯代碼。 488 00:22:19,100 --> 00:22:20,546 我怎麼可以指定一個文件名? 489 00:22:20,546 --> 00:22:22,670 那麼就讓我們介紹 多一個行話。 490 00:22:22,670 --> 00:22:24,461 當你在此 基於文本的環境, 491 00:22:24,461 --> 00:22:27,400 你會想指定 東西叫做命令行參數。 492 00:22:27,400 --> 00:22:31,380 這是說只是一種奇特的方式, 換句話說在提示符 493 00:22:31,380 --> 00:22:33,860 調整的行為,無論 計劃你正在運行。 494 00:22:33,860 --> 00:22:37,320 那麼具體的我節目 運行時,通過輸入名稱鐺, 495 00:22:37,320 --> 00:22:38,504 被稱為鏘的計劃。 496 00:22:38,504 --> 00:22:40,920 因此,這是和老同學 中雙擊相當於 497 00:22:40,920 --> 00:22:42,860 在Microsoft Word或 有些程序的圖標。 498 00:22:42,860 --> 00:22:46,360 我不是只鍵入其名, 但在這個版本的命令, 499 00:22:46,360 --> 00:22:51,334 然後,我有幾許O空間 你好你好空間C點。 500 00:22:51,334 --> 00:22:53,500 所以,即使你從來沒有 之前效力於這個世界上, 501 00:22:53,500 --> 00:22:58,160 只是採取一種猜測是什麼 不劃線Ø招呼嗎? 502 00:22:58,160 --> 00:23:00,620 或者,究竟說明了什麼鐺做什麼? 503 00:23:00,620 --> 00:23:01,386 是啊。 504 00:23:01,386 --> 00:23:02,455 >> 聽眾:[聽不清] 505 00:23:02,455 --> 00:23:03,330 DAVID J.馬蘭:是的。 506 00:23:03,330 --> 00:23:08,614 它只是設置文件的輸出為 你好,而不是愚蠢的一個點出來。 507 00:23:08,614 --> 00:23:09,780 而且,事實上,讓我們試試這個。 508 00:23:09,780 --> 00:23:14,250 所以,如果我現在做的,第一 讓我們做到這一點,R M你好。 509 00:23:14,250 --> 00:23:15,590 這就是刪除。 510 00:23:15,590 --> 00:23:18,450 它會說刪除 普通文件你好,這 511 00:23:18,450 --> 00:23:22,210 是不必要的晦澀難懂,但它只是 手段你要刪除的文件, 512 00:23:22,210 --> 00:23:23,230 我鍵入y(是)。 513 00:23:23,230 --> 00:23:27,340 同時注意,如果你在頂部一眼 離開了,但它並從那裡消失。 514 00:23:27,340 --> 00:23:32,180 現在讓我做鐺破折號o和 我要繼續前進,做打招呼, 515 00:23:32,180 --> 00:23:34,890 全部大寫,你好點以下。 516 00:23:34,890 --> 00:23:37,775 現在,如果我做點斜線 你好,你會期待什麼? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> 也許這是區分大小寫的。 519 00:23:42,430 --> 00:23:43,070 也許這不是。 520 00:23:43,070 --> 00:23:44,030 讓我們來看看。 521 00:23:44,030 --> 00:23:45,230 沒有這樣的文件或目錄。 522 00:23:45,230 --> 00:23:47,438 我們可以種作弊被 只是看著左上角。 523 00:23:47,438 --> 00:23:49,630 我是怎麼明顯 拯救計劃的? 524 00:23:49,630 --> 00:23:51,070 所有帽你好。 525 00:23:51,070 --> 00:23:53,020 所以事實上,這是怎麼回事 有所作為。 526 00:23:53,020 --> 00:23:54,540 所以,現在的hello world又回來了。 527 00:23:54,540 --> 00:23:56,969 現在,這是一切優秀和良好, 和所有非常令人麻木, 528 00:23:56,969 --> 00:23:59,760 以獲取排序在這些陷入困境 細節,但理解它們 529 00:23:59,760 --> 00:24:00,500 還是不錯的。 530 00:24:00,500 --> 00:24:02,675 >> 鍵入這些越來越多 長咒語 531 00:24:02,675 --> 00:24:05,980 不會是特別 好玩的,所以人們在世界 532 00:24:05,980 --> 00:24:08,260 發明了另一種方案, 幾年前,叫 533 00:24:08,260 --> 00:24:12,190 做,那很簡單 可以讓你輸入make, 534 00:24:12,190 --> 00:24:14,530 節目的名稱 你想,使 535 00:24:14,530 --> 00:24:18,580 是聰明的,因為它會查看 當前文件夾,又名目錄, 536 00:24:18,580 --> 00:24:21,440 如果你有一個文件 名為hello點C, 537 00:24:21,440 --> 00:24:25,800 這是它會編譯文件 你到一個名為hello程序。 538 00:24:25,800 --> 00:24:29,950 因此,它是一個更簡單的方法 做更隱蔽的命令 539 00:24:29,950 --> 00:24:30,800 我們做了前面。 540 00:24:30,800 --> 00:24:34,080 我們已經預先配置 CS50 IDE知道 541 00:24:34,080 --> 00:24:38,560 它應該做短線O和一些 其他標誌,或命令行參數, 542 00:24:38,560 --> 00:24:40,670 過不了多久,我們就會看到。 543 00:24:40,670 --> 00:24:43,700 >> 但是,讓我們現在實際上做 更有趣的東西。 544 00:24:43,700 --> 00:24:46,950 只是打字的hello world所有 時間是不是所有的引人注目。 545 00:24:46,950 --> 00:24:52,280 因此,讓我繼續前進,變革 這個節目,說,你好大衛。 546 00:24:52,280 --> 00:24:54,120 現在,我要在這裡下去。 547 00:24:54,120 --> 00:24:57,360 我要繼續前進,做讓你好。 548 00:24:57,360 --> 00:25:00,652 並再次現在你看到的 使正顯示出你的時間越長 549 00:25:00,652 --> 00:25:03,360 命令序列,它的 這樣做是因為我們已經預先配置 550 00:25:03,360 --> 00:25:05,200 這樣的說法,但我們 不用擔心,現在 551 00:25:05,200 --> 00:25:10,735 它在做什麼其他的比它 編譯點斜線你好,你好世界。 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 有什麼不對? 554 00:25:15,510 --> 00:25:16,177 是啊。 555 00:25:16,177 --> 00:25:17,370 >> 聽眾:[聽不清] 556 00:25:17,370 --> 00:25:18,203 >> DAVID J.馬蘭:是的。 557 00:25:18,203 --> 00:25:19,600 因此,noobie錯誤。 558 00:25:19,600 --> 00:25:22,394 我注意到這是超級微妙, 但這裡的星號,在標籤, 559 00:25:22,394 --> 00:25:25,060 只是意味著你沒有保存它, 和瀏覽器和其他程序 560 00:25:25,060 --> 00:25:25,930 做到這一點的時候。 561 00:25:25,930 --> 00:25:27,939 因此控制s或命令 小號應該保存它。 562 00:25:27,939 --> 00:25:29,730 現在讓我繼續前進 並重新運行該程序。 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 重新編譯。 565 00:25:34,260 --> 00:25:36,050 對,所以這是一個多步驟的過程。 566 00:25:36,050 --> 00:25:39,400 其中沒有一個是特別複雜, 但任何時候我們更改文件, 567 00:25:39,400 --> 00:25:43,450 我們需要改變由此而來 零和一,和點斜線打招呼。 568 00:25:43,450 --> 00:25:43,950 哇。 569 00:25:43,950 --> 00:25:46,450 因此,這是很給人留下深刻印象 我們剛剛打印出這一點。 570 00:25:46,450 --> 00:25:48,360 讓我們把事情 多一點活力,現在。 571 00:25:48,360 --> 00:25:52,280 >> 那麼事實證明,那個喜歡 從無到有,C支持變量。 572 00:25:52,280 --> 00:25:54,790 而事實證明,如果你想 為具有可變,其存儲, 573 00:25:54,790 --> 00:25:57,300 不是數字像我們 通常沒有與划痕, 574 00:25:57,300 --> 00:26:01,300 但像一個字,或 短語或一個名字,你 575 00:26:01,300 --> 00:26:04,837 可以指定一個可變 是string類型。 576 00:26:04,837 --> 00:26:06,670 所以,我們會看到更多的 這些一會兒就好了, 577 00:26:06,670 --> 00:26:09,090 但事實證明,C,和 很多喜歡它的語言, 578 00:26:09,090 --> 00:26:11,240 有非常特殊類型的變量。 579 00:26:11,240 --> 00:26:13,810 這不只是喜歡代數, 你在哪裡得到一個x,一個y和z 580 00:26:13,810 --> 00:26:16,940 而這些都只是始終 號碼,在一種編程語言 581 00:26:16,940 --> 00:26:20,030 你可以存儲數字,你可以 存儲單個字符, 582 00:26:20,030 --> 00:26:24,619 你可以存儲整個單詞,你可以 存儲整個圖像,整個聲音文件, 583 00:26:24,619 --> 00:26:25,160 和類似物。 584 00:26:25,160 --> 00:26:28,362 因此,我們需要指定哪些 我們的變量的類型。 585 00:26:28,362 --> 00:26:31,570 而按照慣例,我會打電話給我 變量s只是因為它的簡潔, 586 00:26:31,570 --> 00:26:33,510 和s代表字符串。 587 00:26:33,510 --> 00:26:36,400 >> 然後,我要保存 這個變量的內部, 588 00:26:36,400 --> 00:26:39,570 就像有划痕 當我使用了一組塊, 589 00:26:39,570 --> 00:26:41,950 我將使用 賦值運算符C, 590 00:26:41,950 --> 00:26:45,290 這很好地夠平等 簽署,但等號做到這一點。 591 00:26:45,290 --> 00:26:53,220 它移動的東西從右側進入 表達式的左側。 592 00:26:53,220 --> 00:26:57,170 所以我做了什麼,要清楚 五號線,是我已經聲明的變量。 593 00:26:57,170 --> 00:27:01,284 我已經告訴了電腦,給我 內存變量,稱之為為s, 594 00:27:01,284 --> 00:27:03,950 並且事先知道我要去 要把一個串中它。 595 00:27:03,950 --> 00:27:05,950 而一個字符串僅僅是一個 字符序列。 596 00:27:05,950 --> 00:27:09,190 這是一個詞,或一個短語或段落, 但它是一個字符序列。 597 00:27:09,190 --> 00:27:10,610 這不是數字。 598 00:27:10,610 --> 00:27:13,800 是什麼字符串我將是 投入的變量? 599 00:27:13,800 --> 00:27:16,185 那麼,顯然引述 引文結束,“漢娜”。 600 00:27:16,185 --> 00:27:17,810 現在可以看到的新興模式。 601 00:27:17,810 --> 00:27:19,260 有一個左手的表達。 602 00:27:19,260 --> 00:27:21,810 有一個右手的表情, 由等號分隔。 603 00:27:21,810 --> 00:27:24,390 而只是採取一種猜測,如果 陌生儘管如此, 604 00:27:24,390 --> 00:27:27,430 什麼分號做。 605 00:27:27,430 --> 00:27:28,865 什麼是它大概是做給我們? 606 00:27:28,865 --> 00:27:29,365 是嗎? 607 00:27:29,365 --> 00:27:29,840 >> 聽眾:[聽不清] 608 00:27:29,840 --> 00:27:29,980 >> DAVID J.馬蘭:是的。 609 00:27:29,980 --> 00:27:31,170 這只是終止該行。 610 00:27:31,170 --> 00:27:31,669 對嗎? 611 00:27:31,669 --> 00:27:34,260 這些計算機想要成為直言 告訴記者,從字面上看,該怎麼辦。 612 00:27:34,260 --> 00:27:36,343 象花生醬和 果凍三明治的例子, 613 00:27:36,343 --> 00:27:39,360 如果不指定 正是你想要, 614 00:27:39,360 --> 00:27:42,190 它可能會留下來判斷或錯誤。 615 00:27:42,190 --> 00:27:44,890 分號表示, 這就是它的這個命令。 616 00:27:44,890 --> 00:27:48,310 它是超精密,它的 一個很容易的事情離開了。 617 00:27:48,310 --> 00:27:52,240 所以,現在這個計劃似乎並沒有不 以不同方式表現任何直到我 618 00:27:52,240 --> 00:27:53,500 使其更具活力。 619 00:27:53,500 --> 00:27:57,107 因此,而不是硬可能我自己 名字,讓我把一個佔位符值。 620 00:27:57,107 --> 00:28:00,190 而事實證明,我知道這 從已經閱讀文檔, 621 00:28:00,190 --> 00:28:04,080 和所使用的功能為年,即 printf的被設計為動態的。 622 00:28:04,080 --> 00:28:07,510 你不必預先知道 你想要的話把它。 623 00:28:07,510 --> 00:28:11,290 你可以代替有 佔位符,比如%的s,這 624 00:28:11,290 --> 00:28:15,500 是要告訴 電腦,放了串在這裡。 625 00:28:15,500 --> 00:28:17,740 >> 這串做的,我們要放在那裡? 626 00:28:17,740 --> 00:28:22,430 威爾原來,這兩者之間 括號,這還記得,劃定 627 00:28:22,430 --> 00:28:28,020 的輸入的函數,如果有 逗號分隔的事情列表在這裡, 628 00:28:28,020 --> 00:28:31,790 我們實際上通過在多個 輸入到一個函數。 629 00:28:31,790 --> 00:28:33,901 所以就像一些划痕 塊,你可能不 630 00:28:33,901 --> 00:28:36,150 已經打了他們 您的項目還沒有或根本, 631 00:28:36,150 --> 00:28:38,250 一些划痕塊有兩個輸入。 632 00:28:38,250 --> 00:28:41,220 兩個白色的盒子,你可以 輸入數字或單詞之中。 633 00:28:41,220 --> 00:28:45,210 因此,為了不C已將類似的功能 printf的,可以採取兩個輸入。 634 00:28:45,210 --> 00:28:48,050 再次,這個逗號 被隔開。 635 00:28:48,050 --> 00:28:51,070 因此,在英語,再有就是 你從來沒有編程之前, 636 00:28:51,070 --> 00:28:55,320 由邏輯printf的是一個函數, 採用兩個輸入,其中之一 637 00:28:55,320 --> 00:28:58,810 是一個佔位符,你會希望 printf的是要與此輸入? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 這是怎麼回事打招呼 漢娜,有希望。 640 00:29:03,220 --> 00:29:05,274 因此,要做到這一點,我們需要保存它。 641 00:29:05,274 --> 00:29:06,190 我要縮小。 642 00:29:06,190 --> 00:29:10,701 我要背下來去這裡 並說,讓你好進入。 643 00:29:10,701 --> 00:29:11,200 呵呵。 644 00:29:11,200 --> 00:29:14,830 什麼是錯的,而實際上 這是一個相當巨大。 645 00:29:14,830 --> 00:29:18,400 我有6行代碼 而像12行錯誤。 646 00:29:18,400 --> 00:29:22,120 因此,期待這一點。 647 00:29:22,120 --> 00:29:24,260 所以,這是怎麼回事嗎? 648 00:29:24,260 --> 00:29:27,370 因此,拇指這裡最好的規則, 特別是當你開始了, 649 00:29:27,370 --> 00:29:29,370 不要被分心 東西在底部。 650 00:29:29,370 --> 00:29:31,220 其實,我很刻意 只是向上滾動 651 00:29:31,220 --> 00:29:33,930 因為很多時候,一台電腦 不是所有的明亮的裝置。 652 00:29:33,930 --> 00:29:35,054 這將混淆。 653 00:29:35,054 --> 00:29:37,220 如果它看到一件事, 它不理解, 654 00:29:37,220 --> 00:29:40,030 它可能會誤以為其他 行代碼是不正確的, 655 00:29:40,030 --> 00:29:41,649 即使他們是完美的罰款。 656 00:29:41,649 --> 00:29:43,940 所以,你總是想工作 在錯誤自上而下。 657 00:29:43,940 --> 00:29:47,850 誠然,這是 超級神秘的時刻。 658 00:29:47,850 --> 00:29:50,830 >> 錯誤,使用未申報 標識字符串。 659 00:29:50,830 --> 00:29:52,130 難道我的意思是標準? 660 00:29:52,130 --> 00:29:53,720 不,我的意思是字符串。 661 00:29:53,720 --> 00:29:55,830 而它的指向,也許這是一個錯字。 662 00:29:55,830 --> 00:30:00,570 有點像,拼寫檢查的 十分怪異的方式,但在這裡的原因, 663 00:30:00,570 --> 00:30:02,840 你就會知道這 僅僅通過實踐,是 664 00:30:02,840 --> 00:30:06,390 它原來是串 在C中不存在事實上,C 665 00:30:06,390 --> 00:30:08,820 是一個非常古老的語言, 而且這是非常低的水平, 666 00:30:08,820 --> 00:30:11,361 而且它不會很多功能 您可能已經長大了 667 00:30:11,361 --> 00:30:14,620 有,如果你有,事實上,程序 在Java中,因為一些你有, 668 00:30:14,620 --> 00:30:16,980 但你可以教它新的東西。 669 00:30:16,980 --> 00:30:20,900 事實上,我們已經做到了這一點CS50, 即使在學期結束時, 670 00:30:20,900 --> 00:30:23,512 所有這些培訓車輪 將已取消, 671 00:30:23,512 --> 00:30:25,220 我們所做的這些 最初幾週 672 00:30:25,220 --> 00:30:29,830 最初是我們還 你包括CS50點小時。 673 00:30:29,830 --> 00:30:31,230 這是一個頭文件。 674 00:30:31,230 --> 00:30:32,440 更上的未來。 675 00:30:32,440 --> 00:30:36,430 >> 這是一個包含函數的文件 我們已為你寫好。 676 00:30:36,430 --> 00:30:39,180 而這些功能中的 獲取輸入功能 677 00:30:39,180 --> 00:30:43,520 從用戶,像字符串,和 號,和實數,等等。 678 00:30:43,520 --> 00:30:45,550 但它也有幾個快捷方式。 679 00:30:45,550 --> 00:30:48,200 它定義了布爾作為數據類型。 680 00:30:48,200 --> 00:30:50,340 C沒有真的還是假的。 681 00:30:50,340 --> 00:30:53,880 但是,我們可以給它的概念 真的還是假的這個庫的方式。 682 00:30:53,880 --> 00:30:57,670 它也沒有一個串 內置的,直到我們有這條線。 683 00:30:57,670 --> 00:31:01,090 因此,這行代碼指示 編譯器,哎,鐺,看 684 00:31:01,090 --> 00:31:03,570 在這個文件中的一個整體 一串代碼CS50 685 00:31:03,570 --> 00:31:06,330 寫這樣 使用此文件的人 686 00:31:06,330 --> 00:31:09,330 可以認為是理所當然的 他們已經添加的功能。 687 00:31:09,330 --> 00:31:11,220 >> 所以,現在讓我繼續前進 並清屏, 688 00:31:11,220 --> 00:31:14,178 如果好奇,我只是說控制 l每個時間來清除屏幕, 689 00:31:14,178 --> 00:31:15,500 或者你可以鍵入清晰。 690 00:31:15,500 --> 00:31:19,220 我只是現在要繼續前進, 類型做出招呼,一切都很好。 691 00:31:19,220 --> 00:31:22,550 還有一個神秘的輸出,但 這不是一個錯誤的信息。 692 00:31:22,550 --> 00:31:28,300 現在,如果我做點斜線打招呼,並作為 一旁,點斜線是不熟悉的大多數。 693 00:31:28,300 --> 00:31:30,430 這只是意味著,點手段 當前目錄。 694 00:31:30,430 --> 00:31:33,120 所以,如果你曾經使用過 DOS或Linux或UNIX 695 00:31:33,120 --> 00:31:35,410 你可能做了什麼 如CD點點,哪裡 696 00:31:35,410 --> 00:31:39,220 點點意味著倒退 時間,或者倒退,或者更高了 697 00:31:39,220 --> 00:31:40,370 在目錄中。 698 00:31:40,370 --> 00:31:43,090 點只是意味著看在 當前目錄。 699 00:31:43,090 --> 00:31:45,670 我希望你好,這是在這裡。 700 00:31:45,670 --> 00:31:47,750 事實上,現在它漢娜說你好。 701 00:31:47,750 --> 00:31:51,120 如果我再改 瑪麗亞,重新編譯 702 00:31:51,120 --> 00:31:55,650 它將使你好,點斜線 你好,該計劃不斷變化。 703 00:31:55,650 --> 00:31:58,060 >> 但是,這仍然是一個 非常愚蠢的計劃。 704 00:31:58,060 --> 00:32:00,972 如果我想船這個程序, 或者把它送給一個朋友, 705 00:32:00,972 --> 00:32:03,430 還是把它給瑪麗亞和漢娜 對於這個問題,這很好。 706 00:32:03,430 --> 00:32:07,300 我可以自定義為他們兩個, 但它永遠不會是動態的。 707 00:32:07,300 --> 00:32:10,870 一旦它編寫的,他們不能改變它 下到這些零和一。 708 00:32:10,870 --> 00:32:12,350 所以,我們做了一些更聰明? 709 00:32:12,350 --> 00:32:17,100 如果有什麼,而不是硬編碼 到程序這個人的姓名, 710 00:32:17,100 --> 00:32:20,890 如果我們只是得到了什麼 對需求的字符串? 711 00:32:20,890 --> 00:32:22,430 >> 因此,換句話說,讓我做到這一點。 712 00:32:22,430 --> 00:32:24,030 我要重新編譯該程序。 713 00:32:24,030 --> 00:32:25,710 讓我放大在底部了。 714 00:32:25,710 --> 00:32:29,920 讓你好點斜線打招呼。 715 00:32:29,920 --> 00:32:31,710 現在什麼也沒有發生。 716 00:32:31,710 --> 00:32:35,860 我們可以得到一個快速的志願者 使事情發生? 717 00:32:35,860 --> 00:32:36,360 上來吧。 718 00:32:36,360 --> 00:32:37,020 你叫什麼名字? 719 00:32:37,020 --> 00:32:37,445 >> PANCHO:潘喬。 720 00:32:37,445 --> 00:32:38,361 >> DAVID J.馬蘭:Pacho? 721 00:32:38,361 --> 00:32:39,609 上來吧。 722 00:32:39,609 --> 00:32:42,150 一旦你在這裡得到了,這是 將是非常給人留下深刻印象, 723 00:32:42,150 --> 00:32:44,060 但它更有趣 比我打字吧。 724 00:32:44,060 --> 00:32:49,007 如果你想繼續前進,鍵入您 名字,我做了這個節目只為你。 725 00:32:49,007 --> 00:32:49,840 只要輸入你的名字。 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 輸入。 728 00:32:53,900 --> 00:32:54,489 太好了。 729 00:32:54,489 --> 00:32:55,780 好,非常感謝你。 730 00:32:55,780 --> 00:32:56,708 >> PANCHO:非常感謝你。 731 00:32:56,708 --> 00:32:57,636 >> DAVID J.馬蘭:OK。 732 00:32:57,636 --> 00:32:59,028 >> [掌聲] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> 這是很親切。 735 00:33:01,840 --> 00:33:03,145 在這裡你去。 736 00:33:03,145 --> 00:33:03,770 我們做了什麼? 737 00:33:03,770 --> 00:33:05,930 因此,我們終於,至少 做這個節目的動態。 738 00:33:05,930 --> 00:33:08,400 現在,它仍然是肯定 設計給人留下深刻印象, 739 00:33:08,400 --> 00:33:11,480 但我們終於有能力 現在寫代碼提前,多 740 00:33:11,480 --> 00:33:13,770 如printf的作者, 然後動態地 741 00:33:13,770 --> 00:33:17,550 適應基於輸入已是 遞,或者由程序員, 742 00:33:17,550 --> 00:33:20,610 或由人誰實際上 與節目進行交互。 743 00:33:20,610 --> 00:33:22,990 因此,讓我們其實現在就試試 做一些其他結構 744 00:33:22,990 --> 00:33:26,625 看看如果我們不能使節目 自己更複雜。 745 00:33:26,625 --> 00:33:29,250 因此,讓我們繼續前進,而不是 寫這篇從頭開始, 746 00:33:29,250 --> 00:33:31,540 我要進入今天的 源代碼,而這一切 747 00:33:31,540 --> 00:33:34,290 可在球場上的 網站,你可以將它拖放 748 00:33:34,290 --> 00:33:36,590 到你自己的環境 週五來一次問題 749 00:33:36,590 --> 00:33:38,506 集1給你 說明,或者你可以 750 00:33:38,506 --> 00:33:41,200 這樣做在命令行 很好,但更多的驚喜P中設置1。 751 00:33:41,200 --> 00:33:44,940 >> 讓我們來看看這是什麼程序 這裡所說的,加法器C點。 752 00:33:44,940 --> 00:33:47,970 現在,我已經評論 它,但什麼是新的? 753 00:33:47,970 --> 00:33:51,230 乍看之下,什麼線 代碼是完全新的? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 也許不能從根本上 陌生了。 756 00:33:56,780 --> 00:33:58,417 >> 聽眾:[聽不清] 757 00:33:58,417 --> 00:34:00,250 DAVID J.馬蘭:是啊, 因此INT x等於得到n個。 758 00:34:00,250 --> 00:34:03,760 我們從來沒有看到任何這 前,但int是可能 759 00:34:03,760 --> 00:34:08,179 什麼樣的符號 變量,[?從?]一個整數。 760 00:34:08,179 --> 00:34:09,040 所以詮釋的整數。 761 00:34:09,040 --> 00:34:11,420 這只是更加 簡潔。 x只是隨意的。 762 00:34:11,420 --> 00:34:13,920 x和y和z是仍然 對數字相當合理, 763 00:34:13,920 --> 00:34:16,790 但一般我們使用的話,一旦 我們的程序變得更複雜。 764 00:34:16,790 --> 00:34:18,940 獲取當然,INT, 就像GET字符串, 765 00:34:18,940 --> 00:34:21,629 很可能會得到 從用戶一個int, 766 00:34:21,629 --> 00:34:23,670 然後我們要 做同樣的事情與年。 767 00:34:23,670 --> 00:34:27,610 而且顯然,儘管這 最後一行,24,看起來比較複雜, 768 00:34:27,610 --> 00:34:32,679 它會說,這個總和 而且,它是此其他東西。 769 00:34:32,679 --> 00:34:35,840 >> 而百分之通知我 大概是指什麼呢? 770 00:34:35,840 --> 00:34:38,190 什麼樣的角色%的 我顯然是服務? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 這只是佔位符。 773 00:34:41,719 --> 00:34:42,219 對嗎? 774 00:34:42,219 --> 00:34:45,149 百分比S為字符串, %的i是整數。 775 00:34:45,149 --> 00:34:47,690 還有的將是百分之˚F 對於浮點值,這 776 00:34:47,690 --> 00:34:49,273 僅僅是一個數字帶小數點。 777 00:34:49,273 --> 00:34:50,590 換言之,一個實數。 778 00:34:50,590 --> 00:34:55,270 因此,讓我們實際編譯這個 真正的編程速度快,不作加法。 779 00:34:55,270 --> 00:34:57,962 哎呦。 780 00:34:57,962 --> 00:34:58,670 好機會。 781 00:34:58,670 --> 00:35:02,970 所以注意在這裡,這段時間我的用戶 名稱此帳戶jharvard。 782 00:35:02,970 --> 00:35:06,620 我是在CS50 IDE,又名IDE50。 783 00:35:06,620 --> 00:35:11,030 而現在這裡用藍色,是一提,但 從環境中我的。 784 00:35:11,030 --> 00:35:16,050 而事實上,如果我放大到頂部 在這裡,請注意,我有一個IDE50 785 00:35:16,050 --> 00:35:19,490 我看你種這個詞, 把你的頭轉向一側,工作區。 786 00:35:19,490 --> 00:35:23,890 概括地說,事實上, 我看到波浪線斜線工作區 787 00:35:23,890 --> 00:35:26,910 意味著,在這個文本 基於命令的環境, 788 00:35:26,910 --> 00:35:32,300 我在文中相當於 這種圖形文件夾在這裡。 789 00:35:32,300 --> 00:35:35,730 所以,當我做點斜線 加法器,它說沒有規則 790 00:35:35,730 --> 00:35:37,372 使目標加法器停止。 791 00:35:37,372 --> 00:35:39,830 我不知道這意味著什麼, 但它的壞的某些原因。 792 00:35:39,830 --> 00:35:43,310 沒有這樣的文件或目錄 更清晰。 793 00:35:43,310 --> 00:35:45,670 它在哪裡呢? 794 00:35:45,670 --> 00:35:47,820 根據我的點擊 前面打開該文件。 795 00:35:47,820 --> 00:35:49,442 哪裡會是什麼? 796 00:35:49,442 --> 00:35:52,050 >> 這可能是在源 1瓦特,週三, 797 00:35:52,050 --> 00:35:53,960 我可以看到它,的確, 如果我打開了。 798 00:35:53,960 --> 00:35:57,220 還有加法點C,但在 這種基於文本的環境, 799 00:35:57,220 --> 00:35:59,380 再次,我必須要超明確。 800 00:35:59,380 --> 00:36:03,950 如果我想改變目錄到 源的1個星期三,我需要輸入, 801 00:36:03,950 --> 00:36:07,210 CD空間源的1個 週三進入現在 802 00:36:07,210 --> 00:36:09,810 我迅速變化 給我一個視覺提示 803 00:36:09,810 --> 00:36:12,330 我,真的,別的地方 在我的環境, 804 00:36:12,330 --> 00:36:15,710 但現在我能做到讓 加法器,它似乎工作, 805 00:36:15,710 --> 00:36:18,190 點斜線加法,給我一個整數。 806 00:36:18,190 --> 00:36:19,080 一。 807 00:36:19,080 --> 00:36:20,070 二。 808 00:36:20,070 --> 00:36:21,630 一和二的總和為3。 809 00:36:21,630 --> 00:36:24,140 但是,如果我不配合, 讓我們看看得到INT一樣。 810 00:36:24,140 --> 00:36:25,200 給我一個整數。 811 00:36:25,200 --> 00:36:26,590 第 812 00:36:26,590 --> 00:36:27,350 重試。 813 00:36:27,350 --> 00:36:29,060 確定。 814 00:36:29,060 --> 00:36:30,520 精細。 815 00:36:30,520 --> 00:36:32,130 50。 816 00:36:32,130 --> 00:36:32,680 50, 817 00:36:32,680 --> 00:36:33,010 好的。 818 00:36:33,010 --> 00:36:34,055 因此,它終於合作。 819 00:36:34,055 --> 00:36:36,430 而這部分的 功能,這些功能 820 00:36:36,430 --> 00:36:37,760 可以有內置的為您服務。 821 00:36:37,760 --> 00:36:43,330 >> 因此,實現內部 弄INT,什麼編程 822 00:36:43,330 --> 00:36:47,990 上週構造可能是在 有強迫重試的這種行為, 823 00:36:47,990 --> 00:36:49,962 重試,重試? 824 00:36:49,962 --> 00:36:51,670 是的,有可能是 某種循環。 825 00:36:51,670 --> 00:36:54,160 這將看語法 從頭開始的塊不同, 826 00:36:54,160 --> 00:36:55,880 但是這確實是 什麼是裡面的文件。 827 00:36:55,880 --> 00:36:58,505 而在幾個星期的時間,我們將 其實看看CS50庫 828 00:36:58,505 --> 00:37:02,000 至於裡面有什麼,但有 一個循環氣勢正是這麼做的。 829 00:37:02,000 --> 00:37:04,840 >> 讓我們玩一個愚蠢的小 比賽在這裡與此文件。 830 00:37:04,840 --> 00:37:06,550 零點零一C點。 831 00:37:06,550 --> 00:37:08,960 我們只是去一般 從零開始計數。 832 00:37:08,960 --> 00:37:11,220 我一直滾動過去 有些東西在上面。 833 00:37:11,220 --> 00:37:15,390 在這裡用藍色,劃定了所有 這些明星和斜線, 834 00:37:15,390 --> 00:37:17,310 你們誰編程 之前,那是什麼? 835 00:37:17,310 --> 00:37:18,690 為什麼我們保持跳過它? 836 00:37:18,690 --> 00:37:19,110 怎麼辦? 837 00:37:19,110 --> 00:37:19,490 >> 聽眾:這是一個註釋。 838 00:37:19,490 --> 00:37:19,800 >> DAVID J.馬蘭:是的。 839 00:37:19,800 --> 00:37:20,633 這只是一個評論。 840 00:37:20,633 --> 00:37:24,160 這是對人類評論 閱讀,在我們的情況下, 841 00:37:24,160 --> 00:37:27,120 告訴我們的文件的名 是誰寫的,和它做什麼, 842 00:37:27,120 --> 00:37:28,610 這樣你就不必 通讀代碼 843 00:37:28,610 --> 00:37:30,110 知道這個文件是一回事。 844 00:37:30,110 --> 00:37:33,110 這只是一個說明,但 在功能上它是無關緊要的。 845 00:37:33,110 --> 00:37:35,930 而且我甚至可以從刪除 我的文件,並沒有任何影響。 846 00:37:35,930 --> 00:37:38,740 該多汁線是這些 前兩個在這裡,現在。 847 00:37:38,740 --> 00:37:41,405 INT主要空隙是等效 我們當綠旗點擊, 848 00:37:41,405 --> 00:37:44,030 所以我們要離開的是 今天,我們會回來的, 849 00:37:44,030 --> 00:37:46,940 最終,至於是什麼 int和無效的,但現在, 850 00:37:46,940 --> 00:37:49,500 請注意我做了什麼 在這裡,你還可以, 851 00:37:49,500 --> 00:37:51,736 如果你有一個在網上 發表評論,如果您有 852 00:37:51,736 --> 00:37:54,670 一想到要分享 關於一個特定的代碼行, 853 00:37:54,670 --> 00:37:58,910 在C約定是做斜線 斜線,然後幾個簡潔的話, 854 00:37:58,910 --> 00:38:01,500 不是一個完整的句子, 一般不是一個段落, 855 00:38:01,500 --> 00:38:05,310 這只是說明了你,或者你 TF,或其他讀者或同事, 856 00:38:05,310 --> 00:38:06,990 你的代碼做。 857 00:38:06,990 --> 00:38:10,150 因此,而不是一定要看 在這一點,從線推斷 858 00:38:10,150 --> 00:38:12,550 9和10中,是什麼 該做的,八線 859 00:38:12,550 --> 00:38:14,945 我只是給了評論 問用戶的一個整數, 860 00:38:14,945 --> 00:38:17,820 然後,我沒有想太多硬 什麼線九10的。 861 00:38:17,820 --> 00:38:19,720 我只知道,那是什麼 總的來說,他們正在做的。 862 00:38:19,720 --> 00:38:20,460 >> 怎麼樣? 863 00:38:20,460 --> 00:38:22,060 那麼,這裡的提示。 864 00:38:22,060 --> 00:38:23,610 下面是整型的獲得。 865 00:38:23,610 --> 00:38:25,984 以及基於所述前一 的行為,好像GET INT 866 00:38:25,984 --> 00:38:29,080 是足夠聰明,以確保 人類配合並給它 867 00:38:29,080 --> 00:38:30,090 一個整數。 868 00:38:30,090 --> 00:38:32,270 但是,現在我們看到的這個。 869 00:38:32,270 --> 00:38:33,740 這讓人想起劃傷。 870 00:38:33,740 --> 00:38:36,140 我聲稱我 分析用戶的輸入, 871 00:38:36,140 --> 00:38:39,050 但有些不準確。 872 00:38:39,050 --> 00:38:43,200 而這顯然是在C是怎麼 我們表示了,如果其他人的一個分支, 873 00:38:43,200 --> 00:38:46,320 一個岔路,但我 說有點不準確。 874 00:38:46,320 --> 00:38:50,470 這是什麼程序的錯誤嗎? 875 00:38:50,470 --> 00:38:51,610 關於進一退? 876 00:38:51,610 --> 00:38:52,223 是啊。 877 00:38:52,223 --> 00:38:53,150 >> 聽眾:[聽不清]為零。 878 00:38:53,150 --> 00:38:54,025 >> DAVID J.馬蘭:是的。 879 00:38:54,025 --> 00:38:57,630 所以,如果我輸入零,讓我們考慮 正是這樣的情況下,或牆角的情況下, 880 00:38:57,630 --> 00:38:58,450 如果你願意。 881 00:38:58,450 --> 00:39:02,790 如果我輸入為零,因此它的 塊將會顯然抓住它? 882 00:39:02,790 --> 00:39:04,660 該如果還是別的? 883 00:39:04,660 --> 00:39:07,340 在其他,它會說, 你選擇了一個負數。 884 00:39:07,340 --> 00:39:10,476 事實上,零是不應該 是正或負, 885 00:39:10,476 --> 00:39:11,850 因此,這將是錯誤。 886 00:39:11,850 --> 00:39:12,930 這將是一個錯誤。 887 00:39:12,930 --> 00:39:14,580 那麼,如何才能解決這個問題? 888 00:39:14,580 --> 00:39:16,360 有人誰以前從來沒有編程? 889 00:39:16,360 --> 00:39:16,570 你want-- 890 00:39:16,570 --> 00:39:17,480 >> 聽眾:[聽不清] 891 00:39:17,480 --> 00:39:17,990 >> DAVID J.馬蘭:縮回? 892 00:39:17,990 --> 00:39:18,570 >> 聽眾:[聽不清] 893 00:39:18,570 --> 00:39:18,930 >> DAVID J.馬蘭:哦,你有嗎? 894 00:39:18,930 --> 00:39:20,350 有人誰以前從未編程。 895 00:39:20,350 --> 00:39:21,750 想試試你的手在 這一點,在紅色的襯衫嗎? 896 00:39:21,750 --> 00:39:22,600 上來吧。 897 00:39:22,600 --> 00:39:25,320 哦對了,上來吧,如果你不介意的話。 898 00:39:25,320 --> 00:39:27,586 所以從未編程 之前,你叫什麼名字? 899 00:39:27,586 --> 00:39:28,210 LAUREN:勞倫。 900 00:39:28,210 --> 00:39:29,626 DAVID J.馬蘭:勞倫,沒事的。 901 00:39:29,626 --> 00:39:31,150 因此,修復這個bug給我們。 902 00:39:31,150 --> 00:39:35,070 你從來沒見過C,據推測, 大概沒有其他語言。 903 00:39:35,070 --> 00:39:38,380 因此,解決這個問題的程序我們。 904 00:39:38,380 --> 00:39:39,100 很高興見到你。 905 00:39:39,100 --> 00:39:39,615 沒有壓力。 906 00:39:39,615 --> 00:39:40,156 LAUREN:是的。 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> DAVID J.馬蘭:但同樣,如果這 豪賭按計劃進行, 909 00:39:46,270 --> 00:39:48,350 外賣,這裡將 是,剛剛再次啟動 910 00:39:48,350 --> 00:39:51,080 注意圖案和 從現有的語法推斷 911 00:39:51,080 --> 00:39:55,420 怎麼回事,你可以表達 你自己,沒有雙關語意,為了 912 00:39:55,420 --> 00:39:58,410 捕捉到一些額外的場景。 913 00:39:58,410 --> 00:39:59,603 因此,我們說,否則,如果。 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf的,不錯。 916 00:40:05,230 --> 00:40:09,120 而與CS50通知 IDE和frankly-- IDE 917 00:40:09,120 --> 00:40:11,110 代表綜合 開發環境。 918 00:40:11,110 --> 00:40:14,110 這說法只是一種奇特的方式 一個程序,可以幫助你的程序。 919 00:40:14,110 --> 00:40:16,779 它確實人性化之類的東西 當你打印一份括號, 920 00:40:16,779 --> 00:40:18,320 它會自動給你其他的。 921 00:40:18,320 --> 00:40:20,760 該假設是,你是 最終將要鍵入, 922 00:40:20,760 --> 00:40:22,400 而且還做它用引號。 923 00:40:22,400 --> 00:40:24,190 >> 所以,我很喜歡23行。 924 00:40:24,190 --> 00:40:26,400 99%的存在的方式。 925 00:40:26,400 --> 00:40:29,920 有人想附和小費? 926 00:40:29,920 --> 00:40:31,420 我聽到分號觀眾。 927 00:40:31,420 --> 00:40:32,080 好。 928 00:40:32,080 --> 00:40:33,260 這樣就完成了。 929 00:40:33,260 --> 00:40:37,930 而現在,我只是有一點點 驚愕與線21。 930 00:40:37,930 --> 00:40:41,370 我們想得到怎樣的表現呢? 931 00:40:41,370 --> 00:40:43,370 什麼樣的問題,我們希望 問,你覺得呢? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 所以以前我們問的問題, 如果n大於零,做到這一點。 934 00:40:50,330 --> 00:40:51,870 否則,做到這一點。 935 00:40:51,870 --> 00:40:54,317 因此,我們需要選擇一個 要問的問題在這裡。 936 00:40:54,317 --> 00:40:55,192 聽眾:[聽不清] 937 00:40:55,192 --> 00:40:56,530 DAVID J.馬蘭:好。 938 00:40:56,530 --> 00:40:58,290 因此,如果n等於零。 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 優秀的。 941 00:41:02,100 --> 00:41:03,080 因此,讓我們暫停一下。 942 00:41:03,080 --> 00:41:04,850 謝謝你這麼多頂著這一點。 943 00:41:04,850 --> 00:41:10,890 讓我給你一個小當之無愧 壓力球,或許還有。 944 00:41:10,890 --> 00:41:11,900 因此,我們快到了。 945 00:41:11,900 --> 00:41:14,790 事實上,勞倫,如果你不 心,讓我做一個調整位置, 946 00:41:14,790 --> 00:41:17,850 剛需,甚至一致 我們在划痕看到的,是什麼 947 00:41:17,850 --> 00:41:21,080 做我想做的事與線 21和24,只需再次基礎 948 00:41:21,080 --> 00:41:23,290 我們如何在划痕這樣做,也許? 949 00:41:23,290 --> 00:41:24,230 >> 聽眾:移動它。 950 00:41:24,230 --> 00:41:25,605 >> DAVID J.馬蘭:是啊,動不起來。 951 00:41:25,605 --> 00:41:30,260 所以其他條件,第三,或 第四或第五或最終分支, 952 00:41:30,260 --> 00:41:34,100 應該已經來了以後, 這還只是按照慣例, 953 00:41:34,100 --> 00:41:36,047 只是因為如果你願意。 954 00:41:36,047 --> 00:41:37,380 所以,我需要做這樣的修改。 955 00:41:37,380 --> 00:41:39,660 我需要把我的 大括號回到這裡。 956 00:41:39,660 --> 00:41:42,700 而現在,這一計劃將編譯。 957 00:41:42,700 --> 00:41:46,140 我們是如此接近,但有 一個非常,非常微妙的錯誤。 958 00:41:46,140 --> 00:41:47,200 讓我們看看會發生什麼。 959 00:41:47,200 --> 00:41:49,660 >> 首先,讓我繼續前進,縮小。 960 00:41:49,660 --> 00:41:53,405 我要繼續前進, 鍵入使病情為零。 961 00:41:53,405 --> 00:41:55,070 哦,我撒謊了。 962 00:41:55,070 --> 00:41:58,760 現在,編譯器 其實很聰明。 963 00:41:58,760 --> 00:42:00,950 我真的不明白 它的錯誤消息。 964 00:42:00,950 --> 00:42:04,310 使用賦值的結果 作為不帶括號的條件, 965 00:42:04,310 --> 00:42:05,740 顯然是不好的。 966 00:42:05,740 --> 00:42:07,100 但是,這是什麼意思? 967 00:42:07,100 --> 00:42:10,860 >> 好了,尋找模式 在代碼中,我們以前見過, 968 00:42:10,860 --> 00:42:16,640 什麼是17行實際上做, 儘管勞倫稍微意 969 00:42:16,640 --> 00:42:18,790 否則? 970 00:42:18,790 --> 00:42:19,290 是啊。 971 00:42:19,290 --> 00:42:21,565 >> 聽眾:[聽不清] 972 00:42:21,565 --> 00:42:22,440 DAVID J.馬蘭:是的。 973 00:42:22,440 --> 00:42:26,610 所以請記住等號,顯然 正如我們以前使用過它,不等於。 974 00:42:26,610 --> 00:42:29,240 它的任務,由右至左。 975 00:42:29,240 --> 00:42:33,810 因此,線17的那一刻 是一個條件,它的 976 00:42:33,810 --> 00:42:37,890 括號內執行代碼, 但該代碼執行時, 977 00:42:37,890 --> 00:42:42,140 什麼是發生在零值? 978 00:42:42,140 --> 00:42:45,250 什麼是發生在n的值? 979 00:42:45,250 --> 00:42:46,810 成為零。 980 00:42:46,810 --> 00:42:50,520 因此,如果n變為零, 並再次,根據上週, 981 00:42:50,520 --> 00:42:54,690 我們一般說是零 是假的,一個是真實的, 982 00:42:54,690 --> 00:42:57,410 或者是一個沒有為零。 983 00:42:57,410 --> 00:42:59,590 所以,真與假,一年0。 984 00:42:59,590 --> 00:43:06,090 如果n為17行的已 給出的值0,是零真的嗎? 985 00:43:06,090 --> 00:43:06,590 第 986 00:43:06,590 --> 00:43:08,280 根據定義,零是假的。 987 00:43:08,280 --> 00:43:10,860 這是我們的約定 要堅持前進。 988 00:43:10,860 --> 00:43:17,320 所以才會線18,19和20 現在以往任何時候都適用,邏輯? 989 00:43:17,320 --> 00:43:18,320 他們不能。 990 00:43:18,320 --> 00:43:21,640 因此,我們問的問題 但不太精確, 991 00:43:21,640 --> 00:43:25,620 你不會不知道這一點,除非 你已經看到了,在C解決方案 992 00:43:25,620 --> 00:43:29,610 就是當你想表達 平等,你說等於平等的。 993 00:43:29,610 --> 00:43:33,140 所以等號已經用完 通過轉讓,由右至左。 994 00:43:33,140 --> 00:43:35,110 等於等於手段平等的。 995 00:43:35,110 --> 00:43:37,950 如果你真的想你的心 彎曲,JavaScript和PHP, 996 00:43:37,950 --> 00:43:40,490 還有等於等於平等,這 意思是另一回事, 997 00:43:40,490 --> 00:43:41,990 但我們會去,不久。 998 00:43:41,990 --> 00:43:45,760 >> 所以這是一個簡單的修補程序,但實現 超級容易犯這個錯誤, 999 00:43:45,760 --> 00:43:48,700 然後不知道奮鬥 對於分鐘,如果沒有一個小時, 1000 00:43:48,700 --> 00:43:51,490 為什麼我的代碼不 執行我打算? 1001 00:43:51,490 --> 00:43:54,140 這是因為你沒有告訴 它正是你的意思。 1002 00:43:54,140 --> 00:43:56,450 所以這幾乎是 完美的,這是偉大的 1003 00:43:56,450 --> 00:44:00,760 我們跨越這兩個小迷迷糊糊 的事情,因為現在如果我們解決這些問題, 1004 00:44:00,760 --> 00:44:06,240 我做的做條件為零 點斜線條件為零, 1005 00:44:06,240 --> 00:44:07,490 我想一個整數吧。 1006 00:44:07,490 --> 00:44:08,090 讓我們來看看。 1007 00:44:08,090 --> 00:44:09,160 第 1008 00:44:09,160 --> 00:44:10,740 它會強迫我去做。 1009 00:44:10,740 --> 00:44:11,990 所以42。 1010 00:44:11,990 --> 00:44:13,590 我挑了個正數。 1011 00:44:13,590 --> 00:44:16,470 所以,現在我該怎麼辦證明 這個程序正確嗎? 1012 00:44:16,470 --> 00:44:19,990 如果你是一個數學家,你不能 真正通過反复試驗證明了這一點, 1013 00:44:19,990 --> 00:44:20,490 對不對? 1014 00:44:20,490 --> 00:44:23,180 你不能只是校對 例子,但至少 1015 00:44:23,180 --> 00:44:25,494 作為一個程序員,我們不是 要試圖證明現在 1016 00:44:25,494 --> 00:44:27,660 這其實是 正確的,但我也許應該 1017 00:44:27,660 --> 00:44:29,470 測試一些代表性的案例。 1018 00:44:29,470 --> 00:44:31,070 >> 我測試過42。 1019 00:44:31,070 --> 00:44:33,030 我可以測試43。 1020 00:44:33,030 --> 00:44:34,910 我可以測試44。 1021 00:44:34,910 --> 00:44:35,640 測試45。 1022 00:44:35,640 --> 00:44:36,140 對嗎? 1023 00:44:36,140 --> 00:44:37,860 但我可以這樣做很長一段時間。 1024 00:44:37,860 --> 00:44:39,925 什麼會更多一些 有趣的情況來試試呢? 1025 00:44:39,925 --> 00:44:41,050 聽眾:[聽不清]為零。 1026 00:44:41,050 --> 00:44:41,740 DAVID J.馬蘭:所以零。 1027 00:44:41,740 --> 00:44:42,297 當然可以。 1028 00:44:42,297 --> 00:44:44,880 不錯,我們已經知道了這個時候, 由於勞倫的新代碼。 1029 00:44:44,880 --> 00:44:46,213 什麼是另一個很好的例子來試試呢? 1030 00:44:46,213 --> 00:44:47,320 聽眾:消極的。 1031 00:44:47,320 --> 00:44:50,070 >> DAVID J.馬蘭:負之一, 或許真的有點大, 1032 00:44:50,070 --> 00:44:52,617 所以也許負42, 但在一般情況下,當 1033 00:44:52,617 --> 00:44:54,450 測試你的程序 向前走,你 1034 00:44:54,450 --> 00:44:56,325 將要思考 給自己,喜歡什麼 1035 00:44:56,325 --> 00:44:58,050 是根本不同的情況。 1036 00:44:58,050 --> 00:45:01,720 我敢說負的情況下, 一個正的情況下,和一個零的情況下 1037 00:45:01,720 --> 00:45:03,365 相當多輪這些了。 1038 00:45:03,365 --> 00:45:04,990 讓我們來看看這雖然的一個變種。 1039 00:45:04,990 --> 00:45:06,930 條件之一。 1040 00:45:06,930 --> 00:45:11,224 這是一個正確的解決方案在這裡, 所以,你會看到兩個和網上, 1041 00:45:11,224 --> 00:45:13,390 如果通過行走 演練,一般會 1042 00:45:13,390 --> 00:45:18,090 這些增量逐步直到我們 得到完全正確的方法。 1043 00:45:18,090 --> 00:45:20,070 如果我們想問問 兩個問題在一次? 1044 00:45:20,070 --> 00:45:22,200 >> 讓我開了這個代替。 1045 00:45:22,200 --> 00:45:26,740 非開關,其原因 我們會看到另一個時間。 1046 00:45:26,740 --> 00:45:29,610 什麼是新的語法嗎? 1047 00:45:29,610 --> 00:45:32,760 目前,我正在玩遊戲 其中,電腦提示 1048 00:45:32,760 --> 00:45:35,550 我,給我一個整數 1和10之間, 1049 00:45:35,550 --> 00:45:37,180 然後我判斷用戶的輸入。 1050 00:45:37,180 --> 00:45:39,180 在英語的基礎上, 你在這裡看到的代碼 1051 00:45:39,180 --> 00:45:41,530 在藍色的,這是什麼程序在做什麼? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 聽眾:[聽不清]挑 一個或大或小的數目。 1054 00:45:46,380 --> 00:45:46,484 DAVID J.馬蘭:是的。 1055 00:45:46,484 --> 00:45:49,450 這只是裁定是否 我挑了個大,或中, 1056 00:45:49,450 --> 00:45:53,900 或基於一個非常小的數 小,中任意定義, 1057 00:45:53,900 --> 00:45:58,510 和大型這裡,但通知 語法這就是新的就是這個。 1058 00:45:58,510 --> 00:46:02,340 有沒有比int或等於少 簽,或大於或等於簽名, 1059 00:46:02,340 --> 00:46:05,430 其中一個是比其他,您 可以表達如Microsoft Word。 1060 00:46:05,430 --> 00:46:08,180 因此,在一種編程語言,你 通常只是做兩個字符, 1061 00:46:08,180 --> 00:46:09,450 一前一後。 1062 00:46:09,450 --> 00:46:12,695 又是什麼這可能 代表,符號與符號。 1063 00:46:12,695 --> 00:46:13,570 聽眾:[聽不清] 1064 00:46:13,570 --> 00:46:13,680 DAVID J.馬蘭:是的。 1065 00:46:13,680 --> 00:46:16,910 這只是意味著因為它 事實證明,C的作者 1066 00:46:16,910 --> 00:46:19,120 使用單一符號, 你可能會認為 1067 00:46:19,120 --> 00:46:22,430 將是完美的概念 的和,已經用完, 1068 00:46:22,430 --> 00:46:27,300 居然這麼符號與符號 抓住我們真正想要的情況。 1069 00:46:27,300 --> 00:46:30,610 >> 現在讓我們在兩個東西絆倒。 1070 00:46:30,610 --> 00:46:32,640 讓我去進取,不斷開拓的。 1071 00:46:32,640 --> 00:46:36,590 東西是有點令人擔憂。 1072 00:46:36,590 --> 00:46:37,970 不精確C點。 1073 00:46:37,970 --> 00:46:40,260 讓我介紹了兩件事情。 1074 00:46:40,260 --> 00:46:44,720 一,請注意,我們所能做的 數學,因為就像以前一樣,當 1075 00:46:44,720 --> 00:46:47,797 我們做了加兩個數,x和y的。 1076 00:46:47,797 --> 00:46:49,380 這是什麼程序顯然是在做什麼? 1077 00:46:49,380 --> 00:46:52,140 我不評論它, 我已經介紹%的樓 1078 00:46:52,140 --> 00:46:55,720 但我很快前面說 百分比f為浮點 1079 00:46:55,720 --> 00:46:56,970 值,這是實數。 1080 00:46:56,970 --> 00:46:59,520 東西帶小數 點,這不是整數。 1081 00:46:59,520 --> 00:47:02,270 你覺得這個計劃是 試圖證明我在屏幕上? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 是嗎? 1084 00:47:06,050 --> 00:47:07,550 聽眾:一個比10的結果。 1085 00:47:07,550 --> 00:47:07,780 DAVID J.馬蘭:是的。 1086 00:47:07,780 --> 00:47:09,680 什麼是1的結果除以10。 1087 00:47:09,680 --> 00:47:12,721 對,因為大家都有可能 長大了知道一個超過10 1088 00:47:12,721 --> 00:47:14,502 是什麼呢? 1089 00:47:14,502 --> 00:47:16,220 是的,這只是1/10或0.1。 1090 00:47:16,220 --> 00:47:16,720 對嗎? 1091 00:47:16,720 --> 00:47:19,010 因此,讓我們看看這實際上是。 1092 00:47:19,010 --> 00:47:21,010 因此,讓我繼續前進,並保存。 1093 00:47:21,010 --> 00:47:21,970 讓我去到這裡。 1094 00:47:21,970 --> 00:47:26,360 請不精確點斜杠 不精確,並且還請注意, 1095 00:47:26,360 --> 00:47:29,380 在Linux環境下,你不 必須輸入了不準確,並採取 1096 00:47:29,380 --> 00:47:30,010 整天。 1097 00:47:30,010 --> 00:47:32,910 它通常,如果你按下Tab鍵,就 將完成你的思想給你, 1098 00:47:32,910 --> 00:47:36,660 基於那些詞語 可在當前目錄。 1099 00:47:36,660 --> 00:47:37,160 確定。 1100 00:47:37,160 --> 00:47:37,970 所以,你是對的。 1101 00:47:37,970 --> 00:47:41,239 一個除以10,事實上,0.1。 1102 00:47:41,239 --> 00:47:42,280 不過,我有點好奇。 1103 00:47:42,280 --> 00:47:44,196 而事實證明的printf 支持某些功能 1104 00:47:44,196 --> 00:47:48,700 因此,你可以指定不止 小數點的默認數量。 1105 00:47:48,700 --> 00:47:52,140 所以,如果我想看到10進制 點我可以做個百分點, 1106 00:47:52,140 --> 00:47:55,510 為佔位符,點 10,給我10小數點, 1107 00:47:55,510 --> 00:47:58,140 然後還是浮點 值,和,為一邊, 1108 00:47:58,140 --> 00:48:01,550 這是什麼反斜線Ñ 顯然,我們一直使用的是? 1109 00:48:01,550 --> 00:48:03,450 事實證明,這是一個 符號為一個新的生產線。 1110 00:48:03,450 --> 00:48:05,970 這是非常明確的方式 說法到計算機, 1111 00:48:05,970 --> 00:48:08,759 將光標移動到下一個 之後,你行就大功告成了。 1112 00:48:08,759 --> 00:48:10,800 我們將看看會發生什麼 當我們不這樣做。 1113 00:48:10,800 --> 00:48:12,430 >> 讓我重新編譯做出不準確。 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 現在點斜線不精確。 1116 00:48:18,356 --> 00:48:18,930 確定。 1117 00:48:18,930 --> 00:48:19,780 仍然是對的。 1118 00:48:19,780 --> 00:48:21,512 一個除以10。 1119 00:48:21,512 --> 00:48:23,220 現在,我得到一個 有點好奇,但。 1120 00:48:23,220 --> 00:48:27,599 如果我看20十進制 指出,重新編譯,重新運行, 1121 00:48:27,599 --> 00:48:29,390 並作為預留 速度快,你也可以使用 1122 00:48:29,390 --> 00:48:31,800 你的向上和向下箭頭 翻閱歷史記錄, 1123 00:48:31,800 --> 00:48:35,476 所以你不必守 重新輸入這些命令,回車。 1124 00:48:35,476 --> 00:48:36,910 呵呵。 1125 00:48:36,910 --> 00:48:39,220 我不知道在小學。 1126 00:48:39,220 --> 00:48:43,260 好了,所以讓我 看到像29的地方了。 1127 00:48:43,260 --> 00:48:44,300 也許這只是一個僥倖。 1128 00:48:44,300 --> 00:48:46,907 也許我的電腦怪怪的。 1129 00:48:46,907 --> 00:48:47,990 這不是一個東西,對不對? 1130 00:48:47,990 --> 00:48:50,300 它做的事情確定性。 1131 00:48:50,300 --> 00:48:53,410 因此,請不精確。 1132 00:48:53,410 --> 00:48:54,890 OK,這是搞砸了。 1133 00:48:54,890 --> 00:48:57,620 那麼到底是怎麼回事? 1134 00:48:57,620 --> 00:49:00,160 >> 因此很明顯,你 老師一直趴 1135 00:49:00,160 --> 00:49:03,900 給你這一切時間 原因,我們不久就會看到。 1136 00:49:03,900 --> 00:49:05,569 但是,讓我們結束與另一個程序。 1137 00:49:05,569 --> 00:49:07,860 這是一個小程序 有人在幾年前寫的, 1138 00:49:07,860 --> 00:49:08,990 它實際上是一個比賽的一部分。 1139 00:49:08,990 --> 00:49:11,198 沒有人真正編寫代碼 這樣,如果你​​這樣做, 1140 00:49:11,198 --> 00:49:12,880 這是文體上的問題​​。 1141 00:49:12,880 --> 00:49:14,660 但人們做到這一點的吹牛的權利。 1142 00:49:14,660 --> 00:49:17,260 要寫出最混亂 看程序, 1143 00:49:17,260 --> 00:49:19,110 但是做一些有趣的事情。 1144 00:49:19,110 --> 00:49:23,930 和記我以為我們會離開 今天,在科爾頓發揮我們在這裡, 1145 00:49:23,930 --> 00:49:27,840 要運行這個程序, 其中,即使在只使用 1146 00:49:27,840 --> 00:49:31,450 下在該文本為基礎的 環境,給了我們這一點。 1147 00:49:31,450 --> 00:49:32,264 該死。 1148 00:49:32,264 --> 00:49:34,930 >> [笑] 1149 00:49:34,930 --> 00:49:36,800 >> 待機。 1150 00:49:36,800 --> 00:49:39,340 [聽不清]Ç破折號L M。 1151 00:49:39,340 --> 00:49:42,885 你會看到神奇 咒語,我們不久就會看到。 1152 00:49:42,885 --> 00:49:45,780 [聽不清]好吧。 1153 00:49:45,780 --> 00:49:51,592 現在,你甚至可以 做這樣的事情。 1154 00:49:51,592 --> 00:49:52,340 就是這樣。 1155 00:49:52,340 --> 00:49:56,410 對於CS50,我們將看到你在星期五。 1156 00:49:56,410 --> 00:49:58,910 >> [音樂播放] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [掌聲] 1159 00:52:41,440 --> 00:52:42,812