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