Даг Lloyd: Добра.
Так што цяпер давайце возьмемся сапраўды вялікая тэма, функцыі.
Да гэтага часу ў працэсе, усё Праграмы, якія мы былі якія пішуць
былі напісаны ўнутры асноўнай.
Яны даволі простыя праграмы.
Вам не трэба, каб усе гэтыя філіялы і рэчаў адбываецца.
Мы можам проста змясціць яго ўнутры асноўнай і
ня атрымаць страшна пераважнай.
Але, як курс працягваецца і як вы пачнеце распрацоўваць праграмы
самастойна, яны, верагодна, будзе каб пачаць, каб атрымаць значна больш, чым 10
або 15 радкоў.
Вы можаце атрымаць сотні ці тысячы або дзесяткі тысяч радкоў кода.
І гэта на самай справе не што з розуму думка.
Як такая, яна, верагодна, не вельмі добрая ідэя захаваць усе ўнутры асноўнай.
Гэта можа стаць трохі цяжка знайсці тое, што вы шукаеце, калі вы зробіце гэта.
>> На шчасце, хоць C, і ў значнай ступені кожны мова праграмавання, які
можа працаваць, дазваляе нам напісаць функцыі.
І я проста хачу, каб Вазьміце хуткі бок тут
адзначыць, што функцый адна вобласць інфарматыкі.
І вы будзеце бачыць больш з іх у розныя пункты на працягу ўсяго курсу
і калі вы будзеце працягваць далей.
Там, дзе ёсць шмат сінонімы аднаго і таго ж слова.
Так мы называем функцыі.
Але вы маглі б таксама пачуць іх згадваецца як працэдур,
або метады, у прыватнасці, калі вы калі-небудзь зрабіць любы аб'ектна-арыентаванага праграмавання
before-- і не турбавацца калі ў вас не, не
вялікі deal-- але ў аўдытарскія арыентаваныя мовы
часта званыя метадамі.
Часам яны называюцца падпраграмамі.
Але яны на самай справе ўсё яны ставяцца да таго ж асноўнай ідэі.
>> Давайце паглядзім, што гэтая ідэя.
Што такое функцыя?
Ну функцыя сапраўды не больш, чым чорны скрыню.
Чорны скрыню, які мае мноства нулявы або больш уваходаў і адзін выхад.
Так, напрыклад, гэтая можа быць функцыяй.
Гэтая функцыя называецца функцыі.
І гэта займае тры ўваходу A, B і С.
І ўнутры гэтага чорнага скрыні, мы не ведаю дакладна, што ён робіць,
але ён апрацоўвае ўваходы у некаторым родзе, а затым ён
дае адно выйсце, у гэтым выпадку, г.
Зараз, каб зрабіць яго крыху менш абстрактным, мы
Можна сказаць, што, магчыма, мы ёсць функцыя пад назвай
Дадамо, што займае тры ўваходу A, B, і З і апрацоўвае выходныя дадзеныя ў некаторым родзе
ўнутры чорнай скрыні да вырабляць адно выйсце.
Такім чынам, у гэтым выпадку, калі дадаць займае 3, 6, і 7.
Недзе ўнутры дадаць функцыю, мы б
чакаць, што яны будуць дададзеныя разам для атрымання выхаднога сігналу, які
3 плюс 6 плюс 7 або 16.
>> Сапраўды гэтак жа, у вас ёсць функцыя пад назвай мульт, які прымае два ўваходу, а і б,
апрацоўвае іх у пэўным сэнсе такі што выхад функцыі
з'яўляецца прадуктам двух уваходаў.
Два ўваходу перамнажаюцца.
4 і 5 перадаецца ў Mult, нешта здарыцца, выхад мы чакаем
20.
Чаму мы называем гэта чорны скрыню?
Ну, калі мы не напісання Функцыі сябе, што
мы зрабілі зусім няшмат да гэтага часу CS50.
Мы бачылі друку F, напрыклад, што гэта функцыя, якую мы не напісаць
самі, але мы выкарыстоўваем ўвесь час.
Калі мы не пішам функцыі самі,
мы на самай справе не трэба ведаць, як гэта на самай справе рэалізаваны пад капотам.
>> Так, напрыклад, чорны скрыню I толькі што паказаў вам для множання,
сть а, бы можа быць defined-- і гэта толькі
некаторыя pseudocode-- можа быць вызначаецца як выхад праз раз б.
Гэта мае сэнс, дакладна.
Калі ў нас ёсць функцыя пад назвай мульт, які прымае два ўваходу.
Мы б чакаць, што вынік будзе быць два ўваходу перамнажаюцца,
а раз б.
Але мульт таксама можа быць рэалізаваны, як гэта,
мы маем зменную лічыльніка на атрымаць набор ўнутры Mult 0.
А потым мы паўтараем гэты працэс б раз дадаць да лічыльніку.
Напрыклад, калі мы памножым 3а па 5Б, мы маглі б сказаць ўсталяваць лічыльнік на 0,
паўтарыць пяць разоў, дадаць 3 да прылаўка.
Такім чынам, мы пачынаем з 0, а затым мы робім Гэта ў пяць разоў 3, 6, 9, 12, 15.
Гэта той жа самы вынік. Мы да гэтага часу атрымаць 3 разоў 5 разоў
рэалізацыя адрозніваецца.
>> Гэта азначае, што мы калі мы кажам, чорны скрыню.
Гэта проста азначае, што мы сапраўды не клапоцяцца як гэта рэалізавана пад капотам
тых часоў, пакуль выхад, што мы чакаем.
На самай справе, гэта частка дагавора выкарыстання функцыі, у прыватнасці,
Функцыі, якія пішуць іншыя.
Паводзіны заўсёды будзе тыповымі, непрадказальны
на аснове імя функцыі.
І вось чаму гэта сапраўды важна, калі вы пішаце функцыі
або калі іншыя людзі пішуць Функцыі, якія вы маглі б выкарыстоўваць,
што гэтыя функцыі маюць ясна, адносна відавочныя імёны,
і добра дакументаваны.
Што, вядома, выпадак для функцыі, як друк ф.
>> Дык чаму ж мы выкарыстоўваем функцыі?
Ну, як я сказаў раней, калі мы пішам увесь наш код ўнутры галоўных
можаце атрымаць сапраўды грувасткім і сапраўды складаная.
Функцыі дазваляюць нам здольнасць арганізаваць рэчы і разбіць
вельмі складаная задача ў шмат больш кіраваныя часткі суб.
Функцыі таксама дазваляюць нам спрасціць працэс кадавання.
Гэта нашмат прасцей адладзіць 10 Функцыя лінія супраць лініі 100
функцыя або функцыя ў 1000 лінія.
Калі ў нас ёсць толькі для адладкі маленькія кавалачкі ў той час,
або напісаць невялікія кавалачкі ў той час, гэта робіць гэты вопыт праграмавання
нашмат лепш.
Паверце мне на тым.
>> Нарэшце, калі мы пішам функцыі мы можна паўторна выкарыстоўваць гэтыя розныя часткі.
Функцыі могуць быць перапрацаваныя.
Яны могуць быць выкарыстаны ў адна праграма ці іншай.
Вы ўжо напісалі функцыя, усё, што вам
трэба зрабіць, гэта сказаць, што праграма дзе знайсці гэтую функцыю.
Мы ўтылізацыі і выкарыстання друкаваць е больш за 40 гадоў.
Але гэта было толькі адзін раз напісана.
Даволі карысна, правільна.
Добра.
Так функцыі вялікія.
Мы ведаем, што.
Зараз давайце пачнем пісаць іх.
Давайце пачнем атрымліваць іх у нашых праграмах.
Для таго, каб зрабіць гэта, першы што мы робім, гэта аб'явіць функцыю.
Калі вы аб'яўляеце функцыю тое, што вы робіце ў асноўным
кажа кампілятару, эй, толькі так вы ведаеце,
Я збіраюся пісаць функцыя пазней
і вось што ён будзе выглядаць.
Прычына гэтага ў тым, што кампілятары могуць
зрабіць некаторыя дзіўныя рэчы, калі яны бачаць набор знакаў
што яны не знаёмыя.
Такім чынам, мы проста даць кампілятару ўзначальвае, я ствараю функцыю
і ён збіраецца зрабіць гэта.
Аб'явы функцый звычайна калі Вы арганізуе свой код такім чынам,
што іншыя змогуць зразумець і выкарыстоўваць,
Вы ўвогуле хочаце, каб пакласці ўсе Вашы аб'явы функцый
на самым версе вашага кода, прама перш чым пачаць пісаць асноўны нават.
І зручна, ёсць вельмі стандартная форма
што кожная функцыя дэкларацыя наступным чынам.
Яны ўсе ў значнай ступені выглядаць наступным.
Ёсць тры часткі да функцыі Дэкларацыя, які вяртаецца тып, імя,
і спіс аргументаў.
>> Цяпер тып вяртанне Якіх Пераменная выхад функцыі волі.
Так, напрыклад, калі мы ўспомнім Хвіліну назад да множання двух
Функцыя нумары, тое, што мы чакаем, калі памножым цэлы лік цэлы лік
выхад будзе верагодна, цэлае, права.
Памнажаецца два цэлых колькасці разам, вы атрымаеце цэлы лік.
Так тып якое вяртаецца што Функцыя будзе Int.
Імя гэта тое, што вы хочаце звярнуць вашу функцыі.
Гэта, верагодна, найменш важным частка функцыі дэкларацыі,
з пункту гледжання функцыянальнасці.
Але на самой справе, верагодна, адзін з найбольш важных частак
ў аб'яве функцыі ва ўмовах ведаючы, што на самой справе функцыя
робіць.
Калі вы назваць вашу функцыю F або г або ч або таямніца ці нешта падобнае,
вы, верагодна, збіраецца атрымаць трохі спатыкнуўся, спрабуючы
ўспомніць, што гэтыя функцыі робяць.
Таму важна, каб даць вашай асэнсаваныя імёны функцыі.
>> Нарэшце, спіс аргументаў падзеленыя коскі
усіх уваходаў у вашай функцыі, кожны з якіх мае тып і імя.
Так што не толькі ў вас ёсць, каб паказаць, які тып зменнай
выхад функцыя, Вы таксама хочаце, каб паказаць
які тып і тыпы зменных у Функцыя будзе прымаць у якасці ўваходных.
Так давайце зробім прыклад тут.
Давайце проста паглядзім ў больш канкрэтным адзін.
Дык вось прыклад функцыі Заяву для функцыі,
хацеў бы дадаць два цэлых колькасці разам.
Сума двух цэлых лікаў будзе быць цэлым лікам, а таксама, як мы толькі што
абмяркоўваецца.
І таму тып звароту тут, у зялёны, будзе Int.
Гэта проста кажа нам, што дадаць два цэлых збіраецца, у рэшце рэшт,
выхад, або выплюнуць назад да нас, цэлы лік.
Улічваючы тое, што гэтая функцыя робіць мы хачу, каб даць яму значнае імя.
Дадаць два цэлых здаецца мэтазгодна, улічваючы
мы бярэм два цэлых чысла ў якасці ўваходных і, спадзяюся, дадаўшы іх разам.
Гэта можа быць трохі грувасткім Імя і адкрыта гэтая функцыя
Верагодна, няма неабходнасці так як мы маем даданне
Аператар, калі вы памятаеце з нашага абмеркаванне аператараў, раней.
Але давайце проста скажам, дзеля Аргумент, што гэтая функцыя карысная
і так мы будзем называць яго дадаць два цэлых.
Нарэшце, гэтая функцыя прымае два ўваходу.
Кожны з якіх з'яўляецца цэлым лікам.
Такім чынам, мы маем гэтую коску спіс падзеленых уваходаў.
Цяпер мы звычайна хочуць даць імя кожнаму з іх
такім чынам, што яны могуць быць выкарыстаны у функцыі.
Імёны не страшна важна.
>> У гэтым выпадку, мы не абавязкова ёсць нейкі сэнс, прымацаваны да іх.
Такім чынам, мы можам проста назваць іх і б.
Гэта зусім нармальна.
Аднак, калі вы знойдзеце самастойна ў сітуацыі,
дзе імёны зменных сапраўды можа быць важным,
Вы можаце называць іх нешта іншае, чым а і Ь
каб даць ім нешта больш сімвалічна значным.
Але ў дадзеным выпадку, мы на самай справе не ведаеце што-небудзь яшчэ аб функцыі.
Мы проста хочам, каб дадаць два цэлых чысла.
Такім чынам, мы проста патэлефанаваць тых, цэлыя лікі а і б.
Вось адзін прыклад.
>> Чаму б вам не ўзяць другі думаць пра гэта,
як бы вы напісаць функцыю Заяву для функцыі,
памнажае двух лікаў з якая плавае коскі?
Вы памятаеце, што такое лік з якая плавае коскі?
Што б гэтая функцыя Заяву выглядае?
Я на самой справе рэкамендуем Вам прыпыніць відэа сюды і колькі часу вам трэба.
Падумайце аб тым, што гэта Аб'яву функцыі будзе?
Што б тып якое вяртаецца быць?
Што б значнае імя будзе?
Што б ўваходы быць?
Дык чаму б вам не зрабіць паўзу відэа тут і напісаць план функцыю дэкларацыю
для функцыі, якая будзе памнажаць два плавае коскі разам.
Спадзяюся, вы паўзу відэа.
>> Такім чынам, давайце зірнем на прыклад адной з магчымых дэкларацыі.
Паплавок Mult два рэала плаваць х, у паплаўка.
Твор двух лікаў з якая плавае кропкай,
якія з'яўляюцца ўспомніць, як мы ўяўляюць рэальныя лічбы
ці нумары з дзесятковымі значэннямі ў З, будзе лік з якая плавае кропкай.
Калі памнажаеце дзесятковай у дзесятковым,
вы, верагодна, збіраецца атрымаць дзесятковай.
Вы хочаце, каб даць яму адпаведную імя.
Памножце два рэала здаецца нармальна.
Але вы маглі б сапраўды назваць гэта Mult двума паплаўкамі, або Mult паплаўкі.
Нічога падобнага, да таго часу, як гэта даў яму актуальнае значэнне на тое, што
гэта чорны скрыню збіраўся зрабіць.
І зноў жа, у гэтым выпадку, мы не здаецца, ёсць нейкі сэнс надае
на імёнамі зменныя мы пераходзячыя ў,
так што мы проста называем іх х і у.
Цяпер, калі вы іх называеце нешта яшчэ, што гэта цалкам нармальна.
На самай справе, калі вы зрабілі гэтая дэкларацыя, а
замест гэтага выкарыстоўваючы двайнікоў паплаўкоў, калі ўспомніць,
што падвойваецца гэта іншая спосаб больш дакладна
пазначыць рэальныя лічбы ці з якая плавае коскі зменныя.
Гэта зусім нармальна таксама.
Альбо адзін з тых, было б выдатна.
На самай справе, ёсць некалькі розныя камбінацыі
спосабаў заявіць гэтую функцыю.
Але гэтыя дзве даволі добрыя.
Мы абвясцілі функцыю, гэта выдатна.
Мы сказалі, што гэта кампілятар з'яўляецца тое, што мы збіраемся рабіць.
Зараз давайце на самай справе пісаць гэтую функцыю.
Давайце дамо яму вызначэнне, такім чынам, што ўнутры чорнай скрыні
прадказальнае паводзіны адбываецца.
На самай справе, мы множання двух сапраўдных нумары разам, або даданне нумары
разам, ці рабіць тое, што гэта што мы папрасілі нашу функцыю агульнага.
>> Такім чынам, на самай справе, давайце паспрабуем вызначыць і памножыць два рэала, які мы толькі што
казалі пра другую таму.
Цяпер пачатак вызначэнне функцыі
выглядае амаль дакладна гэтак жа, як функцыя дэкларацыі.
У мяне ёсць і з іх.
У верхняй частцы знаходзіцца аб'яву функцыі, тып, назва, падзеленыя коскі аргумент
Спіс, кропка з коскі.
Кропка з коскі паказвае, што што аб'яву функцыі.
Пачатак функцыі вызначэнне выглядае амаль у дакладнасці
тое ж самае, тып, імя, падзеленыя коскі Спіс аргументаў, няма коскі,
адкрыць фігурную дужку.
Адкрытая фігурная дужка, як мы рабілі з асноўнай,
азначае, што мы зараз пачынае вызначаць
што адбываецца ўнутры чорнай скрыні, што мы вырашылі назваць Некалькі два рэала.
Вось адзін са спосабаў, каб яго рэалізаваць.
Мы маглі б сказаць, што мы маглі б аб'явіць новы пераменная тыпу паплаўка называецца прадукт
і прызначыць гэтую зменную у кошт х раз у.
А потым вярнуцца прадукт.
Што азначае вяртанне тут.
Ну вяртанне шлях пакажам, што, як
мы перадаем выхад назад.
Так што-то вярнуць, так жа, як, гэта выхад чорнай скрыні.
Дык вось, як вы гэта робіце.
Вось яшчэ адзін спосаб яе рэалізацыі.
Мы маглі б проста вярнуць х раз у.
х паплавок.
у з якая плавае кропкай.
Так х раз у таксама паплавок.
Мы нават не трэба стварыць яшчэ адну зменную.
Так што гэта іншы спосаб ажыццявіць той жа чорны скрыню.
>> Зараз скарыстацца момантам, прыпыніць відэа яшчэ раз,
і паспрабаваць вызначыць дадаць два цэлых, які з'яўляецца іншы функцыі, што мы
казалі аб хвіліну таму.
Зноў тут, я паклаў функцыі Дэкларацыя, і так як кропка з коскі,
і адкрытая фігурная дужка і закрытым кучаравыя
дужка, каб паказаць, дзе мы будзем запаўняць ў змесціве дадаць два цэлых,
так што мы вызначаем прыватнасці Паводзіны ўнутры чорнай скрыні.
Так прыпыніць відэа.
І ўзяць столькі часу, колькі Вы павінны паспрабаваць і вызначыць
рэалізацыя дадаць два цэлых, напрыклад што, калі функцыя выводзіць значэнне,
ён робіць, на самай справе, вяртанне сума двух уваходаў.
Гэтак жа, як і ў папярэднім прыкладзе, Ёсць некалькі розных спосабаў
што вы маглі б рэалізаваць дадаць два цэлых.
Вось адзін.
У тут, у аранжавы У мяне проста былі некаторыя comments--
Я проста дадаў некаторыя каментары, каб паказаць,
што адбываецца ў кожнай радку кода.
Так што я абвясціць зменную называецца сума тыпу Int.
Я кажу сума роўная плюс б.
Вось дзе мы на самай справе робім праца дадання А і В разам.
І я вярнуся суму.
І, што мае сэнс, паколькі сума пераменная тыпу Int.
І тое, што тып дадзеных, што гэта функцыя паведамляе мне, што збіраецца вывесці?
Int.
Так я вяртаюся суму, якая з'яўляецца цэлай зменнай.
І, што мае сэнс, улічваючы тое, што мы Аб'яву і вызначэнне нашу функцыю
рабіць.
>> Цяпер вы можаце таксама вызначыць функцыя такім чынам,
INT сума роўная плюс У- прапусціць што у першую чаргу, а затым step--, вярнуцца суму.
Цяпер вы маглі б таксама рэалізаваны гэта так,
які я вельмі не рэкамендую.
Гэта дрэнны стыль для аднаго што і на самай справе дрэнны дызайн,
але гэта, на самай справе, працы.
Калі вы бераце гэты код, які INT дадаць дрэнную суматар кропка C, і выкарыстоўваць яго.
Гэта на самай справе дадаць два ліку разам.
Гэта вельмі дрэнная рэалізацыя гэтага канкрэтнага паводзін.
Але ён працуе.
Гэта проста тут для ілюстрацыі і справа, што мы на самай справе не
усё роўна, што адбываецца ўнутры чорны скрыню, пакуль
як гэта мае выснову, які мы чакалі.
Гэта дрэнна распрацаваны чорны скрыню.
Але ў рэшце рэшт, гэта робіць яшчэ выхад сума плюс б.
Добра.
Так мы абвясцілі функцый.
І мы вызначылі функцыю.
Так што гэта сапраўды добра.
Зараз давайце пачнем выкарыстоўваць функцыі што мы абвясцілі і мы вызначылі.
Для выкліку function-- гэта на самай справе даволі easy-- усё, што вам трэба зрабіць,
гэта перадаць яго адпаведнымі аргументамі, Аргументы тыпу дадзеных
што ён чакае, і затым прызначыць вяртанне
Значэнне гэтай функцыі і this-- апраўданне me--
прысвоіць вяртаецца значэнне гэтай функцыі да чаго-то правільнага тыпу.
>> Такім чынам, давайце паглядзім на На практыцы гэта ў файле
называецца суматар 1 кропка З, У мяне ў CS50 IDE.
Дык вось гадзюка 1 кропка гр.
У пачатку вы бачыце, я мой ўключае ў сябе, фунт ўключаюць,
Стандарт І.В., і CS50 кропка ч.
А потым у мяне аб'яву функцыі.
Гэта дзе я кажа кампілятар Я
будзе напісання Функцыя называецца дадаць два цэлых.
Гэта адбываецца для вываду цэлая пераменная тыпу.
Гэта тое, што гэтая частка прама тут.
А то ў мяне два ўваходу да яго і б, кожны з якіх уяўляе сабой цэлы лік.
Унутры галоўнага, я прашу ў карыстальніка уваход кажучы, дай мне цэлае.
І яны прапанавана забыць INT, якая з'яўляецца функцыяй, што
уключаны ў бібліятэцы CS50.
І, што захоўваецца ў х, цэлая пераменная.
>> Тады мы падштурхнуць іх яшчэ цэлага.
Мы атрымліваем яшчэ цэлае і захоўваць, што ў у.
А потым, тут, на лініі 28, з'яўляецца дзе мы робім нашу выклік функцыі.
Мы кажам, Int Z роўных дадаць 2 Інтс х коскі у.
Вы бачыце, чаму гэта мае сэнс?
х з'яўляецца зменнай цэлага тыпу і у з'яўляецца зменнай цэлага тыпу.
Так што гэта добра.
Гэта мае сэнс з якой нашай функцыі Дэкларацыя аб адпаведнасці 17 выглядае.
Спіс ўводу падзеленыя коскі чакае два цэлых чысла, а і б.
У гэтым выпадку, мы можам назваць ім, што мы хочам.
Гэта проста чакае два цэлых чысла.
І х ўяўляе сабой цэлае лік, і ў з'яўляецца цэлым лікам.
Гэта працуе.
>> І мы ведаем, што функцыя будзе Для высновы колькасці, а таксама.
І такім чынам, мы захоўваем выхад функцыі,
дадаць два цэлых, у цэлае тыпу Пераменная, якая мы называем г.
І тады мы можам казаць, што сума адсоткаў я і працэнтаў я гэта я адсоткаў.
х, у і г адпаведна запаўнення ў тых адсоткаў я гадоў.
Што з'яўляецца вызначэнне дадаць два цэлых выглядаць?
Гэта даволі проста.
Гэта адзін з тых, што мы толькі што бачыў секунду назад,
INT сума складае б зваротны плюс суму.
Ці азначае гэта працаваць?
Давайце захаваць файл.
І тады тут, на маім тэрмінале Я збіраюся зрабіць суматар 1,
і я ачысціць экран.
Я збіраюся павялічыць таму што я ведаю гэта трохі цяжка ўбачыць.
>> Так мы збіраем гэтую праграму ў якасці суматара 1.
Такім чынам, мы можам зрабіць кропка слэш суматар 1.
Дайце мне цэлае, 10.
Дайце мне яшчэ цэлае, 20.
Сума 10 і 20 30.
Такім чынам, мы зрабілі выклік паспяховы функцыю.
Вы можаце запусціць функцыю зноў, адмоўны 10, 17 сума адмоўнага 10 і 17 Ліпеня.
Гэтая функцыя працуе.
Ён мае паводзіны што мы чакаем яго.
І такім чынам, мы зрабілі паспяховы Функцыя, вызначэнне, заяву,
і выклік паспяховым функцыя.
Пара розны пункты пра функцыі
перш, чым мы скончым гэты раздзел.
Нагадаем, з нашага абмеркаванне тыпаў дадзеных,
Раней, што функцыі не можа заняць ні адзін уваход.
Калі гэта так, то мы абвясціць функцыю
як мае спіс аргументаў несапраўднымі.
Памятаеш вам, што Найбольш агульная функцыя
мы бачылі да гэтага часу, што адбываецца спіс аргументаў пустата?
Гэта галоўны.
Нагадаем таксама, што функцыя часам на самай справе не маюць выхад.
У гэтым выпадку, мы аб'яўляем функцыю як якія маюць тып якое вяртаецца несапраўдным.
Давайце скончым гэты параграф вырашэння праблемы практыкі.
>> Дык вось праблема выклаў.
Я хачу, каб вы напісаць функцыю называецца сапраўдным трохкутнік.
Што гэтая функцыя павінна рабіць гэта ўзяць тры рэальныя лічбы
якія ўяўляюць даўжыні тры боку трохвугольніка, як яе параметраў,
або яго аргументы, або яго inputs-- іншы набор сінонімаў
што вы можаце сутыкнуцца.
Гэтая функцыя павінна альбо выхад сапраўдным або ілжывым
у залежнасці ад таго гэтых трох даўжынь здольныя зрабіць трохкутнік.
Вы памятаеце, што тып дадзеных мы выкарыстоўвалі, каб паказаць, дакладна ці няправільна?
Цяпер, як вы гэта рэалізаваць?
Ну ведаеце, ёсць пара правілаў, якія тычацца трыкутнікаў
што на самай справе карысна ведаць.
Трохкутнік можа мець толькі Боку з станоўчай даўжыні.
Гэта мае сэнс.
Вы, напэўна, сказаўшы, хм.
Іншая рэч, да ведама хоць, з'яўляецца тое, што сума
даўжынь любы Боку трохвугольніка
павінен быць больш, чым Даўжыня трэцяй боку.
Гэта на самай справе так.
Вы не можаце мець трохкутнік бакоў 1, 2 і 4, напрыклад, з-за 1 плюс 2
не болей, чым 4.
Так што тыя правілы, якія вызначыць, ці сапраўды тры
Ўваходы могуць, як мяркуецца, ўтвараюць трохкутнік.
Так што праз пару хвілін і аб'явіць, а затым вызначыць
гэтая функцыя называецца сапраўдным трыкутніка, так, што ён на самай справе
мае паводзіны ўказаны тут.
>> Гэта будзе справядліва, калі выхад гэтых трох бакоў здольныя змяшчае трохкутнік,
і хлусня ў адваротным выпадку Гатовыя ўбачыць, як вы зрабілі?
Вось адна рэалізацыя з сапраўдная трохкутнік.
Гэта не толькі адзін.
Ваш можа нязначна адрознівацца.
Але гэта робіць, на самай справе, ёсць паводзіны, якое мы чакаем.
Мы заяўляем, што наша функцыю на вельмі зверху, BOOL сапраўдны трохкутнік
плаваць х флоат ў паплаўка г.
Такім чынам, яшчэ раз, гэтая функцыя прымае тры рэальныя лічбы
у якасці аргументаў, якія плаваюць кропка значэнне зменных,
і выводзіць сапраўдным або ілжывым значэнне, якое з'яўляецца лагічным, нагадаем.
Дык вось чаму тып якое вяртаецца значэння BOOL.
Затым мы вызначаем функцыю.
Першае, што мы робім, гэта праверыць, каб пераканацца, што ўсе бакі дадатныя.
Калі х менш або роўна 0, або калі ў роўна 0,
або калі г менш або роўна 0, што не можа быць трохвугольнікам.
Яны не маюць і станоўчыя бакі.
І так мы можам вярнуцца хлусня ў гэтай сітуацыі.
Далей, мы правяраем, каб пераканацца, што кожная пара уваходаў
больш, чым трэці.
>> Так што, калі х плюс у менш ці роўным г,
або калі х плюс г менш ці роўным Y,
або калі ў плюс г, менш або роўна х, што таксама не можа быць дапушчальным трохкутнік.
Такім чынам, мы зноў вярнуцца ілжывым.
Выкажам здагадку, што мы прайшлі абедзве праверкі хоць, то мы можам вярнуцца праўда.
Таму што тыя, з трох бакоў здольныя returning--
стварэння сапраўдны трохкутнік.
І гэта ўсё.
Цяпер вы абвешчаныя і вызначаны.
І вы можаце быць у стане ў цяперашні час для выкарыстоўваць і выклікаць гэтую функцыю.
Вялікая праца.
Я Дуг Лойд.
Гэта CS50.