ВЕДУЩИЙ 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.