SPEAKER 1: Нека поговорим за вода.
По този проблем, ние поиска от потребителя да кажа ни колко време в минути им душ беше
и след това да се изчисли еквивалентът брой бутилки с вода
че използва своето душ.
>> Така че това, което са ни със задачи е за този проблем?
Първо, ние ще искаме до бързо и след това валидира
на входа, че потребителят ни дава.
След като ние сме сигурни, че имат валиден потребителски вход,
отиваме да се изчисли еквивалентен брой бутилки с вода
че потребителят има по време на тяхната душ, а след това ние сме
Ще им кажа от отпечатване на този номер.
>> Така че нека да се справи с първата ни задача, с което предизвика и валидиране
на входа на потребителя.
За това ние написахме функция за вас, наречен
get_int намира в библиотеката CS50.
get_int гарантира, че входовете на потребителя цяло число, така че всички положителни числа,
отрицателни числа, или всички нула се приемат.
Но ако потребителят въвежда нещо друго, така всяка комбинация от букви или цифри
или десетични числа, а след това на потребител ще бъдете подканени да опитате отново
и функцията няма да приеме нищо докато потребителят им дава число.
>> И така, как ние използваме get_int?
Ако отворите вашето работно място и създадете файл с име integer.c нека
въведете следното.
Хеш маркерът включва cs50.h.
Това е необходимо, защото get_int е функция на cs50 библиотека,
така че ние трябва да HASHTAG включва декларацията си за
За да използвате функцията.
И тогава в моя основна функционира Аз съм просто ще
просто да се обадите на функция get_int.
>> Така че нека да стартирате тази и да видим как тя работи.
Аз вече го компилира, така че нека просто отидете напред и да стартирате тази програма,
./integer.
Тук имам бърз и Тук е мястото, където съм въвеждане на стойност.
Кажете сложих в само някои число, 50, excepts на програмата и квинти
и това е, че.
>> Но да кажа, че той се кандидатира отново и Аз вход нещо друго.
Може би, здравей свят.
Това не е цяло число, така че програма ще ме подкани да опитате отново.
Нека се опитаме отново с може би един знак след десетичната запетая и този път.
0.5, отново, не е цяло число, така че програмата няма да го приеме
и тя ще ми каже да опитате отново.
Така че нека да го даде друг номер.
Програмата приема, затваря, и сме готови.
>> Така че сега ние имаме функция че ни и гарантира позволява
че потребителят въвежда на число, но как можем да
Всъщност следите на число, въведена от потребителя?
Е, всички ние ще направим, е магазин тази стойност в променлива, казват п.
Така че, ако аз декларирам цяло число N, и поставих тази стойност да get_int,
тогава п след това ще се съхранява каквото ценим потребителят въведен.
>> Добре, така че сега сме се гарантира, че потребителят ще ни даде цяло число
и ние знаем как да следите на цялото число, но не забравяйте,
числа са както положителни, така и отрицателни.
Така че това не е наистина да има смисъл в контекста на този проблем
че потребителят взема душ от кажа негативни 12-та минута.
Така че ние трябва да се уверите, че потребителят всъщност ни дава положително число.
Сега ние не трябва просто една функция за това,
така че ние ще имаме да се създаде, че самите себе си.
>> Така че ние искаме непрекъснато да напомни на потребителя
докато не ни даде положително число.
Ако правя нещо непрекъснато след това това е равносилно на една линия, повторение.
Така една от конструкциите, които ние използваме в гр да приложат повторение и примки
е докато цикъл.
Така че една линия, докато, както показано тук, ще се изпълни
каквото и да е в тялото на цикъла, както е Докато дадените условието добие
да е вярно.
Веднага след като това условие стойност лъжа, тогава
програмата ще се пристъпи към каквото идва след тялото на цикъла.
>> Така че, докато линии ще да бъде наистина полезно в CS50.
Но в този конкретен случай, ние знаем, че ние сме
ще напомни на потребителя най-малко веднъж и след това само контур, ако е необходимо.
Така че тук стигаме до един специална конструкция и това е
много подобен на време линия, наречена да не се прави, докато контур.
>> Така че не се прави, докато контур изпълнява тялото на цикъла най-малко веднъж
и след това да го проверява, за да видите дали тя трябва да се изпълни,
за разлика от докато линия, който ще провери състоянието
и после за изпълнението на тялото.
Така че в Do-линия, докато на това, което бихме могли направите, е да напомни на потребителя за цяло число,
и след това проверете дали това е невалиден или не.
Ако това е невалиден, тогава ние ще повторете процеса иска от потребителя
да ни даде друг число, и след това само когато това число е валиден,
ние ще продължим да каквото и идва след това.
>> Сега вие ще забележите, че декларация на цяло число N
е малко по-различен с това, което ние Направих преди в предишния пример
и това е така, защото на обхват.
Ако бяхме обявени за цялото число N вътре на тялото на Do-а контур,
тогава ние няма да бъде в състояние за достъп до че стойността на п извън тези, къдрава
скоби показва тялото на цикъла.
Но ние в действителност искате да получите достъп до стойност на п-късно в нашата програма.
>> ОК, така че сега нека да говорим за какво е това състояние трябва да бъде.
Ние искаме да reprompt само на потребителя, докато п е невалиден.
Така че мисля за себе си това, което е невалидна целочислена стойност ще изглежда така
и след това да създадете Булева изразяване, за да изразят това.
>> Ние сме почти готови с нашия подзадача на което накара и валидиране на приноса на потребителите.
Така че нека да направим това по-малко малко по-удобен за потребителя
и дава на потребителя по-малко малко повече информация
от това, което ги накара за.
Така че нека да напомни на потребителя, според спец, с низ минути на.
Така че с помощта на вашите ФОРМАТ изявления, да сигурни, че съвпада с този точно.
>> Добре.
Така че сега ние имаме валиден потребител вход, положително число
стойност за колко минути те прекарват в банята.
Така че това, което е в непосредствена близост е да се изчисли еквивалентната брой бутилки.
Това, което ние ще направим тук, може да бъде много очевидно за вас в началото,
и това е ОК.
Това, което искаме да направим, е да сме искате да започнете да практикувате
идеята за откриване и модели разработване формули за проблема.
>> Така че ние сме казал на спец че една минута в банята
се равнява на около 12 бутилки с вода.
Така след две минути ще е равно на 24,
и пет минути ще е равно на 60.
Така че сега, ако си мислите имаш я, а след това се остави
вижте дали можете да излезе с модел или формула
да изразят ако ние кажем, п минути, колко бутилки с вода
би, че да се изрази по отношение на п?
>> Отново, въпреки че този може да е просто на първо,
по-късно, когато стигнем до по-сложни проблеми
ние ще искате да получите в практиката на идентифициране
модели и развиващите формули да разбера тези неща.
>> В гр имате достъп до стандартните аритметични операции,
събиране, изваждане, умножение и деление.
Така че аз ще го оставя да Сега можете да разбера
как да се изразят еквивалентен брой бутилки
че потребителят консумира по време на душ.
>> Добре, ние сме почти готови.
Ние сме подканени потребителя за тяхното въвеждане, ние сме се гарантира, че това е валидно вход,
и след това ние сме измислили как за изчисляване на еквивалентното
брой бутилки, които те консумират.
Така че последното нещо, което да направите, е да изход еквивалентния брой бутилки
и вероятно ще насърчи тях да запазят малко вода.
>> Извеждане на стойността ще да е изявление на ФОРМАТ.
Ако исках да ви кажа, че аз има три домашни любимци, например,
Аз може да използва изявление ФОРМАТ че изглежда нещо като това.
Имам три домашни любимци, както и нова линия за приятно форматиране.
>> Сега ние не искаме да просто трудно код неща.
Кажете на броя на моя домашни любимци се променя с течение на времето.
След това аз ще се възползват от Запазено място в моето изявление ФОРМАТ.
Така че тук ми номер е цяло число.
Така че аз отивам да се направи контейнер за цяло число използвайки% I.
Отивам да пиша низа, и след това, след като низ
Аз пиша запетая и след това на променлива, която искам да отпечатате.
Така тази стойност ще бъде отпечатан вместо това контейнер,% аз.
>> Можете да използвате заместители, като добре, за плувки с% е.
Можете също така да имат множествена Запазено място в низ.
Например, ако имам някакъв номер на кучета и котки някои брой,
Сложих два заместители тук и след това моите две променливи в съответния ред.
>> Така че сега, че ние знаем как да отпечатате стойностите записани в променливи,
и най-последното нещо, което да направите, е да се гарантира, че ние
отпечата стойността в точния формат посочени в спецификацията.
С това, ние сме подтикна потребител и валидирани тяхното въвеждане.
тогава сме изчислява равностойността брой бутилки с вода
че те консумират по време на душ, и ние сме изведен че стойността им.
И така, ние сме завършени вода.
>> Моето име е [? Zamila,?] и това е CS50.