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