[音樂播放] ALLISON BUCHHOLTZ-AU:嘿大家。 歡迎來到你的第一個 官方CS50部分。 正如你可以,看到這是 部CS50狀,剛 拉了我們今天的議程。 那麼,我是誰,我敢肯定 你們都知道。 我是你的TF。 我不只是一個隨機的學生 誰在冒充你的TF。 

而且我會去通過 種有部分會流, 期望我們有, 資源,等等,等等。 我們要談的數組,ASCII 功能,命令行參數, 它不是在這裡,但 我也會幫助 有種你想通過 你的下一個PSET本週。 我相信你會明白一切。 

因此,首先question--我是誰, 除了在這裡你旺盛的TF。 我艾莉森Buchholtz金。 這是我第二年TFing CS50。 我也TF CS51的春天。 你可能會看到再次出現 如果你決定接受它。 我也是一個PAF,所以任何Freshmen-- 如果你不是一個新生, 這是我第三年 作為建議的傢伙。 我很精通 建議你對生活和課程 CS之內,而不是在CS。 我是一名計算機科學選礦廠。 我在斯樓,最好的房子高級。 還沒等我切換到 CS我大二春天, 我其實是一個生物醫學工程師。 我本來打算去地中海學校。 我將是一個創傷外科醫生。 並具有完全 改變,因為我把CS50。 我把我的課程二年級秋季。 這是我第一次接觸CS如初。 我是你的78%的一個誰 有經驗為零進來, 它徹底改變了我的生活。 現在我在我的工作 微軟,和你可愛的TF。 而CS50大概是1 最好的經驗 說我已經在這裡 Harvard--無論服用類 並能夠幫助 教給學生喜歡你。 

所以,我真的很激動 你都在這裡。 如果你進來 晚了,有糖果, 你應該感到 免費搶過來,或者發 別人抓住它給你。 沒關係。 我不想吃。 我的房間有足夠的巧克力,所以 你們應該嘗試並完成了。 我知道的有100件, 但像,在週一4時, 我想每個人都可以利用一些糖。 

所以大家誰是 正式在我的部分 應該得到一個電子郵件 從我有我的電話號碼, 電子郵件addr​​ess--隨意添加我的 谷歌聊天軟件,隨意添加我在Facebook, 同時也為您的休息, 你可以發郵件給我就在這裡。 有兩個H的。 每個人都總是這樣 就像兩個L's或兩個C的。 兩個H在姓氏。 否則,它會反彈,並 我不會讓你的電子郵件。 

所以,隨時給我發電子郵件, 與我聯繫在任何時間。 我可能不會回去 您應在24分鐘之內, 但我答應回去 你在24小時內。 如果你打電話給我半小時前 您PSET是因為,你是喜歡, 我不知道我在做什麼佳佳。 幫我。 我要你平靜下來, 但在一天結束時, 如果你打電話給我半小時前 您PSET是由於什麼也沒有寫, 我要像,好吧,也許 它的時間來使用該晚一天。 因此,我將所有的回應你 要求在一個非常及時。 我的手機通常是 貼在我的手上。 我通常多回應 快超過24小時, 但我只能保證 24小時響應。 

行。 那麼,為什麼我們在這裡? 另外,如果您有問題 任何時候,請讓我知道。 我談了很多。 我說話快,但請 隨時打斷我。 這給了我喘息的餘地為好。 因此,部分是時間 對於我們真的只是潛水 中,獲得一些實踐經驗, 經過我們提到的話題 在課堂上或在學習材料 我們建議你們在網上。 我們將真正經歷 一些有點這些資源。 

因此,一些注意事項部分支持。 CS50--的事情之一,使 這是我最喜歡的類別之一 是,你永遠不會孤單的感覺。 我們有超過100名員工 人誰是來幫助你的。 我們的辦公時間 週一至週四。 因此,有這麼多的人誰 愛班只是像我這樣做 ,誰是真的在這裡 因為他們要到這裡來。 我們中的大多數是學生,而這 就像第五類除 我們的工作休息。 

這是一個大量的工作,但 我們這樣做是因為我們愛它, 我們真的愛教你 並幫助分享我們的興奮 針對這個問題和這個類。 所以,請利用。 再來說說我們。 我感到孤獨時,我的學生 不要跟我說話,所以如果你想, 都掛出了我。 這將是巨大的。 

因此,部分顯然是 您的一個最重要的事情。 我們將通過東西 您在演講學會, 做一些簡短的例子 當我們有時間, 和種一般 獲取有關的事情的想法 你應該思考 關於您的問題集。 有多少人真正Shorts-- 看著從你從頭視頻 短? 任何人都認識我了? 因此,這些都是非常大的。 你一定要看看那些。 大量的工作已投入其中。 而他們只是意思是 一口大小的塊為你只是看 三,四分鐘,並獲得 更好地理解一個概念。 走throughs--如何 很多人都看過 在穿行於以前的? Zamyla是驚人的,對不對? 喜歡,我希望我是Zamyla的時候。 所以肯定用你穿行。 她將它分解成 小,一口大小的塊。 而當你擁有這些巨大 從你的習題集規格, 這將是非常重要的 要能隨便找個地方 啟動,並通過它慢慢地工作。 

好了,我們也有Study50,這 是study50.harvard.edu,我相信。 你可以谷歌 學習,它會冒出來。 這是一個 最好的資源,我們有。 這是學習認證與筆記 和實踐對你的問題 的解決方案,你 其實可以穿行。 所以,如果你想多練, 比我們多節以上 比你的習題集,這是 真的,我鼓勵你去的地方。 它是建立在去年夏天通過 我的一些非常要好的朋友。 它是驚人的。 事實上,有很多的幻燈片 我將使用的第 將來自Study50。 

所以很多的轉錄因子的使用它。 最後,我 所提到的,辦公時間。 如果您遇到問題 家庭作業,你 具有與麻煩 概念,來辦公時間。 去年初,在本週如果可以的話。 走不出來了四, 因為它是一種遠。 沒有人喜歡走在那裡。 但它是你的優勢, 因為那時你 將擁有所有這些轉錄因子, [聽不清]圍繞著你。 尤其是現在, 只是一個提示,星期四 非常寒冷的,現在在 馬瑟因您的pset 是由於在週四。 並知道要 用你的遲到幾天呢。 

所以,如果你有 與概念的麻煩, 有許多轉錄因子的誰 在那裡幫助你。 所以出來馬瑟週四。 如果你想看到我, 我要去那裡。 我通常做我自己的功課, 因為沒有人願意幫助我。 那麼就來看看我們。 

我們見面了一半。 那麼有多少人參加 講課或在線觀看呢? 有多少人去了 上週超節? 涼爽。 這實際上是一個公平的數字。 你們有多少人看過你的 SPEC本週,為您PSET? 哦,我是你們的驕傲! 更多糖果你們。 

好,讓我們的意思 “我們見面了一半,”是 這章只是 將是超級對你有用 如果你進來看了你 規範的PSET。 因為當我經歷的概述 你應該找出來的東西, 它不會使 如果你是多大意義 不知道你的問題集 是要問你的事。 

如果你不來款,顯然 我不能對你有用。 我不打算把它親手如果 你不來我的部分,現在, 但你絕對應該。 如果不能,在線觀看。 他們是有原因的。 礦將在那裡。 當你發現,我們被記錄下來, 所以它會在那裡為你們。 同時,要 lectures--這顯然 你得到的,其中 開始你的材料在這裡。 所以,我一定會嘗試 幫助你盡我所能, 但我只能滿足你們這麼遠。 你要種 迎接我們的一半。 

Grading--所以,在座的各位 誰從我這裡得到了一封電子郵件, 你是我的正式部分。 我將你的分級pset中。 我只想說,一件事, 你應該注意的 有意見。 該意見往往是比較有用 比實際的分數,我們給你。 和意見實際上是 在那裡我花了我很多時間 當我分級。 所以,我將不勝感激 它,如果你閱讀。 而它們實際上是你如何去 詳細了解設計理念和風格 並且事情是一個 少一些添油加醋。 

所以,真正要注意 這些意見。 如果您有關於他們的問題, 或者你的分數問題, 請你跟我說話 無論是部分之前, 我可能會掛出 在大堂,或之後。 如果要計劃 如何單對單會議 你可以幫助改善後 習題集,只是讓我知道。 

然後只是一對夫婦 對你們的提示。 這樣的最大的事情之一 我一直強調我的第 當你學習如何編寫代碼是 先寫出來的東西在紙上。 如果你有一個比賽計劃 在您的代碼需要去 和它所需要 這樣做,它的分解 成偽小位 你寫出來的代碼, 你會少 可能使語法錯誤 或創建一個,如果循環 沒有一個人。 如果你知道你 要全面,你 不太可能使這些微小 的錯誤,有時會帶你 小時修復,因為你喜歡, 在那裡我錯過了這架? 

關於這一點,請使用Style50。 特別是當你 要去上班時間, 如果你的代碼是所有 切換到一側, 這當然是政策 我們可以說,解決這個問題 因此,它看起來像Style50說 它應該,然後我們會幫你的。 因此,它會讓你的生活更輕鬆。 它會讓我們的生活更輕鬆。 每個人的幸福。 每個人都得到更好的成績。 這不正是我們都想要的嗎? 

所以在寫的東西在紙上 你有沒有碰你的電腦。 談出來的東西在一個較高的水平, 確保你知道你要去哪裡。 如果你不確定, 坐下來與人 並通過分步走他們 你的代碼是應該做的。 和九次了10年,你會 像,哦,我忘了一個if條件 還是我忘了分號在這裡或 我更新這個變量是錯誤的。 所以這些都是我成功的秘訣。 

如此以來,大約有一半的你 就像你參加超部分, 我只是很 簡要經過循環, 這不是我們原來的議程。 但是他們真的很重要。 所以我要去樣 高速通過那些 在我們進入我們的實際部分。 之前,我這樣做,是有 任何questions--後勤, 就個人而言,是有 什麼都想要 了解我或約 一般一節或一類? 所有的好? OK,爽。 可愛的。 

所以loops--你們應該都 從頭開始認識到這些作品。 因此,循環基本上只是 一種方式為我們做什麼 次一定數量,有的反复 根據某些條件操作。 因此,我們有三個不同的類型。 我們有for循環,同時,和do-whil​​e。 

因此,對於loops--我們只是有一個非常 這裡的for循環總體佈局。 這是偉大的,當你知道如何 多次事需要執行。 當我們談論 其他循環,你會 看看為什麼這是一個重要的區別。 但是,for循環的東西集。 你知道你既可以 計算數 或者你知道多少次你 希望此重複開始。 

所以,如果你看到這裡,我們 剛剛一般性的 骨骼框架 for循環在這裡。 所以對於初始化,這就是 您的變量被初始化。 馬里奧,我敢肯定,你們做了 像INT i等於0。 這就是將藍色發生。 你有你的條件,這 是什麼檢查每次。 如果這種情況屬實,那麼 代碼的其餘部分執行。 然後它會運行again--問問。 然後我們有更新的,其中 要更新您的變量。 所以,再一次,與像馬里奧,我敢肯定, 你們不喜歡的東西我加再加。 所以每次循環 跑了,我得到了更新, 當我們對檢查它 一定條件下,它是不斷變化的。 

因為如果你只是 有一個靜態變量, 如果在執行第一次,這是 只是要無限地執行。 所以,你必須確保你 正確地更新您的變量。 我們也有一個剛 可視化表示形式出現。 大家好? 對於循環。 應該在你的PSET看到了這些。 涼爽。 

因此,這裡只是一個簡單的例子。 打印這是CS50! 的10倍。 因此,我們有我們的初始化, 正如我們所看到那裡,我整型 等於0,其中i是少 比10,我加再加。 它會打印出10倍。 

因此,儘管loops-- while循環 偉大的,當你這樣做不一定 要知道有多少次它的 去在開始更新。 你只是有一些 這是檢查的條件。 這可能是類似while-- 讓我們來舉一個例子,從您的pset。 如果馬里奧,你嘗試 輸入一個負數。 對不對? 你應該 再提示用戶。 所以,你可以說,好吧,如果用戶輸入 東西小於零,再提示 他們。 我敢肯定,有可能 是的東西,你們中的一些 在你的代碼中使用。 

所以這是一個簡單的事情。 你有一段時間,一些 有條件的檢查 每當碼去執行。 如果結果為真,我們運行它。 否則,我們不知道。 什麼是真正 important--東西我 認為大衛談到 在lecture--是大括號。 內凡是 括號是什麼執行。 如果你忘記那些 牙套,它一定會 直接成為線 被執行一段時間後。 

所以,如果你有三個 事情應該 要發生時,本 條件計算結果為true, 而你沒有這些括號,只有 第一件事情將要發生。 所以要非常的認識 你把你的大括號。 如果你堅持Style50, 這一定會幫助你。 涼爽。 

因此,這是從10到零倒計時。 正如你看到這裡,我們初始化 它之外的一些櫃檯。 有一件事,不同的是 我們沒有初始化我們的變量 在我們的while循環。 它在它之外初始化。 我們只是簡單地把 條件為我們的時間。 所以在這種情況下,它們也同時 計數大於零。 我們打印出什麼我們計數, 然後我們我們的遞減變化。 而這也是另外一個需要注意的事情。 我們的更新不會出現在 while循環中的第一部分。 它實際上將發生在 大括號,你的正文。 

所以不要-而loops--做-whil​​e循環 非常適合用戶的驗證。 所以,有些人可能有 也用這個在你的PSET。 你可以說,這樣做一樣, 要求用戶輸入。 然後一邊,喜歡的 輸入小於某一數。 

因此,對於一個明確的情況下,與馬里奧,它 會做的printf,輸入一個整數, 然後一些整數等於調用getInt。 然後它會實際 第一次執行該代碼。 你居然有 某種整數。 然後你就可以說,而 該整數小於零。 那麼,它要做的是它的 要執行至少一次。 這將檢查情況。 如果條件為 真的,它會再次運行。 

所以做-whil​​e循環 巨大的用戶驗證, 因為你知道代碼 會至少執行 一次,而用 while循環,你不 保證它的 要執行一次。 這將檢查情況 ,然後再決定要執行它, 而一個做,而會 第一次執行代碼 然後檢查是否 你需要重複它。 這是否區分 道理大家? 行。 涼爽。 

所以在這種情況下,這是一種 什麼,我說的是, 這再提示操作,直至 得到的正數。 因此,我們知道的printf “輸入一個正數” 實際上要求的 輸入會發生至少一次。 如果用戶是邪惡的,並保持 輸入一個負數,誰 不知有多少次,它會執行。 但是這個代碼是保證 執行至少一次。 這就是為什麼它的偉大 驗證輸入。 你會使用相當多。 

好吧,什麼問題這麼遠嗎? 我們都好? 難道我說的太快了? 我們是好? 行。 真棒 

因此,我們要繼續前進 談談陣列。 涼爽。 所以數組是基本 只是數據結構 這使我們能夠存儲 同一類型的東西。 因此,如果你曾經有一個數組,它的 或者只是將不得不整數 或者它只是將不得不花車 或者它只是將不得不字符。 你不會有一個int 一個char與雙浮子。 一件事。 陣列只是一個尺寸, 或者他們只是一種類型。 

所以在這裡我們有大小的數組 3,在這三個整數。 他們可以浮動,但我們 要說他們是整數。 所以,有一點需要知道的是,數組 是一組大小在初始化 它們,並且它們不easily-- 因為大家都不太舒服, 你應該把它們看作 不能夠在尺寸上延伸。 但是大的你設置了 你的數組中的開始, 這就是它的大小是怎麼回事 留下來,因為數組 是連續的存儲器塊。 當你們拿到 進入多一點點 如何存儲的實際佈置在 盤和在所述堆和棧, 它會做一點更有意義。 

但是,你可能只是覺得像,這是 只是排在你的磁盤空間。 而且你不能保證有 去後它成為空閒空間。 可以初始化一個數組 3,然後也許你 初始化五個另一個數組 後來,它的後正確的。 所以,如果你走過去點 3在該第一陣列, 你會寫 過別的東西。 所以數組are--為你們,只是 把它們看成一個固定的大小。 

所以,創建你要去的array-- 需要這個做了不少。 所以在以同樣的方式,我們有一個 一般結構為我們的for循環, 我們有一個很好的通用 結構為我們的數組。 因為它們的一種類型中,所有的 數組中的元素是一種類型的, 您需要初始化 那是什麼類型的。 

所以,當你看到這裡,我們有一個 可愛的小支架的數據類型。 因此,如果我們要創建一個int 陣列,這將是int。 如果我們要創建一個char 數組,它會是char。 如果我們要創建一個字符串 陣列,這將是字符串。 然後陣列的名稱, 無論你想的那樣。 因此,也許它的測試成績還是可能 這是學生或也許是糖果。 無論你決定你的名字 數組,這就是它會。 

然後在括號中,你會 有你想要的大小。 因此,我們存儲10個學生或 我們存儲15種糖果? 什麼不是。 所以,在這裡我們的例子中, 我們要創建一個數組 大小3,你的傢伙 看到這裡就對了。 當我們第一次初始化 它,一切都設置為零。 所以它只是想 像一張白紙。 我們擁有所有這些空間,我們都 這些盒子,我們可以把我們的數據為, 但他們只是空白 暫且。 

因此,如果我們想實際 為其分配這些值, 我們這樣做是正確的在這裡顯示。 所以,你有什麼對你的名字 數組,然後你想要的指標。 因此,該指數僅僅指的是, 就像我們在看什麼插槽。 和重要的事情要注意 是數組索引從零開始。 因此,如果我們想在存儲器中的第一空間 我們的陣列,這將是零。 如果我們希望第二個,它會是一個。 如果我們想在第三​​,這將是兩人。 等等等等。 

這也是為什麼,以往, 當我們做loops--我敢肯定, 你們想知道,為什麼 我們開始在0與1? 那是因為,當我們轉換 為使用數組,它映射正確。 所以,如果你想 遍歷到一個數組中, 使得很多更有意義 做i等於0,因為我們 知道將對應 以在存儲器中的第一點。 每個人都好有嗎? 涼爽。 

然後在這裡的底部是剛剛 另一種方式來初始化一個數組。 你仍然有你 數據類型和名稱, 但不是實際 把一個規模在那裡, 你可以做的空括號。 然後用這些花 撐桿在底部, 你可以只輸入數據 你想用逗號隔開。 並自動將 說好,我看 你有三個 事情在這些括號。 所以我知道我需要分配3 的存儲器塊,然後存儲這些。 

因此,第一個版本,你可以使用 如果你問你的用戶輸入 值,這樣就可以 遍歷數組 和ask--得到一些INT輸入它們。 如果你預先知道的值, 這讓很多更有意義 使用第二種方法。 但在大多數情況下,你可能不知道 什麼這些值將是。 涼爽。 還有沒有其他問題? 好吧。 

所以,訪問elements--這麼一 關於陣列的偉大的事情 是,它們是隨機 訪問,這意味著你 不必去翻每個塊。 如果你知道你 想要什麼塊2, 你可以說,給我擋住兩人。 這就是為什麼這些 索引是如此的重要, 這就是我們如何真正訪問它們。 所以在這種情況下,如我們之前的時候看到 我們被賦值,在一 之前,我們有名稱和 指數我們想訪問,對不對? 因此,在以同樣的方式,這就是我們 這樣做實際上是拉出來的數據。 我們的名字,我們 有我們想要的索引。 

所以在這種情況下,對環 這兒的底部,任何人 知道它在做什麼, 它會打印出來? Mmhmm​​? 沒錯。 所以,是的,它只是通過迭代。 i等於zero--我們可以走 通過代碼只是快。 i是等於零,i是少 三多在這一點上,對不對? 這樣檢查出來。 我們說好,打印˚F 無論是在我的溫度。 我是零就在這裡,當我們第一次 迭代,所以我們去這第一點, 我們說好,65是 數我們要打印出來。 所以它會打印出65 然後做一個新的生產線。 我會更新,所以它打印87。 它再次更新,它會打印30。 每個人都很酷吧? 真棒。 

行。 因此,這裡的那種之一 的事情,我是說怎麼樣 你可以跟踪 一個人的成績,為什麼 你可以使用第一 初始化它的方式 而不是說第二種方法。 而這只是經過。 並請注意,我們有30類大小。 我們正在初始化這個 整型數組的大小是30的。 然後我們遍歷 通過與我們 要求用戶輸入 分數為每個這些 然後將其分配給 在存儲器中的特定位置 介於該數組。 很酷吧? 這是否有意義大家? Mmhmm​​? 

因此,包括hashtag定義類的大小 30是一個預處理指令, 這只是意味著它gets--有 做這樣的編譯過程。 你可以把它想像 作為全局變量。 我們這樣做的方式是 typically--它可以讓你的代碼 可以更容易地改變。 所以我們可以說,我們的班級規模 突然變從30到15, 如果我沒有定義這種方式,我會 必須要經過我的整個程序 並改變了30的每個實例到15。 但是這一點,我得到改變一個 現貨方面,和其他一切的變化。 

如果你想要做的 在一個情況下,散列定義 在那裡你正在跟踪一些 設置分數數一類 或者您使用的是數字 將要使用的,等等, 整個一個很長的程序,它的 更好地限定在一開始 因此,如果以往任何時候都改變了,你會得到 改變一個地方,而不是100。 是嗎? 

學生:介於這樣做,只是 過聲明[聽不清]在頂部。 

ALLISON BUCHHOLTZ-AU:所以這 是因為有efficient-- 它是一種範圍之內 我們可以在本節涵蓋。 它與效率做多 以及如何實際的東西 在編譯過程中的工作。 如果你想真正了解 這件事,我很高興地向您發送 一封電子郵件,它的資源。 散列定義趨於 最好的東西。 而隨著你的代碼越多,你 種學習的細微差別 當你要使用的 全球對哈希定義。 但暫時, 你真的沒有 擔心的是 這簡短的回答。 每個人都好有嗎? 而且,如果你想 使用散列定義, 這真的很重要要注意 這個名字應該是全部大寫。 我們不只是在做 班級規模是巨大的。 它實際上應該是全部大寫。 涼爽。 還有別的嗎? 我們是好? 可愛的。 歡迎光臨。 

好了,我要你們去看看 在此,看你是否能找到的bug。 我會給你一個提示。 它是介於該for循環。 Mmhmm​​? 

學生:應小於等於2。 

艾里遜:所以它可能比小於或 等於2,或者它可以是小於3。 和有什麼理由是什麼? 

學生:[聽不清],0,1,2。 

艾里遜:沒錯。 因此,在大小為n的陣列,我們 只有有n個減1的指數。 涼爽。 然後我們就可以得到真正的瘋狂 並獲得多維數組。 其中的一個問題,當我把它我 一年所需的多維數組, 而且我認為他們中的一個可能需要 就在今年,這樣很舒服。 包裝你的頭左右,現在。 它會回來困擾 你,但在冷靜的方式。 這樣你就可以真的只是想 多維數組的 作為數組的數組。 所以,你可以種覺得這頂 行作為存儲器的第一個塊。 而這一次是 內存第二塊, 和最後一行的 內存三大塊。 和範圍內的,有一個陣列。 不過,當然,它更容易 描繪這樣。 

所以,你初始化它以同樣的方式。 這是一個字符 三名由三種。 所以,你有三排 和三列。 我們表示這樣的看法。 而你能訪問它 相同的方式,由排列。 所以1,1我們在這裡看到。 我們分配一個零,零在那裡。 2,0和0,2。 所以你只需訪問them--如果 任何人的做過線性代數, 訪問中的元件以相同的方式 一個矩陣的計算,它在這裡同樣的想法。 這樣你就可以與回數學。 你也不必太擔心 很多關於這個現在。 這是件好事,曝光, 要知道你可以做到這一點。 你可以創建一些 瘋狂number--可以 打造瘋狂陣列的 所有我要說的話。 [聽不清] 它變得有點瘋狂, 但它真的很酷。 真棒。 

然後,讓我們有一個例子來說明。 它可以計算一個字符串的長度。 那麼有多少人知道, 您正在使用的字符串 是字符數組只? 好吧,是的。 所以你們可能會認為你沒有 使用數組,但是以往任何時候 您在使用的GetString CSView庫,你 其實只是要求 字符數組。 我們正在照顧所有的 在後端為您服務。 但你使用過 數組,因為你開始。 你只是不知道它。 

而只要你有一個字符數組 或數組的存儲字符串 過去的事情永遠是什麼 叫一個空終止,這 這是在這裡。 那就是在結束時 每次你存儲字。 因此,如果我們想弄清楚的 字符串的長度,我們可以說, 嗯,你知道, 該塊的內容 不等於我們的空終止。 這意味著,有一些 性格有我們實際上是 關心那是字的一部分。 你增加的長度。 然後,當我們真正去 這個詞的結尾,它會終止 它會回報我們的長度我們。 Mmhmm​​? 

學生:請問空間 算不算空終止? 艾里遜:那麼一個空間 不是一個空終止。 所以,如果你有multiple--空間 實際上是一個特定的ASCII值。 學生:什麼是 再次感嘆平等? ALLISON:所以,這就是您參考。 如果你聽到我在辦公時間內, 我總是把它一樣,砰等於。 因此,爆炸沒有。 因此,這是不是等於。 所以,如果你想 看看什麼是假的, 你知道總是這樣,什麼爆炸 變量是,如果它是假的, 它的計算結果為true並 可以做很酷的東西這一點。 後來更多。 涼爽。 一切都很好嗎? 真棒。 

所以,現在這是你的男人“的時間 工作,因為我一直在談論。 所以,我希望你只是創建一個數組 與整數1,2,和3, 然後讓他們打印出來。 你不必做的一樣, 主,等等,等等,等等,等等。 我只是想讓你初始化 數組,然後創建 一個for循環打印出來out-- 或while循環,給你。 

我只給你一對夫婦 分上工作了。 我要休息我的聲音。 如果您有任何問題,我很高興 要過來和你說話的傢伙。 隨時與對方交談。 獲得更多的糖果。 其實,我只是 走動糖果。 怎麼樣? 

你願意購買嗎? 任何人在這個房間要糖果? 您也可以不止一個,伙計們。 抓了一把,如果你想要的。 不妨。 其他人都好? 行。 

另外,我要創造 匿名谷歌的形式, 並且你們可以只提交 每一段後反饋 如果有什麼東西要 改善後或者是你想要完成的。 如果我是一個有點太強力的 為了你,我可以調下來。 我將創建並發送 出來大家算賬。 

行。 因此,讓我們從小事做起。 如何將我們初始化我們的數組? 什麼是我們的陣列的類型? 一個int,不是嗎? 好了,你想要做什麼 打電話給你的數組? int數組,很酷。 好吧,讓我們有整型int數組 等於,之後,我們有什麼? 學生:[聽不清]括號中。 艾里遜:括號。 然後在大括號內? 一個逗號2逗號三種。 涼爽。 所以這是所有權利。 所以,現在我們有我們的for循環。 所以在第一部分我們的 for循環,我們有什麼? 

學生:我等於0? 

艾里遜:那麼INT i等於0, 然後呢,是我們的條件? 什麼是我要小於? 不到三年,並 我們怎麼做,我們更新嗎? 我加上加,由一個更新它。 然後我們將有 一些printf的整數中, 什麼是最後一個 一部分實際上 會說什麼,我們應該打印? 這將是的名稱 數組,數據類型為int的數組,對不對? 和什麼在int數組的括號? 我。 [?所以,我?]叫我 例如,但你去那裡。 沒有那麼糟糕。 大家好? 涼爽。 

因此,我們用數組實現。 恭喜。 你設法迭代 通過所有the--是嗎? 

學生:[聽不清] 

艾里遜:是的。 

學生:我有一個問題。 你應該縮進括號? 

艾里遜:那麼大括號應該排隊 用for循環,然後一切 裡面的大括號應縮進。 

學生:OK,應 for循環被縮進? 

艾里遜:for循環不 需要在這一點上縮進。 如果你是主,如果我們 實際上有一個main函數在這裡, 它會從主縮進。 但在這種情況下,它的罰款。 是的,問題。 

學生:你需要有 括號的例子呢? 

ALLISON:是的,如果你是 初始化這種方式。 所以請記住,這是第二次 初始化數組,其中的方法 我們有括號,然後我們的實際 數據通過在逗號分隔。 

學生:我想有 括號內為例子。 

艾里遜:不,他們是大括號。 他們是大括號。 如果你正在初始化它 這第二種方法,它的括號。 如果我們說,INT example--如果 我們只是想要一個空白數組int類型, 這將是int例如括號三種。 括號表示的大小。 當你有括號, 它的實際數據 你把它變成這樣。 我們可以回滾真快。 

所以在這一塊,這只是我們 最初的數組,初始化。 在這裡,我們是單獨 點分配給他們, 所以這代表的索引我們 數組,這就是為什麼我們有括號。 但在這裡,如果你注意到,我們已經 離開我們沒有括號的尺寸, 我們用它進行初始化 實際數據的所有功能於一身的大括號。 學生:那麼,我們為什麼不有 括號中的這個例子嗎? ALLISON:那麼,在哪一部分? 學生:會不會我們 比方說,INT例如支架 等於括號[聽不清] 括號內為例子。 

ALLISON:哦,對不起。 你說得對。 我們確實有支架存在。 對不起你們,是我不好。 是的,你應該有 例如括號後。 你是絕對正確的。 

學生:[聽不清]沒有這樣做。 

艾里遜:不,你必須有 括號,否則它的 不會聲明數組。 學生:[聽不清]。 我們對此深感抱歉。 

ALLISON:對不起,您需要 例如括號後。 錯字。 好抓,金星為您服務。 另外,如果你問一個問題, 你們會告訴我你的名字, 我喜歡這一點。 我很想能 知道所有人的名字。 我不會冷 其實給你打電話,我 不只是想知道你的名字。 所以,請居然告訴我你的名字。 

利亞利亞。 

艾里遜:利亞。 好了,functions--我知道在短暫的 他們的演講中談到了這一點。 所以功能是正中下懷 像這樣的小一口大小的東西 在這裡你傳遞的投入,一些 神奇的發生了,而你得到的輸出。 涼爽。 所以,你實際使用 很多這些了。 獲取整型,字符串獲取,打印F。 這些是所​​有功能 在那裡你只是給他們打電話, 有很多神奇的事情 在後台正在進行 你不一定看, 你得到了你想要的東西。 或者至少你得到 你希望你想要的。 

和基本的功能點, 和CS的主題之一, 就是要打破你的代碼 成可管理的片段。 當你開始寫 這些很長的程序, 或划痕,當你有 對於遊戲這個偉大的思想, 您需要能夠打破它 下來一樣,OK,我怎麼開始? 什麼是小件,我需要什麼? 哦,我要問的 用戶的東西。 現在我需要打印的東西。 哦,我需要計算這個值。 

並學習如何分手的 碼和大問題,你 有進入這些小塊 和創建功能 實際上是一個 CS大基石。 所以,你能想到的只是作為一個功能 就像一個黑盒子,一個神奇的黑盒子, 你把東西放進 你會得到一些輸出。 和該程序的其餘部分 不需要一定知道 這是怎麼回事內的黑盒子。 它所關心的是什麼 進去和出來的東西。 涼爽。 

那麼,為什麼功能呢? Organization--正如我所說,當你 處理非常大的代碼庫, 你如何組織你的代碼會 如果您使用的功能要容易得多。 因為你可以 要一樣,確定這一點, 就是這個函數和 這裡是另外一個人做。 而且你可以很容易地看到 它們是如何結合在一起的。 因此,將其分成各 這些可管理的子部分。 

所以simplification--我敢肯定你們 都看到了這一點,正如我所說,有划痕。 你有這樣的宏偉構想,並 你喜歡,怎麼做這些工作? 但是,如果你接近它 零零碎碎,你說好不好, 我怎麼做一個精靈 漂浮在屏幕上? 這是一個有點容易。 因此,良好的使用功能,使 你的代碼更易於閱讀。 這使得它更容易調試,為 你進入你以後的習題集, 你要真 希望能夠做到的。 而且他們也更容易 設計和實施。 您可以編寫了一個小 功能比較快 並確保它的工作原理與嘗試 創造這整個漫長的程序 然後種經歷和 看看有什麼工作,什麼不是。 

然後可重用性。 所以功能只需要 寫一次, 然後,你可以使用它們 多次越好。 所以它的一樣,生態友好的感覺。 如果你有喜​​歡的東西 打印f,其中您 只好寫出來的那張魔法 背後印F中的任意一個時間 你想打印的東西,你 將是非常厭倦了它 由端。 

其中一件事,你會 學會在以後的CS類, 還是其中的佼佼者 諮詢件我得到 是,如果你是複製和粘貼 代碼,它應該是一個函數。 如果您有相同的 所有的線條貫穿你的代碼, 如果你分解出來, 你的代碼可能會 是一樣,5倍短 並且更加容易閱讀。 而不是試圖解決 所有這些不同地方的東西 可能會出問題,你有一個函數 您得到解決。 我保證,很多這種 似乎是一種抽象的現在, 但是當你進入後 後來習題集, 它會讓很多更有意義 而真正被趕回家。 有沒有問題 有關功能如何呢? 為什麼我們要使用它們? 我知道我們還沒有得到 進入細節問題呢。 所以定義就像function-- 數組,我們需要of--這某種 僅僅是個通用輸出。 因此,這是一個函數,它是 只是要立方體一些輸入。 而接下來的頁面上,實際上,我們有 所有這些真棒這裡的小東西。 因此,每個人都可以讀 即,出於好奇? 我知道紫色和黑色 可能會有點辛苦。 

但大的事情知道 - 所以第一 1這裡是我們的返回類型。 因此,這是講的輸出 這個功能的時候,在這種情況下, 我們把一些數字,就是我們 得到的是立方數。 所以,它應該是在這種情況下,一個int。 也許這將是一張雙人床或 別的以後,但在這種情況下, 這是一個int。 

用C,你總是需要一個返回類型。 這將是一個int。 這將是一個浮動。 這將是一個雙。 但你必須指定哪些 這個函數會返回。 否則會罵 你,它不會編譯。 你會難過,我會很傷心的。 它只是不好。 行。 

然後,我們有我們的函數名。 正如你可以在這裡看到,用c 有這非常符合範式。 什麼是你喜歡的類型,叫什麼名字, 然後在年底一些其他的東西。 因此,我們有我們的返回類型, 我們的函數名,然後 我們有我們的頭與 我們的參數列表。 

因此,參數列表,什麼是 此功能會採取? 參數列表是一個簡單的 代名詞,什麼是我們的投入? 並以同樣的方式,我們 必須確定我們的函數 並給它一回 類型,我們每一個輸入 需要有與它相關聯的類型。 因此,我們知道我們的功能 其實可以一起工作。 

所以在這種情況下,我們有一些整數的輸入。 如此反复,這將是該型 和你要調用它。 然後,當你看到 在這裡,我們有我們的身體。 因此,我們有一些INT輸出,即 只是我們投入時間本身 時間本身,它只是立方體它。 然後我們返回輸出。 

所以,當你看到這裡,我們有一個 詮釋時代一個int次一個int, 所以它返回一個int,這 已申報存在。 所以,一切都凝聚力。 一切的快樂。 你的函數將運行。 而這僅僅是普通的事情。 所以,總有返回類型, 的名字,你的參數列表。 在每一件事情你 參數列表,或輸入, 需要有與它相關聯的類型。 然後你有你的 機身這裡什麼 你想與你的輸入。 

然後顯然你 想回到什麼。 有時候功能將只返回。 它們實際上並不返回 東西供你使用。 但你必須以某種方式返回。 當你正在做 自己的函數, 我們可以進入一個更深一點。 就個人而言,如果你願意,也有很多 不同的東西,你可以在那裡做。 大家好? 什麼這個列表,你要我上 走了過來,說你不明白? 每個人都很好嗎? 涼爽。 真棒。 

好了,我們正在把 現在這一切都在一起。 因此,我們有一些整型立方體輸入,因此 這是這裡一個完整的程序。 到現在為止,我已經 種了給你 球員片段,可能 在程序中去。 我們剛剛一直在尋找的功能。 但這裡有一個完整的計劃。 所以,你們有多少人還記得 從演講詞的原型? 涼爽。 我們已經得到了一個。 你叫什麼名字? 

斯蒂芬:斯蒂芬。 

艾里遜:斯蒂芬? OK,真棒。 所以,你還記得什麼是原型? 

學生:你說[聽不清] 在你真正對付它。 

艾里遜:你還記得,為什麼? 

學生:沒有。 

艾里遜:OK。 金名將。 所以,是的,一個原型,我們有 事先,因為否則 我們的編譯器是要罵我們。 它會說,OK, 這是什麼魔方功能? 就像,你從字面上有 告訴我沒有談到這個。 這就像當你 走進教室, 有人的樣子, 今天有一個小測驗。 和你一樣,你 從來沒有告訴過我這件事。 我不開心與我們聯繫。 原型基本上像 您的大綱說,看。 當心。 還有的將是在這一天進行測驗。 不要驚慌,當你得到它。 你會好起來的。 

因此,所有的原型確實是告訴 主,我要使用此功能。 我發誓我以後定義它。 不要嚇壞了我。 只是編譯和做什麼,我告訴你。 因此,我們有原型存在 只是為了讓我們的編譯器高興。 它基本上是一個承諾 你定義了這個功能以後 那你是不是剛剛打電話 這種隨意的事情,它 不知道你在做什麼 將要幹什麼。 

所以在這種情況下,我們有主這裡。 我們初始化一些整數x。 這是兩人。 我們要打印出x的值。 我們將立方體X。 正如你看到的,我們有我們的 函數聲明 到這裡,我們 談到以前。 這將立方體x,然後,如果我們 請記住,立方體函數實際上 返回一個整數 我們,它存儲 在X再一次讓我們可以打印 出8,或者現在立方體X。 這是否有意義大家? 我們是好? 行。 真棒。 

行。 有多少你們的 記住這所以這 基本上是你 棧和堆的, 只是一個可視化 記憶是如何存儲在這裡。 所以,我們只是想使 確保您了解 如何將這些表示在內存中。 如果你喜歡的類 CS61之類的東西後, 你了解這更 在深度,它真的很酷。 我強烈推薦它。 但現在,我給 你的全面概述 所以你不必 知道的細節問題。 

所以頂端只是一個文本段哪 包含了實際的零和一, 二進制為。 這被用於存儲 全局變量,如果您有任何。 當你向下移動,我們 有,因為你在這裡看到, 初始化數據,未初始化 數據,然後堆。 

所以,我們真的不說話 關於堆現在。 我們會得到它以後。 現在,我只是要 波我的手,像, 你不需要知道這個了。 但是,我們會聊一點 關於堆棧位。 所以堆棧where--我們有放大研究。 這實際上是如何計劃 我們只是看著發生在內存中。 

那麼,什麼情況是,每 一次,我們調用一個函數, 我們得到了什麼叫做棧 幀,這是其中之一。 因此,主要的參數。 因此,這些都是事 我們通過進入主。 於是,他們就在這裡的底部, 因為這是我們所說的第一句話。 然後,我們去主要的 當地人說,當我們說, 我們指的是局部變量 存儲在主。 因此,當地人在這裡會一樣, x是在這種情況下等於2。 因為這是定位於主力。 大家是否還記得範圍, 去了,在演講? 行。 所以,僅僅是變量 在主要的初始化。 所以這就是為什麼我們有主要的[?主唱。 ?] 

然後在主,我們稱之為立方體。 對不對? 因此,我們得到另一個框架 與多維數據集的參數。 所以在這種情況下,立方體的 參數是現在 我們通過在x, 我們通過兩個。 然後立方體的當地人,這是 在實際體積測量發生。 然後返回。 

那麼,什麼情況是如立方體實際上做 什麼是應該做的,它返回。 當它返回時,這架離開, 其倒回主。 然後在主,我們 實際上可以打印出來。 因此,當你回來的東西, 當你的函數返回, 它就像傳遞這些值 它下面的框,然後離開。 和事物有才能執行。 

而當你得到更大的計劃, 我們可以做出更酷,更複雜 圖。 但現在,這是 只是一般概述 所以你有怎樣的 了解什麼 當你調用一個函數發生 以及如何實際看起來在內存中。 很酷吧? 大家好? 真棒。 

所以這是一個是 只是想交換的東西。 我們在這裡看到,我們有 我們的函數原型 讓我們的編譯器不罵我們。 我們有一些主要的,而我們 要切換的x和y。 他們沒有這樣做演示 在演講的是,有嗎? 他們有沒有關係? 行。 因此,我們打算去 在這個很簡單。 你會惹上這個例子更多 深入,我認為,這個星期。 再接下來的一周,我們才能真正 潛入為什麼這是行不通的。 

因此,我們有這個空間 功能這裡 - 調劑。 所以虛空只是意味著 不返回任何值。 我們有交換INT A和INT B。 我們有一些暫時的 可變的,這是一個。 一個被分配給B,然後 B被分配到temp 使a和b的 現在值被切換。 

但是,劇情轉折,這是行不通的。 而它的一部分實際上有 做的一個事實,即 而B在這裡,那獲得通過的那些 這裡,實際上是x和y的副本。 因此,當該函數實際上返回, 它切換的副本,但不 實際的x和y的。 因此從另一個角度去想它是 that--假裝這些都是掉。 行? 所以在主,我們有x和y初始化。 但是,當我們真正去了 與交換這些幀 我們在傳遞的值 它,他們正在初始化。 

他們永遠只能住在這裡。 因此,A和B住在這裡。 他們被換。 但是,當我們返回時,我們不 做與a和b什麼。一 和b離開我們的功能。 所以x和y保持不變。 你會得到更多的進入如何解決和 我們如何真正與處理後。 

但它只是一件事 以種牢記。 使用它的未來。 如果沒有做別擔心 所有的意義世界。 他們是拷貝是最重要的事情。 如果你要帶什麼 離,你傳入副本。 所以原稿保持不變。 大家好? 涼爽。 

因此,命令行參數。 我敢肯定,在開始的時候你們都 有那些偉大一樣,INT主要空隙。 和你一樣,好涼爽。 我真的不關心。 這正是我寫的。 但是,在你的新計劃, 特別是在這個pset中, 為什麼有粉筆在地上? 

隨著你的下一個PSET,你 將要看到這一點。 INT為主,詮釋ARG C, 弦弧V,支架。 所以,從我們剛才 今天學什麼 我們認為,第二個參數 或者說第二個元素是在這裡? 這是一個數組。 什麼類型的數組? String數組,是的。 涼爽。 這就是你如何去 現在要宣布這些。 

有誰還記得 這些東西代表什麼? 不是嗎? 嗯? 

學生:ARG溫度。 

艾里遜:那麼ARGç保持一個計數器。 這是一個int。 這是一個數字,對不對? 那麼,你認為這個數字呢? 是啊。 所以,ARG c是弦數 構成該命令行。 所以,如果我們要真正do--, 有例子在此之後, 所以我不會提前拿到自己。 這是一個數字的字符串是 只是讓你的命令行。 

所以,當你做一樣,點斜線馬里奧, 這是一根弦,使得它了。 在這一塊,你實際上是 餵東西進入命令行, 我敢肯定,你們誰 看過規格鋸。 因此,在這種情況下,也許你會 有兩個或三個參數。 這將是一個有用的東西來使用。 

然後ARG V,正如我們所說, 只是一個字符串數組。 使實際存儲是什麼 您輸入到命令行。 因此,我們有這些。 你有一些點斜杠 複製INFILE OUTFILE。 所以,如果精氨酸c是字符串數 我們正在傳遞到命令 行,有什麼是我們ARG c。在這種情況下? 三。 沒錯。 

那麼什麼是零ARG V? 那麼,什麼是我們所存儲的第一件事? 點斜線副本,沒錯。 然後第二個是INFILE。 第三個是OUTFILE。 那麼,關於精氨酸V 3? 這將是空的,因為這是 我們的數組的結尾,對不對? 涼爽。 

然後怎麼樣第六個? 這是種一個有趣的問題。 伊什。 我們知道它是什麼? 這是不確定的。 我們不知道,可能是。 這是什麼是正確的 在存儲器陣列後, 我們不知道那是什麼。 和它的危險去觸摸那些 的事情,因為你知道, 它是內存的一部分,你 不應該訪問或空。 它可以做瘋狂的事情。 這就是所謂的過度索引 您綁定到您的陣列。 不要去的邊​​界之外的 數組,或者壞的事情都可能發生。 你回來一樣,法律 物理學已被銷毀 什麼的。 涼爽。 這是否有意義大家? 差不太多。 

所以,現在,大家的 最喜歡的部分,PSET審查。 耶! 行。 因此,對於那些你們誰 沒有看過的pset規範, 你正在做一些真正 涼的東西與密碼。 你要創建一個凱撒 密碼和V @ genere加密。 你一定要讀 SPEC怎麼看這些作品。 如果你有任何麻煩 它實際上應該做的, 請你跟我說話, 給我發電子郵件或短信我。 我在周圍。 

因此,主要有三個 這裡的東西,我們 要談about--正中下懷 的演講的延伸。 東西,你可能不知道 約,有用的提示和工具。 所以,我們要做一個 快速審查ASCII的, 因為這將是超 重要的V @ genere的密碼。 我們要轉換 命令行輸入, 將是愷撒密碼非常有幫助。 然後取模。 涼爽。 

因此,ASCII字符映射到數字。 這是一個偉大的圖表。 你應該有這 地方添加書籤。 你會想它 你的第一個中期。 我敢肯定每個人都有這種 圖表上的中期板。 所以,學習它。 愛它。 備在手邊。 這將是有益的。 

和所有它是是一種編碼 映射字母,數字, 和其他字符 數字對我們的電腦。 因為,當然,在 最後,我們的一切存儲 是會得到轉換 下降到零和一, 所以我們需要一些方法來表示 文本和字符,我們都是 看慣了的某種數量。 

所以,我們在這裡看到,我們有 大寫字母A,這是在那裡。 這是65歲。 和小寫字母A是97。 所以,你自己看著辦out-- 正如我剛才所說, 如果你有多個陣列 字符串,他們每個人 有一個空終止。 這將是一個空間。 空間有自己special-- 我忘記了它是在這裡。 啊。 圖32是空間。 所以一切都映射到它。 

因此,我們有ASCII數學。 臨tip--中的V @ genere的, 你可能受到誘惑 您的數字轉換成整數, 但它實際上是更好的做法 能夠使用 這樣的人物 當你真正操縱他們。 所以,如果你想使用的數字,就可以了。 但更好的方法,或者一種方式, 我們往往喜歡你們這樣做, 就是這樣,你是 實際上減去字符。 

所以我想,你們來 種計算這些的。 你為什麼不嘗試每隔一個? 所以做第一個, 第三個和第五個1。 因為我想確保我們討論 一切,我們需要談談。 我只是想說,之一 重要的事情to--哦,等等, 你們還沒有看到這一點。 確定這樣做前三。 讓我們做到這一點。 因為我們要談的模。 我知道。 數學是很難的。 您可以使用計算器。 沒關係。 或拉了一個ASCII表,因為 你可能會想的。 

涼爽。 所以,我會很快走 您完成這些傢伙。 因此,人們ASCII表拉升? 什麼是我們的數字 數小寫? 學生:七。 

艾里遜:那麼小寫字母A是 97和大寫字母A是65。 所以97減65? 

聽眾:32? 

ALLISON:62,是的。 所以在這種情況下,什麼 將它打印出來? 這第一次? 如果我們有百分之D, 那能說明什麼? 學生:一個數字。 艾里遜:我們正在打印 出的實數。 所以,我們實際上會 在這裡打印出32。 如果這是百分之C, 32會給我們一個空間。 這麼理解的 字符可以被打印 這兩個數字和為 實際字符 是非常重要的,和支付 注意實際的類型 我們在這裡所做的。 涼爽。 所以對於這些每隔1, 什麼是我們將要打印? 

學生:一個字符。 

艾里遜:一個字符。 涼爽。 所以,如果你們想知道,你 可以工作,這些在你自己。 如果您遇到問題,給我發電子郵件。 但是,第二個會 打印出一個小寫的B。 第三個會打印出一個 大寫字母B.第四個將打印 出一個大寫的C,而 最後一個將是一個小寫A. 最後埃德蒙頓我們實際上會 要進什麼瘋狂的百分比 標誌甚至意味著一對夫婦的幻燈片。 因此,嘗試那些你自己。 如果你有麻煩, 請你跟我說話。 如果你通常在亞當斯D廳, 你可能會發現我身邊。 

所以,ATOI。 你們有多少人看到了這 功能或聽說過呢? 任何人嗎? 涼爽。 那麼,它實際上代表 對於是ASCII為整數。 所以,你可以做的是,凱撒, 對於那些誰讀的規格, 你要做點斜線撒 之後,你寫你的程序, 然後你要 輸入一些數字,你 想你的秘密消息進行編碼。 

但是,如果我們還記得,我們​​所有的 輸入被存儲為字符串。 對不對? 我們有一個ARG V陣列 這是所有類型的字符串。 所以,如果你只是嘗試 拉那一個,它會 認為一個或任何數量 你使用的實際上是一個字符。 所以,你會得到 一些瘋狂的結果。 所以,如果你真的想 把它變成一個整數 你可以用它來操縱 你的話或你的消息, 你想用ATOI。 ATOI只是轉換 您的字符串轉換為int。 

所以,如果我們有12的字符串,如果我們調用 ATOI月12日,或任何的輸入, 它實際上將返回 你的整數。 不是字符或字符串12。 其中,當你開始 要補充的是,以數字, 會有很大的不同, 因為字符串12是 在一些瘋狂的數字 ASCII碼,而整數12 實際上是12,這是你想要的。 所以,你要確保使用ATOI。 

你會想這個 在愷撒,因為你 需要通過提供的INT 用戶在命令行中。 但是,當他們把它的命令 線,它是作為字符串存儲 開始。 這是否有道理? 你不一定 需要這個的V @ genere。 用的V @ genere,正如我所說 之前,你應該嘗試使用 ASCII數學,看起來更像是 這一點,在那裡你實際上 使用我們提供給您的字符。 涼爽。 每個人都很好嗎? 真棒。 

所以模。 所以,如果你正在考慮 這個龐大的數字凱撒? 你有這樣的想法, 如果你在Z和你 給定一個數字2, 這意味著你need-- ž成為第二 經過自己的信,對不對? 所以,你需要以某種方式環繞, 和模是做到這一點的方法。 因此,它是所有這 給你剩下 的師 由第二首數。 我們有一些例子, 做出一點更具體。 但基本上,你用模時 想讓周圍的東西包裹。 

所以,如果你只想要 數字一到八人, 你可以在任何其他使用模 號,它會永遠 返回一個數從零到8。 因此,一些examples--如果 我們有55模數10, 它只是給你的剩餘 55除以10,這將是5。 然後3模5, 有人猜是什麼,這將是? 三。 

所以,如果你面前有一個較小的數字 模,它不能進去均勻。 這是零。 所以它只是返回數字本身。 所以8模8會是什麼? 

學生:零。 

艾里遜:零。 因為它會在均勻。 16模15? 

聽眾:一。 

艾里遜:酷。 然後這最後一個是剛 展示你 - 你可能會想,好吧, 什麼是這裡的操作順序? 難道我們把第一個? 我們做的第一模? 所以模持有相同的優先級 作為部門或乘法, 和它的左結合。 所以它以同樣的方式。 你總是做括號, 那麼乘法,除法, 和模數,以便從左至右。 因此,標準的規則。 只要把它同日而語 作為除法和乘法。 

所以在這種情況下,我們將 有1加2給了我們3。 我們乘上2,這樣我們就得到6。 我們的模2,這給我們嗎? 

學生:0。 

艾里遜:0。 然後我們加2,所以我們 獲得2在後一種情況下。 所以modulo--你肯定會 要考慮如何把 當你的包裹 周圍的字母表。 如果你在Z和你需要移動 轉發三個空格才能到C, 還有的認為整個概念 的纏繞。 所以我會離開它 你們要弄​​清楚 究竟你要使用它。 但絕對是一個很有用的工具 本週你的pset。 我真的很喜歡這一點。 這是我最喜歡的pset之一。 然後,你這樣做之後, 如果你有朋友, 你可以一樣,互送的秘密 消息並確保它的工作原理。 因為它會對其進行解密或什麼的。 很多的樂趣。 

而且是部分的末尾。 我很早就完成了。 我還有15分鐘 你們這些傢伙,所以如果有什麼事, 你想投奔 另外,我很樂意這樣做。 任何其他問題 您PSET對於那些​​你 誰已開始或讀取規格。 凡是我們已經談 約在最後一小時 15分鐘,你會喜歡我 以一種老調重彈,我很樂意。 或者,我們可以調用它退出,你可以 所有休假,採取更加糖果與你 當您去。 但是,如果有任何揮之不去 問題,請讓我知道。 您也可以上來, 跟我算賬。 我發誓我不咬。 還要別的嗎? 大家的好? 就像每個人的感覺 他們可以處理這個PSET? 你會好起來的傢伙。 辦公時間是有原因的。 涼爽。 好吧。 

那麼,在這種情況下,謝謝 大家的光臨。 我希望看到你下週。 將會有更多的糖果。 可能還有其他很酷的事情。 我期待著得到 要知道你們今年。