ВЕДУЩИЙ 1. Давайте поговорим о воде. В этой задаче, мы просим пользователя сообщить нам, как долго в течение нескольких минут их душ а затем вычислить эквивалент количество бутылок воды которые использовали их душ. Так что же наше к делать, для этой проблемы? Во-первых, мы будем хотеть запрашивать и затем подтвердить вход, который пользователь дает нам. После того, как мы гарантируем, что мы иметь действительный пользовательский ввод, мы будем вычислять эквивалентное количество бутылок воды что пользователь имел в течение их душ, а потом мы собирается рассказать их вывод на печать этот номер. Так что давайте решать наш первый Задача, побуждая и проверки пользовательский ввод. Для этого мы написали Функция для вас называется get_int находится в Библиотеке CS50. get_int гарантирует, что входы пользователей целое число, так что любые положительные числа, отрицательные числа, или ноль все. Но если пользователь вводит что-нибудь еще, так что любая комбинация букв или цифр или десятичных чисел, то пользователю будет предложено повторить попытку и функция ничего не принимает до тех пор, пока пользователь не дает им целое число. Так как же мы используем get_int? Если вы откроете свое рабочее пространство и создать файл с именем integer.c давайте введите следующую команду. Хэштегом включают cs50.h. Это необходимо потому, что get_int является функцией библиотеки CS50, поэтому мы должны включать хэштегом его заявление в порядке чтобы использовать эту функцию. А потом в моей основной функционировать Я просто чтобы просто вызвать функцию get_int. Так что давайте запустим и посмотрим, как это работает. Я уже составил его, так что давайте просто идти вперед и запустить эту программу, ./integer. Здесь у меня есть приглашение и вот где вход я значение. Скажем, я вставил только некоторое целое число, 50, программа и квиты считать деятельности и что это такое. Но сказать, что я запустить его снова и Я ввожу что-то другое. Может быть, привет мир. Это не является целым числом, так что программа предложит мне повторить. Давайте попробуем еще раз с возможно, десятичную на этот раз. 0,5, опять же, не является целым числом, так программа не примет и он скажет мне, чтобы повторить попытку. Так давайте дадим ему еще один номер. Программа принимает его, завершает работу, и мы сделали. Так что теперь у нас есть функция что позволяет нам и обеспечивает что пользователь вводит целое число, но как мы можем на самом деле следить из целое число, введенной пользователем? Ну, все, что мы сделаем, это магазин это значение в переменной, скажем, п. Так что, если я объявляю целое число п, и я установил, что значение get_int, то п будет хранить все, пользователем значение введенную. Хорошо, так что теперь мы обеспечили, что пользователь даст нам целое число и мы знаем, как следить целого числа, но помните, целые числа, как положительные, так и отрицательные. Так что это на самом деле не имеет смысла В контексте этой проблемы что пользователь принимает душ , скажем, негативные 12 минут. Таким образом, мы должны убедиться, что пользователь на самом деле дает нам положительное целое число. Теперь у нас нет просто одна функция для этого, таким образом, мы будем иметь чтобы создать это сами. Поэтому мы хотим, чтобы постоянно предложит пользователю пока они не дают нам положительное целое число. Если я делаю что-то постоянно, то что сродни петле, повторение. Таким образом, одной из конструкций, которые мы используем в C для выполнения повторения и петли петля в то время. Таким образом, в то время как контур, как и показанный здесь, будет выполняться все, что находится в теле цикла, как Пока данных условие принимает значение к истине. Как только это условие оценивается как ложное, то программа перейдет к тому, что приходит после того, как тело цикла. Таким образом, в то время как петли собираются быть очень полезным в CS50. Но в данном конкретном случай, мы знаем, что мы собирается предложить пользователю по крайней мере, один раз и затем только контур, если это необходимо. Таким образом, здесь мы приходим к Специальная конструкция и это очень похоже на некоторое время петля называется петлей сделай время. Таким образом, цикл Do-то время выполняет тело цикла по крайней мере один раз а затем он проверяет должен ли он выполнить, в отличие от цикла в то время как, которая будет проверять состояние а затем выполнить тело. Таким образом, в цикле делать-а то, что мы могли бы сделать, это предложить пользователю целое число, а затем проверить, если это инвалид или нет. Если это недействителен, то мы будем повторите процесс, предлагающее пользователю чтобы дать нам еще одно целое число, а затем только тогда, когда, что целое число является действительным, мы продолжим все, что приходит после этого. Теперь вы заметите, что декларация целого числа п немного отличается от того, что мы это делали ранее в предыдущем примере и это из-за объема. Если бы мы объявили число п внутри в теле цикла Do-в то время как, то мы не смогли бы получить доступ что значение п за пределами этих кудрявых расчалок с указанием тело цикла. Но мы на самом деле хотим, чтобы получить доступ к значение п в дальнейшем в нашей программе. ОК, так что теперь давайте поговорим о том то, что это условие должно быть. Мы хотим только reprompt Пользователь, пока п является недействительным. Так что думайте сами, что для инвалида целое значение будет выглядеть а затем создать логическое значение выражение, чтобы выразить это. Мы почти закончили с нашим подзадачи подсказок и проверки пользовательского ввода. Так давайте это немного сделать немного более дружественным к пользователю и дать пользователю немного немного больше информации о том, что мы побуждая их. Так что давайте подскажет пользователю, согласно спецификации, со строкой минут. Таким образом, используя ваши PRINTF заявления, сделать Убедитесь, что вы подходите это точно. Отлично. Так что теперь у нас есть действительный пользователь вход, положительное целое число значение сколько минут они провели в душе. Так что же дальше, чтобы рассчитать эквивалентное количество бутылок. Что мы будем делать здесь, возможно, быть очень очевидно для вас, во-первых, и это нормально. То, что мы хотим сделать, это мы хотят, чтобы начать практиковать идея выявления закономерностей и разработке формулы для задачи. Таким образом, мы сказали в спецификации что одна минута в душе Это эквивалентно приблизительно 12 бутылок воды. Итак две минуты будет быть эквивалентно 24, и через пять минут будет эквивалентно 60. Так что теперь, если вы думаете, у вас есть это, то давайте увидеть, если вы можете придумать с рисунком или формулы чтобы выразить, если мы сказать, п минут, сколько бутылок воды бы, что выражается через п? Опять же, даже если это может быть просто на первый взгляд, позже, когда мы получаем более сложные задачи мы будем хотеть, чтобы попасть в практика выявления узоры и развивающиеся формулы чтобы понять эти вещи. В C вы имеете доступ к стандартные арифметические операции, сложение, вычитание, умножение и деление. Так что я оставлю его теперь, чтобы выяснить, как выразить эквивалентное количество бутылок что пользователь потребляться во время их душ. Хорошо, мы почти закончили. Мы побудили пользователя для их ввода, мы обеспечили, что она действует на вход, а потом мы выяснили, как вычислить эквивалентное количество бутылок, которые они потребляли. Таким образом, последнее, что нужно сделать, это выход эквивалентное количество бутылок и, мы надеемся поощрять их экономии воды. Выведение значение будет быть Printf заявление. Если бы я хотел сказать вам, что я есть три домашних животных, например, Я мог бы использовать PRINTF заявление что выглядит примерно так. У меня есть три домашних животных, и новый линия для приятного форматирования. Теперь мы не хотим просто жесткий код вещи. Скажем, число моих домашние животные изменяются с течением времени. Тогда я буду использовать заполнители в моем PRINTF заявлении. Так вот мое число целое. Так что я собираюсь сделать заполнитель для целого, используя% I. Я собираюсь написать строку, а затем после строки Я пишу запятую и затем переменная, которую я хочу напечатать. Таким образом, это значение будет напечатано вместо этого заполнитель,% I. Вы можете использовать заполнители, как и ну, для поплавков с% F. Вы также можете иметь несколько заполнители в строке. Например, если у меня есть некоторое количество собак и некоторое количество кошек, Я положил два заполнители здесь, а затем мои две переменные в соответствующем порядке. Так что теперь мы знаем, как печатать значения, хранящиеся в переменных, самая последняя вещь сделать, это убедиться, что мы напечатать значение в точном формате указано в спецификации. С этими словами, мы побудила пользователя и подтверждено их вклад. Мы тогда рассчитали эквивалент количество бутылок воды что они потребляют во время их душ, и мы выводимый, что для них значения. Итак, мы завершили воду. Меня зовут [? Zamila,?] и это CS50.