[Powered by Google Translate] LEXI Рос: Добра, прывітанне ўсім.
Сардэчна запрашаем у першы CS50 supersection.
Гэта будзе толькі тыдзень supersections.
Пасля гэтага вы будзеце ісці да рэгулярных раздзел з
прызначаны TF.
Але на гэтым тыдні, мы робім гэта ў трохі іншым
Фармат, хоць фактычная фармаце, як яна збіраецца пайсці
на бліжэйшыя паўтары гадзіны ці каля таго, будзе даволі
падобна на тое, што вы будзеце бачыць на
Астатняя частка семестра.
>> Так што мы збіраемся зрабіць, гэта пачаць з пераходам
профіль частцы вашай праблемай набору.
Так што калі вы чыталі над мноствам р, якое, мы спадзяемся, у вас ёсць,
Вы ўбачыце, што ёсць частка пад назвай "Секцыя
Пытанні ", і яны прызначаны для сышла
больш у вашай секцыі.
Такім чынам, у вас ёсць перавага, знаходзячыся тут у тым, што вы атрымаеце
перайсці на гэтыя больш канцэптуальныя пытанні, заснаваныя.
І пасля таго як мы гэта зробім, мы будзем ісці на працягу апошніх двух
профіль пытанняў, якія з'яўляюцца больш апусканняў
ў кадаванні тыпаў пытанняў.
Такім чынам, мы фактычна будзем мець вас, хлопцы заняць некалькі
хвілін па кожнаму пытанню, паспрабаваць вырашыць іх па сваім меркаванні, і
Затым мы збіраемся, каб аб'яднацца з выкарыстаннем новых CS50
Прасторы інструмент і перайсці на адказы, вы ўсё
Правільны код для азнаямлення.
>> Такім чынам, пара аб'яваў.
Не забывайце, што ёсць офіс гадзін кожную ноч гэта
тыдзень у Annenberg ад 8 да 11, так што ўзяць
Перавагай з іх.
А таксама, не пачынайце р усталяваны занадта позна ў тыдзень.
Пачаць сёння ўвечары, або заўтра ўвечары ў апошні.
Вы будзеце шкадаваць аб гэтым, калі вы будзеце чакаць занадта доўга, каб пачаць
і сутыкнуцца з праблемамі.
Так прыміце нашы парады і, безумоўна, рана.
Гэта будзе добры спосаб, каб пачаць працу з
гэта раздзел пытанняў.
Так што я Lexi, дарэчы.
Я TF.
І гэта Дэн, які таксама TF.
Дэн Брэдлі: Гэй, хлопцы.
LEXI Рос: І ён збіраецца атрымаць
пачаў з пытанняў.
>> Дэн Брэдлі: Усе правільна.
Так што я збіраюся проста ўвесці пару маленькіх кампілятараў
пытанні, якія мы збіраемся пагаварыць і проста прайсці праз
свайго роду канцэптуальныя ідэі, якія мы павінны рэальна працаваць
кодзе, альбо ў прыборы або з нашымі роду падробленыя
тэхніка, запусціце CS50 і Spaces.
Так што давайце проста ўбачыць, калі хтосьці ў аўдыторыі мае ніякага ўяўлення
пра што мы гаворым.
>> Так што ж такое бібліятэка ў кантэксце кода?
Любы, ёсць якія-небудзь ідэі?
Добра.
Sweet.
Аўдыторыя: Як запас функцый, што хтосьці іншы
ўжо запраграмаваны, што мы можам пабудаваць?
Дэн Брэдлі: Цалкам дакладна.
Такім чынам, бібліятэка з'яўляецца наяўнасць функцыі, што хтосьці іншы
ўжо запраграмаваны, што мы не павінны
паўторна рэалізаваць сябе.
Таму ў нас ёсць такія рэчы, як стандартная бібліятэка ўводу / вываду,
cs50.h бібліятэкі, якія з'яўляюцца рэчы, што свет,
Інтэрнэт, персанал зрабіў тое, што робіць нашу
Жыве прасцей, так як кодэраў.
Такім чынам, як вы друкаваць рэчы на ​​экран?
Я паняцця не маю, Printf робіць гэта для мяне.
Гэта тое, што нехта іншы ўжо зрабіў гэта
дзіўным і працуе дастаткова добра.
>> Добра.
Такім чынам, каб выкарыстоўваць бібліятэкі, з іншага боку, аднак, у вас ёсць
на самай справе рабіць некаторыя дадатковыя рэчы з вашым кодам.
Так што вам давядзецца выкарыстоўваць нешта накшталт гэтага # ўключыць.
Што ж гэта зрабіць?
Якую ролю, што гульні, калі ў вас у праграме?
Аўдыторыя: Ён дазваляе выкарыстоўваць любыя функцыі,
[Неразборліва]
Бібліятэка, проста з дапамогай азначэнняў, якія ўжо
[Неразборліва]
бібліятэкі.
Дэн Брэдлі: Добра.
Яна дазваляе цягнуць бібліятэку функцый у кодзе, але
ён робіць гэта такім чынам, што гэта не зусім тое ж, што, як
-Lcs50, які мы атрымаем у хвіліну.
Ён проста дазваляе кампілятару ведаць, што эй, ёсць такія
функцыі, якія збіраюцца прыехаць у ваш код.
Майце на ўвазе, што, калі яны не ў поўнай меры апісаны ў кодзе
вось перад вамі, ёсць некаторыя функцыі бібліятэкі
, Якая будзе клапаціцца пра яго.
>> Такім чынам, у выпадку Printf, што мы пойдзем за пару
раз сёння, гэта стандартная бібліятэка ўводу / высновы.
Таму, хоць я не вызначаюць Printf дзе заўгодна ў маім кодзе ніколі,
стандартныя I / O клапоціцца пра гэта для мяне, і я зраблю # ўключыць
stdio.h, і ён будзе цягнуць у гэтыя функцыі, якія я
не ўсё вызначана.
Так у чым жа розніца, то паміж гэтым # ўключыць
і-lcs50?
Што-lcs50 рабіць, калі я перадаць яго ў
кампілятара, як Clang?
Любы, ёсць якія-небудзь ідэі?
Добра.
Да?
Аўдыторыя: ён дазваляе атрымаць доступ да CS50 бібліятэку?
Дэн Брэдлі: Гэта дазваляе атрымаць доступ да CS50 бібліятэкі ў
што ён кажа кампілятару, Clang, што эй, гэта дзе
Вы сапраўды пайсці, каб атрымаць гэтыя функцыі.
Такім чынам, # ўключыць кажа, што ёсць
гэтыя функцыі дзе-небудзь.
-Lcs50 кажа, ідзіце да гэтага месца ў вашым кампутары -
гэта CS50 бібліятэцы -
і пацягніце ўверх фактычны код для гэтых функцый.
Ці мае гэта сэнс, усё?
>> Так што ўсе гэтыя рэчы, якія, каб дапамагчы вашым кампілятарам
разам са стварэннем кода рэальна працаваць.
Хуткі пытанне.
Ёсць людзі ведаюць, што кампілятар?
Добрае пачуццё?
Гэта ў асноўным прымаючы напісаў код, які ў вас ёсць,
пераўтварыць яго ў двайковым, пераўтварэнні ў машынны код,
так што ваш кампутар сапраўды можа гэта зразумець.
І, не мудрагелячы хітра, мы збіраемся пайсці ў больш
фактычнае кадаваньне практыкаванні, якія вы, хлопцы, павесялімся
усадзіць свае зубы ў і Lexi пойдуць па гэтай нагоды.
>> LEXI Рос: Добра.
Awesome.
Так што мы збіраемся перайсці на два пытанні.
Такім чынам, першы чалавек на самай справе, вы можаце бачыць, гэта крыху
невялікія прама тут, але па сутнасці ён просіць вас
напісаць праграму, прыняць некаторыя карыстацкага ўводу.
Я не ўпэўнены, чаму там чорны квадрат там.
Гэта загадкавае.
Гэта павінна быць выдатна, хоць.
Такім чынам, ён хоча вас прыняць ўвод карыстальніка ў градусах Цэльсія, канвертаваць, што
па Фарэнгейце, а затым сказаць карыстачу, што тэмпература
будзе ў градусах па Фарэнгейце.
Такім чынам, вы можаце ўбачыць прыклад ўводу / вываду паслядоўнасці тут.
Карыстальнік уваходаў - пасля таго, як па Цэльсіі, смелыя ставіцца да
карыстацкага ўводу.
Такім чынам, карыстач уводзіць 100, і праграма выхаду
Fahrenheit, 212,0.
І важным адрозненнем гэтай праграмы з'яўляецца тое, што мы
будзе мець толькі аднаго знака пасля коскі, так што паглядзім, як гэта зрабіць
, Што добра.
І зусім іншая справа, варта адзначыць, што мы выкарыстоўваем a.out
таму што Clang, кампілятар, аўтаматычна называе яго двайковы
файлы a.out, калі не паказаць яго з пэўным сцягам, каб даць
гэта ад свайго імя, але зараз мы проста будзем выкарыстоўваць
змаўчанні a.out.
>> Так што давайце на самай справе зойме некалькі хвілін і паспрабуйце запісаць
код для гэтага самі.
Так што гэта 4:15.
Такім чынам, у 4:20, мы збіраемся вярнуцца і - о, так.
Прасторы.
Cool.
Гэта накшталт таго, што мы называем шкілет кода ў тым, што
гэта шкілет, але вы павінны запоўніць мясам
Праграма на самай справе прымусіць яго працаваць.
Такім чынам, вы можаце бачыць # ўключыць дырэктывы туды, каб уключыць
CS50 і STDIO.
Я адзначыў у каментары фактычнай формулы для пераўтварэння
Цэльсія ў градусы Фарэнгейта, у выпадку, калі вы не памятаеце, з высокай
Школа навукі і яшчэ шмат чаго.
І тады гэта ўсяго толькі шкілет
фактычныя асноўныя функцыі.
Такім чынам, усё, што вы пішыце будзе ісці тут.
А для таго, каб сапраўды дабрацца да гэтага месца -
так CS50 прасторы можна атрымаць з дапамогай гэтага URL, які Дэн
збіраецца пісаць на дошцы, і я буду дыктаваць, а таксама.
Дэн Брэдлі: cs50.net/spaces--
LEXI РОСС: / qWLc -
Мне вельмі шкада, у.
Дэн Брэдлі: Y?.
LEXI Рос: Не, не, не, не.
Гэта нармальна.
qYLcYWfg.
Такім чынам, я павінен бачыць імёны выгляд кожнага з з'яўляцца тут.
>> Awesome.
Гэта выглядае выдатна.
Гэта азначае, што людзі ўступаюць у прасторы.
Так што, калі вы не атрымалі шанец пагуляць у
Прасторы тым не менш, гэта на самай справе тое, што вы збіраецеся выкарыстоўваць
з ТФ ў раздзел ўвесь семестр.
Як гэта працуе, накшталт усё пішуць свае
код, і ніхто не можа бачыць гэта пакуль вы не націснеце Save
Кнопка, якую я паказваю прама цяпер.
Так што я збіраюся націснуць Save, і калі вы ўсё ідуць на маё імя,
якія вы павінны мець магчымасць убачыць яго ў людзі ў гэтай
Прастора, якое Lexis Beryl Рос.
Так як гэта будзе выглядаць у націснуць на маё імя, і
Вы ўбачыце Рэдакцыя 5, які
з'яўляецца апошняй рэвізіі.
Капіяванне толькі Перагляд 5 у ваша прастору, пстрыкнуўшы па ім.
>> Добра.
Так давайце пройдзем гэтую праблему разам, і я
на самай справе адбываецца, каб напісаць код тут на экране.
Вы можаце павялічыць няшмат.
І вось аднойчы я зрабіў, вы можаце скапіяваць маю апошнюю версію
у сваю прастору, калі вы хочаце, каб убачыць канчатковае рашэнне.
Цяпер прастор мае магчымасць для мяне, каб пайсці і паглядзець любы з
код, які вы, хлопцы, напісана, але толькі таму, што
такі вялікі раздзел, і мы на самай справе не маюць тыя ж
роду абмеркавання магчымасці, меншыя
профіль, мы толькі збіраемся ісці да канца і я толькі збіраюся
пісаць код.
Але, безумоўна, спыніць мяне з пытаннямі ў любы момант.
Мы збіраемся прайсці праз гэта выгляд крок за крокам, каб зрабіць
упэўнены, што мы разумеем адзін частка таго, што тут адбываецца.
Можа ўсё бачаць гэты тэкст тут?
Хто-небудзь хоча яго больш?
>> Так што першае, што мы будзем тут рабіць?
Ну па сутнасці, так як мы хочам атрымаць ўвод з
карыстачоў, і мы хочам, каб гэта было накшталт добры вопыт для
карыстальнікаў, мы на самай справе хочам сказаць ім, што мы шукаем.
Так што давайце раздрукаваць менавіта тое, што мы хочам сфармаваць карыстальнік.
Так што не турбуйцеся падымаючы руку, проста грымяць яго.
Якая каманда надрукаваць што-небудзь на экране?
Аўдыторыя: Е.
LEXI РОСС: Awesome.
Такім чынам, Printf.
>> Аўдыторыя: Гэй, лексем?
[Неразборліва]?
LEXI РОСС: Вядома.
Так Printf, як мы бачылі часта ў лекцыі, з'яўляецца
Каманда надрукаваць што-небудзь на стандартны выхадны паток.
Таму мы хочам, каб папрасіць карыстальніка ўвесці
тэмпература ў градусах Цэльсія.
І зараз, мы на самай справе хочам узяць ўваходу, што яны даюць
нам і захоўваць яго ў зменнай.
Такім чынам, мы даведаліся трохі аб тыпах.
Можа хтосьці памятае, які тып мы хацелі б для зменнай
з дзесятковай месца ў ім?
Аўдыторыя: Float.
LEXI РОСС: Float.
Так, дзіўны.
Гэта паплавок.
Так.
І як мы будзем - вялікі намёк - атрымаць
плаваць ад карыстача?
Аўдыторыя: GetFloat.
LEXI Рос: Так.
Cool.
І карыстальнік патэнцыйна можа азначаць і паспрабаваць даць нам
адмоўны лік, але давайце не будзем клапаціцца аб тым, што для гэтага
Праблема цяпер.
Вы будзеце турбавацца аб тым, што крыху больш, на ваш
хатняе заданне па праблеме набор.
>> Такім чынам, давайце выкажам здагадку, што яны даюць нам добры нумар, і цяпер мы
на самай справе трэба пераўтварыць, якія плаваюць па Цэльсіі ў
Па Фарэнгейце.
Такім чынам, давайце звярніцеся ў наш формула тут, і давайце створым
Новая зменная і называць яго па Фарэнгейце.
Я вывучаў правапісу.
Гэта свайго роду вар'яцтва, я ведаю.
І давайце разлічваць на парадку аперацый робяць выгляд
сваю працу тут, але мы будзем выкарыстоўваць дужкі проста быць
цалкам падрабязныя і ясныя.
Так Цэльсія раз 9 дзеліцца на 5.
Я хачу, каб паменшыць маштаб толькі крыху так што гэта можа змясціцца на
адзін радок, але я зноў павялічыць для тых, хто не можа бачыць,
далей у спіну.
На жаль пра гэта.
Дзіўна курсор пытанняў.
Плюс 32.
Добра, хто-небудзь ёсць якія-небудзь пытанні аб тым, як я паклаў у
Формула, або якія-небудзь праблемы з гэтым?
Так.
>> Аўдыторыя: Ці патрэбна нам паставіць Printf да паплаўка
Цэльсія, плаваць па Фарэнгейце ліній сцэнара?
Ці мае значэнне, у якім парадку яны ў?
LEXI Рос: Так пытанне было, мы павінны Printf
перш, чым мы на самай справе просяць паплавок?
Адказ на гэтае пытанне з'яўляецца тое, што мы робім.
Такім чынам, тое, што курсор, што карыстач атрымлівае на ўваход іх
паплавок будзе адбывацца пасля таго, як друкаваныя, ці не так?
І гэта мае сэнс, калі вы думаеце пра логіцы, як
Вы пытаецеся карыстачу пытанне, і тады вы
Атрымаўшы адказ.
Такім чынам, ён друкуе с, а там курсора, а затым
Карыстальнік можа ўвесці значэнне, як мы ўбачым
пазней, калі мы Demo.
Да?
>> Аўдыторыя: Чаму мы выкарыстоўваем паплавок, а не двайнік?
LEXI Рос: двайны, па сутнасці, у якасці імя
мае на ўвазе, дае ў два разы больш
дакладнасці, як паплавок.
Але звычайна ў C, у гэтым, вядома, для шэрагу
прычынах, мы збіраемся выкарыстаць паплаўкі.
І гэта сапраўды ўсё, што дакладнасць нам патрэбна толькі для
асноўныя віды пераўтварэнні тэмпературы.
Як правіла, двухмесныя больш выкарыстоўваецца ў мове Java,
паплаўкі з'яўляюцца больш распаўсюджанымі ў C. Добра, дзіўны.
>> Дэн Брэдлі: адзін больш.
LEXI Рос: Яшчэ адзін.
Да?
Аўдыторыя: дзе вы паклалі Space Bar?
Маўляў, [неразборліва] прабел [неразборліва]?
Хіба гэта важна?
LEXI Рос: О, няма.
Так што гэта не мае значэння.
Я на самай справе павінны былі паставіць яшчэ адзін касмічны тут.
Але што справа ў тым, што вы паслядоўна
ва ўсім кодзе.
Так што, калі вы вырашыце выкарыстоўваць адзін стыль адлегласць, пераканайцеся, што
трымаць яго на працягу ўсёй вашай кода, ці вы можаце атрымаць стыль
ачкі.
Такім чынам, паслядоўнасць з'яўляецца ключавым фактарам.
Дэн Брэдлі: Я думаю, ён казаў пра тое, што прастора.
LEXI Рос: О, вы кажаце пра тое, што прастора?
Па фактычных C?
Аўдыторыя: Так.
LEXI Рос: О, так гэта толькі за знешнасць, ці не так?
Так што шлях, калі мы запусцім код, калі ў нас не было гэтага
Прастора тут, калі гэта выглядала так, карыстач пачне
увесці нумар, і было б раздушаны прама
супраць тоўстай кішкі пасля C, і яна будзе выглядаць трохі
лепш, калі б было месца.
І вы можаце бачыць, што крыху лепш, як толькі мы на самай справе
запусціць гэты код, калі мы яго скончылі.
Awesome.
Так, яшчэ адно пытанне.
>> Аўдыторыя: Ці павінен я паставіць дзесятковы кропку пасля аднаго з
[Неразборліва]?
LEXI Рос: Дык што вы гэтага не зробіце, таму што каля
аперацый.
Такім чынам таму, што Фарэнгейце ўжо з якая плавае кропкай, як гэта
Цэльсія, вам не трэба відавочна прыводзіць любую з гэтых
іншыя нумары, як паплаўкі, хоць у іншых
абставінах, калі вы маеце справу з цэлымі, вы можаце
павінны паставіць кропку відавочна прывесці яго ў якасці паплаўка.
Да?
Аўдыторыя: Мне было проста цікава, калі капіталізацыя пытанняў у
гэтыя каманды, як GetFloat?
LEXI Рос: Так, добры пытанне.
Такім чынам, пытанне было, робіць капіталізацыі рэчыва ў
каманды, як GetFloat?
Адказ: Так, гэта так.
Так GetFloat, як Дэн апісваў раней, бібліятэка
функцыі ў CS50 бібліятэкі, і яно было напісана ў якасці капіталу
G, капітал F. Такім чынам, калі вы не пішаце яго з тымі сталіц
там, кампілятар не будзе разумець, што
функцыянаваць вы маеце на ўвазе.
Добра.
Да?
>> Залы: асноўны аргумент на карысць заўсёды пустэчу?
LEXI Рос: Так, гэта яшчэ адно вялікае пытанне.
Такім чынам, код, які вы скапіявалі з майго прасторы памылкова было
яшчэ некалькі аргументаў.
Такім чынам, пытанне было, ёсць аргумент асноўныя функцыі
Заўсёды пустата, якая па сутнасці нічога не значыць?
Адказ: не.
Вы можаце заўважыць, што код, які вы скапіявалі з майго папярэдняга
перагляд меў тое, што можа выглядаць як нічога, што сапраўды робіць
сэнс прама зараз, некаторыя з *, ARGV, агдс.
Не турбуйцеся аб тым, што на дадзены момант, але вы даведаецеся пазней
на яны робяць розніцы.
Але калі вы не выкарыстоўваеце такую ​​дадатковую функцыянальнасць
аб якіх вы даведаецеся крыху пазней, пустэча
цалкам нармальна.
>> Добра.
І ў нас ёсць яшчэ адзін крок, які з'яўляецца тое, што мы хочам
на самай справе паказаць карыстачу, што ператвораныя тэмпературы.
Такім чынам, яшчэ раз, мы збіраемся выкарыстаць Printf, і скажам, F, проста
Дзеля ўзгодненасці ст.
І зараз мы збіраемся зрабіць нешта крыху больш складана.
Так што мы збіраемся выкарыстаць сцяг, або адмысловага роду абазначэння,
сказаць Printf для друку толькі аднаго знака пасля коскі.
А хто-небудзь выпадкова не ведаеце, што гэта будзе выглядаць
хацеў, перш чым я друкую гэта?
Да?
Аўдыторыя: 0,2% е?
LEXI Рос: Так, так.
Такім чынам, на самай справе, гэта вельмі блізка.
0.01f на 0,01% F, а затым мы павінны памятаць, каб уключыць
Іншы аргумент у Printf, якая з'яўляецца самай зменнай,
які з.
>> І апошні крок.
Можа хтосьці памятае, што гэта такое ў нашым асноўная функцыя?
Так, там.
Аўдыторыя: Вяртанне?
LEXI РОСС: Цалкам дакладна.
Такім чынам, так як гэта асноўны вяртаецца ў INT, мы хочам
Таксама вярнуцца ў Int.
Дэн Брэдлі: Адсотак павінен быць на другім баку.
LEXI Рос: Добра.
Выбачайце, хлопцы.
Гэта была памылка.
Такім чынам, працэнт даходзіць да 0,01.
Так гэта 0,01% ф.
Гэта свайго роду цяжка запомніць.
Многія людзі, як я, проста паглядзіце іх
кожны раз, калі мы іх выкарыстоўваем.
Так, там.
Аўдыторыя: Чаму гэта 0,01 і не 0,2 або 0,1?
LEXI Рос: Я не ведаю, на самай справе.
Ці ведаеце вы?
Дэн Брэдлі: прычына гэта 0,01, а не 0,02, або
0,2, або 0,1, з'яўляецца даволі адвольным чынам, што
Праграміст першапачаткова распрацаваны яго.
Аўдыторыя: Гэта не тое, што я меў на ўвазе.
Я не пытаюся, чаму.
[Неразборліва] чаму.
У мяне напісана, як 0,2, і гэта дастаўляе два -
Дэн Брэдлі: Так.
Так што мы былі толькі жадаючы адзін.
Аўдыторыя: Ой, добра.
Такім чынам, можна затым 0,01.
Дэн Брэдлі: 0,1, верагодна, таксама працуе.
0,01 працуе таксама.
LEXI Рос: О, 0 можа быць, каб паказаць нуля, калі
гэта менш, чым адна.
Дэн Брэдлі: Так, я думаю, што гэта правільна.
Так што 0,01 будзе паказваць нуль, калі яна не мае нічога
што б туды натуральным шляхам.
Так што калі вы, скажам, пакласці ў 100 для Цэльсіі, гэта было б
выходзіць да 212 звычайна ў градусах па Фарэнгейце, як 212 дакладна.
Калі ў вас ёсць 0,01, яна пакажа 212,0, а
не проста 212.
LEXI Рос: Гэта праўда.
Такім чынам, чытаючы ў асноўным кажа Printf, друкаваць дзесятковы кропку,
і надрукаваць 0, калі гэта неабходна.
Калі няма, то друк 1. дзесятковай пазіцыі.
Дэн Брэдлі: І мы будзем даследаваць некаторыя з гэтага, калі мы
на самай справе працуе код.
LEXI Рос: Так.
Аўдыторыя: Таму я стаўлю 0,1.
Ён па-ранейшаму друкуе свае нуля.
Дэн Брэдлі: Ён па-ранейшаму друкуе свае нуля?
Аўдыторыя: Так.
Дэн Брэдлі: Хм, добра.
LEXI РОСС: Cool.
>> Добра.
Больш пытанняў на гэты код, перш чым я скампіляваць і запусціць?
Хто-небудзь бачыць памылкі тут, у першую чаргу?
Хто-небудзь бачыў тое, што павінна быць тут?
Калі б гэта была ваша праблема набору, што б быць тут, якія не
там прама цяпер?
Так, выдатна.
Так што я не ўключаць каментары, таму што я іх дастаўкі
ў вуснай форме, але калі б я пісаў гэтую задачу ў набор, я б
вызначана хочаце, каб пакласці каментары, каб паказаць, што я
робіць, па сутнасці, у праграме.
І вы будзеце выгляду адчуць гэта, як Вы рухаецеся праз
семестра, патрэбную колькасць каментароў.
Вы не хочаце быць занадта шматслоўным і паклаў ліній і
радкоў каментарыяў для кожнага з вашых радкоў кода, але вы
Таксама не хачу быць не дастаткова падрабязны і пакінуць
Чытач, каб паспрабаваць высветліць, якога чорта
Ваш код робіць.
>> Добра, халаднавата.
Давайце паспрабуем запусціць гэты код.
Добра, я пайду, каб паменшыць маштаб няшмат.
Cool.
Такім чынам, вы заўважыце, што ёсць кнопка Play тут.
Давайце націсніце Play.
Такім чынам, вы ўбачыце тут, як і ў спецыфікацыі па праблеме
ўсталяваць, ёсць. / a.out.
a.out гэтае імя выкананы файл, які з'яўляецца
доўгае слова усяго за файл, які складаецца з двайковага кода, які
кампутар на самай справе працуе.
Так як мы чакалі, мы маем C тут.
Так называюць шэраг.
Аўдыторыя: 23.
LEXI РОСС: 23.
Дэн Брэдлі: Ваша праграма займае занадта шмат часу для запуску.
Проста запусціце яго зноў.
LEXI Рос: О, мой дрэнны.
Добра.
Прасторы з'яўляецца прыдзірлівым часам.
Яна хоча, каб вы думалі на ногі.
Добра, 23.
Awesome.
Ці ўсё ў гэта паверыць?
Крута, таму што яна працуе.
>> Добра.
Давайце паспрабуем яшчэ парачку.
Давайце паспрабуем краю ў дадзеным выпадку.
У кампутарнай навуцы, калі мы гаворым пра крайніх выпадках, мы маем на ўвазе
выпадкаў для запуску праграмы якія з'яўляюцца свайго роду на самым
Краю разумных ўваходах або, што тэст пэўных кутах
Логіка ў вашу праграму, і гэта мае больш сэнсу, калі мы
рабіць больш складаныя праграмы.
Давайце паспрабуем 0.
Awesome.
Мы ўсё гэта ведаем.
Cool.
Ёсць яшчэ пытанні па гэтаму перш чым перайсці
да наступнай праграме?
Добра, дзіўны.
Такім чынам, зараз мы збіраемся -
Вы хочаце проста выкарыстоўваць мой кампутар?
Дэн Брэдлі: Так, гэта досыць лёгка.
>> Добра, пайду і казаць пра тое, каб працэнты.
Так што мы па сутнасці, у наступным невялікае практыкаванне, збіраецца
ўзяць два цэлых ўваходы ад карыстальніка, спадзеючыся на
неадмоўнае лічнік і назоўнік станоўчы, і
у асноўным падзяляючы іх і выводзіць тое, што выступае ў якасці
працэнт.
Такім чынам, мы хочам, каб прымаць толькі неадмоўнае лічнік і
прымаць толькі станоўчыя назоўніка, і працягвайце пытацца
на новыя, калі яны не атрымалі тое, што ён хоча.
Усё ў парадку?
Так дайце што ідуць.
LEXI Рос: О, так, ты хочаш зрабіць -
ой, можа быць, людзі павінны скапіяваць мой код.
Дэн Брэдлі: Так.
LEXI РОСС: [неразборліва]
Прасторы.
>> Аўдыторыя: У мяне ёсць пытанне.
Калі я выкарыстоўваю прастор і я хачу, каб захаваць [неразборліва]
Фарэнгейт пераўтварэнні, я магу захаваць яго, а затым зрабіць новы -
LEXI Рос: Мы маглі б проста зрабіць новую прастору, ці вы можаце проста
трэба скапіяваць і ўставіць у тэкставы файл або
нешта такое ў вас ёсць.
Дэн Брэдлі: Я проста змяніць сваё імя.
LEXI Рос: Я толькі што выратаваў апошняй рэдакцыі
tofahrenheit.c, так што калі вы ідзяце ў AAAA Lexis Beryl
Рос, вы можаце пайсці і скапіяваць гэты апошні код, а затым
пачаць гэты новы, які я думаю, што Дэн будзе прадастаўляць
некаторыя шкілет кода для таксама.
Добра.
Дэн Брэдлі: апошняя версія ў мяне ёсць на шахце, таму
гэта на самым версе гэты час, Рэдакцыя 4, і
ён будзе мець тое, што вам трэба, каб пачаць працу.
LEXI Рос: Усё ў парадку, і я буду капіяваць, што ў шахце, а таксама.
>> Дэн Брэдлі: Усе правільна.
Я думаю, што мы збіраемся проста пачаць рухацца па гэтай нагоды, калі
кто-то зацікаўлены.
LEXI Рос: Мы ўсе зацікаўленыя.
Дэн Брэдлі: Мы збіраемся пачаць проста, абвясціўшы
некаторыя зменныя. Таму ў нас ёсць лічнік, і дзеля
Зараз, я збіраюся проста пачаць яго са значэннем -1,
і тады я стварыў DO-цыклу. Хаця -
таму, калі я хачу, каб гэта цыкл?
Калі я хачу, каб працягваць пытацца -
так?
Аўдыторыя: Калі яна менш або роўная нулю.
Дэн Брэдлі: чаму яна не можа быць роўная нулю?
Аўдыторыя: [неразборліва].
Дэн Брэдлі: Так.
Такім чынам, для лічнік, гэта проста ў той час як у лічніку
менш за нуль.
Ці мае гэта сэнс для людзей?
Мы працягваем цыкл а лічнік менш за нуль,
мы працягваем прасіць новы ўваход, і трымаць патрабуючы, каб яны
увод новых рэчаў.
Так што я проста трохі Printf тут, неадмоўнае
колькасць цыліндраў -.
І тады мы робім тое ж самае, што і раней, толькі мы робім
GetInt, толькі таму, што мы хацелі зрабіць яго як
Адсотак цэлых лікаў.
Такім чынам, лічнік = GetInt.
>> Добра, зараз некалькі рэчаў.
Ці трэба мне гэта -1 тут?
Аўдыторыя: [неразборліва].
Дэн Брэдлі: Не.
Чаму не?
Аўдыторыя: Таму што вы атрымліваеце выпадковае значэнне ад карыстальніка.
Дэн Брэдлі: Цалкам дакладна.
Але я хачу, каб дэкларацыя тут?
Так.
Чаму?
Аўдыторыя: Вы павінны знайсці па-за цыклу.
У адваротным выпадку, вы не будзеце мець зменную для адпачынку
праграмы.
Дэн Брэдлі: Цалкам дакладна.
Вобласць.
Sweet.
Ці мае гэта сэнс для ўсіх?
Аўдыторыя: Ці можаце вы сказаць, што яшчэ раз?
Дэн Брэдлі: Добра.
Так што, калі б я быў заявіць пра гэта лічнік ўнутры цыклу, калі
У мяне было гэта замест таго, лічнік лічнік Int,
і я пазбавіўся ад гэтага цалкам,
лічнік знікне.
Яна не магла б існаваць па-за гэтага цыклу, таму што ўсе
знаходзіцца ў рамках гэтых фігурныя дужкі.
Сэнс?
Добра.
>> Такім чынам, для назоўніка, мы робім нешта даволі падобныя, унутр
назоўнік = -
і мне не трэба адно -
рабіць, і ў той час як у дадзеным выпадку, тое, што я хачу?
У якім стане я хачу, каб гэта ўсё яшчэ пятля на?
Аўдыторыя: менш або роўна 0.
Дэн Брэдлі: менш або роўна 0.
Назоўнік <= 0.
Не забудзьцеся ўзяць з коскі, дзеці.
Такім чынам, мы робім тое ж самае, як і раней, Printf станоўчыя
назоўніка, і мы атрымліваем Int адсюль.
Там мы ідзем.
GetInt.
Добра.
А потым, у рэшце рэшт, мы хочам, каб раздрукаваць пэўны працэнт.
Такім чынам, каб зрабіць гэта, тое, што павінна нашым радок выглядае?
Printf.
Любыя іншыя ідэі аб тым, што я магу тут рабіць?
Да?
Аўдыторыя: Можа быць,% 0,2 [неразборліва].
Дэн Брэдлі: Так.
Добра.
Я пачну з першага біта,% .02%%,
двукоссі, коска.
І я збіраюся кінуць новай лініі тут, толькі таму, што
як новыя лініі, калі я раблю рэчы.
Якое матэматычнае выраз, я павінен тут?
Аўдыторыя: дужкі і плаваць.
Дэн Брэдлі: Добра.
Чаму я хачу мець яго ў паплавок?
Аўдыторыя: [неразборліва].
Дэн Брэдлі: Добра, добра.
Float.
Аўдыторыя: лічнік.
Дэн Брэдлі: лічнік?
Добра, так што я плаваць лічніку.
Аўдыторыя: Падзеленыя па -
Дэн Брэдлі: Падзеленыя па?
Аўдыторыя: назоўніка.
Дэн Брэдлі: я раблю толькі назоўнік, ці я раблю паплаўком
назоўнік?
Аўдыторыя: Проста назоўніка.
Дэн Брэдлі: Добра.
Аўдыторыя: І вы можаце памножыць гэта на 100.
Дэн Брэдлі: А я памнажаем на 100.
Аўдыторыя: А потым дужкі вакол усяго выказвання.
Дэн Брэдлі: Так.
>> Добра.
Добра выглядаць?
Давайце паспрабуем.
-50.
Добра, 50.
0, 100, 50%.
Гэта спрацавала так, як мы хацелі.
Ці значыць гэта, кода сэнс людзей?
Я збіраюся захаваць яго такім чынам, вы можаце атрымаць яго копію.
Да?
Аўдыторыя: Чаму б табе не трэба ставіць [неразборліва]?
Дэн Брэдлі: Дзе?
Аўдыторыя: Як і калі вы кажаце, назоўнік роўны
[Неразборліва].
Дэн Брэдлі: Калі ў мяне ёсць?
Чаму я павінен Int перад ім?
Аўдыторыі: Таму што іншы мае Int перад ім.
Дэн Брэдлі: Ну, так, каб не было ў цыкле, ці не так?
Такім чынам, я заяўляю гэта Int назоўніка вышэй цыклу,
і ў мяне няма яго ў пятлю, таму што я быў бы
абвясціўшы яго кучу раз, і яна не будзе фактычна выконваць
да дзе-небудзь яшчэ ў праграме.
LEXI Рос: Так, важна памятаць, што
Зменныя толькі трэба быць абвешчаны адзін раз.
Такім чынам, уявіце, гэта ўсё роўна, увёўшы новую зменную
ў свеце, называючы яго Int ці паплавок ці этажэрка, і
як толькі ён заявіў, усё што вам трэба зрабіць, каб змяніць гэта
проста назваць яго па імя: назоўніка, або х ці ў.
Вам толькі трэба на самай справе называць гэта Int толькі адзін раз.
>> Дэн Брэдлі: Так.
Аўдыторыя: Ці можаце вы растлумачыць розніцу паміж% D
і% F, і калі вы калі-небудзь аб'явіць
зменную ў выглядзе дзесятковай?
Дэн Брэдлі: Такім чынам, г% і% F тут?
LEXI Рос: D на самай справе ставіцца толькі лічба, не
дзесятковай, якая з'яўляецца своеасаблівай зман.
Там няма фактычны тып дадзеных, які завецца дзесятковай, і калі вы
хочаце раздрукаваць INT, вы звяртаецеся да яго, як% D, або
%-Усё-D. F для паплавок, які можна падумаць, што гэта
быў бы я, але на самой справе D для унутр.
>> Дэн Брэдлі: Так?
Аўдыторыя: Так што ў іншай праграме, то чаму б нам не зрабіць
Тое ж самае, калі вы кажаце па Фарэнгейце?
Чаму мы не паклаў, як і -?
Дэн Брэдлі: У ніжняй тут?
Вы маглі б мець.
Гэта было б зусім законнымі.
Мне падабаецца рабіць гэта такім чынам, іншыя людзі хацелі аддзялення
яго ў розных радкоў кода.
У любым выпадку добра працуе.
У чым справа?
>> Аўдыторыя: Ці можаце вы растлумачыць, што%%
[Неразборліва]?
Дэн Брэдлі: Такім чынам, працэнтаў, адсоткаў.
Так, я збіраўся пайсці з гэтай нагоды.
Першы адсоткаў называюць кіраўнік сімвал, і ён проста
кажа, што рэч за гэтым на самой справе не код.
Такім чынам, гэта першае адсотка, права,% 0,02 е, усе гэтыя 0,02% F
нешта значыць для Printf як функцыі.
%%, Я проста хацеў, каб гэта на самай справе проста раздрукаваць
Знак адсотка.
Так што я не кажу, што нічога важнага за ім.
Я проста кажу, што ёсць знак адсотка за ёй.
Калі ласка, раздрукуйце знак адсотка.
Так адсоткаў, потым яшчэ працэнтаў.
Аўдыторыя: Ці можаце вы паказаць, што гэта будзе выглядаць, калі ў вас ёсць
плаваць на аснове іншай лініі?
Дэн Брэдлі: О, так, вядома.
Так што я просяць, каб паказаць, што гэта будзе выглядаць, калі я
быў гэты паплавок лічнік, усё гэта матэматыка, па іншай лініі.
Такім чынам, паплавок працэнтаў = -
і я хацеў бы пазбавіцца ад гэтага і проста паставіць у працэнтах.
І ён робіць тую ж самую рэч, я проста
ёсць яшчэ адна пераменная.
>> Аўдыторыя: [неразборліва].
Дэн Брэдлі: Перайдзіце да чаго?
Аўдыторыя: Так што я бачу [неразборліва].
Дэн Брэдлі: Што ты не бачыш?
Аўдыторыя: Выбачайце, я быў [неразборліва].
Дэн Брэдлі: Так.
Аўдыторыя: Так што, калі мы замяняем сімвал экранавання,
выкажам здагадку, што мы хацелі мець знак даляра замест гэтага, толькі для
Напрыклад, знак даляра за адсотак?
Дэн Брэдлі: Не.
Гэта ўсяго толькі даляр, толькі адзін знак даляра, таму што долар
Знак нічога не значыць для Printf.
Пытанне было, мне трэба, каб у экрануйце сімвал для
сімвалы, такія як знак даляра?
Аўдыторыя: Так накшталт звязаныя, ці ёсць іншыя выпадкі, якія
мы павінны ведаць, калі нешта накшталт адсоткаў
знак можа азначаць нешта [неразборліва]?
LEXI Рос: Так.
Не абавязкова знак адсотка, але зваротную касую рысу, см.
як у нас ёсць люфт канца тут?
Дапусцім, мы на самай справе хацелі надрукаваць люфт, мы павінны былі б
пазбегнуць гэтага -
і гэта будзе збіваць з толку -
з другога зваротную касую рысу.
Таму, калі мы хочам вывесці \ \, мы б
досыць увесці гэта, ці дадатковыя
зваротную касую рысу, іншага выйсця.
І яшчэ адзін, калі мы хочам, каб раздрукаваць цытата - так
У прынцыпе, нічога такога пазначае нешта асаблівае
у радок, мы хочам пазбегнуць.
Так што давайце казаць, што мы на самай справе хочам мець цытата тут, мы б
хачу зрабіць \ ".
Аўдыторыя: Так што гэта, як правіла, зваротную касую рысу?
Дэн Брэдлі: Гэта, як правіла, зваротную касую рысу.
LEXI Рос: Так.
Па нейкай прычыне тут, гэта знак адсотка.
>> Аўдыторыя: [неразборліва]?
Дэн Брэдлі: Гэты хлопец?
Гэта проста сказаць, рэч, якая дзеліцца тут
будзе разглядацца як паплавок дзеля дзялення.
Такім чынам, у выпадку 50, падзеленае на 100, калі ў мяне не было
плаваць там, гэта было б проста 0.
Гэта ўсё, што выйдзе, таму што 50 дзеліцца на
100, калі вы не уключаючы любыя знакаў пасля коскі, ад 0. -
і ўсё пасля коскі толькі з усечаным.
Аўдыторыя: Гм,
Чаму б нам не паставіць яе перад назоўніка, а?
Дэн Брэдлі: Дык чаму мы не ставім яго перад
назоўніка, таму што калі вы нешта падзелу на
цэлае, яна працуе проста выдатна.
Наяўнасць большай колькасці на дне
нічога не мяняе.
Вы можаце падзяліць на цэлых проста выдатна.
Гэта проста не мае значэння.
Вы маглі б, гэта нічога не змяніла б.
Аўдыторыя: Так што калі вы хацелі трох знакаў пасля коскі, не так
Вы змяшчаеце 0,03 адсотка?
Дэн Брэдлі: Так.
Вы б паставіў 0,03%, калі вы хочаце
трох знакаў пасля коскі.
>> Аўдыторыя: А ў каманды, у чым розніца паміж
, Што і проста раблю той час як на вяршыні?
Дэн Брэдлі: Так зрабі той час як па параўнанні нейкі час цыклу 2
даволі падобныя каманды.
Адзінае адрозненне складаецца ў выкананні кода адзін раз, вы запусціце
код ўнутры цыклу адзін раз перад
Вы ўносіце якія-небудзь фактычныя праверкі.
Такім чынам, гэта таксама прычына таго, што я магу сказаць назоўніка, не даючы
гэта лік.
Так што, калі я сказаў Int назоўніка, а затым, (назоўнік <=
0), ён можа нават не
выканання кода ўнутры.
Гэта зробіць праверку, што і раней -
так і тут.
Так што, калі ў мяне было гэта падчас цыклу тут, я павінен быў бы мець
назоўнік роўны, скажам, -2 або некаторы лік менш
або роўным 0, так было б на самай справе паспрабуйце запусціць код
ўнутры першай.
Такім чынам, наогул кажучы, вы хочаце выкарыстоўваць зрабі той час як цыкл
замест таго, каб у той час як цыкл, калі вы просіце для карыстацкага ўводу
таму што працуе код адзін раз, просячы што-небудзь карыстальнікаў
дасць вам, як правіла, лепшае рашэнне, а не
проста верыць, што вы паклалі, каб пачаць з.
Аўдыторыя: А вы заўсёды суправаджаецца некаторы час.
Дэн Брэдлі: У вынікаюць некаторыя кавалак кода, які вы
хочаце выканаць, а затым, некаторы ўмова.
LEXI РОСС: Думайце пра гэта як адна каманда роду распалася
на дзве часткі.
Гэта рабіць-то час, а не як вось зрабіць, і тады я
збіраецца дадаць некаторы час, гэта проста зрабі час.
>> Аўдыторыя: Я разумею прычыны, чаму вы выкарыстоўваеце
2 знака адсотка, але вы можаце растлумачыць мне, чаму мы павінны
ёсць [неразборліва]?
Дэн Брэдлі: Такім чынам, на адзін працэнтны знак проста кажу,
Printf, вось каманды, што я хачу, каб вы
запоўніць некаторы лік.
Таму я хачу, каб вы запоўніце яго з двума знакамі пасля коскі і
плаваць, і вы ўбачыце, паплавок у канцы
Каманда, менавіта гэтая адсотка.
Ці мае гэта сэнс?
Аўдыторыя: Так.
Дэн Брэдлі: Добра.
>> Аўдыторыя: Ці ёсць нешта, пра зрабі той час як цыкл, які
калі ўмова не выконваецца, калі вы атрымліваеце
адмоўнае лік для лічнік, гэта будзе проста трымаць
пытаючыся і будзе працягваць пытацца карыстальніка?
Дэн Брэдлі: Так.
Такім чынам, калі ўмова а не выконваецца ў канцы
рабіць-то час, яна будзе бегчы назад да старту.
Гэта проста цыкл.
Так што гэта як час цыклу, што ўмова не было
выкананы на.
Ён проста працуе яшчэ адзін раз.
Так.
Аўдыторыя: Так што, калі вы робіце гэта, вы можаце, у той час як для вашай,
пакласці два ўмовы?
Дэн Брэдлі: Ці можна.
Гэта залежыць ад таго, што вы просіце.
Такім чынам, вы можаце змясціць дзве ўмовы ў цыкле калі ў вас ёсць
усё ў нейкі лагічны аператар, які гучыць
пачварны, але гэта ў асноўным гэты назоўнік менш або
роўная нулю, альбо вяртае сапраўднае або ілжывае, ці не так?
Гэта менш або роўная нулю або няма.
Такім чынам, вы можаце зрабіць іншыя лагічныя аператары, што скажуць у той час як
гэта таксама дакладна і ў той час як гэта таксама хлусня.
Так што гэта такія рэчы, як і лічнік больш
нулю, ці не так?
Вось і пытаюся, гэта будзе толькі пятля у той час як назоўнік менш
нуля і ў вас ёсць станоўчыя лічніку.
Аўдыторыя: А вы два НСРА, дакладна?
Дэн Брэдлі: Два НСРА.
LEXI Рос: Мы распавядзем, што больш пазней.
>> Аўдыторыя: Што рабіць, калі хтосьці не паклаў у станоўчым
назоўнік?
Калі яны паклалі ў адмоўнай лічнік, вы можаце заахвоціць іх
, Скажам, пакласці ў неадмоўнае лічнік і ёсць
Каманда для гэтага?
Дэн Брэдлі: Вы маглі.
Аўдыторыя: цяпер ён проста кажа неадмоўных лічніку.
Што б быць выкарыстаны для гэтага?
Дэн Брэдлі: Такім чынам, вы б, калі ўмова, так як калі
лічнік менш за нуль.
LEXI Рос: Вы, напэўна, проста хачу, каб разбіць яго на больш
крокі, дакладна?
Такім чынам, у першы раз яны паставілі на ўваходзе, мы проста скажам, даць
нам лічнік і яшчэ шмат чаго.
І потым, калі яны робяць няправільныя рэчы, гэта можа быць у выпадку
на некаторы час цыклу, а не зрабі той час, таму што ў нас ёсць
Упершыню мы маем GetInt, а затым, што ўваходны
гэта дрэнна, мы пастаянна пытацца іх для далейшага ўваходу з
рознага роду тэкст, як гэта не працуе ці даць нам
неадмоўнае лічніку замест таго, што такія рэчы.
>> Дэн Брэдлі: Так?
Аўдыторыя: Як вы зніміце рэчы, якія [неразборліва]
тэрмінал?
LEXI РОСС: Ясна.
Дэн Брэдлі: Так, вы не можаце ўвесці ў яе.
LEXI Рос: На самой справе, гэта не рэальны тэрмінал.
Пытанне ў тым, як вы зразумець, што рэчы там, унізе?
Адказ на гэтае пытанне, гэта не рэальны тэрмінал, але выкажам здагадку, што вы
у рэальным тэрмінала.
Ачысціце.
О, гэта кошка.
Дэн Брэдлі: [неразборліва]?
Гэта што, праўда?
LEXI Рос: Не, гэта ўсе мае рэчы.
Дэн Брэдлі: [неразборліва].
LEXI РОСС: Там мы ідзем.
Дэн Брэдлі: Так?
>> Аўдыторыя: Ці ёсць ясна працу, калі ў вас ёсць -
як, скажам запуску праграмы [неразборліва], і яна просіць
Вы за нешта, а вы не хочаце.
Як вы -
Дэн Брэдлі: Ctrl + C?
LEXI Рос: Так.
Так што калі вы запускаеце праграму і нешта не збіраюцца
як вы хочаце, каб і вы проста хочаце, каб выйсці цэлым
Праграма, Control + C. Нават калі вы знаходзіцеся на Mac, а не Apple + C,
Control + C.
Аўдыторыя: А ў вас ёсць правільная версія да
перагляд у вашым профілі?
Дэн Брэдлі: Я думаю, што гэта захавана, ці не так?
Так.
LEXI Рос: Гэта прастору.
Так.
Я думаю, што перагляд 11.
>> Дэн Брэдлі: Так?
Аўдыторыя: Ці ёсць C рабіць ніякіх здагадак аб тым, што
зменную, калі вы вызначаеце зменную, але не прызначыць
усё, каб яна неадкладна?
Дэн Брэдлі: Так што будзем прымаць толькі цэлыя ў гэтым месцы.
Так што калі вы аб'явіце яго -
Аўдыторыя: Калі б я толькі што зрабіў Int назоўніка кропка з коскі, робіць гэта
Выкажам здагадку, што ён роўны нулю або любы нумар -?
Дэн Брэдлі: Не.
Так што калі вы не прызначыце, скажам, INT назоўніка ў любы значэнне,
гэта можа быць што заўгодна.
Гэта па старой памяці, што было ў гэтым месцы.
Такім чынам, яна можа быць адмоўнай 2 млрд, гэта можа быць станоўчым
2 млрд, і гэта можа быць дзе заўгодна.
Так што калі вы на самой справе працуе рэчах, пераканайцеся, што вы
прысвоіць значэнне зменнай.
Гэта не мае значэння, таму што мы адразу
прысваення значэння, але ў цэлым, так.
Любыя іншыя пытанні?
>> LEXI Рос: Мы таксама можам проста ўзяць агульныя пытанні ў гэтай
кропкі на лекцыйнага матэрыялу, з мноствам матэрыялу, усё, што вы
было цікава, о, гэта добры час, каб спытаць у тых.
Аўдыторыі: Такім чынам, у пакрокавых кіраўніцтваў, Zamyla
згадваецца круглы функцыі.
Вы не маглі б тлумачыў, як рэалізаваць гэта?
LEXI РОСС: Вядома, як рэалізаваць гэта?
Аўдыторыя: Яна сказала, што раўнд.
LEXI Рос: О, так.
Так што проста так мы ўсё ж Vocab і іншае,
рэалізаваць як правіла, азначае фактычна пісаць з нуля.
І таму я не думаю, што яна мела на ўвазе нешта накшталт напісання
круглы функцыі.
Яна, напэўна, проста меў на ўвазе, як яго выкарыстоўваць.
Рэалізацыя значыць, накшталт як ствараюць.
Такім чынам, у цэлым, час, калі мы хочам выкарыстоўваць круглыя ​​функцыя Я
маю на ўвазе, накшталт, напрыклад,
калі вы хочаце, каб закругліць.
Ці можаце вы даць мне трохі больш кантэксту, у якой
Праблема была?
Аўдыторыя: Каб пазбегнуць недакладнасцяў знакаў пасля коскі
робячы іх лік з якая плавае кропкай.
LEXI Рос: Так.
Так што пытанне з паплаўком, што мы накшталт спасылаўся на гэта
што з-за таго, як яны захоўваюцца ў машыне,
яны не з'яўляюцца 100% дакладнай ў тым, як вы маглі б падумаць
калькулятар будзе захоўваць іх.
Гэта цяжка для мяне, каб паказаць прыклад, не ведаючы, што
кантэкст быў.
Я не ведаю, ці можаце вы думаць пра што-то, Дэн?
>> Дэн Брэдлі: Дык што, калі вы пытаецеся, скажам, ліку
больш, чым 10, і вы выкарыстоўваеце паплаўкі, і вы даданнем аднаго
з паплаўком кожны раз, яна будзе часам чакаць, пакуль вы не
атрымалі да 12, перш чым яно будзе сказаць, што гэта на самай справе колькасць
больш за 10.
Паплаўкі ёсць сур'ёзныя пытанні як раз паміж 32-й
і 33-е дзесятковае месца, пойдзем, так што можа 9,9999999, або
гэта можа быць 10.0000001, дакладна?
Гэта сапраўды не адрозніваюць паміж імі, так што калі вы
чаканне рэчаў больш або роўна 10, вы можаце
Не дабрацца на тое, што вы думаеце, 10-й ітэрацыі.
Вы можаце атрымаць там, у 11-м.
LEXI РОСС: Па сутнасці, так.
Калі вы цыкла па шмат плавае, што, калі
недакладнасцяў здарыцца.
Залы: Я думаю, таму ў асноўным, гэта як на р
ўстаноўлена, яна хоча, каб вы круглы значэнне з якая плавае кропкай, і калі вы пакладзеце ў
4,24 для велічыні змены неабходна назад, калі вы проста робіце
раз 100, гэта будзе на самой справе зменіцца ў 423 -
Дэн Брэдлі: Часам, так.
Аўдыторыя: Так што я думаю, што гэта так жа, як, як вы выкарыстоўваеце круглы
функцыі ў рэальным кодзе зрабіць так, каб ён не робіць гэтага?
Дэн Брэдлі: Так што калі вы акругленнем 424 шляхам множання
на 100 і ператварыць яго ў цэлае, яна будзе часам
зрабіць яго 423-за таго, што недакладнасць.
І так, што вы можаце зрабіць, гэта проста дадаць 0,0000003.
Залы: Але я думаю, што, на самай справе, яны хочуць
нам выкарыстоўваць раўнд.
Дэн Брэдлі: круглы функцыі?
Там, напэўна, матэматычныя функцыі, то ў
матэматычную бібліятэку.
Аўдыторыя: # ўключыць матэматыку.
Дэн Брэдлі: # ўключыць , і ёсць
Верагодна, круглыя ​​функцыі.
Аўдыторыя: Гэтак жа, як круглыя ​​() -?
LEXI РОСС: Па сутнасці, таму што вы хочаце, каб акругліць да
бліжэйшага цэнта.
Дэн Брэдлі: Давайце падцягнуць чалавек старонак.
Такім зручны інструмент, калі вы не ведаеце, -
Вы цягнеце тэрмінала -
гэта калі вы ідзяце да чалавека матэматыцы.
LEXI РОСС: Cool.
>> Такім чынам, вы можаце бачыць, так і чалавек з'яўляецца скарачэннем ад кіраўніцтва, а не чалавека, а
яна дазваляе шукаць дадатковую інфармацыю аб любой
функцыі або бібліятэкі, якія вы можаце мець справу.
Так што я проста набраў ў чалавеку матэматыцы.
Дазвольце мне змяніць маштаб малюнка
Дэн Брэдлі: Мы можам паспрабаваць круглы чалавек, таксама.
LEXI РОСС: Вядома.
Дэн Брэдлі: І гэта будзе пералічыць -
Чалавек матэматыцы буду пералічваць усё, што ў матэматычную бібліятэку,
якія мы будзем ўключаць.
Так, у нас таксама ёсць тур.
LEXI Рос: Так што я толькі што зрабіў чалавек раўнд.
Тут можна ўбачыць у рэзюмэ, гэта кажа # ўключыць
, так што гэта накшталт як cs50.h, stdio.h.
І, падобна, гэта на самай справе перагружаныя, гэта азначае,
яна прымае розныя тыпы аргументаў, таму вы можаце вакол
падвойваецца або паплаўкі.
Дэн Брэдлі: Круглы супраць roundf.
LEXI РОСС: Roundf.
А Zamyla кажучы ўжо пра roundf супраць туры?
Аўдыторыя: У кіраўніцтве, гэта была проста круглая ().
Дэн Брэдлі: Такім чынам, яна, верагодна, выкарыстаў падвойныя,
Затым, у адрозненне ад паплаўка.
Такім чынам, вы б памножыць на 100, а затым вакол яго, і
вы атрымаеце лік бліжэйшых да яго, я думаю.
>> LEXI Рос: круглы функцыя вяртае інтэграл
Значэнне бліжэйшага да х акруглення паловы выпадкаў ад 0,
незалежна ад бягучага напрамкі акруглення.
Такім чынам, па сутнасці, вы хацелі б толькі вакол, як толькі вы на
цэлы лік, так што вы памножыць на
100, а затым раўнд.
Ці значыць гэта, больш сэнсу?
Аўдыторыя: Каб выкарыстоўваць гэтую функцыю ў файле C, вам трэба
пакласці круглы паплавок, як калі б ваша пераменная называецца Q, вы
пакласці раунд (паплавок) д, а затым дужкі, ці можа
вы проста паставіць круглыя, а затым Пытанне ў дужках?
Дэн Брэдлі: Такім чынам, калі вы спрабуеце выкарыстоўваць гэтую функцыю
на самай справе, вы б лічыць, што Q, Q з'яўляецца паплавок,
ці як яе аб'явілі?
Аўдыторыя: Q ўяўляе сабой паплавок.
Дэн Брэдлі: Такім чынам, калі Q абвешчаны як паплавок, вы б
проста ўзяць раунд, а затым даць яму ц.
Магчыма, вам прыйдзецца аб'явіць яго як падвойную ў гэтым выпадку.
LEXI Рос: Так, калі вы хочаце выкарыстоўваць roundf.
Залы: Я мог бы проста выкарыстоўваць roundf, а затым д у двукоссях?
Дэн Брэдлі: Не, не ў двукоссях, толькі ц.
Аўдыторыя: На жаль, не ў двукоссях, у дужках.
Дэн Брэдлі: у дужках, так.
LEXI РОСС: Выбачайце, што была крыху заблытанай.
Ёсць яшчэ пытанні?
>> Дэн Брэдлі: Так?
Аўдыторыя: Так круглых толькі раўндаў да цэлых лікаў?
LEXI Рос: Так.
Дэн Брэдлі: Так, толькі круглы тураў да цэлых.
Аўдыторыя: Так што, калі вы хочаце мець тое, што дакладная
павінна быць [неразборліва], памножанае на 100, а затым
падзелены на 100 раз, калі вы хацелі -
LEXI Рос: Дык што, калі вы хочаце атрымаць яго ў дзесятковай форме?
Аўдыторыя: Ну, напрыклад, напрыклад, [неразборліва] вы
ёсць 1,25, а затым [неразборліва]
1,24, калі вы хочаце захаваць гэта як 1,25, вы б
памнажаем на 100, вакол яго, а затым падзяліць яго на 100
зноў, каб атрымаць 1,25?
LEXI Рос: Так.
Такім чынам, пытанне, так як акругленне, як чалавек старонку
кажа, акругляецца да бліжэйшага цэлага значэння, гэта значыць,
што хацелі б памножыць на 100, выканайце
акруглення, і падзяліць на 100 яшчэ раз, каб, скажам, атрымаць правільнае
даляраў і цэнтаў значэнне?
І адказ -?
Дэн Брэдлі: Не.
Я маю на ўвазе, калі вы проста атрымліваеце значэнне з якая плавае кропкай, калі вы пачнеце
з паплаўком значэнне 1,25, што тое, як гэта будзе
інтэрпрэтаваць.
Так што калі вы памножце яго на 100, а затым падзеліце яго на 100,
яна па-ранейшаму будзе інтэрпрэтаваны як 1,25, або
магчыма 1,249 ...
.. 999.
LEXI Рос: Я думаю, што пытанне было б, вы б
множання, а затым выкарыстоўваць круглы, а затым падзяліць, так што гэта як -
Дэн Брэдлі: Так.
Я ўсё яшчэ не думаю, што гэта мяняе нічога, хоць.
Я думаю, што гэта да гэтага часу.
LEXI Рос: Таму што круглы робіць - ён выкарыстоўвае цэлыя лікі.
Так што, калі вы паспрабуеце вакол 1,25, вы проста атрымаеце 1.
Таму я думаю, для таго, каб атрымаць як дадатковую дакладнасць,
калі гэта тое, што вы кажаце.
>> Аўдыторыі: Такім чынам, у якіх выпадках вы выкарыстоўваеце круглыя, то?
Дэн Брэдлі: Так у гэтым выпадку, калі вы хочаце, скажам, ліку
цэнтаў з $ 1,25, вы б памножыць на 100, круглы, атрымаем
125, і пакінуць усё як, што, як цэнта, у адрозненне ад спрабуеце
пераўтварыць яго назад у даляры і цэнты.
LEXI Рос: О, так, так, вядома.
Аўдыторыя: Навошта вам трэба акругліць, што [неразборліва]?
Дэн Брэдлі: Так што калі вы памножце яго на 100, а затым
адразу ж пераўтварыць яго ў цэлы лік, якое больш за
карыснай форме, што, калі вы маеце справу з
недакладнасцяў, дакладна?
Такім чынам, гэта можа быць 124.999999, і таму, калі вы затым пераўтварыць гэта ў
цэлы лік, ён проста падае ўсё прэч гэта ніжэй
дзесятковага знака.
Аўдыторыя: Так яна будзе даваць вам [неразборліва].
Дэн Брэдлі: Сапраўды, замест 125, які з'яўляецца
Чаму вы хочаце, каб закругліць.
>> Аўдыторыя: Выбачайце, не маглі б вы паўтарыць тое, што вы сказалі,
павінны рабіць, а не тое, што вы не павінны рабіць?
Дэн Брэдлі: Добра.
Так што вы павінны зрабіць, калі вы пачынаеце з 1,25, памножым
гэта на 100, а затым вакол, што цэлы лік, што 125 або
124.9999, і атрымаем, што да бліжэйшага цэлага ліку.
Аўдыторыя: Так што калі вы вакол, што ставіць яго
да бліжэйшага цэлага ліку?
Дэн Брэдлі: Так.
Аўдыторыя: Ці ёсць спосаб абмежаваць, калі вы папытаеце паплаўком
будзе ўводзіцца, ці ёсць спосаб абмежаваць колькасць дзесятковых
месцы, якія вы можаце ўвесці паплавок?
LEXI Рос: Не выкарыстоўваецца рэалізацыі CS50 аўтара.
Я маю на ўвазе, вы можаце разлічваць, наколькі вялікі ўваход даецца
карыстальнікаў, але гэта запатрабуе ўкаранення новых
з GetFloat, і таму вам не трэба турбавацца аб гэтым.
Дэн Брэдлі: Дык што, калі яны, скажам, ўваходны 1,256, вы можаце проста
выкарыстоўваць 1,25, ці вы маглі б зрабіць 1,26.
У любым выпадку, я думаю, што ажыццяўленне кажа, што вы можаце -
Аўдыторыя: вы можаце проста яго вакол, каб -
Дэн Брэдлі: усё, што хоча, ды тых часоў, пакуль вы
свайго роду акруглення.
Што-небудзь яшчэ?
Не павінна быць каля акруглення.
LEXI Рос: Так?
>> Аўдыторыя: Калі мы хочам, каб праверыць, калі стыль нашай
Код з'яўляецца прымальным або лепшы стыль
што гэта можа быць, у тым, што такія рэчы мы будзем выхоўваць у
профіль, або ў офісе гадзін, ці ў тым, што рэч
можна і па пошце прыватным на рэчы, на абмеркаванне, а затым
звярнуцца за радай па?
LEXI Рос: мы не ведаем, у працоўны час або на CS50
Абмяркуйце, мы не будзем на самай справе клас вашага р наборам загадзя
па стылі, але я думаю, што, верагодна, самы карысны
што вы маглі б зрабіць, каб паглядзець на прыклады, і вы
павінны быць у стане выявіць, што ў профіль кода, які павінен быць
распаўсюджвацца ў Інтэрнэце, а таксама лекцыі слайды, ёсць
павінны быць прыкладамі кода.
Але калі ў вас ёсць асобныя пытанні аб вызначаным
Стыль пытанне, безумоўна, не саромейцеся пытацца пра тое, што CS50
Абмеркаваць і офісныя гадзіны, або на сваім уласным часу.
Але калі гэта больш за агульны погляд на майго кода, лепш за ўсё
выгляд выкарыстання прыкладаў і паспрабаваць адпавядаць вашым кодам да гэтага.
І я лічу, што стыль кіраўніцтва на -
Дэн Брэдлі: Там стылю кіраўніцтва.
Стыль кіраўніцтва з'яўляецца дзіўным.
Яна вучыць вас усё, што вам трэба, і яно ахоплівае даволі
ступені кожны прыкладу, вядомых чалавеку, або па крайняй меры мне не вядома.
>> Што-небудзь яшчэ?
Добра.
Крута, хлопцы.
LEXI РОСС: Майце вялікі дзень.
Дэн Брэдлі: Дзякуй, што прыйшлі.