1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:01,960 解說1:讓我們談談水。 3 00:00:01,960 --> 00:00:07,280 在這個問題中,我們要求用戶告訴 他們的淋浴我們多久分鐘 4 00:00:07,280 --> 00:00:11,040 然後我們計算等價 瓶水數 5 00:00:11,040 --> 00:00:12,970 所使用的淋浴。 6 00:00:12,970 --> 00:00:16,379 >> 那麼什麼是我們要做的事 對於這個問題? 7 00:00:16,379 --> 00:00:20,050 首先,我們會想 提示再驗證 8 00:00:20,050 --> 00:00:22,100 該用戶給我們的輸入。 9 00:00:22,100 --> 00:00:24,790 一旦我們確保我們 擁有有效的用戶輸入, 10 00:00:24,790 --> 00:00:28,230 我們要計算 瓶裝水的當量數 11 00:00:28,230 --> 00:00:30,770 該用戶在過 他們洗澡,然後我們 12 00:00:30,770 --> 00:00:33,720 要通過告訴他們 打印出該號碼。 13 00:00:33,720 --> 00:00:37,230 >> 因此,讓我們來解決我們的第一個 任務提示和確認 14 00:00:37,230 --> 00:00:38,550 用戶的輸入。 15 00:00:38,550 --> 00:00:40,910 為此,我們已經寫了一個 功能你叫 16 00:00:40,910 --> 00:00:43,950 get_int位於CS50資源庫中 17 00:00:43,950 --> 00:00:48,710 get_int確保用戶輸入 一個整數,因此任何正數, 18 00:00:48,710 --> 00:00:51,700 負數,或 零都接受。 19 00:00:51,700 --> 00:00:55,900 但是,如果用戶別的輸入什麼, 這樣的字母或數字的任意組合 20 00:00:55,900 --> 00:00:59,710 或十進制數,則 用戶將被提示重試 21 00:00:59,710 --> 00:01:04,319 該函數將不接受任何 直到用戶給了他們一個整數。 22 00:01:04,319 --> 00:01:06,410 >> 那麼,我們如何使用get_int? 23 00:01:06,410 --> 00:01:10,830 如果您打開您的工作區和 創建一個名為integer.c的咱們文件 24 00:01:10,830 --> 00:01:12,110 鍵入以下命令。 25 00:01:12,110 --> 00:01:14,760 #標籤包括cs50.h. 26 00:01:14,760 --> 00:01:18,480 這是必要的,因為get_int 是CS50庫函數, 27 00:01:18,480 --> 00:01:21,890 因此,我們必須HASHTAG包括 它以聲明 28 00:01:21,890 --> 00:01:23,370 使用的功能。 29 00:01:23,370 --> 00:01:26,570 然後在我的主 功能我只是去 30 00:01:26,570 --> 00:01:29,560 簡單地調用函數get_int。 31 00:01:29,560 --> 00:01:31,750 >> 因此,讓我們運行這個,看看它是如何工作的。 32 00:01:31,750 --> 00:01:35,092 我已經編譯它,讓我們 只是繼續前進,運行這個程序, 33 00:01:35,092 --> 00:01:36,480 。/整數。 34 00:01:36,480 --> 00:01:39,880 在這裡,我有一個提示, 這裡就是我輸入的值。 35 00:01:39,880 --> 00:01:44,880 說我把只是一些整數, 50,節目節選並退出 36 00:01:44,880 --> 00:01:45,960 就是這樣。 37 00:01:45,960 --> 00:01:49,350 >> 但說我再次運行它, 我輸入別的東西。 38 00:01:49,350 --> 00:01:51,350 也許,世界你好。 39 00:01:51,350 --> 00:01:55,660 這不是一個整數,所以 程序會提示我重試。 40 00:01:55,660 --> 00:01:59,160 讓我們再試一次 也許是小數這個時候。 41 00:01:59,160 --> 00:02:03,450 0.5,再次,不是一個整數,以便 該程序將不會接受 42 00:02:03,450 --> 00:02:05,290 它會告訴我重試。 43 00:02:05,290 --> 00:02:07,070 因此,讓我們給它一個號。 44 00:02:07,070 --> 00:02:09,830 該計劃接受它, 退出,我們就大功告成了。 45 00:02:09,830 --> 00:02:13,520 >> 所以,現在我們有一個函數 這使我們和保證 46 00:02:13,520 --> 00:02:16,790 該用戶輸入一個 整數,但如何才能 47 00:02:16,790 --> 00:02:20,330 實際上跟踪的 由用戶整數輸入? 48 00:02:20,330 --> 00:02:25,260 嗯,我們要做的是商店 在一個變量此值,說ñ。 49 00:02:25,260 --> 00:02:30,580 所以,如果我宣布一個整數n, 我該值設置為get_int, 50 00:02:30,580 --> 00:02:34,700 那麼n將然後存儲任何 重視輸入的用戶。 51 00:02:34,700 --> 00:02:38,620 >> 好了,所以現在我們已經確保了 用戶會給我們一個整數 52 00:02:38,620 --> 00:02:42,550 我們知道如何跟踪 整數的,但要記住, 53 00:02:42,550 --> 00:02:45,610 整數是正面和負面的。 54 00:02:45,610 --> 00:02:49,110 所以它並沒有真正意義 在此問題的範圍內 55 00:02:49,110 --> 00:02:53,570 該用戶進行淋浴 都說負12分鐘。 56 00:02:53,570 --> 00:02:59,310 因此,我們需要確保用戶 其實給了我們一個正整數。 57 00:02:59,310 --> 00:03:02,130 現在,我們沒有只是一個 對於功能單一, 58 00:03:02,130 --> 00:03:04,620 所以我們將有 創建自己。 59 00:03:04,620 --> 00:03:07,190 >> 因此,我們要不斷 提示用戶 60 00:03:07,190 --> 00:03:09,730 直到他們給我們一個正整數。 61 00:03:09,730 --> 00:03:14,300 如果我做的事情,然後不斷 這是類似於一個循環,重複。 62 00:03:14,300 --> 00:03:19,130 所以我們使用的構建體中的一個 在C來實現重複和循環 63 00:03:19,130 --> 00:03:20,410 是一個while循環。 64 00:03:20,410 --> 00:03:23,020 因此,while循環,如 在這裡顯示,將執行 65 00:03:23,020 --> 00:03:27,030 無論是在循環的身體 只要給定的條件計算 66 00:03:27,030 --> 00:03:27,900 為true。 67 00:03:27,900 --> 00:03:30,640 一旦這個條件 計算結果為假,那麼 68 00:03:30,640 --> 00:03:34,830 該計劃將進行到什麼 而來的循環體之後。 69 00:03:34,830 --> 00:03:39,400 >> 因此while循環將要 在CS50真的很有用。 70 00:03:39,400 --> 00:03:42,590 但是在這個特定的 情況下,我們知道我們 71 00:03:42,590 --> 00:03:48,140 要至少提示用戶 一次,然後僅循環,如果必要的。 72 00:03:48,140 --> 00:03:51,080 所以在這裡我們就來 特殊結構,這​​就是 73 00:03:51,080 --> 00:03:55,020 非常相似的,同時 循環稱為do-whil​​e循環。 74 00:03:55,020 --> 00:03:58,840 >> 因此,一個do-whil​​e循環執行 循環體至少一次 75 00:03:58,840 --> 00:04:01,750 然後它檢查 它是否應該執行, 76 00:04:01,750 --> 00:04:05,310 而不是一個while循環, 這將檢查情況 77 00:04:05,310 --> 00:04:07,200 然後執行機構。 78 00:04:07,200 --> 00:04:11,880 因此,在do-whil​​e循環是我們可能 要做的就是提示用戶輸入一個整數, 79 00:04:11,880 --> 00:04:14,450 然後檢查它是否是無效或不。 80 00:04:14,450 --> 00:04:18,130 如果它是無效的,然後我們會 重複上述過程,詢問用戶 81 00:04:18,130 --> 00:04:22,290 給我們另一個整數,然後 只有當該整數是有效的, 82 00:04:22,290 --> 00:04:25,060 我們將繼續 無論發生什麼事之後。 83 00:04:25,060 --> 00:04:28,030 >> 現在你會發現, 整數n的聲明 84 00:04:28,030 --> 00:04:31,670 是略有不同的是我們 在前面的例子中那樣之前 85 00:04:31,670 --> 00:04:33,640 這是因為的範圍。 86 00:04:33,640 --> 00:04:37,920 如果我們宣布整數n內 在do-whil​​e循環體中, 87 00:04:37,920 --> 00:04:42,640 然後我們將不能夠訪問 為n的那些捲曲以外的價值 88 00:04:42,640 --> 00:04:45,050 括號表示循環體。 89 00:04:45,050 --> 00:04:51,080 但是,我們實際上要訪問的 為n的值後來在我們的節目。 90 00:04:51,080 --> 00:04:55,730 >> 好了,現在讓我們來談談 這個條件應該是什麼。 91 00:04:55,730 --> 00:05:00,400 我們只希望重新提示的 用戶只要n是無效的。 92 00:05:00,400 --> 00:05:04,640 因此,認為自己什麼無效 整數值會是什麼樣子 93 00:05:04,640 --> 00:05:08,060 然後創建一個布爾 表情來表達。 94 00:05:08,060 --> 00:05:13,070 >> 我們幾乎與我們的子任務完成 提示的和驗證用戶輸入。 95 00:05:13,070 --> 00:05:16,010 因此,讓這一點 位用戶更友好 96 00:05:16,010 --> 00:05:18,390 並給用戶一個小 位的更多信息 97 00:05:18,390 --> 00:05:20,510 什麼我們提示他們。 98 00:05:20,510 --> 00:05:24,500 因此,讓我們提示用戶,每 規範,以字符串分鐘。 99 00:05:24,500 --> 00:05:28,935 因此,使用您的printf語句,使 一定要符合這個準確。 100 00:05:28,935 --> 00:05:30,230 >> 好吧。 101 00:05:30,230 --> 00:05:33,840 所以現在我們有一個有效的用戶 輸入,一個正整數 102 00:05:33,840 --> 00:05:37,400 有多少分鐘值 他們在浴室度過的。 103 00:05:37,400 --> 00:05:41,300 那麼,接下來就是計算 同等數量的瓶子。 104 00:05:41,300 --> 00:05:45,250 我們打算在這裡做可能 首先對你非常明顯, 105 00:05:45,250 --> 00:05:46,640 這就是確定。 106 00:05:46,640 --> 00:05:49,320 我們想要做的是我們 要開始練習 107 00:05:49,320 --> 00:05:53,810 檢測模式的想法, 開發用於問題的公式。 108 00:05:53,810 --> 00:05:57,200 >> 因此,我們每個規格告訴 在淋浴的1分鐘 109 00:05:57,200 --> 00:05:59,960 相當於大約 12瓶水。 110 00:05:59,960 --> 00:06:03,020 於是2分鐘會 相當於24, 111 00:06:03,020 --> 00:06:05,850 五分鐘將 相當於60。 112 00:06:05,850 --> 00:06:08,390 所以,現在,如果你想 你得到了它,那麼讓我們來 113 00:06:08,390 --> 00:06:10,390 看你能不能拿出 用圖案或式 114 00:06:10,390 --> 00:06:14,990 表達如果我們說,正 水分鐘,多少瓶 115 00:06:14,990 --> 00:06:17,930 將在n個來表示? 116 00:06:17,930 --> 00:06:20,680 >> 再次,儘管這 可能首先是簡單的, 117 00:06:20,680 --> 00:06:23,240 後來當我們對 更複雜的問題 118 00:06:23,240 --> 00:06:26,360 我們將想進入 識別的實踐 119 00:06:26,360 --> 00:06:30,120 模式和發展公式 推測這些東西。 120 00:06:30,120 --> 00:06:33,450 >> 在C你有機會獲得 標準的算術運算, 121 00:06:33,450 --> 00:06:36,520 加法,減法, 乘法和除法。 122 00:06:36,520 --> 00:06:38,420 所以我會離開它 你現在要弄清楚 123 00:06:38,420 --> 00:06:41,300 如何表達 瓶相當於數 124 00:06:41,300 --> 00:06:43,990 該用戶消耗 在他們的淋浴。 125 00:06:43,990 --> 00:06:45,700 >> 好吧,我們幾乎已經完成。 126 00:06:45,700 --> 00:06:50,650 我們已經提示輸入其用戶輸入, 我們保證它的有效輸入, 127 00:06:50,650 --> 00:06:53,330 然後,我們已經找到了如何 計算等效 128 00:06:53,330 --> 00:06:55,480 他們消耗的瓶數。 129 00:06:55,480 --> 00:06:59,430 所以做的最後一件事是將輸出 瓶子的當量數 130 00:06:59,430 --> 00:07:02,410 並希望鼓勵 他們節約一些水。 131 00:07:02,410 --> 00:07:06,270 >> 輸出值將 是一個printf語句。 132 00:07:06,270 --> 00:07:09,720 如果我想告訴你,我 有三個寵物,例如, 133 00:07:09,720 --> 00:07:13,090 我可能會使用printf語句 這看起來是這樣的。 134 00:07:13,090 --> 00:07:15,880 我有三個寵物,和一個新的 行漂亮的格式。 135 00:07:15,880 --> 00:07:17,880 >> 現在我們不想 簡單的硬編碼的東西。 136 00:07:17,880 --> 00:07:20,740 說的次數我 寵物隨時間而改變。 137 00:07:20,740 --> 00:07:25,080 然後,我將利用 佔位符在我的printf語句。 138 00:07:25,080 --> 00:07:27,350 所以在這裡我的電話號碼是一個整數。 139 00:07:27,350 --> 00:07:31,480 所以我要做一個佔位符 使用%I整數。 140 00:07:31,480 --> 00:07:33,930 我打算寫的字符串, 再後弦 141 00:07:33,930 --> 00:07:38,000 我寫了一個逗號,然後 我想打印變量。 142 00:07:38,000 --> 00:07:42,730 這樣該值將被打印 代替該佔位符,%I的。 143 00:07:42,730 --> 00:07:47,630 >> 您可以使用的佔位符,如 同時,對於具有%F浮動。 144 00:07:47,630 --> 00:07:50,420 您也可以有多個 佔位符的字符串。 145 00:07:50,420 --> 00:07:53,950 舉例來說,如果我有一些號碼 狗和一定數目的貓的, 146 00:07:53,950 --> 00:07:59,210 我把兩個佔位符這裡,然後 我的兩個變量各自的順序。 147 00:07:59,210 --> 00:08:03,130 >> 所以,現在我們知道如何打印 存儲在變量中的值, 148 00:08:03,130 --> 00:08:06,030 的最後的事 做的是確保我們 149 00:08:06,030 --> 00:08:10,920 在精確的格式打印的價值 在本說明書中表示。 150 00:08:10,920 --> 00:08:14,990 就這樣,我們已經提示 用戶和驗證他們的意見。 151 00:08:14,990 --> 00:08:17,920 然後,我們已經計算相當於 瓶水數 152 00:08:17,920 --> 00:08:22,100 其是在淋浴過程中消耗, 我們已經輸出了價值給他們。 153 00:08:22,100 --> 00:08:24,440 因此,我們已經完成了水。 154 00:08:24,440 --> 00:08:28,730 >> 我的名字是 [? Zamila,?] 這是CS50。 155 00:08:28,730 --> 00:08:29,909