戴維·J·馬蘭:所以這是CS50。 這是CS50自己的科爾頓奧格登 更多的是誰的音樂,你可以 下載的soundcloud.com/cs50。 所以今天我們重點更 編程的藝術。 我們需要在我們離開 關閉上週,重點 上划痕,這是該 圖形化編程語言。 走下來,以一個較低的水平, 使用更傳統的編程 被譽為C.語言,但 一路走來,實現 ,同樣的想法,我們 談到上週五 不僅會在此復發 C語言,但在大多數每隔 我們看看這個學期。 因此,我們呼籲這件事 這裡過去是什麼時間呢? 這是代表發言的。 所以我們稱這個聲明。 它做一些事情。 這是一個指令,一個 計算機或划痕可能執行。 從今以後,我們也開始 調用這樣的函數, 對於原因,我們將很快看到。 同時,我們看到了這樣的事情。 而這些都是一般 被稱為什麼構造? 聽眾:循環。 戴維·J·馬蘭:所以一個循環。 所以,很簡單。 它的字面做什麼,它說。 和划痕,如果你想 補習班更多拼圖在那裡, 片將增長,以適應它。 我們會在C中看到, 我們可以做同樣的事情。 另一種類型的環,不過, 在划痕可能是永遠的, 或有任何數量 其他方法。 但是,讓我們更 多面手的樣子,臉上 這可能很熟悉, 在循環更普遍。 馬克·扎克伯格:一個 東西電腦 是的,是真的好 重複的命令。 作為一個人,你會得到 如果你真的很無聊 不得不做的同樣的事情 許多在一排次。 但是,一台計算機可以做同樣的事情 數百萬甚至數十億倍, 不覺得無聊,並且能夠 開展了這一點真的很好。 因此,舉例來說,如果我 想祝大家 Facebook上的生日快樂 通過向他們發送一封電子郵件, 這可能要花費一個多 世紀真正寫出來 所有這些郵件給大家。 但是,代碼只有幾行,我可以 有一個系統發送一封電子郵件給大家 在Facebook希望 他們生日快樂。 所以,這就是循環是為什麼 他們是有價值的東西 計算機能夠做的非常好。 戴維·J·馬蘭:所以,如果 你去過收件人 一些CS50的和 後期的Dropbox的空間, 這其實正是我們 這樣做,使用代碼挺喜歡的。 我們基本上有一個大的 表格成 人們已經將他們的 姓名和電子郵件地址。 我們寫的代碼,一點點的 可以遍歷這些地址 吐出的唯一地址的 至於有人提出多次。 此後,我們發 從CS50的機器人自動發送的電子郵件, 包括優惠券代碼。 現在,我們還看了 這個構造最後一次。 這是一個特殊的 比如什麼? 所以,是的,一個布爾表達式。 和形狀是指 捕捉到這一點。 的所有這些問題, 形成真或假的划痕 看起來有點像這樣。 我們稱這是一個布爾表達式。 這的確是真的還是假的,是或否。 這是回答問題的方式。 而同時,你可以使用這些布爾 結構內部表達 像這樣的,它的 當然是條件 或分支機構,諺語 岔路。 他們不僅可以看 像這樣的,但他們也可以 他們已經偷別人的關聯。 而實際上你可以有一個三通 岔路口或四叉方式 在路上,只要通過 築巢這些東西, 因為你會在看到划痕 如果你還沒有。 而且,你可以用C做的一樣好。 讓我們以另一種通才 看一個alumnist,還有,誰 可能會呈現出不同的方法 這些東西叫做條件。 比爾蓋茨:人們經常 每一天的決定。 例如,在你走之前,你外面 種有一個if語句,上面寫著: 如果下雨那我 需要讓我的夾克。 和電腦是驚人的,一旦你 決定這些類型的語句, 它們可以可靠地執行 這些東西在令人難以置信的速度。 等計算機程序真的 是數學和一些一點點 if語句的地方 該決定被做出。 戴維·J·馬蘭:那麼作為 大家可能都知道,這是 鄉親們像比爾·蓋茨, 保羅·艾倫等人 真正拉開序幕 所謂的個人計算機 革命多年。 我想,我們潛水前 到一些文案, 我們希望有關的故事,從阿爾伯克基, 自然歷史博物館新墨西哥州的博物館 和科學,其中一些比爾·蓋茨的“ 和保羅·艾倫的故事最早 是講述我們現在怎麼有 今天的PC和Mac等等。 對於這一點,但是,我們需要兩個志願者 誰都有很好的旁白聲音 朗讀的腳本。 好吧,怎麼樣在回到那裡。 上來吧。 以及怎麼樣在前面這裡。 下來吧。 把你的地方在這裡。 正如你們上來,一對夫婦 行政公告。 切片時,處理 選擇部分, 將於本 週三至週五。 更多關於這個未來 週三在演講。 超級節,同時,在 我們下週提供的東西 由此,整個班級的邀請 參加比較大型 段,多了一個舒適, 少了一個舒適的。 我們將公佈詳情 這一點,還有,在本週晚些時候。 同時段, 自己,將啟動 在三個課程一周,零指數, 這意味著那些一兩個星期 出來。 所以不用擔心。 你還沒有錯過 沿著這些線路的東西。 同時,在此期間,如果你 有任何問題行政, 電子郵件我和德文郡和加布 和Rob在這裡這個地址。 最後,問題集 0是當然的。 您可能已經注意到了這一點 在球場上的網站。 它應該為你提供 所有問題的答案 你可能有沿途的 入門問題集。 但是,如果你發現自己 需要援助之手的, 通過各種手段參加工作時間, 週一,週二,週三,週四 本週日晚 四食堂。 看到有網址的資料 哪裡辦公時間應。 現在,讓我們來認識我們 兩位嘉賓今天。 你叫什麼名字? JAY PAUL:周杰倫保羅。 戴維·J·馬蘭:周杰倫 保羅,很高興見到你。 HIKARI:光速。 戴維·J·馬蘭:光速? HIKARI:光速。 戴維·J·馬蘭:光速。 很高興認識你。 傑伊·保羅和阿光在 他們對這些音樂前 站在我打印的兩個腳本 今天上午從新墨西哥州 自然歷史博物館和科學博物館。 而我的想法 我會做的開銷 是陪你朗誦 劇本,這段歷史 一些視覺影像,沒有驚喜。 而我事先做了 是prehighlight在你的腳本 你應該閱讀, 你應該讀什麼。 我們將主要 只是備用的段落。 因此,這就像你可能會 做英語課。 這真的迫使觀眾 相信你的故事在這裡。 我們可以? 因此,這裡的故事是,我們有一個 BASIC,並開始在劍橋。 JAY PAUL:那是冬天,1974年, 在劍橋,馬薩諸塞州 這裡冬季非常寒冷。 一個大鬍子,長頭髮 大學輟學命名 保羅·艾倫是耐勞的整個哈佛 廣場,專注於他的想法。 他在那些日子裡主要的當務之急 是如何讓他的朋友,比爾·蓋茨, 退學去 與他的生意。 HIKARI:兩個已經走了 通過一些商業投資 同時,開始在湖邊 學校在西雅圖的地方 他們在支付了免費的電腦時間 在當地時間測試一台PDP-10電腦 共享公司。 最近的計劃是退出 學校形成了一家軟件公司。 阿倫已經離開了華盛頓 州立大學。 但在最後一刻,蓋茨 決定堅持哈佛大學。 JAY PAUL:那一天,哈佛大學渡 廣場,艾倫看準一月 1975年發行的熱門電子產品 與地球停標題, 世界上第一台小型機套件 對手的商業模式。 下方的標題是 一個小盒子的圖片 裝飾用燈和開關。 這就是所謂的MITS牛郎星8800。 和艾倫知道這是什麼 他一直在尋找的。 HIKARI:討論天緊隨其後。 艾倫和蓋茨理解 牛郎星的意義。 他們經常討論 關於微處理器 並等著看 將與他們進行。 現在有一個小型機套件 大眾電子封面。 它顯然沒有軟件呢。 他們想像的國度 程序員降在MITS公司。 因此,他們被稱為埃德·羅伯茨, 該公司的負責人, 自稱有一個版本的 BASIC編程語言幾乎準備 為Altair。 他們沒有。 和羅伯茨一定知道他們沒有。 他漸漸從每天10個電話 誰的人有一個基本快好了。 而他的股票的反應 是,“第一人 誰顯示了一個工作 基本得到了合同。“ JAY PAUL:蓋茨和艾倫 從來沒有見過一個牽牛星。 他們甚至從來沒有見過的 英特爾8080微處理器 在牛郎星的心臟。 但幾年前 艾倫曾編寫過程序 一台主機計算機上仿真 以前英特爾的操作 微處理器。 他們在這段時間 會做同樣的事情。 HIKARI:隨著英特爾 8080手動在他身邊, 艾倫在坐了下來 哈佛的PDP-10電腦 並寫下了仿真器和軟件 必要的工具來完成編程。 同時蓋茨不再去 類和獻身 對設計的基礎上, 利用一切伎倆 他知道,以獲得尺寸 向下跌破4千字節。 JAY PAUL:出阿爾伯克基, 埃德·羅伯茨接到蓋茨的電話 問,詳細了解如何 Altair的具體處理程序。 從來沒有人問過。 和羅伯茨開始得到關注。 HIKARI:隨著時代的發展 工具和設計準備, 蓋茨和艾倫寫道: 在PDP-10中的代碼, 爭取另一位哈佛大學的學生, 蒙大衛杜夫,寫數學例程。 之後的最後一晚 編程,阿倫坐上飛機 提供基本為MITS公司。 他花了乘坐飛機出令人擔憂。 而早在劍橋 蓋茨擔心。 他們測試了他們基本的 它工作在模擬器上。 但是,如果模擬器是錯誤的? JAY PAUL:隨著飛機 走近阿爾伯克基, 艾倫意識到,他們的 BASIC,現在整齊載 在一個小卷 穿孔紙帶,將 將是一個沒有獨立沒用 計劃,叫裝載機,那 會告訴如何牛郎星 閱讀紙帶幸福 送入電傳打字機。 他掏出筆記本,並迅速 潦草下來loader程序 在彙編語言,然後手動 翻譯說成1和0 牛郎星會理解的。 HIKARI:艾倫期待 乾淨,小,高科技公司 男人的西裝運行。 於是,他很驚訝,當羅伯茨見面 他在機場看上去就像一個大農場 手。 羅伯茨還驚奇。 當他放棄了哈佛大學 程序員在昂貴的酒店, 艾倫不得不承認, 他買不起房。 JAY PAUL:MITS公司,本身是 坐落在一個塵土飛揚的地帶商場。 在裡面凌亂 工作台是一個牽牛星 裝了5千字節 存儲器和通過電纜連接 以電傳打字機。 羅伯茨和總工程師, 比爾耶茨,等待著期待 艾倫切換自己的裝載機 計劃到牛郎星。 電傳開始隆隆,因為它拉 紙帶通過紙帶閱讀機。 花了也許15分鐘 加載程序。 然後突然電傳打印的 記憶的提示,然​​後一個現成的提示, 和艾倫開始打字 一些測試命令。 為了大家的驚愕, 該軟件的工作。 有當然的錯誤。 更主要的是它的工作。 HIKARI:後來,在他們的途中到 3.00美元午餐潘喬的,馬蜂飛 在拾取器的窗口 卡車和刺痛了艾倫的手臂。 但在這一點上沒有什麼 會破壞心情。 牛郎星現在有了基本的 一個家庭的第一商業軟件 計算機,由保羅·艾倫和比爾做 蓋茨,做生意微軟。 戴維·J·馬蘭:很多 由於我們兩國的讀者。 [掌聲] 戴維·J·馬蘭:現在 你有你的選擇, 你離開的閃閃發光,前 或者在dark--哦輝光, 等待一秒鐘,wait--閃閃發光 在黑暗的大象輝光 從CS50自己的成功。 HIKARI:哦,謝謝。 戴維·J·馬蘭:全部 好,謝謝你這麼多。 [掌聲] 戴維·J·馬蘭:所以真實的故事。 這就是說所有這些是 機器和易用性,使我們 現在使用它們,並採取 理所當然的,真的 從這裡開始,僅幾步之遙 從這個實際戰場。 而現在的今天,如果你還沒有去過, 這是麥克斯韋德沃金,所述計算機 科學建設, 也蠢蠢欲動。 而在此二樓 建築不掛三頁 從原來的源代碼的 比爾·蓋茨和保羅·艾倫寫道。 事實上,如果你使用放大 在您不僅可以看到 其名稱中 原始類型,但也 他們的簽名,他們裝飾á 幾年前,當他們最後一次訪問。 但是,什麼是特別引人注目 關於這就是他們所要做的 是寫一個程序,將 讓其他人寫的 自己的方案。 當時所有有帶 這牽牛星機由MITS進行。 和所有他們需要的是一些方法 因此很容易為業餘愛好者和人民 喜歡我們在這個房間裡居然程序 如果沒有一定了解 彙編代碼或機器 碼,或上帝保佑,0和1。 我們的程序員一樣, 那些在這個房間裡,我們 希望能夠表達 自己更像偽代碼 即使這是一個有點更挑剔 挑剔比上週我們討論。 我們不希望寫這樣的代碼, 保羅·艾倫和比爾·蓋茨一樣。 相反,我們要編寫代碼, 看起來多了幾分人性化。 現在,這就是所謂的基本語言。 和行號有你 使用簡單的數行代碼 那你寫的。 我們甚至不須 這樣做的這些日子。 但是你可以在這裡看到 如何打印“你好,世界” 的確大概印了這一點。 還等什麼比爾和保羅所做的是 授權人寫這樣的代碼 而不是of--如果你看一看的 計算機科學wall--這樣的代碼。 事實上,CS50最近 有機會 坐下來與哈利·劉易斯教授 在計算機科學系,誰 實際上教草案 蓋茨幾年前, 而站在這裡之前 這三頁的摘錄。 讓我們一起來看看。 哈里劉易斯:你在這裡是 早期的軟件上市 寫的比爾·蓋茨和保羅 艾倫,微軟的創始人。 這樣的代碼是有趣 有兩個原因。 首先,它成為 微軟的第一款產品, 這是一個解釋器 BASIC編程語言。 其次,這是 第一次嘗試之一 創建一個解釋如此平凡 人們可以使用個人電腦。 所以,比爾·蓋茨是一個 本科在哈佛。 我開始在哈佛大學1974年的教學。 這是在1975年完成。 所以這是他職業生涯的早期 在我職業生涯的早期。 其實我教條例草案 在這段時間的課程。 保羅·艾倫是不是 哈佛的學生,但他 曾是一名高中 同學比爾·蓋茨。 如果你來看看 在清單中,將會 居然找到第三 名,蒙大衛杜夫, 誰是蓋茨的同學 你們是哈佛。 好了,這裡是一個 有趣的評論在這裡。 它說:“在4K可以刪除平方根 但對於循環應該仍然有效。“ 好了,這是什麼意思是,有 兩種方法來編譯這個程序。 一個是上一個版本運行 這牛郎星電腦 只有具有4K字 存儲器中,存儲器4096字。 但大版本有8K。 還等什麼這說的是 ,在4K版本 你必須刪除一些 代碼,使其適合。 和的事情之一 這將被刪除 將平方根例程。 但顯然 for循環應該還是 當你編譯下工作,即使 對於剛剛4K版本的計算機。 戴維·J·馬蘭:所以的主題之一, 我們將在計算機科學中看到, 是這個概念 分層和抽象, 真正站在肩膀上 人誰已經來到我們面前,不是 不像某些比爾·蓋茨 和保羅·艾倫的敘事在這裡。 而這句話的意思是 今天,我們可以採取 理所當然的事情,其實 我們更容易編寫代碼。 事實上代碼,因為我們上週五表示,為 更多技術上稱為源代碼。 而正是這種英語的語法 這是更合適的,更明確 不是像偽代碼, 其中有沒有正式的定義。 今天我們要去 關注的是源代碼 看起來像這樣,這 誠然,乍一看 看起來完全隱蔽。 坦率地說,它的方式更加美觀 較複雜的底層程序。 所有這些程序呢, 召回,是我們沒有說什麼? 它只是打印的“hello world”。 然而,看看所有我們需要的東西 環繞這很簡單的短語。 但沒過多久全部 這些線路多 會更好的感覺給你。 且流程如下。 我們需要在我們的處置 是取碼,如源 我們剛才看到的代碼。 我們需要一個新的計劃 通過運行它。 我們需要算法,可以 轉換的源代碼,這樣, 成目標代碼,0和1。 換句話說,什麼 我們今天要學 是如何做到這一點,寫 源代碼往上頂, 把它作為輸入到一個特殊的 程序被稱為編譯程序, 而我們將要產生的目標代碼。 這是只是一種奇特的方式 他說,我們將採取什麼 看起來像這樣,通過它 成稱為編譯程序, 產生的目標代碼 看起來是這樣的。 因此,這些都是字面上 0和1的模式 是由一個理解 英特爾電腦這幾天, 如果解釋由CPU, 電腦裡面的大腦, 將逐字打印出來, 很簡單,“世界你好”。 現在有比你更多的方式0和1 希望可能需要為該。 那是因為我們正在建設 一個很好的協議的複雜性 我們可以從此理所當然的。 換句話說,很多聰明的人 給我們提供了很多很酷的工具 和強大的軟件,使用它我們 現在可以讓我們自己的項目。 所以,讓我們開始吧。 而上週五,和 對於習題集0本週, 你會打的 世界是這樣的。 從今天起和問題 設置1,下週代碼 會看起來多了幾分 神秘,但在功能上是 將是相同的。 所以通知,上面是從無到有, 底部是C坦白划痕 是一個很大的用戶 友好訪問。 但如果你現在比較直觀頂部 底部,有一種一對一的 之間的對應關係 拼圖塊和語言 我們即將一起玩。 特別是,就是說, 藍色拼圖往上頂, 顯然相當於什麼關鍵字 在這門語言或特殊短語 稱為C? 聽眾:printf的。 戴維·J·馬蘭:printf的。 這意味著格式化打印。 而這只是一個幻想 說法printf的C語言的方式 將會是一個語句或函數 可打印的東西到屏幕上。 這是什麼打印到屏幕上? 不管你告訴它裡面 的報價,括號內。 如此反复,無可否認, 有很多東西 你必須記住, 括號,引號,分號, 和所有的這一點。 但是,所有這一切是那種 的旁邊的點。 有趣的外賣現在 是,在划痕的發言權塊 幾乎是等同於 在C中的printf語句 同時,黃色拼圖 向上頂,當綠旗點擊, 大概相當於 在這裡什麼關鍵字? 聽眾:主。 戴維·J·馬蘭:那麼主要。 也許詮釋,也許作廢。 但主要的有點像聲音 這一點很重要,確實是。 所以,當綠旗點擊 又正是一塊拼圖 揭開序幕的 整個耐刮劃。 但是,我們要現在就開始打電話 在主,此功能稱為主。 現在,同時我們會 這個概括如下。 我們可以稱說的功能。 它可能看起來 具體是這樣的。 那麼,怎麼樣的循環? 如果我們要開始轉換,或 翻譯更從頭℃, 這件事情在這裡顯然是剛剛 說的“hello world”永遠的。 如果這些關聯如此 在划痕貓的腳本, 它只是要不停地說 在某種卡通氣泡, “世界你好,你好世界,你好 世界“廣告nauseum,直到永遠。 如果我們想要做類似的事情 C,它會顯得有點神秘。 但是,我們可以達到同樣的 結果,我們最終會 發現,像這樣的語法。 我要再次用printf, 因為在一天結束時 我想打印的“hello world”。 而我顯然使用的是 關鍵字是不是永遠。 這是不是同時的話。 但就在語義 英語,種時 表明某種循環或週期。 因此出現這種情況是 在C使用的關鍵字。 雖然如此,為什麼不同時 真正有效的意思是永遠不會消失? 好吧,雖然,因為我們很快就會 欣賞所有的越多, 具有此括號旁邊 在那裡你可以把一個布爾表達式。 而只要是 表達式為true,則此代碼, 在這兩者之間,並標示 大括號,我們會打電話給他們, 將只保留一次又一次地運行。 所以,真實不虛。 因此,儘管真正的手段 只是這樣做下去。 這幾乎是一個愚蠢的 構建表達自己。 但是沒有永遠 在C語言關鍵字有一段時間。 並有一個很簡單的 布爾表達式像真的。 所以,我們會看到, 實現相同的結果。 你可能怎麼回事實現一個循環? 那麼,在刮你可能 硬編碼一個特定的數 在這裡的循環迭代。 所以這正是我們 可能會做在這個版本的C, 因此,我們有一個所謂的循環。 和for循環在這裡是怎麼回事 迭代,有點神秘地, 從提升價值0 到,但小於10。 現在,變量劃傷。 你可能不會有 際使用這些。 但有什麼意義,在一般情況下, 變量上週我說? 那是什麼? 聽眾:點。 戴維·J·馬蘭:來點? 呵呵,點。 好吧,跟踪點, 例如,在一個遊戲。 或者更一般地做 與變量是什麼? 什麼是他們的效用? 聽眾:內存。 戴維·J·馬蘭:是啊,所以內存。 它是用來存儲東西。 和愚蠢的視覺í排序中使用 最後一次是這樣的玻璃碗。 如果我們想存儲 一些變量裡面, 例如,現在的 值是6,因為有 六個乒乓球在這裡。 這只是某種存儲 容器,該發動機罩下方 與位0和1實施 然而,一台電腦發生這樣做。 因此,在划痕,如果我們 希望有一個變量, 我們可以用一個橙色塊這樣。 我們稱之為反 在這種特殊情況下。 I初始化為0。 什麼是我那時候怎麼辦? 永遠的,說櫃檯,而如果 你在玩刮, 你只看到划痕。 你把貓或其他服裝 他將在議題發言的次數。 1更改計數器 如按1遞增。 所以這是要 從什麼那麼什麼算什麼? 從0直到無窮大,或 直到划痕休息, 或之類的,直到你 失去觀看的興趣 他有多高其實可以算。 那麼我們如何把它轉換為C? 它會顯得有點神秘。 但同樣,如果你​​看一下每個 這些線的單獨 他們那種陣容一般。 因此很明顯,int是要 有C語言的一些特殊含義 我們將看到一次。 順便說一句這意味著整數。 所以它只是意味著數量。 所以,這類型 玻璃碗我想,人們 可以存儲數字 不是乒乓球。 而我將用等號 那裡給它分配一個0值。 所以這是很喜歡集 計數器為0,但在C 同時,在真實的,那就是 等效,當然,永遠, 儘管這是一個有點神秘, 然後裡面的花括號中。 你也可以認為這些花括號, 您可以輸入鍵盤上, 因為真的是像在曲率 這些黃色的環塊劃傷。 它包括多行代碼。 printf的是得到一個 現在有點嚇人,因為我 不僅看到行情在括號中。 還有什麼是新的 語法在這個例子? 有一成Ð。 然後反斜杠n是在那裡。 我們也看到,之前,即使 雖然我沒有提到它。 然後有一個逗號。 然後還有一個計數器。 但是,我們可以看到在短短的 矩,這僅僅是 說法打印的標準方式 “小數”,報價,引文結束, 一些十進制數。 不過,我以後告訴你 什麼是十進制數是。 因此,事實上,有一個逗號 在此行中的printf的說法, 是指直接進行打印 一些十進制數。 哦,對了,號碼是 不管這個變量的值是。 因此,使這更 顯然,我們將看到一個例子 不久,涉及的printf到底 在真正的C程序的上下文。 現在只是換了一些 這些結構。 布爾表達式,你可能沒有 機會在你的程序中使用這些 但你很可能, 尤其是在使用條件。 所以這兩個例子從 從頭開始的意思是如果x小於y, 或者如果x小於y和y是少 大於Z,我們如何翻譯呢? 那麼,在C中它只是 會是這樣的。 有點神秘,更括號, 一些奇怪的符號(&),但從根本上 的想法很簡單,因為他們 在一塊拼圖的世界。 我們只是如果有什麼檢查 不到別的東西。 怎麼樣的條件? 在英語簡單地說,這是什麼 的划痕代碼塊做,你會說什麼? 聽眾:比較兩個數字。 戴維·J·馬蘭:比較兩個 號,並且如果x小於y 它說為多。 如果x大於y 它說為多,其他 如果x是等於y它說為多。 現在在哪裡x和y是從哪裡來的? 誰知道。 划痕的這一塊 代碼是斷章取義。 但是,我們現在要做的是翻譯 這只是一瞬間看到的。 所以,當你舒服 本週習題集 0在這個世界上扮演 在左邊,實現 該理念並沒有改變 本週或下週或以後。 我們只是要 開始寫東西 以不同的方式與我們的 鍵盤而不是鼠標了。 因此,如果x小於y和 有一些括號那裡, 再有就是一些大括號 種再封裝它 就像黃色拼圖做。 我要去給printf點¯x 小於y等等。 什麼是好的關於C, 你可以在這裡看到, 是你沒有得到這個嵌套, 嵌套,嵌套那是必然 將你的代碼推到右側。 您可以改為擁有一切 陣容整齊這樣。 但是,這只是一種美學 細節我們將在不久再見到。 好吧。 所以這使我們回到 這個神秘的尋找程序。 讓我們來實際編寫一些代碼。 現在,你如何去寫代碼? 所有你所擁有的這些年 在Mac或PC,台式機或筆記本電腦, 你確實有能力 開始編寫程序代碼。 但是你可能會丟失 一種特殊類型的程序。 你當然可以編寫代碼。 但是你不一定能, 開箱即, 轉換的源代碼 成目標代碼,0和1 沒有你的電腦是什麼? 聽眾:編譯器。 戴維·J·馬蘭:那麼編譯器吧。 現在,你們中的大多數可能 沒有自己的編譯器, 從來沒有下載的編譯器。 但是你會看到,你可以下載它 象大多數其它的軟件。 在Mac OS中的世界,你可能會 下載或已下載 一些所謂的Xcode或GCC或鏘。 如果你來自 Windows世界,你可能會 下載Visual Studio中, Visual Basic中,環境類的。 有幾十個編譯器 這些天,你可能會使用。 但是它的短這裡 是,這將是一個痛苦 ,坦率地說,一個技術 噩夢數百 的人患有不同 電腦的配置,所有的 配置自己的機器 以完全相同的方式 讓我們都可以在同一頁上。 所以我們,相反,這樣做 在CS50是我們給你 一個標準的環境中, Linux環境下這是 去看看小 這樣的事情。 你會看到更多這樣的 問題1規範, 將上網本星期五晚上去。 而這意味著什麼 就是你從今以後 要能夠 下載並安裝程序 所謂的CS50電器。 而且你要下載和 所謂安裝其他程序 虛擬機管理程序,它僅僅是一個 實現這一目標的假想方式。 無論你擁有Mac還是PC或 Linux的計算機或計算機的Solaris, 或什麼瘋狂的工作 你正在運行的系統, 你要下載一個程序 所謂的虛擬機管理程序這是 要運行CS50 電器在您的計算機上 無論您的操作系統是什麼。 換句話說管理程序轉換 我們的東西,以任何一種語言, 無論你說明 自己的電腦理解。 所以這是一個分層。 再次,這是一種 專題中的電腦 科學,對事物的頂部建設。 你可能有Windows。 你可能有Mac的操作系統。 但下週開始你 要下載 一個免費的軟件 所謂的虛擬機管理程序。 你要下載的一塊 軟件名為CS50設備。 這是要在管理程序上運行, 這是要在計算機上運行。 和最終的結果是 那大家都會 有這樣一個簡單的窗口 這在您的Mac或PC 這給了我們所有的幻想 運行相同的操作系統, 沒有任何其它 您的計算機上的影響。 你可以全屏 它與基本行為 就好像你正在運行的 所謂的Linux操作系統, 這是什麼CS50 設備是基於。 因此,讓我們實際使用此 現在寫一個程序。 你可以寫一個程序 使用Microsoft Word。 你可以寫一個程序 使用文本編輯,或記事本, 或寫字板,或幾乎任何字 你曾經使用過的處理程序。 但現實情況是,你不應該 使用真正的這些程序。 你當然不應該使用 像Microsoft Word中,這 有大膽的面對和斜體,和 大字體和小字體, 因為電腦沒有 關心任何。 所有的電腦 要關心的是 英語就像用C寫的說明 所以我們會做內部 在CS50電器 被自由使用的程序 可用,它的 預先安裝在此 家電,Gedit的叫。 和Gedit是只是一個超級簡單 文本編輯器,像Mac OS的文字編輯, 如Windows記事本,那將 看起來有點像這樣。 因此,讓我們其實並不 看這個幻燈片。 但是,讓我們真正進入 環境本身。 我要繼續前進, 登錄後,在該另一窗口, 我的CS50電器,我已經 我的筆記本電腦預裝了這裡。 請注意,如Windows和 Mac OS中,它有一些菜單。 像Windows卻讓 它在那兒,而不是 的Mac OS中,它把它在那裡。 但現實是它的 所有種相同。 而在這裡是一個整體 一堆軟件。 有Dropbox的。 還有一大堆的配件, 圖形化的程序,我們會 後來在任期問題集使用。 有建在這麼一個Web瀏覽器 這是一個全功能的電腦 裡面的電腦。 不過,我要點擊這個 這裡最左邊的白色圖標, 這對於Gedit的圖標。 而且它會打開一個窗口 有三板給它, 左1,個頂個,和底部的。 現在,在這個右上角一個 我要實際編寫一些代碼。 因此,讓我們做到這一點,。 我要去文件,保存。 你可能永遠不會看到 這個特殊的窗口前。 但是,這是像Mac OS或Windows。 這只是一個窗口 所有的文件夾 我有這台電腦裡面。 我要去拯救 該文件的hello.c。 我要去 未來,然後單擊保存。 現在發現我有一個標籤 在左上叫hello.c的。 所以,很可能 熟悉即使你不 之前使用這個特定的程序。 現在,我要在那些輸入 命令相當神秘的序列 我們剛才看到的。 包括標準I / O.h。 更多關於不久。 智力主要無效,左大 撐,收花括號。 然後還有裡面我覺得是 在那裡我們有“世界你好”,分號。 現在保存。 因此,這是用C語言編寫的程序, 寫入,因此,在源代碼。 但我不能只是運行此程序。 我有點想翻番 點擊一個圖標的地方, 但沒有圖標存在其他 比源代碼文件。 什麼,又是過程,現在 我需要通過運行這個文件? 聽眾:編譯器。 戴維·J·馬蘭:所以編譯器。 因此,在不同的計算機上你 以不同的方式做到這一點。 不過,我們已經在這裡做了 在CS50電器這 代表你怎麼可能 做到這一點在許多不同的系統, 是,我只是要 運行一個叫做make命令。 並作出簡直是要做到這一點。 讓我的程序。 因此,請打算 運行一個編譯器給我。 和該程序的名稱 我想提出的是你好。 現在提出的是一個程序。 並足以聰明 意識到如果我說讓你好, 它會自動查找 一個名為hello.c的文件 只是因為這是 這樣它的配置。 所以,當我打到現在進入這裡,這 瘋狂神秘的線剛剛被處決。 相信我,才 長,在短短幾天, 你就會明白什麼都 那廢話手段。 但現在,只知道做 觸發執行一個編譯器的。 換句話說,它發現 編譯器在我的電腦上 這就是預裝 在CS50電器 我們會交給你的習題集1。 它然後把hello.c中的 輸入和明顯產生 0和1的輸出。 並且在默認情況下它的作用是它可以節省 這些0和1在一個文件名為hello。 雖然這個語法也可能 是新的給你,只是說點 你好削減將是該 指我運行這個程序。 對於現在和至少一對夫婦 週的,幾乎所有的節目 我們寫將要在 黑白文本窗口。 沒有鼠標,沒有點擊, 沒有窗戶,沒有圖標。 我們要保持簡單 並專注於基本思想 一開始之前,我們得到的東西 更高的水平,例如, 喜歡打出來的遊戲,我們聊 關於上週的第一場演講。 所以,當我打在這裡輸入,它的 在文本僅相當於環境 要雙擊名為hello的圖標。 你還指望意志 發生時,我按下回車鍵呢? 聽眾:這將打印的“hello world”。 戴維·J·馬蘭:希望 將打印的“hello world”。 事實上的確如此。 現在,有過一些 在這裡神秘的語法。 讓我們倒帶僅售 一會兒,看看我們 無法啟動只是推斷 修修補補,嘗試和失敗, 至於什麼是怎麼回事。 如果我擺脫了反斜杠的n? 現在,你們中的一些誰已經 之前大概編程 立刻知道這意味著什麼。 但是,對於那些你們誰已經 以前從來沒有編程, 至少覺得自己是怎麼回事 當我重新運行該程序更改? 所以,我要下來回到我 小黑白窗口, 是窗口,其中 我可以編譯的。 我要重新編譯打招呼。 我們將看到相同的 命令的神秘序列。 而我會做點斜線打招呼。 而現在的人,如果你願意, 誰從來沒有編程之前, 可能是什麼不同呢? 是啊。 聽眾:它不會停止 印刷的“hello world”。 戴維·J·馬蘭:這是怎麼回事to--遺憾? 聽眾:它不會停止打印呢? 戴維·J·馬蘭:不會 停止打印的“hello world”。 所以不是一個壞主意。 其他的想法? 是啊。 聽眾:錯誤訊息? 戴維·J·馬蘭:錯誤 消息確定,可能是。 還有什麼? 聽眾:它可能打印 支架用分號呢? 戴維·J·馬蘭:可能打印 支架以分號為好。 所以也許這反斜線然後是一些 樣的同時終止這很重要。 任何其他的想法? 因此,所有的好點子。 而事實上,這是怎麼回事 為一個錯誤信息。 這可能是最有可能的 是在一般的答案 在接下來的幾個星期 當我們學會了這裡的代碼。 但現在記得的電腦 只會做你告訴他們做什麼。 就像可笑的花生 醬和果凍的例子。 我們人類的電腦只應該 做你告訴他們做什麼。 所以在這種情況下,如果 不要告訴電腦 來移動閃爍的光標移動到 下一行,它不會做。 所以,當我運行這個程序 現在,發現其中的差別。 看起來像一個錯誤。 這是一個審美的錯誤,也許是。 但是,什麼是這個不同 輸出與最後一個明顯? 是啊。 聽眾:它沒有做新的生產線。 戴維·J·馬蘭:它沒有做新的生產線。 現在,你們誰 有可能做的網頁 以前,你可能知道的 BR標記或段落標記, 非常相似的精神。 Web瀏覽器會忽略你,直到 你告訴它該怎麼做。 同樣的,就像C語言寫成只 會做你告訴它的事情。 這樣的理由是 所有的這些例子中, 迄今為止,已經種 隨便過這樣的反斜線 在那裡,這是手段 通過它,你表達你自己 作為新行字符,可以這麼說。 您還可以種體會,也許, 這看起來有點傻 如果沒有別的。 如果我想要一個新的生產線,只是 按Enter鍵,然後種 的屠宰一樣,該代碼 真的不應該擦你以正確的方式。 即使你不 真正關心在這一點上, 你會發現, 這不是一個特別 好看的一段代碼。 還等什麼世界 決定年前 當你想要把 光標移動到一個新行明確, 你必須明確地說, 新的生產線,反斜線ñ。 而且還有一些其他的 這樣的符號。 但現在我們只 專注於反斜線ñ。 現在,讓我們把節目 更有趣一點。 我要繼續前進, 此時打開一個新的文件。 我要保存此為hello-1.C。 而就踢,我要 去把它放到我的Dropbox文件夾。 正如你將在CS50見 對於家電文檔, 本週晚些時候的問題 設置1,我們會鼓勵 您使用的Dropbox或 一些等價的服務, 因為那時所有代碼的 將被自動備份。 因此,這就是為什麼我 去到這個文件夾在這裡。 現在我會寫一 略有不同的程序。 包括標準I / O.h,INT主要作廢。 然後在這裡的printf,你好世界, 這也正是像以前一樣。 但現在我想打印的東西 這是一個有點不同。 我想打印出來, 說,“你好,大衛。” 好吧,所以很明顯, 它應該有希望 是,如果我重新編譯的情況下 這個程序,重新運行它, 它會說“你好,戴維。” 但是,如果我想要的東西介紹 這種類型的變量, 容器的概念,是怎麼回事 存儲的D-A-V-I-D,而不是硬編碼 到我的程序。 好吧,如果我開始了 做這樣的事情? 字符串s,所以這是一個變量。 如果你想要一個字符串, 又名一個詞或短語。 字符的順序是什麼 我們在編程調用的字符串。 我們只是去一般的呼叫 它s,因為它是一個不錯的簡單名稱。 不過,我可以把它叫做什麼。 我要說的字符串s等於 報價引文結束,“大衛,”分號。 現在我想插入 D-A-V-I-D成什麼樣,我打印。 和我們之前看到的傳情 對一些特殊的語法屏幕 這使我們能夠 替代的價值。 什麼是特殊 符號幾張幻燈片前? 所以個百分點。 當時它是百分比 d為十進制數。 這不似乎真的與此有關。 原來那裡的 另一個百分號, 這是百分之秒,它代表 一個佔位符的字符串。 所以,現在,很簡單,我 要去使餵-1, 因為這個文件就是所謂的 HELLO-1.C,然後按Enter鍵。 我搞砸了。 這是怎麼回事? 好了,這裡就是我們要開始 認識到我們在這個命令 線環境中,這個 純文字環境。 有圖標上單擊鼠標無 像文件夾現在。 和剛才想回來。 在哪個文件夾沒有我說的 我救了我的代碼? 所以Dropbox文件夾。 本來叫什麼。 但它發生在被稱為Dropbox的。 所以,我莫名其妙地需要雙擊 即,為了得到收存箱文件夾 然後送我 代碼名為hello-1.C。 其實,讓我繼續前進,並盡量減少 這個窗口只是一瞬間。 就像Windows和Mac OS, 有在Linux下的文件夾。 有在CS50電器夾。 這只是我們馬上圍 自己這個文本的環境。 但是,如果我雙擊 對Dropbox的,注意有 是我想對文件進行編譯。 但我需要這個黑白 終端窗口,可以這麼說。 但是,我所需要的,因此,移動 進入該文件夾或目錄。 所以稍微晦澀難懂,但 你會習慣這一點。 在Linux的世界, 這又是操作 系統我們對CS50的內部運行 電器,有一個叫做cd命令。 這意味著我可以做的光盤,空間,Dropbox的。 CD,改變目錄。 右。 早在一天,當人們 發明了計算機和操作系統 像這樣的系統,他們想 輸入最少的按鍵可能。 所以,最簡單的方式說 更改目錄為光盤。 所以,如果我打的CD,Dropbox的空間, 察覺到曾在這裡改變。 括號內的 該設備是一種 humoring我和 提醒我我在哪裡。 所以打開的文件夾是Dropbox的。 如果我現在輸入ls的 列表中,再次簡潔, 因為人們不想 在當天L-I-S-T型背。 因此,他們反而使得LS上。 輸入。 請注意,我看到兩件事情,HELLO-1.C, 然後這個隱蔽的事情,源1米。 這只是我的方式說 源代碼1週星期一。 這是我從下載的文件夾 CS50的網站,我今天早些時候提出 而只是把它變成了 家電提前。 但現在我們唯一 在乎的是使這一計劃。 所以,當我鍵入make HELLO-1,回車。 該死的。 出事了。 因此,讓我們取笑這個分開。 而不幸的是,這是哪裡的東西 變得有點緊張,在第一, 至少,如果你已經 以前從來沒有編程。 我的上帝。 我寫了兩行程序,並 我有四根線的錯誤。 那麼,什麼是怎麼回事。 首先總是向後滾動 並發現第一個錯誤訊息, 因為通常情況下編譯器只 弄糊塗了你和我。 編譯器是非常愚蠢的。 他們只會做什麼 你告訴他們做什麼。 如果你迷惑他們,他們只是 要種丟了手 也許投入更多的錯誤信息 比實際上是相關的。 因此,讓我們來看看第一個。 超級神秘的第一位。 但注意,這裡的名字 文件中,我搞砸了明顯。 結腸5,​​結腸5只指 第5行的第五個字符。 因此,字符列第五, 如果你願意,錯誤。 使用未聲明的標識符字符串。 您的意思是標準N? 不,我的意思是字符串。 然後它的種 複製和粘貼 我打字真的畫我 注意,我搞砸了。 所以由於某些原因C, 或者至少編譯器 不理解的詞串。 那是因為我們和好了。 所以字符串不存在 在C CS50是什麼呢, 在最初的幾個星期 唯一的類, 為我們提供一些培訓 輪子,可以這麼說。 我們把這些輔助輪 所謂CS50.h.一個特殊的文件裡 因此,這是兩種文件的第二 名字中的點h上顯然結束。 讓我們倒帶。 printf的是一個語句或函數 這顯然是打印的東西 到屏幕上。 但是你沒看到我 實現printf的,正確的。 有人年前實現的printf。 在什麼樣的文件,你會賭他 (或她)把實施 在printf的,對於printf的代碼? 在一個叫做標準的I / O.h文件。 事實上,它可能是在 兩個文件,標準I / O.h, 它代表頭 文件和標準I / O.c, 它代表的C源代碼。 於是,他或她幾年前屁股 他們寫道:到該文件中的代碼 讓我們這樣的人 年後,可以將其包含, 可以這麼說,在我們自己的節目。 事實上,這就是井號 其次是字,包括做。 它看起來在本地硬盤驅動器上, 發現所謂的標準I / O.h文件, 然後有效地複製和 我自己的文件裡粘貼了。 所以現在我的程序知道 如何打印到屏幕上。 因此,通過這種邏輯,其中 是字符串定義? 聽眾:CS50.h. 戴維·J·馬蘭:CS50.h. 事實上,這就是我們, 核心員工,都做了。 我們已經發明了一些數據類型, 可以這麼說,就像一個字符串, 除了那些你 免費獲得,如一個int。 我們會看到其他類似一個char 一個字符和幾個。 裡面的CS50.h顯然是 至少某些提字符串。 所以,現在讓我先走 並重新運行化妝HELLO-1。 我會再次放大,穿過我的手指。 現在已經做了一個 改變我固定的大多數事情。 但是,該死的。 更多百分比比數據參數。 我做了什麼錯了這一次? 因此,它仍然是相當神秘的。 但這個錯誤是 7號線和21字符。 因此,讓我們去看看在這裡。 這是一個有點微妙。 但是如果你考慮一下 這裡的基本思想是, 或許我們可以這樣取笑分開。 這樣的printf是函數名。 括號,迄今為止,是 就像我們把各地 我們傳遞的東西 作為輸入的函數。 沒事,只是一個 任意人會議。 使用括號。 裡面的括號 我們已經把雙引號, 然後像一個字符串“Hello World”。 但是在前面的例子很 簡單地做我們來看看有划痕。 我們有百分之D,還有什麼 是那些括號內 我叫了口頭上? 是啊。 聽眾:所以這是你正在做什麼 [聽不清],從[聽不清] 這是什麼[聽不清]? 戴維·J·馬蘭:沒錯。 因此,我們有百分之ð。 但是,我們不得不關閉 引號,頓號,計數器。 右。 我們規定我們想要的 做作為佔位符。 所以,我什麼都做的,是 逗號,你想要什麼我把? 聽眾:S。 戴維·J·馬蘭:S, 因為本例中為 是在存儲容器的名稱。 那就是玻璃碗的名稱。 而在此之前它是反在那 簡單的刮例子中,我們看著。 所以,現在已經做了兩個 變化,讓我放大 並嘗試再次到 編譯這個程序。 現在我看到神秘的線。 但是,這實際上是 編譯器的名稱。 鐺是編譯器的名稱。 讓剛剛救了我 有史以來頭痛 打字那麼久瘋狂的命令了。 所以,現在如果我不點斜線HELLO-1, 我看到“Hello,大衛。” 漂亮給人留下深刻印象,不過,對吧? 我們可以做 這個有很多更簡單 而不談變量 和CS50.h和所有的。 因此,讓我們使它成為一個 更有趣一點。 除了CS50.h, 有東西像字符串 宣布,該CS50庫 也有一些功能。 所以就像幾年前,有人寫 printf和把它在標準I / O.h 和一些其他文件。 我們的CS50的工作人員,寫了一個函數 所謂的getchar,GetDouble,GetFloat, 調用getInt,GetLongLong,GetString的, 我們把這些文件裡面 所謂CS50.h和CS50.c. 我們把他們的內部 的CS50設備。 而人們也可以 如果他們在網上進行下載 希望把他們在他們的 自己的電腦也是如此。 這就是說,我們已經創建 即獲得來自用戶的輸入的功能。 我不知道,什麼都 這些數據類型包括。 調用getInt是一種簡單的,像 從用戶得到某種方式的整數。 和GetString可能喜歡弄 一個字或從用戶的句子。 因此,讓我們著眼於這一點。 我要去回 家電,我要繼續前進 並保存此文件,姑且稱之為 它HELLO-2.C我的第二個版本。 讓我們做一些改動。 這一次,而不是 硬編碼大衛,這 做一個令人難以置信的一致 但給人留下深刻印象的程序, 如果我不是這樣做的GetString? 現在可以看到的GetString 有一個開放的括號, 封閉的括號,因為 它不需要任何輸入。 這只是去給 一個字符串從用戶。 現在其他的語法詞。 分號剛剛結束的代碼行。 你並不需要它們無處不在。 但是,這只是意味著我 與這行代碼完成。 讓我移動到另一個 語句或函數。 字符串聲明了一個變量。 串好像是說 給我一碗,請。 並讓我把一個字符串在裡面。 而現在上了等號。 什麼是等號 基本上等同於? 聽眾:分配。 戴維·J·馬蘭:是的,分配的值。 所以,如果我,例如,呼叫 這個功能的GetString, 我們會在一個時刻,我們來看看 會提示輸入字符串的用戶。 這就好比讓那麼我寫 D-A-V-I-D在一張紙上。 當我說的字符串 s等於GetString的, 平等並不真正意味著 相當於C語言編程。 這意味著從右側分配 右手側到左手側。 所以,我已經得到了一個字符串。 和等號手段把它 在存儲容器稱為第 再通過這關要 printf的實際做它的事。 所以,最終的結果則是怎麼回事 看起來有點不同。 讓我們不要讓HELLO-2。 或者可以工作。 你下沿。 讓HELLO-2的工作。 點斜線HELLO-2,回車。 我似乎有無限 環什麼的。 什麼也沒有發生。 為什麼呢? 聽眾:它使得一個無限循環。 戴維·J·馬蘭:這是一個死循環。 種它等著我 實際上它提供了一些信息。 因此,讓我繼續前進,並鍵入 在大衛,然後按Enter鍵。 而現在它說:“你好,大衛。” 如果我再次運行它。 讓我們輸入羅布,“你好,羅布。” 現在,這是最糟糕的 用戶界面不斷。 用戶顯然 應該知道該怎麼做。 但不管。 使用這些相同的建築 就像在擦除塊 我們可以解決這個問題,說 像你的名字嗎,結腸癌, 空間,封閉報價,接近 括號,分號。 如此反复了很多 愚蠢的語法。 但是請注意,我只是增加了一個 拼圖上面這一個 以上這一個。 所以,現在如果我重新運行此,HELLO-2,回車。 等待一分鐘。 怎麼了? 它不表現任何不同。 是啊。 聽眾:你沒有運行make了。 戴維·J·馬蘭:我沒有 再次運行做出了吧。 所以我改變了我的源代碼。 但同樣,有這麼流。 通過編譯源代碼提供 你新的目標代碼,或0和1。 所以,我需要實際 重新運行化妝HELLO-2輸入。 好了,事情似乎已經發生了。 點斜線HELLO-2。 你的名字嗎。 現在要清楚,這是為什麼 將光標放在同一行? 沒錯。 我沒有把反斜線 Ñ​​在這裡在我的代碼。 所以,現在我可以寫 像Daven,回車。 我可以再次運行它,然後鍵入 像加布,回車, 我們得到不同的程序 一遍又一遍又一遍。 現在,最終我們將需要 使用幾個不同的功能。 我們需要引入一些最終 條件,有條件做的事情。 也許循環,所以我們可以做 事情一遍又一遍。 也許這將是很好,如果我們 可以實現自己的功能, 就像我們可以實現我們自己的 printf的還是我們自己的版本的GetString的 和GetFlow,因為最終連 使用此命令行環境 我們可以做的,即使是最 視覺上有趣的東西。 事實上,總之讓我做到這一點。 我要繼續前進 並關閉這些窗口 在這裡開這個圖標, 這僅僅是一個更大的 版本的嵌入式 終端窗口。 所以Gedit的不僅 這個地方我的代碼, 而且一個內置的終端窗口中, 黑色和白色的窗口,在這裡我可以運行 命令。 我剛好開 一個更大的版本了。 現在,我要進入 我已經在文件夾 把事先在球場上的網站。 而且我要繼續前進, 打開一個名為thadgavin.c文件, 這是別人寫的。 如果我們看一下這個, 這不是種代碼 我們會因為被寫 這段代碼的目的 是寫的最漂亮的 看代碼,他或她可以, 不論是否 另一個人可能永遠 理解這段代碼。 事實上,每一年有什麼 所謂的模糊ç比賽,這 是誰寫的真正的怪才 沒有其他人可以讀取的代碼, 但是,做任何事 很簡單,或真是太神奇了。 而且我們認為我們會 總結這個樣子 在東西是相當驚人的 你可能已經看到過一次。 但我們將結束在這個 注意,點斜線,thadgavin。 然後,這就是等待。 這就是它的CS50。 我們會看到你在星期三。 [音樂播放]